<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
     xmlns:content="http://purl.org/rss/1.0/modules/content/"
     xmlns:dc="http://purl.org/dc/elements/1.1/"
     xmlns:dcterms="http://purl.org/dc/terms/"
     xmlns:media="http://search.yahoo.com/mrss/"
     xmlns:atom="http://www.w3.org/2005/Atom"
     xmlns:cf="https://www.futureplc.com/rss/content-flags"
>
    <channel>
                    <atom:link rel="alternate" hreflang="en-GB"
                       href="https://www.tomsguide.com/uk/feeds/tag/internet"
                       type="application/rss+xml"/>
                            <title><![CDATA[ Latest from Tom's Guide UK in Internet ]]></title>
                <link>https://www.tomsguide.com/uk/computing/internet</link>
        <description><![CDATA[ All the latest internet content from the Tom's Guide  UK team ]]></description>
                                    <lastBuildDate>Wed, 11 Nov 2026 14:28:11 +0000</lastBuildDate>
                            <language>en</language>
                                <item>
                                                            <title><![CDATA[ Get FREE antivirus from Surfshark VPN for Black Friday ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Black Friday is almost here, and <a href="https://www.tomsguide.com/reviews/surfshark-vpn-review">Surfshark</a> – one of the <a href="https://www.tomsguide.com/best-picks/best-vpn">best VPNs</a> around and already our highest-rated <a href="https://www.tomsguide.com/best-picks/cheap-vpn">cheap VPN</a> – has joined the party with a deal that gets you its mid-tier Surfshark One plan for the usual price of its entry-level Starter plan.</p><p>Surfshark One is now just <a href="http://get.surfshark.net/aff_c?offer_id=1030&amp;aff_id=1691" target="_blank" rel="nofollow"><strong>$2.49 per month</strong></a> ($67.23 upfront) on a 24-month plan, with an extra three months thrown in for free, bringing your total protection to 27 months. </p><p>It includes everything in the Starter plan – a high-speed VPN, <a href="https://www.tomsguide.com/computing/vpns/what-is-surfsharks-alternative-id">Alternative ID</a>, and CleanWeb – but also adds Surfshark's scam protection, <a href="https://www.tomsguide.com/computing/vpns/why-surfshark-is-the-only-leading-vpn-offering-a-real-antivirus">antivirus</a>, and alert tools. Effectively, you're getting all of that for free alongside the VPN. </p><p>The 15-month Surfshark One plan (12 months + 3 free) is also discounted to $3.09 per month, down from the usual $3.59. But it doesn't come close to matching the value of the 27-month deal. More on why this is one of the <a href="https://www.tomsguide.com/best-picks/vpn-black-friday-deals">best Black Friday VPN deals</a> of the year below.</p><div class="product"><a data-dimension112="3b9883e6-d9b8-11f1-bf11-e3288331b825" data-action="Deal Block" data-label="Now: $2.49 per month" data-dimension48="Now: $2.49 per month" href="http://get.surfshark.net/aff_c?offer_id=1030&amp;aff_id=1691" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:355px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="NT2ETeUvYBCuRnN2scd4SC" name="surfshark logo.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/NT2ETeUvYBCuRnN2scd4SC-1920-80.jpg" mos="" align="middle" fullscreen="" width="355" height="355" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong>Surfshark One | 2 Years + 3 months FREE</strong><br /><del>Was: $2.79 per month </del><br /><a href="http://get.surfshark.net/aff_c?offer_id=1030&amp;aff_id=1691" target="_blank" rel="nofollow" data-dimension112="3b9883e6-d9b8-11f1-bf11-e3288331b825" data-action="Deal Block" data-label="Now: $2.49 per month" data-dimension48="Now: $2.49 per month" data-dimension25=""><strong>Now: $2.49 per month</strong></a><br />We rate Surfshark One as <em>the</em> best bang-for-buck VPN plan on the market, and this exclusive deal makes it an even easier recommendation for anyone looking for an all-in-one online security package.</p><p><strong>What you'll get:</strong></p><p>🛡️ <strong>Full VPN with unlimited simultaneous connections</strong><br /><strong>🔒 Avira-backed antivirus </strong><br />🔍<strong> Private search and data breach alerts</strong><br />📋<strong> 30-day money-back guarantee</strong></p><p>A 24-month plan costs<a href="https://get.surfshark.net/aff_c?offer_id=1030&amp;aff_id=1691" target="_blank" rel="nofollow"> <strong>$2.49 per month</strong></a> ($67.23 upfront pre-tax) and includes a 30-day money-back guarantee so you can test it out risk-free.<a class="view-deal button" href="http://get.surfshark.net/aff_c?offer_id=1030&amp;aff_id=1691" target="_blank" rel="nofollow" data-dimension112="3b9883e6-d9b8-11f1-bf11-e3288331b825" data-action="Deal Block" data-label="Now: $2.49 per month" data-dimension48="Now: $2.49 per month" data-dimension25="">View Deal</a></p></div><h2 id="surfshark-one-is-the-plan-i-39-d-recommend-to-almost-everyone">Surfshark One is the plan I'd recommend to almost everyone</h2><p>Even without its current discounted price, Surfshark One is the best plan in Surfshark's lineup – and one I happily recommend to almost everyone. It gives you pretty much everything Surfshark has to offer, with only <a href="https://www.tomsguide.com/computing/internet/incogni-review">Incogni</a> and <a href="https://www.tomsguide.com/computing/internet/online-security/identity-theft-protection">identity theft coverage</a> from the top-tier Surfshark One+ plan left out. But honestly, most people can do just fine without those extras.</p><p>For starters, you get a pretty capable antivirus solution backed by Avira. It offers real-time protection that checks apps and files as they're downloaded, installed, and used, along with scheduled scans to check your device for threats. There's also webcam protection, which blocks apps and websites from accessing your camera without permission.</p><p>Surfshark Alert keeps an eye out for your personal information online and notifies you if details linked to your email, credit card, or ID show up in a data breach. You also get regular personal data security reports, so you can keep tabs on potential leaks.</p><p>Then there's Surfshark's Scam Protection, which checks SMS messages for signs of fraud, uses AI to spot suspicious emails and phishing attempts, and blocks access to malicious or unwanted websites. </p><p>All that comes on top of Surfshark's already near-flawless VPN, which is both fast and incredibly private. Along with a <a href="https://www.tomsguide.com/computing/vpns/proton-vpn-passes-its-fourth-consecutive-no-logs-audit-heres-what-that-means-for-your-data">strict no-logs policy</a> and a unique twist on typical <a href="https://www.tomsguide.com/features/what-is-a-vpn-kill-switch-and-why-do-you-need-one">kill switch</a> functionality through <a href="https://www.tomsguide.com/computing/vpns/surfshark-launches-surfshark-everlink-to-bring-you-uninterrupted-vpn-connections">Everlink</a>, it offers post-quantum encryption, RAM-only servers, MultiHop (its <a href="https://www.tomsguide.com/features/what-is-a-double-vpn-and-how-does-it-work">Double VPN</a> feature), and <a href="https://www.tomsguide.com/news/what-is-vpn-obfuscation-and-do-i-need-it">VPN obfuscation</a> through its Camouflage Mode.</p><p>Surfshark One also carries over the niceties from the Starter plan, including <a href="https://www.tomsguide.com/computing/vpns/what-is-surfsharks-alternative-id">Alternative ID</a> and CleanWeb. The latter is Surfshark's built-in ad and tracker blocker. Alternative ID, meanwhile, lets you create an entirely random identity, complete with a fake but realistic-looking name, email address, birthday, and physical address. I've used it countless times for those one-off sign-ups where I'd rather not hand over my real details.</p><p>But Surfshark's real party trick? <a href="https://www.tomsguide.com/computing/vpns/do-you-need-a-vpn-with-unlimited-connections">Unlimited simultaneous connections</a>. This means you can run virtually all your household devices through the VPN without worrying about hitting a device limit. It's a game changer for multi-device households and a big reason why we rate Surfshark so highly for value.</p><p>Overall, Surfshark One's current <a href="http://get.surfshark.net/aff_c?offer_id=1030&amp;aff_id=1691" target="_blank" rel="nofollow"><strong>$2.49-a-month</strong></a> Black Friday deal makes it very easy to recommend. It's a steal if you're looking for a full-blown <a href="https://www.tomsguide.com/best-picks/best-internet-security-suites">internet security suite</a> rather than just a VPN.</p><div data-widget-type="simple" data-model-name="Surfshark"></div><p>We test and review VPN services in the context of legal recreational uses. For example:1. Accessing a service from another country (subject to the terms and conditions of that service).2. Protecting your online security and strengthening your online privacy when abroad.We do not support or condone the illegal or malicious use of VPN services. Consuming pirated content that is paid-for is neither endorsed nor approved by Future Publishing.</p> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/vpns/get-free-antivirus-from-surfshark-vpn-for-black-friday</link>
                                                                            <description>
                            <![CDATA[ Surfshark One is down to just $2.49 per month for Black Friday, giving you antivirus, scam protection, and breach alerts for the same price as its basic Starter plan. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">QFCdgUWdVyLCyCnSg37VcC</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/kvXtCvmUqP2LX4NZ5oQRQn-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 11 Nov 2026 14:28:11 +0000</pubDate>                                                                                                                                <updated>Wed, 11 Nov 2026 14:29:02 +0000</updated>
                                                                                                                                            <category><![CDATA[VPNs]]></category>
                                                    <category><![CDATA[Online Security]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Internet]]></category>
                                                                                                                    <dc:creator><![CDATA[ Krishi Chowdhary ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/WUcG5HtjDyKZQfrGWjyt4h-320-70.png ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Krishi is a VPN writer covering buying guides, how-to&#039;s, and other cybersecurity content here at Tom&#039;s Guide. His expertise lies in reviewing products and software, from VPNs, online browsers, and antivirus solutions to smartphones and laptops. You can find his work on &lt;a href=&quot;https://www.techradar.com/&quot;&gt;TechRadar&lt;/a&gt;,&amp;nbsp;&lt;a href=&quot;https://www.techopedia.com/contributors/krishi&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;Techopedia&lt;/a&gt;, and&amp;nbsp;&lt;a href=&quot;https://techreport.com/author/krishichowdhary/&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;The Tech Report&lt;/a&gt;. As a tech fanatic, Krishi also loves writing about the latest happenings in the world of cybersecurity, AI, and software.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/kvXtCvmUqP2LX4NZ5oQRQn-1920-80.jpg">
                                                            <media:credit><![CDATA[Surfshark]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Surfshark Android app]]></media:description>                                                            <media:text><![CDATA[Surfshark Android app]]></media:text>
                                <media:title type="plain"><![CDATA[Surfshark Android app]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/kvXtCvmUqP2LX4NZ5oQRQn-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Black Friday is almost here, and <a href="https://www.tomsguide.com/reviews/surfshark-vpn-review">Surfshark</a> – one of the <a href="https://www.tomsguide.com/best-picks/best-vpn">best VPNs</a> around and already our highest-rated <a href="https://www.tomsguide.com/best-picks/cheap-vpn">cheap VPN</a> – has joined the party with a deal that gets you its mid-tier Surfshark One plan for the usual price of its entry-level Starter plan.</p><p>Surfshark One is now just <a href="http://get.surfshark.net/aff_c?offer_id=1030&amp;aff_id=1691" target="_blank" rel="nofollow"><strong>$2.49 per month</strong></a> ($67.23 upfront) on a 24-month plan, with an extra three months thrown in for free, bringing your total protection to 27 months. </p><p>It includes everything in the Starter plan – a high-speed VPN, <a href="https://www.tomsguide.com/computing/vpns/what-is-surfsharks-alternative-id">Alternative ID</a>, and CleanWeb – but also adds Surfshark's scam protection, <a href="https://www.tomsguide.com/computing/vpns/why-surfshark-is-the-only-leading-vpn-offering-a-real-antivirus">antivirus</a>, and alert tools. Effectively, you're getting all of that for free alongside the VPN. </p><p>The 15-month Surfshark One plan (12 months + 3 free) is also discounted to $3.09 per month, down from the usual $3.59. But it doesn't come close to matching the value of the 27-month deal. More on why this is one of the <a href="https://www.tomsguide.com/best-picks/vpn-black-friday-deals">best Black Friday VPN deals</a> of the year below.</p><div class="product"><a data-dimension112="3b9883e6-d9b8-11f1-bf11-e3288331b825" data-action="Deal Block" data-label="Now: $2.49 per month" data-dimension48="Now: $2.49 per month" href="http://get.surfshark.net/aff_c?offer_id=1030&amp;aff_id=1691" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:355px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="NT2ETeUvYBCuRnN2scd4SC" name="surfshark logo.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/NT2ETeUvYBCuRnN2scd4SC-1920-80.jpg" mos="" align="middle" fullscreen="" width="355" height="355" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong>Surfshark One | 2 Years + 3 months FREE</strong><br /><del>Was: $2.79 per month </del><br /><a href="http://get.surfshark.net/aff_c?offer_id=1030&amp;aff_id=1691" target="_blank" rel="nofollow" data-dimension112="3b9883e6-d9b8-11f1-bf11-e3288331b825" data-action="Deal Block" data-label="Now: $2.49 per month" data-dimension48="Now: $2.49 per month" data-dimension25=""><strong>Now: $2.49 per month</strong></a><br />We rate Surfshark One as <em>the</em> best bang-for-buck VPN plan on the market, and this exclusive deal makes it an even easier recommendation for anyone looking for an all-in-one online security package.</p><p><strong>What you'll get:</strong></p><p>🛡️ <strong>Full VPN with unlimited simultaneous connections</strong><br /><strong>🔒 Avira-backed antivirus </strong><br />🔍<strong> Private search and data breach alerts</strong><br />📋<strong> 30-day money-back guarantee</strong></p><p>A 24-month plan costs<a href="https://get.surfshark.net/aff_c?offer_id=1030&amp;aff_id=1691" target="_blank" rel="nofollow"> <strong>$2.49 per month</strong></a> ($67.23 upfront pre-tax) and includes a 30-day money-back guarantee so you can test it out risk-free.<a class="view-deal button" href="http://get.surfshark.net/aff_c?offer_id=1030&amp;aff_id=1691" target="_blank" rel="nofollow" data-dimension112="3b9883e6-d9b8-11f1-bf11-e3288331b825" data-action="Deal Block" data-label="Now: $2.49 per month" data-dimension48="Now: $2.49 per month" data-dimension25="">View Deal</a></p></div><h2 id="surfshark-one-is-the-plan-i-39-d-recommend-to-almost-everyone">Surfshark One is the plan I'd recommend to almost everyone</h2><p>Even without its current discounted price, Surfshark One is the best plan in Surfshark's lineup – and one I happily recommend to almost everyone. It gives you pretty much everything Surfshark has to offer, with only <a href="https://www.tomsguide.com/computing/internet/incogni-review">Incogni</a> and <a href="https://www.tomsguide.com/computing/internet/online-security/identity-theft-protection">identity theft coverage</a> from the top-tier Surfshark One+ plan left out. But honestly, most people can do just fine without those extras.</p><p>For starters, you get a pretty capable antivirus solution backed by Avira. It offers real-time protection that checks apps and files as they're downloaded, installed, and used, along with scheduled scans to check your device for threats. There's also webcam protection, which blocks apps and websites from accessing your camera without permission.</p><p>Surfshark Alert keeps an eye out for your personal information online and notifies you if details linked to your email, credit card, or ID show up in a data breach. You also get regular personal data security reports, so you can keep tabs on potential leaks.</p><p>Then there's Surfshark's Scam Protection, which checks SMS messages for signs of fraud, uses AI to spot suspicious emails and phishing attempts, and blocks access to malicious or unwanted websites. </p><p>All that comes on top of Surfshark's already near-flawless VPN, which is both fast and incredibly private. Along with a <a href="https://www.tomsguide.com/computing/vpns/proton-vpn-passes-its-fourth-consecutive-no-logs-audit-heres-what-that-means-for-your-data">strict no-logs policy</a> and a unique twist on typical <a href="https://www.tomsguide.com/features/what-is-a-vpn-kill-switch-and-why-do-you-need-one">kill switch</a> functionality through <a href="https://www.tomsguide.com/computing/vpns/surfshark-launches-surfshark-everlink-to-bring-you-uninterrupted-vpn-connections">Everlink</a>, it offers post-quantum encryption, RAM-only servers, MultiHop (its <a href="https://www.tomsguide.com/features/what-is-a-double-vpn-and-how-does-it-work">Double VPN</a> feature), and <a href="https://www.tomsguide.com/news/what-is-vpn-obfuscation-and-do-i-need-it">VPN obfuscation</a> through its Camouflage Mode.</p><p>Surfshark One also carries over the niceties from the Starter plan, including <a href="https://www.tomsguide.com/computing/vpns/what-is-surfsharks-alternative-id">Alternative ID</a> and CleanWeb. The latter is Surfshark's built-in ad and tracker blocker. Alternative ID, meanwhile, lets you create an entirely random identity, complete with a fake but realistic-looking name, email address, birthday, and physical address. I've used it countless times for those one-off sign-ups where I'd rather not hand over my real details.</p><p>But Surfshark's real party trick? <a href="https://www.tomsguide.com/computing/vpns/do-you-need-a-vpn-with-unlimited-connections">Unlimited simultaneous connections</a>. This means you can run virtually all your household devices through the VPN without worrying about hitting a device limit. It's a game changer for multi-device households and a big reason why we rate Surfshark so highly for value.</p><p>Overall, Surfshark One's current <a href="http://get.surfshark.net/aff_c?offer_id=1030&amp;aff_id=1691" target="_blank" rel="nofollow"><strong>$2.49-a-month</strong></a> Black Friday deal makes it very easy to recommend. It's a steal if you're looking for a full-blown <a href="https://www.tomsguide.com/best-picks/best-internet-security-suites">internet security suite</a> rather than just a VPN.</p><div data-widget-type="simple" data-model-name="Surfshark"></div><p>We test and review VPN services in the context of legal recreational uses. For example:1. Accessing a service from another country (subject to the terms and conditions of that service).2. Protecting your online security and strengthening your online privacy when abroad.We do not support or condone the illegal or malicious use of VPN services. Consuming pirated content that is paid-for is neither endorsed nor approved by Future Publishing.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Dangerous new Gmail exploit lets hackers read your emails for a monthly fee of $1,000 — and it even works after a password reset ]]></title>
                                                                                                <dc:content><![CDATA[ <p>A developer of hacking tools is advertising a $ 1,000-per-month feature that allegedly lets bad actors have continuous access to vulnerable Gmail inboxes. The report from the cybersecurity firm <a href="https://www.infostealers.com/article/remus-stealer-markets-persistent-gmail-access-hudson-rock-investigates/" target="_blank">Hudson Rock</a> claims the tool can keep accessing victims' Gmail inboxes even after password changes, browser closure and session revocations.</p><p>If this is true, it means that hackers could get access to password reset links, verification codes and therefore access to other accounts. </p><p>The malware, called Remus Stealer, supposedly gives bad actors a searchable inbox directly inside a stolen dashboard. </p><p>Hudson Rock says it spoke with the developer and a customer, who used the tool and provided them with screenshots of email messages, timestamps and control for sharing an impacted mailbox with other operators.</p><h2 id="how-the-hack-works">How the hack works</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="9Zxu3F6jb3NMMcWmLsydu" name="Gmail on iPhone.jpg" alt="Gmail logo on iPhone" src="https://cdn.mos.cms.futurecdn.net/9Zxu3F6jb3NMMcWmLsydu-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Per the security firm, the email-intercepting tool doesn't collect browser cookie files and Remus claims that password changes do not stop it. </p><p>It somehow avoids Google's anti-fraud checks, though the developer didn't give Hudson Rock any technical details, for obvious reasons. Remus did say that it interacts with browser memory. This doesn't explain how it survives password changes or session revocation though.</p><p>“The leading broad explanation is that Remus acquires or establishes reusable authorization while it has access to a signed-in browser. A remote component could then request mail after the local executable exits, for as long as the service accepts that authorization,” Hudson Rock wrote in its report.</p><p>Tom's Guide reached out to Google about this tool and will update this article if and when the company responds. </p><h2 id="how-to-stay-safe">How to stay safe</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="J7ewBFPXUpB7ZbDnm7ZrRn" name="Phishing" alt="Hooded cybercriminal sitting with laptop surround by hooks" src="https://cdn.mos.cms.futurecdn.net/J7ewBFPXUpB7ZbDnm7ZrRn-1920-80.jpg" mos="" align="middle" fullscreen="" width="1280" height="720" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Getty Images)</span></figcaption></figure><p>The tool is advertised for "enterprise" customers, so most people should be safe from the damage it can do. It most likely will be used to target organizations and high level individuals. Plus, the mailbox needs to be compromised already before the tool can be utilized.</p><p>But, if you somehow find yourself impacted by this infostealer here are some recommended steps from Hudson Rock:</p><ul><li><strong>Isolate the infected computer and clean it before accessing trusted accounts again</strong></li><li><strong>Change compromised passwords on a clean device</strong></li><li><strong>Review signed-in devices and revoke suspicious session and third-party access</strong></li><li><strong>Check your Gmail settings for unauthorized changes</strong></li><li><strong>Secure other accounts that use the compromised mailbox for password resets or verification</strong></li></ul><p>As for protecting your email before the tool can even be applied, make sure you're on guard against phishing attacks. Scammers like to  <a href="https://www.tomsguide.com/news/unpaid-invoices-are-one-of-the-easiest-ways-scammers-try-and-trick-you-what-to-look-out-for">instill a sense of urgency</a>, and their emails often have red flags like <a href="https://www.tomsguide.com/news/irs-just-issued-a-warning-over-this-texting-scam-watch-out">misspelled words or poor grammar</a>. Of course, you should double-check the sender's email address too. </p><p>To keep your computer safe from malware and other viruses that could come from opening a phishing email, it's important to install the <a href="https://www.tomsguide.com/computing/antivirus/best-antivirus-software">best antivirus software</a> on your PC, the <a href="https://www.tomsguide.com/best-picks/best-mac-antivirus">best Mac antivirus software</a> on your Mac and one of the <a href="https://www.tomsguide.com/best-picks/best-android-antivirus">best Android antivirus apps</a> on your Android smartphone.</p><p>If this new tool is as effective as the hackers behind it claim, Google will likely introduce additional protections inside Gmail to keep both its business and ordinary users safe.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/us/best-password-managers,review-3785.html"><strong>These are the 5 best password managers to protect your online accounts</strong></a></li><li><a href="https://www.tomsguide.com/phones/android-phones/so-called-sms-of-death-can-crash-android-phones-with-just-a-text-what-you-need-to-know"><strong>So-called 'SMS of Death' can crash Android phones with just a text: what you need to know</strong></a></li><li><a href="https://www.tomsguide.com/computing/online-security/over-300-chrome-extensions-found-hijacking-searches-of-13-4-million-users-how-to-stay-safe"><strong>Over 300 Chrome extensions found hijacking searches of 13.4 million users — how to stay safe</strong></a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/malware-adware/dangerous-new-gmail-exploit-lets-hackers-read-your-emails-for-a-monthly-fee-of-usd1-000-and-it-even-works-after-a-password-reset</link>
                                                                            <description>
                            <![CDATA[ A new tool allegedly lets attackers access Gmail accounts even after password changes and session revocation. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">aVWGqN4cd5wvQ2TBKuQaYG</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/CUsJfx4ZxhsmotgspP3qqX-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Mon, 09 Nov 2026 21:23:22 +0000</pubDate>                                                                                                                                <updated>Tue, 10 Nov 2026 18:20:32 +0000</updated>
                                                                                                                                            <category><![CDATA[Malware & Adware]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Internet]]></category>
                                                    <category><![CDATA[Online Security]]></category>
                                                                                                <author><![CDATA[ scott.younker@futurenet.com (Scott Younker) ]]></author>                    <dc:creator><![CDATA[ Scott Younker ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/RZsUpqcJ6Uj2q83oCUwNhQ-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Scott Younker is the West Coast Reporter at Tom’s Guide. He covers all the latest tech news, including phones, computing and more. He’s been involved in tech since 2011 covering everything from cameras and swimming pool equipment to the latest gaming consoles and smart TVs. He is on a seemingly never ending hunt to build the easiest to use home media system. &lt;/p&gt;&lt;p&gt;Before Tom’s Guide, Scott worked for publications like &lt;em&gt;Digital Trends, Outdoor Photographer, Dead Beats Panel&lt;/em&gt;, and in a brief detour, &lt;em&gt;America’s Funniest Home Videos&lt;/em&gt;. Yes, he has seen more pratfalls, silly pets and ridiculous home movie fails than is reasonably healthy. &lt;/p&gt;&lt;p&gt;When not writing about the latest devices or advances in chipsets, be sure to ask about Scott about disc golf and sustainability, or just if you’re being cheeky, ask about his noodle arm. If you truly want to get nerdy, bring up board games and his ongoing losing streak. &lt;/p&gt;&lt;p&gt;Scott joined Tom&#039;s Guide in 2024 as the West Coast Reporter. He graduated from the School of Journalism at the University of Oregon with a degree in magazine journalism and a minor in communications. While there he blogged or wrote for several magazines including the Fluxx, Ethos and the Oregon Commentator. He briefly wrote and managed a moderately successful blog focused on web comics. &lt;br&gt;Send secure tips on Signal: scyo1.55.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/CUsJfx4ZxhsmotgspP3qqX-1920-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A smartphone with the Gmail logo on it resting on top of a computer keyboard.]]></media:description>                                                            <media:text><![CDATA[A smartphone with the Gmail logo on it resting on top of a computer keyboard.]]></media:text>
                                <media:title type="plain"><![CDATA[A smartphone with the Gmail logo on it resting on top of a computer keyboard.]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/CUsJfx4ZxhsmotgspP3qqX-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>A developer of hacking tools is advertising a $ 1,000-per-month feature that allegedly lets bad actors have continuous access to vulnerable Gmail inboxes. The report from the cybersecurity firm <a href="https://www.infostealers.com/article/remus-stealer-markets-persistent-gmail-access-hudson-rock-investigates/" target="_blank">Hudson Rock</a> claims the tool can keep accessing victims' Gmail inboxes even after password changes, browser closure and session revocations.</p><p>If this is true, it means that hackers could get access to password reset links, verification codes and therefore access to other accounts. </p><p>The malware, called Remus Stealer, supposedly gives bad actors a searchable inbox directly inside a stolen dashboard. </p><p>Hudson Rock says it spoke with the developer and a customer, who used the tool and provided them with screenshots of email messages, timestamps and control for sharing an impacted mailbox with other operators.</p><h2 id="how-the-hack-works">How the hack works</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="9Zxu3F6jb3NMMcWmLsydu" name="Gmail on iPhone.jpg" alt="Gmail logo on iPhone" src="https://cdn.mos.cms.futurecdn.net/9Zxu3F6jb3NMMcWmLsydu-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Per the security firm, the email-intercepting tool doesn't collect browser cookie files and Remus claims that password changes do not stop it. </p><p>It somehow avoids Google's anti-fraud checks, though the developer didn't give Hudson Rock any technical details, for obvious reasons. Remus did say that it interacts with browser memory. This doesn't explain how it survives password changes or session revocation though.</p><p>“The leading broad explanation is that Remus acquires or establishes reusable authorization while it has access to a signed-in browser. A remote component could then request mail after the local executable exits, for as long as the service accepts that authorization,” Hudson Rock wrote in its report.</p><p>Tom's Guide reached out to Google about this tool and will update this article if and when the company responds. </p><h2 id="how-to-stay-safe">How to stay safe</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="J7ewBFPXUpB7ZbDnm7ZrRn" name="Phishing" alt="Hooded cybercriminal sitting with laptop surround by hooks" src="https://cdn.mos.cms.futurecdn.net/J7ewBFPXUpB7ZbDnm7ZrRn-1920-80.jpg" mos="" align="middle" fullscreen="" width="1280" height="720" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Getty Images)</span></figcaption></figure><p>The tool is advertised for "enterprise" customers, so most people should be safe from the damage it can do. It most likely will be used to target organizations and high level individuals. Plus, the mailbox needs to be compromised already before the tool can be utilized.</p><p>But, if you somehow find yourself impacted by this infostealer here are some recommended steps from Hudson Rock:</p><ul><li><strong>Isolate the infected computer and clean it before accessing trusted accounts again</strong></li><li><strong>Change compromised passwords on a clean device</strong></li><li><strong>Review signed-in devices and revoke suspicious session and third-party access</strong></li><li><strong>Check your Gmail settings for unauthorized changes</strong></li><li><strong>Secure other accounts that use the compromised mailbox for password resets or verification</strong></li></ul><p>As for protecting your email before the tool can even be applied, make sure you're on guard against phishing attacks. Scammers like to  <a href="https://www.tomsguide.com/news/unpaid-invoices-are-one-of-the-easiest-ways-scammers-try-and-trick-you-what-to-look-out-for">instill a sense of urgency</a>, and their emails often have red flags like <a href="https://www.tomsguide.com/news/irs-just-issued-a-warning-over-this-texting-scam-watch-out">misspelled words or poor grammar</a>. Of course, you should double-check the sender's email address too. </p><p>To keep your computer safe from malware and other viruses that could come from opening a phishing email, it's important to install the <a href="https://www.tomsguide.com/computing/antivirus/best-antivirus-software">best antivirus software</a> on your PC, the <a href="https://www.tomsguide.com/best-picks/best-mac-antivirus">best Mac antivirus software</a> on your Mac and one of the <a href="https://www.tomsguide.com/best-picks/best-android-antivirus">best Android antivirus apps</a> on your Android smartphone.</p><p>If this new tool is as effective as the hackers behind it claim, Google will likely introduce additional protections inside Gmail to keep both its business and ordinary users safe.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/us/best-password-managers,review-3785.html"><strong>These are the 5 best password managers to protect your online accounts</strong></a></li><li><a href="https://www.tomsguide.com/phones/android-phones/so-called-sms-of-death-can-crash-android-phones-with-just-a-text-what-you-need-to-know"><strong>So-called 'SMS of Death' can crash Android phones with just a text: what you need to know</strong></a></li><li><a href="https://www.tomsguide.com/computing/online-security/over-300-chrome-extensions-found-hijacking-searches-of-13-4-million-users-how-to-stay-safe"><strong>Over 300 Chrome extensions found hijacking searches of 13.4 million users — how to stay safe</strong></a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Google is forcing schools to choose between AI and Search — here's what DuckDuckGo is doing about it ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Google says it's giving schools more control over AI, but there's a catch that could change how millions of students search the web. Schools that want to keep AI-generated answers out of the classroom will also have to give up Google Search through student accounts. Now, DuckDuckGo is stepping in with an alternative.</p><p>In a Tuesday <a href="https://blog.google/products-and-platforms/products/education/ai-learning-era-updates-2026/">announcement</a>, Google said it will disable access to several products, including Gemini and Google Search, for K–12 student accounts unless school administrators turn them on.</p><p>Administrators will be able to enable Search without turning on Gemini, but they won't be able to remove AI Overviews and other built-in AI features from Google Search.</p><p>"If a school is not comfortable with that and simply wants AI off, then they have the choice to not have Search on at all," Chris Phillips, Google's vice president of education, <a href="https://www.chalkbeat.org/2026/11/03/google-pushes-gemini-guided-learning-amid-ai-backlash/">told Chalkbeat</a>.</p><p>The decision has sparked backlash from educators and lawmakers, while Google maintains that the changes give schools more control over the technology students use.</p><p>DuckDuckGo, however, says schools shouldn't have to make that choice. In a statement to Tom's Guide, the company argued there's no technical reason Google can't disable AI features in Search. And it isn't just criticizing Google's decision. DuckDuckGo offers an AI-free version of its search engine and instructions for schools to make it their default, giving districts another option if they don't want AI-generated answers in student searches.</p><p>With Google's changes expected to roll out in early 2027, schools now face a decision about how students will search the web and how much AI they want involved.</p><h2 id="why-google-search-is-part-of-the-deal">Why Google Search is part of the deal</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="qUqci6BhkwpRRUkMZRyfaA" name="Google search" alt="Google search" src="https://cdn.mos.cms.futurecdn.net/qUqci6BhkwpRRUkMZRyfaA-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Getty Images)</span></figcaption></figure><p>Google has spent years integrating AI into its search engine, most visibly through AI Overviews, which provide generated summaries above traditional search results.</p><p>Now, those features are becoming a sticking point for schools that want students to research independently without relying on AI-generated answers.</p><p>"Search and AI are deeply integrated," Chris Phillips, Google's vice president for education, <a href="https://www.inquirer.com/news/nation-world/google-ai-schools-student-software-chatbot-gemini-guided-learning-20261103.html" target="_blank">told The New York Times</a>.</p><p>According to Phillips, students in schools that prohibit AI entirely will not have access to Google Search through their school accounts. Instead, they'll see a message indicating that the service is unavailable.</p><p>The restriction applies to school-managed accounts under the new controls,</p><p>Google has also made it clear that administrators can enable individual products, including Gemini and Google Search, rather than accepting every AI service as a package. But the problem is much greater because schools still cannot offer an entirely AI-free version of Google Search.</p><h2 id="duckduckgo-says-schools-don-39-t-have-to-choose">DuckDuckGo says schools don't have to choose</h2><p>Not everyone agrees with Google's explanation for keeping AI in Search.</p><p>In a statement to Tom's Guide, DuckDuckGo pushed back on the idea that schools must accept AI-generated answers to keep using a search engine.</p><p>"There is no technical reason why Google can't turn AI off," the company said, arguing that AI Overviews is a search feature similar to maps, flights or weather that Google can choose when to display.</p><p>DuckDuckGo points to its own search engine as an alternative. Unlike Google, it allows users to adjust how often AI-generated answers appear or turn them off completely.</p><p>The company also offers <a href="https://noai.duckduckgo.com/" target="_blank">noai.duckduckgo.com</a>, a version of its search engine that automatically disables AI features and filters AI-generated images from results without requiring users to change any settings.</p><p>Schools looking to avoid Google's restrictions can also <a href="https://duckduckgo.com/duckduckgo-help-pages/get-duckduckgo/deploy-duckduckgo" target="_blank">make DuckDuckGo their default search engine</a>, according to the company.</p><h2 id="google-is-also-bringing-ai-tutoring-to-search">Google is also bringing AI tutoring to Search</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="X6dTrYPSS9g6VcZkyqRAhX" name="shutterstock_2810482075-2" alt="gemini ai" src="https://cdn.mos.cms.futurecdn.net/X6dTrYPSS9g6VcZkyqRAhX-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Alongside the changes to school controls, Google is expanding Guided Learning, an AI-powered feature designed to help students understand subjects rather than simply giving them answers.</p><p><a href="https://www.tomsguide.com/ai/google-gemini/google-geminis-guided-learning-feature-makes-ai-actually-check-if-you-understand-heres-how-it-works">Guided Learning</a> is already available in Gemini, and Google announced that the feature is now available globally in Google Classroom.</p><p>The company is also bringing similar capabilities to Google Search, beginning with a pilot in selected U.S. schools later this month.</p><p>For example, a student who searches for help with a physics problem might receive questions and explanations that guide them through the solution rather than an immediate final answer.</p><p>Someone researching a book report could receive prompts encouraging them to think through the material. Google calls this approach "productive struggle," the idea that students learn more when they work through challenges rather than immediately receiving solutions.</p><p>In <a href="https://www.tomsguide.com/ai/google-just-gave-your-schoolwork-a-major-upgrade-with-personal-class-notebooks-heres-how-they-work-in-notebooklm">Google Classroom</a>, teachers can assign Guided Learning activities based on class materials and receive feedback about where students might need additional support.</p><p>Google says its research shows that Guided Learning can improve learning outcomes. However, the effectiveness of these tools in everyday classrooms will depend on how students use them and how well the AI avoids simply completing assignments for them.</p><p>There are already questions about those safeguards. In testing reported by The New York Times, the consumer version of Guided Learning produced a detailed essay when given an Advanced Placement history prompt. Google says the school version includes additional restrictions.</p><h2 id="many-schools-are-pushing-back-on-ai">Many schools are pushing back on AI</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:7680px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="F7dAoX9wgtSbdPNEuEcSXL" name="shutterstock_2670096487-2" alt="kids in classroom" src="https://cdn.mos.cms.futurecdn.net/F7dAoX9wgtSbdPNEuEcSXL-1920-80.jpg" mos="" align="middle" fullscreen="" width="7680" height="4320" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>The changes come amid <a href="https://www.commonsensemedia.org/research/teens-in-the-ai-era-schoolwork-and-skills-that-matter" target="_blank">growing concerns about how AI tools affect children</a> and teenagers.</p><p>AI can be useful for explaining difficult concepts, brainstorming ideas and helping students study. But educators also worry that students may become too dependent on chatbots, use them to complete assignments or trust answers that aren't always accurate.</p><p>In September, New York City and Los Angeles, two of the country's largest school districts, introduced restrictions on student access to generative AI tools on school devices.</p><p>Some school officials have specifically wanted the ability to disable Google's AI Overviews while preserving conventional web searches.</p><p>Google's new policy does not provide that option. The company is reversing an earlier decision to enable certain AI features by default in Google Classroom for schools that had already permitted Gemini access.</p><p>That reversal gives administrators more control over which Google AI products students can use. But it stops short of letting schools completely separate Google Search from its built-in AI features.</p><h2 id="what-this-means-for-parents-and-students">What this means for parents and students</h2><p>For families, the most important thing to understand is that these changes are not taking effect immediately. Google says that it will share more details with schools in the coming months, with the new controls expected to arrive in early 2027.</p><p>Whether a student loses access to Google Search through their school account will depend on the choices made by their district or school administrators.</p><p>Schools can enable specific Google products individually, but those that want to keep AI entirely out of Google Search may need to consider alternative search engines or research tools. </p><p>Parents concerned about AI in their children's classrooms can ask their schools which Google services are currently enabled, whether students can access Gemini, and how the district plans to handle the upcoming changes.</p><p>It's also worth asking whether students will be using Guided Learning and what oversight teachers will have over those interactions.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/living-near-an-ai-data-center-might-not-hurt-your-homes-value-heres-what-new-research-found"><strong>Living near an AI data center might not hurt your home's value — here's what new research found</strong></a></li><li><strong></strong><a href="https://www.tomsguide.com/ai/chatgpt-has-a-clever-new-way-to-fight-back-against-election-deepfakes-i-tried-it-and-it-actually-works"><strong>ChatGPT has a clever new way to fight back against election deepfakes — I tried it and it actually works</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/ai/a-few-tech-leaders-are-rebranding-ai-as-superintelligence-calling-it-that-doesnt-make-it-accurate"><strong>A few tech leaders are rebranding AI as ‘superintelligence’ — calling it that doesn’t make it accurate</strong></a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/ai/google-is-giving-schools-a-choice-allow-ai-or-lose-google-search</link>
                                                                            <description>
                            <![CDATA[ Google is changing how AI works in schools, but districts that block it completely could lose Google Search. Here's what parents need to know. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">54SDCQhUYhWWCZ93brDa3h</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/oN7k8xZWALYYQiHzvRWAQW-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 03 Nov 2026 20:37:52 +0000</pubDate>                                                                                                                                <updated>Thu, 05 Nov 2026 01:09:51 +0000</updated>
                                                                                                                                            <category><![CDATA[AI]]></category>
                                                    <category><![CDATA[Search Engines]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Internet]]></category>
                                                                                                <author><![CDATA[ amanda.caswell@futurenet.com (Amanda Caswell) ]]></author>                    <dc:creator><![CDATA[ Amanda Caswell ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/zYjevim2q7FjQiefqpjZRB-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/oN7k8xZWALYYQiHzvRWAQW-1920-80.jpg">
                                                            <media:credit><![CDATA[DuckDuckGo]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[DuckDuckGo Search Engine]]></media:description>                                                            <media:text><![CDATA[DuckDuckGo Search Engine]]></media:text>
                                <media:title type="plain"><![CDATA[DuckDuckGo Search Engine]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/oN7k8xZWALYYQiHzvRWAQW-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Google says it's giving schools more control over AI, but there's a catch that could change how millions of students search the web. Schools that want to keep AI-generated answers out of the classroom will also have to give up Google Search through student accounts. Now, DuckDuckGo is stepping in with an alternative.</p><p>In a Tuesday <a href="https://blog.google/products-and-platforms/products/education/ai-learning-era-updates-2026/">announcement</a>, Google said it will disable access to several products, including Gemini and Google Search, for K–12 student accounts unless school administrators turn them on.</p><p>Administrators will be able to enable Search without turning on Gemini, but they won't be able to remove AI Overviews and other built-in AI features from Google Search.</p><p>"If a school is not comfortable with that and simply wants AI off, then they have the choice to not have Search on at all," Chris Phillips, Google's vice president of education, <a href="https://www.chalkbeat.org/2026/11/03/google-pushes-gemini-guided-learning-amid-ai-backlash/">told Chalkbeat</a>.</p><p>The decision has sparked backlash from educators and lawmakers, while Google maintains that the changes give schools more control over the technology students use.</p><p>DuckDuckGo, however, says schools shouldn't have to make that choice. In a statement to Tom's Guide, the company argued there's no technical reason Google can't disable AI features in Search. And it isn't just criticizing Google's decision. DuckDuckGo offers an AI-free version of its search engine and instructions for schools to make it their default, giving districts another option if they don't want AI-generated answers in student searches.</p><p>With Google's changes expected to roll out in early 2027, schools now face a decision about how students will search the web and how much AI they want involved.</p><h2 id="why-google-search-is-part-of-the-deal">Why Google Search is part of the deal</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="qUqci6BhkwpRRUkMZRyfaA" name="Google search" alt="Google search" src="https://cdn.mos.cms.futurecdn.net/qUqci6BhkwpRRUkMZRyfaA-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Getty Images)</span></figcaption></figure><p>Google has spent years integrating AI into its search engine, most visibly through AI Overviews, which provide generated summaries above traditional search results.</p><p>Now, those features are becoming a sticking point for schools that want students to research independently without relying on AI-generated answers.</p><p>"Search and AI are deeply integrated," Chris Phillips, Google's vice president for education, <a href="https://www.inquirer.com/news/nation-world/google-ai-schools-student-software-chatbot-gemini-guided-learning-20261103.html" target="_blank">told The New York Times</a>.</p><p>According to Phillips, students in schools that prohibit AI entirely will not have access to Google Search through their school accounts. Instead, they'll see a message indicating that the service is unavailable.</p><p>The restriction applies to school-managed accounts under the new controls,</p><p>Google has also made it clear that administrators can enable individual products, including Gemini and Google Search, rather than accepting every AI service as a package. But the problem is much greater because schools still cannot offer an entirely AI-free version of Google Search.</p><h2 id="duckduckgo-says-schools-don-39-t-have-to-choose">DuckDuckGo says schools don't have to choose</h2><p>Not everyone agrees with Google's explanation for keeping AI in Search.</p><p>In a statement to Tom's Guide, DuckDuckGo pushed back on the idea that schools must accept AI-generated answers to keep using a search engine.</p><p>"There is no technical reason why Google can't turn AI off," the company said, arguing that AI Overviews is a search feature similar to maps, flights or weather that Google can choose when to display.</p><p>DuckDuckGo points to its own search engine as an alternative. Unlike Google, it allows users to adjust how often AI-generated answers appear or turn them off completely.</p><p>The company also offers <a href="https://noai.duckduckgo.com/" target="_blank">noai.duckduckgo.com</a>, a version of its search engine that automatically disables AI features and filters AI-generated images from results without requiring users to change any settings.</p><p>Schools looking to avoid Google's restrictions can also <a href="https://duckduckgo.com/duckduckgo-help-pages/get-duckduckgo/deploy-duckduckgo" target="_blank">make DuckDuckGo their default search engine</a>, according to the company.</p><h2 id="google-is-also-bringing-ai-tutoring-to-search">Google is also bringing AI tutoring to Search</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="X6dTrYPSS9g6VcZkyqRAhX" name="shutterstock_2810482075-2" alt="gemini ai" src="https://cdn.mos.cms.futurecdn.net/X6dTrYPSS9g6VcZkyqRAhX-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Alongside the changes to school controls, Google is expanding Guided Learning, an AI-powered feature designed to help students understand subjects rather than simply giving them answers.</p><p><a href="https://www.tomsguide.com/ai/google-gemini/google-geminis-guided-learning-feature-makes-ai-actually-check-if-you-understand-heres-how-it-works">Guided Learning</a> is already available in Gemini, and Google announced that the feature is now available globally in Google Classroom.</p><p>The company is also bringing similar capabilities to Google Search, beginning with a pilot in selected U.S. schools later this month.</p><p>For example, a student who searches for help with a physics problem might receive questions and explanations that guide them through the solution rather than an immediate final answer.</p><p>Someone researching a book report could receive prompts encouraging them to think through the material. Google calls this approach "productive struggle," the idea that students learn more when they work through challenges rather than immediately receiving solutions.</p><p>In <a href="https://www.tomsguide.com/ai/google-just-gave-your-schoolwork-a-major-upgrade-with-personal-class-notebooks-heres-how-they-work-in-notebooklm">Google Classroom</a>, teachers can assign Guided Learning activities based on class materials and receive feedback about where students might need additional support.</p><p>Google says its research shows that Guided Learning can improve learning outcomes. However, the effectiveness of these tools in everyday classrooms will depend on how students use them and how well the AI avoids simply completing assignments for them.</p><p>There are already questions about those safeguards. In testing reported by The New York Times, the consumer version of Guided Learning produced a detailed essay when given an Advanced Placement history prompt. Google says the school version includes additional restrictions.</p><h2 id="many-schools-are-pushing-back-on-ai">Many schools are pushing back on AI</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:7680px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="F7dAoX9wgtSbdPNEuEcSXL" name="shutterstock_2670096487-2" alt="kids in classroom" src="https://cdn.mos.cms.futurecdn.net/F7dAoX9wgtSbdPNEuEcSXL-1920-80.jpg" mos="" align="middle" fullscreen="" width="7680" height="4320" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>The changes come amid <a href="https://www.commonsensemedia.org/research/teens-in-the-ai-era-schoolwork-and-skills-that-matter" target="_blank">growing concerns about how AI tools affect children</a> and teenagers.</p><p>AI can be useful for explaining difficult concepts, brainstorming ideas and helping students study. But educators also worry that students may become too dependent on chatbots, use them to complete assignments or trust answers that aren't always accurate.</p><p>In September, New York City and Los Angeles, two of the country's largest school districts, introduced restrictions on student access to generative AI tools on school devices.</p><p>Some school officials have specifically wanted the ability to disable Google's AI Overviews while preserving conventional web searches.</p><p>Google's new policy does not provide that option. The company is reversing an earlier decision to enable certain AI features by default in Google Classroom for schools that had already permitted Gemini access.</p><p>That reversal gives administrators more control over which Google AI products students can use. But it stops short of letting schools completely separate Google Search from its built-in AI features.</p><h2 id="what-this-means-for-parents-and-students">What this means for parents and students</h2><p>For families, the most important thing to understand is that these changes are not taking effect immediately. Google says that it will share more details with schools in the coming months, with the new controls expected to arrive in early 2027.</p><p>Whether a student loses access to Google Search through their school account will depend on the choices made by their district or school administrators.</p><p>Schools can enable specific Google products individually, but those that want to keep AI entirely out of Google Search may need to consider alternative search engines or research tools. </p><p>Parents concerned about AI in their children's classrooms can ask their schools which Google services are currently enabled, whether students can access Gemini, and how the district plans to handle the upcoming changes.</p><p>It's also worth asking whether students will be using Guided Learning and what oversight teachers will have over those interactions.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/living-near-an-ai-data-center-might-not-hurt-your-homes-value-heres-what-new-research-found"><strong>Living near an AI data center might not hurt your home's value — here's what new research found</strong></a></li><li><strong></strong><a href="https://www.tomsguide.com/ai/chatgpt-has-a-clever-new-way-to-fight-back-against-election-deepfakes-i-tried-it-and-it-actually-works"><strong>ChatGPT has a clever new way to fight back against election deepfakes — I tried it and it actually works</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/ai/a-few-tech-leaders-are-rebranding-ai-as-superintelligence-calling-it-that-doesnt-make-it-accurate"><strong>A few tech leaders are rebranding AI as ‘superintelligence’ — calling it that doesn’t make it accurate</strong></a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ So-called 'SMS of Death' can crash Android phones with just a text: what you need to know ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Late last week, a report popped up about a new Android phone exploit the security researcher dubbed "SMS of Death." <a href="https://smsofdeath.com/" target="_blank">Per the report</a>, the attack, tracked as "CVE-2026-58882," lets malicious actors disrupt cellphone service or crash Android phones by overloading them with a repeating crafted SMS text message.</p><p>The denial-of-service flaw can even interrupt ongoing calls, including emergency calls, without requiring you to open the message. Apparently, the Android operating system processes the message before it even reaches your text message inbox, meaning you wouldn't immediately understand what caused the phone to crash.</p><p>Researcher Mark Blah says that even if you reboot your phone, the hacked message "stays queued and is retried on every boot, so the phone can crash on startup until it is cleared (recovery below)."</p><p>Upon finding Blah's report, Tom's Guide reached out to Google because the report claimed that Google had deemed it a "non-priority." Google has not yet responded to our inquiries. </p><p>However, some Android phones may already have the exploit patched. </p><h2 id="october-patch">October patch</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="eCnerPCYSMKFXh3YbyUbjk" name="android-17-logo-on-pixel" alt="Android 17 logo on a Google Pixel 9 Pro" src="https://cdn.mos.cms.futurecdn.net/eCnerPCYSMKFXh3YbyUbjk-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sanuj Bhatia / Tom's Guide)</span></figcaption></figure><p>Blah's report found that the exploit affects Android versions 12 up to 16 and was discovered on multiple devices, including Pixel 9s and Samsung Galaxy phones. </p><p>It appears Google <a href="https://android.googlesource.com/platform/frameworks/opt/telephony/+/735d9672603fa206c4b43cb668c1aa273db70b97" target="_blank">patched the exploit</a> in the <a href="https://source.android.com/docs/security/bulletin/2026/2026-10-01" target="_blank">October 2026 Android security update</a> (if you haven't updated your Android phone, you should). However, that's only for Android versions 14 through 17. It does not appear to be available for any devices still running Android 12 or 13.</p><p>Per Blah, the flaw uses an improper validation of a header length in the Android WapPushOverSms.decodeWapPdu function. Attacks send a malformed WAP Push message to the targeted phone.</p><p>When this message is translated, it turns into a negative value that Android attempts to allocate memory for, which triggers a NegativeArraySizeException that crashes the com.android.phone process.</p><p>That process manages cellular functions, which disrupts connectivity and disconnects calls. This causes repeated crashes because the network tries to redeliver the malicious messages, which stack up and force Android to process each one. It only takes 20 bad messages to cause the crash.</p><p>Per the Google fix, the crash is prevented by catching the exceptions triggered by the attack messages. Then the patch deletes the messages from the SMS database to prevent them from looping.</p><h2 id="what-you-need-to-do">What you need to do</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="mkJRcLhJqirhreixZzBNpT" name="mobile security" alt="mobile security" src="https://cdn.mos.cms.futurecdn.net/mkJRcLhJqirhreixZzBNpT-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Android security updates are generally automatically installed on supported devices. So you should already have them. </p><p>However, availability does depend on the phone maker and network carrier. So you should check your phone to see if the October patch has been applied. A restart may be required to complete the installation.</p><p>For the most part, this isn't an attack you can do anything about, but based on the patch notes and Blah's report, it doesn't seem to be widely deployed; instead, it appears to target individual phones. Since a working proof-of-concept of the exploit has been released, the best thing you can do is make sure you keep your phone up to date.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/phones/samsung-phones/now-is-the-perfect-time-for-samsung-to-release-a-cheaper-galaxy-z-fold-9-fe-and-its-all-because-of-iphone-duo"><strong>Now is the perfect time for Samsung to release a cheaper Galaxy Z Fold 9 FE — and it's all because of iPhone Duo</strong></a></li><li><a href="https://www.tomsguide.com/phones/android-phones/3-android-auto-apps-that-do-what-google-maps-and-waze-cant"><strong>3 Android Auto apps that do what Google Maps and Waze can’t</strong></a></li><li><a href="https://www.tomsguide.com/phones/iphone-duo-vs-samsung-galaxy-z-fold-8"><strong>iPhone Duo vs. Samsung Galaxy Z Fold 8: Which foldable is the best?</strong></a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/phones/android-phones/so-called-sms-of-death-can-crash-android-phones-with-just-a-text-what-you-need-to-know</link>
                                                                            <description>
                            <![CDATA[ A potentially debilitating SMS attack has been discovered that can crash Android phones, but a fix may already be in place. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">FC3xHmjfBzamcSQUcj7NTj</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/PoEqQyXuATwMvtLV5s5VYL-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Mon, 02 Nov 2026 19:12:32 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Android Phones]]></category>
                                                    <category><![CDATA[Malware & Adware]]></category>
                                                    <category><![CDATA[Phones]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Internet]]></category>
                                                    <category><![CDATA[Online Security]]></category>
                                                                                                <author><![CDATA[ scott.younker@futurenet.com (Scott Younker) ]]></author>                    <dc:creator><![CDATA[ Scott Younker ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/RZsUpqcJ6Uj2q83oCUwNhQ-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Scott Younker is the West Coast Reporter at Tom’s Guide. He covers all the latest tech news, including phones, computing and more. He’s been involved in tech since 2011 covering everything from cameras and swimming pool equipment to the latest gaming consoles and smart TVs. He is on a seemingly never ending hunt to build the easiest to use home media system. &lt;/p&gt;&lt;p&gt;Before Tom’s Guide, Scott worked for publications like &lt;em&gt;Digital Trends, Outdoor Photographer, Dead Beats Panel&lt;/em&gt;, and in a brief detour, &lt;em&gt;America’s Funniest Home Videos&lt;/em&gt;. Yes, he has seen more pratfalls, silly pets and ridiculous home movie fails than is reasonably healthy. &lt;/p&gt;&lt;p&gt;When not writing about the latest devices or advances in chipsets, be sure to ask about Scott about disc golf and sustainability, or just if you’re being cheeky, ask about his noodle arm. If you truly want to get nerdy, bring up board games and his ongoing losing streak. &lt;/p&gt;&lt;p&gt;Scott joined Tom&#039;s Guide in 2024 as the West Coast Reporter. He graduated from the School of Journalism at the University of Oregon with a degree in magazine journalism and a minor in communications. While there he blogged or wrote for several magazines including the Fluxx, Ethos and the Oregon Commentator. He briefly wrote and managed a moderately successful blog focused on web comics. &lt;br&gt;Send secure tips on Signal: scyo1.55.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/PoEqQyXuATwMvtLV5s5VYL-1920-80.jpg">
                                                            <media:credit><![CDATA[Shuterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Android malware]]></media:description>                                                            <media:text><![CDATA[Android malware]]></media:text>
                                <media:title type="plain"><![CDATA[Android malware]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/PoEqQyXuATwMvtLV5s5VYL-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Late last week, a report popped up about a new Android phone exploit the security researcher dubbed "SMS of Death." <a href="https://smsofdeath.com/" target="_blank">Per the report</a>, the attack, tracked as "CVE-2026-58882," lets malicious actors disrupt cellphone service or crash Android phones by overloading them with a repeating crafted SMS text message.</p><p>The denial-of-service flaw can even interrupt ongoing calls, including emergency calls, without requiring you to open the message. Apparently, the Android operating system processes the message before it even reaches your text message inbox, meaning you wouldn't immediately understand what caused the phone to crash.</p><p>Researcher Mark Blah says that even if you reboot your phone, the hacked message "stays queued and is retried on every boot, so the phone can crash on startup until it is cleared (recovery below)."</p><p>Upon finding Blah's report, Tom's Guide reached out to Google because the report claimed that Google had deemed it a "non-priority." Google has not yet responded to our inquiries. </p><p>However, some Android phones may already have the exploit patched. </p><h2 id="october-patch">October patch</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="eCnerPCYSMKFXh3YbyUbjk" name="android-17-logo-on-pixel" alt="Android 17 logo on a Google Pixel 9 Pro" src="https://cdn.mos.cms.futurecdn.net/eCnerPCYSMKFXh3YbyUbjk-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sanuj Bhatia / Tom's Guide)</span></figcaption></figure><p>Blah's report found that the exploit affects Android versions 12 up to 16 and was discovered on multiple devices, including Pixel 9s and Samsung Galaxy phones. </p><p>It appears Google <a href="https://android.googlesource.com/platform/frameworks/opt/telephony/+/735d9672603fa206c4b43cb668c1aa273db70b97" target="_blank">patched the exploit</a> in the <a href="https://source.android.com/docs/security/bulletin/2026/2026-10-01" target="_blank">October 2026 Android security update</a> (if you haven't updated your Android phone, you should). However, that's only for Android versions 14 through 17. It does not appear to be available for any devices still running Android 12 or 13.</p><p>Per Blah, the flaw uses an improper validation of a header length in the Android WapPushOverSms.decodeWapPdu function. Attacks send a malformed WAP Push message to the targeted phone.</p><p>When this message is translated, it turns into a negative value that Android attempts to allocate memory for, which triggers a NegativeArraySizeException that crashes the com.android.phone process.</p><p>That process manages cellular functions, which disrupts connectivity and disconnects calls. This causes repeated crashes because the network tries to redeliver the malicious messages, which stack up and force Android to process each one. It only takes 20 bad messages to cause the crash.</p><p>Per the Google fix, the crash is prevented by catching the exceptions triggered by the attack messages. Then the patch deletes the messages from the SMS database to prevent them from looping.</p><h2 id="what-you-need-to-do">What you need to do</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="mkJRcLhJqirhreixZzBNpT" name="mobile security" alt="mobile security" src="https://cdn.mos.cms.futurecdn.net/mkJRcLhJqirhreixZzBNpT-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Android security updates are generally automatically installed on supported devices. So you should already have them. </p><p>However, availability does depend on the phone maker and network carrier. So you should check your phone to see if the October patch has been applied. A restart may be required to complete the installation.</p><p>For the most part, this isn't an attack you can do anything about, but based on the patch notes and Blah's report, it doesn't seem to be widely deployed; instead, it appears to target individual phones. Since a working proof-of-concept of the exploit has been released, the best thing you can do is make sure you keep your phone up to date.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/phones/samsung-phones/now-is-the-perfect-time-for-samsung-to-release-a-cheaper-galaxy-z-fold-9-fe-and-its-all-because-of-iphone-duo"><strong>Now is the perfect time for Samsung to release a cheaper Galaxy Z Fold 9 FE — and it's all because of iPhone Duo</strong></a></li><li><a href="https://www.tomsguide.com/phones/android-phones/3-android-auto-apps-that-do-what-google-maps-and-waze-cant"><strong>3 Android Auto apps that do what Google Maps and Waze can’t</strong></a></li><li><a href="https://www.tomsguide.com/phones/iphone-duo-vs-samsung-galaxy-z-fold-8"><strong>iPhone Duo vs. Samsung Galaxy Z Fold 8: Which foldable is the best?</strong></a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Over 300 Chrome extensions found hijacking searches of 13.4 million users — how to stay safe ]]></title>
                                                                                                <dc:content><![CDATA[ <p>An ongoing security investigation by <a href="https://socket.dev/blog/searchjacked" target="_blank">Socket's John Tuckner</a> (via <a href="https://www.bleepingcomputer.com/news/security/chrome-extensions-with-134-million-installs-caught-hijacking-searches/" target="_blank">Bleeping Computer</a>) has discovered a search-hijacking campaign that involves 319 <a href="https://www.tomsguide.com/computing/online-security/3-2-million-chrome-users-at-risk-from-malicious-extensions-delete-them-right-now">Chrome extensions</a> with a combined 13.4 million downloads. The malicious extensions redirect search queries through tracking servers to generate advertising revenue from Bing and Yahoo.</p><p>It's more than double from <a href="https://secureannex.com/blog/searching-for-something-unknow/" target="_blank">Tuckner's April report</a> that found "only" 57 Chrome extensions and 6 million downloads. </p><p>According to Tuckner, the malicious extensions are usually found on websites advertising tools that are labeled as "PDF converter", "AI search", or "safe search". </p><p>"These extensions were created by a handful of organized operators all working from the same idea: quietly take over the browser's default search engine, route every query through a suspicious proxy server, and collect partner referral payments from Yahoo or Bing under a syndication partner ID," Tuckner wrote.</p><p>The extensions apparently aren't found on the official <a href="https://www.tomsguide.com/news/chrome-could-soon-zap-some-of-your-extensions-heres-why">Chrome Web Store</a> either. Rather, they're unlisted and are only really found through the shady advertising. </p><h2 id="how-the-extensions-work">How the extensions work</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="W6JjyA6fWc7yvSauu4zdzT" name="Chrome browser.jpg" alt="Chrome browser on laptop" src="https://cdn.mos.cms.futurecdn.net/W6JjyA6fWc7yvSauu4zdzT-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Apparently, the extensions use Chrome's built-in 'chrome_settings_override' setting that lets them replace your default search provider. </p><p>What this means is that your searches are captured as they pass through the operator's server. After that the redirect could be sent through a site with malware attached, though currently, per Tuckner they're mostly routing to Yahoo and Bing and to falsely claim advertising revenue.</p><p>"The search referral revenue is a profitable watering hole while the proxy operator can wait for data to accumulate and targets to surface before redirecting to malicious search results or landing pages for phishing or other malicious downloads," Tuckner said.</p><p>As of this writing, the report says that most of the extensions have been removed the Chrome Web Store when the report was published, however, new ones are constantly being added.</p><p>"Ultimately, Google can benefit from more advertisements being run and more extensions being listed in the marketplace so there may not be an urgent reason to police this activity too broadly."</p><h2 id="how-to-stay-safe-2">How to stay safe</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:970px;"><p class="vanilla-image-block" style="padding-top:60.00%;"><img id="uUoJKen9wwfAxwn6WvpUbW" name="chrome-ledeimage.jpeg" alt="A computer showing the Chrome Web Store" src="https://cdn.mos.cms.futurecdn.net/uUoJKen9wwfAxwn6WvpUbW-1920-80.jpeg" mos="" align="middle" fullscreen="" width="970" height="582" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Even if Google isn't policing this specific type of extension, malicious add-ons do slip through to the Chrome Web Store from time to time. When it comes to extensions, you need to be extra careful when downloading and adding them to your browser.</p><p>Normally, we would recommend you stick to well-known extensions from trusted brands. However, sometimes a lone developer creates one that does exactly what you need. </p><p>There are several recommendations we have to help you be a bit safer. Check the ratings and reviews of the extensions but also dig into the developer to see if they're legit.</p><p>Look, even <a href="https://www.tomsguide.com/computing/online-security/3-2-million-chrome-users-at-risk-from-malicious-extensions-delete-them-right-now">good extensions can go bad</a>, so you want to make sure that your Windows PC is protected with the <a href="https://www.tomsguide.com/computing/antivirus/best-antivirus-software">best antivirus software</a> and that you’re using the <a href="https://www.tomsguide.com/best-picks/best-mac-antivirus">best Mac antivirus software</a> on your Apple computer. That way, if an extension is spreading malware or other viruses, they’ll be detected and stopped before they can do any damage.</p><p>If you're constantly trying different extensions, you should consider one of the <a href="https://www.tomsguide.com/us/best-identity-theft-protection,review-2083.html">best identity theft protection services</a>. They can help get your identity back if it's stolen or recover lost funds due to scams and cyberattacks.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/best-picks/best-budget-laptops"><strong>These are the 3 best budget laptops we've tested for value that don't feel cheap</strong></a></li><li><a href="https://www.tomsguide.com/computing/online-security/your-personal-information-is-everywhere-online-5-ways-to-start-removing-it"><strong>Your personal information is everywhere online — 5 ways to start removing it from the internet</strong></a></li><li><a href="https://www.tomsguide.com/ai/chrome-could-soon-let-you-ask-google-about-anything-on-your-screen-even-outside-the-browser"><strong>Chrome could soon let you ask Google about anything on your screen — even outside the browser</strong></a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/online-security/over-300-chrome-extensions-found-hijacking-searches-of-13-4-million-users-how-to-stay-safe</link>
                                                                            <description>
                            <![CDATA[ A security researcher investigated more than 300 Chrome extensions that hijack searches to earn revenue. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">xETVvLwxBYUUHpP4Z5LBDk</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/8JYPUuR6NMHzfGNhWnxzES-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 30 Oct 2026 19:51:11 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Online Security]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Internet]]></category>
                                                                                                <author><![CDATA[ scott.younker@futurenet.com (Scott Younker) ]]></author>                    <dc:creator><![CDATA[ Scott Younker ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/RZsUpqcJ6Uj2q83oCUwNhQ-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Scott Younker is the West Coast Reporter at Tom’s Guide. He covers all the latest tech news, including phones, computing and more. He’s been involved in tech since 2011 covering everything from cameras and swimming pool equipment to the latest gaming consoles and smart TVs. He is on a seemingly never ending hunt to build the easiest to use home media system. &lt;/p&gt;&lt;p&gt;Before Tom’s Guide, Scott worked for publications like &lt;em&gt;Digital Trends, Outdoor Photographer, Dead Beats Panel&lt;/em&gt;, and in a brief detour, &lt;em&gt;America’s Funniest Home Videos&lt;/em&gt;. Yes, he has seen more pratfalls, silly pets and ridiculous home movie fails than is reasonably healthy. &lt;/p&gt;&lt;p&gt;When not writing about the latest devices or advances in chipsets, be sure to ask about Scott about disc golf and sustainability, or just if you’re being cheeky, ask about his noodle arm. If you truly want to get nerdy, bring up board games and his ongoing losing streak. &lt;/p&gt;&lt;p&gt;Scott joined Tom&#039;s Guide in 2024 as the West Coast Reporter. He graduated from the School of Journalism at the University of Oregon with a degree in magazine journalism and a minor in communications. While there he blogged or wrote for several magazines including the Fluxx, Ethos and the Oregon Commentator. He briefly wrote and managed a moderately successful blog focused on web comics. &lt;br&gt;Send secure tips on Signal: scyo1.55.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/8JYPUuR6NMHzfGNhWnxzES-1920-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[security warning icon floating above a laptop]]></media:description>                                                            <media:text><![CDATA[security warning icon floating above a laptop]]></media:text>
                                <media:title type="plain"><![CDATA[security warning icon floating above a laptop]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/8JYPUuR6NMHzfGNhWnxzES-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>An ongoing security investigation by <a href="https://socket.dev/blog/searchjacked" target="_blank">Socket's John Tuckner</a> (via <a href="https://www.bleepingcomputer.com/news/security/chrome-extensions-with-134-million-installs-caught-hijacking-searches/" target="_blank">Bleeping Computer</a>) has discovered a search-hijacking campaign that involves 319 <a href="https://www.tomsguide.com/computing/online-security/3-2-million-chrome-users-at-risk-from-malicious-extensions-delete-them-right-now">Chrome extensions</a> with a combined 13.4 million downloads. The malicious extensions redirect search queries through tracking servers to generate advertising revenue from Bing and Yahoo.</p><p>It's more than double from <a href="https://secureannex.com/blog/searching-for-something-unknow/" target="_blank">Tuckner's April report</a> that found "only" 57 Chrome extensions and 6 million downloads. </p><p>According to Tuckner, the malicious extensions are usually found on websites advertising tools that are labeled as "PDF converter", "AI search", or "safe search". </p><p>"These extensions were created by a handful of organized operators all working from the same idea: quietly take over the browser's default search engine, route every query through a suspicious proxy server, and collect partner referral payments from Yahoo or Bing under a syndication partner ID," Tuckner wrote.</p><p>The extensions apparently aren't found on the official <a href="https://www.tomsguide.com/news/chrome-could-soon-zap-some-of-your-extensions-heres-why">Chrome Web Store</a> either. Rather, they're unlisted and are only really found through the shady advertising. </p><h2 id="how-the-extensions-work">How the extensions work</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="W6JjyA6fWc7yvSauu4zdzT" name="Chrome browser.jpg" alt="Chrome browser on laptop" src="https://cdn.mos.cms.futurecdn.net/W6JjyA6fWc7yvSauu4zdzT-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Apparently, the extensions use Chrome's built-in 'chrome_settings_override' setting that lets them replace your default search provider. </p><p>What this means is that your searches are captured as they pass through the operator's server. After that the redirect could be sent through a site with malware attached, though currently, per Tuckner they're mostly routing to Yahoo and Bing and to falsely claim advertising revenue.</p><p>"The search referral revenue is a profitable watering hole while the proxy operator can wait for data to accumulate and targets to surface before redirecting to malicious search results or landing pages for phishing or other malicious downloads," Tuckner said.</p><p>As of this writing, the report says that most of the extensions have been removed the Chrome Web Store when the report was published, however, new ones are constantly being added.</p><p>"Ultimately, Google can benefit from more advertisements being run and more extensions being listed in the marketplace so there may not be an urgent reason to police this activity too broadly."</p><h2 id="how-to-stay-safe-2">How to stay safe</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:970px;"><p class="vanilla-image-block" style="padding-top:60.00%;"><img id="uUoJKen9wwfAxwn6WvpUbW" name="chrome-ledeimage.jpeg" alt="A computer showing the Chrome Web Store" src="https://cdn.mos.cms.futurecdn.net/uUoJKen9wwfAxwn6WvpUbW-1920-80.jpeg" mos="" align="middle" fullscreen="" width="970" height="582" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Even if Google isn't policing this specific type of extension, malicious add-ons do slip through to the Chrome Web Store from time to time. When it comes to extensions, you need to be extra careful when downloading and adding them to your browser.</p><p>Normally, we would recommend you stick to well-known extensions from trusted brands. However, sometimes a lone developer creates one that does exactly what you need. </p><p>There are several recommendations we have to help you be a bit safer. Check the ratings and reviews of the extensions but also dig into the developer to see if they're legit.</p><p>Look, even <a href="https://www.tomsguide.com/computing/online-security/3-2-million-chrome-users-at-risk-from-malicious-extensions-delete-them-right-now">good extensions can go bad</a>, so you want to make sure that your Windows PC is protected with the <a href="https://www.tomsguide.com/computing/antivirus/best-antivirus-software">best antivirus software</a> and that you’re using the <a href="https://www.tomsguide.com/best-picks/best-mac-antivirus">best Mac antivirus software</a> on your Apple computer. That way, if an extension is spreading malware or other viruses, they’ll be detected and stopped before they can do any damage.</p><p>If you're constantly trying different extensions, you should consider one of the <a href="https://www.tomsguide.com/us/best-identity-theft-protection,review-2083.html">best identity theft protection services</a>. They can help get your identity back if it's stolen or recover lost funds due to scams and cyberattacks.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/best-picks/best-budget-laptops"><strong>These are the 3 best budget laptops we've tested for value that don't feel cheap</strong></a></li><li><a href="https://www.tomsguide.com/computing/online-security/your-personal-information-is-everywhere-online-5-ways-to-start-removing-it"><strong>Your personal information is everywhere online — 5 ways to start removing it from the internet</strong></a></li><li><a href="https://www.tomsguide.com/ai/chrome-could-soon-let-you-ask-google-about-anything-on-your-screen-even-outside-the-browser"><strong>Chrome could soon let you ask Google about anything on your screen — even outside the browser</strong></a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Bought a new tablet for your kids? Here's how to lock it down before handing it over ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Whether you're worried about your smaller child accidentally clicking through the wrong apps, or maybe an older child that’s a little too curious for their own good, you should know how to secure their new tablet.</p><p>Here’s how to establish a safe space for your child to use your device.</p><h2 id="setting-up-an-amazon-fire-kids-tablet">Setting up an Amazon Fire Kids Tablet</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:64.75%;"><img id="yxEyQxRqjSqT7xbf4qKhn5" name="Amazon-Fire-HD-Kids-2021-Gaming.jpg" alt="Amazon Fire HD 10 Kids review" src="https://cdn.mos.cms.futurecdn.net/yxEyQxRqjSqT7xbf4qKhn5-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1295" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>One of the simplest tablets to set up for your kids is the <a href="https://www.tomsguide.com/best-picks/best-amazon-fire-tablet">Amazon Fire Kids Tablet</a>. I’ve used it for my own kid for many years, and while it does have its frustrating quirks, it does get the job done. Bear in mind this is effectively just a Fire Tablet with a colorful case, so it does include an adult profile that is necessary to set up to manage the device.</p><p>After you’ve created your profile, you’ll create an Amazon Kids Profile. It’ll guide you through a list of settings that you can customize to your child’s needs and send them on their way. In order to monitor and adjust settings on the tablet, go to the <a href="https://parents.amazon.com/intro" target="_blank">Amazon Parent Dashboard</a> (you can do this remotely). From here you can adjust settings like time limits on apps, content filters, and even add content from an adult library. For example, I had to manually add HBO so I could put on <em>Sesame Street</em>.</p><p>If you do need to lock the device down for any reason, you can hit <strong>Pause or Lock Device</strong> on the Amazon Parent Dashboard. You can set a duration or set it indefinitely until the device is unlocked by you.</p><h2 id="setting-up-an-android-tablet">Setting up an Android tablet</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:650px;"><p class="vanilla-image-block" style="padding-top:56.31%;"><img id="Q8aUfC5ebMyQL3VuimVHvF" name="Google Pixel Tablet" alt="Google Pixel Tablet" src="https://cdn.mos.cms.futurecdn.net/Q8aUfC5ebMyQL3VuimVHvF-1920-80.png" mos="" align="middle" fullscreen="" width="650" height="366" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>For an <a href="https://www.tomsguide.com/best-picks/best-android-tablets">Android tablet</a>, the first thing you’ll want to do is set up <a href="https://families.google/familylink/" target="_blank">Google Family Link</a> either through a web browser or the app itself on your own device (Android or iOS). From there you can create your child’s account, which includes creating an email address for them (weird, I know). Then when you’re actually setting up the tablet, you can sign in using your child’s email address. It’ll prompt you to sign into your own account afterward.</p><p>If your child is on the younger side (under 9), you can put them on <a href="https://play.google.com/store/apps/details?id=com.google.android.apps.kids.home&amp;hl=en_US" target="_blank">Google Kids Space</a>, which is tailored with content-restricted apps, books, and YouTube Kids videos. You’ll still have access to parental controls with this app.</p><p>If Google Kids Space is not for your child, or it’s unavailable for your device, you’ll be able to manage the general kids experience in Google Family Link. Here you can control app approvals and limits, set screen time limits and even set a scheduled bedtime. You can also manage how Google Chrome is used and which sites your child can visit.</p><p>Locking the device down is as simple as clicking <strong>Lock now</strong> in the Family Link app. You can use Downtime to run this on a schedule, and you can also use it to grant bonus time.</p><h2 id="setting-up-an-ipad">Setting up an iPad</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="xajNJzmNq6NEvVht46rLwE" name="iPad mini 7--5" alt="An iPad mini 7 in hand in front of a sliding glass door" src="https://cdn.mos.cms.futurecdn.net/xajNJzmNq6NEvVht46rLwE-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>You can go to your <a href="https://www.tomsguide.com/best-picks/best-ipad">iPad</a> settings, select Family Sharing, Add Member, and create a child account. From there, follow the prompts until the account is created, and set a unique screen time password so your child can’t override the settings.</p><p>You can configure parental controls from your Apple device or the iPad itself. Navigate back to Family Sharing, click on your child’s name, and then select Screen Time. From here you can adjust content restrictions on apps and websites, even limiting accessible websites to one or two trusted sources. You’ll be able to set time limits and schedules for apps as well, and can also lock them into a single app with Guided Access in the Accessibility settings. Make sure to adjust the Communication settings as well to manage who they can contact.</p><p>To lock the device, you can access the parental controls remotely and turn on <strong>Downtime </strong>— this can be immediate or set on a schedule.</p><h2 id="bottom-line">Bottom line</h2><p>It’s not terribly difficult to set up a new tablet for your kids, although I know from experience that it’s not always seamless. Make sure you look over the parental controls thoroughly. It has less to do with lack of trust and more to do with safeguarding. It’s all too easy for kids to get access to something that they’re not supposed to. </p><p>I’d also be careful with YouTube Kids — I have seen some brainrot videos on there, including AI slop, that aren’t good for child development because they’re either overstimulating or not educational. I highly recommend content from established educators like Ms. Rachel. For general entertainment, you can find <em>Blue’s Clues</em> going strong on there, but it’s also worth downloading the PBS Kids app itself for some consistent safe content.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/online-security/smart-tvs-collect-a-surprising-amount-of-your-data-heres-how-to-stop-them"><strong>Smart TVs collect a surprising amount of your data — here’s how to stop them</strong></a></li><li><a href="https://www.tomsguide.com/computing/online-security/how-to-find-out-if-your-data-is-on-the-dark-web-and-how-to-remove-it"><strong>How to find out if your data is on the dark web — and how to remove it</strong></a></li><li><a href="https://www.tomsguide.com/computing/online-security/10-simple-security-settings-you-should-change-on-your-phone-and-pc-right-now"><strong>10 simple security settings you should change on your phone and PC right now</strong></a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/online-security/bought-a-new-tablet-for-your-kids-heres-how-to-lock-it-down-before-handing-it-over</link>
                                                                            <description>
                            <![CDATA[ If you just bought your kids a new tablet, you should learn how to manage the parental controls for their online safety. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">jLtPEiFePxxh3SxE6fz6T6</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/JJ2fVXfKvTc65NEjkdo83-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 30 Oct 2026 07:30:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Online Security]]></category>
                                                    <category><![CDATA[Tablets]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Internet]]></category>
                                                                                                                    <dc:creator><![CDATA[ Rami Tabari ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/Du7gwfP2FPAQuuhcMnakHf-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/JJ2fVXfKvTc65NEjkdo83-1920-80.jpg">
                                                            <media:credit><![CDATA[Tom&amp;#39;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Amazon Fire HD 10 Kids Pro review]]></media:description>                                                            <media:text><![CDATA[Amazon Fire HD 10 Kids Pro review]]></media:text>
                                <media:title type="plain"><![CDATA[Amazon Fire HD 10 Kids Pro review]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/JJ2fVXfKvTc65NEjkdo83-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Whether you're worried about your smaller child accidentally clicking through the wrong apps, or maybe an older child that’s a little too curious for their own good, you should know how to secure their new tablet.</p><p>Here’s how to establish a safe space for your child to use your device.</p><h2 id="setting-up-an-amazon-fire-kids-tablet">Setting up an Amazon Fire Kids Tablet</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:64.75%;"><img id="yxEyQxRqjSqT7xbf4qKhn5" name="Amazon-Fire-HD-Kids-2021-Gaming.jpg" alt="Amazon Fire HD 10 Kids review" src="https://cdn.mos.cms.futurecdn.net/yxEyQxRqjSqT7xbf4qKhn5-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1295" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>One of the simplest tablets to set up for your kids is the <a href="https://www.tomsguide.com/best-picks/best-amazon-fire-tablet">Amazon Fire Kids Tablet</a>. I’ve used it for my own kid for many years, and while it does have its frustrating quirks, it does get the job done. Bear in mind this is effectively just a Fire Tablet with a colorful case, so it does include an adult profile that is necessary to set up to manage the device.</p><p>After you’ve created your profile, you’ll create an Amazon Kids Profile. It’ll guide you through a list of settings that you can customize to your child’s needs and send them on their way. In order to monitor and adjust settings on the tablet, go to the <a href="https://parents.amazon.com/intro" target="_blank">Amazon Parent Dashboard</a> (you can do this remotely). From here you can adjust settings like time limits on apps, content filters, and even add content from an adult library. For example, I had to manually add HBO so I could put on <em>Sesame Street</em>.</p><p>If you do need to lock the device down for any reason, you can hit <strong>Pause or Lock Device</strong> on the Amazon Parent Dashboard. You can set a duration or set it indefinitely until the device is unlocked by you.</p><h2 id="setting-up-an-android-tablet">Setting up an Android tablet</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:650px;"><p class="vanilla-image-block" style="padding-top:56.31%;"><img id="Q8aUfC5ebMyQL3VuimVHvF" name="Google Pixel Tablet" alt="Google Pixel Tablet" src="https://cdn.mos.cms.futurecdn.net/Q8aUfC5ebMyQL3VuimVHvF-1920-80.png" mos="" align="middle" fullscreen="" width="650" height="366" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>For an <a href="https://www.tomsguide.com/best-picks/best-android-tablets">Android tablet</a>, the first thing you’ll want to do is set up <a href="https://families.google/familylink/" target="_blank">Google Family Link</a> either through a web browser or the app itself on your own device (Android or iOS). From there you can create your child’s account, which includes creating an email address for them (weird, I know). Then when you’re actually setting up the tablet, you can sign in using your child’s email address. It’ll prompt you to sign into your own account afterward.</p><p>If your child is on the younger side (under 9), you can put them on <a href="https://play.google.com/store/apps/details?id=com.google.android.apps.kids.home&amp;hl=en_US" target="_blank">Google Kids Space</a>, which is tailored with content-restricted apps, books, and YouTube Kids videos. You’ll still have access to parental controls with this app.</p><p>If Google Kids Space is not for your child, or it’s unavailable for your device, you’ll be able to manage the general kids experience in Google Family Link. Here you can control app approvals and limits, set screen time limits and even set a scheduled bedtime. You can also manage how Google Chrome is used and which sites your child can visit.</p><p>Locking the device down is as simple as clicking <strong>Lock now</strong> in the Family Link app. You can use Downtime to run this on a schedule, and you can also use it to grant bonus time.</p><h2 id="setting-up-an-ipad">Setting up an iPad</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="xajNJzmNq6NEvVht46rLwE" name="iPad mini 7--5" alt="An iPad mini 7 in hand in front of a sliding glass door" src="https://cdn.mos.cms.futurecdn.net/xajNJzmNq6NEvVht46rLwE-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>You can go to your <a href="https://www.tomsguide.com/best-picks/best-ipad">iPad</a> settings, select Family Sharing, Add Member, and create a child account. From there, follow the prompts until the account is created, and set a unique screen time password so your child can’t override the settings.</p><p>You can configure parental controls from your Apple device or the iPad itself. Navigate back to Family Sharing, click on your child’s name, and then select Screen Time. From here you can adjust content restrictions on apps and websites, even limiting accessible websites to one or two trusted sources. You’ll be able to set time limits and schedules for apps as well, and can also lock them into a single app with Guided Access in the Accessibility settings. Make sure to adjust the Communication settings as well to manage who they can contact.</p><p>To lock the device, you can access the parental controls remotely and turn on <strong>Downtime </strong>— this can be immediate or set on a schedule.</p><h2 id="bottom-line">Bottom line</h2><p>It’s not terribly difficult to set up a new tablet for your kids, although I know from experience that it’s not always seamless. Make sure you look over the parental controls thoroughly. It has less to do with lack of trust and more to do with safeguarding. It’s all too easy for kids to get access to something that they’re not supposed to. </p><p>I’d also be careful with YouTube Kids — I have seen some brainrot videos on there, including AI slop, that aren’t good for child development because they’re either overstimulating or not educational. I highly recommend content from established educators like Ms. Rachel. For general entertainment, you can find <em>Blue’s Clues</em> going strong on there, but it’s also worth downloading the PBS Kids app itself for some consistent safe content.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/online-security/smart-tvs-collect-a-surprising-amount-of-your-data-heres-how-to-stop-them"><strong>Smart TVs collect a surprising amount of your data — here’s how to stop them</strong></a></li><li><a href="https://www.tomsguide.com/computing/online-security/how-to-find-out-if-your-data-is-on-the-dark-web-and-how-to-remove-it"><strong>How to find out if your data is on the dark web — and how to remove it</strong></a></li><li><a href="https://www.tomsguide.com/computing/online-security/10-simple-security-settings-you-should-change-on-your-phone-and-pc-right-now"><strong>10 simple security settings you should change on your phone and PC right now</strong></a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ How to find out if your data is on the dark web — and how to remove it ]]></title>
                                                                                                <dc:content><![CDATA[ <p><a href="https://www.tomsguide.com/computing/online-security/these-are-the-five-worst-data-breaches-of-2024">Data breaches</a> have become commonplace in our current era of privacy invasions, and having our data exposed on the <a href="https://www.tomsguide.com/news/hackers-have-earned-millions-selling-your-data-on-the-dark-web-how-to-stay-safe">dark web</a> is a serious possibility. Your information being blasted is scary no matter where it is, but if you’re not someone browsing the dark web, how would you know if your information got leaked? Ideally, companies will alert you if there’s been a breach, but that’s not always the case, especially if the company doesn’t even know it’s been hacked. </p><p>If you have any reason to believe that your sensitive data has been leaked, you should know how to find out what it is and how to deal with it. </p><h2 id="finding-your-data-on-the-dark-web">Finding your data on the dark web</h2><p>Don’t start surfing the dark web yourself. The last thing you need is to infect your system with malware that’ll expose more of your data to malicious actors. There are a couple services you can use that’ll scan for your data across marketplaces and forums.</p><p>Both <a href="https://scan.aura.com/" target="_blank">Aura</a> and <a href="https://www.experian.com/protection/free-dark-web-email-scan/" target="_blank">Experian</a> are trusted services that offer a <a href="https://www.tomsguide.com/features/what-is-a-dark-web-scan-and-should-i-use-one">free dark web scan</a>. If they find nothing, you’re likely free and clear. However, if something pops up, you should act immediately.</p><h2 id="can-you-remove-data-from-the-dark-web">Can you remove data from the dark web?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2121px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="zGrqQ38S8oLk9s78x6nMtA" name="xbyXF458Mb3ECvDCzYKntF" alt="A person using their laptop with a warning sign above their keyboard" src="https://cdn.mos.cms.futurecdn.net/zGrqQ38S8oLk9s78x6nMtA-1920-80.jpg" mos="" align="middle" fullscreen="" width="2121" height="1193" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Getty Images)</span></figcaption></figure><p>No, unfortunately there’s no way to delete your data from the dark web, and I wouldn’t trust any service that claims to do so. What you need to do now is identify the exposed data and defuse the threat.</p><p>One of the most common data breaches involve emails and passwords. Obviously, you need to change your passwords, but you also should activate two-factor authentication (<a href="https://www.tomsguide.com/news/google-forcing-2fa-users">2FA</a>) or multifactor authentication (MFA) on all your accounts. Yes, all of them, not just the affected ones. Using unique passwords for every account is also important so you can isolate threats — this can be made more convenient with a password manager.</p><p>If your banking or credit card credentials got leaked, you need to contact your financial institutions and place freezes or fraud alerts on your accounts. If your social security number got leaked, you’ll need to freeze your credit. Go to <a href="https://www.equifax.com/personal/credit-report-services/credit-freeze/" target="_blank">Equifax Credit</a>, <a href="https://www.experian.com/freeze/center.html" target="_blank">Experian Credit</a>, and <a href="https://www.transunion.com/credit-freeze" target="_blank">TransUnion Credit</a> to do that. While the service is free and you can lift the freeze whenever you want, you should keep it frozen and only temporarily lift it when you need to apply for new credit.</p><p>Still, once all your information is out in the open, someone can use that data to impersonate you. Potential victims of identity theft should file a report with the Federal Trade Commission (FTC) on <a href="https://identitytheft.gov/" target="_blank">IdentityTheft.gov</a>. While it’s unlikely to be able to change your <a href="https://www.tomsguide.com/computing/online-security/how-to-protect-your-social-security-number">Social security number</a>, it can be done in extreme cases.</p><h2 id="bottom-line-2">Bottom line</h2><p>Again, once your data has been exposed, there’s no removing it from the dark web. And it’s possible that another breach of your data could find itself there, so you might want to use a continuous dark web monitoring service. <a href="https://www.experian.com/protection/free-dark-web-email-scan/">Experian</a> is one of the free ones, although it does have paid tiers.</p><p>As far as prevention goes, there’s not much you can do to stop your data from being leaked into the wild, but there are steps you should take to reduce the potential damage to your life, namely maintaining unique passwords for your accounts and activating 2FA or MFA.</p><p>The most important takeaway here is not to dawdle. Take the measures to protect yourself and monitor your accounts going forward. You could be exposed to something as simple as spam emails, which you should be able to suss out, but there are worse things than spam.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/online-security/smart-tvs-collect-a-surprising-amount-of-your-data-heres-how-to-stop-them"><strong>Smart TVs collect a surprising amount of your data — here’s how to stop them</strong></a></li><li><a href="https://www.tomsguide.com/computing/online-security/10-simple-security-settings-you-should-change-on-your-phone-and-pc-right-now"><strong>10 simple security settings you should change on your phone and PC right now</strong></a></li><li><strong></strong><a href="https://www.tomsguide.com/computing/antivirus/does-antivirus-slow-down-your-pc"><strong>Does antivirus software still slow down your PC in 2026? We tested the top security software to find out</strong></a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/online-security/how-to-find-out-if-your-data-is-on-the-dark-web-and-how-to-remove-it</link>
                                                                            <description>
                            <![CDATA[ Your data could be leaked and you might not know it. Learn how to scan the dark web and protect yourself. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">3AVtkfjVcLuvDya7yKiAV3</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/TzKdPFfFtRpcJ8bzSiQoZL-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 28 Oct 2026 10:30:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Online Security]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Internet]]></category>
                                                                                                                    <dc:creator><![CDATA[ Rami Tabari ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/Du7gwfP2FPAQuuhcMnakHf-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/TzKdPFfFtRpcJ8bzSiQoZL-1920-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[man sat at darkened desk working on laptop and desktop]]></media:description>                                                            <media:text><![CDATA[man sat at darkened desk working on laptop and desktop]]></media:text>
                                <media:title type="plain"><![CDATA[man sat at darkened desk working on laptop and desktop]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/TzKdPFfFtRpcJ8bzSiQoZL-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p><a href="https://www.tomsguide.com/computing/online-security/these-are-the-five-worst-data-breaches-of-2024">Data breaches</a> have become commonplace in our current era of privacy invasions, and having our data exposed on the <a href="https://www.tomsguide.com/news/hackers-have-earned-millions-selling-your-data-on-the-dark-web-how-to-stay-safe">dark web</a> is a serious possibility. Your information being blasted is scary no matter where it is, but if you’re not someone browsing the dark web, how would you know if your information got leaked? Ideally, companies will alert you if there’s been a breach, but that’s not always the case, especially if the company doesn’t even know it’s been hacked. </p><p>If you have any reason to believe that your sensitive data has been leaked, you should know how to find out what it is and how to deal with it. </p><h2 id="finding-your-data-on-the-dark-web">Finding your data on the dark web</h2><p>Don’t start surfing the dark web yourself. The last thing you need is to infect your system with malware that’ll expose more of your data to malicious actors. There are a couple services you can use that’ll scan for your data across marketplaces and forums.</p><p>Both <a href="https://scan.aura.com/" target="_blank">Aura</a> and <a href="https://www.experian.com/protection/free-dark-web-email-scan/" target="_blank">Experian</a> are trusted services that offer a <a href="https://www.tomsguide.com/features/what-is-a-dark-web-scan-and-should-i-use-one">free dark web scan</a>. If they find nothing, you’re likely free and clear. However, if something pops up, you should act immediately.</p><h2 id="can-you-remove-data-from-the-dark-web">Can you remove data from the dark web?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2121px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="zGrqQ38S8oLk9s78x6nMtA" name="xbyXF458Mb3ECvDCzYKntF" alt="A person using their laptop with a warning sign above their keyboard" src="https://cdn.mos.cms.futurecdn.net/zGrqQ38S8oLk9s78x6nMtA-1920-80.jpg" mos="" align="middle" fullscreen="" width="2121" height="1193" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Getty Images)</span></figcaption></figure><p>No, unfortunately there’s no way to delete your data from the dark web, and I wouldn’t trust any service that claims to do so. What you need to do now is identify the exposed data and defuse the threat.</p><p>One of the most common data breaches involve emails and passwords. Obviously, you need to change your passwords, but you also should activate two-factor authentication (<a href="https://www.tomsguide.com/news/google-forcing-2fa-users">2FA</a>) or multifactor authentication (MFA) on all your accounts. Yes, all of them, not just the affected ones. Using unique passwords for every account is also important so you can isolate threats — this can be made more convenient with a password manager.</p><p>If your banking or credit card credentials got leaked, you need to contact your financial institutions and place freezes or fraud alerts on your accounts. If your social security number got leaked, you’ll need to freeze your credit. Go to <a href="https://www.equifax.com/personal/credit-report-services/credit-freeze/" target="_blank">Equifax Credit</a>, <a href="https://www.experian.com/freeze/center.html" target="_blank">Experian Credit</a>, and <a href="https://www.transunion.com/credit-freeze" target="_blank">TransUnion Credit</a> to do that. While the service is free and you can lift the freeze whenever you want, you should keep it frozen and only temporarily lift it when you need to apply for new credit.</p><p>Still, once all your information is out in the open, someone can use that data to impersonate you. Potential victims of identity theft should file a report with the Federal Trade Commission (FTC) on <a href="https://identitytheft.gov/" target="_blank">IdentityTheft.gov</a>. While it’s unlikely to be able to change your <a href="https://www.tomsguide.com/computing/online-security/how-to-protect-your-social-security-number">Social security number</a>, it can be done in extreme cases.</p><h2 id="bottom-line-2">Bottom line</h2><p>Again, once your data has been exposed, there’s no removing it from the dark web. And it’s possible that another breach of your data could find itself there, so you might want to use a continuous dark web monitoring service. <a href="https://www.experian.com/protection/free-dark-web-email-scan/">Experian</a> is one of the free ones, although it does have paid tiers.</p><p>As far as prevention goes, there’s not much you can do to stop your data from being leaked into the wild, but there are steps you should take to reduce the potential damage to your life, namely maintaining unique passwords for your accounts and activating 2FA or MFA.</p><p>The most important takeaway here is not to dawdle. Take the measures to protect yourself and monitor your accounts going forward. You could be exposed to something as simple as spam emails, which you should be able to suss out, but there are worse things than spam.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/online-security/smart-tvs-collect-a-surprising-amount-of-your-data-heres-how-to-stop-them"><strong>Smart TVs collect a surprising amount of your data — here’s how to stop them</strong></a></li><li><a href="https://www.tomsguide.com/computing/online-security/10-simple-security-settings-you-should-change-on-your-phone-and-pc-right-now"><strong>10 simple security settings you should change on your phone and PC right now</strong></a></li><li><strong></strong><a href="https://www.tomsguide.com/computing/antivirus/does-antivirus-slow-down-your-pc"><strong>Does antivirus software still slow down your PC in 2026? We tested the top security software to find out</strong></a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Hackers breached 25 servers, including U.S. government-linked systems — and AI tools may have helped ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Hackers have reportedly broken into 25 servers across four countries, including systems connected to a U.S. government-affiliated organization. Security researchers also discovered evidence that AI tools may have played a role in the attack.</p><p>According to a new <a href="https://dreamgroup.com/blog/chained-php2shell-exploit-roots-25-servers" target="_blank">report from Dream Research</a>, published Monday, the attackers exploited critical vulnerabilities in<a href="https://www.tomsguide.com/computing/online-security/babe-wake-up-the-internet-is-collapsing-two-massive-flaws-just-broke-the-web-and-the-data-of-billions-is-in-the-crossfire"> PHP</a>, a programming language used by millions of websites, before using another security flaw to gain full control of vulnerable systems.</p><p>The attacks targeted servers in the United States, Japan, Taiwan and South Korea. Researchers found evidence pointing to a possible Chinese connection, although they have not identified the attackers or confirmed any government involvement.</p><p>What makes the discovery particularly concerning is how far the attackers managed to get. In one U.S. government-affiliated environment, they moved beyond the initial breach and gained access to internal network information, employee account listings and authentication credentials.</p><p>And while AI's exact role remains unclear, researchers found several tools in the attacker's environment that raise questions about how <a href="https://www.tomsguide.com/computing/online-security/from-misinformation-to-ai-powered-cyberattacks-the-top-cybersecurity-risks-for-2026">AI could be accelerating cyberattacks.</a></p><h2 id="hackers-turned-one-security-flaw-into-a-much-bigger-attack">Hackers turned one security flaw into a much bigger attack</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="K5pD7FD9w329gARVF7biVM" name="Shutterstock_1.jpg" alt="Hacker with multiple screens" src="https://cdn.mos.cms.futurecdn.net/K5pD7FD9w329gARVF7biVM-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>The attack started with two critical security flaws, known collectively as PHP2Shell, that were publicly disclosed on October 21.</p><p>PHP is used behind the scenes by millions of websites, including WordPress sites and online services. The two vulnerabilities, tracked as CVE-2026-109618 and CVE-2026-109619, can let hackers run malicious commands on vulnerable servers.</p><p>But the attackers didn't stop there. They combined those flaws with another Linux vulnerability called Fragnesia, allowing them to take full control of certain firewall systems <a href="https://www.tomsguide.com/us/best-password-managers,review-3785.html">without needing a username or password</a>.</p><p>According to a Dream Research report shared with <em>Tom's Guide</em>, the entire process could take less than 15 minutes.</p><p>The hackers started by scanning roughly 19,000 internet-facing firewalls before narrowing their targets to 240 potentially vulnerable systems. From there, they used automated attacks to <a href="https://www.tomsguide.com/us/iot-attack-physical-impact,news-19182.html">breach 24 firewalls</a> and an additional internal management server, bringing the total to 25.</p><p>Researchers also found that the hackers had installed <a href="https://www.tomsguide.com/computing/online-security/300-000-chrome-users-installed-these-malicious-extensions-posing-as-ai-assistants-delete-them-right-now">malicious web-based tools</a> on many of the compromised systems, giving them a potential way back in even after the initial attack.</p><h2 id="the-attackers-reached-a-u-s-government-linked-network">The attackers reached a U.S. government-linked network</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.20%;"><img id="oqbArUbsVDLnAzz3dQnHMF" name="white house.jpg" alt="The White House" src="https://cdn.mos.cms.futurecdn.net/oqbArUbsVDLnAzz3dQnHMF-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1124" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Arguably, among one of the more concerning discoveries involved three compromised servers linked to a U.S. government-affiliated organization.</p><p>After breaking into an internet-facing firewall, the hackers gained access to details about the organization's internal network, including its VPN, login systems and other servers.</p><p>They then worked their way deeper into the network, compromising a central firewall management server and stealing an account password. They also obtained a list of users and groups within the organization.</p><p>Researchers found evidence that the attackers tried to guess employee passwords, create unauthorized accounts and access additional login credentials, although it's unclear whether those attempts worked.</p><p>Dream Research also warned that the hackers may still have had access to some systems when the report was published, but that hasn't been independently confirmed.</p><p>The security firm hasn't named the firewall manufacturer or disclosed which software versions were affected, but says it has notified the vendor.</p><h2 id="ai-tools-were-discovered-in-the-attacker-39-s-environment">AI tools were discovered in the attacker's environment</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="tRQkLM2y6DDdpYEHVHtBSi" name="deepseek.shutterstock_2551312497" alt="DeepSeek logo on phone" src="https://cdn.mos.cms.futurecdn.net/tRQkLM2y6DDdpYEHVHtBSi-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Researchers also found signs that the attackers may have used AI. Their tools included <a href="https://www.tomsguide.com/ai/i-tested-claude-cowork-anthropics-new-ai-feels-more-like-a-coworker-than-a-chatbot">Anthropic's Claude Code</a> and an AI-powered security platform called <a href="https://www.aiscan.com/en/">aiscan</a>, configured to work with the Chinese AI models <a href="https://www.tomsguide.com/ai/deepseek">DeepSeek</a> and <a href="https://www.tomsguide.com/ai/what-is-kimi-k3-everything-you-need-to-know-about-the-new-chatgpt-rival">Kimi</a>.</p><p>They also uncovered roughly 40 custom scripts whose consistent formatting and comments suggested some may have been written with AI assistance.</p><p>However, Dream Research cautioned that there's no direct evidence AI was used to create the exploits or carry out the attacks. The tools may have been present without playing a role in the breaches.</p><p>Still, the findings raise concerns about how hackers could use the same AI coding assistants that developers rely on to write code and troubleshoot problems.</p><p>Researchers also found clues suggesting a possible Chinese connection, including Chinese-language prompts, systems set to China's time zone and targets concentrated in the U.S. and East Asia. None of this, however, confirms who was behind the attacks.</p><h2 id="final-thoughts">Final thoughts </h2><p>PHP2Shell doesn't directly affect your phone or laptop, but it could put information stored by websites and online services at risk. If attackers compromise those servers, they may gain access to passwords, sensitive data or internal systems.</p><p>Dream Research found no evidence that ordinary consumers' personal information was stolen in this campaign. However, the vulnerabilities are already being exploited beyond these 25 servers.</p><p><a href="https://aws.amazon.com/blogs/security/amazon-threat-intelligence-identifies-php2shell-exploitation-prior-to-public-disclosure-in-madpot/" target="_blank">Amazon Web Services</a> detected exploitation attempts as early as October 17, four days before the flaws were publicly disclosed. <a href="https://www.sophos.com/en-us/blog/proof-of-concept-exploit-released-for-php-vulnerabilities-109618-109619" target="_blank">Sophos</a> initially reported successful exploitation but later corrected its findings, saying it had observed scanning and a small number of failed attacks, with no confirmed breaches in its customer environments.</p><p>If you run a WordPress site or online store, check with your hosting provider to make sure PHP is patched. Updating WordPress plugins alone won't necessarily fix the problem. Administrators should also check for signs of compromise, since installing a patch won't remove an attacker who's already gained access.</p><p>For everyone else, using unique passwords, enabling two-factor authentication and watching for suspicious login alerts remain sensible precautions.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom’s Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/i-tested-chatgpt-vs-grok-with-5-questions-boomers-actually-ask-and-the-winner-surprised-me" target="_blank">I tested ChatGPT vs. Grok with 5 questions boomers actually ask — and the winner surprised me</a></li><li><a href="https://www.tomsguide.com/ai/microsoft-just-offered-60-000-workers-a-way-out-as-ai-spending-soars-heres-what-it-could-mean-for-your-job" target="_blank">Microsoft just offered 60,000 workers a way out as AI spending soars — here's what it could mean for your job</a></li><li><a href="https://www.tomsguide.com/ai/chatgpt-has-a-clever-new-way-to-fight-back-against-election-deepfakes-i-tried-it-and-it-actually-works" target="_blank">ChatGPT has a clever new way to fight back against election deepfakes — I tried it and it actually works</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/ai/hackers-breached-25-servers-including-u-s-government-linked-systems-and-ai-tools-may-have-helped</link>
                                                                            <description>
                            <![CDATA[ Hackers exploited critical security flaws to breach 25 servers, including U.S. government-linked systems. Researchers say AI tools may have played a role. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">7jqmC2RtDxqskLZ7C8biP7</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/9JmTabf9SdZjLaW9muABUj-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 28 Oct 2026 08:15:00 +0000</pubDate>                                                                                                                                <updated>Wed, 28 Oct 2026 14:28:51 +0000</updated>
                                                                                                                                            <category><![CDATA[AI]]></category>
                                                    <category><![CDATA[Online Security]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Internet]]></category>
                                                                                                <author><![CDATA[ amanda.caswell@futurenet.com (Amanda Caswell) ]]></author>                    <dc:creator><![CDATA[ Amanda Caswell ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/zYjevim2q7FjQiefqpjZRB-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/9JmTabf9SdZjLaW9muABUj-1920-80.jpg">
                                                            <media:credit><![CDATA[Getty Images]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A stock image of a hacker using a computer to infect a server with a virus]]></media:description>                                                            <media:text><![CDATA[A stock image of a hacker using a computer to infect a server with a virus]]></media:text>
                                <media:title type="plain"><![CDATA[A stock image of a hacker using a computer to infect a server with a virus]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/9JmTabf9SdZjLaW9muABUj-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Hackers have reportedly broken into 25 servers across four countries, including systems connected to a U.S. government-affiliated organization. Security researchers also discovered evidence that AI tools may have played a role in the attack.</p><p>According to a new <a href="https://dreamgroup.com/blog/chained-php2shell-exploit-roots-25-servers" target="_blank">report from Dream Research</a>, published Monday, the attackers exploited critical vulnerabilities in<a href="https://www.tomsguide.com/computing/online-security/babe-wake-up-the-internet-is-collapsing-two-massive-flaws-just-broke-the-web-and-the-data-of-billions-is-in-the-crossfire"> PHP</a>, a programming language used by millions of websites, before using another security flaw to gain full control of vulnerable systems.</p><p>The attacks targeted servers in the United States, Japan, Taiwan and South Korea. Researchers found evidence pointing to a possible Chinese connection, although they have not identified the attackers or confirmed any government involvement.</p><p>What makes the discovery particularly concerning is how far the attackers managed to get. In one U.S. government-affiliated environment, they moved beyond the initial breach and gained access to internal network information, employee account listings and authentication credentials.</p><p>And while AI's exact role remains unclear, researchers found several tools in the attacker's environment that raise questions about how <a href="https://www.tomsguide.com/computing/online-security/from-misinformation-to-ai-powered-cyberattacks-the-top-cybersecurity-risks-for-2026">AI could be accelerating cyberattacks.</a></p><h2 id="hackers-turned-one-security-flaw-into-a-much-bigger-attack">Hackers turned one security flaw into a much bigger attack</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="K5pD7FD9w329gARVF7biVM" name="Shutterstock_1.jpg" alt="Hacker with multiple screens" src="https://cdn.mos.cms.futurecdn.net/K5pD7FD9w329gARVF7biVM-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>The attack started with two critical security flaws, known collectively as PHP2Shell, that were publicly disclosed on October 21.</p><p>PHP is used behind the scenes by millions of websites, including WordPress sites and online services. The two vulnerabilities, tracked as CVE-2026-109618 and CVE-2026-109619, can let hackers run malicious commands on vulnerable servers.</p><p>But the attackers didn't stop there. They combined those flaws with another Linux vulnerability called Fragnesia, allowing them to take full control of certain firewall systems <a href="https://www.tomsguide.com/us/best-password-managers,review-3785.html">without needing a username or password</a>.</p><p>According to a Dream Research report shared with <em>Tom's Guide</em>, the entire process could take less than 15 minutes.</p><p>The hackers started by scanning roughly 19,000 internet-facing firewalls before narrowing their targets to 240 potentially vulnerable systems. From there, they used automated attacks to <a href="https://www.tomsguide.com/us/iot-attack-physical-impact,news-19182.html">breach 24 firewalls</a> and an additional internal management server, bringing the total to 25.</p><p>Researchers also found that the hackers had installed <a href="https://www.tomsguide.com/computing/online-security/300-000-chrome-users-installed-these-malicious-extensions-posing-as-ai-assistants-delete-them-right-now">malicious web-based tools</a> on many of the compromised systems, giving them a potential way back in even after the initial attack.</p><h2 id="the-attackers-reached-a-u-s-government-linked-network">The attackers reached a U.S. government-linked network</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.20%;"><img id="oqbArUbsVDLnAzz3dQnHMF" name="white house.jpg" alt="The White House" src="https://cdn.mos.cms.futurecdn.net/oqbArUbsVDLnAzz3dQnHMF-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1124" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Arguably, among one of the more concerning discoveries involved three compromised servers linked to a U.S. government-affiliated organization.</p><p>After breaking into an internet-facing firewall, the hackers gained access to details about the organization's internal network, including its VPN, login systems and other servers.</p><p>They then worked their way deeper into the network, compromising a central firewall management server and stealing an account password. They also obtained a list of users and groups within the organization.</p><p>Researchers found evidence that the attackers tried to guess employee passwords, create unauthorized accounts and access additional login credentials, although it's unclear whether those attempts worked.</p><p>Dream Research also warned that the hackers may still have had access to some systems when the report was published, but that hasn't been independently confirmed.</p><p>The security firm hasn't named the firewall manufacturer or disclosed which software versions were affected, but says it has notified the vendor.</p><h2 id="ai-tools-were-discovered-in-the-attacker-39-s-environment">AI tools were discovered in the attacker's environment</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="tRQkLM2y6DDdpYEHVHtBSi" name="deepseek.shutterstock_2551312497" alt="DeepSeek logo on phone" src="https://cdn.mos.cms.futurecdn.net/tRQkLM2y6DDdpYEHVHtBSi-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Researchers also found signs that the attackers may have used AI. Their tools included <a href="https://www.tomsguide.com/ai/i-tested-claude-cowork-anthropics-new-ai-feels-more-like-a-coworker-than-a-chatbot">Anthropic's Claude Code</a> and an AI-powered security platform called <a href="https://www.aiscan.com/en/">aiscan</a>, configured to work with the Chinese AI models <a href="https://www.tomsguide.com/ai/deepseek">DeepSeek</a> and <a href="https://www.tomsguide.com/ai/what-is-kimi-k3-everything-you-need-to-know-about-the-new-chatgpt-rival">Kimi</a>.</p><p>They also uncovered roughly 40 custom scripts whose consistent formatting and comments suggested some may have been written with AI assistance.</p><p>However, Dream Research cautioned that there's no direct evidence AI was used to create the exploits or carry out the attacks. The tools may have been present without playing a role in the breaches.</p><p>Still, the findings raise concerns about how hackers could use the same AI coding assistants that developers rely on to write code and troubleshoot problems.</p><p>Researchers also found clues suggesting a possible Chinese connection, including Chinese-language prompts, systems set to China's time zone and targets concentrated in the U.S. and East Asia. None of this, however, confirms who was behind the attacks.</p><h2 id="final-thoughts">Final thoughts </h2><p>PHP2Shell doesn't directly affect your phone or laptop, but it could put information stored by websites and online services at risk. If attackers compromise those servers, they may gain access to passwords, sensitive data or internal systems.</p><p>Dream Research found no evidence that ordinary consumers' personal information was stolen in this campaign. However, the vulnerabilities are already being exploited beyond these 25 servers.</p><p><a href="https://aws.amazon.com/blogs/security/amazon-threat-intelligence-identifies-php2shell-exploitation-prior-to-public-disclosure-in-madpot/" target="_blank">Amazon Web Services</a> detected exploitation attempts as early as October 17, four days before the flaws were publicly disclosed. <a href="https://www.sophos.com/en-us/blog/proof-of-concept-exploit-released-for-php-vulnerabilities-109618-109619" target="_blank">Sophos</a> initially reported successful exploitation but later corrected its findings, saying it had observed scanning and a small number of failed attacks, with no confirmed breaches in its customer environments.</p><p>If you run a WordPress site or online store, check with your hosting provider to make sure PHP is patched. Updating WordPress plugins alone won't necessarily fix the problem. Administrators should also check for signs of compromise, since installing a patch won't remove an attacker who's already gained access.</p><p>For everyone else, using unique passwords, enabling two-factor authentication and watching for suspicious login alerts remain sensible precautions.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom’s Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/i-tested-chatgpt-vs-grok-with-5-questions-boomers-actually-ask-and-the-winner-surprised-me" target="_blank">I tested ChatGPT vs. Grok with 5 questions boomers actually ask — and the winner surprised me</a></li><li><a href="https://www.tomsguide.com/ai/microsoft-just-offered-60-000-workers-a-way-out-as-ai-spending-soars-heres-what-it-could-mean-for-your-job" target="_blank">Microsoft just offered 60,000 workers a way out as AI spending soars — here's what it could mean for your job</a></li><li><a href="https://www.tomsguide.com/ai/chatgpt-has-a-clever-new-way-to-fight-back-against-election-deepfakes-i-tried-it-and-it-actually-works" target="_blank">ChatGPT has a clever new way to fight back against election deepfakes — I tried it and it actually works</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Save $6.50 per month with this Proton Unlimited deal ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Let's face it, most of us don't <em>want</em> to use Google for everything. We know every email we send or document we save is inspected for personal data to target us with ads. But the issue is that there's really no alternative...or is there?</p><p>Proton is changing the status quo – and it's doing a very good job of it. The Swiss company started off with Proton Mail – which, by now, is a truly viable Gmail alternative – but since then it has developed one of the <a href="https://www.tomsguide.com/best-picks/best-vpn">best VPNs</a>, <a href="https://www.tomsguide.com/reviews/protonvpn-review">Proton VPN</a>, as well as Proton Drive, Pass, <a href="https://www.tomsguide.com/computing/vpns/popular-vpn-provider-launches-potential-google-docs-killer">Docs</a>, Sheets, Calendar, and most recently, Meet. Almost everything you need to de-Google your life.</p><p>Proton Unlimited includes every one of these apps. It usually costs $12.99 per month, but right now, in the run up to Black Friday, the 12-month plan has dropped to <a href="https://go.getproton.me/aff_c?offer_id=25&amp;aff_id=1046&amp;url_id=1199" target="_blank" rel="nofollow"><strong>$6.49 per month</strong></a> ($77.88 upfront). This is the cheapest I've ever seen it.</p><p>If you're not sure, you can also purchase a single month for just $1 – although the discounted price on the long-term plan will likely end before that first month runs out.</p><p>This is almost certainly one of the very <a href="https://www.tomsguide.com/best-picks/vpn-black-friday-deals">best Black Friday VPN deals</a> we'll see this year, and it's not even November. More info below.</p><div class="product"><a data-dimension112="8e147c64-d21b-11f1-8109-f1c178eed47f" data-action="Deal Block" data-label="Proton Unlimited | 12 Months" data-dimension48="Proton Unlimited | 12 Months" href="https://go.getproton.me/aff_c?offer_id=25&amp;aff_id=1046&amp;url_id=1199" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:400px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="J7U563iorgaU5gPmihV2Zf" name="ProtonSmallLogo" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/J7U563iorgaU5gPmihV2Zf-1920-80.jpg" mos="" align="middle" fullscreen="" width="400" height="400" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://go.getproton.me/aff_c?offer_id=25&amp;aff_id=1046&amp;url_id=1199" target="_blank" rel="nofollow" data-dimension112="8e147c64-d21b-11f1-8109-f1c178eed47f" data-action="Deal Block" data-label="Proton Unlimited | 12 Months" data-dimension48="Proton Unlimited | 12 Months" data-dimension25=""><strong>Proton Unlimited | 12 Months</strong> </a><br /><del>Was: $12.99 per month </del><br /><a href="https://go.getproton.me/aff_c?offer_id=25&amp;aff_id=1046&amp;url_id=1199" target="_blank" rel="nofollow"><strong>Now: $6.49 per month </strong></a><br />Proton Unlimited is <em>the</em> ecosystem to rival Google. It's private, end-to-end encrypted, and has never seen a discount this dramatic before. </p><p><strong>What you'll get:</strong><br /><strong>🚀 Proton VPN</strong><br /><strong>🔐 Proton Pass </strong><br /><strong>📧 Proton Mail</strong><br /><strong>✨ Even more, inc. Drive, Calendar, &amp; Meet</strong></p><p>A 12-month Proton Unlimited subscription costs <a href="https://go.getproton.me/aff_c?offer_id=25&amp;aff_id=1046&amp;url_id=1199" target="_blank" rel="nofollow"><strong>$6.49 per month</strong></a> ($77.88 upfront) and comes with a 30-day money-back guarantee. <a class="view-deal button" href="https://go.getproton.me/aff_c?offer_id=25&amp;aff_id=1046&amp;url_id=1199" target="_blank" rel="nofollow" data-dimension112="8e147c64-d21b-11f1-8109-f1c178eed47f" data-action="Deal Block" data-label="Proton Unlimited | 12 Months" data-dimension48="Proton Unlimited | 12 Months" data-dimension25="">View Deal</a></p></div><h2 id="all-you-need-to-de-google-yourself">All you need to de-Google yourself</h2><p>At $6.49 a month, Proton Unlimited covers a lot of ground. <a href="https://www.tomsguide.com/reviews/protonvpn-review">Proton VPN</a> gives you access to 21,000+ servers across 149 countries, support for up to 10 devices, and excellent speeds. It also includes <a href="https://www.tomsguide.com/features/proton-vpn-netshield-what-is-it-and-why-should-you-use-it">NetShield</a> ad-blocking, <a href="https://www.tomsguide.com/features/protonvpn-secure-core">Secure Core</a> servers for extra security, Tor over VPN, <a href="https://www.tomsguide.com/news/what-is-vpn-split-tunneling-and-how-does-it-work">split tunneling</a>, a <a href="https://www.tomsguide.com/features/what-is-a-vpn-kill-switch-and-why-do-you-need-one">kill switch</a>, and a <a href="https://www.tomsguide.com/computing/vpns/proton-vpn-passes-its-fourth-consecutive-no-logs-audit-heres-what-that-means-for-your-data">strict no-logs policy</a>.</p><p>Proton Mail includes 15 encrypted email addresses, unlimited hide-my-email aliases, and support for up to three custom domains.</p><p>Proton Drive adds 500 GB of encrypted cloud storage, with version history, while <a href="https://www.tomsguide.com/computing/password-managers/proton-pass-review">Proton Pass</a> goes beyond basic password management with 50 vaults, unlimited logins, and a built-in 2FA authenticator which means one less app to juggle.</p><p>Proton Calendar keeps your schedule encrypted and off Big Tech servers, while Proton Meet offers private video calling without the Google or Zoom overhead.</p><p>Round that out with Proton Wallet – an encrypted Bitcoin wallet – and Lumo AI, Proton's privacy-first AI assistant, and you have a self-contained privacy ecosystem that rivals anything Big Tech offers. </p><p>One subscription, an escape from Google, and the biggest discount you'll see outside of Black Friday.</p><div data-widget-type="simple" data-model-name="Proton VPN"></div><p>We test and review VPN services in the context of legal recreational uses. For example:1. Accessing a service from another country (subject to the terms and conditions of that service).2. Protecting your online security and strengthening your online privacy when abroad.We do not support or condone the illegal or malicious use of VPN services. Consuming pirated content that is paid-for is neither endorsed nor approved by Future Publishing.</p> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/vpns/protons-early-black-friday-deal-has-blown-my-socks-off-its-better-than-half-price-for-a-whole-year</link>
                                                                            <description>
                            <![CDATA[ Proton Unlimited is down to $6.49 a month, saving you a massive $78 per year on a privacy suite that replaces your VPN, email, cloud storage, and more ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">ayH5zgrnXpBR6jtFqvWyHT</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/GizBtAtxMTKS5GuA2bw5uT-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 27 Oct 2026 15:57:12 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[VPNs]]></category>
                                                    <category><![CDATA[Online Security]]></category>
                                                    <category><![CDATA[Password Managers]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Internet]]></category>
                                                                                                                    <dc:creator><![CDATA[ Mo Harber-Lamond ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/e5z29XBdy9KTwJ4GsGoUsH-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;As VPN editor at Tom&#039;s Guide, Mo manages the three-strong VPN team and oversees a busy weekly content schedule of VPN, privacy, and cybersecurity news, reviews, and advice. He&#039;s a daily VPN user himself – typically NordVPN or ExpressVPN – and a regular reviewer of all the leading services: you’ll find his latest recommendations in Tom’s Guide’s &lt;a href=&quot;https://www.tomsguide.com/best-picks/best-vpn&quot;&gt;best VPN&lt;/a&gt; and &lt;a href=&quot;https://www.tomsguide.com/best-picks/best-free-vpn&quot;&gt;best free VPN&lt;/a&gt; guides. &lt;/p&gt;&lt;p&gt;Mo is committed to helping people choose the right VPN for their needs, and takes a meticulous, data-driven approach to Tom’s Guide’s testing processes to ensure that he and his team can make confident VPN recommendations that are grounded in thorough, real-world testing. &lt;/p&gt;&lt;p&gt;Whether he’s analyzing advanced privacy features like obfuscation and split tunneling, connection speeds across different protocols such as WireGuard and OpenVPN, or compatibility across different devices, Mo has clocked up hundreds of hours over the last half-decade interrogating the claims made by leading and lesser-known VPN providers.&lt;/p&gt;&lt;p&gt;Mo&#039;s newest venture is launching &lt;a href=&quot;https://www.youtube.com/@The.PrivacyLab&quot; target=&quot;_blank&quot;&gt;The Privacy Lab&lt;/a&gt; on YouTube. Focusing on general digital privacy – including VPNs, of course – The Privacy Lab aims to make staying safer online more accessible. Expect explainers, recommendations, and longer deep-dives into important privacy stories.&lt;/p&gt;&lt;p&gt;Outside of his role at Tom’s Guide, Mo has contributed to a number of leading tech publications on VPN and privacy issues, including &lt;a href=&quot;https://www.techradar.com/author/mo-harber-lamond&quot;&gt;TechRadar&lt;/a&gt;, &lt;a href=&quot;https://www.whathifi.com/author/mo-harber-lamond&quot;&gt;What Hi-Fi?&lt;/a&gt; and &lt;a href=&quot;https://www.t3.com/author/mo-harber-lamond&quot;&gt;T3&lt;/a&gt;, developing his position as a trusted voice in the field. &lt;/p&gt;&lt;p&gt;He graduated with First Class honours in English Literature and Creative Writing from Manchester University in the UK, and before joining the Tom&#039;s Guide team, worked for several years in creative and editorial writing. Alongside this, he side-hustled as a proofreader and copy editor – honing his skills in communicating complex information clearly – all the while gaining notoriety (if not success) with his band in his homeland of Cornwall.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/GizBtAtxMTKS5GuA2bw5uT-1920-80.jpg">
                                                            <media:credit><![CDATA[Proton]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Proton logo with VPN, Mail, Calendar and Drive logos]]></media:description>                                                            <media:text><![CDATA[Proton logo with VPN, Mail, Calendar and Drive logos]]></media:text>
                                <media:title type="plain"><![CDATA[Proton logo with VPN, Mail, Calendar and Drive logos]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/GizBtAtxMTKS5GuA2bw5uT-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Let's face it, most of us don't <em>want</em> to use Google for everything. We know every email we send or document we save is inspected for personal data to target us with ads. But the issue is that there's really no alternative...or is there?</p><p>Proton is changing the status quo – and it's doing a very good job of it. The Swiss company started off with Proton Mail – which, by now, is a truly viable Gmail alternative – but since then it has developed one of the <a href="https://www.tomsguide.com/best-picks/best-vpn">best VPNs</a>, <a href="https://www.tomsguide.com/reviews/protonvpn-review">Proton VPN</a>, as well as Proton Drive, Pass, <a href="https://www.tomsguide.com/computing/vpns/popular-vpn-provider-launches-potential-google-docs-killer">Docs</a>, Sheets, Calendar, and most recently, Meet. Almost everything you need to de-Google your life.</p><p>Proton Unlimited includes every one of these apps. It usually costs $12.99 per month, but right now, in the run up to Black Friday, the 12-month plan has dropped to <a href="https://go.getproton.me/aff_c?offer_id=25&amp;aff_id=1046&amp;url_id=1199" target="_blank" rel="nofollow"><strong>$6.49 per month</strong></a> ($77.88 upfront). This is the cheapest I've ever seen it.</p><p>If you're not sure, you can also purchase a single month for just $1 – although the discounted price on the long-term plan will likely end before that first month runs out.</p><p>This is almost certainly one of the very <a href="https://www.tomsguide.com/best-picks/vpn-black-friday-deals">best Black Friday VPN deals</a> we'll see this year, and it's not even November. More info below.</p><div class="product"><a data-dimension112="8e147c64-d21b-11f1-8109-f1c178eed47f" data-action="Deal Block" data-label="Proton Unlimited | 12 Months" data-dimension48="Proton Unlimited | 12 Months" href="https://go.getproton.me/aff_c?offer_id=25&amp;aff_id=1046&amp;url_id=1199" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:400px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="J7U563iorgaU5gPmihV2Zf" name="ProtonSmallLogo" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/J7U563iorgaU5gPmihV2Zf-1920-80.jpg" mos="" align="middle" fullscreen="" width="400" height="400" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://go.getproton.me/aff_c?offer_id=25&amp;aff_id=1046&amp;url_id=1199" target="_blank" rel="nofollow" data-dimension112="8e147c64-d21b-11f1-8109-f1c178eed47f" data-action="Deal Block" data-label="Proton Unlimited | 12 Months" data-dimension48="Proton Unlimited | 12 Months" data-dimension25=""><strong>Proton Unlimited | 12 Months</strong> </a><br /><del>Was: $12.99 per month </del><br /><a href="https://go.getproton.me/aff_c?offer_id=25&amp;aff_id=1046&amp;url_id=1199" target="_blank" rel="nofollow"><strong>Now: $6.49 per month </strong></a><br />Proton Unlimited is <em>the</em> ecosystem to rival Google. It's private, end-to-end encrypted, and has never seen a discount this dramatic before. </p><p><strong>What you'll get:</strong><br /><strong>🚀 Proton VPN</strong><br /><strong>🔐 Proton Pass </strong><br /><strong>📧 Proton Mail</strong><br /><strong>✨ Even more, inc. Drive, Calendar, &amp; Meet</strong></p><p>A 12-month Proton Unlimited subscription costs <a href="https://go.getproton.me/aff_c?offer_id=25&amp;aff_id=1046&amp;url_id=1199" target="_blank" rel="nofollow"><strong>$6.49 per month</strong></a> ($77.88 upfront) and comes with a 30-day money-back guarantee. <a class="view-deal button" href="https://go.getproton.me/aff_c?offer_id=25&amp;aff_id=1046&amp;url_id=1199" target="_blank" rel="nofollow" data-dimension112="8e147c64-d21b-11f1-8109-f1c178eed47f" data-action="Deal Block" data-label="Proton Unlimited | 12 Months" data-dimension48="Proton Unlimited | 12 Months" data-dimension25="">View Deal</a></p></div><h2 id="all-you-need-to-de-google-yourself">All you need to de-Google yourself</h2><p>At $6.49 a month, Proton Unlimited covers a lot of ground. <a href="https://www.tomsguide.com/reviews/protonvpn-review">Proton VPN</a> gives you access to 21,000+ servers across 149 countries, support for up to 10 devices, and excellent speeds. It also includes <a href="https://www.tomsguide.com/features/proton-vpn-netshield-what-is-it-and-why-should-you-use-it">NetShield</a> ad-blocking, <a href="https://www.tomsguide.com/features/protonvpn-secure-core">Secure Core</a> servers for extra security, Tor over VPN, <a href="https://www.tomsguide.com/news/what-is-vpn-split-tunneling-and-how-does-it-work">split tunneling</a>, a <a href="https://www.tomsguide.com/features/what-is-a-vpn-kill-switch-and-why-do-you-need-one">kill switch</a>, and a <a href="https://www.tomsguide.com/computing/vpns/proton-vpn-passes-its-fourth-consecutive-no-logs-audit-heres-what-that-means-for-your-data">strict no-logs policy</a>.</p><p>Proton Mail includes 15 encrypted email addresses, unlimited hide-my-email aliases, and support for up to three custom domains.</p><p>Proton Drive adds 500 GB of encrypted cloud storage, with version history, while <a href="https://www.tomsguide.com/computing/password-managers/proton-pass-review">Proton Pass</a> goes beyond basic password management with 50 vaults, unlimited logins, and a built-in 2FA authenticator which means one less app to juggle.</p><p>Proton Calendar keeps your schedule encrypted and off Big Tech servers, while Proton Meet offers private video calling without the Google or Zoom overhead.</p><p>Round that out with Proton Wallet – an encrypted Bitcoin wallet – and Lumo AI, Proton's privacy-first AI assistant, and you have a self-contained privacy ecosystem that rivals anything Big Tech offers. </p><p>One subscription, an escape from Google, and the biggest discount you'll see outside of Black Friday.</p><div data-widget-type="simple" data-model-name="Proton VPN"></div><p>We test and review VPN services in the context of legal recreational uses. For example:1. Accessing a service from another country (subject to the terms and conditions of that service).2. Protecting your online security and strengthening your online privacy when abroad.We do not support or condone the illegal or malicious use of VPN services. Consuming pirated content that is paid-for is neither endorsed nor approved by Future Publishing.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Proton to re-interview staff on AI use – and jobs may be on the line ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Digital privacy stalwart Proton is reportedly set to interview employees across the company about how they use AI in their work, and the answers could help decide who keeps their job. The firm behind Proton Mail and <a href="https://www.tomsguide.com/reviews/protonvpn-review">Proton VPN</a> – one of the <a href="https://www.tomsguide.com/best-picks/best-vpn">best VPNs</a> – told staff about the plan in an internal email on Monday, October 26, which was leaked to <a href="https://www.404media.co/proton-to-re-interview-staff-about-ai-to-see-who-gets-to-keep-their-job/" target="_blank" rel="nofollow">404 Media</a>.</p><p>The email calls the re-interviews "consequential." What interviewers conclude will be written up and fed into a broader review of the organization, which could change people's roles and responsibilities – or whether they stay at Proton.</p><p>The move fits a wider push under CEO Andy Yen, who has been steering Proton toward heavier AI use, including the launch of Lumo, its privacy-focused chatbot. Proton had not responded to 404 Media's request for comment at the time of publication, but has now made a <a href="https://www.reddit.com/r/ProtonMail/comments/1xg8nq9/proton_to_reinterview_staff_about_ai_to_see_who/" target="_blank" rel="nofollow">public statement on Reddit</a>.</p><h2 id="what-proton-says">What Proton says</h2><p>In the Reddit comment on r/ProtonMail, posted from the Proton_Team account, the company claims it is "not doing layoffs and using AI as an excuse." As a counterpoint to this, it states it has a talent shortage and is hiring across the organization.</p><p>"AI is changing the tech industry," the comment continues, "and we, like everyone else, need to evolve our ways of working to remain effective in our industry, and to deliver features faster to users."</p><p>The company says it is "assessing how colleagues are adapting to these tools, what support they need, and who can help lead this work." </p><p>Finally, Proton states that it is also "assessing whether everyone has the skills they need to take a step forward in a post-AI world," and "offering the support that is necessary, to those who need it, to succeed." </p><p>In the Reddit comment, Proton also published the full email, which it says went to some of its staff.</p><h2 id="who-gets-interviewed-and-by-whom">Who gets interviewed – and by whom</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="gEJZbZHttC4xRifkwHmmqF" name="AndyYenheader" alt="Proton CEO Andy Yen speaks at the Semafor World Economy 2026 summit on April 15, 2026 in Washington, DC." src="https://cdn.mos.cms.futurecdn.net/gEJZbZHttC4xRifkwHmmqF-1920-80.jpg" mos="" align="middle" fullscreen="" width="1280" height="720" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Alex Wong / Getty Images)</span></figcaption></figure><p>The email itself is less reassuring to those impacted: "We are now extending re-interviews more broadly to assess how people are adapting to AI and whether they have the capabilities and approach needed for Proton’s next phase."</p><p>Not everyone will be re-interviewed. Interviews will be prioritized according to the organization's assessment needs, the email says, and an invitation – or the lack of one – isn't an outcome in itself. Any decision affecting someone's employment will come separately.</p><p>Those who are invited will be interviewed by someone outside their own team and reporting line, chosen from a pool of leaders who "demonstrate strong AI capability." </p><p>The interviews will run from November 4 to 11, and staff are told to arrive with concrete examples of their use of AI. The email is blunt about what passes muster here: "Be ready to discuss what you have changed in your work, the results, what you have learned, what has not worked, and what you would do differently. A list of tools alone will not demonstrate this."</p><h2 id="what-proton-wants-from-staff">What Proton wants from staff</h2><p>The email also presents the interviews as a route to advancement, saying staff who rethink their work, put AI into practice and help others adapt may be offered greater responsibility. It asks for "curiosity, judgment and urgency."</p><p>Yen himself first interviewed more than 40 senior leaders across Engineering and Product, the email says, before the process widened to staff across the company.</p><p>AI is not new at Proton. An AI writing assistant arrived in Proton Mail in 2024, Lumo followed in July 2025, and the chatbot got an upgrade in June 2026. Proton says it keeps no server-side logs of Lumo conversations and runs the chatbot on its own infrastructure.</p><p>Yen told <a href="https://www.wired.com/story/the-big-interview-podcast-andy-yen-proton/" target="_blank">Wired in an interview</a> published in August that AI is surveillance and that Proton was reluctantly pulled into building AI tools. He added that he would probably prefer a world without AI, but accepts it is here to stay. Clearly, his opinion has not changed on the matter.</p><div data-widget-type="merchantlink" data-model-name="Proton VPN"></div><p>We test and review VPN services in the context of legal recreational uses. For example:<strong>1.</strong> Accessing a service from another country (subject to the terms and conditions of that service).<strong>2.</strong> Protecting your online security and strengthening your online privacy when abroad.We do not support or condone the illegal or malicious use of VPN services. Consuming pirated content that is paid-for is neither endorsed nor approved by Future Publishing.</p> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/vpns/proton-to-re-interview-staff-on-ai-use-and-jobs-may-be-on-the-line</link>
                                                                            <description>
                            <![CDATA[ A leaked internal email from Proton states that employees from across the company will be re-interviewed to assess their ability to use AI – and the results could impact their jobs. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">s573RJB7QGeWCEErBdaVUM</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/s2oXUqPUFe8h4nR6b8qgoY-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 27 Oct 2026 12:54:49 +0000</pubDate>                                                                                                                                <updated>Wed, 28 Oct 2026 09:25:53 +0000</updated>
                                                                                                                                            <category><![CDATA[VPNs]]></category>
                                                    <category><![CDATA[AI]]></category>
                                                    <category><![CDATA[Online Security]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Internet]]></category>
                                                                                                                    <dc:creator><![CDATA[ Aleksandar Stevanović ]]></dc:creator>                                                                                                        <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/s2oXUqPUFe8h4nR6b8qgoY-1920-80.jpg">
                                                            <media:credit><![CDATA[FABRICE COFFRINI / Getty Images]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Proton CEO Andy Yen standing in front of white wall. &quot;Proton, Privacy by default&quot; is written on the wall in purple ]]></media:description>                                                            <media:text><![CDATA[Proton CEO Andy Yen standing in front of white wall. &quot;Proton, Privacy by default&quot; is written on the wall in purple ]]></media:text>
                                <media:title type="plain"><![CDATA[Proton CEO Andy Yen standing in front of white wall. &quot;Proton, Privacy by default&quot; is written on the wall in purple ]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/s2oXUqPUFe8h4nR6b8qgoY-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Digital privacy stalwart Proton is reportedly set to interview employees across the company about how they use AI in their work, and the answers could help decide who keeps their job. The firm behind Proton Mail and <a href="https://www.tomsguide.com/reviews/protonvpn-review">Proton VPN</a> – one of the <a href="https://www.tomsguide.com/best-picks/best-vpn">best VPNs</a> – told staff about the plan in an internal email on Monday, October 26, which was leaked to <a href="https://www.404media.co/proton-to-re-interview-staff-about-ai-to-see-who-gets-to-keep-their-job/" target="_blank" rel="nofollow">404 Media</a>.</p><p>The email calls the re-interviews "consequential." What interviewers conclude will be written up and fed into a broader review of the organization, which could change people's roles and responsibilities – or whether they stay at Proton.</p><p>The move fits a wider push under CEO Andy Yen, who has been steering Proton toward heavier AI use, including the launch of Lumo, its privacy-focused chatbot. Proton had not responded to 404 Media's request for comment at the time of publication, but has now made a <a href="https://www.reddit.com/r/ProtonMail/comments/1xg8nq9/proton_to_reinterview_staff_about_ai_to_see_who/" target="_blank" rel="nofollow">public statement on Reddit</a>.</p><h2 id="what-proton-says">What Proton says</h2><p>In the Reddit comment on r/ProtonMail, posted from the Proton_Team account, the company claims it is "not doing layoffs and using AI as an excuse." As a counterpoint to this, it states it has a talent shortage and is hiring across the organization.</p><p>"AI is changing the tech industry," the comment continues, "and we, like everyone else, need to evolve our ways of working to remain effective in our industry, and to deliver features faster to users."</p><p>The company says it is "assessing how colleagues are adapting to these tools, what support they need, and who can help lead this work." </p><p>Finally, Proton states that it is also "assessing whether everyone has the skills they need to take a step forward in a post-AI world," and "offering the support that is necessary, to those who need it, to succeed." </p><p>In the Reddit comment, Proton also published the full email, which it says went to some of its staff.</p><h2 id="who-gets-interviewed-and-by-whom">Who gets interviewed – and by whom</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="gEJZbZHttC4xRifkwHmmqF" name="AndyYenheader" alt="Proton CEO Andy Yen speaks at the Semafor World Economy 2026 summit on April 15, 2026 in Washington, DC." src="https://cdn.mos.cms.futurecdn.net/gEJZbZHttC4xRifkwHmmqF-1920-80.jpg" mos="" align="middle" fullscreen="" width="1280" height="720" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Alex Wong / Getty Images)</span></figcaption></figure><p>The email itself is less reassuring to those impacted: "We are now extending re-interviews more broadly to assess how people are adapting to AI and whether they have the capabilities and approach needed for Proton’s next phase."</p><p>Not everyone will be re-interviewed. Interviews will be prioritized according to the organization's assessment needs, the email says, and an invitation – or the lack of one – isn't an outcome in itself. Any decision affecting someone's employment will come separately.</p><p>Those who are invited will be interviewed by someone outside their own team and reporting line, chosen from a pool of leaders who "demonstrate strong AI capability." </p><p>The interviews will run from November 4 to 11, and staff are told to arrive with concrete examples of their use of AI. The email is blunt about what passes muster here: "Be ready to discuss what you have changed in your work, the results, what you have learned, what has not worked, and what you would do differently. A list of tools alone will not demonstrate this."</p><h2 id="what-proton-wants-from-staff">What Proton wants from staff</h2><p>The email also presents the interviews as a route to advancement, saying staff who rethink their work, put AI into practice and help others adapt may be offered greater responsibility. It asks for "curiosity, judgment and urgency."</p><p>Yen himself first interviewed more than 40 senior leaders across Engineering and Product, the email says, before the process widened to staff across the company.</p><p>AI is not new at Proton. An AI writing assistant arrived in Proton Mail in 2024, Lumo followed in July 2025, and the chatbot got an upgrade in June 2026. Proton says it keeps no server-side logs of Lumo conversations and runs the chatbot on its own infrastructure.</p><p>Yen told <a href="https://www.wired.com/story/the-big-interview-podcast-andy-yen-proton/" target="_blank">Wired in an interview</a> published in August that AI is surveillance and that Proton was reluctantly pulled into building AI tools. He added that he would probably prefer a world without AI, but accepts it is here to stay. Clearly, his opinion has not changed on the matter.</p><div data-widget-type="merchantlink" data-model-name="Proton VPN"></div><p>We test and review VPN services in the context of legal recreational uses. For example:<strong>1.</strong> Accessing a service from another country (subject to the terms and conditions of that service).<strong>2.</strong> Protecting your online security and strengthening your online privacy when abroad.We do not support or condone the illegal or malicious use of VPN services. Consuming pirated content that is paid-for is neither endorsed nor approved by Future Publishing.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ 10 simple security settings you should change on your phone and PC right now ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Adding extra layers of protection to your devices will save you a lot of trouble down the road. Invasion of privacy is rampant in this current day and age, and while it may seem like the powers at be might already know everything about you, that doesn’t mean you shouldn’t fight back.</p><p>Protect yourself by enabling these simple security settings on your smartphone and PC.</p><h2 id="enable-automatic-updates">Enable automatic updates</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1000px;"><p class="vanilla-image-block" style="padding-top:56.40%;"><img id="7g7iG4EK5A2eqDW4i3PxKi" name="laptop-system-update-shst.jpg" alt="Laptop installing system update." src="https://cdn.mos.cms.futurecdn.net/7g7iG4EK5A2eqDW4i3PxKi-1920-80.jpg" mos="" align="middle" fullscreen="" width="1000" height="564" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Rawpixel.com/Shutterstock)</span></figcaption></figure><p>It might feel like there’s an update every other day, but don’t sleep on keeping your devices up to date. Security vulnerabilities are inevitable, and will keep popping up so long as the tech exists. If you’re way behind on your updates, go to the System Settings on your device to enable automatic updates. If that’s unavailable, manually update it and check for updates periodically.</p><h2 id="disable-your-advertising-id">Disable your Advertising ID</h2><p>Your device is actively collecting your data to feed you “relevant” ads, but you never know exactly what kind of data is being collected and where it’s going. Whatever device you may have, you’ll likely find options for your Advertising ID in the Privacy section of your System Settings. Disable or delete all mention of personalized advertising. You’ll still get ads, mind you, but they won’t be tailored by your personal data.</p><h2 id="disable-lock-screen-notifications">Disable lock screen notifications</h2><p>If you’re out in public, it’s best practice to disable your lock screen notifications to prevent onlookers from gleaning your private information, especially if the data being displayed is sensitive. You can find this setting in the Notifications section of your device, where you can disable previews, or hide content.</p><h2 id="limit-location-permissions">Limit location permissions</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Y8yZ7RvFDvQvNc8KdofqSF" name="location-permission.jpeg" alt="location permissions on a Pixel 6" src="https://cdn.mos.cms.futurecdn.net/Y8yZ7RvFDvQvNc8KdofqSF-1920-80.jpeg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>You don’t need social media apps tracking your location all the time. Go to the Privacy or Security settings of your device and disable location permissions or limit them in specific apps. If an app needs your location to function, select the option that only allows it while using the app. Apps don’t need to be tracking your movements in the background when not in use.</p><h2 id="lock-your-device">Lock your device</h2><p>Don’t leave your device permanently unlocked or to lock only after a long period of time. Come up with a longer, ideally unique, password and set your device to lock immediately when you move or put it away. You should be able to find this in your Security settings or your Account settings depending on your device. Disable any settings that extend unlock times in “trusted” environments. You could lose access to your device close to your home or car and leave it open to malicious actors.</p><h2 id="block-the-install-of-unknown-apps">Block the install of unknown apps</h2><p>Most devices already have a setting that blocks the installation of unknown apps, but if you’re like me, you might have had to disable this feature in order to download something outside of native app marketplaces. Do yourself a favor and reinstate the block of unknown apps in your Security or App settings.</p><h2 id="enable-device-encryption-pc-amp-mac">Enable device encryption (PC &amp; Mac)</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1313px;"><p class="vanilla-image-block" style="padding-top:64.97%;"><img id="QcsjckpjwBvH9LaH3p2KGN" name="Screenshot 2023-02-10 124147.jpg" alt="Windows 11 Pro Bitlocker device encryption in action" src="https://cdn.mos.cms.futurecdn.net/QcsjckpjwBvH9LaH3p2KGN-1920-80.jpg" mos="" align="middle" fullscreen="" width="1313" height="853" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>If your Mac or PC is ever stolen, the thieves won’t get access to your data if you’ve scrambled it by encrypting your drive. You’ll find this setting in Privacy &amp; Security in both Windows 11 and macOS. On Windows it’s called BitLocker, and on macOS it’s called FileVault.</p><h2 id="enable-firewall-pc-amp-mac">Enable Firewall (PC &amp; Mac)</h2><p>Turn on your network firewall to prevent suspicious connections from exploiting your device. If you have a Windows device, Microsoft Defender Firewall is likely already enabled, but it doesn’t hurt to check it in the Privacy &amp; Security section. Meanwhile, macOS Firewall is actually disabled by default. You can turn that on by going to your System Settings and navigating to Network > Firewall.</p><h2 id="get-a-vpn">Get a VPN</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:7635px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="qoiXDMrJMZ3hsgQgZdMbkJ" name="Proton VPN Free Windows Android" alt="Proton VPN Free running on a Windows PC and Android smartphone" src="https://cdn.mos.cms.futurecdn.net/qoiXDMrJMZ3hsgQgZdMbkJ-1920-80.jpg" mos="" align="middle" fullscreen="" width="7635" height="4295" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Unfortunately, smartphones and PCs rarely come with built-in VPNs, so it’s not exactly a simple setting you can turn on, but I highly recommend getting one to beef up your network privacy. If you’re not looking to spend money, <a href="https://www.tomsguide.com/reviews/proton-vpn-free-review">Proton VPN</a> is a reputable and <a href="https://www.tomsguide.com/best-picks/best-free-vpn">free VPN</a>.</p><h2 id="update-browser-permissions">Update browser permissions</h2><p>Whatever your primary browser may be, you should adjust your default permissions in your Site Settings, usually found in the Privacy &amp; Security section. Set each of the permissions to “Ask first” if they’re not already. The last thing you need is some random website activating your microphone or downloading files without your permission. You might also find a Safe Browsing setting in your browser, if not already built-in, that you can enable as well for enhanced protection.</p><h2 id="bottom-line-3">Bottom line</h2><p>Taking charge of your security settings is one of the few things you can do to stay in control of your privacy. Corporations are actively spying on us to try to sell us the “next best thing,” but we don’t have to make it easy for them. And we definitely don’t want to make it easy for hackers to steal our data and wreck our lives.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><strong></strong><a href="https://www.tomsguide.com/computing/online-security/5-fast-steps-to-take-immediately-after-a-company-leaks-your-personal-data"><strong>5 fast steps to take immediately after a company leaks your personal data</strong></a></li><li><strong></strong><a href="https://www.tomsguide.com/computing/malware-adware/7-warning-signs-your-android-phone-or-iphone-has-malware"><strong>7 warning signs your Android phone or iPhone has malware</strong></a></li><li><strong></strong><a href="https://www.tomsguide.com/computing/antivirus/does-antivirus-slow-down-your-pc"><strong>Does antivirus software still slow down your PC in 2026? We tested the top security software to find out</strong></a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/online-security/10-simple-security-settings-you-should-change-on-your-phone-and-pc-right-now</link>
                                                                            <description>
                            <![CDATA[ Your privacy and data are always at risk, but don’t make it easy for malicious actors — change these simple security settings now. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">yyudcdHKMJryzAmervoLng</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/EmriEfNAYQe3QGDgiAPtkd-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Mon, 26 Oct 2026 06:15:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Online Security]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Internet]]></category>
                                                                                                                    <dc:creator><![CDATA[ Rami Tabari ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/Du7gwfP2FPAQuuhcMnakHf-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/EmriEfNAYQe3QGDgiAPtkd-1920-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A person holding a phone near a laptop, representing an article about how to set up a Wi-Fi hotspot on Android]]></media:description>                                                            <media:text><![CDATA[A person holding a phone near a laptop, representing an article about how to set up a Wi-Fi hotspot on Android]]></media:text>
                                <media:title type="plain"><![CDATA[A person holding a phone near a laptop, representing an article about how to set up a Wi-Fi hotspot on Android]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/EmriEfNAYQe3QGDgiAPtkd-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Adding extra layers of protection to your devices will save you a lot of trouble down the road. Invasion of privacy is rampant in this current day and age, and while it may seem like the powers at be might already know everything about you, that doesn’t mean you shouldn’t fight back.</p><p>Protect yourself by enabling these simple security settings on your smartphone and PC.</p><h2 id="enable-automatic-updates">Enable automatic updates</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1000px;"><p class="vanilla-image-block" style="padding-top:56.40%;"><img id="7g7iG4EK5A2eqDW4i3PxKi" name="laptop-system-update-shst.jpg" alt="Laptop installing system update." src="https://cdn.mos.cms.futurecdn.net/7g7iG4EK5A2eqDW4i3PxKi-1920-80.jpg" mos="" align="middle" fullscreen="" width="1000" height="564" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Rawpixel.com/Shutterstock)</span></figcaption></figure><p>It might feel like there’s an update every other day, but don’t sleep on keeping your devices up to date. Security vulnerabilities are inevitable, and will keep popping up so long as the tech exists. If you’re way behind on your updates, go to the System Settings on your device to enable automatic updates. If that’s unavailable, manually update it and check for updates periodically.</p><h2 id="disable-your-advertising-id">Disable your Advertising ID</h2><p>Your device is actively collecting your data to feed you “relevant” ads, but you never know exactly what kind of data is being collected and where it’s going. Whatever device you may have, you’ll likely find options for your Advertising ID in the Privacy section of your System Settings. Disable or delete all mention of personalized advertising. You’ll still get ads, mind you, but they won’t be tailored by your personal data.</p><h2 id="disable-lock-screen-notifications">Disable lock screen notifications</h2><p>If you’re out in public, it’s best practice to disable your lock screen notifications to prevent onlookers from gleaning your private information, especially if the data being displayed is sensitive. You can find this setting in the Notifications section of your device, where you can disable previews, or hide content.</p><h2 id="limit-location-permissions">Limit location permissions</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Y8yZ7RvFDvQvNc8KdofqSF" name="location-permission.jpeg" alt="location permissions on a Pixel 6" src="https://cdn.mos.cms.futurecdn.net/Y8yZ7RvFDvQvNc8KdofqSF-1920-80.jpeg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>You don’t need social media apps tracking your location all the time. Go to the Privacy or Security settings of your device and disable location permissions or limit them in specific apps. If an app needs your location to function, select the option that only allows it while using the app. Apps don’t need to be tracking your movements in the background when not in use.</p><h2 id="lock-your-device">Lock your device</h2><p>Don’t leave your device permanently unlocked or to lock only after a long period of time. Come up with a longer, ideally unique, password and set your device to lock immediately when you move or put it away. You should be able to find this in your Security settings or your Account settings depending on your device. Disable any settings that extend unlock times in “trusted” environments. You could lose access to your device close to your home or car and leave it open to malicious actors.</p><h2 id="block-the-install-of-unknown-apps">Block the install of unknown apps</h2><p>Most devices already have a setting that blocks the installation of unknown apps, but if you’re like me, you might have had to disable this feature in order to download something outside of native app marketplaces. Do yourself a favor and reinstate the block of unknown apps in your Security or App settings.</p><h2 id="enable-device-encryption-pc-amp-mac">Enable device encryption (PC &amp; Mac)</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1313px;"><p class="vanilla-image-block" style="padding-top:64.97%;"><img id="QcsjckpjwBvH9LaH3p2KGN" name="Screenshot 2023-02-10 124147.jpg" alt="Windows 11 Pro Bitlocker device encryption in action" src="https://cdn.mos.cms.futurecdn.net/QcsjckpjwBvH9LaH3p2KGN-1920-80.jpg" mos="" align="middle" fullscreen="" width="1313" height="853" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>If your Mac or PC is ever stolen, the thieves won’t get access to your data if you’ve scrambled it by encrypting your drive. You’ll find this setting in Privacy &amp; Security in both Windows 11 and macOS. On Windows it’s called BitLocker, and on macOS it’s called FileVault.</p><h2 id="enable-firewall-pc-amp-mac">Enable Firewall (PC &amp; Mac)</h2><p>Turn on your network firewall to prevent suspicious connections from exploiting your device. If you have a Windows device, Microsoft Defender Firewall is likely already enabled, but it doesn’t hurt to check it in the Privacy &amp; Security section. Meanwhile, macOS Firewall is actually disabled by default. You can turn that on by going to your System Settings and navigating to Network > Firewall.</p><h2 id="get-a-vpn">Get a VPN</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:7635px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="qoiXDMrJMZ3hsgQgZdMbkJ" name="Proton VPN Free Windows Android" alt="Proton VPN Free running on a Windows PC and Android smartphone" src="https://cdn.mos.cms.futurecdn.net/qoiXDMrJMZ3hsgQgZdMbkJ-1920-80.jpg" mos="" align="middle" fullscreen="" width="7635" height="4295" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Unfortunately, smartphones and PCs rarely come with built-in VPNs, so it’s not exactly a simple setting you can turn on, but I highly recommend getting one to beef up your network privacy. If you’re not looking to spend money, <a href="https://www.tomsguide.com/reviews/proton-vpn-free-review">Proton VPN</a> is a reputable and <a href="https://www.tomsguide.com/best-picks/best-free-vpn">free VPN</a>.</p><h2 id="update-browser-permissions">Update browser permissions</h2><p>Whatever your primary browser may be, you should adjust your default permissions in your Site Settings, usually found in the Privacy &amp; Security section. Set each of the permissions to “Ask first” if they’re not already. The last thing you need is some random website activating your microphone or downloading files without your permission. You might also find a Safe Browsing setting in your browser, if not already built-in, that you can enable as well for enhanced protection.</p><h2 id="bottom-line-3">Bottom line</h2><p>Taking charge of your security settings is one of the few things you can do to stay in control of your privacy. Corporations are actively spying on us to try to sell us the “next best thing,” but we don’t have to make it easy for them. And we definitely don’t want to make it easy for hackers to steal our data and wreck our lives.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><strong></strong><a href="https://www.tomsguide.com/computing/online-security/5-fast-steps-to-take-immediately-after-a-company-leaks-your-personal-data"><strong>5 fast steps to take immediately after a company leaks your personal data</strong></a></li><li><strong></strong><a href="https://www.tomsguide.com/computing/malware-adware/7-warning-signs-your-android-phone-or-iphone-has-malware"><strong>7 warning signs your Android phone or iPhone has malware</strong></a></li><li><strong></strong><a href="https://www.tomsguide.com/computing/antivirus/does-antivirus-slow-down-your-pc"><strong>Does antivirus software still slow down your PC in 2026? We tested the top security software to find out</strong></a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Smart TVs collect a surprising amount of your data — here’s how to stop them ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Yes, even your TV is spying on you. The terms of service on a smart TV change like the wind, and every time you’re asked to accept a litany of new agreements that go beyond what is necessary for the TV to function, you’re likely volunteering to be spied on by your own smart TV, if it hasn’t already been enabled by default. The mole in your house is called <a href="https://www.tomsguide.com/tvs/a-new-feature-is-cropping-up-on-several-new-smart-tvs-and-youll-want-to-turn-it-off-immediately">Automated Content Recognition</a> (ACR). </p><p>ACR is a technology that identifies what it is you’re watching on your TV. This applies to both visual and audio sources. This not only works for built-in apps but also anything connected through HDMI ports, like an Amazon Fire Stick or game consoles. You could be completely offline, connecting an old school DVD drive to your TV, and manufacturers can still steal that data.</p><p>Companies use ACR to learn what you like and don’t like and then use that information to hit you with ads or suggest content. But of course, it’s not just about suggesting things that you may like to watch. Manufacturers turn around and sell this data to companies to then use predatory tactics against you. It’s like a stalker in league with other stalkers — they learn all about you and then lure you in with the tantalizing appeal of consumerism.</p><p>If you think that’s bad, Gamers Nexus published a <a href="https://www.youtube.com/watch?v=6IFVTcM28KA" target="_blank">video back in September</a> investigating a serious privacy issue that <a href="https://www.tomsguide.com/tvs/yes-lg-smart-tvs-know-more-about-you-than-you-think-but-so-do-other-tv-brands">LG Smart TVs</a> have — the microphone is on and actively listening, even when the screen is turned off. It also stores the recorded data when the TV is completely disconnected from the internet. Terrifying.</p><p>If you’d rather not have all of your personal information stolen from something as simple as a display, then you need to disable ACR immediately. Here’s how.</p><h3 class="article-body__section" id="section-how-to-stop-smart-tvs-from-stealing-your-data"><span>How to stop smart TVs from stealing your data</span></h3><p>Unfortunately, some manufacturers turned to cleverly calling ACR something else entirely, and often hide the setting deep within a series of menus. I’m going to go over a few of them so you generally know what to look for. However, my overall advice is to do a thorough sweep of your TV settings. Typically, there are explanations next to each setting, and if not, look them up to see what they’re really about.</p><h2 id="lg-tvs">LG TVs</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="xuZMpyrY6bmq6jTWv7D5Sb" name="LG B2 OLED TV-10.jpg" alt="LG B2 OLED TV shown against a brick wall in a living room" src="https://cdn.mos.cms.futurecdn.net/xuZMpyrY6bmq6jTWv7D5Sb-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Let’s start with the spooky one first. LG likes to call its ACR technology Live Plus, and you can dig that setting out by going to <strong>Settings > General > System > Advanced Settings</strong>. I’d disable Live Plus as well as Live Promotion. Depending on the model you have, there’s also Content Recommendations, Screen Saver Promotion, and Limit Ad Tracking settings that you can disable too.</p><h2 id="amazon-fire-tvs">Amazon Fire TVs</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="o9DSGaFxmaiwSk8PEBbCLc" name="fire-TV-remote.jpg" alt="Fire TV Cube" src="https://cdn.mos.cms.futurecdn.net/o9DSGaFxmaiwSk8PEBbCLc-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>At the very least, Amazon’s Fire TV has the decency to call the setting what it is — Automated Content Recognition, although most people might not know what that even means.</p><p>To disable it, you’ll want to go to <strong>Settings > Preferences > Privacy Settings</strong>. There you can turn off not only ACR but also Device Usage Data, Collect App and Over-The-Air Data, and Interest-based Ads. Or literally anything else that seems like it wants to spy on you.</p><h2 id="samsung-tvs">Samsung TVs</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="2TKVPMAEbMBnfJxQLjQpP" name="Samsung S95C OLED TV-1.jpg" alt="Samsung S95C OLED TV" src="https://cdn.mos.cms.futurecdn.net/2TKVPMAEbMBnfJxQLjQpP-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>For Samsung, you’ll want to go to <strong>Settings > All Settings > General &amp; Privacy > Terms &amp; Privacy</strong>. There you should disable Viewing Information Services and Interest-Based Advertising. If you have an older Samsung, you might find this setting in the <strong>Support > Terms &amp; Policies</strong> section.</p><h2 id="sony-tvs">Sony TVs</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="RW2xMjXGCPnaxKHHzvKNJj" name="Sony Bravia 7--01" alt="Sony Bravia 7 TV remote" src="https://cdn.mos.cms.futurecdn.net/RW2xMjXGCPnaxKHHzvKNJj-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Sony decided to call its ACR Samba Interactive TV, another fancy name for effectively the same spying device. You’ll find it in <strong>Settings > Initial Setup or All Settings</strong>.</p><h2 id="roku-tvs">Roku TVs</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="gyYUkWPcx8pQCDD4kqGKCE" name="Roku remote1.jpg" alt="Roku remote in front of TV" src="https://cdn.mos.cms.futurecdn.net/gyYUkWPcx8pQCDD4kqGKCE-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>For Roku devices, navigate to <strong>Settings > Privacy > Smart TV Experience</strong> and then disable ACR or Use Info from TV Inputs. In the <strong>Privacy</strong> section, you also might find <strong>Advertising </strong>and <strong>Microphone </strong>settings, and I highly recommend disabling anything in those sub menus.</p><h2 id="vizio-tvs">Vizio TVs</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ULhyqi5LwgmfobX2rpZUS9" name="TG_Vizio-V-Series-V555-J01_2.jpg" alt="Vizio V-Series V555-J01 (2021 Model)  remote" src="https://cdn.mos.cms.futurecdn.net/ULhyqi5LwgmfobX2rpZUS9-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Vizio hid this setting behind the <strong>Reset &amp; Admin </strong>section. You’ll find it by going through <strong>Menu > System > Reset &amp; Admin</strong>, where you can then disable Highlight Viewing Data. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><strong></strong><a href="https://www.tomsguide.com/computing/online-security/5-fast-steps-to-take-immediately-after-a-company-leaks-your-personal-data"><strong>5 fast steps to take immediately after a company leaks your personal data</strong></a></li><li><strong></strong><a href="https://www.tomsguide.com/computing/malware-adware/7-warning-signs-your-android-phone-or-iphone-has-malware"><strong>7 warning signs your Android phone or iPhone has malware</strong></a></li><li><strong></strong><a href="https://www.tomsguide.com/computing/antivirus/does-antivirus-slow-down-your-pc"><strong>Does antivirus software still slow down your PC in 2026? We tested the top security software to find out</strong></a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/online-security/smart-tvs-collect-a-surprising-amount-of-your-data-heres-how-to-stop-them</link>
                                                                            <description>
                            <![CDATA[ Your smart TVs are spying on you and you can stop them right now by disabling this setting. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">c4NWecMM57EZwricCjxpa8</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/GXUQNgz3nzVBpfZ6ZXnGrh-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sun, 25 Oct 2026 11:15:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Online Security]]></category>
                                                    <category><![CDATA[TVs]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Internet]]></category>
                                                                                                                    <dc:creator><![CDATA[ Rami Tabari ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/Du7gwfP2FPAQuuhcMnakHf-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/GXUQNgz3nzVBpfZ6ZXnGrh-1920-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock / Tero Vesalainen]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[An out-of-focus TV displaying a smart platform home screen is foregrounded by a someone&#039;s disembodied &quot;thumbs down&quot; gesture]]></media:description>                                                            <media:text><![CDATA[An out-of-focus TV displaying a smart platform home screen is foregrounded by a someone&#039;s disembodied &quot;thumbs down&quot; gesture]]></media:text>
                                <media:title type="plain"><![CDATA[An out-of-focus TV displaying a smart platform home screen is foregrounded by a someone&#039;s disembodied &quot;thumbs down&quot; gesture]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/GXUQNgz3nzVBpfZ6ZXnGrh-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Yes, even your TV is spying on you. The terms of service on a smart TV change like the wind, and every time you’re asked to accept a litany of new agreements that go beyond what is necessary for the TV to function, you’re likely volunteering to be spied on by your own smart TV, if it hasn’t already been enabled by default. The mole in your house is called <a href="https://www.tomsguide.com/tvs/a-new-feature-is-cropping-up-on-several-new-smart-tvs-and-youll-want-to-turn-it-off-immediately">Automated Content Recognition</a> (ACR). </p><p>ACR is a technology that identifies what it is you’re watching on your TV. This applies to both visual and audio sources. This not only works for built-in apps but also anything connected through HDMI ports, like an Amazon Fire Stick or game consoles. You could be completely offline, connecting an old school DVD drive to your TV, and manufacturers can still steal that data.</p><p>Companies use ACR to learn what you like and don’t like and then use that information to hit you with ads or suggest content. But of course, it’s not just about suggesting things that you may like to watch. Manufacturers turn around and sell this data to companies to then use predatory tactics against you. It’s like a stalker in league with other stalkers — they learn all about you and then lure you in with the tantalizing appeal of consumerism.</p><p>If you think that’s bad, Gamers Nexus published a <a href="https://www.youtube.com/watch?v=6IFVTcM28KA" target="_blank">video back in September</a> investigating a serious privacy issue that <a href="https://www.tomsguide.com/tvs/yes-lg-smart-tvs-know-more-about-you-than-you-think-but-so-do-other-tv-brands">LG Smart TVs</a> have — the microphone is on and actively listening, even when the screen is turned off. It also stores the recorded data when the TV is completely disconnected from the internet. Terrifying.</p><p>If you’d rather not have all of your personal information stolen from something as simple as a display, then you need to disable ACR immediately. Here’s how.</p><h3 class="article-body__section" id="section-how-to-stop-smart-tvs-from-stealing-your-data"><span>How to stop smart TVs from stealing your data</span></h3><p>Unfortunately, some manufacturers turned to cleverly calling ACR something else entirely, and often hide the setting deep within a series of menus. I’m going to go over a few of them so you generally know what to look for. However, my overall advice is to do a thorough sweep of your TV settings. Typically, there are explanations next to each setting, and if not, look them up to see what they’re really about.</p><h2 id="lg-tvs">LG TVs</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="xuZMpyrY6bmq6jTWv7D5Sb" name="LG B2 OLED TV-10.jpg" alt="LG B2 OLED TV shown against a brick wall in a living room" src="https://cdn.mos.cms.futurecdn.net/xuZMpyrY6bmq6jTWv7D5Sb-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Let’s start with the spooky one first. LG likes to call its ACR technology Live Plus, and you can dig that setting out by going to <strong>Settings > General > System > Advanced Settings</strong>. I’d disable Live Plus as well as Live Promotion. Depending on the model you have, there’s also Content Recommendations, Screen Saver Promotion, and Limit Ad Tracking settings that you can disable too.</p><h2 id="amazon-fire-tvs">Amazon Fire TVs</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="o9DSGaFxmaiwSk8PEBbCLc" name="fire-TV-remote.jpg" alt="Fire TV Cube" src="https://cdn.mos.cms.futurecdn.net/o9DSGaFxmaiwSk8PEBbCLc-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>At the very least, Amazon’s Fire TV has the decency to call the setting what it is — Automated Content Recognition, although most people might not know what that even means.</p><p>To disable it, you’ll want to go to <strong>Settings > Preferences > Privacy Settings</strong>. There you can turn off not only ACR but also Device Usage Data, Collect App and Over-The-Air Data, and Interest-based Ads. Or literally anything else that seems like it wants to spy on you.</p><h2 id="samsung-tvs">Samsung TVs</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="2TKVPMAEbMBnfJxQLjQpP" name="Samsung S95C OLED TV-1.jpg" alt="Samsung S95C OLED TV" src="https://cdn.mos.cms.futurecdn.net/2TKVPMAEbMBnfJxQLjQpP-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>For Samsung, you’ll want to go to <strong>Settings > All Settings > General &amp; Privacy > Terms &amp; Privacy</strong>. There you should disable Viewing Information Services and Interest-Based Advertising. If you have an older Samsung, you might find this setting in the <strong>Support > Terms &amp; Policies</strong> section.</p><h2 id="sony-tvs">Sony TVs</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="RW2xMjXGCPnaxKHHzvKNJj" name="Sony Bravia 7--01" alt="Sony Bravia 7 TV remote" src="https://cdn.mos.cms.futurecdn.net/RW2xMjXGCPnaxKHHzvKNJj-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Sony decided to call its ACR Samba Interactive TV, another fancy name for effectively the same spying device. You’ll find it in <strong>Settings > Initial Setup or All Settings</strong>.</p><h2 id="roku-tvs">Roku TVs</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="gyYUkWPcx8pQCDD4kqGKCE" name="Roku remote1.jpg" alt="Roku remote in front of TV" src="https://cdn.mos.cms.futurecdn.net/gyYUkWPcx8pQCDD4kqGKCE-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>For Roku devices, navigate to <strong>Settings > Privacy > Smart TV Experience</strong> and then disable ACR or Use Info from TV Inputs. In the <strong>Privacy</strong> section, you also might find <strong>Advertising </strong>and <strong>Microphone </strong>settings, and I highly recommend disabling anything in those sub menus.</p><h2 id="vizio-tvs">Vizio TVs</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ULhyqi5LwgmfobX2rpZUS9" name="TG_Vizio-V-Series-V555-J01_2.jpg" alt="Vizio V-Series V555-J01 (2021 Model)  remote" src="https://cdn.mos.cms.futurecdn.net/ULhyqi5LwgmfobX2rpZUS9-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Vizio hid this setting behind the <strong>Reset &amp; Admin </strong>section. You’ll find it by going through <strong>Menu > System > Reset &amp; Admin</strong>, where you can then disable Highlight Viewing Data. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><strong></strong><a href="https://www.tomsguide.com/computing/online-security/5-fast-steps-to-take-immediately-after-a-company-leaks-your-personal-data"><strong>5 fast steps to take immediately after a company leaks your personal data</strong></a></li><li><strong></strong><a href="https://www.tomsguide.com/computing/malware-adware/7-warning-signs-your-android-phone-or-iphone-has-malware"><strong>7 warning signs your Android phone or iPhone has malware</strong></a></li><li><strong></strong><a href="https://www.tomsguide.com/computing/antivirus/does-antivirus-slow-down-your-pc"><strong>Does antivirus software still slow down your PC in 2026? We tested the top security software to find out</strong></a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ ‘Babe, wake up, the internet is collapsing’: Two massive flaws just broke the web, and the data of billions is in the crossfire ]]></title>
                                                                                                <dc:content><![CDATA[ <p>If you opened X this morning, you might have seen this viral tweet floating around cybersecurity circles. It’s hilarious, but it’s also uncomfortably close to the truth.</p><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2113065317962502425"><p lang="en" dir="ltr">babe wake up the internet is collapsing<a href="https://twitter.com/cantworkitout/status/2113065317962502425">October 22, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>Over the past 24 hours, two completely separate, absolutely massive cybersecurity disasters collided.</p><ul><li>First, <a href="https://www.microsoft.com/en-us/security/blog/2026/10/21/storm-0940-uses-artex-agentic-ai-connectwise-supply-chain-compromise/" target="_blank">Microsoft revealed</a> that a nation-state hacking group used an autonomous AI agent to brute-force its way into thousands of cloud accounts in a matter of hours.</li><li>Then, a <a href="https://www.php.net/index.php" target="_blank">critical vulnerability was discovered in PHP</a> — the foundational code that runs roughly 70% of the entire internet — forcing major sites like Wikipedia to temporarily pull the plug on their own servers just to survive.</li></ul><p>If you are wondering why IT departments across the globe are currently stress-sweating through their flannels, here is a breakdown of exactly what is happening, and what you actually need to do about it.</p><h2 id="disaster-1-the-autonomous-ai-hacker-artex">Disaster 1: The autonomous AI hacker (ARTEX)</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="rPXEy9foEgSpWcUuDxQr6R" name="shutterstock_2291678869-16x9" alt="microsoft" src="https://cdn.mos.cms.futurecdn.net/rPXEy9foEgSpWcUuDxQr6R-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>I’ve spent the past couple of weeks writing about <a href="https://www.tomsguide.com/ai/ditch-the-data-center-i-fired-my-cloud-chatbot-and-built-a-free-local-ai-agent-to-run-on-my-pc-and-you-can-too">how to build a local AI agent</a> — like my digital assistant “Jeeves” — to automate admin tasks like checking your Gmail.</p><p>Well, a Chinese-linked threat actor known as “Storm-0940” just showed us the dark mirror version of that exact technology.</p><p>According to Microsoft, the hackers stole credentials to ConnectWise (a massive IT management software provider). But instead of typing in passwords, they handed those credentials to an agentic AI tool called ARTEX.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="fzLwFVKeCvJejaXimCGG3G" name="Hermes Agent" alt="Hermes Agent" src="https://cdn.mos.cms.futurecdn.net/fzLwFVKeCvJejaXimCGG3G-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>ARTEX is essentially a malicious version of Jeeves. The hackers gave the AI a goal, pointed it at Microsoft 365, and let it off the leash. The AI divided up the tasks, bypassed standard logins by hijacking authentication apps, and achieved a terrifying <strong>2,900 sign-in attempts per minute.</strong></p><p>Within a few hours, the AI had hit 2,250 different corporate tenants across aerospace, defense and finance. It moved so fast that human security defenders literally didn’t have time to read the alerts before the AI had already gained privileged cloud access.</p><p>It is the ultimate proof that the “cloud tax” isn’t just expensive — it’s a massive, centralized target for autonomous bots.</p><h2 id="disaster-2-the-php-meltdown">Disaster 2: The PHP meltdown</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.29%;"><img id="hYBfcnDweVSdVQuQuMjEsa" name="PHP" alt="PHP" src="https://cdn.mos.cms.futurecdn.net/hYBfcnDweVSdVQuQuMjEsa-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1441" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>And while that AI was busy tearing through Microsoft 365, the actual foundational bricks of the internet started crumbling. On October 21, the PHP project disclosed two critical vulnerabilities (CVE-2026-109618 and CVE-2026-109619). </p><p>To spare you the hyper-dense developer jargon: there is a flaw in how PHP handles memory. If an attacker sends a specific, unauthenticated request to a web server, they can corrupt the memory and execute their own malicious code directly on the machine.</p><p>It’s been so bad, it scored a <strong>9.2 out of 10 on the severity scale.</strong></p><p>Why is this a big deal? Well, PHP is the backbone of WordPress, major content management systems, and millions of custom web applications. <strong>It powers roughly 70% of the entire web.</strong></p><p>The vulnerability is so trivial to exploit — and the blast radius is so large — that both <a href="https://mashable.com/tech/internet-archive-down-oct-21" target="_blank" rel="nofollow">Wikipedia, the Internet Archive</a> and <a href="https://www.gamesradar.com/games/the-steam-store-goes-down-as-valve-seemingly-joins-the-whole-internet-struggling-amid-php-vulnerabilities/" target="_blank">Steam</a> reportedly took precautionary measures to shut down their infrastructure while applying the patch.</p><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2113037994924163166"><p lang="en" dir="ltr">An update from Brewster Kahle on today's outage. https://t.co/Gukju5sKFO<a href="https://twitter.com/cantworkitout/status/2113037994924163166">October 21, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>Ironically, <a href="https://www.wiz.io/blog/php2shell-php-rce" target="_blank">Wiz Research</a> actually used Google’s Gemini 4 Argon AI model (alongside OpenAI’s GPT-5.6 Sol) to help find and validate the patch for this PHP flaw. So, while one AI is currently attacking the cloud, another AI is desperately trying to patch it.</p><h2 id="what-you-need-to-do-2">What you need to do</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.29%;"><img id="uCiNpmiJUVyk3jhtTgHpsa" name="PHP" alt="PHP" src="https://cdn.mos.cms.futurecdn.net/uCiNpmiJUVyk3jhtTgHpsa-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1441" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>If you are just a regular person trying to browse the web and get your work done, you don’t need to throw your laptop in a lake. But you do need to be on the defensive.</p><section class="howto-block">                    <h3>If you are a consumer</h3>                                        <p><p>This is the exact moment when credentials stolen in massive cloud breaches end up on the dark web. Assume your passwords have been swept up in the chaos. If you aren’t using a password manager or hardware-based multi-factor authentication (MFA), you are a sitting duck for an AI like ARTEX. Take some time to protect yourself.</p></p>                </section><section class="howto-block">                    <h3>If you are a business owner</h3>                                        <p><p>Call your web hosting provider or IT contractor immediately. Ask them two questions: “Have we applied the October 21 PHP security patches?” and “Are our Microsoft 365 OAuth applications audited?” If you get a blank stare or an awkward silence, you have a problem.</p></p>                </section><p>The internet may not be literally collapsing, but the walls are definitely shaking. When autonomous AI agents can breach thousands of cloud tenants before a human can even click on an alert, relying entirely on massive, centralized tech conglomerates to keep your data safe is a losing bet.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/macbooks/exclusive-apples-oled-macbook-pro-may-face-a-usd300-to-usd500-price-hike-to-protect-their-profits-from-ramageddon">Exclusive: Apple's OLED MacBook Pro may face a '$300 to $500' price hike to 'protect their profits' from RAMageddon</a></li><li><a href="https://www.tomsguide.com/computing/internet/elon-musk-reportedly-throttled-starlink-for-ukraines-drones-heres-how">Elon Musk reportedly throttled Starlink for Ukraine’s drones — here's how</a></li><li><a href="https://www.tomsguide.com/computing/cpus/ive-been-living-with-nvidias-rtx-spark-for-a-week-on-surface-laptop-ultra-its-not-a-macbook-pro-killer-but-something-much-weirder-and-wildly-powerful">I’ve been living with Nvidia’s RTX Spark for a week — it’s not a MacBook Pro killer but something much weirder and wildly powerful</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/online-security/babe-wake-up-the-internet-is-collapsing-two-massive-flaws-just-broke-the-web-and-the-data-of-billions-is-in-the-crossfire</link>
                                                                            <description>
                            <![CDATA[ An autonomous AI agent breached 2,250 cloud servers while a PHP flaw broke the web. Here is what happened and how to protect your data today. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">qWWrmBfWzV7nkHjpkd252j</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/YwKRVzwvLwup6hDGh5bVNM-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 22 Oct 2026 11:07:41 +0000</pubDate>                                                                                                                                <updated>Thu, 22 Oct 2026 17:29:18 +0000</updated>
                                                                                                                                            <category><![CDATA[Online Security]]></category>
                                                    <category><![CDATA[AI]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Internet]]></category>
                                                                                                                    <dc:creator><![CDATA[ Jason England ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/v4fSq5U4uZUEtGY2BwNuJ6-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Jason brings a decade of tech and gaming journalism experience to his role as a Managing Editor of Computing at Tom&#039;s Guide. He has previously written for Laptop Mag, Tom&#039;s Hardware, Kotaku, Stuff and BBC Science Focus. In his spare time, you&#039;ll find Jason looking for good dogs to pet or thinking about eating pizza if he isn&#039;t already.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/YwKRVzwvLwup6hDGh5bVNM-1920-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A hacker typing quickly on a keyboard]]></media:description>                                                            <media:text><![CDATA[A hacker typing quickly on a keyboard]]></media:text>
                                <media:title type="plain"><![CDATA[A hacker typing quickly on a keyboard]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/YwKRVzwvLwup6hDGh5bVNM-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>If you opened X this morning, you might have seen this viral tweet floating around cybersecurity circles. It’s hilarious, but it’s also uncomfortably close to the truth.</p><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2113065317962502425"><p lang="en" dir="ltr">babe wake up the internet is collapsing<a href="https://twitter.com/cantworkitout/status/2113065317962502425">October 22, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>Over the past 24 hours, two completely separate, absolutely massive cybersecurity disasters collided.</p><ul><li>First, <a href="https://www.microsoft.com/en-us/security/blog/2026/10/21/storm-0940-uses-artex-agentic-ai-connectwise-supply-chain-compromise/" target="_blank">Microsoft revealed</a> that a nation-state hacking group used an autonomous AI agent to brute-force its way into thousands of cloud accounts in a matter of hours.</li><li>Then, a <a href="https://www.php.net/index.php" target="_blank">critical vulnerability was discovered in PHP</a> — the foundational code that runs roughly 70% of the entire internet — forcing major sites like Wikipedia to temporarily pull the plug on their own servers just to survive.</li></ul><p>If you are wondering why IT departments across the globe are currently stress-sweating through their flannels, here is a breakdown of exactly what is happening, and what you actually need to do about it.</p><h2 id="disaster-1-the-autonomous-ai-hacker-artex">Disaster 1: The autonomous AI hacker (ARTEX)</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="rPXEy9foEgSpWcUuDxQr6R" name="shutterstock_2291678869-16x9" alt="microsoft" src="https://cdn.mos.cms.futurecdn.net/rPXEy9foEgSpWcUuDxQr6R-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>I’ve spent the past couple of weeks writing about <a href="https://www.tomsguide.com/ai/ditch-the-data-center-i-fired-my-cloud-chatbot-and-built-a-free-local-ai-agent-to-run-on-my-pc-and-you-can-too">how to build a local AI agent</a> — like my digital assistant “Jeeves” — to automate admin tasks like checking your Gmail.</p><p>Well, a Chinese-linked threat actor known as “Storm-0940” just showed us the dark mirror version of that exact technology.</p><p>According to Microsoft, the hackers stole credentials to ConnectWise (a massive IT management software provider). But instead of typing in passwords, they handed those credentials to an agentic AI tool called ARTEX.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="fzLwFVKeCvJejaXimCGG3G" name="Hermes Agent" alt="Hermes Agent" src="https://cdn.mos.cms.futurecdn.net/fzLwFVKeCvJejaXimCGG3G-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>ARTEX is essentially a malicious version of Jeeves. The hackers gave the AI a goal, pointed it at Microsoft 365, and let it off the leash. The AI divided up the tasks, bypassed standard logins by hijacking authentication apps, and achieved a terrifying <strong>2,900 sign-in attempts per minute.</strong></p><p>Within a few hours, the AI had hit 2,250 different corporate tenants across aerospace, defense and finance. It moved so fast that human security defenders literally didn’t have time to read the alerts before the AI had already gained privileged cloud access.</p><p>It is the ultimate proof that the “cloud tax” isn’t just expensive — it’s a massive, centralized target for autonomous bots.</p><h2 id="disaster-2-the-php-meltdown">Disaster 2: The PHP meltdown</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.29%;"><img id="hYBfcnDweVSdVQuQuMjEsa" name="PHP" alt="PHP" src="https://cdn.mos.cms.futurecdn.net/hYBfcnDweVSdVQuQuMjEsa-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1441" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>And while that AI was busy tearing through Microsoft 365, the actual foundational bricks of the internet started crumbling. On October 21, the PHP project disclosed two critical vulnerabilities (CVE-2026-109618 and CVE-2026-109619). </p><p>To spare you the hyper-dense developer jargon: there is a flaw in how PHP handles memory. If an attacker sends a specific, unauthenticated request to a web server, they can corrupt the memory and execute their own malicious code directly on the machine.</p><p>It’s been so bad, it scored a <strong>9.2 out of 10 on the severity scale.</strong></p><p>Why is this a big deal? Well, PHP is the backbone of WordPress, major content management systems, and millions of custom web applications. <strong>It powers roughly 70% of the entire web.</strong></p><p>The vulnerability is so trivial to exploit — and the blast radius is so large — that both <a href="https://mashable.com/tech/internet-archive-down-oct-21" target="_blank" rel="nofollow">Wikipedia, the Internet Archive</a> and <a href="https://www.gamesradar.com/games/the-steam-store-goes-down-as-valve-seemingly-joins-the-whole-internet-struggling-amid-php-vulnerabilities/" target="_blank">Steam</a> reportedly took precautionary measures to shut down their infrastructure while applying the patch.</p><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2113037994924163166"><p lang="en" dir="ltr">An update from Brewster Kahle on today's outage. https://t.co/Gukju5sKFO<a href="https://twitter.com/cantworkitout/status/2113037994924163166">October 21, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>Ironically, <a href="https://www.wiz.io/blog/php2shell-php-rce" target="_blank">Wiz Research</a> actually used Google’s Gemini 4 Argon AI model (alongside OpenAI’s GPT-5.6 Sol) to help find and validate the patch for this PHP flaw. So, while one AI is currently attacking the cloud, another AI is desperately trying to patch it.</p><h2 id="what-you-need-to-do-2">What you need to do</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.29%;"><img id="uCiNpmiJUVyk3jhtTgHpsa" name="PHP" alt="PHP" src="https://cdn.mos.cms.futurecdn.net/uCiNpmiJUVyk3jhtTgHpsa-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1441" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>If you are just a regular person trying to browse the web and get your work done, you don’t need to throw your laptop in a lake. But you do need to be on the defensive.</p><section class="howto-block">                    <h3>If you are a consumer</h3>                                        <p><p>This is the exact moment when credentials stolen in massive cloud breaches end up on the dark web. Assume your passwords have been swept up in the chaos. If you aren’t using a password manager or hardware-based multi-factor authentication (MFA), you are a sitting duck for an AI like ARTEX. Take some time to protect yourself.</p></p>                </section><section class="howto-block">                    <h3>If you are a business owner</h3>                                        <p><p>Call your web hosting provider or IT contractor immediately. Ask them two questions: “Have we applied the October 21 PHP security patches?” and “Are our Microsoft 365 OAuth applications audited?” If you get a blank stare or an awkward silence, you have a problem.</p></p>                </section><p>The internet may not be literally collapsing, but the walls are definitely shaking. When autonomous AI agents can breach thousands of cloud tenants before a human can even click on an alert, relying entirely on massive, centralized tech conglomerates to keep your data safe is a losing bet.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/macbooks/exclusive-apples-oled-macbook-pro-may-face-a-usd300-to-usd500-price-hike-to-protect-their-profits-from-ramageddon">Exclusive: Apple's OLED MacBook Pro may face a '$300 to $500' price hike to 'protect their profits' from RAMageddon</a></li><li><a href="https://www.tomsguide.com/computing/internet/elon-musk-reportedly-throttled-starlink-for-ukraines-drones-heres-how">Elon Musk reportedly throttled Starlink for Ukraine’s drones — here's how</a></li><li><a href="https://www.tomsguide.com/computing/cpus/ive-been-living-with-nvidias-rtx-spark-for-a-week-on-surface-laptop-ultra-its-not-a-macbook-pro-killer-but-something-much-weirder-and-wildly-powerful">I’ve been living with Nvidia’s RTX Spark for a week — it’s not a MacBook Pro killer but something much weirder and wildly powerful</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Elon Musk reportedly throttled Starlink for Ukraine’s drones — here's how ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Space-based internet is supposed to be the ultimate equalizer, beaming high-speed connectivity to even the most remote corners of the globe. But what happens when the CEO of your internet service provider decides to impose a hard speed limit?</p><p>That’s a good question, and we’re seeing the answer play out in real time. According to a new report from <a href="https://www.wsj.com/world/ukraine-starlink-elon-musk-trump-dbc49193" target="_blank">The Wall Street Journal</a>, Elon Musk ordered a slowdown of the military-grade version of Starlink relied on by Ukraine's military. </p><p>The move effectively blinded fast-moving strike and interceptor drones, rendering Ukraine unable to defend itself against Russia's attacks.</p><p>There is a messy political blame game happening right now between Musk, the Pentagon and the White House over who actually gave the order. Last Wednesday, Musk claimed that Starshield — the military application of Starlink — is controlled by the U.S. government. </p><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2110445577184133456"><p lang="en" dir="ltr">Starshield systems are owned and controlled by the US government. Any limits on speed or usage are decided by the US military and ultimately POTUS.Starlink is a commercial service owned and controlled by SpaceX. Usage of Starlink is limited to civilian or defensive activities and cannot be used for offensive military action, as doing so would be inappropriate for a commercial company.<a href="https://twitter.com/cantworkitout/status/2110445577184133456">October 14, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>However, on Tuesday, Secretary of Defense Pete Hegseth told reporters that “We haven’t made any directives or anything like that," according to the Journal.</p><p>Still, the Journal's report also says that Musk spoke with members of the administration, including Trump, before initiating the speed cap.</p><h2 id="tom-s-tech-explainer-a-99-mph-speed-limit">Tom’s tech explainer: A 99-mph speed limit</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5696px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="FekmQRDmJG7ENNDuvi3QQm" name="GettyImages-2286198913" alt="Ukranian soldiers repair a drone during the war against Russia" src="https://cdn.mos.cms.futurecdn.net/FekmQRDmJG7ENNDuvi3QQm-1920-80.jpg" mos="" align="middle" fullscreen="" width="5696" height="3204" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Getty Images)</span></figcaption></figure><p>The restrictions reportedly imposed on the Starlink network were very specific: they targeted velocity.</p><p>According to Michael Kofman, a war expert at the Carnegie Endowment for International Peace, who was quoted in the WSJ article, the connection was throttled for devices traveling more than 99 miles per hour.</p><p>You might be wondering how an internet provider knows how fast your device is moving (I was confused too). Starlink dishes aren’t dumb antennas. To maintain a connection with satellites flying overhead in Low Earth Orbit, the dish has to constantly calculate its own position.</p><p>This is done with GPS to report exact coordinates and speed back to SpaceX’s servers. And because Starlink always knows these coordinates on a near-real-time basis, it is very simple for the company to write a software rule that says: “if this dish travels faster than a standard car on the highway, throttle the connection.”</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/turn-your-pdfs-into-audiobooks-with-chatgpt-heres-the-simple-trick"><u><strong>Turn your PDFs into audiobooks with ChatGPT — here's the simple trick</strong></u></a></li><li><a href="https://www.tomsguide.com/ai/ai-researcher-warns-cyberattacks-could-take-down-power-banking-and-water-within-a-year-heres-how-to-prepare"><strong>AI researcher warns cyberattacks could take down power, banking and water within a year — here's how to prepare</strong></a></li><li><a href="https://www.tomsguide.com/ai/an-openai-employee-allegedly-used-ai-to-spy-on-his-own-company-then-ai-helped-catch-him"><strong>An OpenAI employee allegedly used AI to spy on his own company — then AI helped catch him</strong></a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/internet/elon-musk-reportedly-throttled-starlink-for-ukraines-drones-heres-how</link>
                                                                            <description>
                            <![CDATA[ Elon Musk reportedly throttled Starlink on Ukraine drones with a 99-mph limit. Here is how the tech works. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">nhF9Qo92anwDnbTNJrBmcX</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/yWYHmwndPoQUZStATaHH4U-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 21 Oct 2026 16:02:36 +0000</pubDate>                                                                                                                                <updated>Wed, 21 Oct 2026 18:52:19 +0000</updated>
                                                                                                                                            <category><![CDATA[Internet]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                                                                                    <dc:creator><![CDATA[ Jason England ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/v4fSq5U4uZUEtGY2BwNuJ6-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Jason brings a decade of tech and gaming journalism experience to his role as a Managing Editor of Computing at Tom&#039;s Guide. He has previously written for Laptop Mag, Tom&#039;s Hardware, Kotaku, Stuff and BBC Science Focus. In his spare time, you&#039;ll find Jason looking for good dogs to pet or thinking about eating pizza if he isn&#039;t already.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/yWYHmwndPoQUZStATaHH4U-1920-80.jpg">
                                                            <media:credit><![CDATA[Getty Images]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Elon Musk]]></media:description>                                                            <media:text><![CDATA[Elon Musk]]></media:text>
                                <media:title type="plain"><![CDATA[Elon Musk]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/yWYHmwndPoQUZStATaHH4U-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Space-based internet is supposed to be the ultimate equalizer, beaming high-speed connectivity to even the most remote corners of the globe. But what happens when the CEO of your internet service provider decides to impose a hard speed limit?</p><p>That’s a good question, and we’re seeing the answer play out in real time. According to a new report from <a href="https://www.wsj.com/world/ukraine-starlink-elon-musk-trump-dbc49193" target="_blank">The Wall Street Journal</a>, Elon Musk ordered a slowdown of the military-grade version of Starlink relied on by Ukraine's military. </p><p>The move effectively blinded fast-moving strike and interceptor drones, rendering Ukraine unable to defend itself against Russia's attacks.</p><p>There is a messy political blame game happening right now between Musk, the Pentagon and the White House over who actually gave the order. Last Wednesday, Musk claimed that Starshield — the military application of Starlink — is controlled by the U.S. government. </p><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2110445577184133456"><p lang="en" dir="ltr">Starshield systems are owned and controlled by the US government. Any limits on speed or usage are decided by the US military and ultimately POTUS.Starlink is a commercial service owned and controlled by SpaceX. Usage of Starlink is limited to civilian or defensive activities and cannot be used for offensive military action, as doing so would be inappropriate for a commercial company.<a href="https://twitter.com/cantworkitout/status/2110445577184133456">October 14, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>However, on Tuesday, Secretary of Defense Pete Hegseth told reporters that “We haven’t made any directives or anything like that," according to the Journal.</p><p>Still, the Journal's report also says that Musk spoke with members of the administration, including Trump, before initiating the speed cap.</p><h2 id="tom-s-tech-explainer-a-99-mph-speed-limit">Tom’s tech explainer: A 99-mph speed limit</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5696px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="FekmQRDmJG7ENNDuvi3QQm" name="GettyImages-2286198913" alt="Ukranian soldiers repair a drone during the war against Russia" src="https://cdn.mos.cms.futurecdn.net/FekmQRDmJG7ENNDuvi3QQm-1920-80.jpg" mos="" align="middle" fullscreen="" width="5696" height="3204" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Getty Images)</span></figcaption></figure><p>The restrictions reportedly imposed on the Starlink network were very specific: they targeted velocity.</p><p>According to Michael Kofman, a war expert at the Carnegie Endowment for International Peace, who was quoted in the WSJ article, the connection was throttled for devices traveling more than 99 miles per hour.</p><p>You might be wondering how an internet provider knows how fast your device is moving (I was confused too). Starlink dishes aren’t dumb antennas. To maintain a connection with satellites flying overhead in Low Earth Orbit, the dish has to constantly calculate its own position.</p><p>This is done with GPS to report exact coordinates and speed back to SpaceX’s servers. And because Starlink always knows these coordinates on a near-real-time basis, it is very simple for the company to write a software rule that says: “if this dish travels faster than a standard car on the highway, throttle the connection.”</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/turn-your-pdfs-into-audiobooks-with-chatgpt-heres-the-simple-trick"><u><strong>Turn your PDFs into audiobooks with ChatGPT — here's the simple trick</strong></u></a></li><li><a href="https://www.tomsguide.com/ai/ai-researcher-warns-cyberattacks-could-take-down-power-banking-and-water-within-a-year-heres-how-to-prepare"><strong>AI researcher warns cyberattacks could take down power, banking and water within a year — here's how to prepare</strong></a></li><li><a href="https://www.tomsguide.com/ai/an-openai-employee-allegedly-used-ai-to-spy-on-his-own-company-then-ai-helped-catch-him"><strong>An OpenAI employee allegedly used AI to spy on his own company — then AI helped catch him</strong></a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Elon Musk just changed X's algorithm — here's what could start showing up in your feed ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Elon Musk just announced two changes to X's recommendation algorithm, and they could affect what shows up in your For You feed. Instead of relying primarily on familiar engagement signals such as likes, reposts and replies, X is improving its ability to predict which posts will hold your attention and which ones you'll actually finish reading.</p><p>In an <a href="https://x.com/elonmusk/status/2112373713937084809" target="_blank">Monday post</a>, Musk outlined two updates: a new AI ranking model that better predicts how long someone is likely to spend viewing a post, and a retrieval model trained to find posts people read all the way through.</p><p>It's a potentially significant change for anyone who uses X.</p><h2 id="x-wants-to-know-what-keeps-your-attention">X wants to know what keeps your attention</h2><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2112373713937084809"><p lang="en" dir="ltr">Two important changes to timeline recommendations:- New AI/SI ranking model that predicts probable time spent much better- Retrieval model trained to surface posts people read all the way throughUser active seconds is growing exponentially and hitting all-time highs almost every day:<a href="https://twitter.com/cantworkitout/status/2112373713937084809">October 20, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>X already uses AI to determine which posts appear in your For You feed. According to the company's <a href="https://github.com/xai-org/x-algorithm" target="_blank">published recommendation algorithm</a>, the system pulls posts from accounts you follow and accounts you don't, then uses a model to predict how you're likely to interact with each one.</p><p>Those predictions include actions such as liking, replying, reposting and spending time viewing a post. So tracking attention isn't entirely new. The first update that involves the way X uses that information is that the model will get better at predicting how long someone will spend on a particular post. </p><p>So, that means, if you're scrolling past two posts about the same breaking news story, the one that has more likes isn't necessarily the one people will read. The one with the most details for readers could be what keeps them engaged. </p><p>A recommendation system that places greater emphasis on predicted reading time could give a less viral or less liked post the advantage. </p><p>The other update happens earlier in the recommendation process. X's new retrieval model is trained to surface posts that people read from beginning to end. Ranking determines which posts get priority among the candidates X has already found. Retrieval helps decide which posts make it into that group in the first place.</p><h2 id="what-could-start-appearing-in-your-feed">What could start appearing in your feed?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="hBhUy8t3CJddkWbV6eD8J8" name="MuskGrok" alt="Elon Musk's face over Grok AI logo" src="https://cdn.mos.cms.futurecdn.net/hBhUy8t3CJddkWbV6eD8J8-1920-80.jpg" mos="" align="middle" fullscreen="" width="1280" height="720" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: VINCENT FEURAY / Getty Images)</span></figcaption></figure><p>For readers, the most noticeable difference could be a shift toward posts that take longer to consume.</p><p>Detailed explanations, thoughtful threads and posts that encourage people to keep reading could potentially benefit. A useful breakdown of a complicated news story, for example, might attract attention even without an enormous number of likes.</p><p>The same could apply to posts from smaller accounts that consistently hold readers' attention. Since X already recommends content from people you don't follow, its updated retrieval model could help those posts reach new audiences.</p><p>But none of this guarantees that longer posts will suddenly dominate your timeline. A post's length doesn't necessarily determine whether someone finishes reading it. A short, compelling post might perform well because nearly everyone reads the whole thing, while a lengthy explanation could lose readers halfway through.</p><p>X also hasn't disclosed exactly how much influence the new models have compared with existing engagement signals. It's too early to say whether likes and reposts will become significantly less important.</p><p>Content that keeps people reading isn't always content that's helpful or accurate. An outrageous claim, an argument or a deliberately suspenseful story might hold someone's attention just as effectively as a useful explanation.</p><p>So with this restructuring, the more engaging story, may not be the one that's more "quality." </p><h2 id="musk-says-people-are-spending-more-time-on-x">Musk says people are spending more time on X</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:724px;"><p class="vanilla-image-block" style="padding-top:56.35%;"><img id="rLoFWF9RWLyNtYq5sAjV2b" name="Woman on phone in bed" alt="A woman with brown curly hair in bed on her phone as she battles phone addcition" src="https://cdn.mos.cms.futurecdn.net/rLoFWF9RWLyNtYq5sAjV2b-1920-80.jpg" mos="" align="middle" fullscreen="" width="724" height="408" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Getty Images)</span></figcaption></figure><p>Alongside the algorithm announcement, Musk shared a chart showing daily user active seconds on X. He claimed that the metric is growing exponentially and reaching new highs almost every day.</p><p>The chart suggests that time spent on the platform has increased, but the figures haven't been independently verified, and the available data doesn't establish exponential growth.</p><p>It's also unclear how much of that increase can be attributed to the latest recommendation models. Musk hasn't provided a detailed deployment timeline or evidence isolating their effect from other changes to X.</p><p>For a platform competing with TikTok, Instagram and other attention-driven apps, that makes sense. The longer someone stays on a platform, the more opportunities there are to show them content and advertising.</p><h2 id="the-takeaway">The takeaway </h2><p>The good news is that you don't have to rely entirely on X's recommendations. If your For You feed starts showing posts you aren't interested in, you can select the three-dot menu on a post and choose <strong>Not interested in this post</strong>. According to <a href="https://help.x.com/en/rules-and-policies/recommendations" target="_blank">X's Help Center</a>, that feedback helps the platform adjust future recommendations.</p><p>You can also mute accounts or keywords to reduce unwanted content. For a more straightforward experience, switch from <strong>For You</strong> to <strong>Following</strong> at the top of your timeline. That feed shows posts from accounts you follow in reverse chronological order, rather than using the same personalized recommendation system.</p><p>There's no need to change your settings immediately, though. X hasn't released enough information to establish precisely how individual feeds will change.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/turn-your-pdfs-into-audiobooks-with-chatgpt-heres-the-simple-trick"><strong>Turn your PDFs into audiobooks with ChatGPT — here's the simple trick</strong></a></li><li><a href="https://www.tomsguide.com/ai/ai-researcher-warns-cyberattacks-could-take-down-power-banking-and-water-within-a-year-heres-how-to-prepare"><strong>AI researcher warns cyberattacks could take down power, banking and water within a year — here's how to prepare </strong></a></li><li><a href="https://www.tomsguide.com/ai/an-openai-employee-allegedly-used-ai-to-spy-on-his-own-company-then-ai-helped-catch-him"><strong>An OpenAI employee allegedly used AI to spy on his own company — then AI helped catch him</strong></a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/ai/elon-musk-just-changed-xs-algorithm-heres-what-could-start-showing-up-in-your-feed</link>
                                                                            <description>
                            <![CDATA[ Elon Musk has announced two changes to X's AI algorithm that could affect your For You feed. Here's what the updates mean for the posts you see. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">FNj7SbTUXLwjjwiT869B4E</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/npK5HCGmxVph7YMwyfVxJ5-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 20 Oct 2026 16:46:11 +0000</pubDate>                                                                                                                                <updated>Tue, 20 Oct 2026 18:08:04 +0000</updated>
                                                                                                                                            <category><![CDATA[AI]]></category>
                                                    <category><![CDATA[Social Media]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Internet]]></category>
                                                                                                <author><![CDATA[ amanda.caswell@futurenet.com (Amanda Caswell) ]]></author>                    <dc:creator><![CDATA[ Amanda Caswell ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/zYjevim2q7FjQiefqpjZRB-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/npK5HCGmxVph7YMwyfVxJ5-1920-80.jpg">
                                                            <media:credit><![CDATA[Getty Images]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Elon Musk next to Grok on phone]]></media:description>                                                            <media:text><![CDATA[Elon Musk next to Grok on phone]]></media:text>
                                <media:title type="plain"><![CDATA[Elon Musk next to Grok on phone]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/npK5HCGmxVph7YMwyfVxJ5-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Elon Musk just announced two changes to X's recommendation algorithm, and they could affect what shows up in your For You feed. Instead of relying primarily on familiar engagement signals such as likes, reposts and replies, X is improving its ability to predict which posts will hold your attention and which ones you'll actually finish reading.</p><p>In an <a href="https://x.com/elonmusk/status/2112373713937084809" target="_blank">Monday post</a>, Musk outlined two updates: a new AI ranking model that better predicts how long someone is likely to spend viewing a post, and a retrieval model trained to find posts people read all the way through.</p><p>It's a potentially significant change for anyone who uses X.</p><h2 id="x-wants-to-know-what-keeps-your-attention">X wants to know what keeps your attention</h2><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2112373713937084809"><p lang="en" dir="ltr">Two important changes to timeline recommendations:- New AI/SI ranking model that predicts probable time spent much better- Retrieval model trained to surface posts people read all the way throughUser active seconds is growing exponentially and hitting all-time highs almost every day:<a href="https://twitter.com/cantworkitout/status/2112373713937084809">October 20, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>X already uses AI to determine which posts appear in your For You feed. According to the company's <a href="https://github.com/xai-org/x-algorithm" target="_blank">published recommendation algorithm</a>, the system pulls posts from accounts you follow and accounts you don't, then uses a model to predict how you're likely to interact with each one.</p><p>Those predictions include actions such as liking, replying, reposting and spending time viewing a post. So tracking attention isn't entirely new. The first update that involves the way X uses that information is that the model will get better at predicting how long someone will spend on a particular post. </p><p>So, that means, if you're scrolling past two posts about the same breaking news story, the one that has more likes isn't necessarily the one people will read. The one with the most details for readers could be what keeps them engaged. </p><p>A recommendation system that places greater emphasis on predicted reading time could give a less viral or less liked post the advantage. </p><p>The other update happens earlier in the recommendation process. X's new retrieval model is trained to surface posts that people read from beginning to end. Ranking determines which posts get priority among the candidates X has already found. Retrieval helps decide which posts make it into that group in the first place.</p><h2 id="what-could-start-appearing-in-your-feed">What could start appearing in your feed?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="hBhUy8t3CJddkWbV6eD8J8" name="MuskGrok" alt="Elon Musk's face over Grok AI logo" src="https://cdn.mos.cms.futurecdn.net/hBhUy8t3CJddkWbV6eD8J8-1920-80.jpg" mos="" align="middle" fullscreen="" width="1280" height="720" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: VINCENT FEURAY / Getty Images)</span></figcaption></figure><p>For readers, the most noticeable difference could be a shift toward posts that take longer to consume.</p><p>Detailed explanations, thoughtful threads and posts that encourage people to keep reading could potentially benefit. A useful breakdown of a complicated news story, for example, might attract attention even without an enormous number of likes.</p><p>The same could apply to posts from smaller accounts that consistently hold readers' attention. Since X already recommends content from people you don't follow, its updated retrieval model could help those posts reach new audiences.</p><p>But none of this guarantees that longer posts will suddenly dominate your timeline. A post's length doesn't necessarily determine whether someone finishes reading it. A short, compelling post might perform well because nearly everyone reads the whole thing, while a lengthy explanation could lose readers halfway through.</p><p>X also hasn't disclosed exactly how much influence the new models have compared with existing engagement signals. It's too early to say whether likes and reposts will become significantly less important.</p><p>Content that keeps people reading isn't always content that's helpful or accurate. An outrageous claim, an argument or a deliberately suspenseful story might hold someone's attention just as effectively as a useful explanation.</p><p>So with this restructuring, the more engaging story, may not be the one that's more "quality." </p><h2 id="musk-says-people-are-spending-more-time-on-x">Musk says people are spending more time on X</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:724px;"><p class="vanilla-image-block" style="padding-top:56.35%;"><img id="rLoFWF9RWLyNtYq5sAjV2b" name="Woman on phone in bed" alt="A woman with brown curly hair in bed on her phone as she battles phone addcition" src="https://cdn.mos.cms.futurecdn.net/rLoFWF9RWLyNtYq5sAjV2b-1920-80.jpg" mos="" align="middle" fullscreen="" width="724" height="408" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Getty Images)</span></figcaption></figure><p>Alongside the algorithm announcement, Musk shared a chart showing daily user active seconds on X. He claimed that the metric is growing exponentially and reaching new highs almost every day.</p><p>The chart suggests that time spent on the platform has increased, but the figures haven't been independently verified, and the available data doesn't establish exponential growth.</p><p>It's also unclear how much of that increase can be attributed to the latest recommendation models. Musk hasn't provided a detailed deployment timeline or evidence isolating their effect from other changes to X.</p><p>For a platform competing with TikTok, Instagram and other attention-driven apps, that makes sense. The longer someone stays on a platform, the more opportunities there are to show them content and advertising.</p><h2 id="the-takeaway">The takeaway </h2><p>The good news is that you don't have to rely entirely on X's recommendations. If your For You feed starts showing posts you aren't interested in, you can select the three-dot menu on a post and choose <strong>Not interested in this post</strong>. According to <a href="https://help.x.com/en/rules-and-policies/recommendations" target="_blank">X's Help Center</a>, that feedback helps the platform adjust future recommendations.</p><p>You can also mute accounts or keywords to reduce unwanted content. For a more straightforward experience, switch from <strong>For You</strong> to <strong>Following</strong> at the top of your timeline. That feed shows posts from accounts you follow in reverse chronological order, rather than using the same personalized recommendation system.</p><p>There's no need to change your settings immediately, though. X hasn't released enough information to establish precisely how individual feeds will change.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/turn-your-pdfs-into-audiobooks-with-chatgpt-heres-the-simple-trick"><strong>Turn your PDFs into audiobooks with ChatGPT — here's the simple trick</strong></a></li><li><a href="https://www.tomsguide.com/ai/ai-researcher-warns-cyberattacks-could-take-down-power-banking-and-water-within-a-year-heres-how-to-prepare"><strong>AI researcher warns cyberattacks could take down power, banking and water within a year — here's how to prepare </strong></a></li><li><a href="https://www.tomsguide.com/ai/an-openai-employee-allegedly-used-ai-to-spy-on-his-own-company-then-ai-helped-catch-him"><strong>An OpenAI employee allegedly used AI to spy on his own company — then AI helped catch him</strong></a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Google Cloud was down —  'Power event' took out Spotify, Revolut bank and more ]]></title>
                                                                                                <dc:content><![CDATA[ <div class="live-content"><p>Google Cloud services were hit by network outages, which impacted Spotify, banks and the NHS in the UK.</p><p>According to the <a href="https://status.cloud.google.com/">Google Status Page,</a> this outage was first noticed at 7:08am UK time, and the engineering team is continuing to "investigate the issue." Other companies like Emma, Halifax and Revolut have also acknowledged the issue.</p><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2112461233693601882"><p lang="en" dir="ltr">Emma is currently down due to a Google Cloud outage affecting services in London since 7am. This is a technical outage, not a security issue. We're monitoring closely and will update here as soon as the app is back. Sorry for the disruption 🙏<a href="https://twitter.com/cantworkitout/status/2112461233693601882">October 20, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>Now, after several hours, <a href="https://status.cloud.google.com/incidents/Xs2XTHzAVC9YnafnPyzj">Google has confirmed</a> that the issue has been mitigated, and services are returning to normal.</p><h3 class="article-body__section" id="section-as-it-happened"><span>AS IT HAPPENED</span></h3></div><div class="live-content"><time datetime="2026-10-20T10:27:43+00:00">October 20, 2026 – 6:27 AM</time><h2 id="this-is-a-different-kind-of-disruption">This is a different kind of disruption</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1402px;"><p class="vanilla-image-block" style="padding-top:73.89%;"><img id="DhHGbLDXm6wjj78kXjc87c" name="Downdetector" alt="Downdetector" src="https://cdn.mos.cms.futurecdn.net/DhHGbLDXm6wjj78kXjc87c-1920-80.png" mos="" align="middle" fullscreen="" width="1402" height="1036" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Downdetector)</span></figcaption></figure><p>Normally when it comes to outages, you can point to one service that's being impacted and causing problems.</p><p>This is Google Cloud Services — the backbone to a lot of online infrastructure, which are experiencing "elevated errors and intermittent network failures in europe-west2 region."</p><p>That is having a knock-on effect on services like banks like Revolut, postal services like DPD and NHS England.</p><p>We're just starting to see reports spike, so stay tuned for more.</p></div><div class="live-content"><time datetime="2026-10-20T10:33:55+00:00">October 20, 2026 – 6:33 AM</time><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1209px;"><p class="vanilla-image-block" style="padding-top:55.75%;"><img id="idsHjTpPVFuSXsdxW8hqKS" name="Google Cloud Services" alt="Google Cloud Services" src="https://cdn.mos.cms.futurecdn.net/idsHjTpPVFuSXsdxW8hqKS-1920-80.png" mos="" align="middle" fullscreen="" width="1209" height="674" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Google)</span></figcaption></figure><p>This incident is currently active, as "multiple services" are experiencing issues. The engineering team is continuing to "investigate the issue," and we should be getting an update in just under 30 minutes.</p></div><div class="live-content"><time datetime="2026-10-20T10:39:16+00:00">October 20, 2026 – 6:39 AM</time><h2 id="revolut-confirms-your-39-money-and-data-39-are-safe">Revolut confirms your 'money and data' are safe</h2><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2112452445028614323"><p lang="en" dir="ltr">We are currently experiencing a service disruption affecting multiple services. We can confirm that all our customers’ money and data are safe. We’ve been working to fix the issue since it was identified this morning and apologise to anyone affected and for any inconvenience caused.<a href="https://twitter.com/cantworkitout/status/2112452445028614323">October 20, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>Revolut has posted on X confirming the disruption. We're also receiving reports from readers that their Revolut online accounts are not opening.</p><p>This should give reassurance to anyone concerned about their finances. I'm currently reaching out for more information from other impacted banks.</p></div><div class="live-content"><time datetime="2026-10-20T10:41:42+00:00">October 20, 2026 – 6:41 AM</time><h2 id="rightmove-app-also-impacted">Rightmove app also impacted</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:892px;"><p class="vanilla-image-block" style="padding-top:44.62%;"><img id="Uxkw3vSnZSc29JyMfqhv7b" name="Downdetector" alt="Downdetector" src="https://cdn.mos.cms.futurecdn.net/Uxkw3vSnZSc29JyMfqhv7b-1920-80.png" mos="" align="middle" fullscreen="" width="892" height="398" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Downdetector)</span></figcaption></figure><p>If you're looking for a new place to live and the Rightmove app isn't loading, it's not just you. Others are seeing this impact too as the outage count has spiked on Down Detector.</p><p>As I've just tested, the website on desktop still works, but is a little slow to load.</p></div><div class="live-content"><time datetime="2026-10-20T10:44:29+00:00">October 20, 2026 – 6:44 AM</time><h2 id="halifax-acknowledges-the-outage">Halifax acknowledges the outage</h2><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2112473927498785082"><p lang="en" dir="ltr">@Keith02 We're aware some customers are having issues with our app and online. We're sorry about this and are working hard to fix it. If you need to you can still call us. We’ll let you know as soon as it’s back to normal.You can find our numbers here: https://t.co/yWa4FuZJAX ^Dhanraj<a href="https://twitter.com/cantworkitout/status/2112473927498785082">October 20, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>Halifax (and Lloyds by extension after the recently announced brand change) is also confirming that they're "aware some customers are having issues" both on the website and on the app.</p><p>In my own testing, the experience varies between the app not loading or taking a very long time to do so.</p></div><div class="live-content"><time datetime="2026-10-20T10:48:55+00:00">October 20, 2026 – 6:48 AM</time><h2 id="dpd-confirms-39-connection-issues-39">DPD confirms 'connection issues'</h2><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2112465102519873661"><p lang="en" dir="ltr">Service updateWe are aware of current connection issues affecting our website. Our team is working to get this resolved as quickly as possible. We apologise for any inconvenience caused.#YourDeliveryExperts https://t.co/0F4UJsXDfl<a href="https://twitter.com/cantworkitout/status/2112465102519873661">October 20, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>Since DPD specifically mentions "our website," I don't believe this is hitting the actual delivery infrastructure. But we'll get to the bottom of it.</p></div><div class="live-content"><time datetime="2026-10-20T10:55:02+00:00">October 20, 2026 – 6:55 AM</time><h2 id="this-disruption-is-not-europe-wide-according-to-google">This disruption is not Europe-wide (according to Google)</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1185px;"><p class="vanilla-image-block" style="padding-top:49.37%;"><img id="XQ455VycpbLjJ8YLJUcf9U" name="Google Cloud Services" alt="Google Cloud Services" src="https://cdn.mos.cms.futurecdn.net/XQ455VycpbLjJ8YLJUcf9U-1920-80.png" mos="" align="middle" fullscreen="" width="1185" height="585" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Google)</span></figcaption></figure><p>Digging deeper into this outage, and you can see that the disruption "!" is on europe-west2 server, which is specific to London, UK.</p></div><div class="live-content"><time datetime="2026-10-20T11:00:09+00:00">October 20, 2026 – 7:00 AM</time><h2 id="nhs-app-confusion">NHS app confusion</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.29%;"><img id="yJ9HoS2Y6sXJAp7XLJpgNF" name="NHS app" alt="NHS app" src="https://cdn.mos.cms.futurecdn.net/yJ9HoS2Y6sXJAp7XLJpgNF-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1441" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>So the NHS app issues may be localised to somewhere specific, as here in the midlands, my app is working just fine.</p><p>Or something may have happened to the Cloud outage. Stick with me as we find out.</p></div><div class="live-content"><time datetime="2026-10-20T11:02:33+00:00">October 20, 2026 – 7:02 AM</time><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:869px;"><p class="vanilla-image-block" style="padding-top:45.34%;"><img id="d2UeHpSfYXH9DVZwEvutTX" name="Downdetector" alt="Downdetector" src="https://cdn.mos.cms.futurecdn.net/d2UeHpSfYXH9DVZwEvutTX-1920-80.png" mos="" align="middle" fullscreen="" width="869" height="394" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Downdetector)</span></figcaption></figure><p>In fact, standby. The outage reports are going down.</p><p>We're still trying to figure out what caused it, because this has been an odd outage with few reports on downdetector, but it is one that Google confirmed.</p></div><div class="live-content"><time datetime="2026-10-20T11:05:07+00:00">October 20, 2026 – 7:05 AM</time><h2 id="breaking-statement-from-google">BREAKING: STATEMENT FROM GOOGLE</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1112px;"><p class="vanilla-image-block" style="padding-top:33.81%;"><img id="oAZNDFqXScttkUSpWeVEvg" name="Google Cloud Services" alt="Google Cloud Services" src="https://cdn.mos.cms.futurecdn.net/oAZNDFqXScttkUSpWeVEvg-1920-80.png" mos="" align="middle" fullscreen="" width="1112" height="376" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Google)</span></figcaption></figure><p>"Our engineering team continues to investigate the issue," the statement reads.</p><p>Beyond that, we're getting the same statement, which is that "multiple Google Cloud services" are experiencing "elevated errors and intermittent network failures."</p></div><div class="live-content"><time datetime="2026-10-20T11:10:54+00:00">October 20, 2026 – 7:10 AM</time><h2 id="that-google-cloud-outage-graph-continues-to-dip">That Google Cloud outage graph continues to dip</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:883px;"><p class="vanilla-image-block" style="padding-top:45.64%;"><img id="QPUGpu7qLgSXjbqqyyjcne" name="Google Cloud Services" alt="Google Cloud Services" src="https://cdn.mos.cms.futurecdn.net/QPUGpu7qLgSXjbqqyyjcne-1920-80.png" mos="" align="middle" fullscreen="" width="883" height="403" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Google)</span></figcaption></figure><p>Now down to 162. The one hardest hit is Revolut at 692 and staying steady, but other services are heading back down too</p></div><div class="live-content"><time datetime="2026-10-20T11:13:26+00:00">October 20, 2026 – 7:13 AM</time><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1659px;"><p class="vanilla-image-block" style="padding-top:74.02%;"><img id="RWCYyTicThKUvP4kEqeF38" name="Revolut" alt="Revolut" src="https://cdn.mos.cms.futurecdn.net/RWCYyTicThKUvP4kEqeF38-1920-80.png" mos="" align="middle" fullscreen="" width="1659" height="1228" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Revolut)</span></figcaption></figure><p>A trip to <a href="https://www.revolut.com/system-status/">Revolut's status page</a> shows how much is hit. From sign ups to stock trading.</p><p>Most concerning is card payments and ATM withdrawals!</p></div><div class="live-content"><time datetime="2026-10-20T11:17:10+00:00">October 20, 2026 – 7:17 AM</time><h2 id="court-livestreams-are-down-too">Court livestreams are down too</h2><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2112476586817606016"><p lang="en" dir="ltr">⚠️ We’re aware of an issue affecting Cloud Video Platform (CVP), used for some remote hearings.We’re working with our technology partners to restore service. If you’re having difficulty joining a hearing, please contact the court or tribunal dealing with your case. 👇<a href="https://twitter.com/cantworkitout/status/2112476586817606016">October 20, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>There's a couple of high profile court cases going on in the UK right now. One against comedian Russell Brand and another against Stephen Christopher Yaxley (otherwise known as Tommy Robinson).</p><p>These streams have gone down because of the outage and the HM Courts and Tribunals Service has acknowledged it — saying that they are "working with our technology partners to restore service."</p></div><div class="live-content"><time datetime="2026-10-20T11:23:02+00:00">October 20, 2026 – 7:23 AM</time><h2 id="cloud-services-are-a-risk-we-need-something-better">Cloud services are a risk - we need something better</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.20%;"><img id="SYq8hTpCqCrXJvtHE4wzxN" name="shutterstock_1489195400.jpg" alt="Close up of AWS sign at their offices in SOMA district" src="https://cdn.mos.cms.futurecdn.net/SYq8hTpCqCrXJvtHE4wzxN-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1124" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sundry Photography | Shutterstock)</span></figcaption></figure><p>The symmetry of this sometimes is always fascinating, because literally a year ago we had the far bigger AWS outage that knocked out half the internet.</p><p>I wrote it back then, and I'll say it again louder for the people in the back. When a cloud service sneezes, important services catch a cold.</p><p>Critical services like banking and healthcare should have a backup plan that doesn't rely on just one server.</p><p><strong>Important note: </strong>We're seeing an AWS spike, but this current outage has nothing to do with AWS.</p><p>Read more:</p><ul><li><a href="https://www.tomsguide.com/computing/internet/the-usd2-5-billion-question-how-many-more-aws-outages-until-the-internet-builds-a-real-backup-plan">How many more outages until the internet builds a real backup plan? Experts answer the $2.5 billion question</a></li></ul></div><div class="live-content"><time datetime="2026-10-20T11:26:18+00:00">October 20, 2026 – 7:26 AM</time><h2 id="breaking-a-39-power-event-39-caused-the-outage">BREAKING: A 'power event' caused the outage</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5000px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="PJtDQppL8GQ3ok63MAJnmm" name="GettyImages-2163954636.jpg" alt="A phone in hand in front of a Google logo" src="https://cdn.mos.cms.futurecdn.net/PJtDQppL8GQ3ok63MAJnmm-1920-80.jpg" mos="" align="middle" fullscreen="" width="5000" height="2813" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Getty Images)</span></figcaption></figure><p>We got a <a href="https://status.cloud.google.com/incidents/Xs2XTHzAVC9YnafnPyzj">new statement </a>from Google. With Downdetector report levels at a lower level than anticipated, my guess was this could have been a power surge that caused the outage.</p><p>Turns out I was right, as Google is saying this was "due to a power event." The issue has been mitigated, and Google's currently running a "partial mitigation to infrastructure services" over the next 30 minutes.</p><p>We'll update you when we see the result of this.</p></div><div class="live-content"><time datetime="2026-10-20T11:32:48+00:00">October 20, 2026 – 7:32 AM</time><h2 id="slight-uptick-in-outage-reports">Slight uptick in outage reports</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:893px;"><p class="vanilla-image-block" style="padding-top:49.94%;"><img id="hJwWtK8C7pgc5QK4YSmmwg" name="Downdetector" alt="Downdetector" src="https://cdn.mos.cms.futurecdn.net/hJwWtK8C7pgc5QK4YSmmwg-1920-80.png" mos="" align="middle" fullscreen="" width="893" height="446" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Downdetector)</span></figcaption></figure><p>As the mitigation starts, we're seeing a small uptick in Google Cloud outage reports.</p><p>These situations may be unrelated.</p></div><div class="live-content"><time datetime="2026-10-20T11:38:00+00:00">October 20, 2026 – 7:38 AM</time><h2 id="royal-mail-tracking-issues">Royal Mail tracking issues</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:851px;"><p class="vanilla-image-block" style="padding-top:42.30%;"><img id="Bw6EsDKfMGHrfzjD9YQoYU" name="Downdetector" alt="Downdetector" src="https://cdn.mos.cms.futurecdn.net/Bw6EsDKfMGHrfzjD9YQoYU-1920-80.png" mos="" align="middle" fullscreen="" width="851" height="360" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Downdetector)</span></figcaption></figure><p>From what we're hearing, the actual deliveries themselves are <strong>not </strong>impacted (please get in touch if you're seeing something different). But parcel tracking in my testing is either not loading or loading very slowly.</p></div><div class="live-content"><time datetime="2026-10-20T11:45:26+00:00">October 20, 2026 – 7:45 AM</time><h2 id="prime-minister-39-s-office-is-talking-with-google-cloud">Prime Minister's office is talking with Google Cloud</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="NNsTkUGMk96zrAhyGcpdrM" name="Google campus with logo" alt="Photograph of a large Google logo at Google's campus" src="https://cdn.mos.cms.futurecdn.net/NNsTkUGMk96zrAhyGcpdrM-1920-80.jpg" mos="" align="middle" fullscreen="" width="4000" height="2250" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Getty Images)</span></figcaption></figure><p>As reported by <a href="https://news.sky.com/story/google-outage-latest-banks-and-delivery-services-affected-by-outage-13600814">Sky News</a>, No. 10 is "aware" of today's outage, and an official spokesman has confirmed that they are "in contact" with Google Cloud Services to work on restoring services.</p></div><div class="live-content"><time datetime="2026-10-20T11:48:30+00:00">October 20, 2026 – 7:48 AM</time><h2 id="breaking-big-outage-spike-for-spotify-just-emerged">BREAKING: big outage spike for Spotify just emerged</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:850px;"><p class="vanilla-image-block" style="padding-top:52.00%;"><img id="ik6fgVBUpzTvVRiyheb634" name="Downdetector" alt="Downdetector" src="https://cdn.mos.cms.futurecdn.net/ik6fgVBUpzTvVRiyheb634-1920-80.png" mos="" align="middle" fullscreen="" width="850" height="442" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Downdetector)</span></figcaption></figure><p>I'm racing to understand what's going on here, but as Spotify uses Google Cloud Platform as its primary cloud infrastructure provider, I'm betting that this recent disruption may have taken the app down.</p></div><div class="live-content"><time datetime="2026-10-20T11:52:47+00:00">October 20, 2026 – 7:52 AM</time><h2 id="here-39-s-your-update-on-what-39-s-being-impacted">Here's your update on what's being impacted</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:970px;"><p class="vanilla-image-block" style="padding-top:106.29%;"><img id="k6QbAphXqH4scfTJMKwboV" name="Downdetector" alt="Downdetector" src="https://cdn.mos.cms.futurecdn.net/k6QbAphXqH4scfTJMKwboV-1920-80.png" mos="" align="middle" fullscreen="" width="970" height="1031" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Downdetector)</span></figcaption></figure><p>We're seeing some specific services start to reduce in outage reports, such as Rightmove, NHS and banking apps like Halifax. But others are staying steady (like Revolut), and Spotify has just shot up outta nowhere.</p></div><div class="live-content"><time datetime="2026-10-20T11:55:34+00:00">October 20, 2026 – 7:55 AM</time><h2 id="first-visual-reports-of-spotify-outage-coming-through">First visual reports of Spotify outage coming through</h2><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2112509556505075845"><p lang="en" dir="ltr">is spotify down or something??<a href="https://twitter.com/cantworkitout/status/2112509556505075845">October 20, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div></div><div class="live-content"><time datetime="2026-10-20T12:01:44+00:00">October 20, 2026 – 8:01 AM</time><h2 id="breaking-google-cloud-set-for-quot-full-recovery-quot-by-2pm-quot-tentatively-quot">BREAKING: Google Cloud set for "full recovery" by 2pm "tentatively"</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2121px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="8jp3c43JSu9jQHgRtRbcuZ" name="Google logo" alt="Large google logo sign outside a building" src="https://cdn.mos.cms.futurecdn.net/8jp3c43JSu9jQHgRtRbcuZ-1920-80.jpg" mos="" align="middle" fullscreen="" width="2121" height="1193" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Getty Images)</span></figcaption></figure><p>Google's just posted another <a href="https://status.cloud.google.com/incidents/Xs2XTHzAVC9YnafnPyzj">statement</a> saying that the power event has been mitigated.</p><p>"We are seeing the recovery of services and are prioritizing the recovery of existing workloads."</p><p>They also set a time for "Full recovery of existing workloads," which is "tentatively" today at 6am PDT (2pm UK time).</p></div><div class="live-content"><time datetime="2026-10-20T12:16:15+00:00">October 20, 2026 – 8:16 AM</time><h2 id="spotify-service-resolved">Spotify service resolved</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:889px;"><p class="vanilla-image-block" style="padding-top:44.09%;"><img id="KoqyKm5nA4yDzG2YjKTA4" name="Downdetector" alt="Downdetector" src="https://cdn.mos.cms.futurecdn.net/KoqyKm5nA4yDzG2YjKTA4-1920-80.png" mos="" align="middle" fullscreen="" width="889" height="392" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Downdetector)</span></figcaption></figure><p>Well, that was quick! Let's check the others</p></div><div class="live-content"><time datetime="2026-10-20T12:50:10+00:00">October 20, 2026 – 8:50 AM</time><h2 id="breaking-39-recovery-of-services-39-underway">BREAKING: 'recovery of services' underway</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="TfNDpG2AV7gvgGfDyH7Wv7" name="shutterstock_1419793550 (1).jpg" alt="The Google logo on the side of a building" src="https://cdn.mos.cms.futurecdn.net/TfNDpG2AV7gvgGfDyH7Wv7-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Final update from me, as we're seeing the end of this outage caused by what seems to be a power surge.</p><p>Google just posted another <a href="https://status.cloud.google.com/incidents/Xs2XTHzAVC9YnafnPyzj">update</a> confirming that they are seeing "recovering of services for most workloads in europe-west2."</p><p>It may take time for this recovery to be felt more widely across the services you regularly use, but this disruption seems to be over. I'll keep this live blog open just a little longer in case anything changes!</p></div> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/live/google-cloud-services-down-oct-20</link>
                                                                            <description>
                            <![CDATA[ Google Cloud services were hit by network outages, which impacted Spotify, banks and NHS in the UK. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">P7akeHgNQxF8drNmgc5hYV</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/kd2S6yfQuC2Vjo5fPYo6yU-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 20 Oct 2026 10:25:02 +0000</pubDate>                                                                                                                                <updated>Tue, 20 Oct 2026 12:50:13 +0000</updated>
                                                                                                                                            <category><![CDATA[Internet]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                                                                                    <dc:creator><![CDATA[ Jason England ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/v4fSq5U4uZUEtGY2BwNuJ6-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Jason brings a decade of tech and gaming journalism experience to his role as a Managing Editor of Computing at Tom&#039;s Guide. He has previously written for Laptop Mag, Tom&#039;s Hardware, Kotaku, Stuff and BBC Science Focus. In his spare time, you&#039;ll find Jason looking for good dogs to pet or thinking about eating pizza if he isn&#039;t already.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/kd2S6yfQuC2Vjo5fPYo6yU-1920-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Google logo on a building]]></media:description>                                                            <media:text><![CDATA[Google logo on a building]]></media:text>
                                <media:title type="plain"><![CDATA[Google logo on a building]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/kd2S6yfQuC2Vjo5fPYo6yU-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <div class="live-content"><p>Google Cloud services were hit by network outages, which impacted Spotify, banks and the NHS in the UK.</p><p>According to the <a href="https://status.cloud.google.com/">Google Status Page,</a> this outage was first noticed at 7:08am UK time, and the engineering team is continuing to "investigate the issue." Other companies like Emma, Halifax and Revolut have also acknowledged the issue.</p><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2112461233693601882"><p lang="en" dir="ltr">Emma is currently down due to a Google Cloud outage affecting services in London since 7am. This is a technical outage, not a security issue. We're monitoring closely and will update here as soon as the app is back. Sorry for the disruption 🙏<a href="https://twitter.com/cantworkitout/status/2112461233693601882">October 20, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>Now, after several hours, <a href="https://status.cloud.google.com/incidents/Xs2XTHzAVC9YnafnPyzj">Google has confirmed</a> that the issue has been mitigated, and services are returning to normal.</p><h3 class="article-body__section" id="section-as-it-happened"><span>AS IT HAPPENED</span></h3></div><div class="live-content"><time datetime="2026-10-20T10:27:43+00:00">October 20, 2026 – 6:27 AM</time><h2 id="this-is-a-different-kind-of-disruption">This is a different kind of disruption</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1402px;"><p class="vanilla-image-block" style="padding-top:73.89%;"><img id="DhHGbLDXm6wjj78kXjc87c" name="Downdetector" alt="Downdetector" src="https://cdn.mos.cms.futurecdn.net/DhHGbLDXm6wjj78kXjc87c-1920-80.png" mos="" align="middle" fullscreen="" width="1402" height="1036" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Downdetector)</span></figcaption></figure><p>Normally when it comes to outages, you can point to one service that's being impacted and causing problems.</p><p>This is Google Cloud Services — the backbone to a lot of online infrastructure, which are experiencing "elevated errors and intermittent network failures in europe-west2 region."</p><p>That is having a knock-on effect on services like banks like Revolut, postal services like DPD and NHS England.</p><p>We're just starting to see reports spike, so stay tuned for more.</p></div><div class="live-content"><time datetime="2026-10-20T10:33:55+00:00">October 20, 2026 – 6:33 AM</time><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1209px;"><p class="vanilla-image-block" style="padding-top:55.75%;"><img id="idsHjTpPVFuSXsdxW8hqKS" name="Google Cloud Services" alt="Google Cloud Services" src="https://cdn.mos.cms.futurecdn.net/idsHjTpPVFuSXsdxW8hqKS-1920-80.png" mos="" align="middle" fullscreen="" width="1209" height="674" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Google)</span></figcaption></figure><p>This incident is currently active, as "multiple services" are experiencing issues. The engineering team is continuing to "investigate the issue," and we should be getting an update in just under 30 minutes.</p></div><div class="live-content"><time datetime="2026-10-20T10:39:16+00:00">October 20, 2026 – 6:39 AM</time><h2 id="revolut-confirms-your-39-money-and-data-39-are-safe">Revolut confirms your 'money and data' are safe</h2><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2112452445028614323"><p lang="en" dir="ltr">We are currently experiencing a service disruption affecting multiple services. We can confirm that all our customers’ money and data are safe. We’ve been working to fix the issue since it was identified this morning and apologise to anyone affected and for any inconvenience caused.<a href="https://twitter.com/cantworkitout/status/2112452445028614323">October 20, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>Revolut has posted on X confirming the disruption. We're also receiving reports from readers that their Revolut online accounts are not opening.</p><p>This should give reassurance to anyone concerned about their finances. I'm currently reaching out for more information from other impacted banks.</p></div><div class="live-content"><time datetime="2026-10-20T10:41:42+00:00">October 20, 2026 – 6:41 AM</time><h2 id="rightmove-app-also-impacted">Rightmove app also impacted</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:892px;"><p class="vanilla-image-block" style="padding-top:44.62%;"><img id="Uxkw3vSnZSc29JyMfqhv7b" name="Downdetector" alt="Downdetector" src="https://cdn.mos.cms.futurecdn.net/Uxkw3vSnZSc29JyMfqhv7b-1920-80.png" mos="" align="middle" fullscreen="" width="892" height="398" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Downdetector)</span></figcaption></figure><p>If you're looking for a new place to live and the Rightmove app isn't loading, it's not just you. Others are seeing this impact too as the outage count has spiked on Down Detector.</p><p>As I've just tested, the website on desktop still works, but is a little slow to load.</p></div><div class="live-content"><time datetime="2026-10-20T10:44:29+00:00">October 20, 2026 – 6:44 AM</time><h2 id="halifax-acknowledges-the-outage">Halifax acknowledges the outage</h2><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2112473927498785082"><p lang="en" dir="ltr">@Keith02 We're aware some customers are having issues with our app and online. We're sorry about this and are working hard to fix it. If you need to you can still call us. We’ll let you know as soon as it’s back to normal.You can find our numbers here: https://t.co/yWa4FuZJAX ^Dhanraj<a href="https://twitter.com/cantworkitout/status/2112473927498785082">October 20, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>Halifax (and Lloyds by extension after the recently announced brand change) is also confirming that they're "aware some customers are having issues" both on the website and on the app.</p><p>In my own testing, the experience varies between the app not loading or taking a very long time to do so.</p></div><div class="live-content"><time datetime="2026-10-20T10:48:55+00:00">October 20, 2026 – 6:48 AM</time><h2 id="dpd-confirms-39-connection-issues-39">DPD confirms 'connection issues'</h2><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2112465102519873661"><p lang="en" dir="ltr">Service updateWe are aware of current connection issues affecting our website. Our team is working to get this resolved as quickly as possible. We apologise for any inconvenience caused.#YourDeliveryExperts https://t.co/0F4UJsXDfl<a href="https://twitter.com/cantworkitout/status/2112465102519873661">October 20, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>Since DPD specifically mentions "our website," I don't believe this is hitting the actual delivery infrastructure. But we'll get to the bottom of it.</p></div><div class="live-content"><time datetime="2026-10-20T10:55:02+00:00">October 20, 2026 – 6:55 AM</time><h2 id="this-disruption-is-not-europe-wide-according-to-google">This disruption is not Europe-wide (according to Google)</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1185px;"><p class="vanilla-image-block" style="padding-top:49.37%;"><img id="XQ455VycpbLjJ8YLJUcf9U" name="Google Cloud Services" alt="Google Cloud Services" src="https://cdn.mos.cms.futurecdn.net/XQ455VycpbLjJ8YLJUcf9U-1920-80.png" mos="" align="middle" fullscreen="" width="1185" height="585" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Google)</span></figcaption></figure><p>Digging deeper into this outage, and you can see that the disruption "!" is on europe-west2 server, which is specific to London, UK.</p></div><div class="live-content"><time datetime="2026-10-20T11:00:09+00:00">October 20, 2026 – 7:00 AM</time><h2 id="nhs-app-confusion">NHS app confusion</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.29%;"><img id="yJ9HoS2Y6sXJAp7XLJpgNF" name="NHS app" alt="NHS app" src="https://cdn.mos.cms.futurecdn.net/yJ9HoS2Y6sXJAp7XLJpgNF-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1441" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>So the NHS app issues may be localised to somewhere specific, as here in the midlands, my app is working just fine.</p><p>Or something may have happened to the Cloud outage. Stick with me as we find out.</p></div><div class="live-content"><time datetime="2026-10-20T11:02:33+00:00">October 20, 2026 – 7:02 AM</time><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:869px;"><p class="vanilla-image-block" style="padding-top:45.34%;"><img id="d2UeHpSfYXH9DVZwEvutTX" name="Downdetector" alt="Downdetector" src="https://cdn.mos.cms.futurecdn.net/d2UeHpSfYXH9DVZwEvutTX-1920-80.png" mos="" align="middle" fullscreen="" width="869" height="394" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Downdetector)</span></figcaption></figure><p>In fact, standby. The outage reports are going down.</p><p>We're still trying to figure out what caused it, because this has been an odd outage with few reports on downdetector, but it is one that Google confirmed.</p></div><div class="live-content"><time datetime="2026-10-20T11:05:07+00:00">October 20, 2026 – 7:05 AM</time><h2 id="breaking-statement-from-google">BREAKING: STATEMENT FROM GOOGLE</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1112px;"><p class="vanilla-image-block" style="padding-top:33.81%;"><img id="oAZNDFqXScttkUSpWeVEvg" name="Google Cloud Services" alt="Google Cloud Services" src="https://cdn.mos.cms.futurecdn.net/oAZNDFqXScttkUSpWeVEvg-1920-80.png" mos="" align="middle" fullscreen="" width="1112" height="376" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Google)</span></figcaption></figure><p>"Our engineering team continues to investigate the issue," the statement reads.</p><p>Beyond that, we're getting the same statement, which is that "multiple Google Cloud services" are experiencing "elevated errors and intermittent network failures."</p></div><div class="live-content"><time datetime="2026-10-20T11:10:54+00:00">October 20, 2026 – 7:10 AM</time><h2 id="that-google-cloud-outage-graph-continues-to-dip">That Google Cloud outage graph continues to dip</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:883px;"><p class="vanilla-image-block" style="padding-top:45.64%;"><img id="QPUGpu7qLgSXjbqqyyjcne" name="Google Cloud Services" alt="Google Cloud Services" src="https://cdn.mos.cms.futurecdn.net/QPUGpu7qLgSXjbqqyyjcne-1920-80.png" mos="" align="middle" fullscreen="" width="883" height="403" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Google)</span></figcaption></figure><p>Now down to 162. The one hardest hit is Revolut at 692 and staying steady, but other services are heading back down too</p></div><div class="live-content"><time datetime="2026-10-20T11:13:26+00:00">October 20, 2026 – 7:13 AM</time><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1659px;"><p class="vanilla-image-block" style="padding-top:74.02%;"><img id="RWCYyTicThKUvP4kEqeF38" name="Revolut" alt="Revolut" src="https://cdn.mos.cms.futurecdn.net/RWCYyTicThKUvP4kEqeF38-1920-80.png" mos="" align="middle" fullscreen="" width="1659" height="1228" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Revolut)</span></figcaption></figure><p>A trip to <a href="https://www.revolut.com/system-status/">Revolut's status page</a> shows how much is hit. From sign ups to stock trading.</p><p>Most concerning is card payments and ATM withdrawals!</p></div><div class="live-content"><time datetime="2026-10-20T11:17:10+00:00">October 20, 2026 – 7:17 AM</time><h2 id="court-livestreams-are-down-too">Court livestreams are down too</h2><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2112476586817606016"><p lang="en" dir="ltr">⚠️ We’re aware of an issue affecting Cloud Video Platform (CVP), used for some remote hearings.We’re working with our technology partners to restore service. If you’re having difficulty joining a hearing, please contact the court or tribunal dealing with your case. 👇<a href="https://twitter.com/cantworkitout/status/2112476586817606016">October 20, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>There's a couple of high profile court cases going on in the UK right now. One against comedian Russell Brand and another against Stephen Christopher Yaxley (otherwise known as Tommy Robinson).</p><p>These streams have gone down because of the outage and the HM Courts and Tribunals Service has acknowledged it — saying that they are "working with our technology partners to restore service."</p></div><div class="live-content"><time datetime="2026-10-20T11:23:02+00:00">October 20, 2026 – 7:23 AM</time><h2 id="cloud-services-are-a-risk-we-need-something-better">Cloud services are a risk - we need something better</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.20%;"><img id="SYq8hTpCqCrXJvtHE4wzxN" name="shutterstock_1489195400.jpg" alt="Close up of AWS sign at their offices in SOMA district" src="https://cdn.mos.cms.futurecdn.net/SYq8hTpCqCrXJvtHE4wzxN-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1124" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sundry Photography | Shutterstock)</span></figcaption></figure><p>The symmetry of this sometimes is always fascinating, because literally a year ago we had the far bigger AWS outage that knocked out half the internet.</p><p>I wrote it back then, and I'll say it again louder for the people in the back. When a cloud service sneezes, important services catch a cold.</p><p>Critical services like banking and healthcare should have a backup plan that doesn't rely on just one server.</p><p><strong>Important note: </strong>We're seeing an AWS spike, but this current outage has nothing to do with AWS.</p><p>Read more:</p><ul><li><a href="https://www.tomsguide.com/computing/internet/the-usd2-5-billion-question-how-many-more-aws-outages-until-the-internet-builds-a-real-backup-plan">How many more outages until the internet builds a real backup plan? Experts answer the $2.5 billion question</a></li></ul></div><div class="live-content"><time datetime="2026-10-20T11:26:18+00:00">October 20, 2026 – 7:26 AM</time><h2 id="breaking-a-39-power-event-39-caused-the-outage">BREAKING: A 'power event' caused the outage</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5000px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="PJtDQppL8GQ3ok63MAJnmm" name="GettyImages-2163954636.jpg" alt="A phone in hand in front of a Google logo" src="https://cdn.mos.cms.futurecdn.net/PJtDQppL8GQ3ok63MAJnmm-1920-80.jpg" mos="" align="middle" fullscreen="" width="5000" height="2813" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Getty Images)</span></figcaption></figure><p>We got a <a href="https://status.cloud.google.com/incidents/Xs2XTHzAVC9YnafnPyzj">new statement </a>from Google. With Downdetector report levels at a lower level than anticipated, my guess was this could have been a power surge that caused the outage.</p><p>Turns out I was right, as Google is saying this was "due to a power event." The issue has been mitigated, and Google's currently running a "partial mitigation to infrastructure services" over the next 30 minutes.</p><p>We'll update you when we see the result of this.</p></div><div class="live-content"><time datetime="2026-10-20T11:32:48+00:00">October 20, 2026 – 7:32 AM</time><h2 id="slight-uptick-in-outage-reports">Slight uptick in outage reports</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:893px;"><p class="vanilla-image-block" style="padding-top:49.94%;"><img id="hJwWtK8C7pgc5QK4YSmmwg" name="Downdetector" alt="Downdetector" src="https://cdn.mos.cms.futurecdn.net/hJwWtK8C7pgc5QK4YSmmwg-1920-80.png" mos="" align="middle" fullscreen="" width="893" height="446" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Downdetector)</span></figcaption></figure><p>As the mitigation starts, we're seeing a small uptick in Google Cloud outage reports.</p><p>These situations may be unrelated.</p></div><div class="live-content"><time datetime="2026-10-20T11:38:00+00:00">October 20, 2026 – 7:38 AM</time><h2 id="royal-mail-tracking-issues">Royal Mail tracking issues</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:851px;"><p class="vanilla-image-block" style="padding-top:42.30%;"><img id="Bw6EsDKfMGHrfzjD9YQoYU" name="Downdetector" alt="Downdetector" src="https://cdn.mos.cms.futurecdn.net/Bw6EsDKfMGHrfzjD9YQoYU-1920-80.png" mos="" align="middle" fullscreen="" width="851" height="360" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Downdetector)</span></figcaption></figure><p>From what we're hearing, the actual deliveries themselves are <strong>not </strong>impacted (please get in touch if you're seeing something different). But parcel tracking in my testing is either not loading or loading very slowly.</p></div><div class="live-content"><time datetime="2026-10-20T11:45:26+00:00">October 20, 2026 – 7:45 AM</time><h2 id="prime-minister-39-s-office-is-talking-with-google-cloud">Prime Minister's office is talking with Google Cloud</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="NNsTkUGMk96zrAhyGcpdrM" name="Google campus with logo" alt="Photograph of a large Google logo at Google's campus" src="https://cdn.mos.cms.futurecdn.net/NNsTkUGMk96zrAhyGcpdrM-1920-80.jpg" mos="" align="middle" fullscreen="" width="4000" height="2250" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Getty Images)</span></figcaption></figure><p>As reported by <a href="https://news.sky.com/story/google-outage-latest-banks-and-delivery-services-affected-by-outage-13600814">Sky News</a>, No. 10 is "aware" of today's outage, and an official spokesman has confirmed that they are "in contact" with Google Cloud Services to work on restoring services.</p></div><div class="live-content"><time datetime="2026-10-20T11:48:30+00:00">October 20, 2026 – 7:48 AM</time><h2 id="breaking-big-outage-spike-for-spotify-just-emerged">BREAKING: big outage spike for Spotify just emerged</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:850px;"><p class="vanilla-image-block" style="padding-top:52.00%;"><img id="ik6fgVBUpzTvVRiyheb634" name="Downdetector" alt="Downdetector" src="https://cdn.mos.cms.futurecdn.net/ik6fgVBUpzTvVRiyheb634-1920-80.png" mos="" align="middle" fullscreen="" width="850" height="442" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Downdetector)</span></figcaption></figure><p>I'm racing to understand what's going on here, but as Spotify uses Google Cloud Platform as its primary cloud infrastructure provider, I'm betting that this recent disruption may have taken the app down.</p></div><div class="live-content"><time datetime="2026-10-20T11:52:47+00:00">October 20, 2026 – 7:52 AM</time><h2 id="here-39-s-your-update-on-what-39-s-being-impacted">Here's your update on what's being impacted</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:970px;"><p class="vanilla-image-block" style="padding-top:106.29%;"><img id="k6QbAphXqH4scfTJMKwboV" name="Downdetector" alt="Downdetector" src="https://cdn.mos.cms.futurecdn.net/k6QbAphXqH4scfTJMKwboV-1920-80.png" mos="" align="middle" fullscreen="" width="970" height="1031" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Downdetector)</span></figcaption></figure><p>We're seeing some specific services start to reduce in outage reports, such as Rightmove, NHS and banking apps like Halifax. But others are staying steady (like Revolut), and Spotify has just shot up outta nowhere.</p></div><div class="live-content"><time datetime="2026-10-20T11:55:34+00:00">October 20, 2026 – 7:55 AM</time><h2 id="first-visual-reports-of-spotify-outage-coming-through">First visual reports of Spotify outage coming through</h2><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2112509556505075845"><p lang="en" dir="ltr">is spotify down or something??<a href="https://twitter.com/cantworkitout/status/2112509556505075845">October 20, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div></div><div class="live-content"><time datetime="2026-10-20T12:01:44+00:00">October 20, 2026 – 8:01 AM</time><h2 id="breaking-google-cloud-set-for-quot-full-recovery-quot-by-2pm-quot-tentatively-quot">BREAKING: Google Cloud set for "full recovery" by 2pm "tentatively"</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2121px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="8jp3c43JSu9jQHgRtRbcuZ" name="Google logo" alt="Large google logo sign outside a building" src="https://cdn.mos.cms.futurecdn.net/8jp3c43JSu9jQHgRtRbcuZ-1920-80.jpg" mos="" align="middle" fullscreen="" width="2121" height="1193" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Getty Images)</span></figcaption></figure><p>Google's just posted another <a href="https://status.cloud.google.com/incidents/Xs2XTHzAVC9YnafnPyzj">statement</a> saying that the power event has been mitigated.</p><p>"We are seeing the recovery of services and are prioritizing the recovery of existing workloads."</p><p>They also set a time for "Full recovery of existing workloads," which is "tentatively" today at 6am PDT (2pm UK time).</p></div><div class="live-content"><time datetime="2026-10-20T12:16:15+00:00">October 20, 2026 – 8:16 AM</time><h2 id="spotify-service-resolved">Spotify service resolved</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:889px;"><p class="vanilla-image-block" style="padding-top:44.09%;"><img id="KoqyKm5nA4yDzG2YjKTA4" name="Downdetector" alt="Downdetector" src="https://cdn.mos.cms.futurecdn.net/KoqyKm5nA4yDzG2YjKTA4-1920-80.png" mos="" align="middle" fullscreen="" width="889" height="392" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Downdetector)</span></figcaption></figure><p>Well, that was quick! Let's check the others</p></div><div class="live-content"><time datetime="2026-10-20T12:50:10+00:00">October 20, 2026 – 8:50 AM</time><h2 id="breaking-39-recovery-of-services-39-underway">BREAKING: 'recovery of services' underway</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="TfNDpG2AV7gvgGfDyH7Wv7" name="shutterstock_1419793550 (1).jpg" alt="The Google logo on the side of a building" src="https://cdn.mos.cms.futurecdn.net/TfNDpG2AV7gvgGfDyH7Wv7-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Final update from me, as we're seeing the end of this outage caused by what seems to be a power surge.</p><p>Google just posted another <a href="https://status.cloud.google.com/incidents/Xs2XTHzAVC9YnafnPyzj">update</a> confirming that they are seeing "recovering of services for most workloads in europe-west2."</p><p>It may take time for this recovery to be felt more widely across the services you regularly use, but this disruption seems to be over. I'll keep this live blog open just a little longer in case anything changes!</p></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ 7 warning signs your Android phone or iPhone has malware ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Whether you missclicked or downloaded the wrong file, malware can infect your Android device or iPhone and you might not have even noticed. There are some signs that are completely obvious, but others are a little more discreet and take some snooping around to suss out. </p><p>Here are some warning signs that you might have an unwanted guest on your smartphone.</p><h2 id="pop-up-ads">Pop-up ads</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1000px;"><p class="vanilla-image-block" style="padding-top:57.30%;"><img id="tLHcWev96obw6homU7wv9K" name="smartphone-shock4-shst.jpg" alt="Dark-haired woman looking at smartphone screen in shock." src="https://cdn.mos.cms.futurecdn.net/tLHcWev96obw6homU7wv9K-1920-80.jpg" mos="" align="middle" fullscreen="" width="1000" height="573" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: fizkes/Shutterstock)</span></figcaption></figure><p>Advertisements spamming your phone, especially outside of an app, is a dead giveaway. Don’t ignore the problem, even if you’re a fan of <em>Neon Genesis Evangelion</em> who really appreciates seeing “CONGRATULATIONS” spread across their screen.</p><h2 id="new-apps">New apps</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.20%;"><img id="QN2HNhCkPpUY63qpwesSwP" name="delete-apps-a.jpeg" alt="How to delete apps on an iPhone" src="https://cdn.mos.cms.futurecdn.net/QN2HNhCkPpUY63qpwesSwP-1920-80.jpeg" mos="" align="middle" fullscreen="" width="2000" height="1124" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>If your phone is packing a ridiculous number of applications like mine, then you might not notice when a new app creeps into your system. For both the sake of spotting malware and cleaning up your library of unused apps, it's worth taking the time to <a href="https://www.tomsguide.com/news/older-apps-could-be-putting-your-smartphone-at-risk-heres-why">audit your current apps</a>.</p><h2 id="shorter-battery-life">Shorter battery life</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="rwgm52Uz2NwV9UfhqRdYcG" name="low battery 3.jpg" alt="A person in a coffee shop holding a phone displaying the low battery symbol" src="https://cdn.mos.cms.futurecdn.net/rwgm52Uz2NwV9UfhqRdYcG-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Getty Images)</span></figcaption></figure><p>Malware does a lot in the background to wreak havoc on your device, and that takes power. So one of the telltale signs of malware infecting your device is if you experience shorter battery life. Battery life can vary, especially as a phone ages, so I recommend looking up the average battery life for your device to see if there's an obvious discrepancy.</p><h2 id="performance-issues">Performance issues</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5335px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="n26b6mgXGma49crWHdPqRJ" name="Irritation.jpg" alt="Man looking frustrated at his smartphone while sitting on a couch" src="https://cdn.mos.cms.futurecdn.net/n26b6mgXGma49crWHdPqRJ-1920-80.jpg" mos="" align="middle" fullscreen="" width="5335" height="3001" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Got a brand new phone and all of a sudden everything slows down to a crawl? Are apps randomly crashing on you? This is another sign that malware may have crept onto your device. This may be more difficult to spot on phones already experiencing slower performance, so keep an eye out for other signs if that’s the case.</p><h2 id="overheating">Overheating</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5442px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="QWukPddzqa59Pmt6TYGGoJ" name="woman at beach holding phone" alt="woman at beach holding phone" src="https://cdn.mos.cms.futurecdn.net/QWukPddzqa59Pmt6TYGGoJ-1920-80.jpg" mos="" align="middle" fullscreen="" width="5442" height="3061" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Credit: Oscar Wong/Getty)</span></figcaption></figure><p>Unless you still have a Samsung Galaxy Note 7 hanging around, which you shouldn't, your device should not be scorching your hand. If your smartphone is spamming you with overheating warnings or is straight up crashing, especially in temperate environments, there might be a virus giving your phone a fever (my dad joke for the day).</p><h2 id="abnormal-data-usage">Abnormal data usage</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4030px;"><p class="vanilla-image-block" style="padding-top:57.87%;"><img id="xMPGeG7xLEP7j8fWxskCoS" name="iPhone 14 Pro Max speed test 2.jpg" alt="iPhone 14 Pro Max speed test app" src="https://cdn.mos.cms.futurecdn.net/xMPGeG7xLEP7j8fWxskCoS-1920-80.jpg" mos="" align="middle" fullscreen="" width="4030" height="2332" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Unless you have a limited data plan and are remaining vigilant about your usage, it’s unlikely you’ll notice malware taking up all your data. Unlimited data users who have never checked their data metrics need to be more alert. It doesn’t hurt to check your data usage every once in a while, if not to see what apps you’re maybe spending a little too much time on.</p><h2 id="your-contacts-get-spam">Your contacts get spam</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1526px;"><p class="vanilla-image-block" style="padding-top:56.29%;"><img id="pdgMsdqQhFmPcrFWFJF9xg" name="texting" alt="Using smartphone" src="https://cdn.mos.cms.futurecdn.net/pdgMsdqQhFmPcrFWFJF9xg-1920-80.png" mos="" align="middle" fullscreen="" width="1526" height="859" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>The most embarrassing and frustrating sign of malware is all your friends and family getting hit with <a href="https://www.tomsguide.com/how-to/how-to-block-and-report-spam-text-messages">spam messages</a> that can potentially affect <em>their</em> devices. You’ll likely hear about this sooner than later, but as someone who doesn’t actually use SMS to contact people, it doesn’t hurt to check your default messaging app. Hopefully your contacts know what you sound like versus a spam bot imitating you, but the sooner you alert people the better.</p><h2 id="what-you-can-do">What you can do</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5000px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="r7Spa4g9ekv8KJBVn87JMb" name="smartphone malware android.jpg" alt="mobile, malware" src="https://cdn.mos.cms.futurecdn.net/r7Spa4g9ekv8KJBVn87JMb-1920-80.jpg" mos="" align="middle" fullscreen="" width="5000" height="2813" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>If you’re still not 100% certain whether or not your device is carrying around malware, there’s a few things you can do.</p><p>For iPhone users, navigate to <strong>Settings > General > VPN &amp; Device Management</strong> to check if any unknown profiles are installed. If you don’t find anything here, go to <strong>Settings > Privacy &amp; Security</strong> and check on your app permissions. This might be a bit tedious, but you should do a step by step inventory of app permissions and revoke access to apps that you aren't using, and delete ones that you don’t recognize.</p><p>For Android users, go to <strong>Google Play > tap your profile picture</strong> <strong>> Play Protect</strong>. This will scan your device for any harmful apps. It typically runs automatically, but it doesn’t hurt to do a manual check.</p><p>If you don’t find anything going down these routes, Android users can download one of the <a href="https://www.tomsguide.com/best-picks/best-android-antivirus">best Android antivirus software</a> solutions, which can not only help locate malware but also delete it. Unfortunately, iPhone users don’t have access to traditional antivirus software because of how Apple sandboxes each app, but you can download security apps that can detect data breaches.</p><p>If you can’t manage to track down the issue, then resetting your device to factory settings may be the next step. In this case, you should set up your smartphone as a new device, as any backups can bring with it the malware that infected the system to begin with. Then reintroduce apps and services one by one to see if the issue continues, and if it happens again, you’ll know where the call inside the house is coming from and you can get rid of it — it could be something as simple as a browser extension.</p><p>I highly recommend <a href="https://www.tomsguide.com/opinion/im-a-security-editor-and-this-is-how-i-create-strong-passwords-that-are-also-easy-to-remember">changing passwords</a> on critical services, like banking apps, using a <em>different</em> device. Monitor your smartphone for a while to see if the issue has been addressed before relogging into any sensitive apps.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><strong></strong><a href="https://www.tomsguide.com/computing/online-security/5-fast-steps-to-take-immediately-after-a-company-leaks-your-personal-data"><strong>5 fast steps to take immediately after a company leaks your personal data</strong></a></li><li><a href="https://www.tomsguide.com/computing/online-security/3-hidden-macos-security-features-you-need-to-turn-on-right-now"><strong>3 hidden macOS security features you need to turn on right now</strong></a></li><li><strong></strong><a href="https://www.tomsguide.com/computing/antivirus/does-antivirus-slow-down-your-pc"><strong>Does antivirus software still slow down your PC in 2026? We tested the top security software to find out</strong></a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/malware-adware/7-warning-signs-your-android-phone-or-iphone-has-malware</link>
                                                                            <description>
                            <![CDATA[ Is your smartphone acting strange? Here are some telltale signs that you might’ve been exposed to malware. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">VuYdzeWzyRae4N9cDutmTP</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/cwRFzENi5HprPyLvazNizd-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Mon, 19 Oct 2026 09:00:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Malware & Adware]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Internet]]></category>
                                                    <category><![CDATA[Online Security]]></category>
                                                                                                                    <dc:creator><![CDATA[ Rami Tabari ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/Du7gwfP2FPAQuuhcMnakHf-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/cwRFzENi5HprPyLvazNizd-1920-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A person holding a phone with a malware warning on screen]]></media:description>                                                            <media:text><![CDATA[A person holding a phone with a malware warning on screen]]></media:text>
                                <media:title type="plain"><![CDATA[A person holding a phone with a malware warning on screen]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/cwRFzENi5HprPyLvazNizd-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Whether you missclicked or downloaded the wrong file, malware can infect your Android device or iPhone and you might not have even noticed. There are some signs that are completely obvious, but others are a little more discreet and take some snooping around to suss out. </p><p>Here are some warning signs that you might have an unwanted guest on your smartphone.</p><h2 id="pop-up-ads">Pop-up ads</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1000px;"><p class="vanilla-image-block" style="padding-top:57.30%;"><img id="tLHcWev96obw6homU7wv9K" name="smartphone-shock4-shst.jpg" alt="Dark-haired woman looking at smartphone screen in shock." src="https://cdn.mos.cms.futurecdn.net/tLHcWev96obw6homU7wv9K-1920-80.jpg" mos="" align="middle" fullscreen="" width="1000" height="573" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: fizkes/Shutterstock)</span></figcaption></figure><p>Advertisements spamming your phone, especially outside of an app, is a dead giveaway. Don’t ignore the problem, even if you’re a fan of <em>Neon Genesis Evangelion</em> who really appreciates seeing “CONGRATULATIONS” spread across their screen.</p><h2 id="new-apps">New apps</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.20%;"><img id="QN2HNhCkPpUY63qpwesSwP" name="delete-apps-a.jpeg" alt="How to delete apps on an iPhone" src="https://cdn.mos.cms.futurecdn.net/QN2HNhCkPpUY63qpwesSwP-1920-80.jpeg" mos="" align="middle" fullscreen="" width="2000" height="1124" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>If your phone is packing a ridiculous number of applications like mine, then you might not notice when a new app creeps into your system. For both the sake of spotting malware and cleaning up your library of unused apps, it's worth taking the time to <a href="https://www.tomsguide.com/news/older-apps-could-be-putting-your-smartphone-at-risk-heres-why">audit your current apps</a>.</p><h2 id="shorter-battery-life">Shorter battery life</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="rwgm52Uz2NwV9UfhqRdYcG" name="low battery 3.jpg" alt="A person in a coffee shop holding a phone displaying the low battery symbol" src="https://cdn.mos.cms.futurecdn.net/rwgm52Uz2NwV9UfhqRdYcG-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Getty Images)</span></figcaption></figure><p>Malware does a lot in the background to wreak havoc on your device, and that takes power. So one of the telltale signs of malware infecting your device is if you experience shorter battery life. Battery life can vary, especially as a phone ages, so I recommend looking up the average battery life for your device to see if there's an obvious discrepancy.</p><h2 id="performance-issues">Performance issues</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5335px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="n26b6mgXGma49crWHdPqRJ" name="Irritation.jpg" alt="Man looking frustrated at his smartphone while sitting on a couch" src="https://cdn.mos.cms.futurecdn.net/n26b6mgXGma49crWHdPqRJ-1920-80.jpg" mos="" align="middle" fullscreen="" width="5335" height="3001" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Got a brand new phone and all of a sudden everything slows down to a crawl? Are apps randomly crashing on you? This is another sign that malware may have crept onto your device. This may be more difficult to spot on phones already experiencing slower performance, so keep an eye out for other signs if that’s the case.</p><h2 id="overheating">Overheating</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5442px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="QWukPddzqa59Pmt6TYGGoJ" name="woman at beach holding phone" alt="woman at beach holding phone" src="https://cdn.mos.cms.futurecdn.net/QWukPddzqa59Pmt6TYGGoJ-1920-80.jpg" mos="" align="middle" fullscreen="" width="5442" height="3061" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Credit: Oscar Wong/Getty)</span></figcaption></figure><p>Unless you still have a Samsung Galaxy Note 7 hanging around, which you shouldn't, your device should not be scorching your hand. If your smartphone is spamming you with overheating warnings or is straight up crashing, especially in temperate environments, there might be a virus giving your phone a fever (my dad joke for the day).</p><h2 id="abnormal-data-usage">Abnormal data usage</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4030px;"><p class="vanilla-image-block" style="padding-top:57.87%;"><img id="xMPGeG7xLEP7j8fWxskCoS" name="iPhone 14 Pro Max speed test 2.jpg" alt="iPhone 14 Pro Max speed test app" src="https://cdn.mos.cms.futurecdn.net/xMPGeG7xLEP7j8fWxskCoS-1920-80.jpg" mos="" align="middle" fullscreen="" width="4030" height="2332" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Unless you have a limited data plan and are remaining vigilant about your usage, it’s unlikely you’ll notice malware taking up all your data. Unlimited data users who have never checked their data metrics need to be more alert. It doesn’t hurt to check your data usage every once in a while, if not to see what apps you’re maybe spending a little too much time on.</p><h2 id="your-contacts-get-spam">Your contacts get spam</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1526px;"><p class="vanilla-image-block" style="padding-top:56.29%;"><img id="pdgMsdqQhFmPcrFWFJF9xg" name="texting" alt="Using smartphone" src="https://cdn.mos.cms.futurecdn.net/pdgMsdqQhFmPcrFWFJF9xg-1920-80.png" mos="" align="middle" fullscreen="" width="1526" height="859" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>The most embarrassing and frustrating sign of malware is all your friends and family getting hit with <a href="https://www.tomsguide.com/how-to/how-to-block-and-report-spam-text-messages">spam messages</a> that can potentially affect <em>their</em> devices. You’ll likely hear about this sooner than later, but as someone who doesn’t actually use SMS to contact people, it doesn’t hurt to check your default messaging app. Hopefully your contacts know what you sound like versus a spam bot imitating you, but the sooner you alert people the better.</p><h2 id="what-you-can-do">What you can do</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5000px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="r7Spa4g9ekv8KJBVn87JMb" name="smartphone malware android.jpg" alt="mobile, malware" src="https://cdn.mos.cms.futurecdn.net/r7Spa4g9ekv8KJBVn87JMb-1920-80.jpg" mos="" align="middle" fullscreen="" width="5000" height="2813" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>If you’re still not 100% certain whether or not your device is carrying around malware, there’s a few things you can do.</p><p>For iPhone users, navigate to <strong>Settings > General > VPN &amp; Device Management</strong> to check if any unknown profiles are installed. If you don’t find anything here, go to <strong>Settings > Privacy &amp; Security</strong> and check on your app permissions. This might be a bit tedious, but you should do a step by step inventory of app permissions and revoke access to apps that you aren't using, and delete ones that you don’t recognize.</p><p>For Android users, go to <strong>Google Play > tap your profile picture</strong> <strong>> Play Protect</strong>. This will scan your device for any harmful apps. It typically runs automatically, but it doesn’t hurt to do a manual check.</p><p>If you don’t find anything going down these routes, Android users can download one of the <a href="https://www.tomsguide.com/best-picks/best-android-antivirus">best Android antivirus software</a> solutions, which can not only help locate malware but also delete it. Unfortunately, iPhone users don’t have access to traditional antivirus software because of how Apple sandboxes each app, but you can download security apps that can detect data breaches.</p><p>If you can’t manage to track down the issue, then resetting your device to factory settings may be the next step. In this case, you should set up your smartphone as a new device, as any backups can bring with it the malware that infected the system to begin with. Then reintroduce apps and services one by one to see if the issue continues, and if it happens again, you’ll know where the call inside the house is coming from and you can get rid of it — it could be something as simple as a browser extension.</p><p>I highly recommend <a href="https://www.tomsguide.com/opinion/im-a-security-editor-and-this-is-how-i-create-strong-passwords-that-are-also-easy-to-remember">changing passwords</a> on critical services, like banking apps, using a <em>different</em> device. Monitor your smartphone for a while to see if the issue has been addressed before relogging into any sensitive apps.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><strong></strong><a href="https://www.tomsguide.com/computing/online-security/5-fast-steps-to-take-immediately-after-a-company-leaks-your-personal-data"><strong>5 fast steps to take immediately after a company leaks your personal data</strong></a></li><li><a href="https://www.tomsguide.com/computing/online-security/3-hidden-macos-security-features-you-need-to-turn-on-right-now"><strong>3 hidden macOS security features you need to turn on right now</strong></a></li><li><strong></strong><a href="https://www.tomsguide.com/computing/antivirus/does-antivirus-slow-down-your-pc"><strong>Does antivirus software still slow down your PC in 2026? We tested the top security software to find out</strong></a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ 5 fast steps to take immediately after a company leaks your personal data ]]></title>
                                                                                                <dc:content><![CDATA[ <p>No matter how diligent you are about privacy and security, there’s nothing stopping a company from leaking your personal data and leaving you exposed to malicious actors. You have to act quickly when there’s a <a href="https://www.tomsguide.com/computing/online-security/over-150-million-drivers-licenses-stolen-in-massive-data-breach-after-hackers-reportedly-hit-major-identity-verification-company-what-to-do-now">data breach</a>, especially if it’s a serious one.</p><p>In 2025 alone, the Federal Trade Commission (FTC) reported fraud and identity theft losses of over <a href="https://www.experian.com/blogs/ask-experian/identity-theft-statistics/" target="_blank">$15.8 billion</a>. Leaks in your personal data can be a slippery slope, so here are the steps you should take to address them.</p><h2 id="assess-the-leak">Assess the leak</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5616px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="hMR4ZwTSEybqhZLtxQ5qj8" name="shutterstock_1173702388.jpg" alt="A shocked couple realizing they've been scammed" src="https://cdn.mos.cms.futurecdn.net/hMR4ZwTSEybqhZLtxQ5qj8-1920-80.jpg" mos="" align="middle" fullscreen="" width="5616" height="3159" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Don’t panic. Take a deep breath. The first thing you need to do above all else is identify what information has been breached exactly. This could be anything as simple as an email address or as serious as a <a href="https://www.tomsguide.com/computing/identity-theft-protection/you-can-lock-your-social-security-number-for-free-heres-how-to-do-it">Social Security number</a>. </p><p>If it’s the former, it’s likely all you’ll be a victim to is a litany of scam emails, in which case you’ll need to be more scrupulous while looking through your inbox. But if it’s something more than that, you should continue on to the next steps.</p><h2 id="change-your-passwords-and-activate-mfa">Change your passwords and activate MFA</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="7iaq4Tt8CWUptBtxirNXgR" name="shutterstock_1505705657-2.jpg" alt="A person entering their password on a smartphone in a crowded location" src="https://cdn.mos.cms.futurecdn.net/7iaq4Tt8CWUptBtxirNXgR-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Account information like passwords are among the most common leaks, and while it should go without saying that you should <a href="https://www.tomsguide.com/phones/iphones/ios-27s-new-ai-feature-will-automatically-fix-your-weak-passwords-how-to-set-it-up">change your passwords</a>, you need to take some additional steps to maintain your security.</p><p>First, you should use a unique password for every account that you have, so that multiple accounts aren’t at risk because of one breach. You can achieve that more easily with a strong password manager. Second, you need to enable two-factor authentication (2FA) or multifactor authentication (MFA) if it’s available on that account. This’ll add another layer of security so even if your passwords were leaked, hackers shouldn’t be able to access your account.</p><h2 id="contact-your-bank-and-credit-card-companies">Contact your bank and credit card companies</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="FkDGmmjeQVkvZ6agi6D2MH" name="TG_Credit-card-debt_2.jpg" alt="Man holding credit card" src="https://cdn.mos.cms.futurecdn.net/FkDGmmjeQVkvZ6agi6D2MH-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>If your banking and credit card credentials have been leaked, immediately contact your financial institutions. In the most ideal scenario, acquire a new banking account or credit card number. If that’s not possible, however, you should be able to place a <a href="https://www.tomsguide.com/what-is-a-data-breach-notification-letter">fraud alert</a> on your accounts. </p><p>Going forward, you should keep a close eye on your accounts, even in the coming year. If your information is out there, it could be abused at any time, not necessarily immediately.</p><h2 id="freeze-your-credit">Freeze your credit</h2><p>In the event of a serious breach, specifically one where your social security number is leaked, you need to freeze your credit immediately. This will stop anyone from trying to take out a loan or a new credit card in your name. </p><p>You’ll need to contact the three credit bureaus individually — that’s <a href="https://www.equifax.com/personal/credit-report-services/credit-freeze/" target="_blank">Equifax Credit</a>, <a href="https://www.experian.com/freeze/center.html" target="_blank">Experian Credit</a>, and <a href="https://www.transunion.com/credit-freeze" target="_blank">TransUnion Credit</a>. Freezing your credit is free and you can lift the freeze whenever you want. However, unless you get a new social security number, which is very difficult to do, you should keep the freeze on your credit and only temporarily lift it when you need to apply for new credit, like a mortgage. There are also credit checks that you might need to undergo for an employer or landlord, which could require a temporary lift.</p><h2 id="report-identity-theft">Report identity theft</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3220px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="3Z3Wti6A7WPFu3GSjmXoDd" name="shutterstock_48106810.jpg" alt="Hacker using a stolen social security card" src="https://cdn.mos.cms.futurecdn.net/3Z3Wti6A7WPFu3GSjmXoDd-1920-80.jpg" mos="" align="middle" fullscreen="" width="3220" height="1811" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Blazej Lyjak/Shutterstock)</span></figcaption></figure><p>In the absolute worst case scenario, where all your vital personal information is leaked, someone may attempt to steal your identity. Unfortunately, <a href="https://www.tomsguide.com/opinion/i-review-id-protection-services-and-these-10-things-help-me-secure-my-identity-online">identity theft</a> could get bad very quickly, especially if said perpetrator is committing crimes under your name. </p><p>If you believe you’re a victim of identity theft, you need to go to <a href="https://identitytheft.gov/" target="_blank">IdentityTheft.gov</a> and file a report with the FTC. From there, follow the steps it lays out for you to get this under control.</p><h2 id="bottom-line-4">Bottom line</h2><p>Once your information is out in the open, there's no taking it back. But inaction could lead to some serious repercussions. Once you've dealt with your current breach, do yourself a favor and take the time to secure accounts with other companies. Things like setting up unique passwords and enabling 2FA or MFA will save you some trouble down the road.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/online-security/3-hidden-macos-security-features-you-need-to-turn-on-right-now"><strong>3 hidden macOS security features you need to turn on right now</strong></a></li><li><strong></strong><a href="https://www.tomsguide.com/computing/antivirus/does-antivirus-slow-down-your-pc"><strong>Does antivirus software still slow down your PC in 2026? We tested the top security software to find out</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/computing/online-security/ai-scams-are-getting-scary-realistic-4-red-flags-to-watch-out-for"><strong>AI scams are getting scary realistic — 4 red flags to watch out for</strong></a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/online-security/5-fast-steps-to-take-immediately-after-a-company-leaks-your-personal-data</link>
                                                                            <description>
                            <![CDATA[ If a company just leaked your personal data, you need to act quickly before things spiral. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">qdVHW8DjrxcK6bdPepCEWY</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/pC3TgK4ow5FhpQkFxGfCS5-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 16 Oct 2026 09:15:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Online Security]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Internet]]></category>
                                                                                                                    <dc:creator><![CDATA[ Rami Tabari ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/Du7gwfP2FPAQuuhcMnakHf-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/pC3TgK4ow5FhpQkFxGfCS5-1920-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[An open lock depicting a data breach]]></media:description>                                                            <media:text><![CDATA[An open lock depicting a data breach]]></media:text>
                                <media:title type="plain"><![CDATA[An open lock depicting a data breach]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/pC3TgK4ow5FhpQkFxGfCS5-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>No matter how diligent you are about privacy and security, there’s nothing stopping a company from leaking your personal data and leaving you exposed to malicious actors. You have to act quickly when there’s a <a href="https://www.tomsguide.com/computing/online-security/over-150-million-drivers-licenses-stolen-in-massive-data-breach-after-hackers-reportedly-hit-major-identity-verification-company-what-to-do-now">data breach</a>, especially if it’s a serious one.</p><p>In 2025 alone, the Federal Trade Commission (FTC) reported fraud and identity theft losses of over <a href="https://www.experian.com/blogs/ask-experian/identity-theft-statistics/" target="_blank">$15.8 billion</a>. Leaks in your personal data can be a slippery slope, so here are the steps you should take to address them.</p><h2 id="assess-the-leak">Assess the leak</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5616px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="hMR4ZwTSEybqhZLtxQ5qj8" name="shutterstock_1173702388.jpg" alt="A shocked couple realizing they've been scammed" src="https://cdn.mos.cms.futurecdn.net/hMR4ZwTSEybqhZLtxQ5qj8-1920-80.jpg" mos="" align="middle" fullscreen="" width="5616" height="3159" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Don’t panic. Take a deep breath. The first thing you need to do above all else is identify what information has been breached exactly. This could be anything as simple as an email address or as serious as a <a href="https://www.tomsguide.com/computing/identity-theft-protection/you-can-lock-your-social-security-number-for-free-heres-how-to-do-it">Social Security number</a>. </p><p>If it’s the former, it’s likely all you’ll be a victim to is a litany of scam emails, in which case you’ll need to be more scrupulous while looking through your inbox. But if it’s something more than that, you should continue on to the next steps.</p><h2 id="change-your-passwords-and-activate-mfa">Change your passwords and activate MFA</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="7iaq4Tt8CWUptBtxirNXgR" name="shutterstock_1505705657-2.jpg" alt="A person entering their password on a smartphone in a crowded location" src="https://cdn.mos.cms.futurecdn.net/7iaq4Tt8CWUptBtxirNXgR-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Account information like passwords are among the most common leaks, and while it should go without saying that you should <a href="https://www.tomsguide.com/phones/iphones/ios-27s-new-ai-feature-will-automatically-fix-your-weak-passwords-how-to-set-it-up">change your passwords</a>, you need to take some additional steps to maintain your security.</p><p>First, you should use a unique password for every account that you have, so that multiple accounts aren’t at risk because of one breach. You can achieve that more easily with a strong password manager. Second, you need to enable two-factor authentication (2FA) or multifactor authentication (MFA) if it’s available on that account. This’ll add another layer of security so even if your passwords were leaked, hackers shouldn’t be able to access your account.</p><h2 id="contact-your-bank-and-credit-card-companies">Contact your bank and credit card companies</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="FkDGmmjeQVkvZ6agi6D2MH" name="TG_Credit-card-debt_2.jpg" alt="Man holding credit card" src="https://cdn.mos.cms.futurecdn.net/FkDGmmjeQVkvZ6agi6D2MH-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>If your banking and credit card credentials have been leaked, immediately contact your financial institutions. In the most ideal scenario, acquire a new banking account or credit card number. If that’s not possible, however, you should be able to place a <a href="https://www.tomsguide.com/what-is-a-data-breach-notification-letter">fraud alert</a> on your accounts. </p><p>Going forward, you should keep a close eye on your accounts, even in the coming year. If your information is out there, it could be abused at any time, not necessarily immediately.</p><h2 id="freeze-your-credit">Freeze your credit</h2><p>In the event of a serious breach, specifically one where your social security number is leaked, you need to freeze your credit immediately. This will stop anyone from trying to take out a loan or a new credit card in your name. </p><p>You’ll need to contact the three credit bureaus individually — that’s <a href="https://www.equifax.com/personal/credit-report-services/credit-freeze/" target="_blank">Equifax Credit</a>, <a href="https://www.experian.com/freeze/center.html" target="_blank">Experian Credit</a>, and <a href="https://www.transunion.com/credit-freeze" target="_blank">TransUnion Credit</a>. Freezing your credit is free and you can lift the freeze whenever you want. However, unless you get a new social security number, which is very difficult to do, you should keep the freeze on your credit and only temporarily lift it when you need to apply for new credit, like a mortgage. There are also credit checks that you might need to undergo for an employer or landlord, which could require a temporary lift.</p><h2 id="report-identity-theft">Report identity theft</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3220px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="3Z3Wti6A7WPFu3GSjmXoDd" name="shutterstock_48106810.jpg" alt="Hacker using a stolen social security card" src="https://cdn.mos.cms.futurecdn.net/3Z3Wti6A7WPFu3GSjmXoDd-1920-80.jpg" mos="" align="middle" fullscreen="" width="3220" height="1811" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Blazej Lyjak/Shutterstock)</span></figcaption></figure><p>In the absolute worst case scenario, where all your vital personal information is leaked, someone may attempt to steal your identity. Unfortunately, <a href="https://www.tomsguide.com/opinion/i-review-id-protection-services-and-these-10-things-help-me-secure-my-identity-online">identity theft</a> could get bad very quickly, especially if said perpetrator is committing crimes under your name. </p><p>If you believe you’re a victim of identity theft, you need to go to <a href="https://identitytheft.gov/" target="_blank">IdentityTheft.gov</a> and file a report with the FTC. From there, follow the steps it lays out for you to get this under control.</p><h2 id="bottom-line-4">Bottom line</h2><p>Once your information is out in the open, there's no taking it back. But inaction could lead to some serious repercussions. Once you've dealt with your current breach, do yourself a favor and take the time to secure accounts with other companies. Things like setting up unique passwords and enabling 2FA or MFA will save you some trouble down the road.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/online-security/3-hidden-macos-security-features-you-need-to-turn-on-right-now"><strong>3 hidden macOS security features you need to turn on right now</strong></a></li><li><strong></strong><a href="https://www.tomsguide.com/computing/antivirus/does-antivirus-slow-down-your-pc"><strong>Does antivirus software still slow down your PC in 2026? We tested the top security software to find out</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/computing/online-security/ai-scams-are-getting-scary-realistic-4-red-flags-to-watch-out-for"><strong>AI scams are getting scary realistic — 4 red flags to watch out for</strong></a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Surfshark goes early with its Black Friday VPN deal – get free antivirus with unlimited VPN usage ]]></title>
                                                                                                <dc:content><![CDATA[ <p>We're starting to see some <a href="https://www.tomsguide.com/best-picks/vpn-black-friday-deals">Black Friday VPN deals</a> arrive, and this one is worth stopping for. Surfshark has just dropped an exclusive offer for Tom’s Guide and TechRadar readers, and it’s the strongest pricing I’ve seen on Surfshark One all year.</p><p>The deal gives you Surfshark One – which bundles the full VPN with antivirus, data breach alerts, and a private search engine – for the same monthly rate as the basic Starter plan: <a href="http://get.surfshark.net/aff_c?offer_id=1030&amp;aff_id=1691" target="_blank" rel="nofollow"><strong>$2.49 a month</strong></a>, paid upfront at $67.23 for two years. That’s a genuine upgrade at no extra cost, and a price you won’t find if you head to Surfshark’s own site directly.</p><p>If Surfshark has been sitting on your shortlist of <a href="https://www.tomsguide.com/best-picks/best-vpn">best VPNs</a>, this limited-time offer makes it a much easier decision.</p><div class="product"><a data-dimension112="375cfb40-c874-11f1-bfb0-f15a41a669b4" data-action="Deal Block" data-label="Surfshark One | $2.49 per month | 2 Years + 3 months FREEWe rate Surfshark as the best value VPN on the market &amp;ndash; fast, private, and packed with security tools that most providers charge separately for. This exclusive deal on Surfshark's One makes it an even easier recommendation.What you'll get...&#128737;&#65039; Full VPN with unlimited simultaneous connections&#128274; Avira-backed antivirus included &#128269; Private search and data breach alerts&#128203; 30-day money-back guaranteeA 24-month plan costs $2.49 per month ($67.23 upfront pre-tax) and includes a 30-day money-back guarantee so you can test it out risk-free. Surfshark One | $2.49 per month | 2 Years + 3 months FREE" data-dimension48="Surfshark One | $2.49 per month | 2 Years + 3 months FREEWe rate Surfshark as the best value VPN on the market &amp;ndash; fast, private, and packed with security tools that most providers charge separately for. This exclusive deal on Surfshark's One makes it an even easier recommendation.What you'll get...&#128737;&#65039; Full VPN with unlimited simultaneous connections&#128274; Avira-backed antivirus included &#128269; Private search and data breach alerts&#128203; 30-day money-back guaranteeA 24-month plan costs $2.49 per month ($67.23 upfront pre-tax) and includes a 30-day money-back guarantee so you can test it out risk-free. Surfshark One | $2.49 per month | 2 Years + 3 months FREE" href="https://get.surfshark.net/aff_c?offer_id=1030&amp;aff_id=1691" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:600px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="x4SGepskASoVFVWSk3UDYV" name="Surfshark square deal block" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/x4SGepskASoVFVWSk3UDYV-1920-80.jpg" mos="" align="middle" fullscreen="" width="600" height="600" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong></strong><a href="https://get.surfshark.net/aff_c?offer_id=1030&amp;aff_id=1691" target="_blank" rel="nofollow" data-dimension112="375cfb40-c874-11f1-bfb0-f15a41a669b4" data-action="Deal Block" data-label="Surfshark One | $2.49 per month | 2 Years + 3 months FREEWe rate Surfshark as the best value VPN on the market &amp;ndash; fast, private, and packed with security tools that most providers charge separately for. This exclusive deal on Surfshark's One makes it an even easier recommendation.What you'll get...&#128737;&#65039; Full VPN with unlimited simultaneous connections&#128274; Avira-backed antivirus included &#128269; Private search and data breach alerts&#128203; 30-day money-back guaranteeA 24-month plan costs $2.49 per month ($67.23 upfront pre-tax) and includes a 30-day money-back guarantee so you can test it out risk-free. Surfshark One | $2.49 per month | 2 Years + 3 months FREE" data-dimension48="Surfshark One | $2.49 per month | 2 Years + 3 months FREEWe rate Surfshark as the best value VPN on the market &amp;ndash; fast, private, and packed with security tools that most providers charge separately for. This exclusive deal on Surfshark's One makes it an even easier recommendation.What you'll get...&#128737;&#65039; Full VPN with unlimited simultaneous connections&#128274; Avira-backed antivirus included &#128269; Private search and data breach alerts&#128203; 30-day money-back guaranteeA 24-month plan costs $2.49 per month ($67.23 upfront pre-tax) and includes a 30-day money-back guarantee so you can test it out risk-free. Surfshark One | $2.49 per month | 2 Years + 3 months FREE" data-dimension25=""><strong>Surfshark One | $2.49 per month | 2 Years + 3 months FREE</strong></a><br />We rate Surfshark as the best value VPN on the market – fast, private, and packed with security tools that most providers charge separately for. This exclusive deal on Surfshark's One makes it an even easier recommendation.</p><p><strong>What you'll get...</strong></p><p>🛡️ <strong>Full VPN with unlimited simultaneous connections</strong><br /><strong>🔒 Avira-backed antivirus included </strong><br />🔍<strong> Private search and data breach alerts</strong><br />📋<strong> 30-day money-back guarantee</strong></p><p>A 24-month plan costs<a href="https://get.surfshark.net/aff_c?offer_id=1030&amp;aff_id=1691" target="_blank" rel="nofollow"> <strong>$2.49 per month</strong></a> ($67.23 upfront pre-tax) and includes a 30-day money-back guarantee so you can test it out risk-free.<a class="view-deal button" href="https://get.surfshark.net/aff_c?offer_id=1030&amp;aff_id=1691" target="_blank" rel="nofollow" data-dimension112="375cfb40-c874-11f1-bfb0-f15a41a669b4" data-action="Deal Block" data-label="Surfshark One | $2.49 per month | 2 Years + 3 months FREEWe rate Surfshark as the best value VPN on the market &amp;ndash; fast, private, and packed with security tools that most providers charge separately for. This exclusive deal on Surfshark's One makes it an even easier recommendation.What you'll get...&#128737;&#65039; Full VPN with unlimited simultaneous connections&#128274; Avira-backed antivirus included &#128269; Private search and data breach alerts&#128203; 30-day money-back guaranteeA 24-month plan costs $2.49 per month ($67.23 upfront pre-tax) and includes a 30-day money-back guarantee so you can test it out risk-free. Surfshark One | $2.49 per month | 2 Years + 3 months FREE" data-dimension48="Surfshark One | $2.49 per month | 2 Years + 3 months FREEWe rate Surfshark as the best value VPN on the market &amp;ndash; fast, private, and packed with security tools that most providers charge separately for. This exclusive deal on Surfshark's One makes it an even easier recommendation.What you'll get...&#128737;&#65039; Full VPN with unlimited simultaneous connections&#128274; Avira-backed antivirus included &#128269; Private search and data breach alerts&#128203; 30-day money-back guaranteeA 24-month plan costs $2.49 per month ($67.23 upfront pre-tax) and includes a 30-day money-back guarantee so you can test it out risk-free. Surfshark One | $2.49 per month | 2 Years + 3 months FREE" data-dimension25="">View Deal</a></p></div><h2 id="the-deals-at-a-glance">The deals at a glance</h2><p>Surfshark structures its plans in three tiers, each building on the last. The core VPN, Alternative ID, and CleanWeb come with every plan, as do unlimited simultaneous connections.</p><ul><li><strong>Surfshark Starter</strong> –<a href="https://get.surfshark.net/aff_c?offer_id=1030&amp;aff_id=1691" target="_blank" rel="nofollow"> $2.49 per month</a> (VPN, Alt ID, CleanWeb)</li><li><strong>Surfshark One</strong> – <a href="https://get.surfshark.net/aff_c?offer_id=1030&amp;aff_id=1691" target="_blank" rel="nofollow"><strong>$2.49 per month</strong></a> (exclusive rate – adds Antivirus, Alert, and private search)</li><li><strong>Surfshark One+</strong> –<a href="https://get.surfshark.net/aff_c?offer_id=1030&amp;aff_id=1691" target="_blank" rel="nofollow"> $4.49 per month</a> (adds Incogni data removal and up to $1M identity theft coverage)</li></ul><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ggQQBZzkyf4Bqi7adXcWaS" name="DSC_0632_01.jpg" alt="Surfshark on a Macbook Pro" src="https://cdn.mos.cms.futurecdn.net/ggQQBZzkyf4Bqi7adXcWaS-1920-80.jpg" mos="" align="middle" fullscreen="" width="1280" height="720" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><h2 id="how-does-surfshark-compare-to-other-vpns">How does Surfshark compare to other VPNs?</h2><p>Surfshark sits in a crowded field, but it holds its own against the biggest names in the industry – and in some areas, it outright beats them. Take speed: in my testing, Surfshark hit 1,012 Mbps on WireGuard, which puts it comfortably in the top tier of providers I’ve benchmarked. For most users, that’s more than enough headroom for 4K streaming, gaming, and large downloads without a hint of lag.</p><p>The unlimited simultaneous connections policy is where Surfshark leaves most rivals behind. NordVPN caps you at ten devices, ExpressVPN at a maximum of 14 – Surfshark lets you run it on every device you own under one subscription for<strong> </strong><a href="https://get.surfshark.net/aff_c?offer_id=1030&amp;aff_id=1691" target="_blank" rel="nofollow"><strong>$2.49 per month</strong></a>, which matters far more in practice than most people expect when they first sign up.</p><p>The value case gets stronger still when you factor in what’s bundled at this price. Antivirus, data breach monitoring, and private search would cost extra with most rivals – here, they’re included in the One plan at no added cost. If you’re after something cheaper still, our<a href="https://www.tomsguide.com/best-picks/best-cheap-vpn"> best cheap VPN</a> guide is worth a look, but it’s hard to argue with what Surfshark One delivers at $2.49 a month. Our full<a href="https://www.tomsguide.com/reviews/surfshark"> Surfshark review</a> has a complete breakdown of everything on offer.</p><div data-widget-type="simple" data-model-name="Surfshark"></div><p>We test and review VPN services in the context of legal recreational uses. For example:1. Accessing a service from another country (subject to the terms and conditions of that service).2. Protecting your online security and strengthening your online privacy when abroad.We do not support or condone the illegal or malicious use of VPN services. Consuming pirated content that is paid-for is neither endorsed nor approved by Future Publishing.</p> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/vpns/surfshark-goes-early-with-its-black-friday-vpn-deal-get-free-antivirus-with-unlimited-vpn-usage</link>
                                                                            <description>
                            <![CDATA[ For a limited time, Tom’s Guide and TechRadar readers can get Surfshark One for the same price as the basic Starter plan: $2.49 a month, paid upfront at $67.23. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">T5uFcbaZSzgFDQLDXLLdrB</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/kvXtCvmUqP2LX4NZ5oQRQn-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 15 Oct 2026 15:57:17 +0000</pubDate>                                                                                                                                <updated>Thu, 15 Oct 2026 15:57:37 +0000</updated>
                                                                                                                                            <category><![CDATA[VPNs]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Internet]]></category>
                                                                                                                    <dc:creator><![CDATA[ Aleksandar Stevanović ]]></dc:creator>                                                                                                        <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/kvXtCvmUqP2LX4NZ5oQRQn-1920-80.jpg">
                                                            <media:credit><![CDATA[Surfshark]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Surfshark Android app]]></media:description>                                                            <media:text><![CDATA[Surfshark Android app]]></media:text>
                                <media:title type="plain"><![CDATA[Surfshark Android app]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/kvXtCvmUqP2LX4NZ5oQRQn-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>We're starting to see some <a href="https://www.tomsguide.com/best-picks/vpn-black-friday-deals">Black Friday VPN deals</a> arrive, and this one is worth stopping for. Surfshark has just dropped an exclusive offer for Tom’s Guide and TechRadar readers, and it’s the strongest pricing I’ve seen on Surfshark One all year.</p><p>The deal gives you Surfshark One – which bundles the full VPN with antivirus, data breach alerts, and a private search engine – for the same monthly rate as the basic Starter plan: <a href="http://get.surfshark.net/aff_c?offer_id=1030&amp;aff_id=1691" target="_blank" rel="nofollow"><strong>$2.49 a month</strong></a>, paid upfront at $67.23 for two years. That’s a genuine upgrade at no extra cost, and a price you won’t find if you head to Surfshark’s own site directly.</p><p>If Surfshark has been sitting on your shortlist of <a href="https://www.tomsguide.com/best-picks/best-vpn">best VPNs</a>, this limited-time offer makes it a much easier decision.</p><div class="product"><a data-dimension112="375cfb40-c874-11f1-bfb0-f15a41a669b4" data-action="Deal Block" data-label="Surfshark One | $2.49 per month | 2 Years + 3 months FREEWe rate Surfshark as the best value VPN on the market &amp;ndash; fast, private, and packed with security tools that most providers charge separately for. This exclusive deal on Surfshark's One makes it an even easier recommendation.What you'll get...&#128737;&#65039; Full VPN with unlimited simultaneous connections&#128274; Avira-backed antivirus included &#128269; Private search and data breach alerts&#128203; 30-day money-back guaranteeA 24-month plan costs $2.49 per month ($67.23 upfront pre-tax) and includes a 30-day money-back guarantee so you can test it out risk-free. Surfshark One | $2.49 per month | 2 Years + 3 months FREE" data-dimension48="Surfshark One | $2.49 per month | 2 Years + 3 months FREEWe rate Surfshark as the best value VPN on the market &amp;ndash; fast, private, and packed with security tools that most providers charge separately for. This exclusive deal on Surfshark's One makes it an even easier recommendation.What you'll get...&#128737;&#65039; Full VPN with unlimited simultaneous connections&#128274; Avira-backed antivirus included &#128269; Private search and data breach alerts&#128203; 30-day money-back guaranteeA 24-month plan costs $2.49 per month ($67.23 upfront pre-tax) and includes a 30-day money-back guarantee so you can test it out risk-free. Surfshark One | $2.49 per month | 2 Years + 3 months FREE" href="https://get.surfshark.net/aff_c?offer_id=1030&amp;aff_id=1691" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:600px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="x4SGepskASoVFVWSk3UDYV" name="Surfshark square deal block" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/x4SGepskASoVFVWSk3UDYV-1920-80.jpg" mos="" align="middle" fullscreen="" width="600" height="600" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong></strong><a href="https://get.surfshark.net/aff_c?offer_id=1030&amp;aff_id=1691" target="_blank" rel="nofollow" data-dimension112="375cfb40-c874-11f1-bfb0-f15a41a669b4" data-action="Deal Block" data-label="Surfshark One | $2.49 per month | 2 Years + 3 months FREEWe rate Surfshark as the best value VPN on the market &amp;ndash; fast, private, and packed with security tools that most providers charge separately for. This exclusive deal on Surfshark's One makes it an even easier recommendation.What you'll get...&#128737;&#65039; Full VPN with unlimited simultaneous connections&#128274; Avira-backed antivirus included &#128269; Private search and data breach alerts&#128203; 30-day money-back guaranteeA 24-month plan costs $2.49 per month ($67.23 upfront pre-tax) and includes a 30-day money-back guarantee so you can test it out risk-free. Surfshark One | $2.49 per month | 2 Years + 3 months FREE" data-dimension48="Surfshark One | $2.49 per month | 2 Years + 3 months FREEWe rate Surfshark as the best value VPN on the market &amp;ndash; fast, private, and packed with security tools that most providers charge separately for. This exclusive deal on Surfshark's One makes it an even easier recommendation.What you'll get...&#128737;&#65039; Full VPN with unlimited simultaneous connections&#128274; Avira-backed antivirus included &#128269; Private search and data breach alerts&#128203; 30-day money-back guaranteeA 24-month plan costs $2.49 per month ($67.23 upfront pre-tax) and includes a 30-day money-back guarantee so you can test it out risk-free. Surfshark One | $2.49 per month | 2 Years + 3 months FREE" data-dimension25=""><strong>Surfshark One | $2.49 per month | 2 Years + 3 months FREE</strong></a><br />We rate Surfshark as the best value VPN on the market – fast, private, and packed with security tools that most providers charge separately for. This exclusive deal on Surfshark's One makes it an even easier recommendation.</p><p><strong>What you'll get...</strong></p><p>🛡️ <strong>Full VPN with unlimited simultaneous connections</strong><br /><strong>🔒 Avira-backed antivirus included </strong><br />🔍<strong> Private search and data breach alerts</strong><br />📋<strong> 30-day money-back guarantee</strong></p><p>A 24-month plan costs<a href="https://get.surfshark.net/aff_c?offer_id=1030&amp;aff_id=1691" target="_blank" rel="nofollow"> <strong>$2.49 per month</strong></a> ($67.23 upfront pre-tax) and includes a 30-day money-back guarantee so you can test it out risk-free.<a class="view-deal button" href="https://get.surfshark.net/aff_c?offer_id=1030&amp;aff_id=1691" target="_blank" rel="nofollow" data-dimension112="375cfb40-c874-11f1-bfb0-f15a41a669b4" data-action="Deal Block" data-label="Surfshark One | $2.49 per month | 2 Years + 3 months FREEWe rate Surfshark as the best value VPN on the market &amp;ndash; fast, private, and packed with security tools that most providers charge separately for. This exclusive deal on Surfshark's One makes it an even easier recommendation.What you'll get...&#128737;&#65039; Full VPN with unlimited simultaneous connections&#128274; Avira-backed antivirus included &#128269; Private search and data breach alerts&#128203; 30-day money-back guaranteeA 24-month plan costs $2.49 per month ($67.23 upfront pre-tax) and includes a 30-day money-back guarantee so you can test it out risk-free. Surfshark One | $2.49 per month | 2 Years + 3 months FREE" data-dimension48="Surfshark One | $2.49 per month | 2 Years + 3 months FREEWe rate Surfshark as the best value VPN on the market &amp;ndash; fast, private, and packed with security tools that most providers charge separately for. This exclusive deal on Surfshark's One makes it an even easier recommendation.What you'll get...&#128737;&#65039; Full VPN with unlimited simultaneous connections&#128274; Avira-backed antivirus included &#128269; Private search and data breach alerts&#128203; 30-day money-back guaranteeA 24-month plan costs $2.49 per month ($67.23 upfront pre-tax) and includes a 30-day money-back guarantee so you can test it out risk-free. Surfshark One | $2.49 per month | 2 Years + 3 months FREE" data-dimension25="">View Deal</a></p></div><h2 id="the-deals-at-a-glance">The deals at a glance</h2><p>Surfshark structures its plans in three tiers, each building on the last. The core VPN, Alternative ID, and CleanWeb come with every plan, as do unlimited simultaneous connections.</p><ul><li><strong>Surfshark Starter</strong> –<a href="https://get.surfshark.net/aff_c?offer_id=1030&amp;aff_id=1691" target="_blank" rel="nofollow"> $2.49 per month</a> (VPN, Alt ID, CleanWeb)</li><li><strong>Surfshark One</strong> – <a href="https://get.surfshark.net/aff_c?offer_id=1030&amp;aff_id=1691" target="_blank" rel="nofollow"><strong>$2.49 per month</strong></a> (exclusive rate – adds Antivirus, Alert, and private search)</li><li><strong>Surfshark One+</strong> –<a href="https://get.surfshark.net/aff_c?offer_id=1030&amp;aff_id=1691" target="_blank" rel="nofollow"> $4.49 per month</a> (adds Incogni data removal and up to $1M identity theft coverage)</li></ul><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ggQQBZzkyf4Bqi7adXcWaS" name="DSC_0632_01.jpg" alt="Surfshark on a Macbook Pro" src="https://cdn.mos.cms.futurecdn.net/ggQQBZzkyf4Bqi7adXcWaS-1920-80.jpg" mos="" align="middle" fullscreen="" width="1280" height="720" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><h2 id="how-does-surfshark-compare-to-other-vpns">How does Surfshark compare to other VPNs?</h2><p>Surfshark sits in a crowded field, but it holds its own against the biggest names in the industry – and in some areas, it outright beats them. Take speed: in my testing, Surfshark hit 1,012 Mbps on WireGuard, which puts it comfortably in the top tier of providers I’ve benchmarked. For most users, that’s more than enough headroom for 4K streaming, gaming, and large downloads without a hint of lag.</p><p>The unlimited simultaneous connections policy is where Surfshark leaves most rivals behind. NordVPN caps you at ten devices, ExpressVPN at a maximum of 14 – Surfshark lets you run it on every device you own under one subscription for<strong> </strong><a href="https://get.surfshark.net/aff_c?offer_id=1030&amp;aff_id=1691" target="_blank" rel="nofollow"><strong>$2.49 per month</strong></a>, which matters far more in practice than most people expect when they first sign up.</p><p>The value case gets stronger still when you factor in what’s bundled at this price. Antivirus, data breach monitoring, and private search would cost extra with most rivals – here, they’re included in the One plan at no added cost. If you’re after something cheaper still, our<a href="https://www.tomsguide.com/best-picks/best-cheap-vpn"> best cheap VPN</a> guide is worth a look, but it’s hard to argue with what Surfshark One delivers at $2.49 a month. Our full<a href="https://www.tomsguide.com/reviews/surfshark"> Surfshark review</a> has a complete breakdown of everything on offer.</p><div data-widget-type="simple" data-model-name="Surfshark"></div><p>We test and review VPN services in the context of legal recreational uses. For example:1. Accessing a service from another country (subject to the terms and conditions of that service).2. Protecting your online security and strengthening your online privacy when abroad.We do not support or condone the illegal or malicious use of VPN services. Consuming pirated content that is paid-for is neither endorsed nor approved by Future Publishing.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Microsoft just patched a record 1,400+ flaws in latest Windows 11 security update: what you need to know ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Massive Microsoft Patch Tuesday updates have become the norm and October may actually have broken records, fixing over 1,400 vulnerabilities in Windows. This comes just a month after the company released <a href="https://www.tomsguide.com/computing/windows-operating-systems/microsoft-just-patched-over-1-000-flaws-in-windows-but-you-might-want-to-wait-to-update-your-pc-heres-why">patches for more than 1,000 flaws</a>, and then had to send out an emergency patch to fix what those updates broke.</p><p>This week, <a href="https://msrc.microsoft.com/update-guide/releaseNote/2026-Oct" target="_blank">Microsoft shipped patches</a> that covered a mind-boggling 1,413 flaws, including one that the company said was actively being exploited by hackers in the wild before the patch.</p><p>Those patches cover 1,102 flaws in Windows, 134 in Office, 61 in Developer Tools, 36 in SharePoint Server and 22 in SQL Server. 670 of the patches are related to privilege escalation vulnerabilities. And 70 are rated as "Critical" in severity.</p><p>Microsoft's update guide specifically highlighted three notable flaws:</p><ul><li><strong>CVE-2026-96951:</strong> - Windows Shell had a command injection vulnerability that would allow a bad actor to bypass security over a network. This one was apparently actively exploited.</li><li><strong>CVE-2026-108398:</strong>- An untrusted search path in .NET Framework would allow an attacker to bypass a "security feature" locally. This one is listed as publicly disclosed but not exploited.</li><li><strong>CVE-2026-21413:  </strong>This one apparently wasn't found by Microsoft but would allow a buffer overflow of Windows Raw Image Extension to allow attacks to execute code over a network.</li></ul><p>Microsoft credited Riku Bamba and Yuya Chudo of Fujitsu Limited and Benoit Sevens, who used Anthropic's <a href="https://www.tomsguide.com/ai/claude-just-landed-in-google-docs-sheets-and-slides-here-are-7-things-you-should-try-with-it-right-now">Claude</a>, with discovering the 96951 flaw which was exploited in the wild. </p><p>"In an email or instant message attack scenario, the attacker could send the targeted user a specially crafted file that is designed to exploit the vulnerability," the company explained. "In any case an attacker would have no way to force a user to view attacker-controlled content. Instead, an attacker would have to convince a user to take action. For example, an attacker could entice a user to either click a link that directs the user to the attacker's site or send a malicious attachment."</p><p>It's not clear how this flaw is being exploited or by whom in the real world.</p><h2 id="what-39-s-with-these-massive-patches">What's with these massive patches?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2688px;"><p class="vanilla-image-block" style="padding-top:57.14%;"><img id="HUqR5UDqPeCw6FAi2ELtJE" name="ai models" alt="ai models" src="https://cdn.mos.cms.futurecdn.net/HUqR5UDqPeCw6FAi2ELtJE-1920-80.png" mos="" align="middle" fullscreen="" width="2688" height="1536" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Freepik)</span></figcaption></figure><p>When Microsoft patched over 1,000 flaws in September, it set a record that the October patch just smashed. This might be the new normal for Patch Tuesdays moving forward.</p><p>Microsoft has said that AI has been behind the uptick in discovered vulnerabilities. The company uses its own internal "multi-model agentic scanning harness", <a href="https://learn.microsoft.com/en-us/security-exposure-management/ai-code-security-overview" target="_blank">dubbed MDASH</a>, that identifies Windows flaws, reduces false positives, and then sends the results to Microsoft engineers faster than previous processes.</p><p>"Submits code repositories to a multi-model agentic pipeline that identifies vulnerabilities with greater depth than traditional, pattern-matching static analysis," the company explains in a <a href="https://learn.microsoft.com/en-us/security-exposure-management/ai-code-security-overview" target="_blank">post</a>.</p><p>What that means in practice is that more flaws are being actively discovered than ever before and also being patched quicker.</p><h2 id="some-extra-fixes">Some extra fixes</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="fKRE3i2un3ZBQ9ghKznQJY" name="ProArt_PX13_CoPilot_button.jpg" alt="A close-up of the CoPilot+ button on the Asus ProArt PX13's keyboard" src="https://cdn.mos.cms.futurecdn.net/fKRE3i2un3ZBQ9ghKznQJY-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The latest massive patch doesn't just fix over 1,400 vulnerabilities. It also fixes some glitches in File Explorer. You should be able to more easily preview downloaded files in the Preview window. </p><p>Additionally, Bluetooth connections got improved accuracy and stability. </p><p>Finally, the update adds a new setting that lets you <a href="https://www.tomsguide.com/computing/windows-operating-systems/how-to-remap-the-copilot-key-on-windows-11">remap the Copilot Key</a> to whatever you want like making it a right Ctrl button again.</p><h2 id="what-you-need-to-do-3">What you need to do</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:55.95%;"><img id="gcmavBBjRkY4Pq2NFRe6dZ" name="windows-11-widgets.jpeg" alt="windows 11 widgets" src="https://cdn.mos.cms.futurecdn.net/gcmavBBjRkY4Pq2NFRe6dZ-1920-80.jpeg" mos="" align="middle" fullscreen="" width="2000" height="1119" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Microsoft)</span></figcaption></figure><p>If you're on <a href="https://www.tomsguide.com/reviews/windows-11">Windows 11</a>, you'll want to update your system especially to get block the known exploited flaw. </p><p>You can go to Settings and select Windows Update. The patch may be installed already and waiting for your to reboot your computer. </p><p>This patch does end support for Windows 11 version 24H2, so you'll want to make sure you're on version 26H2 now. Microsoft ends support for each version after 24 months.</p><p>Windows 11 23H2 Enterprise and Education editions are also losing support starting November 10. You'll want to encourage your organization to update to the latest version before then.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/laptops/they-are-new-to-the-laptop-market-amd-issues-a-reality-check-to-nvidias-rtx-spark-and-fires-a-warning-shot-at-arm"><strong>'They are new to the laptop market': AMD issues a reality check to Nvidia’s RTX Spark and fires a warning shot at Arm</strong></a></li><li><a href="https://www.tomsguide.com/computing/laptops/microsoft-surface-laptop-ultra-vs-macbook-pro-m5-pro-the-biggest-differences-explained"><strong>Microsoft Surface Laptop Ultra vs. MacBook Pro M5 Pro: The biggest differences explained</strong></a></li><li><a href="https://www.tomsguide.com/computing/laptops/forget-rtx-spark-the-surface-laptop-ultras-magnetic-usb-c-charger-is-a-game-changer-that-makes-apples-magsafe-look-obsolete"><strong>Forget RTX Spark: The Surface Laptop Ultra’s magnetic USB-C charger is a game-changer that makes Apple’s MagSafe look obsolete</strong></a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/malware-adware/microsoft-just-patched-a-record-1-400-flaws-in-latest-windows-11-security-update-what-you-need-to-know</link>
                                                                            <description>
                            <![CDATA[ Microsoft's latest Patch Tuesday fixes cover over 1400 vulnerabilities with more than 70 rated "Critical." ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">KaMYYvAnTeFrJwZdETZGJm</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/5pcMKxwZxLYMWqjD23Q4Jh-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 14 Oct 2026 21:42:22 +0000</pubDate>                                                                                                                                <updated>Wed, 14 Oct 2026 22:31:29 +0000</updated>
                                                                                                                                            <category><![CDATA[Malware & Adware]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Internet]]></category>
                                                    <category><![CDATA[Online Security]]></category>
                                                                                                <author><![CDATA[ scott.younker@futurenet.com (Scott Younker) ]]></author>                    <dc:creator><![CDATA[ Scott Younker ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/RZsUpqcJ6Uj2q83oCUwNhQ-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Scott Younker is the West Coast Reporter at Tom’s Guide. He covers all the latest tech news, including phones, computing and more. He’s been involved in tech since 2011 covering everything from cameras and swimming pool equipment to the latest gaming consoles and smart TVs. He is on a seemingly never ending hunt to build the easiest to use home media system. &lt;/p&gt;&lt;p&gt;Before Tom’s Guide, Scott worked for publications like &lt;em&gt;Digital Trends, Outdoor Photographer, Dead Beats Panel&lt;/em&gt;, and in a brief detour, &lt;em&gt;America’s Funniest Home Videos&lt;/em&gt;. Yes, he has seen more pratfalls, silly pets and ridiculous home movie fails than is reasonably healthy. &lt;/p&gt;&lt;p&gt;When not writing about the latest devices or advances in chipsets, be sure to ask about Scott about disc golf and sustainability, or just if you’re being cheeky, ask about his noodle arm. If you truly want to get nerdy, bring up board games and his ongoing losing streak. &lt;/p&gt;&lt;p&gt;Scott joined Tom&#039;s Guide in 2024 as the West Coast Reporter. He graduated from the School of Journalism at the University of Oregon with a degree in magazine journalism and a minor in communications. While there he blogged or wrote for several magazines including the Fluxx, Ethos and the Oregon Commentator. He briefly wrote and managed a moderately successful blog focused on web comics. &lt;br&gt;Send secure tips on Signal: scyo1.55.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/5pcMKxwZxLYMWqjD23Q4Jh-1920-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock / Edited by Gemini]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A Windows 11 laptop displaying a large warning sign]]></media:description>                                                            <media:text><![CDATA[A Windows 11 laptop displaying a large warning sign]]></media:text>
                                <media:title type="plain"><![CDATA[A Windows 11 laptop displaying a large warning sign]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/5pcMKxwZxLYMWqjD23Q4Jh-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Massive Microsoft Patch Tuesday updates have become the norm and October may actually have broken records, fixing over 1,400 vulnerabilities in Windows. This comes just a month after the company released <a href="https://www.tomsguide.com/computing/windows-operating-systems/microsoft-just-patched-over-1-000-flaws-in-windows-but-you-might-want-to-wait-to-update-your-pc-heres-why">patches for more than 1,000 flaws</a>, and then had to send out an emergency patch to fix what those updates broke.</p><p>This week, <a href="https://msrc.microsoft.com/update-guide/releaseNote/2026-Oct" target="_blank">Microsoft shipped patches</a> that covered a mind-boggling 1,413 flaws, including one that the company said was actively being exploited by hackers in the wild before the patch.</p><p>Those patches cover 1,102 flaws in Windows, 134 in Office, 61 in Developer Tools, 36 in SharePoint Server and 22 in SQL Server. 670 of the patches are related to privilege escalation vulnerabilities. And 70 are rated as "Critical" in severity.</p><p>Microsoft's update guide specifically highlighted three notable flaws:</p><ul><li><strong>CVE-2026-96951:</strong> - Windows Shell had a command injection vulnerability that would allow a bad actor to bypass security over a network. This one was apparently actively exploited.</li><li><strong>CVE-2026-108398:</strong>- An untrusted search path in .NET Framework would allow an attacker to bypass a "security feature" locally. This one is listed as publicly disclosed but not exploited.</li><li><strong>CVE-2026-21413:  </strong>This one apparently wasn't found by Microsoft but would allow a buffer overflow of Windows Raw Image Extension to allow attacks to execute code over a network.</li></ul><p>Microsoft credited Riku Bamba and Yuya Chudo of Fujitsu Limited and Benoit Sevens, who used Anthropic's <a href="https://www.tomsguide.com/ai/claude-just-landed-in-google-docs-sheets-and-slides-here-are-7-things-you-should-try-with-it-right-now">Claude</a>, with discovering the 96951 flaw which was exploited in the wild. </p><p>"In an email or instant message attack scenario, the attacker could send the targeted user a specially crafted file that is designed to exploit the vulnerability," the company explained. "In any case an attacker would have no way to force a user to view attacker-controlled content. Instead, an attacker would have to convince a user to take action. For example, an attacker could entice a user to either click a link that directs the user to the attacker's site or send a malicious attachment."</p><p>It's not clear how this flaw is being exploited or by whom in the real world.</p><h2 id="what-39-s-with-these-massive-patches">What's with these massive patches?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2688px;"><p class="vanilla-image-block" style="padding-top:57.14%;"><img id="HUqR5UDqPeCw6FAi2ELtJE" name="ai models" alt="ai models" src="https://cdn.mos.cms.futurecdn.net/HUqR5UDqPeCw6FAi2ELtJE-1920-80.png" mos="" align="middle" fullscreen="" width="2688" height="1536" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Freepik)</span></figcaption></figure><p>When Microsoft patched over 1,000 flaws in September, it set a record that the October patch just smashed. This might be the new normal for Patch Tuesdays moving forward.</p><p>Microsoft has said that AI has been behind the uptick in discovered vulnerabilities. The company uses its own internal "multi-model agentic scanning harness", <a href="https://learn.microsoft.com/en-us/security-exposure-management/ai-code-security-overview" target="_blank">dubbed MDASH</a>, that identifies Windows flaws, reduces false positives, and then sends the results to Microsoft engineers faster than previous processes.</p><p>"Submits code repositories to a multi-model agentic pipeline that identifies vulnerabilities with greater depth than traditional, pattern-matching static analysis," the company explains in a <a href="https://learn.microsoft.com/en-us/security-exposure-management/ai-code-security-overview" target="_blank">post</a>.</p><p>What that means in practice is that more flaws are being actively discovered than ever before and also being patched quicker.</p><h2 id="some-extra-fixes">Some extra fixes</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="fKRE3i2un3ZBQ9ghKznQJY" name="ProArt_PX13_CoPilot_button.jpg" alt="A close-up of the CoPilot+ button on the Asus ProArt PX13's keyboard" src="https://cdn.mos.cms.futurecdn.net/fKRE3i2un3ZBQ9ghKznQJY-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The latest massive patch doesn't just fix over 1,400 vulnerabilities. It also fixes some glitches in File Explorer. You should be able to more easily preview downloaded files in the Preview window. </p><p>Additionally, Bluetooth connections got improved accuracy and stability. </p><p>Finally, the update adds a new setting that lets you <a href="https://www.tomsguide.com/computing/windows-operating-systems/how-to-remap-the-copilot-key-on-windows-11">remap the Copilot Key</a> to whatever you want like making it a right Ctrl button again.</p><h2 id="what-you-need-to-do-3">What you need to do</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:55.95%;"><img id="gcmavBBjRkY4Pq2NFRe6dZ" name="windows-11-widgets.jpeg" alt="windows 11 widgets" src="https://cdn.mos.cms.futurecdn.net/gcmavBBjRkY4Pq2NFRe6dZ-1920-80.jpeg" mos="" align="middle" fullscreen="" width="2000" height="1119" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Microsoft)</span></figcaption></figure><p>If you're on <a href="https://www.tomsguide.com/reviews/windows-11">Windows 11</a>, you'll want to update your system especially to get block the known exploited flaw. </p><p>You can go to Settings and select Windows Update. The patch may be installed already and waiting for your to reboot your computer. </p><p>This patch does end support for Windows 11 version 24H2, so you'll want to make sure you're on version 26H2 now. Microsoft ends support for each version after 24 months.</p><p>Windows 11 23H2 Enterprise and Education editions are also losing support starting November 10. You'll want to encourage your organization to update to the latest version before then.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/laptops/they-are-new-to-the-laptop-market-amd-issues-a-reality-check-to-nvidias-rtx-spark-and-fires-a-warning-shot-at-arm"><strong>'They are new to the laptop market': AMD issues a reality check to Nvidia’s RTX Spark and fires a warning shot at Arm</strong></a></li><li><a href="https://www.tomsguide.com/computing/laptops/microsoft-surface-laptop-ultra-vs-macbook-pro-m5-pro-the-biggest-differences-explained"><strong>Microsoft Surface Laptop Ultra vs. MacBook Pro M5 Pro: The biggest differences explained</strong></a></li><li><a href="https://www.tomsguide.com/computing/laptops/forget-rtx-spark-the-surface-laptop-ultras-magnetic-usb-c-charger-is-a-game-changer-that-makes-apples-magsafe-look-obsolete"><strong>Forget RTX Spark: The Surface Laptop Ultra’s magnetic USB-C charger is a game-changer that makes Apple’s MagSafe look obsolete</strong></a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ AI researcher warns cyberattacks could take down power, banking and water within a year — here's how to prepare ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Hundreds of supermarkets in France were hit by a cyberattack this week that sent refrigerator temperatures soaring to 122°F, destroying food and reportedly sparking fires. Now, an AI researcher is warning that this could be a preview of something much worse.</p><p><a href="https://x.com/stuhlmueller" target="_blank">Andreas Stuhlmüller</a>, cofounder and CEO of the AI research company <a href="https://elicit.com/">Elicit</a>, says it's plausible that within the next year, <a href="https://www.tomsguide.com/computing/online-security/from-misinformation-to-ai-powered-cyberattacks-the-top-cybersecurity-risks-for-2026">AI-powered cyberrattacks</a> could target the power grid, financial systems, internet infrastructure or water supplies.</p><p>He's not just sounding the alarm. He's recommending that people prepare to get through two weeks of major disruptions, including keeping cash on hand, storing drinking water and investing in backup power and internet access.</p><p>That's a startling recommendation, especially considering that some of the equipment he suggests could cost thousands of dollars. But after watching hackers remotely disable refrigeration systems across hundreds of stores, his warning raises a question worth examining: How vulnerable are the essential services we depend on every day?</p><h2 id="what-happened-in-france">What happened in France</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="high" data-lazy-src="https://www.youtube-nocookie.com/embed/RzKvSCTTc7g" allowfullscreen=""></iframe></div></div><p>The cyberattack that struck French supermarkets overnight on October 11 and 12 affected hundreds of locations belonging to major chains, including Carrefour, Intermarché, Monoprix and Coopérative U.</p><p>Hackers <a href="https://www.bbc.com/news/articles/crq5nzxv9q4yo" target="_blank">reportedly </a>exploited vulnerabilities in internet-connected refrigeration controllers, remotely manipulating defrost cycles and causing temperatures inside some units to climb as high as 122°F.</p><p>The results were immediate. Refrigerated and frozen food spoiled, equipment was damaged and some stores reported fires. French authorities launched an investigation into the attacks, which demonstrated how a security weakness in seemingly ordinary commercial equipment could cause widespread physical damage.</p><p>There's currently no confirmed evidence that AI was involved in the French supermarket attack. However, that's part of what makes Stuhlmüller's warning worth examining. Attackers were able to cause significant disruption using vulnerabilities in equipment that many people probably never realized was connected to the internet.</p><h2 id="why-ai-could-make-cyberattacks-worse">Why AI could make cyberattacks worse</h2><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2110048778942284149"><p lang="en" dir="ltr">I think it's plausible that within a year we'll see AI-based cyberattacks on the power grid, financial system, internet infra, or water. Things like the French supermarket cyberattack but worse. As basic prep I would recommend:Cash: Get a few weeks of spending in cashInternet: Get a Starlink Mini so that you have Internet if local fiber or cell is down (~$150 plus $10/month in standby mode)Power, minimal: Enough to run Starlink Mini and phones (~$1,250)Daily need: about 1 kWh (Starlink Mini 0.7, phones and laptops 0.2; can limit runtime)Battery: 1 kWh LiFePO4, e.g. EcoFlow DELTA 3 PlusSolar: 1x400W folding panel, which refills about 1 kWh on a sunny dayPower, better: Enough to run a fridge, Starlink Mini and phones (~$5,000)Daily need: about 2.5 kWh (fridge 1.5, Starlink Mini 0.7, phones and laptops 0.2)Battery: 4 kWh LiFePO4, e.g. EcoFlow DELTA Pro 3Solar: 3x400W folding panels, which refill about 3 kWh/day in sunGenerator: ~2,500W dual-fuel inverter generator; refills battery in a few hours even if weather is bad; get a few 20 lb propane tanksWater: 14+ gal of water per person for two weeksFood: 2+ weeks of shelf-stable foodComms: Hand-crank NOAA emergency radio<a href="https://twitter.com/cantworkitout/status/2110048778942284149">October 13, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>Cyberattacks against critical infrastructure aren't new. The concern is that now AI systems are becoming more capable to the point that they could make certain attacks faster, cheaper and easier to scale.</p><p>AI tools can already assist with analyzing software, identifying vulnerabilities and automating parts of cybersecurity research. Those same capabilities could potentially help malicious actors find weaknesses across large numbers of connected systems.</p><p>An attacker would probably not need to develop an entirely new type of cyberattack. AI could help speed up the search for poorly secured equipment, analyze unfamiliar software and assist with adapting existing techniques.</p><p>The threat isn't limited to refrigerators, either. Electricity, water treatment, banking and communications all depend on digital systems, although their architectures, security controls and exposure to attackers differ considerably.</p><p>The <a href="https://www.cisa.gov/news-events/cybersecurity-advisories/aa25-239a" target="_blank">Cybersecurity and Infrastructure Security Agency</a> (CISA) has previously warned about state-sponsored attackers compromising telecommunications networks and other important infrastructure.</p><p>Still, Stuhlmüller's one-year timeframe is a prediction, not an established forecast. There is no evidence that an AI-driven attack capable of simultaneously disabling these services is imminent, and compromising one type of internet-connected controller doesn't mean attackers could easily take over an electrical grid or water utility.</p><h2 id="the-emergency-supplies-he-recommends">The emergency supplies he recommends</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="4pRadHeNBRbCPXPcmQeukU" name="united-starlink-network (1)" alt="finding the starlink network during a united airlines flight" src="https://cdn.mos.cms.futurecdn.net/4pRadHeNBRbCPXPcmQeukU-1920-80.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Stuhlmüller's advice is unusually specific. Rather than simply encouraging people to buy emergency supplies, he outlines two levels of backup power, satellite internet and enough basic necessities to get through two weeks.</p><p><strong>Keep cash available.</strong> He recommends having enough physical cash to cover several weeks of expenses in case banking systems, ATMs or electronic payments become unavailable. The amount will depend on household spending, and there's no need to assume every cyberattack would cause a banking outage.</p><p><strong>Consider backup internet access.</strong> He suggests a <a href="https://www.tomsguide.com/tech/starlink-mini-just-launched-in-us-and-its-small-enough-for-a-backpack">Starlink Mini satellite</a> internet system as an alternative if local broadband or cellular networks go down. He estimates a setup costing around $150 with a $10 monthly standby option, although hardware and service pricing should be verified before buying. Satellite internet also requires power, a suitable view of the sky and an operational satellite network.</p><p><strong>Have a way to charge essential devices.</strong> His lower-cost backup power setup includes a 1kWh lithium iron phosphate battery and a 400W folding solar panel, with an estimated total cost of $1,250. The goal is to keep phones, laptops and satellite internet equipment operating during a power outage.</p><p><strong>Prepare for a longer outage.</strong> His more extensive setup, estimated at $5,000, adds a larger battery, three solar panels and a dual-fuel generator. This would potentially support a refrigerator as well as communications equipment, although actual runtime would depend on electricity consumption, weather and battery capacity.</p><p><a href="https://www.tomsguide.com/home/outdoors/i-took-this-portable-solar-generator-on-a-weekend-camping-trip-and-it-was-a-complete-game-changer">Portable generators</a> must never be operated inside a home or garage. <a href="https://www.ready.gov/sites/default/files/2024-07/ready.gov_hurricane_info-sheet.pdf" target="_blank">FEMA advises</a> keeping them outdoors at least 20 feet from doors, windows and other building openings because of the risk of deadly carbon monoxide poisoning.</p><p><strong>Store water and nonperishable food.</strong> Stuhlmüller recommends at least 14 gallons of water per person and enough shelf-stable food for two weeks. For a family of four, that means storing at least 56 gallons of water.</p><p><strong>Keep an emergency radio.</strong> A hand-crank NOAA weather radio could provide important information when phones, cellular networks or home internet connections aren't working. NOAA broadcasts are useful for weather and other emergency alerts, though radio reception and alert coverage vary by location.</p><h2 id="should-you-actually-prepare-for-an-ai-cyberattack">Should you actually prepare for an AI cyberattack?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1000px;"><p class="vanilla-image-block" style="padding-top:56.80%;"><img id="hk5twDXKmeE8Hs2es2Q6UE" name="phone-facepalm-scare-shst.jpg" alt="Young woman reacting in fright to something she sees on her smartphone." src="https://cdn.mos.cms.futurecdn.net/hk5twDXKmeE8Hs2es2Q6UE-1920-80.jpg" mos="" align="middle" fullscreen="" width="1000" height="568" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: pathdoc/Shutterstock)</span></figcaption></figure><p>There's a difference between taking a credible warning seriously and assuming a catastrophic cyberattack is around the corner.</p><p>Stuhlmüller hasn't presented evidence that AI-powered attacks on power, banking, internet and water systems will happen within the next 12 months. And there are significant technical barriers to attacking heavily protected infrastructure, even as AI systems become more capable.</p><p>His preparedness advice, however, isn't exclusively useful for cyberattacks. Severe storms, flooding, prolonged blackouts and other emergencies can interrupt many of the same services.</p><p>The federal government's <a href="https://www.ready.gov/kit" target="_blank">Ready.gov emergency preparedness guidance</a> recommends keeping water, nonperishable food, flashlights, batteries and a battery-powered or hand-crank radio among other basic supplies.</p><p>You also don't need to spend $5,000 on backup equipment to start preparing. A <a href="https://www.tomsguide.com/computing/peripherals/the-power-bank-i-use-every-day-just-hit-its-lowest-price-ever-and-itll-charge-your-laptop">charged power bank</a>, some stored water, medications, flashlights, a small amount of cash and a few days of food are far more realistic starting points for most households.</p><h2 id="bottom-line-5">Bottom line</h2><p>The French supermarket attack offers a troubling example of how vulnerable connected infrastructure can be. Whether AI makes similar incidents substantially more common over the next year remains uncertain.</p><p>But preparing for a disruption doesn't require believing the worst-case prediction. It means making sure that if the power, internet or payment systems suddenly stop working, your household has a plan.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/turn-your-pdfs-into-audiobooks-with-chatgpt-heres-the-simple-trick"><strong>Turn your PDFs into audiobooks with ChatGPT — here's the simple trick</strong></a></li><li><a href="https://www.tomsguide.com/computing/smart-glasses/ive-been-testing-ray-ban-meta-audio-glasses-for-72-hours-and-ditching-the-camera-was-the-absolute-right-call"><strong>I've been testing Ray-Ban Meta Audio glasses for 72 hours and ditching the camera was the absolute right call</strong></a></li><li><a href="https://www.tomsguide.com/ai/character-ai-files-for-bankruptcy-what-happens-to-your-chats-and-ai-companions-now"><strong>Character.AI files for bankruptcy — what happens to your chats and AI companions now?</strong></a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/ai/ai-researcher-warns-cyberattacks-could-take-down-power-banking-and-water-within-a-year-heres-how-to-prepare</link>
                                                                            <description>
                            <![CDATA[ An AI researcher warns that cyberattacks could disrupt power, banking and water within a year. Here's what he recommends keeping at home. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">397Pwn3N5kXSNfbbS7QrCJ</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/7uLqkb8a94q8Ur6ypJctvd-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 14 Oct 2026 14:46:16 +0000</pubDate>                                                                                                                                <updated>Wed, 14 Oct 2026 15:53:36 +0000</updated>
                                                                                                                                            <category><![CDATA[AI]]></category>
                                                    <category><![CDATA[Online Security]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Internet]]></category>
                                                                                                <author><![CDATA[ amanda.caswell@futurenet.com (Amanda Caswell) ]]></author>                    <dc:creator><![CDATA[ Amanda Caswell ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/zYjevim2q7FjQiefqpjZRB-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/7uLqkb8a94q8Ur6ypJctvd-1920-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[An open lock with a digital background and a cross and bones indicating a cyberattack]]></media:description>                                                            <media:text><![CDATA[An open lock with a digital background and a cross and bones indicating a cyberattack]]></media:text>
                                <media:title type="plain"><![CDATA[An open lock with a digital background and a cross and bones indicating a cyberattack]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/7uLqkb8a94q8Ur6ypJctvd-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Hundreds of supermarkets in France were hit by a cyberattack this week that sent refrigerator temperatures soaring to 122°F, destroying food and reportedly sparking fires. Now, an AI researcher is warning that this could be a preview of something much worse.</p><p><a href="https://x.com/stuhlmueller" target="_blank">Andreas Stuhlmüller</a>, cofounder and CEO of the AI research company <a href="https://elicit.com/">Elicit</a>, says it's plausible that within the next year, <a href="https://www.tomsguide.com/computing/online-security/from-misinformation-to-ai-powered-cyberattacks-the-top-cybersecurity-risks-for-2026">AI-powered cyberrattacks</a> could target the power grid, financial systems, internet infrastructure or water supplies.</p><p>He's not just sounding the alarm. He's recommending that people prepare to get through two weeks of major disruptions, including keeping cash on hand, storing drinking water and investing in backup power and internet access.</p><p>That's a startling recommendation, especially considering that some of the equipment he suggests could cost thousands of dollars. But after watching hackers remotely disable refrigeration systems across hundreds of stores, his warning raises a question worth examining: How vulnerable are the essential services we depend on every day?</p><h2 id="what-happened-in-france">What happened in France</h2><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="high" data-lazy-src="https://www.youtube-nocookie.com/embed/RzKvSCTTc7g" allowfullscreen=""></iframe></div></div><p>The cyberattack that struck French supermarkets overnight on October 11 and 12 affected hundreds of locations belonging to major chains, including Carrefour, Intermarché, Monoprix and Coopérative U.</p><p>Hackers <a href="https://www.bbc.com/news/articles/crq5nzxv9q4yo" target="_blank">reportedly </a>exploited vulnerabilities in internet-connected refrigeration controllers, remotely manipulating defrost cycles and causing temperatures inside some units to climb as high as 122°F.</p><p>The results were immediate. Refrigerated and frozen food spoiled, equipment was damaged and some stores reported fires. French authorities launched an investigation into the attacks, which demonstrated how a security weakness in seemingly ordinary commercial equipment could cause widespread physical damage.</p><p>There's currently no confirmed evidence that AI was involved in the French supermarket attack. However, that's part of what makes Stuhlmüller's warning worth examining. Attackers were able to cause significant disruption using vulnerabilities in equipment that many people probably never realized was connected to the internet.</p><h2 id="why-ai-could-make-cyberattacks-worse">Why AI could make cyberattacks worse</h2><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2110048778942284149"><p lang="en" dir="ltr">I think it's plausible that within a year we'll see AI-based cyberattacks on the power grid, financial system, internet infra, or water. Things like the French supermarket cyberattack but worse. As basic prep I would recommend:Cash: Get a few weeks of spending in cashInternet: Get a Starlink Mini so that you have Internet if local fiber or cell is down (~$150 plus $10/month in standby mode)Power, minimal: Enough to run Starlink Mini and phones (~$1,250)Daily need: about 1 kWh (Starlink Mini 0.7, phones and laptops 0.2; can limit runtime)Battery: 1 kWh LiFePO4, e.g. EcoFlow DELTA 3 PlusSolar: 1x400W folding panel, which refills about 1 kWh on a sunny dayPower, better: Enough to run a fridge, Starlink Mini and phones (~$5,000)Daily need: about 2.5 kWh (fridge 1.5, Starlink Mini 0.7, phones and laptops 0.2)Battery: 4 kWh LiFePO4, e.g. EcoFlow DELTA Pro 3Solar: 3x400W folding panels, which refill about 3 kWh/day in sunGenerator: ~2,500W dual-fuel inverter generator; refills battery in a few hours even if weather is bad; get a few 20 lb propane tanksWater: 14+ gal of water per person for two weeksFood: 2+ weeks of shelf-stable foodComms: Hand-crank NOAA emergency radio<a href="https://twitter.com/cantworkitout/status/2110048778942284149">October 13, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>Cyberattacks against critical infrastructure aren't new. The concern is that now AI systems are becoming more capable to the point that they could make certain attacks faster, cheaper and easier to scale.</p><p>AI tools can already assist with analyzing software, identifying vulnerabilities and automating parts of cybersecurity research. Those same capabilities could potentially help malicious actors find weaknesses across large numbers of connected systems.</p><p>An attacker would probably not need to develop an entirely new type of cyberattack. AI could help speed up the search for poorly secured equipment, analyze unfamiliar software and assist with adapting existing techniques.</p><p>The threat isn't limited to refrigerators, either. Electricity, water treatment, banking and communications all depend on digital systems, although their architectures, security controls and exposure to attackers differ considerably.</p><p>The <a href="https://www.cisa.gov/news-events/cybersecurity-advisories/aa25-239a" target="_blank">Cybersecurity and Infrastructure Security Agency</a> (CISA) has previously warned about state-sponsored attackers compromising telecommunications networks and other important infrastructure.</p><p>Still, Stuhlmüller's one-year timeframe is a prediction, not an established forecast. There is no evidence that an AI-driven attack capable of simultaneously disabling these services is imminent, and compromising one type of internet-connected controller doesn't mean attackers could easily take over an electrical grid or water utility.</p><h2 id="the-emergency-supplies-he-recommends">The emergency supplies he recommends</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="4pRadHeNBRbCPXPcmQeukU" name="united-starlink-network (1)" alt="finding the starlink network during a united airlines flight" src="https://cdn.mos.cms.futurecdn.net/4pRadHeNBRbCPXPcmQeukU-1920-80.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Stuhlmüller's advice is unusually specific. Rather than simply encouraging people to buy emergency supplies, he outlines two levels of backup power, satellite internet and enough basic necessities to get through two weeks.</p><p><strong>Keep cash available.</strong> He recommends having enough physical cash to cover several weeks of expenses in case banking systems, ATMs or electronic payments become unavailable. The amount will depend on household spending, and there's no need to assume every cyberattack would cause a banking outage.</p><p><strong>Consider backup internet access.</strong> He suggests a <a href="https://www.tomsguide.com/tech/starlink-mini-just-launched-in-us-and-its-small-enough-for-a-backpack">Starlink Mini satellite</a> internet system as an alternative if local broadband or cellular networks go down. He estimates a setup costing around $150 with a $10 monthly standby option, although hardware and service pricing should be verified before buying. Satellite internet also requires power, a suitable view of the sky and an operational satellite network.</p><p><strong>Have a way to charge essential devices.</strong> His lower-cost backup power setup includes a 1kWh lithium iron phosphate battery and a 400W folding solar panel, with an estimated total cost of $1,250. The goal is to keep phones, laptops and satellite internet equipment operating during a power outage.</p><p><strong>Prepare for a longer outage.</strong> His more extensive setup, estimated at $5,000, adds a larger battery, three solar panels and a dual-fuel generator. This would potentially support a refrigerator as well as communications equipment, although actual runtime would depend on electricity consumption, weather and battery capacity.</p><p><a href="https://www.tomsguide.com/home/outdoors/i-took-this-portable-solar-generator-on-a-weekend-camping-trip-and-it-was-a-complete-game-changer">Portable generators</a> must never be operated inside a home or garage. <a href="https://www.ready.gov/sites/default/files/2024-07/ready.gov_hurricane_info-sheet.pdf" target="_blank">FEMA advises</a> keeping them outdoors at least 20 feet from doors, windows and other building openings because of the risk of deadly carbon monoxide poisoning.</p><p><strong>Store water and nonperishable food.</strong> Stuhlmüller recommends at least 14 gallons of water per person and enough shelf-stable food for two weeks. For a family of four, that means storing at least 56 gallons of water.</p><p><strong>Keep an emergency radio.</strong> A hand-crank NOAA weather radio could provide important information when phones, cellular networks or home internet connections aren't working. NOAA broadcasts are useful for weather and other emergency alerts, though radio reception and alert coverage vary by location.</p><h2 id="should-you-actually-prepare-for-an-ai-cyberattack">Should you actually prepare for an AI cyberattack?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1000px;"><p class="vanilla-image-block" style="padding-top:56.80%;"><img id="hk5twDXKmeE8Hs2es2Q6UE" name="phone-facepalm-scare-shst.jpg" alt="Young woman reacting in fright to something she sees on her smartphone." src="https://cdn.mos.cms.futurecdn.net/hk5twDXKmeE8Hs2es2Q6UE-1920-80.jpg" mos="" align="middle" fullscreen="" width="1000" height="568" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: pathdoc/Shutterstock)</span></figcaption></figure><p>There's a difference between taking a credible warning seriously and assuming a catastrophic cyberattack is around the corner.</p><p>Stuhlmüller hasn't presented evidence that AI-powered attacks on power, banking, internet and water systems will happen within the next 12 months. And there are significant technical barriers to attacking heavily protected infrastructure, even as AI systems become more capable.</p><p>His preparedness advice, however, isn't exclusively useful for cyberattacks. Severe storms, flooding, prolonged blackouts and other emergencies can interrupt many of the same services.</p><p>The federal government's <a href="https://www.ready.gov/kit" target="_blank">Ready.gov emergency preparedness guidance</a> recommends keeping water, nonperishable food, flashlights, batteries and a battery-powered or hand-crank radio among other basic supplies.</p><p>You also don't need to spend $5,000 on backup equipment to start preparing. A <a href="https://www.tomsguide.com/computing/peripherals/the-power-bank-i-use-every-day-just-hit-its-lowest-price-ever-and-itll-charge-your-laptop">charged power bank</a>, some stored water, medications, flashlights, a small amount of cash and a few days of food are far more realistic starting points for most households.</p><h2 id="bottom-line-5">Bottom line</h2><p>The French supermarket attack offers a troubling example of how vulnerable connected infrastructure can be. Whether AI makes similar incidents substantially more common over the next year remains uncertain.</p><p>But preparing for a disruption doesn't require believing the worst-case prediction. It means making sure that if the power, internet or payment systems suddenly stop working, your household has a plan.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/turn-your-pdfs-into-audiobooks-with-chatgpt-heres-the-simple-trick"><strong>Turn your PDFs into audiobooks with ChatGPT — here's the simple trick</strong></a></li><li><a href="https://www.tomsguide.com/computing/smart-glasses/ive-been-testing-ray-ban-meta-audio-glasses-for-72-hours-and-ditching-the-camera-was-the-absolute-right-call"><strong>I've been testing Ray-Ban Meta Audio glasses for 72 hours and ditching the camera was the absolute right call</strong></a></li><li><a href="https://www.tomsguide.com/ai/character-ai-files-for-bankruptcy-what-happens-to-your-chats-and-ai-companions-now"><strong>Character.AI files for bankruptcy — what happens to your chats and AI companions now?</strong></a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ 3 hidden macOS security features you need to turn on right now ]]></title>
                                                                                                <dc:content><![CDATA[ <p>In the era of privacy becoming almost nonexistent, we need to take every measure we can to reclaim some sense of security. Naturally, it’s not as convenient as it should be to protect yourself — we have traded convenience for privacy after all. But most operating systems have features, although buried beneath submenus, to make your device and data more secure.</p><p>If you're a macOS user, there are few settings you should enable to enhance your security — here are some of them.</p><h2 id="enable-macos-firewall-and-stealth-mode">Enable macOS Firewall and Stealth Mode</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="aBR3HP2VVMPQteUEbMehfF" name="WWDC 2025 — June 9 _ Apple 58-49 screenshot" alt="Clear Command Center" src="https://cdn.mos.cms.futurecdn.net/aBR3HP2VVMPQteUEbMehfF-1920-80.png" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Apple)</span></figcaption></figure><p>Connecting to new Wi-Fi? I highly recommend enabling Firewall. It’s not necessarily difficult to find, but it is disabled by default. That’s because a fresh install of macOS doesn’t have any services with open ports to be exploited. </p><p>macOS does have a built-in security feature called <a href="https://www.tomsguide.com/computing/malware-adware/dangerous-new-crashstealer-mac-malware-bypasses-apples-gatekeeper-to-steal-your-passwords-and-more">Gatekeeper</a>, which ensures only trusted software runs on your Mac, but it’s not a network security tool, so incoming ports can still be exploited. This is especially the case if you’re using <a href="https://www.tomsguide.com/news/why-you-need-to-use-a-vpn-on-public-wi-fi">public Wi-Fi</a>. In which case, enabling Firewall will prevent unwanted access from malicious actors.</p><p>To activate Firewall, navigate to the <strong>Apple logo > System Settings > Network > Firewall</strong>. Firewall should still allow incoming connections from trusted sources like Zoom or Spotify. However, in rare cases, you could run into connectivity issues with certain software.</p><p>You should also find Stealth Mode in the same section. This will make your Mac invisible when you're on public networks.</p><h2 id="activate-filevault">Activate FileVault</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="pxRRsyE8vQsv223VfBsB5C" name="end to end encryption 3.jpg" alt="A photograph of a person using a laptop with a digital drawing of files being put into a folder hovering above the laptop" src="https://cdn.mos.cms.futurecdn.net/pxRRsyE8vQsv223VfBsB5C-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Getty Images)</span></figcaption></figure><p>If you feel like your Mac is ever at risk of being lost or stolen, then you should activate <a href="https://www.tomsguide.com/how-to/how-to-encrypt-files-on-mac">FileVault</a>. This is a disk encryption that scrambles your data for anyone trying to read your SSD, in or out of the Mac. In order to enable this, navigate to <strong>System Settings > Privacy &amp; Security > FileVault</strong> and turn it on. </p><p>From there, you can choose to back up your <a href="https://www.tomsguide.com/how-to/how-to-set-up-an-apple-id-recovery-key">recovery key</a> to your iCloud account or produce a local recovery key, so you can physically jot it down and store it somewhere inaccessible to other people. I recommend the latter if you’re worried about someone potentially breaching your iCloud account.</p><h2 id="go-into-lockdown-mode">Go into Lockdown Mode</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1000px;"><p class="vanilla-image-block" style="padding-top:56.30%;"><img id="F9ybS7WNwSK95hqxotZgYM" name="apple shutterstock.jpg" alt="A padlock resting next to the Apple logo on the lid of a gold-colored Apple laptop." src="https://cdn.mos.cms.futurecdn.net/F9ybS7WNwSK95hqxotZgYM-1920-80.jpg" mos="" align="middle" fullscreen="" width="1000" height="563" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: robert coolen/Shutterstock)</span></figcaption></figure><p>This may be an intense measure to take, but setting your Mac to <a href="https://www.tomsguide.com/news/ios-16-getting-extreme-lockdown-mode-what-it-means-for-your-iphone">Lockdown Mode</a> will strengthen the overall security of your device. It blocks FaceTime calls from unknown contacts, Just-In-Time JavaScript compilations in Safari, and even some file attachments in the Messages app. </p><p>This ensures that both click and zero-click exploits won’t execute and infect your system (no defense is perfect, though, so don’t start randomly clicking things). Lockdown Mode also stops USB devices from connecting to your Mac while it’s locked. </p><p>You can enable Lockdown Mode by going to <strong>System Settings > Privacy &amp; Security > Lockdown Mode</strong>. </p><p>It's worth nothing that there is a huge trade off when using Lockdown Mode. Naturally, you might not receive that call or message attachment you’re expecting from a known person on an unknown number. You won’t be able to see link previews. Services like Google Sheets or Canva might slow down or even break. Some UI and font elements might also break, making it difficult if not impossible to navigate certain webpages. You can work around this, however, by excluding trusted sites from Lockdown Mode in the Safari settings.</p><h2 id="bottom-line-6">Bottom line</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3737px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="E7uSABSyBBWTGXMzRoXmn3" name="MacBook Air 15-inch M5 review-1" alt="MacBook Air 15-inch M5 on a desk" src="https://cdn.mos.cms.futurecdn.net/E7uSABSyBBWTGXMzRoXmn3-1920-80.jpg" mos="" align="middle" fullscreen="" width="3737" height="2102" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>While some of the measures may seem extreme, I highly recommend it for people who travel. You never know when you could be exposed, both physically or digitally, and it’s better to be safe than sorry, especially if you’re in a place far from home. </p><p>Also, if you’re looking for a feature to <em>disable </em>instead, I recommend turning off the Safari setting that allows files to open after downloading. Navigate to <strong>Safari > Settings > General</strong> and disable <strong>Open safe files after downloading</strong>. The last thing you need is a file on some random website automatically downloading and sneaking past Safari’s safety feature to then open on your device and wreak havoc. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><strong></strong><a href="https://www.tomsguide.com/computing/antivirus/does-antivirus-slow-down-your-pc"><strong>Does antivirus software still slow down your PC in 2026? We tested the top security software to find out</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/computing/online-security/ai-scams-are-getting-scary-realistic-4-red-flags-to-watch-out-for"><strong>AI scams are getting scary realistic — 4 red flags to watch out for</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/computing/online-security/is-your-smart-home-leaking-data-5-easy-ways-to-secure-your-connected-devices"><strong>Is your smart home leaking data? 5 easy ways to secure your connected devices</strong></a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/online-security/3-hidden-macos-security-features-you-need-to-turn-on-right-now</link>
                                                                            <description>
                            <![CDATA[ Whether it’s physically or digitally, your Mac can be left exposed to all sorts of bad actors — turn on these security features now. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">VNq5Xpkrh4sEcqTyZP8xuM</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/y4QKsZVHej8XJ37M4ej3uN-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sun, 11 Oct 2026 12:30:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Online Security]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Internet]]></category>
                                                                                                                    <dc:creator><![CDATA[ Rami Tabari ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/Du7gwfP2FPAQuuhcMnakHf-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/y4QKsZVHej8XJ37M4ej3uN-1920-80.jpg">
                                                            <media:credit><![CDATA[Tom&amp;#39;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[MacBook Pro 16-inch 2021 sitting on a patio table]]></media:description>                                                            <media:text><![CDATA[MacBook Pro 16-inch 2021 sitting on a patio table]]></media:text>
                                <media:title type="plain"><![CDATA[MacBook Pro 16-inch 2021 sitting on a patio table]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/y4QKsZVHej8XJ37M4ej3uN-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>In the era of privacy becoming almost nonexistent, we need to take every measure we can to reclaim some sense of security. Naturally, it’s not as convenient as it should be to protect yourself — we have traded convenience for privacy after all. But most operating systems have features, although buried beneath submenus, to make your device and data more secure.</p><p>If you're a macOS user, there are few settings you should enable to enhance your security — here are some of them.</p><h2 id="enable-macos-firewall-and-stealth-mode">Enable macOS Firewall and Stealth Mode</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="aBR3HP2VVMPQteUEbMehfF" name="WWDC 2025 — June 9 _ Apple 58-49 screenshot" alt="Clear Command Center" src="https://cdn.mos.cms.futurecdn.net/aBR3HP2VVMPQteUEbMehfF-1920-80.png" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Apple)</span></figcaption></figure><p>Connecting to new Wi-Fi? I highly recommend enabling Firewall. It’s not necessarily difficult to find, but it is disabled by default. That’s because a fresh install of macOS doesn’t have any services with open ports to be exploited. </p><p>macOS does have a built-in security feature called <a href="https://www.tomsguide.com/computing/malware-adware/dangerous-new-crashstealer-mac-malware-bypasses-apples-gatekeeper-to-steal-your-passwords-and-more">Gatekeeper</a>, which ensures only trusted software runs on your Mac, but it’s not a network security tool, so incoming ports can still be exploited. This is especially the case if you’re using <a href="https://www.tomsguide.com/news/why-you-need-to-use-a-vpn-on-public-wi-fi">public Wi-Fi</a>. In which case, enabling Firewall will prevent unwanted access from malicious actors.</p><p>To activate Firewall, navigate to the <strong>Apple logo > System Settings > Network > Firewall</strong>. Firewall should still allow incoming connections from trusted sources like Zoom or Spotify. However, in rare cases, you could run into connectivity issues with certain software.</p><p>You should also find Stealth Mode in the same section. This will make your Mac invisible when you're on public networks.</p><h2 id="activate-filevault">Activate FileVault</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="pxRRsyE8vQsv223VfBsB5C" name="end to end encryption 3.jpg" alt="A photograph of a person using a laptop with a digital drawing of files being put into a folder hovering above the laptop" src="https://cdn.mos.cms.futurecdn.net/pxRRsyE8vQsv223VfBsB5C-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Getty Images)</span></figcaption></figure><p>If you feel like your Mac is ever at risk of being lost or stolen, then you should activate <a href="https://www.tomsguide.com/how-to/how-to-encrypt-files-on-mac">FileVault</a>. This is a disk encryption that scrambles your data for anyone trying to read your SSD, in or out of the Mac. In order to enable this, navigate to <strong>System Settings > Privacy &amp; Security > FileVault</strong> and turn it on. </p><p>From there, you can choose to back up your <a href="https://www.tomsguide.com/how-to/how-to-set-up-an-apple-id-recovery-key">recovery key</a> to your iCloud account or produce a local recovery key, so you can physically jot it down and store it somewhere inaccessible to other people. I recommend the latter if you’re worried about someone potentially breaching your iCloud account.</p><h2 id="go-into-lockdown-mode">Go into Lockdown Mode</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1000px;"><p class="vanilla-image-block" style="padding-top:56.30%;"><img id="F9ybS7WNwSK95hqxotZgYM" name="apple shutterstock.jpg" alt="A padlock resting next to the Apple logo on the lid of a gold-colored Apple laptop." src="https://cdn.mos.cms.futurecdn.net/F9ybS7WNwSK95hqxotZgYM-1920-80.jpg" mos="" align="middle" fullscreen="" width="1000" height="563" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: robert coolen/Shutterstock)</span></figcaption></figure><p>This may be an intense measure to take, but setting your Mac to <a href="https://www.tomsguide.com/news/ios-16-getting-extreme-lockdown-mode-what-it-means-for-your-iphone">Lockdown Mode</a> will strengthen the overall security of your device. It blocks FaceTime calls from unknown contacts, Just-In-Time JavaScript compilations in Safari, and even some file attachments in the Messages app. </p><p>This ensures that both click and zero-click exploits won’t execute and infect your system (no defense is perfect, though, so don’t start randomly clicking things). Lockdown Mode also stops USB devices from connecting to your Mac while it’s locked. </p><p>You can enable Lockdown Mode by going to <strong>System Settings > Privacy &amp; Security > Lockdown Mode</strong>. </p><p>It's worth nothing that there is a huge trade off when using Lockdown Mode. Naturally, you might not receive that call or message attachment you’re expecting from a known person on an unknown number. You won’t be able to see link previews. Services like Google Sheets or Canva might slow down or even break. Some UI and font elements might also break, making it difficult if not impossible to navigate certain webpages. You can work around this, however, by excluding trusted sites from Lockdown Mode in the Safari settings.</p><h2 id="bottom-line-6">Bottom line</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3737px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="E7uSABSyBBWTGXMzRoXmn3" name="MacBook Air 15-inch M5 review-1" alt="MacBook Air 15-inch M5 on a desk" src="https://cdn.mos.cms.futurecdn.net/E7uSABSyBBWTGXMzRoXmn3-1920-80.jpg" mos="" align="middle" fullscreen="" width="3737" height="2102" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>While some of the measures may seem extreme, I highly recommend it for people who travel. You never know when you could be exposed, both physically or digitally, and it’s better to be safe than sorry, especially if you’re in a place far from home. </p><p>Also, if you’re looking for a feature to <em>disable </em>instead, I recommend turning off the Safari setting that allows files to open after downloading. Navigate to <strong>Safari > Settings > General</strong> and disable <strong>Open safe files after downloading</strong>. The last thing you need is a file on some random website automatically downloading and sneaking past Safari’s safety feature to then open on your device and wreak havoc. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><strong></strong><a href="https://www.tomsguide.com/computing/antivirus/does-antivirus-slow-down-your-pc"><strong>Does antivirus software still slow down your PC in 2026? We tested the top security software to find out</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/computing/online-security/ai-scams-are-getting-scary-realistic-4-red-flags-to-watch-out-for"><strong>AI scams are getting scary realistic — 4 red flags to watch out for</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/computing/online-security/is-your-smart-home-leaking-data-5-easy-ways-to-secure-your-connected-devices"><strong>Is your smart home leaking data? 5 easy ways to secure your connected devices</strong></a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ AI agents are going rogue — here's what you need to know if you use ChatGPT, Gemini or Claude ]]></title>
                                                                                                <dc:content><![CDATA[ <p>OpenAI, Google, Meta and Anthropic have all acknowledged incidents recently in which their AI models accessed real computer systems without authorization during research or security evaluations. </p><p>In OpenAI’s case, agents actively worked their way around restrictions designed to keep them contained, while the other three companies traced their incidents to testing environments that were misconfigured and left connected to the internet.</p><p>And as these same companies race to put <a href="https://www.tomsguide.com/ai/meta-muse-vs-chatgpt-dots-i-compared-the-new-ai-agents-and-theyre-not-as-similar-as-they-look">more autonomous agents into the hands of consumers</a>, the incidents raise an uncomfortable question about how much control AI companies actually have over the technology they’re building.<br /><br />Here's a look at all the recent attacks and an explanation for each one. </p><h2 id="openai-s-agents-broke-into-hugging-face">OpenAI’s agents broke into Hugging Face </h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="mqPYu9p4QYEaDyeABYSNZc" name="altman.getty" alt="Sam Altman of OpenAI" src="https://cdn.mos.cms.futurecdn.net/mqPYu9p4QYEaDyeABYSNZc-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Getty Images)</span></figcaption></figure><p>One of the most alarming examples involved roughly 700 OpenAI agents taking part in a cybersecurity evaluation called ExploitGym, with the attack on Hugging Face unfolding between July 8 and July 13, 2026, according to <a href="https://metr.org/es/blog/2026-08-26-openai-hugging-face-incident-investigation/" target="_blank">an investigation by the AI research nonprofit METR</a> and <a href="https://openai.com/index/hugging-face-incident-and-the-road-ahead/" target="_blank">OpenAI’s own report</a>.</p><p>The agents were supposed to complete their assigned tasks inside a controlled environment, but they turned OpenAI’s internal Artifactory package registry into an unauthorized message board, coordinated with one another and searched for ways around restrictions meant to keep them isolated from the internet. Their efforts ultimately resulted in a breach of Hugging Face, the popular AI development platform, where OpenAI’s technical report found the agents executed code on 41 production dataset-server workers.</p><p>The incident wasn’t a deliberate attack ordered by a human operator. The agents were trying to succeed at their assigned tasks and adopted methods that crossed security boundaries, and OpenAI has conceded that <a href="https://runtimewire.com/article/openai-s-safeguards-missed-1-200-agents-coordinating-before-700-hacked-hugging-f" target="_blank">early warning signs in the weeks before the breach could have triggered an earlier response</a>.</p><p>OpenAI has since attributed the incident to misaligned behavior, which essentially means AI systems pursuing a goal in ways their creators never intended.</p><p>Hugging Face wasn’t the only target. In a <a href="https://www.unite.ai/?p=474055" target="_blank">September 25 update</a>, OpenAI said it was notifying third parties on a rolling basis wherever its models may have bypassed security controls, impaired online services or otherwise affected outside websites, and that it had notified dozens of them so far. The company later <a href="https://www.techspot.com/news/114073-openai-rogue-ai-agents-triggered-alerts-more-than.html" target="_blank">raised that figure to more than 100 organizations</a>, covering notifications sent through September 26.</p><p>The activity OpenAI identified includes agents bypassing access controls and using exposed credentials, and some agents modified third-party websites, including by using public wiki pages as makeshift message boards that later required cleanup. OpenAI says its review is ongoing and that it expects to notify more organizations.</p><h2 id="it-39-s-happened-to-google-meta-and-anthropic-too">It's happened to Google, Meta and Anthropic too</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="9pJJpQLGQpPfng9Sn5WsNd" name="shutterstock_2848616559-2" alt="muse ai" src="https://cdn.mos.cms.futurecdn.net/9pJJpQLGQpPfng9Sn5WsNd-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>The problem extends well beyond OpenAI.</p><p>In August, Meta confirmed <a href="https://www.bleepingcomputer.com/news/security/meta-ai-model-hacked-a-company-during-misconfigured-cyber-test/amp" target="_blank">a report from The Information</a> that one of its models, which the publication identified as <a href="https://www.tomsguide.com/ai/i-tried-muse-spark-heres-what-you-need-to-know-about-metas-new-ai-model">Muse Spark</a> 1.1, had breached another company’s systems during a cybersecurity test. </p><p>A Meta spokesperson said a misconfiguration by Irregular, an independent testing firm the company works with, inadvertently gave the model internet access. The model then <a href="https://thenightly.com.au/society/technology/metas-muse-spark-11-ai-model-hacked-another-company-during-cybersecurity-testing-c-22683495" target="_blank">exploited a vulnerability in a third-party service and made changes to the company’s internal systems</a>.</p><p>Meta said the incident did not involve a sandbox escape, and it hasn’t named the affected company or explained what was changed. But the underlying behavior was troubling, since an AI system placed in the wrong environment was capable of taking actions against a real organization.</p><p>Google reported a similar problem involving its Gemini models. During a May cybersecurity evaluation, also run with Irregular, a Gemini model that wasn’t supposed to have internet access got online through a configuration problem. It then <a href="https://abcnews4.com/news/nation-world/google-says-its-gemini-ai-model-hacked-3-other-companies-reports-artificial-intelligence-network-unauthorized-access-credentials-internet-cybersecurity-test-risks" target="_blank">used publicly available information and guessed credentials to get into systems belonging to three real companies</a>. </p><p>Anthropic has disclosed <a href="https://anthropic.com/news/investigating-incidents-cybersecurity-evals" target="_blank">three incidents</a> in which Claude models gained unauthorized access to the production systems of three organizations during cybersecurity evaluations run in Irregular’s environment. The models involved were <a href="https://www.tomsguide.com/ai/i-tested-anthropics-new-claude-opus-4-7-and-its-the-first-ai-that-actually-reasons-through-tasks">Claude Opus 4.7</a>, <a href="https://www.tomsguide.com/ai/anthropic-once-said-this-ai-model-was-too-powerful-for-the-public-now-it-just-released-a-safer-version">Claude Mythos 5 </a>and an unreleased internal research model. In one case, Opus 4.7 was pointed at a fictional target whose name matched a real company’s live domain. </p><h2 id="the-problem-isn-t-that-ai-is-evil">The problem isn’t that AI is evil </h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="JSizfadu4xkSyjmEjAKHQN" name="V3G6CT7wXqHUwzxa3LDzum" alt="A hacker typing on a computer with binary code" src="https://cdn.mos.cms.futurecdn.net/JSizfadu4xkSyjmEjAKHQN-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>When agents go rogue, it can feel as if the agents are evil, that's really not the case. In each of these cases, the AI agent was not deliberately trying to cause harm. the AI was taking unauthorized actions because it believed those actions will help complete a task. <br /><br />But even so, they reveal a practical problem about AI agents and how they can be remarkably effect while pursuing a goal without reliably understanding what methods are acceptable. <br /><br />If an agent is rewarded for completing a task, it may discover shortcuts that violate rules, exploit vulnerabilities or exceed its permissions.</p><p>And unlike a traditional chatbot that simply produces text, an autonomous agent can interact with websites, execute code and make changes to connected systems. </p><h2 id="why-this-matters-for-everyday-ai-users">Why this matters for everyday AI users </h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ZXXNwmZSNtXcwHZWGeUPt3" name="woman at computer" alt="woman at computer" src="https://cdn.mos.cms.futurecdn.net/ZXXNwmZSNtXcwHZWGeUPt3-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Getty Images/Kelly Sikkema)</span></figcaption></figure><p>For most people, the immediate risk isn’t that ChatGPT will suddenly start hacking government websites. It’s that AI assistants are becoming increasingly capable of acting on our behalf.</p><p>OpenAI’s Dots, which launched September 29 for ChatGPT Pro and Business Premium subscribers, along with ChatGPT Work and other agent-style products, represent a broader shift away from AI that simply answers questions and toward AI that completes tasks. That can mean searching files, interacting with websites, using connected services and carrying out multi-step workflows with less supervision.</p><p>The appeal is obvious, since a task that would take you an hour can be handed off to an AI assistant instead. But every additional permission creates another opportunity for something to go wrong.</p><p>An agent with <a href="https://www.tomsguide.com/ai/google-gemini/google-gemini-can-now-access-your-gmail-and-docs-heres-why-that-matters">access to your email </a>may encounter sensitive personal information, one connected to cloud storage may be able to read documents you never intended to share, and an agent authorized to interact with external services could run into malicious instructions or make an unexpected change.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-XZ3p2e"></div>                            </div>                            <script src="https://kwizly.com/embed/XZ3p2e.js" async=""></script><h2 id="bottom-line-7">Bottom line </h2><p>The solution is not to stop using AI agents. I use them regularly and<a href="https://www.tomsguide.com/ai/7-boring-jobs-you-can-hand-to-an-ai-agent-tonight-number-4-is-my-personal-favorite"> find them to be incredibly helpful. </a></p><p>Start by checking which accounts, apps and services your AI assistant can access, and disconnect anything you don’t actively need, particularly services containing sensitive financial, medical or personal information.</p><p>When possible, require approval before an agent sends messages, changes files, makes purchases or takes other consequential actions. It’s also worth remembering that an AI agent isn’t only limited to doing exactly what you imagined when you gave it an instruction, because a task that sounds straightforward to a human may involve dozens of decisions made by the AI along the way. The fewer permissions an agent has, the less damage an unexpected decision can cause.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/i-checked-how-long-doordash-and-amazon-keep-photos-of-my-front-door-its-worse-than-i-thought"><strong>Amazon and DoorDash take photos of your front door — but good luck finding out when they’re deleted</strong></a></li><li><a href="https://www.tomsguide.com/ai/google-gemini/i-emailed-myself-every-day-for-a-month-and-let-gemini-write-back-heres-what-happened"><strong>I emailed myself every day for a month and let Gemini write back — here's how it transformed my workflow</strong></a></li><li><a href="https://www.tomsguide.com/ai/chatgpt/chatgpt-can-now-give-you-interactive-answers-and-free-users-get-it-starting-today"><strong>ChatGPT-6 just got a huge 'interactive answers' upgrade — and free users get it starting today</strong></a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/ai/ai-agents-are-going-rogue-heres-what-you-need-to-know-if-you-use-chatgpt-gemini-or-claude</link>
                                                                            <description>
                            <![CDATA[ AI agents from OpenAI, Google, Meta and Anthropic have breached real systems during security tests. Here's what happened and why you should be concerned. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">9evMd7KBK7zEyo2GQyzt9D</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/5vEcDDj5dGfSG6T8VwszLA-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sun, 11 Oct 2026 07:45:00 +0000</pubDate>                                                                                                                                <updated>Mon, 12 Oct 2026 10:38:16 +0000</updated>
                                                                                                                                            <category><![CDATA[AI]]></category>
                                                    <category><![CDATA[Online Security]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Internet]]></category>
                                                                                                <author><![CDATA[ amanda.caswell@futurenet.com (Amanda Caswell) ]]></author>                    <dc:creator><![CDATA[ Amanda Caswell ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/zYjevim2q7FjQiefqpjZRB-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/5vEcDDj5dGfSG6T8VwszLA-1920-80.jpg">
                                                            <media:credit><![CDATA[OpenAI]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Dots]]></media:description>                                                            <media:text><![CDATA[Dots]]></media:text>
                                <media:title type="plain"><![CDATA[Dots]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/5vEcDDj5dGfSG6T8VwszLA-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>OpenAI, Google, Meta and Anthropic have all acknowledged incidents recently in which their AI models accessed real computer systems without authorization during research or security evaluations. </p><p>In OpenAI’s case, agents actively worked their way around restrictions designed to keep them contained, while the other three companies traced their incidents to testing environments that were misconfigured and left connected to the internet.</p><p>And as these same companies race to put <a href="https://www.tomsguide.com/ai/meta-muse-vs-chatgpt-dots-i-compared-the-new-ai-agents-and-theyre-not-as-similar-as-they-look">more autonomous agents into the hands of consumers</a>, the incidents raise an uncomfortable question about how much control AI companies actually have over the technology they’re building.<br /><br />Here's a look at all the recent attacks and an explanation for each one. </p><h2 id="openai-s-agents-broke-into-hugging-face">OpenAI’s agents broke into Hugging Face </h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="mqPYu9p4QYEaDyeABYSNZc" name="altman.getty" alt="Sam Altman of OpenAI" src="https://cdn.mos.cms.futurecdn.net/mqPYu9p4QYEaDyeABYSNZc-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Getty Images)</span></figcaption></figure><p>One of the most alarming examples involved roughly 700 OpenAI agents taking part in a cybersecurity evaluation called ExploitGym, with the attack on Hugging Face unfolding between July 8 and July 13, 2026, according to <a href="https://metr.org/es/blog/2026-08-26-openai-hugging-face-incident-investigation/" target="_blank">an investigation by the AI research nonprofit METR</a> and <a href="https://openai.com/index/hugging-face-incident-and-the-road-ahead/" target="_blank">OpenAI’s own report</a>.</p><p>The agents were supposed to complete their assigned tasks inside a controlled environment, but they turned OpenAI’s internal Artifactory package registry into an unauthorized message board, coordinated with one another and searched for ways around restrictions meant to keep them isolated from the internet. Their efforts ultimately resulted in a breach of Hugging Face, the popular AI development platform, where OpenAI’s technical report found the agents executed code on 41 production dataset-server workers.</p><p>The incident wasn’t a deliberate attack ordered by a human operator. The agents were trying to succeed at their assigned tasks and adopted methods that crossed security boundaries, and OpenAI has conceded that <a href="https://runtimewire.com/article/openai-s-safeguards-missed-1-200-agents-coordinating-before-700-hacked-hugging-f" target="_blank">early warning signs in the weeks before the breach could have triggered an earlier response</a>.</p><p>OpenAI has since attributed the incident to misaligned behavior, which essentially means AI systems pursuing a goal in ways their creators never intended.</p><p>Hugging Face wasn’t the only target. In a <a href="https://www.unite.ai/?p=474055" target="_blank">September 25 update</a>, OpenAI said it was notifying third parties on a rolling basis wherever its models may have bypassed security controls, impaired online services or otherwise affected outside websites, and that it had notified dozens of them so far. The company later <a href="https://www.techspot.com/news/114073-openai-rogue-ai-agents-triggered-alerts-more-than.html" target="_blank">raised that figure to more than 100 organizations</a>, covering notifications sent through September 26.</p><p>The activity OpenAI identified includes agents bypassing access controls and using exposed credentials, and some agents modified third-party websites, including by using public wiki pages as makeshift message boards that later required cleanup. OpenAI says its review is ongoing and that it expects to notify more organizations.</p><h2 id="it-39-s-happened-to-google-meta-and-anthropic-too">It's happened to Google, Meta and Anthropic too</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="9pJJpQLGQpPfng9Sn5WsNd" name="shutterstock_2848616559-2" alt="muse ai" src="https://cdn.mos.cms.futurecdn.net/9pJJpQLGQpPfng9Sn5WsNd-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>The problem extends well beyond OpenAI.</p><p>In August, Meta confirmed <a href="https://www.bleepingcomputer.com/news/security/meta-ai-model-hacked-a-company-during-misconfigured-cyber-test/amp" target="_blank">a report from The Information</a> that one of its models, which the publication identified as <a href="https://www.tomsguide.com/ai/i-tried-muse-spark-heres-what-you-need-to-know-about-metas-new-ai-model">Muse Spark</a> 1.1, had breached another company’s systems during a cybersecurity test. </p><p>A Meta spokesperson said a misconfiguration by Irregular, an independent testing firm the company works with, inadvertently gave the model internet access. The model then <a href="https://thenightly.com.au/society/technology/metas-muse-spark-11-ai-model-hacked-another-company-during-cybersecurity-testing-c-22683495" target="_blank">exploited a vulnerability in a third-party service and made changes to the company’s internal systems</a>.</p><p>Meta said the incident did not involve a sandbox escape, and it hasn’t named the affected company or explained what was changed. But the underlying behavior was troubling, since an AI system placed in the wrong environment was capable of taking actions against a real organization.</p><p>Google reported a similar problem involving its Gemini models. During a May cybersecurity evaluation, also run with Irregular, a Gemini model that wasn’t supposed to have internet access got online through a configuration problem. It then <a href="https://abcnews4.com/news/nation-world/google-says-its-gemini-ai-model-hacked-3-other-companies-reports-artificial-intelligence-network-unauthorized-access-credentials-internet-cybersecurity-test-risks" target="_blank">used publicly available information and guessed credentials to get into systems belonging to three real companies</a>. </p><p>Anthropic has disclosed <a href="https://anthropic.com/news/investigating-incidents-cybersecurity-evals" target="_blank">three incidents</a> in which Claude models gained unauthorized access to the production systems of three organizations during cybersecurity evaluations run in Irregular’s environment. The models involved were <a href="https://www.tomsguide.com/ai/i-tested-anthropics-new-claude-opus-4-7-and-its-the-first-ai-that-actually-reasons-through-tasks">Claude Opus 4.7</a>, <a href="https://www.tomsguide.com/ai/anthropic-once-said-this-ai-model-was-too-powerful-for-the-public-now-it-just-released-a-safer-version">Claude Mythos 5 </a>and an unreleased internal research model. In one case, Opus 4.7 was pointed at a fictional target whose name matched a real company’s live domain. </p><h2 id="the-problem-isn-t-that-ai-is-evil">The problem isn’t that AI is evil </h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="JSizfadu4xkSyjmEjAKHQN" name="V3G6CT7wXqHUwzxa3LDzum" alt="A hacker typing on a computer with binary code" src="https://cdn.mos.cms.futurecdn.net/JSizfadu4xkSyjmEjAKHQN-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>When agents go rogue, it can feel as if the agents are evil, that's really not the case. In each of these cases, the AI agent was not deliberately trying to cause harm. the AI was taking unauthorized actions because it believed those actions will help complete a task. <br /><br />But even so, they reveal a practical problem about AI agents and how they can be remarkably effect while pursuing a goal without reliably understanding what methods are acceptable. <br /><br />If an agent is rewarded for completing a task, it may discover shortcuts that violate rules, exploit vulnerabilities or exceed its permissions.</p><p>And unlike a traditional chatbot that simply produces text, an autonomous agent can interact with websites, execute code and make changes to connected systems. </p><h2 id="why-this-matters-for-everyday-ai-users">Why this matters for everyday AI users </h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ZXXNwmZSNtXcwHZWGeUPt3" name="woman at computer" alt="woman at computer" src="https://cdn.mos.cms.futurecdn.net/ZXXNwmZSNtXcwHZWGeUPt3-1920-80.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Getty Images/Kelly Sikkema)</span></figcaption></figure><p>For most people, the immediate risk isn’t that ChatGPT will suddenly start hacking government websites. It’s that AI assistants are becoming increasingly capable of acting on our behalf.</p><p>OpenAI’s Dots, which launched September 29 for ChatGPT Pro and Business Premium subscribers, along with ChatGPT Work and other agent-style products, represent a broader shift away from AI that simply answers questions and toward AI that completes tasks. That can mean searching files, interacting with websites, using connected services and carrying out multi-step workflows with less supervision.</p><p>The appeal is obvious, since a task that would take you an hour can be handed off to an AI assistant instead. But every additional permission creates another opportunity for something to go wrong.</p><p>An agent with <a href="https://www.tomsguide.com/ai/google-gemini/google-gemini-can-now-access-your-gmail-and-docs-heres-why-that-matters">access to your email </a>may encounter sensitive personal information, one connected to cloud storage may be able to read documents you never intended to share, and an agent authorized to interact with external services could run into malicious instructions or make an unexpected change.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-XZ3p2e"></div>                            </div>                            <script src="https://kwizly.com/embed/XZ3p2e.js" async=""></script><h2 id="bottom-line-7">Bottom line </h2><p>The solution is not to stop using AI agents. I use them regularly and<a href="https://www.tomsguide.com/ai/7-boring-jobs-you-can-hand-to-an-ai-agent-tonight-number-4-is-my-personal-favorite"> find them to be incredibly helpful. </a></p><p>Start by checking which accounts, apps and services your AI assistant can access, and disconnect anything you don’t actively need, particularly services containing sensitive financial, medical or personal information.</p><p>When possible, require approval before an agent sends messages, changes files, makes purchases or takes other consequential actions. It’s also worth remembering that an AI agent isn’t only limited to doing exactly what you imagined when you gave it an instruction, because a task that sounds straightforward to a human may involve dozens of decisions made by the AI along the way. The fewer permissions an agent has, the less damage an unexpected decision can cause.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/i-checked-how-long-doordash-and-amazon-keep-photos-of-my-front-door-its-worse-than-i-thought"><strong>Amazon and DoorDash take photos of your front door — but good luck finding out when they’re deleted</strong></a></li><li><a href="https://www.tomsguide.com/ai/google-gemini/i-emailed-myself-every-day-for-a-month-and-let-gemini-write-back-heres-what-happened"><strong>I emailed myself every day for a month and let Gemini write back — here's how it transformed my workflow</strong></a></li><li><a href="https://www.tomsguide.com/ai/chatgpt/chatgpt-can-now-give-you-interactive-answers-and-free-users-get-it-starting-today"><strong>ChatGPT-6 just got a huge 'interactive answers' upgrade — and free users get it starting today</strong></a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ How to blur your house on Apple Maps — and why you should do it right now ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Protecting your personal data usually means tweaking phone settings and managing passwords, but keeping nosy eyes off your doorstep requires a different kind of cleanup. <a href="https://www.tomsguide.com/how-to/apple-maps-15-essential-tips-and-tricks">Apple Maps</a> makes it surprisingly easy for anyone to scout out your neighborhood and view your home down to the window frames.</p><p>Leaving high-resolution imagery of your property online gives potential burglars, nosey neighbors, and strangers a clear view of your entry points, security setup, and personal belongings.</p><p>Provided Apple's Look Around feature covers your area, scrubbing your residence off the map in Apple Maps is pretty straightforward. Here's how to check if your location is eligible and blur your home, plus what to do if you need an alternative method. </p><section class="howto-block">                    <h3>Locate your home</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/zKiF5Ej5iQZuuvgBCwEGkR.jpg"                                        alt=""Look Around" icon and "Report an Issue" highlighted in Apple Maps on iPhone "                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/zKiF5Ej5iQZuuvgBCwEGkR.jpg"                                        class="expandable van-old-layout-image" />                            </p><div class="credit">(Image: © Tom's Guide)</div></figure>                    <p><p><strong>Search for your address in Apple Maps and look for the binoculars icon</strong> on the location card or map. <strong>Tap it </strong>to enter the street-level view.</p><p>If you don’t see the binoculars icon, Apple’s Look Around imagery isn’t available for your area yet — which means your home isn't visible on street view anyway. <strong>Desktop users can launch full-screen mode by clicking the photo preview</strong> at the bottom left of the display.</p><p>With the street view image of your property visible, <strong>swipe up from the bottom of your screen </strong>to bring up the menu options and scroll down to <strong>select Report an Issue</strong>.</p><p>If you're on a Mac or desktop browser, <strong>click the three-dot menu icon</strong> in the top corner to find the same option.</p></p>                </section><section class="howto-block">                    <h3>Flag your privacy concern</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/h4ZTTWNN8qtuSVtYxQduSE.jpg"                                        alt="Apple Maps on the web pictured on a Mac screen."                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/h4ZTTWNN8qtuSVtYxQduSE.jpg"                                        class="expandable van-old-layout-image" />                            </p><div class="credit">(Image: © Future / Apple)</div></figure>                    <p><p>In the report window, you will see a preview of the stored imagery alongside category options. <strong>Tap</strong> <strong>Privacy Concerns</strong>. From there, <strong>choose Obscure imagery of my home</strong>. </p><p>If you only want to hide a car, you can choose Obscure personal information instead. </p><p>Double-check that the street address matches your residence and<strong> enter your primary email address</strong>. If you are signed into your Apple ID, this will auto-populate and save a receipt directly to your account history. Then<strong> hit submit</strong>.</p><p>Unlike instant automated toggles, Apple manually processes property removal requests. <strong>Check your inbox over the following days </strong>— Apple will send a follow-up email requesting verification or proof of homeownership to finalize the blur. </p><p>Once confirmed, <strong>you will receive a final email notification confirming your property has been obscured</strong>.</p></p>                </section><h3 class="article-body__section" id="section-how-to-request-a-blur-via-email"><span>How to request a blur via email</span></h3><p><strong>You can also request a property blur directly by emailing mapsimagecollection@apple.com</strong>. Be sure to include your full name, the exact address, and a description or screenshot of your property from Apple Maps. </p><p>This email route is a handy alternative if the in-app reporting feature isn't working for you or if you are submitting the request from a non-Apple device.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-W3Y6DX"></div>                            </div>                            <script src="https://kwizly.com/embed/W3Y6DX.js" async=""></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide </span></h3><ul><li><strong></strong><a href="https://www.tomsguide.com/computing/online-security/how-to-remove-your-home-address-from-the-internet-7-ways-to-protect-your-privacy"><strong>How to remove your home address from the internet — 6 ways to protect your privacy</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/phones/iphones/check-your-iphone-right-now-3-privacy-settings-you-need-to-turn-off-immediately"><strong>Check your iPhone right now: 3 privacy settings you need to change immediately</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/phones/ios-27-has-a-hidden-anti-scam-setting-heres-why-every-iphone-user-should-turn-it-on"><strong>iOS 27 has a hidden anti-scam setting — here’s why every iPhone user should turn it on</strong></a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/phones/iphones/how-to-blur-your-house-on-apple-maps-and-why-you-should-do-it-right-now</link>
                                                                            <description>
                            <![CDATA[ Learn how to blur your house on Apple Maps to keep nosy eyes off your driveway, plus the alternative method if the feature isn't available for you. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">ogkvosN4aCU8aQJTmygPWh</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/4AkQ7gosxR54LV5qDC92vS-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 09 Oct 2026 07:30:00 +0000</pubDate>                                                                                                                                <updated>Fri, 09 Oct 2026 08:07:46 +0000</updated>
                                                                                                                                            <category><![CDATA[Online Security]]></category>
                                                    <category><![CDATA[iPhones]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Internet]]></category>
                                                    <category><![CDATA[Phones]]></category>
                                                                                                <author><![CDATA[ kaycee.hill@futurenet.com (Kaycee Hill) ]]></author>                    <dc:creator><![CDATA[ Kaycee Hill ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/xHn6RmpEqg87cvtLwrBu9G-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/4AkQ7gosxR54LV5qDC92vS-1920-80.jpg">
                                                            <media:credit><![CDATA[Future]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Apple Maps on an iPhone 17]]></media:description>                                                            <media:text><![CDATA[Apple Maps on an iPhone 17]]></media:text>
                                <media:title type="plain"><![CDATA[Apple Maps on an iPhone 17]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/4AkQ7gosxR54LV5qDC92vS-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Protecting your personal data usually means tweaking phone settings and managing passwords, but keeping nosy eyes off your doorstep requires a different kind of cleanup. <a href="https://www.tomsguide.com/how-to/apple-maps-15-essential-tips-and-tricks">Apple Maps</a> makes it surprisingly easy for anyone to scout out your neighborhood and view your home down to the window frames.</p><p>Leaving high-resolution imagery of your property online gives potential burglars, nosey neighbors, and strangers a clear view of your entry points, security setup, and personal belongings.</p><p>Provided Apple's Look Around feature covers your area, scrubbing your residence off the map in Apple Maps is pretty straightforward. Here's how to check if your location is eligible and blur your home, plus what to do if you need an alternative method. </p><section class="howto-block">                    <h3>Locate your home</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/zKiF5Ej5iQZuuvgBCwEGkR.jpg"                                        alt=""Look Around" icon and "Report an Issue" highlighted in Apple Maps on iPhone "                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/zKiF5Ej5iQZuuvgBCwEGkR.jpg"                                        class="expandable van-old-layout-image" />                            </p><div class="credit">(Image: © Tom's Guide)</div></figure>                    <p><p><strong>Search for your address in Apple Maps and look for the binoculars icon</strong> on the location card or map. <strong>Tap it </strong>to enter the street-level view.</p><p>If you don’t see the binoculars icon, Apple’s Look Around imagery isn’t available for your area yet — which means your home isn't visible on street view anyway. <strong>Desktop users can launch full-screen mode by clicking the photo preview</strong> at the bottom left of the display.</p><p>With the street view image of your property visible, <strong>swipe up from the bottom of your screen </strong>to bring up the menu options and scroll down to <strong>select Report an Issue</strong>.</p><p>If you're on a Mac or desktop browser, <strong>click the three-dot menu icon</strong> in the top corner to find the same option.</p></p>                </section><section class="howto-block">                    <h3>Flag your privacy concern</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/h4ZTTWNN8qtuSVtYxQduSE.jpg"                                        alt="Apple Maps on the web pictured on a Mac screen."                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/h4ZTTWNN8qtuSVtYxQduSE.jpg"                                        class="expandable van-old-layout-image" />                            </p><div class="credit">(Image: © Future / Apple)</div></figure>                    <p><p>In the report window, you will see a preview of the stored imagery alongside category options. <strong>Tap</strong> <strong>Privacy Concerns</strong>. From there, <strong>choose Obscure imagery of my home</strong>. </p><p>If you only want to hide a car, you can choose Obscure personal information instead. </p><p>Double-check that the street address matches your residence and<strong> enter your primary email address</strong>. If you are signed into your Apple ID, this will auto-populate and save a receipt directly to your account history. Then<strong> hit submit</strong>.</p><p>Unlike instant automated toggles, Apple manually processes property removal requests. <strong>Check your inbox over the following days </strong>— Apple will send a follow-up email requesting verification or proof of homeownership to finalize the blur. </p><p>Once confirmed, <strong>you will receive a final email notification confirming your property has been obscured</strong>.</p></p>                </section><h3 class="article-body__section" id="section-how-to-request-a-blur-via-email"><span>How to request a blur via email</span></h3><p><strong>You can also request a property blur directly by emailing mapsimagecollection@apple.com</strong>. Be sure to include your full name, the exact address, and a description or screenshot of your property from Apple Maps. </p><p>This email route is a handy alternative if the in-app reporting feature isn't working for you or if you are submitting the request from a non-Apple device.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-W3Y6DX"></div>                            </div>                            <script src="https://kwizly.com/embed/W3Y6DX.js" async=""></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide </span></h3><ul><li><strong></strong><a href="https://www.tomsguide.com/computing/online-security/how-to-remove-your-home-address-from-the-internet-7-ways-to-protect-your-privacy"><strong>How to remove your home address from the internet — 6 ways to protect your privacy</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/phones/iphones/check-your-iphone-right-now-3-privacy-settings-you-need-to-turn-off-immediately"><strong>Check your iPhone right now: 3 privacy settings you need to change immediately</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/phones/ios-27-has-a-hidden-anti-scam-setting-heres-why-every-iphone-user-should-turn-it-on"><strong>iOS 27 has a hidden anti-scam setting — here’s why every iPhone user should turn it on</strong></a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Is your smart home leaking data? 5 easy ways to secure your connected devices ]]></title>
                                                                                                <dc:content><![CDATA[ <p>The most terrifying thought concerning <a href="https://www.tomsguide.com/computing/online-security/snooping-speakers-and-eavesdropping-airfryers-are-your-smart-devices-spying-on-you">smart home privacy</a> is the idea that my baby monitor is being watched by anyone other than myself. In the era of privacy beaches, your smart home devices might be leaking your data, and you need to shut that down ASAP.</p><p>Smart devices, from your thermostat to your washing machine, utilize IoT (Internet of Things) technology, which means that they’re embedded in a network that exchanges data with other devices over the internet. But what sort of data could a washing machine collect that could pose a potential privacy issue? Well, that simple smart appliance is connected to the same network as your laptop or computer, so hackers can bounce from a lightbulb to a PC.</p><p>We live in a time where we’ve traded our privacy for convenience, and while these companies have gathered a ton of data on us already, it doesn’t mean we need to keep the toxic river flow going. Let’s go over how to secure your devices.</p><h2 id="change-your-password">Change your password</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1000px;"><p class="vanilla-image-block" style="padding-top:57.70%;"><img id="Wr5HhGGscvmyPPwju4NgcN" name="password-theft-binary-shst.jpg" alt="A shadowy hand reaches for the word 'PASSWORD' displayed on a computer screen." src="https://cdn.mos.cms.futurecdn.net/Wr5HhGGscvmyPPwju4NgcN-1920-80.jpg" mos="" align="middle" fullscreen="" width="1000" height="577" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Come on now, don’t walk around with your username as “admin” and password as “password” for your router or any of your smart devices. You might as well be handing the manila envelope of your life directly to a hacker.</p><p>If you’re looking for convenience, use a <a href="https://www.tomsguide.com/us/best-password-managers,review-3785.html">strong password manager</a> to autogenerate a password for you. Using personal information in a password is almost as bad as whatever the default is. Simple words are also ill-advised. If you really want to know how fast a hacker can break your password, <a href="https://images.squarespace-cdn.com/content/v1/5ffe234606e5ec7bfc57a7a3/1783998993378-B638VPGU3GBDC337QYLY/Hive+Systems+Password+Table+-+2026+Square.png" target="_blank">Hive Systems</a> produced a convenient graphic for you to get the idea.</p><p>Most importantly, <a href="https://www.tomsguide.com/computing/online-security/im-a-security-editor-and-these-are-my-top-3-tips-to-improve-your-password-hygiene-on-world-password-day">don’t use the same password twice</a>. I know it’s a pain, but it’s necessary, and let’s move onto why.</p><h2 id="enable-2fa-or-mfa">Enable 2FA or MFA</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="WtFUDWB4ftYfw6pGttFieZ" name="MFA example.jpg" alt="Cropped hand of woman using mobile device with Two-Factor Authentication (2FA) security while logging in securely to her laptop" src="https://cdn.mos.cms.futurecdn.net/WtFUDWB4ftYfw6pGttFieZ-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Getty Images)</span></figcaption></figure><p>Changing your password is not enough. Even if you’ve somehow developed an impenetrable string of <a href="https://www.tomsguide.com/opinion/im-a-security-editor-and-this-is-how-i-create-strong-passwords-that-are-also-easy-to-remember">letters, numbers, and symbols</a>, it could easily be put on blast if there’s a security breach. And suddenly, a hacker knows the password for your Samsung washing machine, which could be the same password you use for your laptop (if you happened to not take my previous advice).</p><p>Most devices let you set up two-factor authentication (<a href="https://www.tomsguide.com/computing/online-security/two-factor-authentication-provides-an-easy-way-to-secure-your-accounts-heres-how-it-works-and-how-to-enable-it">2FA</a>) or multifactor authentication (<a href="https://www.tomsguide.com/news/google-forcing-2fa-users">MFA</a>), and it is a simple way to stop a hacker from breaching your smart home even if they have the password to your device. Setting this up, typically through your phone, is another layer to keep your smart home safe.</p><h2 id="enable-automatic-firmware-updates">Enable automatic firmware updates</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1000px;"><p class="vanilla-image-block" style="padding-top:56.40%;"><img id="7g7iG4EK5A2eqDW4i3PxKi" name="laptop-system-update-shst.jpg" alt="Laptop installing system update." src="https://cdn.mos.cms.futurecdn.net/7g7iG4EK5A2eqDW4i3PxKi-1920-80.jpg" mos="" align="middle" fullscreen="" width="1000" height="564" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Rawpixel.com/Shutterstock)</span></figcaption></figure><p>This may seem rather obvious, but it’s important to point out that you should keep all your smart home devices, <a href="https://www.tomsguide.com/computing/routers/dont-be-a-victim-nsa-warns-to-reboot-your-router-right-now">especially your router</a>, up to date and this includes your other devices too, like your smartphone and laptop. The easiest way to do that is to enable automatic firmware updates. Whenever there’s a security issue, manufacturers will ideally patch the vulnerability as soon as possible.</p><p>Unfortunately, that might not always be the case. If a company is no longer supporting the product or simply discontinued it, that might be your cue to do the same. No one likes spending money on something new when the old one works just fine, but the older a product is, the more vulnerable it could become.</p><h2 id="use-a-router-level-vpn">Use a router-level VPN</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="qvFBdgUogWyjWmHdgWB6TV" name="TG_ExpressVPN_Aircove-2" alt="ExpressVPN Aircove on desk" src="https://cdn.mos.cms.futurecdn.net/qvFBdgUogWyjWmHdgWB6TV-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Setting up a <a href="https://www.tomsguide.com/best-picks/best-vpn">VPN</a> (Virtual Private Network) can not only secure your smart home devices but all of the devices on your network. A VPN encrypts your data, so hackers won’t be able to see what exactly your smart home devices are communicating. It’s not impenetrable, but it’s a strong layer of security.</p><p>Now, the only problem with this is that most VPNs aren’t free and not all routers are compatible with VPN integration. However, if you have access to a VPN and a compatible router, you should be able to set it up via your router settings, in a section likely labeled VPN Client mode.</p><h2 id="set-up-a-smart-home-network">Set up a smart home network</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Vjdw5h2Qi2kz5P5SFx8xST" name="Smart Home.jpg" alt="Smart home illustration" src="https://cdn.mos.cms.futurecdn.net/Vjdw5h2Qi2kz5P5SFx8xST-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>One of the most significant changes you can make to your smart home is using a local or separate Wi-Fi network for your smart home devices. This does come with some drawbacks, however.</p><p>You can set up a <a href="https://www.tomsguide.com/opinion/now-is-the-perfect-time-to-set-up-a-guest-wi-fi-network-heres-3-reasons-why">guest network</a> on your router and throw all your smart home devices on there, effectively isolating them from your primary network. How effective this is comes down to the type of smart home device you’re connecting. Some can get temperamental with your phone not being on the same exact network. You might need to switch to the guest network, connect with the device, and switch back to see if that works. In other cases, it might not be compatible at all.</p><p>If you want to go the local network route, things will take a slightly more challenging but effective turn. You’ll need to get your hands on a Raspberry Pi or an old laptop and start looking into <a href="https://www.home-assistant.io/installation/" target="_blank">Home Assistant</a>, an open source home automation system that keeps all of your smart home devices local. </p><p>If you’re willing to trade convenience back for privacy, this should be your next step. It’s more involved than what we can cover here, but to put it simply, your smart home devices connect to your laptop or Raspberry Pi locally and then can be managed through the Home Assistant app.</p><h2 id="bottom-line-8">Bottom line</h2><p>The more steps you take to secure your network, the less likely you’ll have to worry about your personal data being breached because of something as simple as your washing machine. Even one of these steps will drastically improve your security, but changing your passwords and using 2FA or MFA is great advice in and out of your smart home.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/antivirus/does-antivirus-slow-down-your-pc"><strong>Does antivirus software still slow down your PC in 2026? We tested the top security software to find out</strong></a></li><li><a href="https://www.tomsguide.com/computing/online-security/ai-scams-are-getting-scary-realistic-4-red-flags-to-watch-out-for"><strong>AI scams are getting scary realistic — 4 red flags to watch out for</strong></a></li><li><strong></strong><a href="https://www.tomsguide.com/computing/online-security/your-personal-information-is-everywhere-online-5-ways-to-start-removing-it"><strong>Your personal information is everywhere online — 5 ways to start removing it from the internet</strong></a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/online-security/is-your-smart-home-leaking-data-5-easy-ways-to-secure-your-connected-devices</link>
                                                                            <description>
                            <![CDATA[ Here's everything you need to know (and do) to lock down your smart home devices before they start leaking your data. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">9B6du6ghvFZRqa7YNifbdN</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/mJENmULb6j9vkGWf5GY6Hd-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 08 Oct 2026 09:30:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Online Security]]></category>
                                                    <category><![CDATA[Smart Home]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Internet]]></category>
                                                    <category><![CDATA[Home]]></category>
                                                                                                                    <dc:creator><![CDATA[ Rami Tabari ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/Du7gwfP2FPAQuuhcMnakHf-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/mJENmULb6j9vkGWf5GY6Hd-1920-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A man controlling smart lights with his smartphone]]></media:description>                                                            <media:text><![CDATA[A man controlling smart lights with his smartphone]]></media:text>
                                <media:title type="plain"><![CDATA[A man controlling smart lights with his smartphone]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/mJENmULb6j9vkGWf5GY6Hd-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>The most terrifying thought concerning <a href="https://www.tomsguide.com/computing/online-security/snooping-speakers-and-eavesdropping-airfryers-are-your-smart-devices-spying-on-you">smart home privacy</a> is the idea that my baby monitor is being watched by anyone other than myself. In the era of privacy beaches, your smart home devices might be leaking your data, and you need to shut that down ASAP.</p><p>Smart devices, from your thermostat to your washing machine, utilize IoT (Internet of Things) technology, which means that they’re embedded in a network that exchanges data with other devices over the internet. But what sort of data could a washing machine collect that could pose a potential privacy issue? Well, that simple smart appliance is connected to the same network as your laptop or computer, so hackers can bounce from a lightbulb to a PC.</p><p>We live in a time where we’ve traded our privacy for convenience, and while these companies have gathered a ton of data on us already, it doesn’t mean we need to keep the toxic river flow going. Let’s go over how to secure your devices.</p><h2 id="change-your-password">Change your password</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1000px;"><p class="vanilla-image-block" style="padding-top:57.70%;"><img id="Wr5HhGGscvmyPPwju4NgcN" name="password-theft-binary-shst.jpg" alt="A shadowy hand reaches for the word 'PASSWORD' displayed on a computer screen." src="https://cdn.mos.cms.futurecdn.net/Wr5HhGGscvmyPPwju4NgcN-1920-80.jpg" mos="" align="middle" fullscreen="" width="1000" height="577" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Come on now, don’t walk around with your username as “admin” and password as “password” for your router or any of your smart devices. You might as well be handing the manila envelope of your life directly to a hacker.</p><p>If you’re looking for convenience, use a <a href="https://www.tomsguide.com/us/best-password-managers,review-3785.html">strong password manager</a> to autogenerate a password for you. Using personal information in a password is almost as bad as whatever the default is. Simple words are also ill-advised. If you really want to know how fast a hacker can break your password, <a href="https://images.squarespace-cdn.com/content/v1/5ffe234606e5ec7bfc57a7a3/1783998993378-B638VPGU3GBDC337QYLY/Hive+Systems+Password+Table+-+2026+Square.png" target="_blank">Hive Systems</a> produced a convenient graphic for you to get the idea.</p><p>Most importantly, <a href="https://www.tomsguide.com/computing/online-security/im-a-security-editor-and-these-are-my-top-3-tips-to-improve-your-password-hygiene-on-world-password-day">don’t use the same password twice</a>. I know it’s a pain, but it’s necessary, and let’s move onto why.</p><h2 id="enable-2fa-or-mfa">Enable 2FA or MFA</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="WtFUDWB4ftYfw6pGttFieZ" name="MFA example.jpg" alt="Cropped hand of woman using mobile device with Two-Factor Authentication (2FA) security while logging in securely to her laptop" src="https://cdn.mos.cms.futurecdn.net/WtFUDWB4ftYfw6pGttFieZ-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Getty Images)</span></figcaption></figure><p>Changing your password is not enough. Even if you’ve somehow developed an impenetrable string of <a href="https://www.tomsguide.com/opinion/im-a-security-editor-and-this-is-how-i-create-strong-passwords-that-are-also-easy-to-remember">letters, numbers, and symbols</a>, it could easily be put on blast if there’s a security breach. And suddenly, a hacker knows the password for your Samsung washing machine, which could be the same password you use for your laptop (if you happened to not take my previous advice).</p><p>Most devices let you set up two-factor authentication (<a href="https://www.tomsguide.com/computing/online-security/two-factor-authentication-provides-an-easy-way-to-secure-your-accounts-heres-how-it-works-and-how-to-enable-it">2FA</a>) or multifactor authentication (<a href="https://www.tomsguide.com/news/google-forcing-2fa-users">MFA</a>), and it is a simple way to stop a hacker from breaching your smart home even if they have the password to your device. Setting this up, typically through your phone, is another layer to keep your smart home safe.</p><h2 id="enable-automatic-firmware-updates">Enable automatic firmware updates</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1000px;"><p class="vanilla-image-block" style="padding-top:56.40%;"><img id="7g7iG4EK5A2eqDW4i3PxKi" name="laptop-system-update-shst.jpg" alt="Laptop installing system update." src="https://cdn.mos.cms.futurecdn.net/7g7iG4EK5A2eqDW4i3PxKi-1920-80.jpg" mos="" align="middle" fullscreen="" width="1000" height="564" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Rawpixel.com/Shutterstock)</span></figcaption></figure><p>This may seem rather obvious, but it’s important to point out that you should keep all your smart home devices, <a href="https://www.tomsguide.com/computing/routers/dont-be-a-victim-nsa-warns-to-reboot-your-router-right-now">especially your router</a>, up to date and this includes your other devices too, like your smartphone and laptop. The easiest way to do that is to enable automatic firmware updates. Whenever there’s a security issue, manufacturers will ideally patch the vulnerability as soon as possible.</p><p>Unfortunately, that might not always be the case. If a company is no longer supporting the product or simply discontinued it, that might be your cue to do the same. No one likes spending money on something new when the old one works just fine, but the older a product is, the more vulnerable it could become.</p><h2 id="use-a-router-level-vpn">Use a router-level VPN</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="qvFBdgUogWyjWmHdgWB6TV" name="TG_ExpressVPN_Aircove-2" alt="ExpressVPN Aircove on desk" src="https://cdn.mos.cms.futurecdn.net/qvFBdgUogWyjWmHdgWB6TV-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Setting up a <a href="https://www.tomsguide.com/best-picks/best-vpn">VPN</a> (Virtual Private Network) can not only secure your smart home devices but all of the devices on your network. A VPN encrypts your data, so hackers won’t be able to see what exactly your smart home devices are communicating. It’s not impenetrable, but it’s a strong layer of security.</p><p>Now, the only problem with this is that most VPNs aren’t free and not all routers are compatible with VPN integration. However, if you have access to a VPN and a compatible router, you should be able to set it up via your router settings, in a section likely labeled VPN Client mode.</p><h2 id="set-up-a-smart-home-network">Set up a smart home network</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Vjdw5h2Qi2kz5P5SFx8xST" name="Smart Home.jpg" alt="Smart home illustration" src="https://cdn.mos.cms.futurecdn.net/Vjdw5h2Qi2kz5P5SFx8xST-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>One of the most significant changes you can make to your smart home is using a local or separate Wi-Fi network for your smart home devices. This does come with some drawbacks, however.</p><p>You can set up a <a href="https://www.tomsguide.com/opinion/now-is-the-perfect-time-to-set-up-a-guest-wi-fi-network-heres-3-reasons-why">guest network</a> on your router and throw all your smart home devices on there, effectively isolating them from your primary network. How effective this is comes down to the type of smart home device you’re connecting. Some can get temperamental with your phone not being on the same exact network. You might need to switch to the guest network, connect with the device, and switch back to see if that works. In other cases, it might not be compatible at all.</p><p>If you want to go the local network route, things will take a slightly more challenging but effective turn. You’ll need to get your hands on a Raspberry Pi or an old laptop and start looking into <a href="https://www.home-assistant.io/installation/" target="_blank">Home Assistant</a>, an open source home automation system that keeps all of your smart home devices local. </p><p>If you’re willing to trade convenience back for privacy, this should be your next step. It’s more involved than what we can cover here, but to put it simply, your smart home devices connect to your laptop or Raspberry Pi locally and then can be managed through the Home Assistant app.</p><h2 id="bottom-line-8">Bottom line</h2><p>The more steps you take to secure your network, the less likely you’ll have to worry about your personal data being breached because of something as simple as your washing machine. Even one of these steps will drastically improve your security, but changing your passwords and using 2FA or MFA is great advice in and out of your smart home.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/antivirus/does-antivirus-slow-down-your-pc"><strong>Does antivirus software still slow down your PC in 2026? We tested the top security software to find out</strong></a></li><li><a href="https://www.tomsguide.com/computing/online-security/ai-scams-are-getting-scary-realistic-4-red-flags-to-watch-out-for"><strong>AI scams are getting scary realistic — 4 red flags to watch out for</strong></a></li><li><strong></strong><a href="https://www.tomsguide.com/computing/online-security/your-personal-information-is-everywhere-online-5-ways-to-start-removing-it"><strong>Your personal information is everywhere online — 5 ways to start removing it from the internet</strong></a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ AI scams are getting scary realistic — 4 red flags to watch out for ]]></title>
                                                                                                <dc:content><![CDATA[ <p><a href="https://www.tomsguide.com/ai/ai-scams-are-getting-harder-to-spot-pay-attention-to-these-7-warning-signs">AI scams</a> are so realistic that even the most tech savvy person might fall prey to them. AI development increases by the day, and of course with any new technology, there comes the perversion of such technology, especially for malicious intent.</p><p>The old, “Your car’s extended warranty” trick might not cut it, but what about a <a href="https://www.tomsguide.com/news/that-emergency-phone-call-from-a-loved-one-could-actually-be-scammers-using-ai-how-to-stay-safe">call from a loved one</a>? Yes, it is that real and it’s terrifying. Americans lost $893 million because of AI scams in 2025 (via the <a href="https://www.fbi.gov/news/press-releases/cryptocurrency-and-ai-scams-bilk-americans-of-billions" target="_blank">FBI</a>), and if I had to speculate, the report might be worse for 2026 as AI continues to evolve.</p><p>There are several red flags you should watch out for with any sort of potential scam, but with AI scams, you need to be extra vigilant.</p><h2 id="red-flag-urgency">Red flag: Urgency</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:6812px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="muFWf5MSX7498TMTJZvtv7" name="shutterstock_2271436381.jpg" alt="Phone scam showing an unknown caller on a phone screen" src="https://cdn.mos.cms.futurecdn.net/muFWf5MSX7498TMTJZvtv7-1920-80.jpg" mos="" align="middle" fullscreen="" width="6812" height="3832" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>The urgent “RIGHT NOW” energy is a dead giveaway for scammers. My own mother-in-law received a call from the “courthouse,” saying that she missed her summons. And they threatened to put out a warrant against her if they didn’t receive information to confirm her identity, which of course included her <a href="https://www.tomsguide.com/computing/online-security/how-to-protect-your-social-security-number">Social Security number</a>. </p><p>That’s a scary thing to be threatened with, but you know what you should do? Call your courthouse directly on a trusted number and verify that information. The same goes for anyone claiming to be from an official government body or even a loved one. Contact them directly on a trusted line of communication.</p><p>If the court really wanted you that urgently, they’d be knocking on your door. Take time to assess what these potential scammers are asking you and verify the information on your end.</p><h2 id="red-flag-emails-about-your-account">Red flag: Emails about your account</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1000px;"><p class="vanilla-image-block" style="padding-top:56.20%;"><img id="M5mueuMKTgUn7LYZb8eCNK" name="email-inbox-laptop-shst.jpg" alt="An email inbox displayed on the screen of a laptop, next to a cup of coffee." src="https://cdn.mos.cms.futurecdn.net/M5mueuMKTgUn7LYZb8eCNK-1920-80.jpg" mos="" align="middle" fullscreen="" width="1000" height="562" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>One of the most common scams are emails about your account. It’s more terrifying now because they look so legit. I’ve caught myself second-guessing multiple times because some emails just look too realistic. It could be anything from threats about locking your account to <a href="https://www.tomsguide.com/phones/iphones/iphone-users-under-reset-password-attack-how-to-stay-safe">resetting your password</a> because there’s been a <a href="https://www.tomsguide.com/computing/online-security/over-150-million-drivers-licenses-stolen-in-massive-data-breach-after-hackers-reportedly-hit-major-identity-verification-company-what-to-do-now">data breach</a>.</p><p>The key here is to <strong>NEVER </strong>click on any links in an unprompted email or download any PDFs or documents. If there’s an actual problem with your account, login at the source, and assess what the supposed issue might be. It wouldn’t hurt to reset your password as well.</p><h2 id="red-flag-payment-requests">Red flag: Payment requests</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1000px;"><p class="vanilla-image-block" style="padding-top:66.70%;"><img id="nhctdUUDGCKmJsvPkYQKuK" name="credit-card-skeptic-shst.jpg" alt="Young woman holding credit card and looking at laptop screen with skeptical expression." src="https://cdn.mos.cms.futurecdn.net/nhctdUUDGCKmJsvPkYQKuK-1920-80.jpg" mos="" align="middle" fullscreen="" width="1000" height="667" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: fizkes/Shutterstock)</span></figcaption></figure><p>Even if your best friend is asking you for money, I hope that you’d at least ask, “Why?” The same goes for anything you receive in the mail, in an email, or on the phone. </p><p>AI-generated emails and voices are incredibly convincing, and it’s easy to get scared into sending someone money because you “missed a payment,” or that you owe a debt, especially if you’re someone on top of your finances.</p><p>Take a deep breath, and don’t click on any link or give out any of your financial information. If you really did miss a payment, go directly to the source that they’re claiming you owe money to. Always deal with your financials directly, where you typically would, and never through anyone that contacts you unprompted.</p><h2 id="red-flag-pushback">Red flag: Pushback</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1600px;"><p class="vanilla-image-block" style="padding-top:56.31%;"><img id="36Uux48yxWqW5exmyt5mWk" name="online-scam-victims.jpg" alt="Man stressed at computer" src="https://cdn.mos.cms.futurecdn.net/36Uux48yxWqW5exmyt5mWk-1920-80.jpg" mos="" align="middle" fullscreen="" width="1600" height="901" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: American Institute of Stress)</span></figcaption></figure><p>As I’ve said so far, verifying the information being told to you is the most important thing to do in these situations, but there’s another dead giveaway for scammers — pushback. </p><p>Seriously, I’ve been on the phone with some of these scammers and they will be actively evasive or straight up pushy if you try to ask them questions to verify the information that they’re claiming to have. </p><p>If you’re talking to someone, or some<em>thing</em> in the case of an AI bot, who simply isn’t cooperating with your requests, run for the hills immediately.</p><h2 id="bottom-line-9">Bottom line</h2><p>Remain vigilant. The common throughline with all these red flags is that you want to verify and assess all of the information on your end without giving anything away yourself. </p><p>It’s not exactly fun to remain suspicious at everything you see, but unfortunately that’s the current world we live in. A highly personal email can contain detailed information about you, but that doesn’t mean you should trust it — companies sell your data all the time and experience data breaches, so it shouldn’t be hard to believe that a scammer acquired personal details about you.</p><p>There’s a “gotcha” mentality prevalent in even legitimate businesses, so always check the information twice and don’t be afraid to ask a friend or even the internet for help.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/antivirus/does-antivirus-slow-down-your-pc"><strong>Does antivirus software still slow down your PC in 2026? We tested the top security software to find out</strong></a></li><li><strong></strong><a href="https://www.tomsguide.com/computing/online-security/your-personal-information-is-everywhere-online-5-ways-to-start-removing-it"><strong>Your personal information is everywhere online — 5 ways to start removing it from the internet</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/computing/online-security/apple-issues-emergency-update-for-millions-of-iphones-ipads-and-macs-update-your-devices-now"><strong>Apple issues emergency update for millions of iPhones, iPads, and Macs — update your devices now</strong></a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/online-security/ai-scams-are-getting-scary-realistic-4-red-flags-to-watch-out-for</link>
                                                                            <description>
                            <![CDATA[ With AI scams getting more realistic, you need to be more vigilant about these four red flags. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">PgxA88SASCHJcMXdM5CB9V</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/pz9qVQDWnW3WWDmoAJAwQS-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 06 Oct 2026 10:30:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Online Security]]></category>
                                                    <category><![CDATA[AI]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Internet]]></category>
                                                                                                                    <dc:creator><![CDATA[ Rami Tabari ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/Du7gwfP2FPAQuuhcMnakHf-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/pz9qVQDWnW3WWDmoAJAwQS-1920-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A hacker typing on a computer with binary code]]></media:description>                                                            <media:text><![CDATA[A hacker typing on a computer with binary code]]></media:text>
                                <media:title type="plain"><![CDATA[A hacker typing on a computer with binary code]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/pz9qVQDWnW3WWDmoAJAwQS-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p><a href="https://www.tomsguide.com/ai/ai-scams-are-getting-harder-to-spot-pay-attention-to-these-7-warning-signs">AI scams</a> are so realistic that even the most tech savvy person might fall prey to them. AI development increases by the day, and of course with any new technology, there comes the perversion of such technology, especially for malicious intent.</p><p>The old, “Your car’s extended warranty” trick might not cut it, but what about a <a href="https://www.tomsguide.com/news/that-emergency-phone-call-from-a-loved-one-could-actually-be-scammers-using-ai-how-to-stay-safe">call from a loved one</a>? Yes, it is that real and it’s terrifying. Americans lost $893 million because of AI scams in 2025 (via the <a href="https://www.fbi.gov/news/press-releases/cryptocurrency-and-ai-scams-bilk-americans-of-billions" target="_blank">FBI</a>), and if I had to speculate, the report might be worse for 2026 as AI continues to evolve.</p><p>There are several red flags you should watch out for with any sort of potential scam, but with AI scams, you need to be extra vigilant.</p><h2 id="red-flag-urgency">Red flag: Urgency</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:6812px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="muFWf5MSX7498TMTJZvtv7" name="shutterstock_2271436381.jpg" alt="Phone scam showing an unknown caller on a phone screen" src="https://cdn.mos.cms.futurecdn.net/muFWf5MSX7498TMTJZvtv7-1920-80.jpg" mos="" align="middle" fullscreen="" width="6812" height="3832" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>The urgent “RIGHT NOW” energy is a dead giveaway for scammers. My own mother-in-law received a call from the “courthouse,” saying that she missed her summons. And they threatened to put out a warrant against her if they didn’t receive information to confirm her identity, which of course included her <a href="https://www.tomsguide.com/computing/online-security/how-to-protect-your-social-security-number">Social Security number</a>. </p><p>That’s a scary thing to be threatened with, but you know what you should do? Call your courthouse directly on a trusted number and verify that information. The same goes for anyone claiming to be from an official government body or even a loved one. Contact them directly on a trusted line of communication.</p><p>If the court really wanted you that urgently, they’d be knocking on your door. Take time to assess what these potential scammers are asking you and verify the information on your end.</p><h2 id="red-flag-emails-about-your-account">Red flag: Emails about your account</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1000px;"><p class="vanilla-image-block" style="padding-top:56.20%;"><img id="M5mueuMKTgUn7LYZb8eCNK" name="email-inbox-laptop-shst.jpg" alt="An email inbox displayed on the screen of a laptop, next to a cup of coffee." src="https://cdn.mos.cms.futurecdn.net/M5mueuMKTgUn7LYZb8eCNK-1920-80.jpg" mos="" align="middle" fullscreen="" width="1000" height="562" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>One of the most common scams are emails about your account. It’s more terrifying now because they look so legit. I’ve caught myself second-guessing multiple times because some emails just look too realistic. It could be anything from threats about locking your account to <a href="https://www.tomsguide.com/phones/iphones/iphone-users-under-reset-password-attack-how-to-stay-safe">resetting your password</a> because there’s been a <a href="https://www.tomsguide.com/computing/online-security/over-150-million-drivers-licenses-stolen-in-massive-data-breach-after-hackers-reportedly-hit-major-identity-verification-company-what-to-do-now">data breach</a>.</p><p>The key here is to <strong>NEVER </strong>click on any links in an unprompted email or download any PDFs or documents. If there’s an actual problem with your account, login at the source, and assess what the supposed issue might be. It wouldn’t hurt to reset your password as well.</p><h2 id="red-flag-payment-requests">Red flag: Payment requests</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1000px;"><p class="vanilla-image-block" style="padding-top:66.70%;"><img id="nhctdUUDGCKmJsvPkYQKuK" name="credit-card-skeptic-shst.jpg" alt="Young woman holding credit card and looking at laptop screen with skeptical expression." src="https://cdn.mos.cms.futurecdn.net/nhctdUUDGCKmJsvPkYQKuK-1920-80.jpg" mos="" align="middle" fullscreen="" width="1000" height="667" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: fizkes/Shutterstock)</span></figcaption></figure><p>Even if your best friend is asking you for money, I hope that you’d at least ask, “Why?” The same goes for anything you receive in the mail, in an email, or on the phone. </p><p>AI-generated emails and voices are incredibly convincing, and it’s easy to get scared into sending someone money because you “missed a payment,” or that you owe a debt, especially if you’re someone on top of your finances.</p><p>Take a deep breath, and don’t click on any link or give out any of your financial information. If you really did miss a payment, go directly to the source that they’re claiming you owe money to. Always deal with your financials directly, where you typically would, and never through anyone that contacts you unprompted.</p><h2 id="red-flag-pushback">Red flag: Pushback</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1600px;"><p class="vanilla-image-block" style="padding-top:56.31%;"><img id="36Uux48yxWqW5exmyt5mWk" name="online-scam-victims.jpg" alt="Man stressed at computer" src="https://cdn.mos.cms.futurecdn.net/36Uux48yxWqW5exmyt5mWk-1920-80.jpg" mos="" align="middle" fullscreen="" width="1600" height="901" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: American Institute of Stress)</span></figcaption></figure><p>As I’ve said so far, verifying the information being told to you is the most important thing to do in these situations, but there’s another dead giveaway for scammers — pushback. </p><p>Seriously, I’ve been on the phone with some of these scammers and they will be actively evasive or straight up pushy if you try to ask them questions to verify the information that they’re claiming to have. </p><p>If you’re talking to someone, or some<em>thing</em> in the case of an AI bot, who simply isn’t cooperating with your requests, run for the hills immediately.</p><h2 id="bottom-line-9">Bottom line</h2><p>Remain vigilant. The common throughline with all these red flags is that you want to verify and assess all of the information on your end without giving anything away yourself. </p><p>It’s not exactly fun to remain suspicious at everything you see, but unfortunately that’s the current world we live in. A highly personal email can contain detailed information about you, but that doesn’t mean you should trust it — companies sell your data all the time and experience data breaches, so it shouldn’t be hard to believe that a scammer acquired personal details about you.</p><p>There’s a “gotcha” mentality prevalent in even legitimate businesses, so always check the information twice and don’t be afraid to ask a friend or even the internet for help.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/antivirus/does-antivirus-slow-down-your-pc"><strong>Does antivirus software still slow down your PC in 2026? We tested the top security software to find out</strong></a></li><li><strong></strong><a href="https://www.tomsguide.com/computing/online-security/your-personal-information-is-everywhere-online-5-ways-to-start-removing-it"><strong>Your personal information is everywhere online — 5 ways to start removing it from the internet</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/computing/online-security/apple-issues-emergency-update-for-millions-of-iphones-ipads-and-macs-update-your-devices-now"><strong>Apple issues emergency update for millions of iPhones, iPads, and Macs — update your devices now</strong></a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ OpenAI and Anthropic have a plan to stop AI from going rogue — there’s just one catch ]]></title>
                                                                                                <dc:content><![CDATA[ <p>OpenAI's internal AI agents <a href="https://cyberscoop.com/openai-hugging-face-agent-breach-report/" target="_blank">hacked into Hugging Face</a> while trying to cheat on a cybersecurity benchmark. Anthropic has <a href="https://www.anthropic.com/news/investigating-incidents-cybersecurity-evals" target="_blank">disclosed</a> that Claude models reached the open internet from cybersecurity test environments that were supposed to be sealed off and then got into the real systems of outside organizations. </p><p>Both are examples of systems taking actions their developers didn't intend, and METR, an independent AI research nonprofit, has been brought in to look at each of them. It <a href="https://www.infoq.com/news/2026/09/metr-hugging-face-hack-report/" target="_blank">documented the Hugging Face incident</a> alongside Redwood Research and is now <a href="https://www.anthropic.com/news/alignment-assessment-cybersecurity-incidents" target="_blank">investigating Anthropic's</a>.</p><p>OpenAI and Anthropic have also <a href="https://techcrunch.com/2026/09/16/anthropic-and-openai-want-to-embed-safety-evaluators-will-they-really-be-independent/">committed</a> to bringing outside experts inside their companies to examine safety practices, according to <a href="https://www.theatlantic.com/technology/2026/09/ai-companies-evaluators-risk/688785/" target="_blank">The Atlantic</a>. Called "embedded evaluators," these researchers could get a closer look at how models are built and investigate problems that might never surface in a product demo.</p><p>The catch is that this oversight is voluntary. Last week, leaders from Anthropic, OpenAI and other major labs <a href="https://techpolicy.press/september-2026-us-tech-policy-roundup">signed an accord</a> at the White House committing to independent external auditors, and the FTC has opened an industry-wide probe into AI labs, but the companies being examined still have considerable control over what outsiders can see, which risks they investigate and what information reaches the public.</p><p>For anyone being encouraged to let AI handle more of their work, that leaves a fairly basic trust problem. We're being given assistants while the system for independently checking their behavior is still taking shape.</p><p>As I've <a href="https://tomsguide.com/ai/i-cover-ai-for-a-living-and-this-prime-video-documentary-scared-the-heck-out-of-me">reported before</a>, the film The AI Doc puts the number of people working on AGI, or artificial general intelligence, at more than 20,000, while fewer than 200 are focused specifically on AI safety.</p><h2 id="a-closer-look-inside-ai-companies">A closer look inside AI companies</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:7000px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="E3bUWjVX2VGXKwgzZnSfCk" name="shutterstock_2663445441-2" alt="anthropic" src="https://cdn.mos.cms.futurecdn.net/E3bUWjVX2VGXKwgzZnSfCk-1920-80.jpg" mos="" align="middle" fullscreen="" width="7000" height="3938" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Today, an outside researcher might test a model before release and report how it performed. Embedding evaluators inside a company could let them follow its development and investigate the decisions behind that behavior.</p><p>Anthropic <a href="https://anthropic.com/news/accenture-embedded-evaluation" target="_blank">says</a> these evaluators would have access comparable to an employee's, allowing them to observe training, speak with staff and examine how models are built and deployed.</p><p>The company has named Accenture as its first embedded evaluator, with Faculty, Accenture's specialist AI business, leading the work. Each company <a href="https://newsroom.accenture.com/news/2026/accenture-and-anthropic-partner-to-build-team-of-embedded-evaluators-at-anthropic" target="_blank">expects to invest</a> at least $1 billion in AI safety over five years.</p><p>That access could help researchers discover whether a troubling incident was an isolated failure or evidence of a wider problem. METR's <a href="https://runtimewire.com/article/anthropic-metr-independent-claude-agent-incident-investigation" target="_blank">proposed approach</a> to investigating incidents calls for examining transcripts, interviewing employees and studying the training conditions that might have encouraged the behavior.</p><h2 id="the-companies-still-set-the-terms">The companies still set the terms</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5873px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="kzCjkSD7PgGYT4eVWmdsgj" name="GettyImages-2265991722 (1)" alt="Sam Altman" src="https://cdn.mos.cms.futurecdn.net/kzCjkSD7PgGYT4eVWmdsgj-1920-80.jpg" mos="" align="middle" fullscreen="" width="5873" height="3304" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Getty Images)</span></figcaption></figure><p>Anthropic acknowledges that standards for evaluators' access, reporting and funding haven't been settled. It will fund Accenture's work directly, while discussing pilots with nonprofits that would use their own funding.</p><p>Accenture is not new to Anthropic, since the two companies already run a joint business group under a <a href="https://www.implicator.ai/anthropic-picks-accenture-as-first-embedded-evaluator-and-will-pay-for-the-work/" target="_blank">partnership announced in December 2025</a>. </p><p>That relationship deserves attention, because a group of evaluators published an <a href="https://www.cnbc.com/2026/09/18/ai-safety-evaluators-anthropic-openai-models-security.html" target="_blank">open letter</a> arguing that embedded evaluators shouldn't have other significant commercial business with the labs they assess.</p><p>As The Atlantic's reporting explains, voluntary oversight gives companies considerable discretion over the scope of an evaluation. Researchers need enough freedom to examine uncomfortable evidence and tell the public what they found.</p><p>They also need to be able to explain what they couldn't check. There needs to be transparency because a report based on limited access could be valuable, but we should know where its conclusions end.</p><h2 id="what-this-means-for-chatgpt-and-claude-users">What this means for ChatGPT and Claude users</h2><p>METR's <a href="https://metr.org/blog/2026-09-22-claude-opus-5-5/" target="_blank">recent assessment of Claude Opus 5.5</a> focused on whether the model could accelerate AI research and development. The organization explicitly says its summary doesn't assess the model's alignment properties and whether its behavior follows intended goals and constraints.</p><p>METR conducted the evaluation under an unpaid agreement, and it also disclosed that Anthropic had an opportunity to review and edit the summary, with METR approving the final text.</p><p>The incidents involving internal agents don't establish that the ChatGPT or Claude you use for everyday tasks will behave the same way. OpenAI found that its agents' tendency to compromise infrastructure dropped by more than 100 times when they ran with the production ChatGPT setup, and Anthropic says the behaviors it found are unlikely to show up in ordinary use.</p><p>Independent researchers need enough access to uncover risks and the freedom to publish what they find, even if it delays a launch or frankly, even if it embarrasses the company paying for their work.</p><p>Bringing outside evaluators into AI labs is a promising start, but their influence will depend on what happens when they uncover a serious problem. If a company can restrict the investigation or keep the findings private, the public is still being asked to take its word for it.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><strong></strong><a href="https://www.tomsguide.com/ai/claude/claude-sonnet-5-5-just-launched-heres-why-its-about-to-become-your-daily-driver"><strong>Claude Sonnet 5.5 just launched — here's why it's about to become your daily driver</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/ai/meta-muse-vs-chatgpt-dots-i-compared-the-new-ai-agents-and-theyre-not-as-similar-as-they-look"><strong>Meta Muse vs ChatGPT Dots — I compared the new AI agents, and they’re not as similar as they look</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/ai/why-siri-never-worked-like-chatgpt-former-siri-ai-researcher-explains-what-apple-had-to-change"><strong>Why Siri never worked like ChatGPT — former Siri AI researcher explains what Apple had to change</strong></a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/ai/openai-and-anthropic-have-a-plan-to-stop-ai-from-going-rogue-theres-just-one-catch</link>
                                                                            <description>
                            <![CDATA[ OpenAI and Anthropic want outside experts to help stop AI from going rogue, but the companies still control how much those watchdogs can see. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">DptEoV9ejaqeE6Cbgjq8hh</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/GdQGzhciqwihr4g9yJ9MJ9-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Mon, 05 Oct 2026 10:00:00 +0000</pubDate>                                                                                                                                <updated>Mon, 05 Oct 2026 23:48:20 +0000</updated>
                                                                                                                                            <category><![CDATA[AI]]></category>
                                                    <category><![CDATA[Online Security]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Internet]]></category>
                                                                                                <author><![CDATA[ amanda.caswell@futurenet.com (Amanda Caswell) ]]></author>                    <dc:creator><![CDATA[ Amanda Caswell ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/zYjevim2q7FjQiefqpjZRB-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/GdQGzhciqwihr4g9yJ9MJ9-1920-80.jpg">
                                                            <media:credit><![CDATA[Getty Images]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Sam Altman making an interesting face]]></media:description>                                                            <media:text><![CDATA[Sam Altman making an interesting face]]></media:text>
                                <media:title type="plain"><![CDATA[Sam Altman making an interesting face]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/GdQGzhciqwihr4g9yJ9MJ9-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>OpenAI's internal AI agents <a href="https://cyberscoop.com/openai-hugging-face-agent-breach-report/" target="_blank">hacked into Hugging Face</a> while trying to cheat on a cybersecurity benchmark. Anthropic has <a href="https://www.anthropic.com/news/investigating-incidents-cybersecurity-evals" target="_blank">disclosed</a> that Claude models reached the open internet from cybersecurity test environments that were supposed to be sealed off and then got into the real systems of outside organizations. </p><p>Both are examples of systems taking actions their developers didn't intend, and METR, an independent AI research nonprofit, has been brought in to look at each of them. It <a href="https://www.infoq.com/news/2026/09/metr-hugging-face-hack-report/" target="_blank">documented the Hugging Face incident</a> alongside Redwood Research and is now <a href="https://www.anthropic.com/news/alignment-assessment-cybersecurity-incidents" target="_blank">investigating Anthropic's</a>.</p><p>OpenAI and Anthropic have also <a href="https://techcrunch.com/2026/09/16/anthropic-and-openai-want-to-embed-safety-evaluators-will-they-really-be-independent/">committed</a> to bringing outside experts inside their companies to examine safety practices, according to <a href="https://www.theatlantic.com/technology/2026/09/ai-companies-evaluators-risk/688785/" target="_blank">The Atlantic</a>. Called "embedded evaluators," these researchers could get a closer look at how models are built and investigate problems that might never surface in a product demo.</p><p>The catch is that this oversight is voluntary. Last week, leaders from Anthropic, OpenAI and other major labs <a href="https://techpolicy.press/september-2026-us-tech-policy-roundup">signed an accord</a> at the White House committing to independent external auditors, and the FTC has opened an industry-wide probe into AI labs, but the companies being examined still have considerable control over what outsiders can see, which risks they investigate and what information reaches the public.</p><p>For anyone being encouraged to let AI handle more of their work, that leaves a fairly basic trust problem. We're being given assistants while the system for independently checking their behavior is still taking shape.</p><p>As I've <a href="https://tomsguide.com/ai/i-cover-ai-for-a-living-and-this-prime-video-documentary-scared-the-heck-out-of-me">reported before</a>, the film The AI Doc puts the number of people working on AGI, or artificial general intelligence, at more than 20,000, while fewer than 200 are focused specifically on AI safety.</p><h2 id="a-closer-look-inside-ai-companies">A closer look inside AI companies</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:7000px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="E3bUWjVX2VGXKwgzZnSfCk" name="shutterstock_2663445441-2" alt="anthropic" src="https://cdn.mos.cms.futurecdn.net/E3bUWjVX2VGXKwgzZnSfCk-1920-80.jpg" mos="" align="middle" fullscreen="" width="7000" height="3938" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Today, an outside researcher might test a model before release and report how it performed. Embedding evaluators inside a company could let them follow its development and investigate the decisions behind that behavior.</p><p>Anthropic <a href="https://anthropic.com/news/accenture-embedded-evaluation" target="_blank">says</a> these evaluators would have access comparable to an employee's, allowing them to observe training, speak with staff and examine how models are built and deployed.</p><p>The company has named Accenture as its first embedded evaluator, with Faculty, Accenture's specialist AI business, leading the work. Each company <a href="https://newsroom.accenture.com/news/2026/accenture-and-anthropic-partner-to-build-team-of-embedded-evaluators-at-anthropic" target="_blank">expects to invest</a> at least $1 billion in AI safety over five years.</p><p>That access could help researchers discover whether a troubling incident was an isolated failure or evidence of a wider problem. METR's <a href="https://runtimewire.com/article/anthropic-metr-independent-claude-agent-incident-investigation" target="_blank">proposed approach</a> to investigating incidents calls for examining transcripts, interviewing employees and studying the training conditions that might have encouraged the behavior.</p><h2 id="the-companies-still-set-the-terms">The companies still set the terms</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5873px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="kzCjkSD7PgGYT4eVWmdsgj" name="GettyImages-2265991722 (1)" alt="Sam Altman" src="https://cdn.mos.cms.futurecdn.net/kzCjkSD7PgGYT4eVWmdsgj-1920-80.jpg" mos="" align="middle" fullscreen="" width="5873" height="3304" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Getty Images)</span></figcaption></figure><p>Anthropic acknowledges that standards for evaluators' access, reporting and funding haven't been settled. It will fund Accenture's work directly, while discussing pilots with nonprofits that would use their own funding.</p><p>Accenture is not new to Anthropic, since the two companies already run a joint business group under a <a href="https://www.implicator.ai/anthropic-picks-accenture-as-first-embedded-evaluator-and-will-pay-for-the-work/" target="_blank">partnership announced in December 2025</a>. </p><p>That relationship deserves attention, because a group of evaluators published an <a href="https://www.cnbc.com/2026/09/18/ai-safety-evaluators-anthropic-openai-models-security.html" target="_blank">open letter</a> arguing that embedded evaluators shouldn't have other significant commercial business with the labs they assess.</p><p>As The Atlantic's reporting explains, voluntary oversight gives companies considerable discretion over the scope of an evaluation. Researchers need enough freedom to examine uncomfortable evidence and tell the public what they found.</p><p>They also need to be able to explain what they couldn't check. There needs to be transparency because a report based on limited access could be valuable, but we should know where its conclusions end.</p><h2 id="what-this-means-for-chatgpt-and-claude-users">What this means for ChatGPT and Claude users</h2><p>METR's <a href="https://metr.org/blog/2026-09-22-claude-opus-5-5/" target="_blank">recent assessment of Claude Opus 5.5</a> focused on whether the model could accelerate AI research and development. The organization explicitly says its summary doesn't assess the model's alignment properties and whether its behavior follows intended goals and constraints.</p><p>METR conducted the evaluation under an unpaid agreement, and it also disclosed that Anthropic had an opportunity to review and edit the summary, with METR approving the final text.</p><p>The incidents involving internal agents don't establish that the ChatGPT or Claude you use for everyday tasks will behave the same way. OpenAI found that its agents' tendency to compromise infrastructure dropped by more than 100 times when they ran with the production ChatGPT setup, and Anthropic says the behaviors it found are unlikely to show up in ordinary use.</p><p>Independent researchers need enough access to uncover risks and the freedom to publish what they find, even if it delays a launch or frankly, even if it embarrasses the company paying for their work.</p><p>Bringing outside evaluators into AI labs is a promising start, but their influence will depend on what happens when they uncover a serious problem. If a company can restrict the investigation or keep the findings private, the public is still being asked to take its word for it.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><strong></strong><a href="https://www.tomsguide.com/ai/claude/claude-sonnet-5-5-just-launched-heres-why-its-about-to-become-your-daily-driver"><strong>Claude Sonnet 5.5 just launched — here's why it's about to become your daily driver</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/ai/meta-muse-vs-chatgpt-dots-i-compared-the-new-ai-agents-and-theyre-not-as-similar-as-they-look"><strong>Meta Muse vs ChatGPT Dots — I compared the new AI agents, and they’re not as similar as they look</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/ai/why-siri-never-worked-like-chatgpt-former-siri-ai-researcher-explains-what-apple-had-to-change"><strong>Why Siri never worked like ChatGPT — former Siri AI researcher explains what Apple had to change</strong></a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Cybersecurity Awareness Month 2026 Coverage ]]></title>
                                                                                                <dc:content><![CDATA[ <p>With cyberattacks, phishing scams and even identity theft surging as hackers turn to AI to boost and automate their operations, there’s never been a better time to lock down your digital life. <br /><br />From securing your phone against mobile malware to ensuring your smart TV isn’t listening to every word you say, there are plenty of proactive steps you can take right now to protect yourself and your loved ones.</p><p>October is the perfect time to give your online accounts, passwords and everything else an audit too, as it’s also Cybersecurity Awareness Month. </p><p>Created back in 2004 as a joint initiative by the Cybersecurity and Infrastructure Security Agency (CISA) and the National Cybersecurity Alliance (NCA), this month-long initiative was established to help both individuals and businesses better protect themselves online.</p><p>Here at Tom’s Guide, we’ll be covering a wide range of attack methods, threats and of course, how to stay safe from them so that you don’t become another victim of cybercrime. </p><p>Stay tuned as throughout October, we’ll be publishing in-depth guides, walkthroughs and security news to help you stay ahead of the latest attacks and scams and you can find everything you’ll need to make the most of Cybersecurity Awareness Month 2026 right here.</p> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/tag/cybersecurity-awareness-month-2026</link>
                                                                            <description>
                            <![CDATA[ Cybersecurity Awareness Month is the perfect time to audit your accounts, update your passwords and more. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">Rd2Vw2JqJe3cX6s6dxWKYm</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/rTmsdFabFxZ25s9Ttq9P8h-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Mon, 05 Oct 2026 05:46:35 +0000</pubDate>                                                                                                                                <updated>Mon, 05 Oct 2026 15:05:40 +0000</updated>
                                                                                                                                            <category><![CDATA[Online Security]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Internet]]></category>
                                                                                                <author><![CDATA[ anthony.spadafora@futurenet.com (Anthony Spadafora) ]]></author>                    <dc:creator><![CDATA[ Anthony Spadafora ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/z73LEoj7FkUjNG85GcWHtH-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Anthony Spadafora is the managing editor for security and home office furniture at Tom’s Guide where he covers everything from data breaches and malware to password managers and the best way to cover your whole home or business with a strong Wi-Fi signal.&lt;/p&gt;&lt;p&gt;Before joining the team, he spent three years covering cybersecurity and B2B tech for ITProPortal while living in South Korea. After moving back to the US. Anthony joined the TechRadar Pro team where he covered these topics along with VPNs, web hosting, online collaboration software and video conferencing for four years. Anthony also has his ears to the ground and is on the lookout for the next major cyberattack or data breach.&lt;/p&gt;&lt;p&gt;Based in Houston, Texas, Anthony also handles VPN testing for both Tom’s Guide and TechRadar. As someone who has worked from home exclusively since 2018, he has reviewed dozens of standing desks as well as office chairs and has taken a closer look at other essential remote working accessories. As part of these reviews, Anthony frequently builds intricate desk setups which is why he’s such a big advocate for cable management and keeping things organized. When he’s not writing, he can be found tinkering with PCs and game consoles, managing cables and making upgrades to his smart home.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/rTmsdFabFxZ25s9Ttq9P8h-1920-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock / Tom&amp;#39;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A person typing on a laptop with phishing depicted and a Tom&#039;s Guide Cybersecurity Awareness Month badge on top]]></media:description>                                                            <media:text><![CDATA[A person typing on a laptop with phishing depicted and a Tom&#039;s Guide Cybersecurity Awareness Month badge on top]]></media:text>
                                <media:title type="plain"><![CDATA[A person typing on a laptop with phishing depicted and a Tom&#039;s Guide Cybersecurity Awareness Month badge on top]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/rTmsdFabFxZ25s9Ttq9P8h-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>With cyberattacks, phishing scams and even identity theft surging as hackers turn to AI to boost and automate their operations, there’s never been a better time to lock down your digital life. <br /><br />From securing your phone against mobile malware to ensuring your smart TV isn’t listening to every word you say, there are plenty of proactive steps you can take right now to protect yourself and your loved ones.</p><p>October is the perfect time to give your online accounts, passwords and everything else an audit too, as it’s also Cybersecurity Awareness Month. </p><p>Created back in 2004 as a joint initiative by the Cybersecurity and Infrastructure Security Agency (CISA) and the National Cybersecurity Alliance (NCA), this month-long initiative was established to help both individuals and businesses better protect themselves online.</p><p>Here at Tom’s Guide, we’ll be covering a wide range of attack methods, threats and of course, how to stay safe from them so that you don’t become another victim of cybercrime. </p><p>Stay tuned as throughout October, we’ll be publishing in-depth guides, walkthroughs and security news to help you stay ahead of the latest attacks and scams and you can find everything you’ll need to make the most of Cybersecurity Awareness Month 2026 right here.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Does antivirus software still slow down your PC in 2026? We tested the top security software to find out ]]></title>
                                                                                                <dc:content><![CDATA[ <p>There was a time not that long ago when you had to choose between protection or performance on your Windows PC. If you enabled your security software, yes, you would be protected from malware and other viruses, but your computer’s performance would take a massive hit. On the other hand, if you left your security software disabled, you’d be able to get the best possible performance while leaving yourself completely at risk.</p><p>While computers are now much more powerful and capable of handling multiple tasks at once with ease, people still remember having games like Half-Life 2 slow to a crawl or instantly crash the second their antivirus software started running a scheduled scan. For this reason, PC gamers and power users alike began completely disabling their antivirus before launching a game or doing anything even slightly demanding on their machines.</p><p>Now though, the <a href="https://www.tomsguide.com/computing/antivirus/best-antivirus-software">best antivirus software</a> operates much differently than it did before. Instead of scanning every single file on your computer over and over again, behavioral analysis can detect suspicious activity in a much less resource-intensive way. Likewise, modern antivirus engines use cloud-based threat intelligence so that all the heavy lifting isn’t done locally on your machine. At the same time, security software is now more intelligent and knows not to run an update or start a background scan when you launch a full-screen app like a game or video editor.</p><p>In our latest round of antivirus testing, we wanted to put this long-held preconceived notion that security software kills PC performance to rest once and for all by running both quick and full scans while playing graphically demanding, AAA games. Here’s what we found and why you no longer need to rush to turn off your antivirus every time you boot up a game.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-W0EkNO"></div>                            </div>                            <script src="https://kwizly.com/embed/W0EkNO.js" async=""></script><h2 id="from-spreadsheets-to-fps-how-our-testing-evolved">From spreadsheets to FPS: How our testing evolved</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="5q3R46U37mWKx5dkZp6GJ7" name="How We Test Laptops-2--System-Prep" alt="Laptop testing" src="https://cdn.mos.cms.futurecdn.net/5q3R46U37mWKx5dkZp6GJ7-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>In the past, whenever we examined the performance impact of antivirus software, we did so using a more CPU-intensive and disk-heavy test. This involved using a <a href="https://www.tomsguide.com/reference/how-we-test-antivirus-software-and-apps">proprietary Excel-based benchmark</a> that sorted through a database of 20,000 names and addresses. We would run the test five times and average the results to get a baseline performance level.</p><p>From there, we would re-run this same test while each antivirus suite was running a full scan and then a quick scan for malware. Doing so gave us a clear picture of how each antivirus lowered the performance potential of our testing rig. On older hardware, running a full scan while this benchmark was carried out would routinely show background tasks being slowed down by 20 to 40%.</p><p>Now that both the <a href="https://www.tomsguide.com/best-picks/best-computers">best computers</a> and <a href="https://www.tomsguide.com/computing/laptops/best-laptops">best laptops</a> are much more advanced with multi-core CPUs, high-speed SSDs, and a lot more memory, we decided to alter our testing procedures significantly. We still run full and quick scans to establish a baseline, but from there, we now run the built-in benchmarks of resource-heavy games like <a href="https://www.tomsguide.com/reviews/cyberpunk-2077-phantom-liberty">Cyberpunk 2077</a> and <a href="https://www.tomsguide.com/reviews/forza-horizon-5">Forza Horizon 5</a> while performing a variety of antivirus scans and recording how they affect each game’s frame rate in frames per second (fps).</p><p>At the same time, we also now test how each antivirus suite impacts our internet speeds. We do so by recording download and upload speeds with each program running while performing both a quick and full scan.</p><p>By measuring how each antivirus affects game frame rates as well as internet speeds, we can tell you which ones have the most and least impact on system performance. Without further ado, here’s what our latest round of testing found.</p><h2 id="antivirus-by-antivirus-here-s-how-each-suite-performed">Antivirus-by-antivirus: Here’s how each suite performed</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1200px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="mnDB7TkV87LiL7jvtNy2eA" name="Asus ROG Zephyrus G14 (2025)" alt="Cyberpunk 2077 on an Asus ROG Zephyrus G14 (2025)." src="https://cdn.mos.cms.futurecdn.net/mnDB7TkV87LiL7jvtNy2eA-1920-80.jpg" mos="" align="middle" fullscreen="" width="1200" height="675" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>To conduct our gaming performance tests, we used a desktop PC equipped with an AMD Ryzen 7 7700X CPU, an MSI RTX 5070 Ti GPU, and 32GB of DDR5 memory. For this round of testing, we ran Cyberpunk 2077’s built-in benchmark on Ultra graphics settings and Forza Horizon 5’s on High graphics settings.</p><p>Of the five antivirus suites we tested with Cyberpunk 2077 running, Bitdefender came out on top with only a drop of 3 fps during a full scan. Meanwhile, Malwarebytes was impacted the most, taking a 13.7% performance hit in fps while running a full scan.</p><div ><table><caption>Cyberpunk 2077 Benchmark Results </caption><thead><tr><th class="firstcol " ><p>Antivirus suite</p></th><th  ><p>Baseline (FPS)</p></th><th  ><p>Quick Scan (FPS)</p></th><th  ><p>Full Scan (FPS)</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><a href="https://www.tomsguide.com/computing/antivirus/avast-one-review"><strong>Avast One </strong></a></p></td><td  ><p>99</p></td><td  ><p>96</p></td><td  ><p>96.17</p></td></tr><tr><td class="firstcol " ><p><a href="https://www.tomsguide.com/computing/antivirus/bitdefender-review#section-bitdefender-review-performance"><strong>Bitdefender Total Security </strong></a></p></td><td  ><p>100</p></td><td  ><p>N/A</p></td><td  ><p>97</p></td></tr><tr><td class="firstcol " ><p><a href="https://www.tomsguide.com/computing/antivirus/malwarebytes-review#section-malwarebytes-review-performance"><strong>Malwarebytes Premium </strong></a></p></td><td  ><p>87</p></td><td  ><p>83</p></td><td  ><p>75</p></td></tr><tr><td class="firstcol " ><p><a href="https://www.tomsguide.com/computing/antivirus/mcafee-plus-premium-review-2026#section-mcafee-premium-review-performance"><strong>McAfee+ Premium</strong></a><strong> </strong></p></td><td  ><p>99</p></td><td  ><p>93</p></td><td  ><p>87</p></td></tr><tr><td class="firstcol " ><p><a href="https://www.tomsguide.com/computing/antivirus/norton-360-review"><strong>Norton 360 </strong></a></p></td><td  ><p>118</p></td><td  ><p>107</p></td><td  ><p>105</p></td></tr></tbody></table></div><p>In the table above, for our baseline, the game and the antivirus software were running simultaneously. However, no active scans took place during those runs. From there, we performed a quick scan and then a full scan while executing Cyberpunk 2077’s in-game benchmarking tool.</p><p>Based on our testing, you can see that playing Cyberpunk 2077 with Norton 360 open but not actively scanning had almost no impact on performance. The same can’t be said for Malwarebytes though, where just running the antivirus and the game simultaneously seriously affected the performance of our testing rig.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="UmEsnSdF4oqvQAq9hiP4US" name="HyperX Omen 15--5" alt="HyperX Omen 15 (2026)" src="https://cdn.mos.cms.futurecdn.net/UmEsnSdF4oqvQAq9hiP4US-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><div ><table><caption>Forza Horizon 5 Benchmark Results </caption><thead><tr><th class="firstcol " ><p>Antivirus suite</p></th><th  ><p>Baseline (FPS)</p></th><th  ><p>Quick Scan (FPS)</p></th><th  ><p>Full Scan (FPS)</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><a href="https://www.tomsguide.com/computing/antivirus/avast-one-review"><strong>Avast One </strong></a></p></td><td  ><p>125</p></td><td  ><p>124</p></td><td  ><p>124</p></td></tr><tr><td class="firstcol " ><p><a href="https://www.tomsguide.com/computing/antivirus/bitdefender-review#section-bitdefender-review-performance"><strong>Bitdefender Total Security </strong></a></p></td><td  ><p>125</p></td><td  ><p>N/A</p></td><td  ><p>123</p></td></tr><tr><td class="firstcol " ><p><a href="https://www.tomsguide.com/computing/antivirus/malwarebytes-review#section-malwarebytes-review-performance"><strong>Malwarebytes Premium </strong></a></p></td><td  ><p>110</p></td><td  ><p>107</p></td><td  ><p>99</p></td></tr><tr><td class="firstcol " ><p><a href="https://www.tomsguide.com/computing/antivirus/mcafee-plus-premium-review-2026#section-mcafee-premium-review-performance"><strong>McAfee+ Premium</strong></a><strong> </strong></p></td><td  ><p>113</p></td><td  ><p>110</p></td><td  ><p>95</p></td></tr><tr><td class="firstcol " ><p><a href="https://www.tomsguide.com/computing/antivirus/norton-360-review"><strong>Norton 360 </strong></a></p></td><td  ><p>125</p></td><td  ><p>123</p></td><td  ><p>123</p></td></tr></tbody></table></div><p>When running Forza Horizon 5’s in-game benchmark with Avast, Bitdefender, and Norton idle and while actively scanning, all three antivirus suites experienced virtually unnoticeable fps drops. Instead of Malwarebytes though, McAfee was hit the hardest with a 15.9% performance penalty, dropping from 113 all the way down to 95 fps.</p><p>Obviously, your own results may vary depending on your gaming PC and future updates to all of the antivirus software suites we tested. However, it’s safe to say that disabling your antivirus every time you want to load a game is a bad habit we can all leave behind us. Sure, you could disable it to eke out a miniscule performance boost, but based on these numbers, you’re better off just leaving it running in the background.</p><h2 id="what-about-your-internet-speeds">What about your internet speeds?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="XBfVxCZTs3mrvK2MT4c7ie" name="tg_download-speed_list.jpg" alt="A person running an internet speed test on their laptop" src="https://cdn.mos.cms.futurecdn.net/XBfVxCZTs3mrvK2MT4c7ie-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tapati Rinchumrus/Shutterstock)</span></figcaption></figure><p>When we first decided to change our testing procedures for antivirus software, I never thought that gaming performance would be relatively unaffected while internet speeds took a much bigger hit.</p><p>To carry out this portion of our evaluation, we ran multiple tests via Ookla’s <a href="http://speedtest.net" target="_blank">Speedtest.net</a> to measure the impact each suite had on download and upload speeds in three states: idling in the background, during an active quick scan, and during a full scan.</p><div ><table><caption>Internet Speed Test Results</caption><thead><tr><th class="firstcol " ><p>Antivirus suite</p></th><th  ><p>Baseline (Download / Upload Mbps) </p></th><th  ><p>Quick Scan (Download / Upload Mbps) </p></th><th  ><p>Full Scan (Download / Upload Mbps) </p></th></tr></thead><tbody><tr><td class="firstcol " ><p><a href="https://www.tomsguide.com/computing/antivirus/avast-one-review"><strong>Avast One </strong></a></p></td><td  ><p>667.45 / 740.4</p></td><td  ><p>565.56 / 702.75</p></td><td  ><p>543.63 / 666.57</p></td></tr><tr><td class="firstcol " ><p><a href="https://www.tomsguide.com/computing/antivirus/bitdefender-review#section-bitdefender-review-performance"><strong>Bitdefender Total Security </strong></a></p></td><td  ><p>885.43 / 785.77</p></td><td  ><p>N/A</p></td><td  ><p>879.03 / 754.97</p></td></tr><tr><td class="firstcol " ><p><a href="https://www.tomsguide.com/computing/antivirus/malwarebytes-review#section-malwarebytes-review-performance"><strong>Malwarebytes Premium </strong></a></p></td><td  ><p>905.88 / 798.02</p></td><td  ><p>904.79 / 722.06</p></td><td  ><p>902.02 / 592.41</p></td></tr><tr><td class="firstcol " ><p><a href="https://www.tomsguide.com/computing/antivirus/mcafee-plus-premium-review-2026#section-mcafee-premium-review-performance"><strong>McAfee+ Premium</strong></a><strong> </strong></p></td><td  ><p>821.8 / 933.2</p></td><td  ><p>810.4 / 967.2</p></td><td  ><p>807.1 / 948.7</p></td></tr><tr><td class="firstcol " ><p><a href="https://www.tomsguide.com/computing/antivirus/norton-360-review"><strong>Norton 360 </strong></a></p></td><td  ><p>810.77 / 734.55</p></td><td  ><p>709.56 / 606.89</p></td><td  ><p>896.09 / 654.43</p></td></tr></tbody></table></div><p>As you can see in the table above, Bitdefender came out on top with download speeds dropping by less than 1% and upload speeds dipping by only 3.9% during a full scan. On the other end of the spectrum, Malwarebytes’ download speeds remained virtually unchanged, but the same can’t be said for its upload performance, which suffered a steep 25.8% drop. When it came to pure download degradation, Avast took the biggest hit with an 18.5% drop, alongside a 10% dip in upload speeds.</p><p>There were also two anomalies in our internet speed tests that caught us off guard. For instance, McAfee’s download speeds only dropped by 1.8% during a full scan, but its upload speeds actually increased during active scans — jumping from 933.2 Mbps at baseline to 967.2 Mbps during a quick scan and 948.7 Mbps during a full scan. Likewise, Norton suffered a bigger download penalty during a quick scan, dropping from 810.77 Mbps down to 709.56 Mbps (a 12.5% hit), whereas its full scan download speed was actually faster at 896.09 Mbps.</p><h2 id="protected-without-the-performance-hit">Protected without the performance hit</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="EZMvT9THPzqSi99JAFMEKG" name="shutterstock_1773876581-16x9edit2" alt="Hands typing on a laptop computer with a lock icon" src="https://cdn.mos.cms.futurecdn.net/EZMvT9THPzqSi99JAFMEKG-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>If you’ve been disabling your antivirus software while gaming or doing other intensive tasks, you no longer need to. What once brought your computer to a crawl no longer does for several reasons. From more advanced CPUs to faster SSDs, PC hardware has advanced significantly over the past 20 years. At the same time, the way in which your antivirus scans for known malware and detects threats using behavioral analysis means that doing so no longer requires the system resources it once did.</p><p>While having your antivirus software running in the background or performing a quick or full scan isn’t as resource-intensive as it used to be, your internet speeds can be affected — even more so if you’re connected to one of the <a href="https://www.tomsguide.com/best-picks/best-vpn">best VPNs</a>, which often come bundled with top security suites.</p><p>For this reason, you might want to briefly pause your antivirus while performing large uploads or downloading massive files from trusted sources. Still, the temporary hit your internet speeds might take is merely a minor inconvenience, whereas having your gaming or work PC infected with malware or ransomware can be a major setback.</p><p>All in all, many of the old preconceived notions we held about antivirus performance impact simply no longer apply today — and for keeping your PC protected online, that’s excellent news.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><strong></strong><a href="https://www.tomsguide.com/computing/malware-adware/security-researchers-discover-fake-chatgpt-ads-that-trick-you-into-downloading-malware"><strong>Security researchers discover fake ChatGPT ads that trick you into downloading malware</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/computing/online-security/your-personal-information-is-everywhere-online-5-ways-to-start-removing-it"><strong>Your personal information is everywhere online — 5 ways to start removing it from the internet</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/computing/online-security/apple-issues-emergency-update-for-millions-of-iphones-ipads-and-macs-update-your-devices-now"><strong>Apple issues emergency update for millions of iPhones, iPads, and Macs — update your devices now</strong></a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/antivirus/does-antivirus-slow-down-your-pc</link>
                                                                            <description>
                            <![CDATA[ We put modern security suites to the test across synthetic benchmarks and demanding PC games to see if the age-old PC slowdown myth still holds true. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">2xWJnNbUd3rDbRV2gVobKE</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/VJGmwJrHZ8m5L8U772Pa5H-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sun, 04 Oct 2026 07:15:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Antivirus]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Internet]]></category>
                                                    <category><![CDATA[Online Security]]></category>
                                                                                                <author><![CDATA[ anthony.spadafora@futurenet.com (Anthony Spadafora) ]]></author>                    <dc:creator><![CDATA[ Anthony Spadafora ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/z73LEoj7FkUjNG85GcWHtH-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Anthony Spadafora is the managing editor for security and home office furniture at Tom’s Guide where he covers everything from data breaches and malware to password managers and the best way to cover your whole home or business with a strong Wi-Fi signal.&lt;/p&gt;&lt;p&gt;Before joining the team, he spent three years covering cybersecurity and B2B tech for ITProPortal while living in South Korea. After moving back to the US. Anthony joined the TechRadar Pro team where he covered these topics along with VPNs, web hosting, online collaboration software and video conferencing for four years. Anthony also has his ears to the ground and is on the lookout for the next major cyberattack or data breach.&lt;/p&gt;&lt;p&gt;Based in Houston, Texas, Anthony also handles VPN testing for both Tom’s Guide and TechRadar. As someone who has worked from home exclusively since 2018, he has reviewed dozens of standing desks as well as office chairs and has taken a closer look at other essential remote working accessories. As part of these reviews, Anthony frequently builds intricate desk setups which is why he’s such a big advocate for cable management and keeping things organized. When he’s not writing, he can be found tinkering with PCs and game consoles, managing cables and making upgrades to his smart home.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/VJGmwJrHZ8m5L8U772Pa5H-1920-80.jpg">
                                                            <media:credit><![CDATA[Tom&amp;#39;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A person playing Cyberpunk 2077 on the Dell XPS 14 (2026) with a Tom&#039;s Guide Cybersecurity Awareness Month badge]]></media:description>                                                            <media:text><![CDATA[A person playing Cyberpunk 2077 on the Dell XPS 14 (2026) with a Tom&#039;s Guide Cybersecurity Awareness Month badge]]></media:text>
                                <media:title type="plain"><![CDATA[A person playing Cyberpunk 2077 on the Dell XPS 14 (2026) with a Tom&#039;s Guide Cybersecurity Awareness Month badge]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/VJGmwJrHZ8m5L8U772Pa5H-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>There was a time not that long ago when you had to choose between protection or performance on your Windows PC. If you enabled your security software, yes, you would be protected from malware and other viruses, but your computer’s performance would take a massive hit. On the other hand, if you left your security software disabled, you’d be able to get the best possible performance while leaving yourself completely at risk.</p><p>While computers are now much more powerful and capable of handling multiple tasks at once with ease, people still remember having games like Half-Life 2 slow to a crawl or instantly crash the second their antivirus software started running a scheduled scan. For this reason, PC gamers and power users alike began completely disabling their antivirus before launching a game or doing anything even slightly demanding on their machines.</p><p>Now though, the <a href="https://www.tomsguide.com/computing/antivirus/best-antivirus-software">best antivirus software</a> operates much differently than it did before. Instead of scanning every single file on your computer over and over again, behavioral analysis can detect suspicious activity in a much less resource-intensive way. Likewise, modern antivirus engines use cloud-based threat intelligence so that all the heavy lifting isn’t done locally on your machine. At the same time, security software is now more intelligent and knows not to run an update or start a background scan when you launch a full-screen app like a game or video editor.</p><p>In our latest round of antivirus testing, we wanted to put this long-held preconceived notion that security software kills PC performance to rest once and for all by running both quick and full scans while playing graphically demanding, AAA games. Here’s what we found and why you no longer need to rush to turn off your antivirus every time you boot up a game.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-W0EkNO"></div>                            </div>                            <script src="https://kwizly.com/embed/W0EkNO.js" async=""></script><h2 id="from-spreadsheets-to-fps-how-our-testing-evolved">From spreadsheets to FPS: How our testing evolved</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.15%;"><img id="5q3R46U37mWKx5dkZp6GJ7" name="How We Test Laptops-2--System-Prep" alt="Laptop testing" src="https://cdn.mos.cms.futurecdn.net/5q3R46U37mWKx5dkZp6GJ7-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1123" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>In the past, whenever we examined the performance impact of antivirus software, we did so using a more CPU-intensive and disk-heavy test. This involved using a <a href="https://www.tomsguide.com/reference/how-we-test-antivirus-software-and-apps">proprietary Excel-based benchmark</a> that sorted through a database of 20,000 names and addresses. We would run the test five times and average the results to get a baseline performance level.</p><p>From there, we would re-run this same test while each antivirus suite was running a full scan and then a quick scan for malware. Doing so gave us a clear picture of how each antivirus lowered the performance potential of our testing rig. On older hardware, running a full scan while this benchmark was carried out would routinely show background tasks being slowed down by 20 to 40%.</p><p>Now that both the <a href="https://www.tomsguide.com/best-picks/best-computers">best computers</a> and <a href="https://www.tomsguide.com/computing/laptops/best-laptops">best laptops</a> are much more advanced with multi-core CPUs, high-speed SSDs, and a lot more memory, we decided to alter our testing procedures significantly. We still run full and quick scans to establish a baseline, but from there, we now run the built-in benchmarks of resource-heavy games like <a href="https://www.tomsguide.com/reviews/cyberpunk-2077-phantom-liberty">Cyberpunk 2077</a> and <a href="https://www.tomsguide.com/reviews/forza-horizon-5">Forza Horizon 5</a> while performing a variety of antivirus scans and recording how they affect each game’s frame rate in frames per second (fps).</p><p>At the same time, we also now test how each antivirus suite impacts our internet speeds. We do so by recording download and upload speeds with each program running while performing both a quick and full scan.</p><p>By measuring how each antivirus affects game frame rates as well as internet speeds, we can tell you which ones have the most and least impact on system performance. Without further ado, here’s what our latest round of testing found.</p><h2 id="antivirus-by-antivirus-here-s-how-each-suite-performed">Antivirus-by-antivirus: Here’s how each suite performed</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1200px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="mnDB7TkV87LiL7jvtNy2eA" name="Asus ROG Zephyrus G14 (2025)" alt="Cyberpunk 2077 on an Asus ROG Zephyrus G14 (2025)." src="https://cdn.mos.cms.futurecdn.net/mnDB7TkV87LiL7jvtNy2eA-1920-80.jpg" mos="" align="middle" fullscreen="" width="1200" height="675" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>To conduct our gaming performance tests, we used a desktop PC equipped with an AMD Ryzen 7 7700X CPU, an MSI RTX 5070 Ti GPU, and 32GB of DDR5 memory. For this round of testing, we ran Cyberpunk 2077’s built-in benchmark on Ultra graphics settings and Forza Horizon 5’s on High graphics settings.</p><p>Of the five antivirus suites we tested with Cyberpunk 2077 running, Bitdefender came out on top with only a drop of 3 fps during a full scan. Meanwhile, Malwarebytes was impacted the most, taking a 13.7% performance hit in fps while running a full scan.</p><div ><table><caption>Cyberpunk 2077 Benchmark Results </caption><thead><tr><th class="firstcol " ><p>Antivirus suite</p></th><th  ><p>Baseline (FPS)</p></th><th  ><p>Quick Scan (FPS)</p></th><th  ><p>Full Scan (FPS)</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><a href="https://www.tomsguide.com/computing/antivirus/avast-one-review"><strong>Avast One </strong></a></p></td><td  ><p>99</p></td><td  ><p>96</p></td><td  ><p>96.17</p></td></tr><tr><td class="firstcol " ><p><a href="https://www.tomsguide.com/computing/antivirus/bitdefender-review#section-bitdefender-review-performance"><strong>Bitdefender Total Security </strong></a></p></td><td  ><p>100</p></td><td  ><p>N/A</p></td><td  ><p>97</p></td></tr><tr><td class="firstcol " ><p><a href="https://www.tomsguide.com/computing/antivirus/malwarebytes-review#section-malwarebytes-review-performance"><strong>Malwarebytes Premium </strong></a></p></td><td  ><p>87</p></td><td  ><p>83</p></td><td  ><p>75</p></td></tr><tr><td class="firstcol " ><p><a href="https://www.tomsguide.com/computing/antivirus/mcafee-plus-premium-review-2026#section-mcafee-premium-review-performance"><strong>McAfee+ Premium</strong></a><strong> </strong></p></td><td  ><p>99</p></td><td  ><p>93</p></td><td  ><p>87</p></td></tr><tr><td class="firstcol " ><p><a href="https://www.tomsguide.com/computing/antivirus/norton-360-review"><strong>Norton 360 </strong></a></p></td><td  ><p>118</p></td><td  ><p>107</p></td><td  ><p>105</p></td></tr></tbody></table></div><p>In the table above, for our baseline, the game and the antivirus software were running simultaneously. However, no active scans took place during those runs. From there, we performed a quick scan and then a full scan while executing Cyberpunk 2077’s in-game benchmarking tool.</p><p>Based on our testing, you can see that playing Cyberpunk 2077 with Norton 360 open but not actively scanning had almost no impact on performance. The same can’t be said for Malwarebytes though, where just running the antivirus and the game simultaneously seriously affected the performance of our testing rig.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="UmEsnSdF4oqvQAq9hiP4US" name="HyperX Omen 15--5" alt="HyperX Omen 15 (2026)" src="https://cdn.mos.cms.futurecdn.net/UmEsnSdF4oqvQAq9hiP4US-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><div ><table><caption>Forza Horizon 5 Benchmark Results </caption><thead><tr><th class="firstcol " ><p>Antivirus suite</p></th><th  ><p>Baseline (FPS)</p></th><th  ><p>Quick Scan (FPS)</p></th><th  ><p>Full Scan (FPS)</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><a href="https://www.tomsguide.com/computing/antivirus/avast-one-review"><strong>Avast One </strong></a></p></td><td  ><p>125</p></td><td  ><p>124</p></td><td  ><p>124</p></td></tr><tr><td class="firstcol " ><p><a href="https://www.tomsguide.com/computing/antivirus/bitdefender-review#section-bitdefender-review-performance"><strong>Bitdefender Total Security </strong></a></p></td><td  ><p>125</p></td><td  ><p>N/A</p></td><td  ><p>123</p></td></tr><tr><td class="firstcol " ><p><a href="https://www.tomsguide.com/computing/antivirus/malwarebytes-review#section-malwarebytes-review-performance"><strong>Malwarebytes Premium </strong></a></p></td><td  ><p>110</p></td><td  ><p>107</p></td><td  ><p>99</p></td></tr><tr><td class="firstcol " ><p><a href="https://www.tomsguide.com/computing/antivirus/mcafee-plus-premium-review-2026#section-mcafee-premium-review-performance"><strong>McAfee+ Premium</strong></a><strong> </strong></p></td><td  ><p>113</p></td><td  ><p>110</p></td><td  ><p>95</p></td></tr><tr><td class="firstcol " ><p><a href="https://www.tomsguide.com/computing/antivirus/norton-360-review"><strong>Norton 360 </strong></a></p></td><td  ><p>125</p></td><td  ><p>123</p></td><td  ><p>123</p></td></tr></tbody></table></div><p>When running Forza Horizon 5’s in-game benchmark with Avast, Bitdefender, and Norton idle and while actively scanning, all three antivirus suites experienced virtually unnoticeable fps drops. Instead of Malwarebytes though, McAfee was hit the hardest with a 15.9% performance penalty, dropping from 113 all the way down to 95 fps.</p><p>Obviously, your own results may vary depending on your gaming PC and future updates to all of the antivirus software suites we tested. However, it’s safe to say that disabling your antivirus every time you want to load a game is a bad habit we can all leave behind us. Sure, you could disable it to eke out a miniscule performance boost, but based on these numbers, you’re better off just leaving it running in the background.</p><h2 id="what-about-your-internet-speeds">What about your internet speeds?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="XBfVxCZTs3mrvK2MT4c7ie" name="tg_download-speed_list.jpg" alt="A person running an internet speed test on their laptop" src="https://cdn.mos.cms.futurecdn.net/XBfVxCZTs3mrvK2MT4c7ie-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tapati Rinchumrus/Shutterstock)</span></figcaption></figure><p>When we first decided to change our testing procedures for antivirus software, I never thought that gaming performance would be relatively unaffected while internet speeds took a much bigger hit.</p><p>To carry out this portion of our evaluation, we ran multiple tests via Ookla’s <a href="http://speedtest.net" target="_blank">Speedtest.net</a> to measure the impact each suite had on download and upload speeds in three states: idling in the background, during an active quick scan, and during a full scan.</p><div ><table><caption>Internet Speed Test Results</caption><thead><tr><th class="firstcol " ><p>Antivirus suite</p></th><th  ><p>Baseline (Download / Upload Mbps) </p></th><th  ><p>Quick Scan (Download / Upload Mbps) </p></th><th  ><p>Full Scan (Download / Upload Mbps) </p></th></tr></thead><tbody><tr><td class="firstcol " ><p><a href="https://www.tomsguide.com/computing/antivirus/avast-one-review"><strong>Avast One </strong></a></p></td><td  ><p>667.45 / 740.4</p></td><td  ><p>565.56 / 702.75</p></td><td  ><p>543.63 / 666.57</p></td></tr><tr><td class="firstcol " ><p><a href="https://www.tomsguide.com/computing/antivirus/bitdefender-review#section-bitdefender-review-performance"><strong>Bitdefender Total Security </strong></a></p></td><td  ><p>885.43 / 785.77</p></td><td  ><p>N/A</p></td><td  ><p>879.03 / 754.97</p></td></tr><tr><td class="firstcol " ><p><a href="https://www.tomsguide.com/computing/antivirus/malwarebytes-review#section-malwarebytes-review-performance"><strong>Malwarebytes Premium </strong></a></p></td><td  ><p>905.88 / 798.02</p></td><td  ><p>904.79 / 722.06</p></td><td  ><p>902.02 / 592.41</p></td></tr><tr><td class="firstcol " ><p><a href="https://www.tomsguide.com/computing/antivirus/mcafee-plus-premium-review-2026#section-mcafee-premium-review-performance"><strong>McAfee+ Premium</strong></a><strong> </strong></p></td><td  ><p>821.8 / 933.2</p></td><td  ><p>810.4 / 967.2</p></td><td  ><p>807.1 / 948.7</p></td></tr><tr><td class="firstcol " ><p><a href="https://www.tomsguide.com/computing/antivirus/norton-360-review"><strong>Norton 360 </strong></a></p></td><td  ><p>810.77 / 734.55</p></td><td  ><p>709.56 / 606.89</p></td><td  ><p>896.09 / 654.43</p></td></tr></tbody></table></div><p>As you can see in the table above, Bitdefender came out on top with download speeds dropping by less than 1% and upload speeds dipping by only 3.9% during a full scan. On the other end of the spectrum, Malwarebytes’ download speeds remained virtually unchanged, but the same can’t be said for its upload performance, which suffered a steep 25.8% drop. When it came to pure download degradation, Avast took the biggest hit with an 18.5% drop, alongside a 10% dip in upload speeds.</p><p>There were also two anomalies in our internet speed tests that caught us off guard. For instance, McAfee’s download speeds only dropped by 1.8% during a full scan, but its upload speeds actually increased during active scans — jumping from 933.2 Mbps at baseline to 967.2 Mbps during a quick scan and 948.7 Mbps during a full scan. Likewise, Norton suffered a bigger download penalty during a quick scan, dropping from 810.77 Mbps down to 709.56 Mbps (a 12.5% hit), whereas its full scan download speed was actually faster at 896.09 Mbps.</p><h2 id="protected-without-the-performance-hit">Protected without the performance hit</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="EZMvT9THPzqSi99JAFMEKG" name="shutterstock_1773876581-16x9edit2" alt="Hands typing on a laptop computer with a lock icon" src="https://cdn.mos.cms.futurecdn.net/EZMvT9THPzqSi99JAFMEKG-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>If you’ve been disabling your antivirus software while gaming or doing other intensive tasks, you no longer need to. What once brought your computer to a crawl no longer does for several reasons. From more advanced CPUs to faster SSDs, PC hardware has advanced significantly over the past 20 years. At the same time, the way in which your antivirus scans for known malware and detects threats using behavioral analysis means that doing so no longer requires the system resources it once did.</p><p>While having your antivirus software running in the background or performing a quick or full scan isn’t as resource-intensive as it used to be, your internet speeds can be affected — even more so if you’re connected to one of the <a href="https://www.tomsguide.com/best-picks/best-vpn">best VPNs</a>, which often come bundled with top security suites.</p><p>For this reason, you might want to briefly pause your antivirus while performing large uploads or downloading massive files from trusted sources. Still, the temporary hit your internet speeds might take is merely a minor inconvenience, whereas having your gaming or work PC infected with malware or ransomware can be a major setback.</p><p>All in all, many of the old preconceived notions we held about antivirus performance impact simply no longer apply today — and for keeping your PC protected online, that’s excellent news.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><strong></strong><a href="https://www.tomsguide.com/computing/malware-adware/security-researchers-discover-fake-chatgpt-ads-that-trick-you-into-downloading-malware"><strong>Security researchers discover fake ChatGPT ads that trick you into downloading malware</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/computing/online-security/your-personal-information-is-everywhere-online-5-ways-to-start-removing-it"><strong>Your personal information is everywhere online — 5 ways to start removing it from the internet</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/computing/online-security/apple-issues-emergency-update-for-millions-of-iphones-ipads-and-macs-update-your-devices-now"><strong>Apple issues emergency update for millions of iPhones, iPads, and Macs — update your devices now</strong></a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Your iPhone secretly locks down after 72 hours — this forensic tool may have found a way around it ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Apple has emphasized that they are <a href="https://www.tomsguide.com/ai/apple-intelligence/apple-is-prioritizing-privacy-over-winning-the-ai-race-heres-why">prioritizing safety </a>over almost everything, including AI. That's becoming even more important with <a href="https://www.tomsguide.com/ai/i-replaced-chatgpt-with-siri-ai-for-a-day-heres-what-surprised-me">Siri AI</a>, which can now <a href="https://www.tomsguide.com/phones/iphones/im-already-obsessed-with-ios-27s-one-tap-suggestions-in-messages-heres-why">search across your messages, emails, photos and other information</a> to answer questions based on your personal context.</p><p>However, a newly revealed forensic tool shows why protecting all that information doesn't end with securing the AI that uses it.</p><p>Magnet Forensics, the company behind the GrayKey phone-forensics tool used by law enforcement, <a href="https://www.404media.co/cops-can-bypass-iphone-automatic-inactivity-reboot-graykey/" target="_blank">claims it has developed a way to get around an iPhone security measure</a> designed to make data significantly harder to extract from a seized device.</p><p>According to <a href="https://www.404media.co/cops-can-bypass-iphone-automatic-inactivity-reboot-graykey/" target="_blank">a leaked Magnet Forensics video obtained by 404 Media</a>, a new device known as GrayKey Preserve and a feature called Evidence Preservation Mode can keep an iPhone in a more accessible state even after the phone would ordinarily reboot. Magnet itself says its <a href="https://www.magnetforensics.com/blog/the-importance-of-preservation-for-ios-devices/" target="_blank">new GrayKey preservation capabilities</a> were developed to address the iOS reboot timer and can preserve data on iOS devices indefinitely.</p><p>That's potentially a big deal for iPhone privacy — and the timing couldn't be more interesting.</p><h2 id="the-iphone-protection-you-probably-didn-39-t-know-existed">The iPhone protection you probably didn't know existed</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="b2mMG8DYGUpuM8cJD78UiG" name="man using phone.shutterstock_2700293007" alt="Man using iPhone" src="https://cdn.mos.cms.futurecdn.net/b2mMG8DYGUpuM8cJD78UiG-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Apple quietly added something called "inactivity reboot" to iOS in 2024. If an iPhone hasn't been unlocked for 72 hours, it automatically reboots. That isn't just an annoying restart, it actually changes the security state of the phone.</p><p>Once you've unlocked an iPhone after a reboot, it enters what's known as After First Unlock or AFU. Some encryption keys become available so apps and services can work normally.</p><p>Restart the phone and leave it locked, and it goes back to Before First Unlock, or BFU, where more sensitive data remains encrypted and is harder for forensic tools to reach.</p><p>That's why the 72-hour timer can make a difference. Leave a seized iPhone untouched for too long and it can reboot on its own, locking down more of its data. Magnet claims it has found a way around that.</p><p>According to the leaked video obtained by 404 Media, GrayKey Preserve can capture the AFU state and keep it available even if the iPhone later reboots or loses power. Magnet also claims it can preserve data that would normally disappear over time, including cached locations, recently deleted photos and recently deleted iMessages. <a href="https://www.magnetforensics.com/blog/the-importance-of-preservation-for-ios-devices/">Magnet's own explanation</a> says its new GrayKey capabilities can preserve that data indefinitely.</p><p>Exactly how it works isn't clear. Security researcher Jiska Classen told 404 Media that Magnet could be manipulating the iPhone's clock or interfering with the processes that expire data, but for now that's only a theory.</p><h2 id="then-there-39-s-siri-ai">Then there's Siri AI</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2667px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="BK6wAHZvbvvt9kZyzEVG96" name="iOS 27 Siri AI" alt="iOS 27 Siri AI running on iPhone 17 Pro." src="https://cdn.mos.cms.futurecdn.net/BK6wAHZvbvvt9kZyzEVG96-1920-80.jpg" mos="" align="middle" fullscreen="" width="2667" height="1500" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: John Velasco / Tom's Guide)</span></figcaption></figure><p>Siri AI can use what Apple calls "<a href="https://www.tomsguide.com/ai/apple-intelligence/siri-ai-may-have-been-built-with-privacy-in-mind-but-it-doesnt-stop-some-those-contextual-features-creeping-me-out">personal context understanding</a>" to find information scattered across your iPhone. Ask it to find an old photo, track down a recommendation buried in a message or pull information from an email or calendar entry, and Siri can go looking for it. It also has onscreen awareness and can take actions across apps.</p><p>That's a big part of what makes the new Siri useful, but it also means the assistant is working with some of the most personal information on your phone.</p><p>Apple has put a lot of emphasis on keeping that information private. Much of <a href="https://www.tomsguide.com/ai/apple-intelligence-unveiled-all-the-new-ai-features-coming-to-ios-18-ipados-18-and-macos-sequoia">Apple Intelligence</a> runs on device, while more complicated requests can go through <a href="https://www.tomsguide.com/ai/3-apple-intelligence-features-i-cant-live-without-and-one-i-cant-wait-to-try">Private Cloud Compute</a>. Apple says data sent there isn't stored or made accessible to the company.</p><p>GrayKey raises a different issue. It isn't reportedly breaking Siri AI or Private Cloud Compute. It's going after the iPhone itself.</p><p>And that's where the distinction matters. Apple can lock down how its AI processes your information, but the messages, photos, emails and location data Siri relies on still have to live somewhere. If someone gains physical access to the phone, protecting that underlying data becomes just as important as protecting the AI using it.</p><h2 id="what-this-means-for-your-iphone">What this means for your iPhone</h2><p>There are still plenty of unknowns. We don't know exactly how Magnet's technique works, which versions of iOS it works on or whether Apple has already closed the door on it. The leaked Magnet video also appears to date from early 2025, even though it only surfaced now.</p><p>And this isn't a case of plugging any iPhone into GrayKey Preserve and instantly seeing everything on it. Magnet's claim is more specific: its technology can prevent an iPhone from moving into the more restrictive security state that normally kicks in after prolonged inactivity.</p><p>Still, the timing is hard to ignore. Apple is asking Siri to understand more about you while promising that the information behind those personalized answers stays private. On-device processing and Private Cloud Compute protect how Apple Intelligence handles that data, but they don't eliminate the need to protect what's sitting on the iPhone itself.</p><p>As Siri gets more personal, keeping the data it relies on secure has become even more important.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><strong></strong><a href="https://www.tomsguide.com/ai/claude/claude-sonnet-5-5-just-launched-heres-why-its-about-to-become-your-daily-driver"><strong>Claude Sonnet 5.5 just launched — here's why it's about to become your daily driver</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/ai/meta-muse-vs-chatgpt-dots-i-compared-the-new-ai-agents-and-theyre-not-as-similar-as-they-look"><strong>Meta Muse vs ChatGPT Dots — I compared the new AI agents, and they’re not as similar as they look</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/ai/why-siri-never-worked-like-chatgpt-former-siri-ai-researcher-explains-what-apple-had-to-change"><strong>Why Siri never worked like ChatGPT — former Siri AI researcher explains what Apple had to change</strong></a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/ai/your-iphone-secretly-locks-down-after-72-hours-this-forensic-tool-may-have-found-a-way-around-it</link>
                                                                            <description>
                            <![CDATA[ A forensic tool reportedly found a way around one of the iPhone's lesser-known protections, just as Siri AI gains access to more of your personal context. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">A2PRLEEEeLXFS2GGBtHorK</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/VEw4CiZWCodwwRopC8qNoK-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 02 Oct 2026 08:15:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[AI]]></category>
                                                    <category><![CDATA[Phones]]></category>
                                                    <category><![CDATA[Online Security]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Internet]]></category>
                                                                                                <author><![CDATA[ amanda.caswell@futurenet.com (Amanda Caswell) ]]></author>                    <dc:creator><![CDATA[ Amanda Caswell ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/zYjevim2q7FjQiefqpjZRB-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/VEw4CiZWCodwwRopC8qNoK-1920-80.jpg">
                                                            <media:credit><![CDATA[Tom&amp;#39;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Apple iPhone 18 Pro and Pro Max shown in hand]]></media:description>                                                            <media:text><![CDATA[Apple iPhone 18 Pro and Pro Max shown in hand]]></media:text>
                                <media:title type="plain"><![CDATA[Apple iPhone 18 Pro and Pro Max shown in hand]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/VEw4CiZWCodwwRopC8qNoK-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Apple has emphasized that they are <a href="https://www.tomsguide.com/ai/apple-intelligence/apple-is-prioritizing-privacy-over-winning-the-ai-race-heres-why">prioritizing safety </a>over almost everything, including AI. That's becoming even more important with <a href="https://www.tomsguide.com/ai/i-replaced-chatgpt-with-siri-ai-for-a-day-heres-what-surprised-me">Siri AI</a>, which can now <a href="https://www.tomsguide.com/phones/iphones/im-already-obsessed-with-ios-27s-one-tap-suggestions-in-messages-heres-why">search across your messages, emails, photos and other information</a> to answer questions based on your personal context.</p><p>However, a newly revealed forensic tool shows why protecting all that information doesn't end with securing the AI that uses it.</p><p>Magnet Forensics, the company behind the GrayKey phone-forensics tool used by law enforcement, <a href="https://www.404media.co/cops-can-bypass-iphone-automatic-inactivity-reboot-graykey/" target="_blank">claims it has developed a way to get around an iPhone security measure</a> designed to make data significantly harder to extract from a seized device.</p><p>According to <a href="https://www.404media.co/cops-can-bypass-iphone-automatic-inactivity-reboot-graykey/" target="_blank">a leaked Magnet Forensics video obtained by 404 Media</a>, a new device known as GrayKey Preserve and a feature called Evidence Preservation Mode can keep an iPhone in a more accessible state even after the phone would ordinarily reboot. Magnet itself says its <a href="https://www.magnetforensics.com/blog/the-importance-of-preservation-for-ios-devices/" target="_blank">new GrayKey preservation capabilities</a> were developed to address the iOS reboot timer and can preserve data on iOS devices indefinitely.</p><p>That's potentially a big deal for iPhone privacy — and the timing couldn't be more interesting.</p><h2 id="the-iphone-protection-you-probably-didn-39-t-know-existed">The iPhone protection you probably didn't know existed</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="b2mMG8DYGUpuM8cJD78UiG" name="man using phone.shutterstock_2700293007" alt="Man using iPhone" src="https://cdn.mos.cms.futurecdn.net/b2mMG8DYGUpuM8cJD78UiG-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Apple quietly added something called "inactivity reboot" to iOS in 2024. If an iPhone hasn't been unlocked for 72 hours, it automatically reboots. That isn't just an annoying restart, it actually changes the security state of the phone.</p><p>Once you've unlocked an iPhone after a reboot, it enters what's known as After First Unlock or AFU. Some encryption keys become available so apps and services can work normally.</p><p>Restart the phone and leave it locked, and it goes back to Before First Unlock, or BFU, where more sensitive data remains encrypted and is harder for forensic tools to reach.</p><p>That's why the 72-hour timer can make a difference. Leave a seized iPhone untouched for too long and it can reboot on its own, locking down more of its data. Magnet claims it has found a way around that.</p><p>According to the leaked video obtained by 404 Media, GrayKey Preserve can capture the AFU state and keep it available even if the iPhone later reboots or loses power. Magnet also claims it can preserve data that would normally disappear over time, including cached locations, recently deleted photos and recently deleted iMessages. <a href="https://www.magnetforensics.com/blog/the-importance-of-preservation-for-ios-devices/">Magnet's own explanation</a> says its new GrayKey capabilities can preserve that data indefinitely.</p><p>Exactly how it works isn't clear. Security researcher Jiska Classen told 404 Media that Magnet could be manipulating the iPhone's clock or interfering with the processes that expire data, but for now that's only a theory.</p><h2 id="then-there-39-s-siri-ai">Then there's Siri AI</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2667px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="BK6wAHZvbvvt9kZyzEVG96" name="iOS 27 Siri AI" alt="iOS 27 Siri AI running on iPhone 17 Pro." src="https://cdn.mos.cms.futurecdn.net/BK6wAHZvbvvt9kZyzEVG96-1920-80.jpg" mos="" align="middle" fullscreen="" width="2667" height="1500" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: John Velasco / Tom's Guide)</span></figcaption></figure><p>Siri AI can use what Apple calls "<a href="https://www.tomsguide.com/ai/apple-intelligence/siri-ai-may-have-been-built-with-privacy-in-mind-but-it-doesnt-stop-some-those-contextual-features-creeping-me-out">personal context understanding</a>" to find information scattered across your iPhone. Ask it to find an old photo, track down a recommendation buried in a message or pull information from an email or calendar entry, and Siri can go looking for it. It also has onscreen awareness and can take actions across apps.</p><p>That's a big part of what makes the new Siri useful, but it also means the assistant is working with some of the most personal information on your phone.</p><p>Apple has put a lot of emphasis on keeping that information private. Much of <a href="https://www.tomsguide.com/ai/apple-intelligence-unveiled-all-the-new-ai-features-coming-to-ios-18-ipados-18-and-macos-sequoia">Apple Intelligence</a> runs on device, while more complicated requests can go through <a href="https://www.tomsguide.com/ai/3-apple-intelligence-features-i-cant-live-without-and-one-i-cant-wait-to-try">Private Cloud Compute</a>. Apple says data sent there isn't stored or made accessible to the company.</p><p>GrayKey raises a different issue. It isn't reportedly breaking Siri AI or Private Cloud Compute. It's going after the iPhone itself.</p><p>And that's where the distinction matters. Apple can lock down how its AI processes your information, but the messages, photos, emails and location data Siri relies on still have to live somewhere. If someone gains physical access to the phone, protecting that underlying data becomes just as important as protecting the AI using it.</p><h2 id="what-this-means-for-your-iphone">What this means for your iPhone</h2><p>There are still plenty of unknowns. We don't know exactly how Magnet's technique works, which versions of iOS it works on or whether Apple has already closed the door on it. The leaked Magnet video also appears to date from early 2025, even though it only surfaced now.</p><p>And this isn't a case of plugging any iPhone into GrayKey Preserve and instantly seeing everything on it. Magnet's claim is more specific: its technology can prevent an iPhone from moving into the more restrictive security state that normally kicks in after prolonged inactivity.</p><p>Still, the timing is hard to ignore. Apple is asking Siri to understand more about you while promising that the information behind those personalized answers stays private. On-device processing and Private Cloud Compute protect how Apple Intelligence handles that data, but they don't eliminate the need to protect what's sitting on the iPhone itself.</p><p>As Siri gets more personal, keeping the data it relies on secure has become even more important.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><strong></strong><a href="https://www.tomsguide.com/ai/claude/claude-sonnet-5-5-just-launched-heres-why-its-about-to-become-your-daily-driver"><strong>Claude Sonnet 5.5 just launched — here's why it's about to become your daily driver</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/ai/meta-muse-vs-chatgpt-dots-i-compared-the-new-ai-agents-and-theyre-not-as-similar-as-they-look"><strong>Meta Muse vs ChatGPT Dots — I compared the new AI agents, and they’re not as similar as they look</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/ai/why-siri-never-worked-like-chatgpt-former-siri-ai-researcher-explains-what-apple-had-to-change"><strong>Why Siri never worked like ChatGPT — former Siri AI researcher explains what Apple had to change</strong></a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Security researchers discover fake ChatGPT ads that trick you into downloading malware ]]></title>
                                                                                                <dc:content><![CDATA[ <p><em><strong>Update: </strong></em><em>Google responds to inquiries about this attack.</em></p><p>Sponsored Google ads for fake ChatGPT are leading Windows users to download malware in "ClickFix" traps, according to security researchers from the <a href="https://www.island.io/blog/how-attackers-use-sponsored-search-custom-gpts-in-malware-delivery" target="_blank">AI company Island</a>.</p><p>The sponsored Google ads lead to <a href="https://www.tomsguide.com/ai/i-tested-5-custom-gpts-skip-the-rest-and-try-these-today">Custom GPT sites</a> that are built to look like normal ChatGPT websites. These ads pop up when people type terms like "chatgpt" into Google Search. </p><p>Unfortunately, for trapped users, the ads do go to legitimate chatgpt.com sites. However, in these instances, entering a prompt makes the fake service direct people to a "backup domain" due to "high traffic."</p><p>Clicking on that link then redirects unsuspecting users to another fake instance of ChatGPT with a fake Cloudflare verification page that contains <a href="https://www.tomsguide.com/computing/malware-adware/clickfix-attacks-just-got-a-major-upgrade-to-trick-you-into-infecting-your-computer-with-malware-dont-fall-for-this">ClickFix</a> instructions. Island found nearly identical responses across two separate Custom GPTs over a 3-day period in August.</p><p>According to the researchers, the malware advertising campaign appeared to involve around 850 paid ads, 26 fake ChatGPT links, and 71 Google Ads campaign IDs over a three-month period from May 2026 through August 2026. </p><h2 id="what-is-clickfix">What is ClickFix?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1894px;"><p class="vanilla-image-block" style="padding-top:56.23%;"><img id="5YkXhgZYxSa6YxxaaJpMQE" name="fake-google-meet-landing-page" alt="A fake Google Meet landing page used in a ClickFix hacking campaign" src="https://cdn.mos.cms.futurecdn.net/5YkXhgZYxSa6YxxaaJpMQE-1920-80.jpg" mos="" align="middle" fullscreen="" width="1894" height="1065" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sekoia/Tom's Guide)</span></figcaption></figure><p>ClickFix traps are built to trick people into installing or executing malicious commands on their devices. In this instance, the instructions from the backup domain trick Windows into running a command that downloads malware onto your computer.</p><p>Once installed, the malware infects the system. It can even survive PC restarts and uses a Telegram bot to send stolen info back to the hackers behind this camping The malware utilizes a tool called <a href="https://www.tomsguide.com/news/fake-chrome-updates-infecting-pcs-with-malware-what-you-need-to-know">NetSupport RAT</a>, which lets attackers remotely control an infected computer. </p><p>Island found that the domains rotated and other Windows malware-delivery forms were identified too suggesting that the attack is not based on a single website. </p><p>The company claims an AI tool highlighted the suspicious activity and human researchers confirmed it. However, it's not clear how many people may have been affected by this scam.</p><p>A Google spokesperson told Tom's Guide that it has already suspended accounts associated with this attack.</p><p>"Before this report was published, we suspended the advertiser accounts involved to block this scheme and updated our defenses to better detect these tactics," a spokesperson said.</p><p>We were told that Google is monitoring new attempts to utilize fake ads. Google does <a href="https://support.google.com/adspolicy/answer/6020955?hl=en" target="_blank">have a policy </a>that does not allow misleading ads about a business, product, service or destination. Per Google, the company <a href="https://services.google.com/fh/files/blogs/global_2025_adssafetyreport.pdf" target="_blank">blocked more than 400 million</a> misleading ads for violating Google's "Misrepresentation" policies last year.</p><h2 id="how-to-avoid-falling-victim-to-online-scams">How to avoid falling victim to online scams</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1000px;"><p class="vanilla-image-block" style="padding-top:65.40%;"><img id="uiP8pgavfXxZaVumuhB2T9" name="laptop-scam-alert-shst.jpg" alt="A laptop displaying the warning "scam alert!"" src="https://cdn.mos.cms.futurecdn.net/uiP8pgavfXxZaVumuhB2T9-1920-80.jpg" mos="" align="middle" fullscreen="" width="1000" height="654" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Rawpixel.com/Shutterstock)</span></figcaption></figure><p>The combination of malware and advertising — also known as <a href="https://www.tomsguide.com/news/hackers-have-found-an-insidious-way-to-attack-you-with-malware-dont-fall-for-this">malvertising</a> — has a long, storied history, which means you should always be careful when clicking on any advertisement online. To stay safe, you could try using one of the<a href="https://www.tomsguide.com/round-up/best-adblockers-privacy-extensions"> best ad blockers,</a> since Google's "sponsored" links are still technically ads; most blockers will hide them.</p><p>Beyond that, if you don't have or want an ad blocker, there are some red flags to note when using a search engine and especially if you get linked to a fake instance of ChatGPT.</p><p>As for ChatGPT, if you are an existing user or just trying it out, go to chatgpt.com; no need to search for it.</p><p>Likewise, I've covered ChatGPT outages quite frequently over the course of the last two years and even at its worst, the AI assistant never sends you to a "backup domain." Don't click that link. If ChatGPT is having issues, you can always check the <a href="https://status.openai.com/?utm_source=chatgpt.com" target="_blank">OpenAI status page</a>.</p><p>At the same time, no website verification or CAPTCHA will ever ask you to open Windows Run and paste a command. If a website asks you to press Win + R or run PowerShell, don't do it.</p><p>Finally, you should always have one of the <a href="https://www.tomsguide.com/computing/antivirus/best-antivirus-software">best antivirus</a> software solutions installed on your PC. From there, you want to ensure that your antivirus is current, updated and running on all your devices – both your computer and even your smartphone.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><strong></strong><a href="https://www.tomsguide.com/ai/ai-agents-are-going-rogue-and-causing-new-security-headaches-but-nvidia-has-a-way-to-stop-them"><strong>AI agents are going rogue and causing new security headaches — but Nvidia has a way to stop them</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/computing/online-security/apple-issues-emergency-update-for-millions-of-iphones-ipads-and-macs-update-your-devices-now"><strong>Apple issues emergency update for millions of iPhones, iPads, and Macs — update your devices now</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/computing/online-security/your-personal-information-is-everywhere-online-5-ways-to-start-removing-it"><strong>Your personal information is everywhere online — 5 ways to start removing it from the internet</strong></a><strong></strong></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/malware-adware/security-researchers-discover-fake-chatgpt-ads-that-trick-you-into-downloading-malware</link>
                                                                            <description>
                            <![CDATA[ Security researchers discovered fake ChatGPT ads in Google Search that entice users to download malware. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">Qrrh644W7a3TyydBz92wZC</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/CdxeMWAEPWz4VQsvg5txaZ-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 01 Oct 2026 18:23:33 +0000</pubDate>                                                                                                                                <updated>Fri, 02 Oct 2026 15:56:18 +0000</updated>
                                                                                                                                            <category><![CDATA[Malware & Adware]]></category>
                                                    <category><![CDATA[ChatGPT]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Internet]]></category>
                                                    <category><![CDATA[Online Security]]></category>
                                                    <category><![CDATA[AI]]></category>
                                                                                                <author><![CDATA[ scott.younker@futurenet.com (Scott Younker) ]]></author>                    <dc:creator><![CDATA[ Scott Younker ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/RZsUpqcJ6Uj2q83oCUwNhQ-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Scott Younker is the West Coast Reporter at Tom’s Guide. He covers all the latest tech news, including phones, computing and more. He’s been involved in tech since 2011 covering everything from cameras and swimming pool equipment to the latest gaming consoles and smart TVs. He is on a seemingly never ending hunt to build the easiest to use home media system. &lt;/p&gt;&lt;p&gt;Before Tom’s Guide, Scott worked for publications like &lt;em&gt;Digital Trends, Outdoor Photographer, Dead Beats Panel&lt;/em&gt;, and in a brief detour, &lt;em&gt;America’s Funniest Home Videos&lt;/em&gt;. Yes, he has seen more pratfalls, silly pets and ridiculous home movie fails than is reasonably healthy. &lt;/p&gt;&lt;p&gt;When not writing about the latest devices or advances in chipsets, be sure to ask about Scott about disc golf and sustainability, or just if you’re being cheeky, ask about his noodle arm. If you truly want to get nerdy, bring up board games and his ongoing losing streak. &lt;/p&gt;&lt;p&gt;Scott joined Tom&#039;s Guide in 2024 as the West Coast Reporter. He graduated from the School of Journalism at the University of Oregon with a degree in magazine journalism and a minor in communications. While there he blogged or wrote for several magazines including the Fluxx, Ethos and the Oregon Commentator. He briefly wrote and managed a moderately successful blog focused on web comics. &lt;br&gt;Send secure tips on Signal: scyo1.55.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/CdxeMWAEPWz4VQsvg5txaZ-1920-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[ChatGPT and Google Search]]></media:description>                                                            <media:text><![CDATA[ChatGPT and Google Search]]></media:text>
                                <media:title type="plain"><![CDATA[ChatGPT and Google Search]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/CdxeMWAEPWz4VQsvg5txaZ-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p><em><strong>Update: </strong></em><em>Google responds to inquiries about this attack.</em></p><p>Sponsored Google ads for fake ChatGPT are leading Windows users to download malware in "ClickFix" traps, according to security researchers from the <a href="https://www.island.io/blog/how-attackers-use-sponsored-search-custom-gpts-in-malware-delivery" target="_blank">AI company Island</a>.</p><p>The sponsored Google ads lead to <a href="https://www.tomsguide.com/ai/i-tested-5-custom-gpts-skip-the-rest-and-try-these-today">Custom GPT sites</a> that are built to look like normal ChatGPT websites. These ads pop up when people type terms like "chatgpt" into Google Search. </p><p>Unfortunately, for trapped users, the ads do go to legitimate chatgpt.com sites. However, in these instances, entering a prompt makes the fake service direct people to a "backup domain" due to "high traffic."</p><p>Clicking on that link then redirects unsuspecting users to another fake instance of ChatGPT with a fake Cloudflare verification page that contains <a href="https://www.tomsguide.com/computing/malware-adware/clickfix-attacks-just-got-a-major-upgrade-to-trick-you-into-infecting-your-computer-with-malware-dont-fall-for-this">ClickFix</a> instructions. Island found nearly identical responses across two separate Custom GPTs over a 3-day period in August.</p><p>According to the researchers, the malware advertising campaign appeared to involve around 850 paid ads, 26 fake ChatGPT links, and 71 Google Ads campaign IDs over a three-month period from May 2026 through August 2026. </p><h2 id="what-is-clickfix">What is ClickFix?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1894px;"><p class="vanilla-image-block" style="padding-top:56.23%;"><img id="5YkXhgZYxSa6YxxaaJpMQE" name="fake-google-meet-landing-page" alt="A fake Google Meet landing page used in a ClickFix hacking campaign" src="https://cdn.mos.cms.futurecdn.net/5YkXhgZYxSa6YxxaaJpMQE-1920-80.jpg" mos="" align="middle" fullscreen="" width="1894" height="1065" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sekoia/Tom's Guide)</span></figcaption></figure><p>ClickFix traps are built to trick people into installing or executing malicious commands on their devices. In this instance, the instructions from the backup domain trick Windows into running a command that downloads malware onto your computer.</p><p>Once installed, the malware infects the system. It can even survive PC restarts and uses a Telegram bot to send stolen info back to the hackers behind this camping The malware utilizes a tool called <a href="https://www.tomsguide.com/news/fake-chrome-updates-infecting-pcs-with-malware-what-you-need-to-know">NetSupport RAT</a>, which lets attackers remotely control an infected computer. </p><p>Island found that the domains rotated and other Windows malware-delivery forms were identified too suggesting that the attack is not based on a single website. </p><p>The company claims an AI tool highlighted the suspicious activity and human researchers confirmed it. However, it's not clear how many people may have been affected by this scam.</p><p>A Google spokesperson told Tom's Guide that it has already suspended accounts associated with this attack.</p><p>"Before this report was published, we suspended the advertiser accounts involved to block this scheme and updated our defenses to better detect these tactics," a spokesperson said.</p><p>We were told that Google is monitoring new attempts to utilize fake ads. Google does <a href="https://support.google.com/adspolicy/answer/6020955?hl=en" target="_blank">have a policy </a>that does not allow misleading ads about a business, product, service or destination. Per Google, the company <a href="https://services.google.com/fh/files/blogs/global_2025_adssafetyreport.pdf" target="_blank">blocked more than 400 million</a> misleading ads for violating Google's "Misrepresentation" policies last year.</p><h2 id="how-to-avoid-falling-victim-to-online-scams">How to avoid falling victim to online scams</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1000px;"><p class="vanilla-image-block" style="padding-top:65.40%;"><img id="uiP8pgavfXxZaVumuhB2T9" name="laptop-scam-alert-shst.jpg" alt="A laptop displaying the warning "scam alert!"" src="https://cdn.mos.cms.futurecdn.net/uiP8pgavfXxZaVumuhB2T9-1920-80.jpg" mos="" align="middle" fullscreen="" width="1000" height="654" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Rawpixel.com/Shutterstock)</span></figcaption></figure><p>The combination of malware and advertising — also known as <a href="https://www.tomsguide.com/news/hackers-have-found-an-insidious-way-to-attack-you-with-malware-dont-fall-for-this">malvertising</a> — has a long, storied history, which means you should always be careful when clicking on any advertisement online. To stay safe, you could try using one of the<a href="https://www.tomsguide.com/round-up/best-adblockers-privacy-extensions"> best ad blockers,</a> since Google's "sponsored" links are still technically ads; most blockers will hide them.</p><p>Beyond that, if you don't have or want an ad blocker, there are some red flags to note when using a search engine and especially if you get linked to a fake instance of ChatGPT.</p><p>As for ChatGPT, if you are an existing user or just trying it out, go to chatgpt.com; no need to search for it.</p><p>Likewise, I've covered ChatGPT outages quite frequently over the course of the last two years and even at its worst, the AI assistant never sends you to a "backup domain." Don't click that link. If ChatGPT is having issues, you can always check the <a href="https://status.openai.com/?utm_source=chatgpt.com" target="_blank">OpenAI status page</a>.</p><p>At the same time, no website verification or CAPTCHA will ever ask you to open Windows Run and paste a command. If a website asks you to press Win + R or run PowerShell, don't do it.</p><p>Finally, you should always have one of the <a href="https://www.tomsguide.com/computing/antivirus/best-antivirus-software">best antivirus</a> software solutions installed on your PC. From there, you want to ensure that your antivirus is current, updated and running on all your devices – both your computer and even your smartphone.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><strong></strong><a href="https://www.tomsguide.com/ai/ai-agents-are-going-rogue-and-causing-new-security-headaches-but-nvidia-has-a-way-to-stop-them"><strong>AI agents are going rogue and causing new security headaches — but Nvidia has a way to stop them</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/computing/online-security/apple-issues-emergency-update-for-millions-of-iphones-ipads-and-macs-update-your-devices-now"><strong>Apple issues emergency update for millions of iPhones, iPads, and Macs — update your devices now</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/computing/online-security/your-personal-information-is-everywhere-online-5-ways-to-start-removing-it"><strong>Your personal information is everywhere online — 5 ways to start removing it from the internet</strong></a><strong></strong></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Apple issues emergency update for millions of iPhones, iPads, and Macs — update your devices now ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Everyone is currently talking about the latest <a href="https://www.tomsguide.com/phones/iphones/ios-27-is-live-heres-how-to-download-and-install-it-now">Apple software releases</a>. With <a href="https://www.tomsguide.com/phones/iphones/ios-27-7-features-you-need-to-try-first-after-updating">iOS 27</a> bringing all kinds of new goodies, it's easy to see why. The <a href="https://www.tomsguide.com/phones/iphones/apple-confirms-iphone-18-pro-face-id-freezing-bug-what-you-need-to-know">Face ID bug that hit iPhone 18 Pro and Pro Max</a> devices brought even more attention to the new versions. </p><p>But that doesn't mean Apple has forgotten about <a href="https://www.tomsguide.com/phones/iphones/i-just-spent-my-first-48-hours-with-ios-26-heres-what-happened">iOS 26</a>, iPadOS 26, macOS Tahoe, <a href="https://www.tomsguide.com/computing/macos/3-macos-sequoia-upgrades-im-most-excited-about">macOS Sequoia</a> and the older devices that can't get the latest and greatest operating systems. If left alone, these older operating systems can become easy targets for attackers.</p><p>In fact, an active attack called <a href="https://nvd.nist.gov/vuln/detail/cve-2026-86950" target="_blank">CVE-2026-86950</a> targeted older Apple devices that Apple has patched to fix. </p><h2 id="new-ios-ipados-and-mac-updates">New iOS, iPadOS and Mac updates</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4330px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="aYyGjcMz9xZL3noSSRtZwY" name="iPadOS 26 LIST" alt="iPadOS 26" src="https://cdn.mos.cms.futurecdn.net/aYyGjcMz9xZL3noSSRtZwY-1920-80.jpg" mos="" align="middle" fullscreen="" width="4330" height="2436" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Apple / Tom's Guide)</span></figcaption></figure><p>The update is available to download now for older Apple devices. If you own a device that can download iOS 26, iPadOS 26, macOS Tahoe or macOS Sequoia, you need to install this update immediately; the exploit is in the wild, and while attacks have been highly targeted so far, you could fall victim if you're not up to date.</p><p>The new versions are iOS 26.7.1, iPadOS 26.7.1, macOS Tahoe 26.7.1 and macOS Sequoia 15.8.1. Download it as soon as you can to stay protected.</p><p>As for what the exploit can do, it affects CoreGraphics, an Apple framework used across iOS, iPadOS and macOS to display and process visuals in files like images and PDFs. Since many of us use images and PDFs regularly, it's easy to see how an attacker exploiting those file types could quickly gain access and do damage.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="YwKRVzwvLwup6hDGh5bVNM" name="RzdqY6hhVUXJjJYEgfCrVe.jpg" alt="A hacker typing quickly on a keyboard" src="https://cdn.mos.cms.futurecdn.net/YwKRVzwvLwup6hDGh5bVNM-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>If an attacker gets into the device, they can interfere with an app or program's normal operation, crash your device or take control of a process. With this particular exploit, processing a maliciously crafted file through CoreGraphics could let an attacker run their own code on a device, which can lead to catastrophic repercussions.</p><p>Apple said the exploit was being used for an "extremely sophisticated attack" that was also targeted. But just because it was targeted doesn't mean it'll stay that way, so you'll want to update your devices ASAP to make sure you're protected.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/phones/android-phones/googles-android-president-on-apple-iphone-duo-android-is-usually-where-you-see-the-future-first"><strong>Android president on Apple's iPhone Duo: 'I'm glad to see more people joining what is now the obvious party'</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/phones/iphones/forget-iphone-18-pro-9-reasons-to-wait-for-the-iphone-20"><strong>Forget iPhone 18 Pro — 9 reasons to wait for the iPhone 20</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/phones/i-finally-unlinked-my-iphone-alarm-from-my-ringer-volume-here-is-where-apple-hid-it-in-ios-27"><strong>I finally unlinked my iPhone alarm from my ringer volume — here is where Apple hid it in iOS 27</strong></a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/online-security/apple-issues-emergency-update-for-millions-of-iphones-ipads-and-macs-update-your-devices-now</link>
                                                                            <description>
                            <![CDATA[ You could fall victim to a major attack if you don't update your older Apple devices. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">tp6KkQsZG8oqUynBqnhpEN</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/Yw7fhu6ppktzX3ZBxfNcdP-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 29 Sep 2026 13:28:58 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Online Security]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Internet]]></category>
                                                                                                <author><![CDATA[ dave.leclair@futurenet.com (Dave LeClair) ]]></author>                    <dc:creator><![CDATA[ Dave LeClair ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/fyx7qYdxPMTNBhdnMfNmaB-320-70.png ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Dave LeClair is the Managing News Editor for Tom&#039;s Guide, keeping his finger on the pulse of all things technology. He loves taking the complicated happenings in the tech world and explaining why they matter. Whether Apple is announcing the next big thing in the mobile space or a small startup advancing generative AI, Dave will apply his experience to help you figure out what&#039;s happening and why it&#039;s relevant to your life.&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;Before Tom&#039;s Guide, Dave worked for publications like PCMag, Pocket-lint, MUO, How-To Geek, Digital Trends, and others. He started writing about technology professionally for MUO in 2011 and hasn&#039;t looked back since. In addition to news, you can find reviews, how-to pieces, shopping guides, and many other types of content with Dave&#039;s name attached.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/Yw7fhu6ppktzX3ZBxfNcdP-1920-80.jpg">
                                                            <media:credit><![CDATA[Apple]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[iphone 12 vs. iphone 12 mini]]></media:description>                                                            <media:text><![CDATA[iphone 12 vs. iphone 12 mini]]></media:text>
                                <media:title type="plain"><![CDATA[iphone 12 vs. iphone 12 mini]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/Yw7fhu6ppktzX3ZBxfNcdP-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Everyone is currently talking about the latest <a href="https://www.tomsguide.com/phones/iphones/ios-27-is-live-heres-how-to-download-and-install-it-now">Apple software releases</a>. With <a href="https://www.tomsguide.com/phones/iphones/ios-27-7-features-you-need-to-try-first-after-updating">iOS 27</a> bringing all kinds of new goodies, it's easy to see why. The <a href="https://www.tomsguide.com/phones/iphones/apple-confirms-iphone-18-pro-face-id-freezing-bug-what-you-need-to-know">Face ID bug that hit iPhone 18 Pro and Pro Max</a> devices brought even more attention to the new versions. </p><p>But that doesn't mean Apple has forgotten about <a href="https://www.tomsguide.com/phones/iphones/i-just-spent-my-first-48-hours-with-ios-26-heres-what-happened">iOS 26</a>, iPadOS 26, macOS Tahoe, <a href="https://www.tomsguide.com/computing/macos/3-macos-sequoia-upgrades-im-most-excited-about">macOS Sequoia</a> and the older devices that can't get the latest and greatest operating systems. If left alone, these older operating systems can become easy targets for attackers.</p><p>In fact, an active attack called <a href="https://nvd.nist.gov/vuln/detail/cve-2026-86950" target="_blank">CVE-2026-86950</a> targeted older Apple devices that Apple has patched to fix. </p><h2 id="new-ios-ipados-and-mac-updates">New iOS, iPadOS and Mac updates</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4330px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="aYyGjcMz9xZL3noSSRtZwY" name="iPadOS 26 LIST" alt="iPadOS 26" src="https://cdn.mos.cms.futurecdn.net/aYyGjcMz9xZL3noSSRtZwY-1920-80.jpg" mos="" align="middle" fullscreen="" width="4330" height="2436" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Apple / Tom's Guide)</span></figcaption></figure><p>The update is available to download now for older Apple devices. If you own a device that can download iOS 26, iPadOS 26, macOS Tahoe or macOS Sequoia, you need to install this update immediately; the exploit is in the wild, and while attacks have been highly targeted so far, you could fall victim if you're not up to date.</p><p>The new versions are iOS 26.7.1, iPadOS 26.7.1, macOS Tahoe 26.7.1 and macOS Sequoia 15.8.1. Download it as soon as you can to stay protected.</p><p>As for what the exploit can do, it affects CoreGraphics, an Apple framework used across iOS, iPadOS and macOS to display and process visuals in files like images and PDFs. Since many of us use images and PDFs regularly, it's easy to see how an attacker exploiting those file types could quickly gain access and do damage.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="YwKRVzwvLwup6hDGh5bVNM" name="RzdqY6hhVUXJjJYEgfCrVe.jpg" alt="A hacker typing quickly on a keyboard" src="https://cdn.mos.cms.futurecdn.net/YwKRVzwvLwup6hDGh5bVNM-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>If an attacker gets into the device, they can interfere with an app or program's normal operation, crash your device or take control of a process. With this particular exploit, processing a maliciously crafted file through CoreGraphics could let an attacker run their own code on a device, which can lead to catastrophic repercussions.</p><p>Apple said the exploit was being used for an "extremely sophisticated attack" that was also targeted. But just because it was targeted doesn't mean it'll stay that way, so you'll want to update your devices ASAP to make sure you're protected.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/phones/android-phones/googles-android-president-on-apple-iphone-duo-android-is-usually-where-you-see-the-future-first"><strong>Android president on Apple's iPhone Duo: 'I'm glad to see more people joining what is now the obvious party'</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/phones/iphones/forget-iphone-18-pro-9-reasons-to-wait-for-the-iphone-20"><strong>Forget iPhone 18 Pro — 9 reasons to wait for the iPhone 20</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/phones/i-finally-unlinked-my-iphone-alarm-from-my-ringer-volume-here-is-where-apple-hid-it-in-ios-27"><strong>I finally unlinked my iPhone alarm from my ringer volume — here is where Apple hid it in iOS 27</strong></a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Proton VPN's privacy credentials are unmatched – and it's $2.99 per month ]]></title>
                                                                                                <dc:content><![CDATA[ <p>With hundreds of VPNs available, it can be incredibly difficult to dig out the <a href="https://www.tomsguide.com/best-picks/best-vpn">best VPN</a> for you. That's why we've reviewed dozens of VPN for over 8 years at Tom's Guide – and it's no secret that we rate Proton VPN as the <a href="https://www.tomsguide.com/best-picks/most-private-vpn">best VPN for privacy</a>.</p><p>There are plenty of reasons why – the Secure Core servers, audited no-logs policy, open-source apps on all devices... The list goes on, and you can find out more in my in-depth <a href="https://www.tomsguide.com/reviews/protonvpn-review">Proton VPN review</a> if you're interested.</p><p>However, the price is very appealing, too. Right now, Proton VPN sits at <a href="https://go.getproton.me/aff_ad?campaign_id=1607&amp;aff_id=1046&amp;source=toms_guide" target="_blank" rel="nofollow"><strong>$2.99 per month</strong></a> on the 2-year plan ($71.76 all-in). </p><p>But hold on a second. If you're looking to start de-Googling your life, Proton Unlimited is currently also discounted. On the 12-month plan, it currently sits at <a href="https://go.getproton.me/SH2ro" target="_blank" rel="nofollow"><strong>$9.09 per month</strong></a> ($109.12 all-in, rising to $119.88 in the years after). This includes the VPN as well as secure Mail, Drive, Calendar, and more.</p><p>Whichever takes your fancy, you rest easy with the knowledge that Proton is one of the relatively few VPN companies that <em>actually</em> puts your privacy first. Because the non-profit organisation Proton Foundation controls Proton AG (the company that makes the VPN), it can't be forced to prioritise making money over protecting its customers by external investors.</p><p>More info on these excellent Proton VPN deals below.</p><div class="product"><a data-dimension112="710990b8-b75a-11f1-a75d-65a395f78035" data-action="Deal Block" data-label="Proton VPN | $2.99 per month | 2 years" data-dimension48="Proton VPN | $2.99 per month | 2 years" href="https://go.getproton.me/aff_ad?campaign_id=1607&amp;aff_id=1046&amp;source=toms_guide" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:400px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="ZZppZSPNC4hD4Vn7FwV9i3" name="Proton VPN logo square.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/ZZppZSPNC4hD4Vn7FwV9i3-1920-80.jpg" mos="" align="middle" fullscreen="" width="400" height="400" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://go.getproton.me/aff_ad?campaign_id=1607&amp;aff_id=1046&amp;source=toms_guide" target="_blank" rel="nofollow" data-dimension112="710990b8-b75a-11f1-a75d-65a395f78035" data-action="Deal Block" data-label="Proton VPN | $2.99 per month | 2 years" data-dimension48="Proton VPN | $2.99 per month | 2 years" data-dimension25=""><strong>Proton VPN | $2.99 per month | 2 years</strong></a><br />Proton VPN prioritizes privacy above all else. It's a highly secure VPN, with super fast speeds and powerful streaming unblocking. Plus, one plan unlocks all Proton VPN's features.</p><p><strong>What you'll get...</strong></p><p><strong>🔒 Class-leading privacy credentials </strong><br /><strong>✨ Dedicated anti-censorship features </strong><br /><strong>🌍 20,000+ servers worldwide</strong><br /><strong>🚀 1,500+ Mbps speeds</strong></p><p>A two-year plan costs <a href="https://go.getproton.me/aff_ad?campaign_id=1607&amp;aff_id=1046&amp;source=toms_guide" target="_blank" rel="nofollow"><strong>$2.99 per month</strong></a> ($71.76 upfront) and comes with a 30-day money-back guarantee. <a class="view-deal button" href="https://go.getproton.me/aff_ad?campaign_id=1607&amp;aff_id=1046&amp;source=toms_guide" target="_blank" rel="nofollow" data-dimension112="710990b8-b75a-11f1-a75d-65a395f78035" data-action="Deal Block" data-label="Proton VPN | $2.99 per month | 2 years" data-dimension48="Proton VPN | $2.99 per month | 2 years" data-dimension25="">View Deal</a></p></div><div class="product"><a data-dimension112="7109914e-b75a-11f1-b35c-c1136e3a0747" data-action="Deal Block" data-label="Proton Unlimited | $9.09 per month | 2 years" data-dimension48="Proton Unlimited | $9.09 per month | 2 years" href="https://go.getproton.me/SH2ro" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:600px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="jmWEg8R6EQiksqJHZjbqU3" name="Proton deal block logo" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/jmWEg8R6EQiksqJHZjbqU3-1920-80.jpg" mos="" align="middle" fullscreen="" width="600" height="600" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://go.getproton.me/SH2ro" target="_blank" rel="nofollow" data-dimension112="7109914e-b75a-11f1-b35c-c1136e3a0747" data-action="Deal Block" data-label="Proton Unlimited | $9.09 per month | 2 years" data-dimension48="Proton Unlimited | $9.09 per month | 2 years" data-dimension25=""><strong>Proton Unlimited | $9.09 per month | 2 years</strong></a><br />Proton Unlimited includes everything you get with Proton VPN, plus premium subscriptions to Proton Drive, Proton Pass, Proton Mail, Proton Calendar, and Proton Wallet. In short, it's a privacy-focused replacement for almost every Google or Apple product you already use.</p><p><strong>What you'll get...</strong></p><p><strong>🔒 Every Proton VPN feature</strong><br /><strong>⚙️ Premium Drive, Mail, Pass, Calendar + Wallet</strong><br /><strong>💸 Big discount compared to individual plans</strong><br /><strong>😎 Complete Google replacement</strong></p><p>A two-year plan costs <a href="https://go.getproton.me/aff_ad?campaign_id=1607&amp;aff_id=1046&amp;source=toms_guide" target="_blank" rel="nofollow"><strong>$9.09 per month</strong></a> ($109.12 upfront) and comes with a 30-day money-back guarantee. <a class="view-deal button" href="https://go.getproton.me/SH2ro" target="_blank" rel="nofollow" data-dimension112="7109914e-b75a-11f1-b35c-c1136e3a0747" data-action="Deal Block" data-label="Proton Unlimited | $9.09 per month | 2 years" data-dimension48="Proton Unlimited | $9.09 per month | 2 years" data-dimension25="">View Deal</a></p></div><h2 id="how-does-proton-vpn-compare">How does Proton VPN compare?</h2><p>On paper, Proton VPN puts up some very impressive stats. It has servers in 145 countries, which gives you great range around the world. The only VPN with more is <a href="https://www.tomsguide.com/reviews/nordvpn-review">NordVPN</a>, with 167.</p><p>Proton VPN is fast, too, delivering average speeds of over 1,500 Mbps on our 10 Gbps connection. Some VPNs, including <a href="https://www.tomsguide.com/reviews/surfshark-vpn-review">Surfshark</a>, <a href="https://www.tomsguide.com/reviews/mullvad-vpn-review">Mullvad </a>and <a href="https://www.tomsguide.com/reviews/windscribe-vpn-review">Windscribe </a>were faster in the same tests, but Proton is competing at the top of the table.</p><p>Proton's privacy credentials are what really impresses, though, and if you're looking for one of the <a href="https://www.tomsguide.com/best-picks/most-private-vpn">most private VPNs</a>, Proton VPN is hard to beat. It values privacy above all else, and its features reflect that. </p><p><a href="https://www.tomsguide.com/features/protonvpn-secure-core">Secure Core</a> is its <a href="https://www.tomsguide.com/features/what-is-a-double-vpn-and-how-does-it-work">Double VPN</a> feature, and it routes your VPN traffic through two servers rather than one. Proton VPN owns and operates all of its Secure Core servers, and you connect to your desired location via Iceland, Sweden, or Switzerland. Plus, <a href="https://www.tomsguide.com/news/what-is-vpn-obfuscation-and-do-i-need-it">VPN obfuscation</a> is provided through the <a href="https://www.tomsguide.com/features/proton-vpn-stealth-protocol-what-is-it-and-why-should-you-use-it">Stealth protocol</a>. This disguises your VPN traffic to help it bypass internet restrictions. </p><p>There's a rock-solid kill switch, and threat protection in the form of <a href="https://www.tomsguide.com/features/proton-vpn-netshield-what-is-it-and-why-should-you-use-it">NetShield</a>. However, be aware that the latter isn't nearly as good as other VPN malware protection like NordVPN's Next-Gen Antivirus. It's handy to have, and better than nothing, but I'd recommend a standalone malware and ad blocker instead of relying on it.</p><p>Overall, Proton VPN is one of the very best VPNs available right now – and if privacy is your top concern, it should be your first consideration.</p><div data-widget-type="simple" data-model-name="Proton VPN"></div><p>We test and review VPN services in the context of legal recreational uses. For example:1. Accessing a service from another country (subject to the terms and conditions of that service).2. Protecting your online security and strengthening your online privacy when abroad.We do not support or condone the illegal or malicious use of VPN services. Consuming pirated content that is paid-for is neither endorsed nor approved by Future Publishing.</p> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/vpns/we-rate-proton-vpn-as-the-most-private-vpn-and-its-currently-just-usd2-99-per-month</link>
                                                                            <description>
                            <![CDATA[ Proton VPN offers the best privacy out of any VPN I've tested – but Proton's other apps are also well worth considering, too. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">N5XxiGBnCRcJMqbCkaUe8N</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/bBGRW4ko3fLYrfkoegDfe6-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 23 Sep 2026 14:46:37 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[VPNs]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Internet]]></category>
                                                                                                                    <dc:creator><![CDATA[ Mo Harber-Lamond ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/e5z29XBdy9KTwJ4GsGoUsH-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;As VPN editor at Tom&#039;s Guide, Mo manages the three-strong VPN team and oversees a busy weekly content schedule of VPN, privacy, and cybersecurity news, reviews, and advice. He&#039;s a daily VPN user himself – typically NordVPN or ExpressVPN – and a regular reviewer of all the leading services: you’ll find his latest recommendations in Tom’s Guide’s &lt;a href=&quot;https://www.tomsguide.com/best-picks/best-vpn&quot;&gt;best VPN&lt;/a&gt; and &lt;a href=&quot;https://www.tomsguide.com/best-picks/best-free-vpn&quot;&gt;best free VPN&lt;/a&gt; guides. &lt;/p&gt;&lt;p&gt;Mo is committed to helping people choose the right VPN for their needs, and takes a meticulous, data-driven approach to Tom’s Guide’s testing processes to ensure that he and his team can make confident VPN recommendations that are grounded in thorough, real-world testing. &lt;/p&gt;&lt;p&gt;Whether he’s analyzing advanced privacy features like obfuscation and split tunneling, connection speeds across different protocols such as WireGuard and OpenVPN, or compatibility across different devices, Mo has clocked up hundreds of hours over the last half-decade interrogating the claims made by leading and lesser-known VPN providers.&lt;/p&gt;&lt;p&gt;Mo&#039;s newest venture is launching &lt;a href=&quot;https://www.youtube.com/@The.PrivacyLab&quot; target=&quot;_blank&quot;&gt;The Privacy Lab&lt;/a&gt; on YouTube. Focusing on general digital privacy – including VPNs, of course – The Privacy Lab aims to make staying safer online more accessible. Expect explainers, recommendations, and longer deep-dives into important privacy stories.&lt;/p&gt;&lt;p&gt;Outside of his role at Tom’s Guide, Mo has contributed to a number of leading tech publications on VPN and privacy issues, including &lt;a href=&quot;https://www.techradar.com/author/mo-harber-lamond&quot;&gt;TechRadar&lt;/a&gt;, &lt;a href=&quot;https://www.whathifi.com/author/mo-harber-lamond&quot;&gt;What Hi-Fi?&lt;/a&gt; and &lt;a href=&quot;https://www.t3.com/author/mo-harber-lamond&quot;&gt;T3&lt;/a&gt;, developing his position as a trusted voice in the field. &lt;/p&gt;&lt;p&gt;He graduated with First Class honours in English Literature and Creative Writing from Manchester University in the UK, and before joining the Tom&#039;s Guide team, worked for several years in creative and editorial writing. Alongside this, he side-hustled as a proofreader and copy editor – honing his skills in communicating complex information clearly – all the while gaining notoriety (if not success) with his band in his homeland of Cornwall.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/bBGRW4ko3fLYrfkoegDfe6-1920-80.jpg">
                                                            <media:credit><![CDATA[Future]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Laptop and smartphone on a table, both connected to Proton VPN Free]]></media:description>                                                            <media:text><![CDATA[Laptop and smartphone on a table, both connected to Proton VPN Free]]></media:text>
                                <media:title type="plain"><![CDATA[Laptop and smartphone on a table, both connected to Proton VPN Free]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/bBGRW4ko3fLYrfkoegDfe6-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>With hundreds of VPNs available, it can be incredibly difficult to dig out the <a href="https://www.tomsguide.com/best-picks/best-vpn">best VPN</a> for you. That's why we've reviewed dozens of VPN for over 8 years at Tom's Guide – and it's no secret that we rate Proton VPN as the <a href="https://www.tomsguide.com/best-picks/most-private-vpn">best VPN for privacy</a>.</p><p>There are plenty of reasons why – the Secure Core servers, audited no-logs policy, open-source apps on all devices... The list goes on, and you can find out more in my in-depth <a href="https://www.tomsguide.com/reviews/protonvpn-review">Proton VPN review</a> if you're interested.</p><p>However, the price is very appealing, too. Right now, Proton VPN sits at <a href="https://go.getproton.me/aff_ad?campaign_id=1607&amp;aff_id=1046&amp;source=toms_guide" target="_blank" rel="nofollow"><strong>$2.99 per month</strong></a> on the 2-year plan ($71.76 all-in). </p><p>But hold on a second. If you're looking to start de-Googling your life, Proton Unlimited is currently also discounted. On the 12-month plan, it currently sits at <a href="https://go.getproton.me/SH2ro" target="_blank" rel="nofollow"><strong>$9.09 per month</strong></a> ($109.12 all-in, rising to $119.88 in the years after). This includes the VPN as well as secure Mail, Drive, Calendar, and more.</p><p>Whichever takes your fancy, you rest easy with the knowledge that Proton is one of the relatively few VPN companies that <em>actually</em> puts your privacy first. Because the non-profit organisation Proton Foundation controls Proton AG (the company that makes the VPN), it can't be forced to prioritise making money over protecting its customers by external investors.</p><p>More info on these excellent Proton VPN deals below.</p><div class="product"><a data-dimension112="710990b8-b75a-11f1-a75d-65a395f78035" data-action="Deal Block" data-label="Proton VPN | $2.99 per month | 2 years" data-dimension48="Proton VPN | $2.99 per month | 2 years" href="https://go.getproton.me/aff_ad?campaign_id=1607&amp;aff_id=1046&amp;source=toms_guide" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:400px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="ZZppZSPNC4hD4Vn7FwV9i3" name="Proton VPN logo square.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/ZZppZSPNC4hD4Vn7FwV9i3-1920-80.jpg" mos="" align="middle" fullscreen="" width="400" height="400" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://go.getproton.me/aff_ad?campaign_id=1607&amp;aff_id=1046&amp;source=toms_guide" target="_blank" rel="nofollow" data-dimension112="710990b8-b75a-11f1-a75d-65a395f78035" data-action="Deal Block" data-label="Proton VPN | $2.99 per month | 2 years" data-dimension48="Proton VPN | $2.99 per month | 2 years" data-dimension25=""><strong>Proton VPN | $2.99 per month | 2 years</strong></a><br />Proton VPN prioritizes privacy above all else. It's a highly secure VPN, with super fast speeds and powerful streaming unblocking. Plus, one plan unlocks all Proton VPN's features.</p><p><strong>What you'll get...</strong></p><p><strong>🔒 Class-leading privacy credentials </strong><br /><strong>✨ Dedicated anti-censorship features </strong><br /><strong>🌍 20,000+ servers worldwide</strong><br /><strong>🚀 1,500+ Mbps speeds</strong></p><p>A two-year plan costs <a href="https://go.getproton.me/aff_ad?campaign_id=1607&amp;aff_id=1046&amp;source=toms_guide" target="_blank" rel="nofollow"><strong>$2.99 per month</strong></a> ($71.76 upfront) and comes with a 30-day money-back guarantee. <a class="view-deal button" href="https://go.getproton.me/aff_ad?campaign_id=1607&amp;aff_id=1046&amp;source=toms_guide" target="_blank" rel="nofollow" data-dimension112="710990b8-b75a-11f1-a75d-65a395f78035" data-action="Deal Block" data-label="Proton VPN | $2.99 per month | 2 years" data-dimension48="Proton VPN | $2.99 per month | 2 years" data-dimension25="">View Deal</a></p></div><div class="product"><a data-dimension112="7109914e-b75a-11f1-b35c-c1136e3a0747" data-action="Deal Block" data-label="Proton Unlimited | $9.09 per month | 2 years" data-dimension48="Proton Unlimited | $9.09 per month | 2 years" href="https://go.getproton.me/SH2ro" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:600px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="jmWEg8R6EQiksqJHZjbqU3" name="Proton deal block logo" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/jmWEg8R6EQiksqJHZjbqU3-1920-80.jpg" mos="" align="middle" fullscreen="" width="600" height="600" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><a href="https://go.getproton.me/SH2ro" target="_blank" rel="nofollow" data-dimension112="7109914e-b75a-11f1-b35c-c1136e3a0747" data-action="Deal Block" data-label="Proton Unlimited | $9.09 per month | 2 years" data-dimension48="Proton Unlimited | $9.09 per month | 2 years" data-dimension25=""><strong>Proton Unlimited | $9.09 per month | 2 years</strong></a><br />Proton Unlimited includes everything you get with Proton VPN, plus premium subscriptions to Proton Drive, Proton Pass, Proton Mail, Proton Calendar, and Proton Wallet. In short, it's a privacy-focused replacement for almost every Google or Apple product you already use.</p><p><strong>What you'll get...</strong></p><p><strong>🔒 Every Proton VPN feature</strong><br /><strong>⚙️ Premium Drive, Mail, Pass, Calendar + Wallet</strong><br /><strong>💸 Big discount compared to individual plans</strong><br /><strong>😎 Complete Google replacement</strong></p><p>A two-year plan costs <a href="https://go.getproton.me/aff_ad?campaign_id=1607&amp;aff_id=1046&amp;source=toms_guide" target="_blank" rel="nofollow"><strong>$9.09 per month</strong></a> ($109.12 upfront) and comes with a 30-day money-back guarantee. <a class="view-deal button" href="https://go.getproton.me/SH2ro" target="_blank" rel="nofollow" data-dimension112="7109914e-b75a-11f1-b35c-c1136e3a0747" data-action="Deal Block" data-label="Proton Unlimited | $9.09 per month | 2 years" data-dimension48="Proton Unlimited | $9.09 per month | 2 years" data-dimension25="">View Deal</a></p></div><h2 id="how-does-proton-vpn-compare">How does Proton VPN compare?</h2><p>On paper, Proton VPN puts up some very impressive stats. It has servers in 145 countries, which gives you great range around the world. The only VPN with more is <a href="https://www.tomsguide.com/reviews/nordvpn-review">NordVPN</a>, with 167.</p><p>Proton VPN is fast, too, delivering average speeds of over 1,500 Mbps on our 10 Gbps connection. Some VPNs, including <a href="https://www.tomsguide.com/reviews/surfshark-vpn-review">Surfshark</a>, <a href="https://www.tomsguide.com/reviews/mullvad-vpn-review">Mullvad </a>and <a href="https://www.tomsguide.com/reviews/windscribe-vpn-review">Windscribe </a>were faster in the same tests, but Proton is competing at the top of the table.</p><p>Proton's privacy credentials are what really impresses, though, and if you're looking for one of the <a href="https://www.tomsguide.com/best-picks/most-private-vpn">most private VPNs</a>, Proton VPN is hard to beat. It values privacy above all else, and its features reflect that. </p><p><a href="https://www.tomsguide.com/features/protonvpn-secure-core">Secure Core</a> is its <a href="https://www.tomsguide.com/features/what-is-a-double-vpn-and-how-does-it-work">Double VPN</a> feature, and it routes your VPN traffic through two servers rather than one. Proton VPN owns and operates all of its Secure Core servers, and you connect to your desired location via Iceland, Sweden, or Switzerland. Plus, <a href="https://www.tomsguide.com/news/what-is-vpn-obfuscation-and-do-i-need-it">VPN obfuscation</a> is provided through the <a href="https://www.tomsguide.com/features/proton-vpn-stealth-protocol-what-is-it-and-why-should-you-use-it">Stealth protocol</a>. This disguises your VPN traffic to help it bypass internet restrictions. </p><p>There's a rock-solid kill switch, and threat protection in the form of <a href="https://www.tomsguide.com/features/proton-vpn-netshield-what-is-it-and-why-should-you-use-it">NetShield</a>. However, be aware that the latter isn't nearly as good as other VPN malware protection like NordVPN's Next-Gen Antivirus. It's handy to have, and better than nothing, but I'd recommend a standalone malware and ad blocker instead of relying on it.</p><p>Overall, Proton VPN is one of the very best VPNs available right now – and if privacy is your top concern, it should be your first consideration.</p><div data-widget-type="simple" data-model-name="Proton VPN"></div><p>We test and review VPN services in the context of legal recreational uses. For example:1. Accessing a service from another country (subject to the terms and conditions of that service).2. Protecting your online security and strengthening your online privacy when abroad.We do not support or condone the illegal or malicious use of VPN services. Consuming pirated content that is paid-for is neither endorsed nor approved by Future Publishing.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ The best Norton products for staying safe online 2026 ]]></title>
                                                                                                <dc:content><![CDATA[ <p>If you’re looking to protect yourself online, we’re here to help. We’ve compared Norton’s range of online security plans, assessing their features, protection, performance and value. There are several options worth considering, from antivirus protection to more comprehensive coverage and family-focused plans. So grab a coffee while we talk you through the Norton product lineup.</p><h2 class="article-body__section" id="section-best-all-round-protection"><span>Best all-round protection</span></h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1200px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="teFuQBdFQYX3uqjXHRy4Hn" name="Norton 360 Deluxe" alt="Norton 360 Deluxe Box" src="https://cdn.mos.cms.futurecdn.net/teFuQBdFQYX3uqjXHRy4Hn-1920-80.png" mos="" align="middle" fullscreen="" width="1200" height="675" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Norton)</span></figcaption></figure><div class="buying-guide-block"><h3 id="norton-360-deluxe"><span class="title__text"><a href="https://www.tomsguide.com/computing/antivirus/norton-360-review">Norton 360 Deluxe</a></span><span class="chunk rating"><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star half"></span></span></h3><div class="_hawk subtitle"><p>Effective antivirus with wider protection for several devices, plus a VPN and parental controls</p></div><p class="specs__container"><strong>VPN: </strong>Yes | <strong>Compatible OS: </strong>Windows, macOS, iOS, Android | <strong>Cloud backup: </strong>50GB | <strong>Parental controls: </strong>Yes</p><div class="hawk-wrapper"></div><div class="icon icon-plus_circle _hawk">Covers your devices, privacy, and family</div><div class="icon icon-plus_circle _hawk">Scam and deepfake protection</div><div class="icon icon-plus_circle _hawk">Accessible and user-friendly interface</div><div class="icon icon-plus_circle _hawk">24/7 customer support and active forums</div><div class="icon icon-plus_circle _hawk">Low impact on system resources</div><div class="icon icon-minus_circle _hawk">Some features cost extra</div><div class="icon icon-minus_circle _hawk">AI assistant is a little slow</div></div><p>Norton 360 is a family of plans that are designed to help you stay safe online. The Deluxe option is our top recommendation: it's number one in our <a href="https://www.tomsguide.com/computing/antivirus/weve-tested-the-best-antivirus-software-to-protect-your-computer-and-these-are-the-6-we-recommend">best antivirus</a> guide, offering real-time protection from malicious software such as viruses, ransomware, and spyware for up to five devices, alongside an extensive set of extra security features, including a firewall, password manager, VPN for privacy, and parental controls. </p><p>It's a particularly good choice for families with multiple devices to manage. If you have fewer devices to protect, or a lower budget, consider the Norton 360 Standard plan instead. You get the same all-round protection (antivirus, scam protection, VPN etc) but across three devices, and without some of the extra features.  </p><p>We were impressed with the performance of all the applications during our testing of both products. Whether we were running Norton 360 on an iPhone, Android device, PC or Mac, we found the apps easy to use, with no noticeable system slowdown.</p><p>In our real-world tests for Norton 360 Standard (which has the same core antivirus app), we ran a quick scan and a full scan while gaming. As shown in the performance results below, there was minimal slowdown during play, with negligible impact from the software.</p><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p><strong>FPS with Norton 360 running</strong></p></th><th  ><p><strong>FPS with Quick Scan running</strong></p></th><th  ><p><strong>FPS with Full Scan running</strong></p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Cyberpunk 2077 (Ultra graphics)</strong></p></td><td  ><p>118</p></td><td  ><p>107</p></td><td  ><p>105</p></td></tr><tr><td class="firstcol " ><p><strong>Forza Horizon 5 (High graphics)</strong></p></td><td  ><p>125</p></td><td  ><p>123</p></td><td  ><p>123</p></td></tr></tbody></table></div><p>Norton VPN is a useful addition and works well for everyday privacy, connecting quickly to nearby servers to encrypt your data while browsing, streaming and using public Wi-Fi. </p><p>We weren’t the biggest fans of Norton’s AI feature, Ask Genie. It was slow to respond and needed multiple inputs to check if links were safe. Competitors do this better. Mac users, beware as well — some features like SafeCam and Cloud Backup are only for Windows users. That's no great loss thanks to macOS’s built-in camera privacy options and Time Machine, but worth knowing.</p><p>Overall, Norton 360 Deluxe offers an impressive range of online security features that perform well, AI assistant notwithstanding. But there are several other plans if you have different needs. Norton 360 Standard is a cheaper, entry-level option if you have fewer devices to protect, for example, or a lower budget.</p><p>And if you're particularly worried about identity theft, you'll need to upgrade to a plan that includes LifeLock, which will cost you more — the Deluxe package only offers some basic identity theft protection features.</p><p>As with most online security software, be aware that the price of all plans rises by quite a margin when the annual renewal kicks in. You can turn off auto-renewal in your account settings at any time.</p><ul><li><strong>Read our </strong><a href="https://www.tomsguide.com/computing/antivirus/norton-360-review"><strong>Norton 360 review</strong></a></li></ul><h2 class="article-body__section" id="section-best-for-privacy"><span>Best for privacy</span></h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1200px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="KEQy9gRYDwqHxiYwpey5wb" name="Norton VPN" alt="Norton VPN Standard Box" src="https://cdn.mos.cms.futurecdn.net/KEQy9gRYDwqHxiYwpey5wb-1920-80.png" mos="" align="middle" fullscreen="" width="1200" height="675" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Norton)</span></figcaption></figure><div class="buying-guide-block"><h3 id="norton-vpn"><span class="title__text"><a href="https://www.tomsguide.com/computing/vpns/norton-vpn-review">Norton VPN</a></span><span class="chunk rating"><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span></span></h3><div class="_hawk subtitle"><p>Keeps your online activity private and secure</p></div><p class="specs__container"><strong>VPN: </strong>Yes | <strong>Identity protection: </strong>No | <strong>Compatible OS: </strong>Windows, macOS, iOS, Android | <strong>Parental controls: </strong>Yes</p><div class="hawk-wrapper"></div><div class="icon icon-plus_circle _hawk">Excellent privacy and streaming abroad</div><div class="icon icon-plus_circle _hawk">Supports IP rotation and multi-hop</div><div class="icon icon-plus_circle _hawk">Fast connection speeds</div><div class="icon icon-plus_circle _hawk">Audited no-logs policy and transparency report</div><div class="icon icon-minus_circle _hawk">Mac and iOS apps lack some features</div><div class="icon icon-minus_circle _hawk">No OpenVPN on Mac</div><div class="icon icon-minus_circle _hawk">Usage limited by devices rather than connections</div><div class="icon icon-minus_circle _hawk">Apps and pop-ups can be slightly intrusive</div></div><p>If you're looking for online privacy — or a way to access region-locked content — and don't need the extra security features of <a href="https://norton.ow5a.net/c/1943169/3893206/4405?subId1=hawk-custom-tracking&amp;sharedid=tg&amp;param1=aff&amp;param2=us_paidsearch_customlp&amp;param3=security" rel="nofollow" data-rewrite="keep">Norton 360 Deluxe</a> or LifeLock, Norton VPN is a good choice.</p><p>Following a massive transformation over the last 18 months, it's now one of our top recommendations in our <a href="https://www.tomsguide.com/best-picks/best-vpn">best VPN</a> guide. Its privacy credentials are strong: Norton’s no-logs policy has been independently audited, supporting its claim that it does not record, store or sell its users’ browsing activity.</p><p>However, where Norton VPN excels is streaming. It was the only VPN in our latest round of testing that successfully unblocked every streaming service we threw at it, including Netflix, Prime Video, Disney+, BBC iPlayer, ITVX, Channel 4, 9Now, 10 Play and YouTube.</p><p>Norton also recently expanded its global network coverage to over 100 different countries, bringing it closer in line with rivals Surfshark and ExpressVPN. That's more than enough to ensure high-speed browsing and smooth streaming for everyday use.</p><p>Price-wise, Norton VPN ties with Surfshark as the cheapest of our top-rated VPNs, making it great value for money. All this adds up to a reasonably priced and well-featured VPN that we have no qualms recommending to pretty much everyone.</p><ul><li><strong>Read our </strong><a href="https://www.tomsguide.com/computing/vpns/norton-vpn-review"><strong>Norton VPN review</strong></a></li></ul><h2 class="article-body__section" id="section-best-norton-internet-security-suite"><span>Best Norton internet security suite</span></h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1200px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="mgHBFjZpu9qj2Ywy4pUGck" name="Norton 360 With LifeLock" alt="Norton 360 With LifeLock" src="https://cdn.mos.cms.futurecdn.net/mgHBFjZpu9qj2Ywy4pUGck-1920-80.png" mos="" align="middle" fullscreen="" width="1200" height="675" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Norton 360 With LifeLock)</span></figcaption></figure><div class="buying-guide-block"><h3 id="norton-360-with-lifelock"><span class="title__text"><a href="https://www.tomsguide.com/computing/antivirus/norton-360-review">Norton 360 with LifeLock</a></span><span class="chunk rating"><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star half"></span></span></h3><div class="_hawk subtitle"><p>Protects your identity from thieves, with credit monitoring, and recovery support</p></div><p class="specs__container"><strong>VPN: </strong>Yes | <strong>Identity protection: </strong>Yes | <strong>Compatible OS: </strong>Windows, macOS, iOS, Android | <strong>Parental controls: </strong>Yes</p><div class="hawk-wrapper"></div><div class="icon icon-plus_circle _hawk">Comprehensive identity monitoring and recovery</div><div class="icon icon-plus_circle _hawk">Credit monitoring, scores, and reports — up to three bureaus depending on the plan</div><div class="icon icon-plus_circle _hawk">Includes all Norton 360 digital security protections </div><div class="icon icon-minus_circle _hawk">Expensive</div><div class="icon icon-minus_circle _hawk">Software can be overwhelming</div></div><p>Hacks and data breaches are increasingly common, which means you data could end up leaked onto the internet through no fault of your own. Norton 360 with LifeLock helps protect you when your info escapes into the wild, with the same security protections as Norton 360, but with extra identity theft protection. </p><p>You can broadly split the coverage into two parts; proactive monitoring of credit reports and data breaches to catch any potential issues, like social security leaks or fraud, and restoration support for when your personal information is exposed or you're the victim of financial fraud or identity theft. </p><p>The proactive monitoring is incredibly helpful, as you can flag any potential issues before they become a problem . And if someone does manage to get into your accounts to steal your identity or money, Norton 360 with LifeLock means you get a Personal Restoration Specialist, based in the U.S., who'll get your accounts back in order. This is one of the reasons we rank it as the <a href="https://www.tomsguide.com/best-picks/best-internet-security-suites">best internet security suite</a> you can get right now. </p><p>There a few editions of Norton 360 with LifeLock: Select, Advantage and Ultimate Plus. The main difference between each is the amount you'll be reimbursed if your money or identity are stolen, and a few other things, like the amount of cloud backup storage you get and volume of credit reports and from which bureaus. </p><p>Although Norton 360 with LifeLock offers very similar digital security features to <a href="#elk-98c8a27a-a863-11f1-946a-a50cf3295226">Norton 360 Deluxe</a>, it's also costs quite a lot more. You do get a lot for your money if things go wrong and your personal data gets abused, but it's important to think about your exposure to these risks and decide whether the digital security tools of 360 Deluxe would be enough.  </p><h2 class="article-body__section" id="section-best-for-parental-controls"><span>Best for parental controls</span></h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1200px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="mekZfwzxVbD4BQVCbdpsbh" name="Norton Family" alt="Norton Family Box" src="https://cdn.mos.cms.futurecdn.net/mekZfwzxVbD4BQVCbdpsbh-1920-80.png" mos="" align="middle" fullscreen="" width="1200" height="675" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Norton)</span></figcaption></figure><div class="buying-guide-block"><h3 id="norton-family"><span class="title__text"><a href="https://www.tomsguide.com/reviews/norton-family">Norton Family</a></span><span class="chunk rating"><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star half"></span></span></h3><div class="_hawk subtitle"><p>Effective parental control app for Android, Windows and iOS households</p></div><p class="specs__container"><strong>VPN: </strong>No | <strong>Identity protection: </strong>No | <strong>Compatible OS: </strong>Windows, iOS, Android | <strong>Parental controls: </strong>Yes</p><div class="hawk-wrapper"></div><div class="icon icon-plus_circle _hawk">Extensive app and website control tools</div><div class="icon icon-plus_circle _hawk">Unlimited children and devices</div><div class="icon icon-plus_circle _hawk">Works with smartphones and Windows computers</div><div class="icon icon-minus_circle _hawk">Limited iOS features</div><div class="icon icon-minus_circle _hawk">Not available on Mac</div></div><p>Norton Family is a dedicated parental control app that's designed to keep your kids safer when they're online. It gives you greater control over what they can see or do while browsing, allowing you to block inappropriate websites and set healthy screen time limits.</p><p>It lets you supervise your kids' web use, so that you can see the sites they're visiting. You can check what apps they're installing, and choose which they're allowed to use. You can even track their search history to see what they're interested in (and how suitable it is).</p><p>We rate it as one of the <a href="https://www.tomsguide.com/us/best-parental-control-apps,review-2258.html">best parental control apps</a> out there, particularly for Android and Windows households. However, bear in mind that like many of its rivals Norton Family isn't compatible with macOS: it can't be installed on a child’s Mac or MacBook to monitor desktop activity. Features like individual app-level blocking are also unavailable or limited on iPhones and iPads due to Apple’s operating system restrictions.</p><p>It's one of the more affordable parental control apps, with unlimited devices and child accounts. However, prices do rise substantially after the first year of subscription. If you're considering antivirus software as well, it would be worth choosing <a href="https://norton.ow5a.net/c/1943169/3893206/4405?subId1=hawk-custom-tracking&amp;sharedid=tg&amp;param1=aff&amp;param2=us_paidsearch_customlp&amp;param3=security" rel="nofollow" data-rewrite="keep">Norton 360 Deluxe</a> or any of the higher 360 packages, which come with Norton Family bundled in.</p><ul><li><strong>Read our </strong><a href="https://www.tomsguide.com/reviews/norton-family"><strong>Norton Family review</strong></a></li></ul><h2 class="article-body__section" id="section-faqs"><span>FAQs</span></h2><section class="article__schema-question"><h3>How do I know which package I need?</h3><article class="article__schema-answer"><p><a href="#elk-98c8a27a-a863-11f1-946a-a50cf3295226">Norton 360 Deluxe</a> is our top recommendation for most people because it includes the antivirus, VPN, and Norton Family bundled together. But weigh up what you actually need against the price you’re willing to pay. The standard package will be plenty for some people.</p><p>As for <a href="#elk-98c8a7d4-a863-11f1-83c2-67d11990f268">Norton 360 with LifeLock</a>, you get almost all the same protections as with 360 Deluxe, but identity and fraud protection included too, with reimbursements if your money gets stolen, a dedicated Restoration Specialist who'll handle all the work needed to regain control of your accounts. It's more expensive than the Deluxe digital security package, so go this route if you're also worried about the risk of identity theft. </p><p>If you’ve already gone for a 360 package, you don’t need to worry about a <a href="#elk-c84a1956-a864-11f1-9f10-27f5e192baea">Norton VPN</a> subscription. It’s built in. If, however, you don’t want or need the internet security packages, then a VPN subscription is a solid way to be safer when browsing the web. </p><p>Finally, <a href="#elk-4fb6e582-aacb-11f1-80b2-47b83de25da0">Norton Family</a> is great if you want to keep costs down and make sure that your kids are safe while browsing online. It's worth bundling it with Norton 360, however, because you get the other helpful antivirus benefits.</p></article></section><section class="article__schema-question"><h3>What about a family plan?</h3><article class="article__schema-answer"><p><a href="https://norton.ow5a.net/c/1943169/3893206/4405?subId1=hawk-custom-tracking&amp;sharedid=tg&amp;param1=aff&amp;param2=us_paidsearch_customlp&amp;param3=security" rel="nofollow" data-rewrite="keep">Norton 360 Deluxe</a> covers up to five PCs, Macs, phones, or tablets, making it a practical choice for households with several devices. It also includes parental control options, which let you restrict internet access for your little ones who might otherwise stumble across something unsavory. Or seek it out. Either way, you can stop them from accessing stuff you don’t want them to see, and save them from potentially introducing a virus to your home network or PC.</p><p>If you need identity protection for more than one adult or child, some <a href="https://norton.ow5a.net/c/1943169/3799603/4405?subId1=hawk-custom-tracking&amp;sharedid=tg&amp;param1=aff&amp;param2=us_paidsearch_customlp&amp;param3=security" rel="nofollow" data-rewrite="keep">Norton 360 with LifeLock</a> and standalone LifeLock plans offer separate family options. </p><p>Family plans are usually pretty expensive, though you may find it worth it for the extra protection and peace of mind. </p></article></section> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/antivirus/best-norton-products-staying-safe-online</link>
                                                                            <description>
                            <![CDATA[ We've tested every single Norton product around so that we can find the best for you. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">hcTaBoQ5hczwbFQLHxSeYZ</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/aNFt4tNS9id7t47qzTnvTL-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 23 Sep 2026 08:22:45 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Antivirus]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Internet]]></category>
                                                    <category><![CDATA[Online Security]]></category>
                                                                                                                    <dc:creator><![CDATA[ Tammy Rogers ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/n8MswK9ZvXC9mSb5incU44-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Tammy&#039;s reviews and buying guide expertise have more focus than ever on Tom&#039;s Guide, helping buyers find the audio gear that works best for them. Tammy has worked with some of the most desirable audio brands on the planet in her time writing about headphones, speakers, and more, bringing a consumer focussed approach to critique and buying advice. Away from her desk, you&#039;ll probably find her in the countryside writing (extremely bad) poetry, or putting her screenwriting Masters to good use creating screenplays that&#039;ll never see the light of day.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/aNFt4tNS9id7t47qzTnvTL-1920-80.jpg">
                                                            <media:credit><![CDATA[Tom&amp;#39;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Person using a laptop running Norton 360 antivirus software]]></media:description>                                                            <media:text><![CDATA[Person using a laptop running Norton 360 antivirus software]]></media:text>
                                <media:title type="plain"><![CDATA[Person using a laptop running Norton 360 antivirus software]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/aNFt4tNS9id7t47qzTnvTL-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>If you’re looking to protect yourself online, we’re here to help. We’ve compared Norton’s range of online security plans, assessing their features, protection, performance and value. There are several options worth considering, from antivirus protection to more comprehensive coverage and family-focused plans. So grab a coffee while we talk you through the Norton product lineup.</p><h2 class="article-body__section" id="section-best-all-round-protection"><span>Best all-round protection</span></h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1200px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="teFuQBdFQYX3uqjXHRy4Hn" name="Norton 360 Deluxe" alt="Norton 360 Deluxe Box" src="https://cdn.mos.cms.futurecdn.net/teFuQBdFQYX3uqjXHRy4Hn-1920-80.png" mos="" align="middle" fullscreen="" width="1200" height="675" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Norton)</span></figcaption></figure><div class="buying-guide-block"><h3 id="norton-360-deluxe"><span class="title__text"><a href="https://www.tomsguide.com/computing/antivirus/norton-360-review">Norton 360 Deluxe</a></span><span class="chunk rating"><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star half"></span></span></h3><div class="_hawk subtitle"><p>Effective antivirus with wider protection for several devices, plus a VPN and parental controls</p></div><p class="specs__container"><strong>VPN: </strong>Yes | <strong>Compatible OS: </strong>Windows, macOS, iOS, Android | <strong>Cloud backup: </strong>50GB | <strong>Parental controls: </strong>Yes</p><div class="hawk-wrapper"></div><div class="icon icon-plus_circle _hawk">Covers your devices, privacy, and family</div><div class="icon icon-plus_circle _hawk">Scam and deepfake protection</div><div class="icon icon-plus_circle _hawk">Accessible and user-friendly interface</div><div class="icon icon-plus_circle _hawk">24/7 customer support and active forums</div><div class="icon icon-plus_circle _hawk">Low impact on system resources</div><div class="icon icon-minus_circle _hawk">Some features cost extra</div><div class="icon icon-minus_circle _hawk">AI assistant is a little slow</div></div><p>Norton 360 is a family of plans that are designed to help you stay safe online. The Deluxe option is our top recommendation: it's number one in our <a href="https://www.tomsguide.com/computing/antivirus/weve-tested-the-best-antivirus-software-to-protect-your-computer-and-these-are-the-6-we-recommend">best antivirus</a> guide, offering real-time protection from malicious software such as viruses, ransomware, and spyware for up to five devices, alongside an extensive set of extra security features, including a firewall, password manager, VPN for privacy, and parental controls. </p><p>It's a particularly good choice for families with multiple devices to manage. If you have fewer devices to protect, or a lower budget, consider the Norton 360 Standard plan instead. You get the same all-round protection (antivirus, scam protection, VPN etc) but across three devices, and without some of the extra features.  </p><p>We were impressed with the performance of all the applications during our testing of both products. Whether we were running Norton 360 on an iPhone, Android device, PC or Mac, we found the apps easy to use, with no noticeable system slowdown.</p><p>In our real-world tests for Norton 360 Standard (which has the same core antivirus app), we ran a quick scan and a full scan while gaming. As shown in the performance results below, there was minimal slowdown during play, with negligible impact from the software.</p><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p><strong>FPS with Norton 360 running</strong></p></th><th  ><p><strong>FPS with Quick Scan running</strong></p></th><th  ><p><strong>FPS with Full Scan running</strong></p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Cyberpunk 2077 (Ultra graphics)</strong></p></td><td  ><p>118</p></td><td  ><p>107</p></td><td  ><p>105</p></td></tr><tr><td class="firstcol " ><p><strong>Forza Horizon 5 (High graphics)</strong></p></td><td  ><p>125</p></td><td  ><p>123</p></td><td  ><p>123</p></td></tr></tbody></table></div><p>Norton VPN is a useful addition and works well for everyday privacy, connecting quickly to nearby servers to encrypt your data while browsing, streaming and using public Wi-Fi. </p><p>We weren’t the biggest fans of Norton’s AI feature, Ask Genie. It was slow to respond and needed multiple inputs to check if links were safe. Competitors do this better. Mac users, beware as well — some features like SafeCam and Cloud Backup are only for Windows users. That's no great loss thanks to macOS’s built-in camera privacy options and Time Machine, but worth knowing.</p><p>Overall, Norton 360 Deluxe offers an impressive range of online security features that perform well, AI assistant notwithstanding. But there are several other plans if you have different needs. Norton 360 Standard is a cheaper, entry-level option if you have fewer devices to protect, for example, or a lower budget.</p><p>And if you're particularly worried about identity theft, you'll need to upgrade to a plan that includes LifeLock, which will cost you more — the Deluxe package only offers some basic identity theft protection features.</p><p>As with most online security software, be aware that the price of all plans rises by quite a margin when the annual renewal kicks in. You can turn off auto-renewal in your account settings at any time.</p><ul><li><strong>Read our </strong><a href="https://www.tomsguide.com/computing/antivirus/norton-360-review"><strong>Norton 360 review</strong></a></li></ul><h2 class="article-body__section" id="section-best-for-privacy"><span>Best for privacy</span></h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1200px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="KEQy9gRYDwqHxiYwpey5wb" name="Norton VPN" alt="Norton VPN Standard Box" src="https://cdn.mos.cms.futurecdn.net/KEQy9gRYDwqHxiYwpey5wb-1920-80.png" mos="" align="middle" fullscreen="" width="1200" height="675" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Norton)</span></figcaption></figure><div class="buying-guide-block"><h3 id="norton-vpn"><span class="title__text"><a href="https://www.tomsguide.com/computing/vpns/norton-vpn-review">Norton VPN</a></span><span class="chunk rating"><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span></span></h3><div class="_hawk subtitle"><p>Keeps your online activity private and secure</p></div><p class="specs__container"><strong>VPN: </strong>Yes | <strong>Identity protection: </strong>No | <strong>Compatible OS: </strong>Windows, macOS, iOS, Android | <strong>Parental controls: </strong>Yes</p><div class="hawk-wrapper"></div><div class="icon icon-plus_circle _hawk">Excellent privacy and streaming abroad</div><div class="icon icon-plus_circle _hawk">Supports IP rotation and multi-hop</div><div class="icon icon-plus_circle _hawk">Fast connection speeds</div><div class="icon icon-plus_circle _hawk">Audited no-logs policy and transparency report</div><div class="icon icon-minus_circle _hawk">Mac and iOS apps lack some features</div><div class="icon icon-minus_circle _hawk">No OpenVPN on Mac</div><div class="icon icon-minus_circle _hawk">Usage limited by devices rather than connections</div><div class="icon icon-minus_circle _hawk">Apps and pop-ups can be slightly intrusive</div></div><p>If you're looking for online privacy — or a way to access region-locked content — and don't need the extra security features of <a href="https://norton.ow5a.net/c/1943169/3893206/4405?subId1=hawk-custom-tracking&amp;sharedid=tg&amp;param1=aff&amp;param2=us_paidsearch_customlp&amp;param3=security" rel="nofollow" data-rewrite="keep">Norton 360 Deluxe</a> or LifeLock, Norton VPN is a good choice.</p><p>Following a massive transformation over the last 18 months, it's now one of our top recommendations in our <a href="https://www.tomsguide.com/best-picks/best-vpn">best VPN</a> guide. Its privacy credentials are strong: Norton’s no-logs policy has been independently audited, supporting its claim that it does not record, store or sell its users’ browsing activity.</p><p>However, where Norton VPN excels is streaming. It was the only VPN in our latest round of testing that successfully unblocked every streaming service we threw at it, including Netflix, Prime Video, Disney+, BBC iPlayer, ITVX, Channel 4, 9Now, 10 Play and YouTube.</p><p>Norton also recently expanded its global network coverage to over 100 different countries, bringing it closer in line with rivals Surfshark and ExpressVPN. That's more than enough to ensure high-speed browsing and smooth streaming for everyday use.</p><p>Price-wise, Norton VPN ties with Surfshark as the cheapest of our top-rated VPNs, making it great value for money. All this adds up to a reasonably priced and well-featured VPN that we have no qualms recommending to pretty much everyone.</p><ul><li><strong>Read our </strong><a href="https://www.tomsguide.com/computing/vpns/norton-vpn-review"><strong>Norton VPN review</strong></a></li></ul><h2 class="article-body__section" id="section-best-norton-internet-security-suite"><span>Best Norton internet security suite</span></h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1200px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="mgHBFjZpu9qj2Ywy4pUGck" name="Norton 360 With LifeLock" alt="Norton 360 With LifeLock" src="https://cdn.mos.cms.futurecdn.net/mgHBFjZpu9qj2Ywy4pUGck-1920-80.png" mos="" align="middle" fullscreen="" width="1200" height="675" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Norton 360 With LifeLock)</span></figcaption></figure><div class="buying-guide-block"><h3 id="norton-360-with-lifelock"><span class="title__text"><a href="https://www.tomsguide.com/computing/antivirus/norton-360-review">Norton 360 with LifeLock</a></span><span class="chunk rating"><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star half"></span></span></h3><div class="_hawk subtitle"><p>Protects your identity from thieves, with credit monitoring, and recovery support</p></div><p class="specs__container"><strong>VPN: </strong>Yes | <strong>Identity protection: </strong>Yes | <strong>Compatible OS: </strong>Windows, macOS, iOS, Android | <strong>Parental controls: </strong>Yes</p><div class="hawk-wrapper"></div><div class="icon icon-plus_circle _hawk">Comprehensive identity monitoring and recovery</div><div class="icon icon-plus_circle _hawk">Credit monitoring, scores, and reports — up to three bureaus depending on the plan</div><div class="icon icon-plus_circle _hawk">Includes all Norton 360 digital security protections </div><div class="icon icon-minus_circle _hawk">Expensive</div><div class="icon icon-minus_circle _hawk">Software can be overwhelming</div></div><p>Hacks and data breaches are increasingly common, which means you data could end up leaked onto the internet through no fault of your own. Norton 360 with LifeLock helps protect you when your info escapes into the wild, with the same security protections as Norton 360, but with extra identity theft protection. </p><p>You can broadly split the coverage into two parts; proactive monitoring of credit reports and data breaches to catch any potential issues, like social security leaks or fraud, and restoration support for when your personal information is exposed or you're the victim of financial fraud or identity theft. </p><p>The proactive monitoring is incredibly helpful, as you can flag any potential issues before they become a problem . And if someone does manage to get into your accounts to steal your identity or money, Norton 360 with LifeLock means you get a Personal Restoration Specialist, based in the U.S., who'll get your accounts back in order. This is one of the reasons we rank it as the <a href="https://www.tomsguide.com/best-picks/best-internet-security-suites">best internet security suite</a> you can get right now. </p><p>There a few editions of Norton 360 with LifeLock: Select, Advantage and Ultimate Plus. The main difference between each is the amount you'll be reimbursed if your money or identity are stolen, and a few other things, like the amount of cloud backup storage you get and volume of credit reports and from which bureaus. </p><p>Although Norton 360 with LifeLock offers very similar digital security features to <a href="#elk-98c8a27a-a863-11f1-946a-a50cf3295226">Norton 360 Deluxe</a>, it's also costs quite a lot more. You do get a lot for your money if things go wrong and your personal data gets abused, but it's important to think about your exposure to these risks and decide whether the digital security tools of 360 Deluxe would be enough.  </p><h2 class="article-body__section" id="section-best-for-parental-controls"><span>Best for parental controls</span></h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1200px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="mekZfwzxVbD4BQVCbdpsbh" name="Norton Family" alt="Norton Family Box" src="https://cdn.mos.cms.futurecdn.net/mekZfwzxVbD4BQVCbdpsbh-1920-80.png" mos="" align="middle" fullscreen="" width="1200" height="675" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Norton)</span></figcaption></figure><div class="buying-guide-block"><h3 id="norton-family"><span class="title__text"><a href="https://www.tomsguide.com/reviews/norton-family">Norton Family</a></span><span class="chunk rating"><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star half"></span></span></h3><div class="_hawk subtitle"><p>Effective parental control app for Android, Windows and iOS households</p></div><p class="specs__container"><strong>VPN: </strong>No | <strong>Identity protection: </strong>No | <strong>Compatible OS: </strong>Windows, iOS, Android | <strong>Parental controls: </strong>Yes</p><div class="hawk-wrapper"></div><div class="icon icon-plus_circle _hawk">Extensive app and website control tools</div><div class="icon icon-plus_circle _hawk">Unlimited children and devices</div><div class="icon icon-plus_circle _hawk">Works with smartphones and Windows computers</div><div class="icon icon-minus_circle _hawk">Limited iOS features</div><div class="icon icon-minus_circle _hawk">Not available on Mac</div></div><p>Norton Family is a dedicated parental control app that's designed to keep your kids safer when they're online. It gives you greater control over what they can see or do while browsing, allowing you to block inappropriate websites and set healthy screen time limits.</p><p>It lets you supervise your kids' web use, so that you can see the sites they're visiting. You can check what apps they're installing, and choose which they're allowed to use. You can even track their search history to see what they're interested in (and how suitable it is).</p><p>We rate it as one of the <a href="https://www.tomsguide.com/us/best-parental-control-apps,review-2258.html">best parental control apps</a> out there, particularly for Android and Windows households. However, bear in mind that like many of its rivals Norton Family isn't compatible with macOS: it can't be installed on a child’s Mac or MacBook to monitor desktop activity. Features like individual app-level blocking are also unavailable or limited on iPhones and iPads due to Apple’s operating system restrictions.</p><p>It's one of the more affordable parental control apps, with unlimited devices and child accounts. However, prices do rise substantially after the first year of subscription. If you're considering antivirus software as well, it would be worth choosing <a href="https://norton.ow5a.net/c/1943169/3893206/4405?subId1=hawk-custom-tracking&amp;sharedid=tg&amp;param1=aff&amp;param2=us_paidsearch_customlp&amp;param3=security" rel="nofollow" data-rewrite="keep">Norton 360 Deluxe</a> or any of the higher 360 packages, which come with Norton Family bundled in.</p><ul><li><strong>Read our </strong><a href="https://www.tomsguide.com/reviews/norton-family"><strong>Norton Family review</strong></a></li></ul><h2 class="article-body__section" id="section-faqs"><span>FAQs</span></h2><section class="article__schema-question"><h3>How do I know which package I need?</h3><article class="article__schema-answer"><p><a href="#elk-98c8a27a-a863-11f1-946a-a50cf3295226">Norton 360 Deluxe</a> is our top recommendation for most people because it includes the antivirus, VPN, and Norton Family bundled together. But weigh up what you actually need against the price you’re willing to pay. The standard package will be plenty for some people.</p><p>As for <a href="#elk-98c8a7d4-a863-11f1-83c2-67d11990f268">Norton 360 with LifeLock</a>, you get almost all the same protections as with 360 Deluxe, but identity and fraud protection included too, with reimbursements if your money gets stolen, a dedicated Restoration Specialist who'll handle all the work needed to regain control of your accounts. It's more expensive than the Deluxe digital security package, so go this route if you're also worried about the risk of identity theft. </p><p>If you’ve already gone for a 360 package, you don’t need to worry about a <a href="#elk-c84a1956-a864-11f1-9f10-27f5e192baea">Norton VPN</a> subscription. It’s built in. If, however, you don’t want or need the internet security packages, then a VPN subscription is a solid way to be safer when browsing the web. </p><p>Finally, <a href="#elk-4fb6e582-aacb-11f1-80b2-47b83de25da0">Norton Family</a> is great if you want to keep costs down and make sure that your kids are safe while browsing online. It's worth bundling it with Norton 360, however, because you get the other helpful antivirus benefits.</p></article></section><section class="article__schema-question"><h3>What about a family plan?</h3><article class="article__schema-answer"><p><a href="https://norton.ow5a.net/c/1943169/3893206/4405?subId1=hawk-custom-tracking&amp;sharedid=tg&amp;param1=aff&amp;param2=us_paidsearch_customlp&amp;param3=security" rel="nofollow" data-rewrite="keep">Norton 360 Deluxe</a> covers up to five PCs, Macs, phones, or tablets, making it a practical choice for households with several devices. It also includes parental control options, which let you restrict internet access for your little ones who might otherwise stumble across something unsavory. Or seek it out. Either way, you can stop them from accessing stuff you don’t want them to see, and save them from potentially introducing a virus to your home network or PC.</p><p>If you need identity protection for more than one adult or child, some <a href="https://norton.ow5a.net/c/1943169/3799603/4405?subId1=hawk-custom-tracking&amp;sharedid=tg&amp;param1=aff&amp;param2=us_paidsearch_customlp&amp;param3=security" rel="nofollow" data-rewrite="keep">Norton 360 with LifeLock</a> and standalone LifeLock plans offer separate family options. </p><p>Family plans are usually pretty expensive, though you may find it worth it for the extra protection and peace of mind. </p></article></section>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Facebook and Instagram were down — live updates on the quick outage ]]></title>
                                                                                                <dc:content><![CDATA[ <div class="live-content"><p>Instagram and Facebook were experiencing an unexpected outage today, Sunday, September 20, with users on <a href="https://downdetector.com/status/facebook/" target="_blank">Downdetector</a> reporting Facebook outages (and Instagram, <a href="https://downdetector.com/status/instagram/" target="_blank">though the number of reports</a> is lower).</p><p>Reports spiked quickly at 9.25 p.m. ET / 6.25 p.m. PT in the United States. Users reported that the social media application wouldn't load, leaving them unable to view photos and videos from their friends and favorite influencers. It seemed to be resolved quickly, though.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-Xk8aae"></div>                            </div>                            <script src="https://kwizly.com/embed/Xk8aae.js" async=""></script><h3 class="article-body__section" id="section-are-facebook-and-instagram-down-live-outage-updates"><span>Are Facebook and Instagram down? Live outage updates</span></h3></div><div class="live-content"><time datetime="2026-09-21T01:35:04+00:00">September 20, 2026 – 9:35 PM</time><h2 id="facebook-reports-rolling-in">Facebook reports rolling in</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2208px;"><p class="vanilla-image-block" style="padding-top:34.60%;"><img id="Pe2vi5pGfGtsjEW9FiEWdQ" name="Screenshot 2026-09-20 at 9.33.33 PM" alt="Downdetector reports" src="https://cdn.mos.cms.futurecdn.net/Pe2vi5pGfGtsjEW9FiEWdQ-1920-80.png" mos="" align="middle" fullscreen="" width="2208" height="764" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Downdetector )</span></figcaption></figure><p>Facebook quickly shot to more than 17,000 reports, which is a massive number for an outage just getting underway. </p><p>I actually stumbled on the outage myself because I was attempted to look for something on Facebook Marketplace and it wouldn't load. This prompted to check Downdetector to see if it was a widespread issue. As it turns out, it's very widespread.</p></div><div class="live-content"><time datetime="2026-09-21T01:40:16+00:00">September 20, 2026 – 9:40 PM</time><h2 id="instagram-too">Instagram, too</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1332px;"><p class="vanilla-image-block" style="padding-top:57.36%;"><img id="PB7xEtiJzZ7Jsp492ccybK" name="Screenshot 2026-09-20 at 9.39.57 PM" alt="Downdetector reports" src="https://cdn.mos.cms.futurecdn.net/PB7xEtiJzZ7Jsp492ccybK-1920-80.png" mos="" align="middle" fullscreen="" width="1332" height="764" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Downdetector )</span></figcaption></figure><p>It's not just Facebook that's having problems. Instagram currently has around 6,400 Downdetector reports, which is no small number. If you're experiencing issues with either platform, just know that you're not alone.</p></div><div class="live-content"><time datetime="2026-09-21T01:46:46+00:00">September 20, 2026 – 9:46 PM</time><h2 id="everything-seems-fine-on-meta-39-s-side">Everything seems fine on Meta's side</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1914px;"><p class="vanilla-image-block" style="padding-top:76.91%;"><img id="eoGYZKbgUu549u9Konon94" name="Screenshot 2026-09-20 at 9.42.26 PM" alt="Meta status page" src="https://cdn.mos.cms.futurecdn.net/eoGYZKbgUu549u9Konon94-1920-80.png" mos="" align="middle" fullscreen="" width="1914" height="1472" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Meta)</span></figcaption></figure><p>Meta's official status page still shows everything having "No known issues." Of course, this doesn't match up with what we're seeing from Downdetector, where thousands of users are experiencing problems. </p><p>It could be that because it's Sunday night, the folks at Meta are scrambling to find out what's happening and get to work on the problem. Or it could just be quick blip that goes away quickly, We shall see! </p></div><div class="live-content"><time datetime="2026-09-21T01:52:11+00:00">September 20, 2026 – 9:52 PM</time><h2 id="a-sharp-decline">A sharp decline</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2332px;"><p class="vanilla-image-block" style="padding-top:50.26%;"><img id="AJ4ZgEC2QcwVdFsVQzYpin" name="Screenshot 2026-09-20 at 9.49.53 PM" alt="Downdetector" src="https://cdn.mos.cms.futurecdn.net/AJ4ZgEC2QcwVdFsVQzYpin-1920-80.png" mos="" align="middle" fullscreen="" width="2332" height="1172" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Downdetector)</span></figcaption></figure><p>While Meta services are still dominating the top of Downdetector, they're all heavily angled down, which tells me that this was just a small blip. </p></div> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/news/live/facebook-instagram-down-meta-outage-9-20-2026</link>
                                                                            <description>
                            <![CDATA[ Instagram and Facebook had a sudden, unexpected outage today that ended quickly. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">8btDXRDLMBsdm39SeUpa5Z</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/RBkCBKgVMBcnQ85yXjcPEh-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Mon, 21 Sep 2026 01:35:37 +0000</pubDate>                                                                                                                                <updated>Mon, 21 Sep 2026 01:56:28 +0000</updated>
                                                                                                                                            <category><![CDATA[Social Media]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Internet]]></category>
                                                                                                <author><![CDATA[ dave.leclair@futurenet.com (Dave LeClair) ]]></author>                    <dc:creator><![CDATA[ Dave LeClair ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/fyx7qYdxPMTNBhdnMfNmaB-320-70.png ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Dave LeClair is the Managing News Editor for Tom&#039;s Guide, keeping his finger on the pulse of all things technology. He loves taking the complicated happenings in the tech world and explaining why they matter. Whether Apple is announcing the next big thing in the mobile space or a small startup advancing generative AI, Dave will apply his experience to help you figure out what&#039;s happening and why it&#039;s relevant to your life.&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;Before Tom&#039;s Guide, Dave worked for publications like PCMag, Pocket-lint, MUO, How-To Geek, Digital Trends, and others. He started writing about technology professionally for MUO in 2011 and hasn&#039;t looked back since. In addition to news, you can find reviews, how-to pieces, shopping guides, and many other types of content with Dave&#039;s name attached.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/RBkCBKgVMBcnQ85yXjcPEh-1920-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Facebook logo on phone]]></media:description>                                                            <media:text><![CDATA[Facebook logo on phone]]></media:text>
                                <media:title type="plain"><![CDATA[Facebook logo on phone]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/RBkCBKgVMBcnQ85yXjcPEh-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <div class="live-content"><p>Instagram and Facebook were experiencing an unexpected outage today, Sunday, September 20, with users on <a href="https://downdetector.com/status/facebook/" target="_blank">Downdetector</a> reporting Facebook outages (and Instagram, <a href="https://downdetector.com/status/instagram/" target="_blank">though the number of reports</a> is lower).</p><p>Reports spiked quickly at 9.25 p.m. ET / 6.25 p.m. PT in the United States. Users reported that the social media application wouldn't load, leaving them unable to view photos and videos from their friends and favorite influencers. It seemed to be resolved quickly, though.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-Xk8aae"></div>                            </div>                            <script src="https://kwizly.com/embed/Xk8aae.js" async=""></script><h3 class="article-body__section" id="section-are-facebook-and-instagram-down-live-outage-updates"><span>Are Facebook and Instagram down? Live outage updates</span></h3></div><div class="live-content"><time datetime="2026-09-21T01:35:04+00:00">September 20, 2026 – 9:35 PM</time><h2 id="facebook-reports-rolling-in">Facebook reports rolling in</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2208px;"><p class="vanilla-image-block" style="padding-top:34.60%;"><img id="Pe2vi5pGfGtsjEW9FiEWdQ" name="Screenshot 2026-09-20 at 9.33.33 PM" alt="Downdetector reports" src="https://cdn.mos.cms.futurecdn.net/Pe2vi5pGfGtsjEW9FiEWdQ-1920-80.png" mos="" align="middle" fullscreen="" width="2208" height="764" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Downdetector )</span></figcaption></figure><p>Facebook quickly shot to more than 17,000 reports, which is a massive number for an outage just getting underway. </p><p>I actually stumbled on the outage myself because I was attempted to look for something on Facebook Marketplace and it wouldn't load. This prompted to check Downdetector to see if it was a widespread issue. As it turns out, it's very widespread.</p></div><div class="live-content"><time datetime="2026-09-21T01:40:16+00:00">September 20, 2026 – 9:40 PM</time><h2 id="instagram-too">Instagram, too</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1332px;"><p class="vanilla-image-block" style="padding-top:57.36%;"><img id="PB7xEtiJzZ7Jsp492ccybK" name="Screenshot 2026-09-20 at 9.39.57 PM" alt="Downdetector reports" src="https://cdn.mos.cms.futurecdn.net/PB7xEtiJzZ7Jsp492ccybK-1920-80.png" mos="" align="middle" fullscreen="" width="1332" height="764" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Downdetector )</span></figcaption></figure><p>It's not just Facebook that's having problems. Instagram currently has around 6,400 Downdetector reports, which is no small number. If you're experiencing issues with either platform, just know that you're not alone.</p></div><div class="live-content"><time datetime="2026-09-21T01:46:46+00:00">September 20, 2026 – 9:46 PM</time><h2 id="everything-seems-fine-on-meta-39-s-side">Everything seems fine on Meta's side</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1914px;"><p class="vanilla-image-block" style="padding-top:76.91%;"><img id="eoGYZKbgUu549u9Konon94" name="Screenshot 2026-09-20 at 9.42.26 PM" alt="Meta status page" src="https://cdn.mos.cms.futurecdn.net/eoGYZKbgUu549u9Konon94-1920-80.png" mos="" align="middle" fullscreen="" width="1914" height="1472" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Meta)</span></figcaption></figure><p>Meta's official status page still shows everything having "No known issues." Of course, this doesn't match up with what we're seeing from Downdetector, where thousands of users are experiencing problems. </p><p>It could be that because it's Sunday night, the folks at Meta are scrambling to find out what's happening and get to work on the problem. Or it could just be quick blip that goes away quickly, We shall see! </p></div><div class="live-content"><time datetime="2026-09-21T01:52:11+00:00">September 20, 2026 – 9:52 PM</time><h2 id="a-sharp-decline">A sharp decline</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2332px;"><p class="vanilla-image-block" style="padding-top:50.26%;"><img id="AJ4ZgEC2QcwVdFsVQzYpin" name="Screenshot 2026-09-20 at 9.49.53 PM" alt="Downdetector" src="https://cdn.mos.cms.futurecdn.net/AJ4ZgEC2QcwVdFsVQzYpin-1920-80.png" mos="" align="middle" fullscreen="" width="2332" height="1172" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Downdetector)</span></figcaption></figure><p>While Meta services are still dominating the top of Downdetector, they're all heavily angled down, which tells me that this was just a small blip. </p></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ AI is turning ordinary photos of kids into sexual abuse imagery — here's how to protect your family ]]></title>
                                                                                                <dc:content><![CDATA[ <p>A picture of my children at the beach, my son playing soccer or even my entire family, smiling in front of our house are all examples of photos I've posted to social media. I know I'm not alone, considering just how often I've seen similar images highlighting the goings-on of modern lives. <br /><br />But AI has created a disturbing new risk that allows the use of ordinary photos of real children like the ones I mentioned above, to be manipulated into sexual abuse imagery without the child — or their parents — ever knowing.<br /><br />To be clear, this is not a theoretical threat.</p><h2 id="332-ai-generated-child-sexual-abuse-ads-slipped-through">332 AI-generated child sexual abuse ads slipped through</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:7110px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="bZGXCBzoz5wEX4K8t872MR" name="shutterstock_2652715669" alt="This illustrates digital connectivity with a mobile device, highlighting the Meta platform, signifying modern communication, virtual reality, and engagement in the metaverse." src="https://cdn.mos.cms.futurecdn.net/bZGXCBzoz5wEX4K8t872MR-1920-80.jpg" mos="" align="middle" fullscreen="" width="7110" height="4000" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>A new investigation from the Tech Transparency Project (TTP) found hundreds of ads containing AI-generated child sexual abuse material (CSAM) running across Facebook and Instagram. Researchers identified four real children whose ordinary photos had been manipulated, according to <a href="https://www.wired.com/story/meta-failed-to-catch-hundreds-of-ai-child-abuse-ads-some-included-images-of-real-kids/" target="_blank">WIRED</a>, including two teenage influencers, a preteen whose image appeared on a stock-photo site and a young member of a European royal family.</p><p>In total, TTP found 332 ads containing AI-generated child sexual abuse material, or CSAM. Most depicted a child whose photograph had been manipulated using AI to make it appear they were performing a sexual act.</p><p>The findings are an alarming reminder of <a href="https://www.tomsguide.com/ai/ai-image-video/all-she-did-was-change-the-face-i-spoke-to-a-creator-whose-video-was-stolen-and-reskinned-with-ai">how generative AI has changed the risks around sharing photos of children online</a>. Creating convincing fake imagery no longer requires an explicit photograph in the first place. An ordinary picture can provide the raw material.</p><h2 id="how-ordinary-photos-become-ai-generated-abuse">How ordinary photos become AI-generated abuse</h2><p><a href="https://www.tomsguide.com/phones/i-tested-the-ai-photo-editing-tools-for-iphone-vs-google-pixel-vs-samsung-galaxy-and-theres-a-clear-winner">Generative AI image tools can take an existing photograph and modify parts of it</a> while preserving recognizable features of the person in the original.</p><p>That's what researchers say happened to several of the children identified in the <a href="https://www.tomsguide.com/ai/meta-will-start-using-your-ai-chats-to-target-ads-heres-what-that-means-and-why-critics-like-joseph-gordon-levitt-are-pushing-back">Meta ads</a>.</p><p>According to WIRED, researchers were able to trace images of four minors back to their original sources. Two were teenage influencers with public social media accounts. Another was a preteen whose photograph was available through a stock-photo website. The fourth was a young member of a European royal family.</p><p>None of those original photographs needed to contain sexual material for them to be misused.</p><p>"AI apps are making it far too easy to create realistic criminal imagery of child sexual abuse, creating the new risk of everyday photos of children being taken and transformed into sexual content," Emma Hardy, director of communications at the Internet Watch Foundation, told WIRED.</p><p>Once an ordinary image is publicly accessible, someone can potentially download it and feed it into an AI tool designed to alter photographs.</p><h2 id="meta-39-s-ai-didn-39-t-catch-hundreds-of-the-ads">Meta's AI didn't catch hundreds of the ads</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:9375px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="d6qmGSnFFXo6yGiczVTtSb" name="shutterstock_2663776741-2" alt="mark zuckerberg" src="https://cdn.mos.cms.futurecdn.net/d6qmGSnFFXo6yGiczVTtSb-1920-80.jpg" mos="" align="middle" fullscreen="" width="9375" height="5273" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>The scale of the latest investigation also shows how difficult the resulting content can be to stop. </p><p>In August, TTP researchers initially uncovered 53 ads containing child sexual abuse material across Meta's platforms. Meta subsequently said many of those ads had appeared before the company introduced new AI technology intended to improve its ability to detect violating ads when they were uploaded.</p><p>However, researchers kept finding them. In fact, TTP says it ultimately identified 332 ads containing AI-generated CSAM, with hundreds appearing after Meta had announced its improved detection technology.</p><p>That is particularly significant because these weren't simply Facebook or Instagram posts that escaped moderation. They were paid advertisements.</p><p>Meta says ads are reviewed before they're allowed to run and that automated systems play a major role in that process.</p><p>Meta spokesperson Tracy Clayton told WIRED that the company does not tolerate nudify apps or child exploitation, whether the imagery involves real children or is generated by AI. Meta said bad actors deliberately attempt to evade its detection systems and that some of the videos were harder to detect because images of children appeared only briefly or were blurred.</p><p>The company said many of the ads researchers identified had already been removed, most received fewer than 200 impressions and it received less than $5,000 in payments from the ads. But researchers documented instances in which exposure increased after an ad was reported.</p><p>TTP says one ad involving a real teenager had reached four European accounts when it was reported to Meta. Several days later, when Meta removed it, the ad had reached more than 330.</p><h2 id="the-investigation-shows-the-tools-are-mainstream">The investigation shows the tools are mainstream</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="nr2x3V7xnj4xZB2RREsezb" name="year in AI 2023.jpg" alt="An AI generated image of Elon Musk on a unicorn, the ChatGPT logo on a phone and a screen shot from a video of a robot from Runway" src="https://cdn.mos.cms.futurecdn.net/nr2x3V7xnj4xZB2RREsezb-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Midjourney, Shutterstock, Runway )</span></figcaption></figure><p>Researchers found ads directing people toward nearly 50 apps available through Apple's App Store and Google's Play Store. Around 300 of the roughly 350 ads examined in the broader investigation promoted AI image or video generators, according to WIRED.</p><p>Apple told WIRED that some developers initially submitted compliant versions of their apps before subsequently adding prohibited nudification capabilities. Apple said it removed 17 of 20 apps identified by researchers and took action against the remaining three, as well as seven additional apps WIRED identified.</p><p>Google said it removed all apps included in the report and suspended hundreds of other apps for violating its policies. </p><p>Still, these finding reveal a problem that extends beyond any single platform because AI can be used to create the imagery. An app store can distribute the tool used to make it. An advertising platform can then distribute ads promoting it.</p><p>Each layer may have its own safety systems, but abusive material only needs to slip through those systems once to reach users.</p><h2 id="what-to-do-if-you-find-an-ai-generated-image-of-your-child">What to do if you find an AI-generated image of your child</h2><p>If you discover sexualized AI imagery involving your child, don't repost or widely share the image in an attempt to warn others.</p><p>Instead, preserve information that can help identify where the material appeared, such as the account name, page address and other surrounding details, and report the content directly to the platform.</p><p>In the U.S., suspected child sexual exploitation can also be reported to the <a href="https://www.missingkids.org/gethelpnow/cybertipline" target="_blank">National Center for Missing &amp; Exploited Children's CyberTipline.</a></p><p>Parents can also use <a href="https://takeitdown.ncmec.org/" target="_blank">NCMEC's Take It Down service</a>, which is designed to help stop the online sharing of nude, partially nude or sexually explicit images or videos involving someone who was under 18. The system creates a digital fingerprint, or hash, from an image without requiring the image itself to be uploaded.</p><p>Since AI-generated imagery creates newer and more complicated scenarios, parents who aren't sure whether a manipulated image qualifies should still report what they've found rather than trying to determine that themselves.</p><h2 id="the-takeaway-2">The takeaway</h2><p>Parents have been warned about "sharenting" and children's digital footprints for years. Sharenting is a term that combines "sharing" and "parenting" and is the practice of parents sharing images, videos and personal details about their children on social media. </p><p>Although parents can't entirely eliminate the risk of AI abuse on the images or videos they post, but reducing the number of publicly accessible photos of your children and being more selective about what you share, can reduce the amount of material available to people who might misuse it.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/chatgpt/chatgpt-6-astra-is-here-this-one-prompt-shows-what-it-can-really-do"><strong>ChatGPT-6 Astra is here — this one prompt shows what it can really do</strong></a></li><li><a href="https://www.tomsguide.com/ai/i-asked-chatgpt-gemini-claude-and-perplexity-to-rank-the-10-jobs-most-likely-to-be-replaced-by-ai-heres-what-they-all-agreed-on"><strong>I asked ChatGPT, Gemini, Claude and Perplexity to rank the 10 jobs most likely to be replaced by AI — here's what they all agreed on</strong></a></li><li><a href="https://www.tomsguide.com/ai/claude/claude-fable-5-1-is-here-this-one-prompt-shows-what-it-can-really-do"><strong>Claude Fable 5.1 is here — this one prompt shows what it can really do</strong></a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/ai/ai-is-turning-ordinary-photos-of-kids-into-sexual-abuse-imagery-heres-how-to-protect-your-family</link>
                                                                            <description>
                            <![CDATA[ AI tools can turn ordinary photos of children into sexual abuse imagery. Here's how parents can reduce the risk and what to do if it happens. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">SMyC9P7sQtUNikxoA6MWin</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/mxDfB2VNSY5Z4wWT6gPDxm-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 08 Sep 2026 17:16:27 +0000</pubDate>                                                                                                                                <updated>Tue, 08 Sep 2026 19:00:32 +0000</updated>
                                                                                                                                            <category><![CDATA[AI]]></category>
                                                    <category><![CDATA[Online Security]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Internet]]></category>
                                                                                                <author><![CDATA[ amanda.caswell@futurenet.com (Amanda Caswell) ]]></author>                    <dc:creator><![CDATA[ Amanda Caswell ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/zYjevim2q7FjQiefqpjZRB-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/mxDfB2VNSY5Z4wWT6gPDxm-1920-80.jpg">
                                                            <media:credit><![CDATA[Getty Images/Pavol Svantner]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Silohuette of children]]></media:description>                                                            <media:text><![CDATA[Silohuette of children]]></media:text>
                                <media:title type="plain"><![CDATA[Silohuette of children]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/mxDfB2VNSY5Z4wWT6gPDxm-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>A picture of my children at the beach, my son playing soccer or even my entire family, smiling in front of our house are all examples of photos I've posted to social media. I know I'm not alone, considering just how often I've seen similar images highlighting the goings-on of modern lives. <br /><br />But AI has created a disturbing new risk that allows the use of ordinary photos of real children like the ones I mentioned above, to be manipulated into sexual abuse imagery without the child — or their parents — ever knowing.<br /><br />To be clear, this is not a theoretical threat.</p><h2 id="332-ai-generated-child-sexual-abuse-ads-slipped-through">332 AI-generated child sexual abuse ads slipped through</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:7110px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="bZGXCBzoz5wEX4K8t872MR" name="shutterstock_2652715669" alt="This illustrates digital connectivity with a mobile device, highlighting the Meta platform, signifying modern communication, virtual reality, and engagement in the metaverse." src="https://cdn.mos.cms.futurecdn.net/bZGXCBzoz5wEX4K8t872MR-1920-80.jpg" mos="" align="middle" fullscreen="" width="7110" height="4000" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>A new investigation from the Tech Transparency Project (TTP) found hundreds of ads containing AI-generated child sexual abuse material (CSAM) running across Facebook and Instagram. Researchers identified four real children whose ordinary photos had been manipulated, according to <a href="https://www.wired.com/story/meta-failed-to-catch-hundreds-of-ai-child-abuse-ads-some-included-images-of-real-kids/" target="_blank">WIRED</a>, including two teenage influencers, a preteen whose image appeared on a stock-photo site and a young member of a European royal family.</p><p>In total, TTP found 332 ads containing AI-generated child sexual abuse material, or CSAM. Most depicted a child whose photograph had been manipulated using AI to make it appear they were performing a sexual act.</p><p>The findings are an alarming reminder of <a href="https://www.tomsguide.com/ai/ai-image-video/all-she-did-was-change-the-face-i-spoke-to-a-creator-whose-video-was-stolen-and-reskinned-with-ai">how generative AI has changed the risks around sharing photos of children online</a>. Creating convincing fake imagery no longer requires an explicit photograph in the first place. An ordinary picture can provide the raw material.</p><h2 id="how-ordinary-photos-become-ai-generated-abuse">How ordinary photos become AI-generated abuse</h2><p><a href="https://www.tomsguide.com/phones/i-tested-the-ai-photo-editing-tools-for-iphone-vs-google-pixel-vs-samsung-galaxy-and-theres-a-clear-winner">Generative AI image tools can take an existing photograph and modify parts of it</a> while preserving recognizable features of the person in the original.</p><p>That's what researchers say happened to several of the children identified in the <a href="https://www.tomsguide.com/ai/meta-will-start-using-your-ai-chats-to-target-ads-heres-what-that-means-and-why-critics-like-joseph-gordon-levitt-are-pushing-back">Meta ads</a>.</p><p>According to WIRED, researchers were able to trace images of four minors back to their original sources. Two were teenage influencers with public social media accounts. Another was a preteen whose photograph was available through a stock-photo website. The fourth was a young member of a European royal family.</p><p>None of those original photographs needed to contain sexual material for them to be misused.</p><p>"AI apps are making it far too easy to create realistic criminal imagery of child sexual abuse, creating the new risk of everyday photos of children being taken and transformed into sexual content," Emma Hardy, director of communications at the Internet Watch Foundation, told WIRED.</p><p>Once an ordinary image is publicly accessible, someone can potentially download it and feed it into an AI tool designed to alter photographs.</p><h2 id="meta-39-s-ai-didn-39-t-catch-hundreds-of-the-ads">Meta's AI didn't catch hundreds of the ads</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:9375px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="d6qmGSnFFXo6yGiczVTtSb" name="shutterstock_2663776741-2" alt="mark zuckerberg" src="https://cdn.mos.cms.futurecdn.net/d6qmGSnFFXo6yGiczVTtSb-1920-80.jpg" mos="" align="middle" fullscreen="" width="9375" height="5273" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>The scale of the latest investigation also shows how difficult the resulting content can be to stop. </p><p>In August, TTP researchers initially uncovered 53 ads containing child sexual abuse material across Meta's platforms. Meta subsequently said many of those ads had appeared before the company introduced new AI technology intended to improve its ability to detect violating ads when they were uploaded.</p><p>However, researchers kept finding them. In fact, TTP says it ultimately identified 332 ads containing AI-generated CSAM, with hundreds appearing after Meta had announced its improved detection technology.</p><p>That is particularly significant because these weren't simply Facebook or Instagram posts that escaped moderation. They were paid advertisements.</p><p>Meta says ads are reviewed before they're allowed to run and that automated systems play a major role in that process.</p><p>Meta spokesperson Tracy Clayton told WIRED that the company does not tolerate nudify apps or child exploitation, whether the imagery involves real children or is generated by AI. Meta said bad actors deliberately attempt to evade its detection systems and that some of the videos were harder to detect because images of children appeared only briefly or were blurred.</p><p>The company said many of the ads researchers identified had already been removed, most received fewer than 200 impressions and it received less than $5,000 in payments from the ads. But researchers documented instances in which exposure increased after an ad was reported.</p><p>TTP says one ad involving a real teenager had reached four European accounts when it was reported to Meta. Several days later, when Meta removed it, the ad had reached more than 330.</p><h2 id="the-investigation-shows-the-tools-are-mainstream">The investigation shows the tools are mainstream</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="nr2x3V7xnj4xZB2RREsezb" name="year in AI 2023.jpg" alt="An AI generated image of Elon Musk on a unicorn, the ChatGPT logo on a phone and a screen shot from a video of a robot from Runway" src="https://cdn.mos.cms.futurecdn.net/nr2x3V7xnj4xZB2RREsezb-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Midjourney, Shutterstock, Runway )</span></figcaption></figure><p>Researchers found ads directing people toward nearly 50 apps available through Apple's App Store and Google's Play Store. Around 300 of the roughly 350 ads examined in the broader investigation promoted AI image or video generators, according to WIRED.</p><p>Apple told WIRED that some developers initially submitted compliant versions of their apps before subsequently adding prohibited nudification capabilities. Apple said it removed 17 of 20 apps identified by researchers and took action against the remaining three, as well as seven additional apps WIRED identified.</p><p>Google said it removed all apps included in the report and suspended hundreds of other apps for violating its policies. </p><p>Still, these finding reveal a problem that extends beyond any single platform because AI can be used to create the imagery. An app store can distribute the tool used to make it. An advertising platform can then distribute ads promoting it.</p><p>Each layer may have its own safety systems, but abusive material only needs to slip through those systems once to reach users.</p><h2 id="what-to-do-if-you-find-an-ai-generated-image-of-your-child">What to do if you find an AI-generated image of your child</h2><p>If you discover sexualized AI imagery involving your child, don't repost or widely share the image in an attempt to warn others.</p><p>Instead, preserve information that can help identify where the material appeared, such as the account name, page address and other surrounding details, and report the content directly to the platform.</p><p>In the U.S., suspected child sexual exploitation can also be reported to the <a href="https://www.missingkids.org/gethelpnow/cybertipline" target="_blank">National Center for Missing &amp; Exploited Children's CyberTipline.</a></p><p>Parents can also use <a href="https://takeitdown.ncmec.org/" target="_blank">NCMEC's Take It Down service</a>, which is designed to help stop the online sharing of nude, partially nude or sexually explicit images or videos involving someone who was under 18. The system creates a digital fingerprint, or hash, from an image without requiring the image itself to be uploaded.</p><p>Since AI-generated imagery creates newer and more complicated scenarios, parents who aren't sure whether a manipulated image qualifies should still report what they've found rather than trying to determine that themselves.</p><h2 id="the-takeaway-2">The takeaway</h2><p>Parents have been warned about "sharenting" and children's digital footprints for years. Sharenting is a term that combines "sharing" and "parenting" and is the practice of parents sharing images, videos and personal details about their children on social media. </p><p>Although parents can't entirely eliminate the risk of AI abuse on the images or videos they post, but reducing the number of publicly accessible photos of your children and being more selective about what you share, can reduce the amount of material available to people who might misuse it.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/chatgpt/chatgpt-6-astra-is-here-this-one-prompt-shows-what-it-can-really-do"><strong>ChatGPT-6 Astra is here — this one prompt shows what it can really do</strong></a></li><li><a href="https://www.tomsguide.com/ai/i-asked-chatgpt-gemini-claude-and-perplexity-to-rank-the-10-jobs-most-likely-to-be-replaced-by-ai-heres-what-they-all-agreed-on"><strong>I asked ChatGPT, Gemini, Claude and Perplexity to rank the 10 jobs most likely to be replaced by AI — here's what they all agreed on</strong></a></li><li><a href="https://www.tomsguide.com/ai/claude/claude-fable-5-1-is-here-this-one-prompt-shows-what-it-can-really-do"><strong>Claude Fable 5.1 is here — this one prompt shows what it can really do</strong></a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ NordVPN's Next-Gen Antivirus scores 94% in independent phishing and malware testing ]]></title>
                                                                                                <dc:content><![CDATA[ <p><a href="https://www.tomsguide.com/reviews/nordvpn-review">NordVPN</a>'s <a href="https://www.tomsguide.com/computing/vpns/nordvpn-combines-vpn-and-next-generation-antivirus-into-one-app">next-gen antivirus</a> has achieved a 94% phishing detection rate in AV-Comparatives' latest anti-phishing test, ranking third among security products in the independent evaluation. The result our choice as the <a href="https://www.tomsguide.com/best-picks/best-vpn">best VPN</a> behind only Avast One Free Antivirus and Norton Antivirus Plus, both of which scored 96%.</p><p>The <a href="https://www.av-comparatives.org/wp-content/uploads/2026/08/phishing_comp_Q3-2026.pdf" target="_blank" rel="nofollow">test</a>, which ran from August 12–22, 2026, assessed phishing-page detection rates across 250 live phishing URLs, with an additional 250 legitimate URLs used to check for false positives. NordVPN recorded zero false alarms – a result that puts it ahead of Malwarebytes Premium and Webroot SecureAnywhere Internet Security Plus, both of which triggered false positives during the evaluation.</p><p>The findings come as NordVPN continues to reposition itself as an all-in-one digital security app. The company's <a href="https://www.tomsguide.com/computing/vpns/nordvpn-combines-vpn-and-next-generation-antivirus-into-one-app">recent rebrand</a> saw Threat Protection Pro renamed as "next-generation antivirus," placing it alongside its VPN and Dark Web Monitor as one of three core pillars of the product.</p><h2 id="how-does-nordvpn-compare">How does NordVPN compare?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="UtDZFoTmPNBWUcdJsQqvG" name="NordVPN 2026 phishing test results" alt="Graph displaying the test's results" src="https://cdn.mos.cms.futurecdn.net/UtDZFoTmPNBWUcdJsQqvG-1920-80.jpg" mos="" align="middle" fullscreen="" width="1280" height="720" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Finishing third among nine security products is a strong result, but the detail behind NordVPN's score is arguably just as telling as the number itself. Avast One Free Antivirus and Norton Antivirus Plus both edged it out with 96% detection rates, but the gap is narrow – a two-percentage-point difference across 250 live phishing URLs amounts to five URLs.</p><p>The rest of the field tells its own story. At the other end of the table, Dr. Web Security Space managed just 57% and K7 Total Security 70% – results that illustrate how inconsistent phishing protection remains across the security products market, even among established names. </p><p>NordVPN's advantage over the field is clearest on false positives. It was one of seven security products to record zero false alarms – and false positives erode confidence in a security tool just as surely as missed threats do.</p><p>"Phishing is a numbers game for attackers, and they're very good at it," said Domininkas Virbickas, product director at NordVPN. "Anybody might slip up eventually, and when you do click on something you shouldn't, that's where we step in."</p><h2 id="a-strong-track-record-in-independent-testing">A strong track record in independent testing</h2><p>This is not the first time NordVPN's threat protection feature has performed well under independent scrutiny. In November 2024, AV-TEST – a German independent IT security research institute – <a href="https://www.tomsguide.com/computing/online-security/nords-threat-protection-pro-rated-the-best-vpn-malware-protection">previously rated</a> Threat Protection Pro the best VPN tool for malware protection, achieving an 83.42% total detection rate across 3,209 tested links. That result placed it well ahead of the next-best VPN tested, IPVanish, which scored 46.96%.</p><p>NordVPN also has history with AV-Comparatives specifically. In June 2024, it became the first VPN provider to earn the organisation's <a href="https://www.tomsguide.com/computing/vpns/nordvpn-certified-as-the-only-anti-phishing-vpn-for-the-second-year-running">anti-phishing protection badge</a> – a significant distinction given that AV-Comparatives is best known for evaluating dedicated antivirus software, not VPNs. Earning the badge requires a minimum 85% detection rate with zero false alarms on legitimate sites, a bar not all established antivirus products have cleared. The August 2026 result, at 94%, clears it by some distance.</p><p>NordVPN's next-gen antivirus is available on Plus plans and above – the feature was previously known as Threat Protection Pro, and is included across Plus, Complete, and Prime tiers. </p><div data-widget-type="merchantlink" data-model-name="NordVPN"></div><p>We test and review VPN services in the context of legal recreational uses. For example:<strong>1.</strong> Accessing a service from another country (subject to the terms and conditions of that service).<strong>2.</strong> Protecting your online security and strengthening your online privacy when abroad.We do not support or condone the illegal or malicious use of VPN services. Consuming pirated content that is paid-for is neither endorsed nor approved by Future Publishing.</p> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/vpns/nordvpns-next-gen-antivirus-scores-94-percent-in-independent-phishing-and-malware-testing</link>
                                                                            <description>
                            <![CDATA[ NordVPN's next-gen antivirus scored 94% in AV-Comparatives' August 2026 anti-phishing test, finishing third among security products behind Avast and Norton, with no false positives. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">rxV2uExpVnrLzHBWK6JMDe</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/BK6jKgGh8BGjbBSEnE5VDL-1920-80.png" type="image/png" length="0"></enclosure>
                                                                        <pubDate>Fri, 04 Sep 2026 10:56:09 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[VPNs]]></category>
                                                    <category><![CDATA[Streaming]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Internet]]></category>
                                                    <category><![CDATA[Entertainment]]></category>
                                                                                                                    <dc:creator><![CDATA[ Aleksandar Stevanović ]]></dc:creator>                                                                                                        <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/png" url="https://cdn.mos.cms.futurecdn.net/BK6jKgGh8BGjbBSEnE5VDL-1920-80.png">
                                                            <media:credit><![CDATA[NordVPN]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[NordVPN in action protecting a phone and laptop simultaneously]]></media:description>                                                            <media:text><![CDATA[NordVPN in action protecting a phone and laptop simultaneously]]></media:text>
                                <media:title type="plain"><![CDATA[NordVPN in action protecting a phone and laptop simultaneously]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/BK6jKgGh8BGjbBSEnE5VDL-1920-80.png" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p><a href="https://www.tomsguide.com/reviews/nordvpn-review">NordVPN</a>'s <a href="https://www.tomsguide.com/computing/vpns/nordvpn-combines-vpn-and-next-generation-antivirus-into-one-app">next-gen antivirus</a> has achieved a 94% phishing detection rate in AV-Comparatives' latest anti-phishing test, ranking third among security products in the independent evaluation. The result our choice as the <a href="https://www.tomsguide.com/best-picks/best-vpn">best VPN</a> behind only Avast One Free Antivirus and Norton Antivirus Plus, both of which scored 96%.</p><p>The <a href="https://www.av-comparatives.org/wp-content/uploads/2026/08/phishing_comp_Q3-2026.pdf" target="_blank" rel="nofollow">test</a>, which ran from August 12–22, 2026, assessed phishing-page detection rates across 250 live phishing URLs, with an additional 250 legitimate URLs used to check for false positives. NordVPN recorded zero false alarms – a result that puts it ahead of Malwarebytes Premium and Webroot SecureAnywhere Internet Security Plus, both of which triggered false positives during the evaluation.</p><p>The findings come as NordVPN continues to reposition itself as an all-in-one digital security app. The company's <a href="https://www.tomsguide.com/computing/vpns/nordvpn-combines-vpn-and-next-generation-antivirus-into-one-app">recent rebrand</a> saw Threat Protection Pro renamed as "next-generation antivirus," placing it alongside its VPN and Dark Web Monitor as one of three core pillars of the product.</p><h2 id="how-does-nordvpn-compare">How does NordVPN compare?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1280px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="UtDZFoTmPNBWUcdJsQqvG" name="NordVPN 2026 phishing test results" alt="Graph displaying the test's results" src="https://cdn.mos.cms.futurecdn.net/UtDZFoTmPNBWUcdJsQqvG-1920-80.jpg" mos="" align="middle" fullscreen="" width="1280" height="720" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Finishing third among nine security products is a strong result, but the detail behind NordVPN's score is arguably just as telling as the number itself. Avast One Free Antivirus and Norton Antivirus Plus both edged it out with 96% detection rates, but the gap is narrow – a two-percentage-point difference across 250 live phishing URLs amounts to five URLs.</p><p>The rest of the field tells its own story. At the other end of the table, Dr. Web Security Space managed just 57% and K7 Total Security 70% – results that illustrate how inconsistent phishing protection remains across the security products market, even among established names. </p><p>NordVPN's advantage over the field is clearest on false positives. It was one of seven security products to record zero false alarms – and false positives erode confidence in a security tool just as surely as missed threats do.</p><p>"Phishing is a numbers game for attackers, and they're very good at it," said Domininkas Virbickas, product director at NordVPN. "Anybody might slip up eventually, and when you do click on something you shouldn't, that's where we step in."</p><h2 id="a-strong-track-record-in-independent-testing">A strong track record in independent testing</h2><p>This is not the first time NordVPN's threat protection feature has performed well under independent scrutiny. In November 2024, AV-TEST – a German independent IT security research institute – <a href="https://www.tomsguide.com/computing/online-security/nords-threat-protection-pro-rated-the-best-vpn-malware-protection">previously rated</a> Threat Protection Pro the best VPN tool for malware protection, achieving an 83.42% total detection rate across 3,209 tested links. That result placed it well ahead of the next-best VPN tested, IPVanish, which scored 46.96%.</p><p>NordVPN also has history with AV-Comparatives specifically. In June 2024, it became the first VPN provider to earn the organisation's <a href="https://www.tomsguide.com/computing/vpns/nordvpn-certified-as-the-only-anti-phishing-vpn-for-the-second-year-running">anti-phishing protection badge</a> – a significant distinction given that AV-Comparatives is best known for evaluating dedicated antivirus software, not VPNs. Earning the badge requires a minimum 85% detection rate with zero false alarms on legitimate sites, a bar not all established antivirus products have cleared. The August 2026 result, at 94%, clears it by some distance.</p><p>NordVPN's next-gen antivirus is available on Plus plans and above – the feature was previously known as Threat Protection Pro, and is included across Plus, Complete, and Prime tiers. </p><div data-widget-type="merchantlink" data-model-name="NordVPN"></div><p>We test and review VPN services in the context of legal recreational uses. For example:<strong>1.</strong> Accessing a service from another country (subject to the terms and conditions of that service).<strong>2.</strong> Protecting your online security and strengthening your online privacy when abroad.We do not support or condone the illegal or malicious use of VPN services. Consuming pirated content that is paid-for is neither endorsed nor approved by Future Publishing.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Over 150 million driver's licenses stolen in massive data breach after hackers reportedly hit major identity verificationcompany — what to do now ]]></title>
                                                                                                <dc:content><![CDATA[ <p>In what has to be one of the biggest data breaches to date, a security researcher discovered a hacker who appeared to be selling access to a database of over 153 million driver's licenses from the United States and Canada, including IDs for Pete Hegseth, the current U.S. Defense Secretary (the Defense Department is reportedly aware and investigating).</p><p>The breach was spotted by <a href="https://krebsonsecurity.com/2026/09/fbi-probes-service-selling-153m-drivers-licenses/#more-74231" target="_blank">security journalist Brian Krebs</a> in a report claiming that the hacker created a site called Nexus and claimed to have access to digital scans of 153,347,439 identity cards. </p><p>"A quick look around Nexus finds they are likely not exaggerating about that 153 million number: Running a blank search in Nexus (with no search parameters entered) returns approximately 11.5 million pages of results, with roughly 15 results displayed per page," Krebs wrote.</p><p>In a forum post from a Russian cybercrime site, Nexus allegedly sourced the scans from "major identity verification company," suggesting that the hackers had or have basically real-time access to the company's systems. </p><h2 id="how-it-happened">How it happened</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1000px;"><p class="vanilla-image-block" style="padding-top:57.60%;"><img id="GRAZp3ysKBXB984jp69j54" name="id-fraud-illo-shst.jpg" alt="Words 'ID Fraud" highlighted on dark field of ones and zeros." src="https://cdn.mos.cms.futurecdn.net/GRAZp3ysKBXB984jp69j54-1920-80.jpg" mos="" align="middle" fullscreen="" width="1000" height="576" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: alexskopje/Shutterstock)</span></figcaption></figure><p>Krebs found his own driver's license was among the searchable records. He also found Hegseth, whose photo was listed on the site. </p><p>Krebs worked with security researcher<a href="https://bsky.app/profile/thezedwards.bsky.social/post/3muikr2wbcs2u" target="_blank"> Zach Edwards</a>, whose ID was also in the breach, and identified the company IDScan as the potential source of the leak. The company, based out of Louisiana, is used by multiple companies to verify millions of IDs from around the globe. </p><p>"Based on all the details in the article and how Brian was literally able to dox me (and the timing of the screenshot of my license being added into the system aligning to my trip), all the signs point to IDscan having a hellacious ongoing real-time breach of their data. This is a massive vendor," Edwards wrote on Bluesky.</p><h2 id="investigations-and-concerns">Investigations and concerns</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:6720px;"><p class="vanilla-image-block" style="padding-top:61.52%;"><img id="gNCNRoAsizedMsrzwHCpMJ" name="FBI .jpg" alt="An FBI agent typing on a computer" src="https://cdn.mos.cms.futurecdn.net/gNCNRoAsizedMsrzwHCpMJ-1920-80.jpg" mos="" align="middle" fullscreen="" width="6720" height="4134" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Per Krebs, the FBI and IDScan are both investigating the breach. Tom's Guide reached out to both organizations but did not receive a reply in time for posting.</p><p>“At this point I’m not able to share any additional information, but the updates you have provided have been welcome and helpful to our team’s investigation,” an IDScan spokesperson told Krebs.</p><p>A commenter on Krebs story claims that his company received a data breach notification from IDscan:</p><p>"Earlier today, September 1, we received information suggesting that certain information may have been exposed and that IDScan.net may be implicated. We are working urgently to validate that information and determine whether any unauthorized access occurred, and the scope of such activity," the note reportedly reads.</p><p>It goes on to say that the company has taken steps to secure its system, notified partner companies, engaged legal counsel, and is conducting a third-party forensic investigation. </p><p>Nexus apparently went down shortly after Krebs' report went live. Though it's possible it could return under a different domain.</p><p>A data breach like this is terrifying at the best of times, but it happens to come at a time just as governments across the globe are attempting to roll out age-verification laws that require adults to upload or scan identity documents in order to prove they can access websites or apps — generally adult content. <a href="https://www.eff.org/deeplinks/2025/12/year-states-chose-surveillance-over-safety-2025-review" target="_blank">Privacy advocates and security researchers have already warned</a> that the laws put people's data at risk.</p><h2 id="how-to-stay-safe-3">How to stay safe </h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="t7MsroJkoSVd32LsYjatBg" name="Level-Lock-Install.jpg" alt="Level Lock smart lock review" src="https://cdn.mos.cms.futurecdn.net/t7MsroJkoSVd32LsYjatBg-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Level)</span></figcaption></figure><p>Edwards ID was likely scanned when he went to a cannabis dispensary that has a contract with IDScan. Krebs believes his was scanned when he rented a car from Hertz last year. He also found his mom's ID from around the same time. </p><p>There are plenty of places where your ID could get scanned, from car rental agencies to bars and even the TSA. In the meantime, I would suggest requesting that your ID not be scanned by companies that demand it during check out or check in.</p><p>While we don't know if the Nexus database will return, it would be good form to take these <a href="https://www.tomsguide.com/what-is-a-data-breach-notification-letter">seven steps to stay safe after a data breach</a>.</p><p>That includes signing up for one <a href="https://www.tomsguide.com/us/best-identity-theft-protection,review-2083.html">best identity theft protection services</a>. As always, you'll want to be on high alert for <a href="https://www.tomsguide.com/reference/what-are-phishing-scams">phishing attacks </a>and <a href="https://www.tomsguide.com/news/this-social-engineering-trick-can-infect-your-pc-with-malware-what-you-need-to-know">social engineering attacks</a>, especially ones that urge you to "act now." Avoid clicking on any links, <a href="https://www.tomsguide.com/computing/online-security/millions-hit-in-quishing-attacks-as-malicious-qr-codes-surge-how-to-stay-safe">QR codes</a>, or attachments from <a href="https://www.tomsguide.com/news/avoid-these-email-attachments-if-you-dont-want-to-get-phished">unknown senders</a>.</p><p>Beyond that, you should consider a password overhaul by creating <a href="https://www.tomsguide.com/opinion/im-a-security-editor-and-this-is-how-i-create-strong-passwords-that-are-also-easy-to-remember">strong, complex passwords</a> for all of your accounts but you can also use one of the <a href="https://www.tomsguide.com/us/best-password-managers,review-3785.html">best password managers </a>to do so for you instead.</p><p>Even without a massive data breach, these are generally good practices just to keep your side of the street clean since companies are increasingly unable to do so.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/online-security/more-than-9-5-million-patient-records-affected-by-aesto-health-data-breach-what-you-need-to-know">More than 9.5 million patient records affected by Aesto Health data breach: what you need to know</a></li><li><a href="https://www.tomsguide.com/us/best-identity-theft-protection,review-2083.html">We put the best identity theft protection to the test to protect your entire digital life — these are the services I recommend</a></li><li><a href="https://www.tomsguide.com/vehicle-tech/evs/have-you-been-flocked-heres-how-to-look-up-automatic-license-plate-readers-in-your-area">Have you been 'Flocked'? Here's how to look up automatic license plate readers in your area</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/online-security/over-150-million-drivers-licenses-stolen-in-massive-data-breach-after-hackers-reportedly-hit-major-identity-verification-company-what-to-do-now</link>
                                                                            <description>
                            <![CDATA[ A potentially massive data breach was discovered by a security researcher who found a database of over 150 million exposed driver's licenses. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">wxjaP9TvZgPRxHCoeFTUYk</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/Kn9pdSSoxQBASCh6CCvEWX-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 02 Sep 2026 21:49:44 +0000</pubDate>                                                                                                                                <updated>Wed, 02 Sep 2026 21:54:56 +0000</updated>
                                                                                                                                            <category><![CDATA[Online Security]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Internet]]></category>
                                                                                                <author><![CDATA[ scott.younker@futurenet.com (Scott Younker) ]]></author>                    <dc:creator><![CDATA[ Scott Younker ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/RZsUpqcJ6Uj2q83oCUwNhQ-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Scott Younker is the West Coast Reporter at Tom’s Guide. He covers all the latest tech news, including phones, computing and more. He’s been involved in tech since 2011 covering everything from cameras and swimming pool equipment to the latest gaming consoles and smart TVs. He is on a seemingly never ending hunt to build the easiest to use home media system. &lt;/p&gt;&lt;p&gt;Before Tom’s Guide, Scott worked for publications like &lt;em&gt;Digital Trends, Outdoor Photographer, Dead Beats Panel&lt;/em&gt;, and in a brief detour, &lt;em&gt;America’s Funniest Home Videos&lt;/em&gt;. Yes, he has seen more pratfalls, silly pets and ridiculous home movie fails than is reasonably healthy. &lt;/p&gt;&lt;p&gt;When not writing about the latest devices or advances in chipsets, be sure to ask about Scott about disc golf and sustainability, or just if you’re being cheeky, ask about his noodle arm. If you truly want to get nerdy, bring up board games and his ongoing losing streak. &lt;/p&gt;&lt;p&gt;Scott joined Tom&#039;s Guide in 2024 as the West Coast Reporter. He graduated from the School of Journalism at the University of Oregon with a degree in magazine journalism and a minor in communications. While there he blogged or wrote for several magazines including the Fluxx, Ethos and the Oregon Commentator. He briefly wrote and managed a moderately successful blog focused on web comics. &lt;br&gt;Send secure tips on Signal: scyo1.55.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/Kn9pdSSoxQBASCh6CCvEWX-1920-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[drivers licenses from different states]]></media:description>                                                            <media:text><![CDATA[drivers licenses from different states]]></media:text>
                                <media:title type="plain"><![CDATA[drivers licenses from different states]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/Kn9pdSSoxQBASCh6CCvEWX-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>In what has to be one of the biggest data breaches to date, a security researcher discovered a hacker who appeared to be selling access to a database of over 153 million driver's licenses from the United States and Canada, including IDs for Pete Hegseth, the current U.S. Defense Secretary (the Defense Department is reportedly aware and investigating).</p><p>The breach was spotted by <a href="https://krebsonsecurity.com/2026/09/fbi-probes-service-selling-153m-drivers-licenses/#more-74231" target="_blank">security journalist Brian Krebs</a> in a report claiming that the hacker created a site called Nexus and claimed to have access to digital scans of 153,347,439 identity cards. </p><p>"A quick look around Nexus finds they are likely not exaggerating about that 153 million number: Running a blank search in Nexus (with no search parameters entered) returns approximately 11.5 million pages of results, with roughly 15 results displayed per page," Krebs wrote.</p><p>In a forum post from a Russian cybercrime site, Nexus allegedly sourced the scans from "major identity verification company," suggesting that the hackers had or have basically real-time access to the company's systems. </p><h2 id="how-it-happened">How it happened</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1000px;"><p class="vanilla-image-block" style="padding-top:57.60%;"><img id="GRAZp3ysKBXB984jp69j54" name="id-fraud-illo-shst.jpg" alt="Words 'ID Fraud" highlighted on dark field of ones and zeros." src="https://cdn.mos.cms.futurecdn.net/GRAZp3ysKBXB984jp69j54-1920-80.jpg" mos="" align="middle" fullscreen="" width="1000" height="576" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: alexskopje/Shutterstock)</span></figcaption></figure><p>Krebs found his own driver's license was among the searchable records. He also found Hegseth, whose photo was listed on the site. </p><p>Krebs worked with security researcher<a href="https://bsky.app/profile/thezedwards.bsky.social/post/3muikr2wbcs2u" target="_blank"> Zach Edwards</a>, whose ID was also in the breach, and identified the company IDScan as the potential source of the leak. The company, based out of Louisiana, is used by multiple companies to verify millions of IDs from around the globe. </p><p>"Based on all the details in the article and how Brian was literally able to dox me (and the timing of the screenshot of my license being added into the system aligning to my trip), all the signs point to IDscan having a hellacious ongoing real-time breach of their data. This is a massive vendor," Edwards wrote on Bluesky.</p><h2 id="investigations-and-concerns">Investigations and concerns</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:6720px;"><p class="vanilla-image-block" style="padding-top:61.52%;"><img id="gNCNRoAsizedMsrzwHCpMJ" name="FBI .jpg" alt="An FBI agent typing on a computer" src="https://cdn.mos.cms.futurecdn.net/gNCNRoAsizedMsrzwHCpMJ-1920-80.jpg" mos="" align="middle" fullscreen="" width="6720" height="4134" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Per Krebs, the FBI and IDScan are both investigating the breach. Tom's Guide reached out to both organizations but did not receive a reply in time for posting.</p><p>“At this point I’m not able to share any additional information, but the updates you have provided have been welcome and helpful to our team’s investigation,” an IDScan spokesperson told Krebs.</p><p>A commenter on Krebs story claims that his company received a data breach notification from IDscan:</p><p>"Earlier today, September 1, we received information suggesting that certain information may have been exposed and that IDScan.net may be implicated. We are working urgently to validate that information and determine whether any unauthorized access occurred, and the scope of such activity," the note reportedly reads.</p><p>It goes on to say that the company has taken steps to secure its system, notified partner companies, engaged legal counsel, and is conducting a third-party forensic investigation. </p><p>Nexus apparently went down shortly after Krebs' report went live. Though it's possible it could return under a different domain.</p><p>A data breach like this is terrifying at the best of times, but it happens to come at a time just as governments across the globe are attempting to roll out age-verification laws that require adults to upload or scan identity documents in order to prove they can access websites or apps — generally adult content. <a href="https://www.eff.org/deeplinks/2025/12/year-states-chose-surveillance-over-safety-2025-review" target="_blank">Privacy advocates and security researchers have already warned</a> that the laws put people's data at risk.</p><h2 id="how-to-stay-safe-3">How to stay safe </h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="t7MsroJkoSVd32LsYjatBg" name="Level-Lock-Install.jpg" alt="Level Lock smart lock review" src="https://cdn.mos.cms.futurecdn.net/t7MsroJkoSVd32LsYjatBg-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Level)</span></figcaption></figure><p>Edwards ID was likely scanned when he went to a cannabis dispensary that has a contract with IDScan. Krebs believes his was scanned when he rented a car from Hertz last year. He also found his mom's ID from around the same time. </p><p>There are plenty of places where your ID could get scanned, from car rental agencies to bars and even the TSA. In the meantime, I would suggest requesting that your ID not be scanned by companies that demand it during check out or check in.</p><p>While we don't know if the Nexus database will return, it would be good form to take these <a href="https://www.tomsguide.com/what-is-a-data-breach-notification-letter">seven steps to stay safe after a data breach</a>.</p><p>That includes signing up for one <a href="https://www.tomsguide.com/us/best-identity-theft-protection,review-2083.html">best identity theft protection services</a>. As always, you'll want to be on high alert for <a href="https://www.tomsguide.com/reference/what-are-phishing-scams">phishing attacks </a>and <a href="https://www.tomsguide.com/news/this-social-engineering-trick-can-infect-your-pc-with-malware-what-you-need-to-know">social engineering attacks</a>, especially ones that urge you to "act now." Avoid clicking on any links, <a href="https://www.tomsguide.com/computing/online-security/millions-hit-in-quishing-attacks-as-malicious-qr-codes-surge-how-to-stay-safe">QR codes</a>, or attachments from <a href="https://www.tomsguide.com/news/avoid-these-email-attachments-if-you-dont-want-to-get-phished">unknown senders</a>.</p><p>Beyond that, you should consider a password overhaul by creating <a href="https://www.tomsguide.com/opinion/im-a-security-editor-and-this-is-how-i-create-strong-passwords-that-are-also-easy-to-remember">strong, complex passwords</a> for all of your accounts but you can also use one of the <a href="https://www.tomsguide.com/us/best-password-managers,review-3785.html">best password managers </a>to do so for you instead.</p><p>Even without a massive data breach, these are generally good practices just to keep your side of the street clean since companies are increasingly unable to do so.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/online-security/more-than-9-5-million-patient-records-affected-by-aesto-health-data-breach-what-you-need-to-know">More than 9.5 million patient records affected by Aesto Health data breach: what you need to know</a></li><li><a href="https://www.tomsguide.com/us/best-identity-theft-protection,review-2083.html">We put the best identity theft protection to the test to protect your entire digital life — these are the services I recommend</a></li><li><a href="https://www.tomsguide.com/vehicle-tech/evs/have-you-been-flocked-heres-how-to-look-up-automatic-license-plate-readers-in-your-area">Have you been 'Flocked'? Here's how to look up automatic license plate readers in your area</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ More than 9.5 million patient records affected by Aesto Health data breach: what you need to know ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Aesto Health recently disclosed a data breach affecting more than 9.5 million people. Aesto is a software company for healthcare organizations that produces solutions to help them organize patient data when replacing health records systems.</p><p>Spotted by <a href="https://www.bleepingcomputer.com/news/security/aesto-health-says-data-breach-affects-over-95-million-patients/" target="_blank">Bleeping Computer</a>, the company first posted a notice of the attack on June 24 <a href="https://www.aestohealth.com/notice-of-data-security-incident-12-18-25/" target="_blank">via its website</a>. However, the actual incursion took place over two weeks in December of 2025. It apparently wasn't discovered until May 26 of this year. </p><p>"After an extensive forensic investigation and manual document review, on May 26, 2026, we confirmed that between on or about December 2, 2025, and December 18, 2025, certain protected health information belonging to patients of various Covered Entity clients stored within Aesto’s network may have been accessed and/or acquired by an unauthorized actor," the notice reads.</p><p>Apparently, the breach involved unauthorized access via Aesto's Amazon Web Services infrastructure.</p><h2 id="what-was-taken">What was taken</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3220px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="3Z3Wti6A7WPFu3GSjmXoDd" name="shutterstock_48106810.jpg" alt="Hacker using a stolen social security card" src="https://cdn.mos.cms.futurecdn.net/3Z3Wti6A7WPFu3GSjmXoDd-1920-80.jpg" mos="" align="middle" fullscreen="" width="3220" height="1811" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Blazej Lyjak/Shutterstock)</span></figcaption></figure><p>In its report, Aesto Health confirmed that the breach affects 9,540,683 people. Unfortunately, that data included full names, dates of birth, medical information, driver's license numbers, financial account numbers, health insurance information, taxpayer ID numbers, Social Security numbers and other government identification numbers.</p><p>According to the <a href="https://www.hipaajournal.com/aesto-health-data-breach/" target="_blank">HIPAA Journal</a>, the breach spans 29 different organizations including Edwards County Medical Center, Marana Health, My Doctor, LLC, the Nebraska Orthopedic Center and Women's Health Associates. </p><p>The company started informing impacted individuals of the breach on August 21, providing details about the incident and providing identity theft protection and credit monitoring via Experian.</p><p>As noted by Bleeping Computer, this incident follows an unfortunate series of breaches that have affected health care companies including CareCloud, Nutex Health, iRhythm and McKesson. The breaches have ranged in size from a couple of hundred thousand to millions of records.</p><p>Per Aesto Health and our own review, no threat groups have publicly claimed the attack, unlike other recent ones claimed by the hacker group ShinyHunters.</p><h2 id="how-to-stay-safe-after-a-data-breach">How to stay safe after a data breach</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1600px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="LMDEozUrCU7N8gtDxeKte3" name="SEXM8ah9EKKpBKB22d7Ak3.jpg" alt="An open lock depicting a data breach" src="https://cdn.mos.cms.futurecdn.net/LMDEozUrCU7N8gtDxeKte3-1920-80.jpg" mos="" align="middle" fullscreen="" width="1600" height="900" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Check out the full list of companies from the HIPAA Journal, and if you've used any health care organization, you might receive a <a href="https://www.tomsguide.com/what-is-a-data-breach-notification-letter"><u>data breach notification letter</u></a> from Aesto. If you do, take advantage of the Experian coverage. Keep an eye on your mailbox since notification letters arrive the old-fashioned way.</p><p>Even if Aesto doesn't send you a notification letter, you may want to take advantage of one of the <a href="https://www.tomsguide.com/us/best-identity-theft-protection,review-2083.html"><u>best identity theft protection services </u></a>to protect your identity.</p><p>While no one has claimed the attachment, a bad actor could use your information to launch <a href="https://www.tomsguide.com/news/personal-data-of-millions-of-americans-exposed-in-global-cyber-attack-what-you-need-to-know">targeted phishing attacks</a>. Phishing emails could contain <a href="https://www.tomsguide.com/computing/online-security/that-unsubscribe-link-is-actually-a-hidden-security-risk-do-this-instead">malicious links</a> or even malware.</p><p>Health companies appear especially vulnerable as the summer comes to a close, and every company should be taking this threat seriously. Hopefully, companies are bolstering their cybersecurity right now.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/us/best-identity-theft-protection,review-2083.html">We put the best identity theft protection to the test to protect your entire digital life — these are the services I recommend</a></li><li><a href="https://www.tomsguide.com/vehicle-tech/evs/have-you-been-flocked-heres-how-to-look-up-automatic-license-plate-readers-in-your-area">Have you been 'Flocked'? Here's how to look up automatic license plate readers in your area</a></li><li><a href="https://www.tomsguide.com/computing/antivirus/best-antivirus-software">We've tested the best antivirus software and these are the 5 I recommend right now</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/online-security/more-than-9-5-million-patient-records-affected-by-aesto-health-data-breach-what-you-need-to-know</link>
                                                                            <description>
                            <![CDATA[ Aesto Health has confirmed a data breach that affects more than 9.5 million patients. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">F2ZzEtrQ5fxGZTWrcQ75BD</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/WhwNyWzQHzVnY49UeT8UsS-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 02 Sep 2026 18:58:26 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Online Security]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Internet]]></category>
                                                                                                <author><![CDATA[ scott.younker@futurenet.com (Scott Younker) ]]></author>                    <dc:creator><![CDATA[ Scott Younker ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/RZsUpqcJ6Uj2q83oCUwNhQ-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Scott Younker is the West Coast Reporter at Tom’s Guide. He covers all the latest tech news, including phones, computing and more. He’s been involved in tech since 2011 covering everything from cameras and swimming pool equipment to the latest gaming consoles and smart TVs. He is on a seemingly never ending hunt to build the easiest to use home media system. &lt;/p&gt;&lt;p&gt;Before Tom’s Guide, Scott worked for publications like &lt;em&gt;Digital Trends, Outdoor Photographer, Dead Beats Panel&lt;/em&gt;, and in a brief detour, &lt;em&gt;America’s Funniest Home Videos&lt;/em&gt;. Yes, he has seen more pratfalls, silly pets and ridiculous home movie fails than is reasonably healthy. &lt;/p&gt;&lt;p&gt;When not writing about the latest devices or advances in chipsets, be sure to ask about Scott about disc golf and sustainability, or just if you’re being cheeky, ask about his noodle arm. If you truly want to get nerdy, bring up board games and his ongoing losing streak. &lt;/p&gt;&lt;p&gt;Scott joined Tom&#039;s Guide in 2024 as the West Coast Reporter. He graduated from the School of Journalism at the University of Oregon with a degree in magazine journalism and a minor in communications. While there he blogged or wrote for several magazines including the Fluxx, Ethos and the Oregon Commentator. He briefly wrote and managed a moderately successful blog focused on web comics. &lt;br&gt;Send secure tips on Signal: scyo1.55.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/WhwNyWzQHzVnY49UeT8UsS-1920-80.jpg">
                                                            <media:credit><![CDATA[Getty Images]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Screen graphic showing data breach warning]]></media:description>                                                            <media:text><![CDATA[Screen graphic showing data breach warning]]></media:text>
                                <media:title type="plain"><![CDATA[Screen graphic showing data breach warning]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/WhwNyWzQHzVnY49UeT8UsS-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Aesto Health recently disclosed a data breach affecting more than 9.5 million people. Aesto is a software company for healthcare organizations that produces solutions to help them organize patient data when replacing health records systems.</p><p>Spotted by <a href="https://www.bleepingcomputer.com/news/security/aesto-health-says-data-breach-affects-over-95-million-patients/" target="_blank">Bleeping Computer</a>, the company first posted a notice of the attack on June 24 <a href="https://www.aestohealth.com/notice-of-data-security-incident-12-18-25/" target="_blank">via its website</a>. However, the actual incursion took place over two weeks in December of 2025. It apparently wasn't discovered until May 26 of this year. </p><p>"After an extensive forensic investigation and manual document review, on May 26, 2026, we confirmed that between on or about December 2, 2025, and December 18, 2025, certain protected health information belonging to patients of various Covered Entity clients stored within Aesto’s network may have been accessed and/or acquired by an unauthorized actor," the notice reads.</p><p>Apparently, the breach involved unauthorized access via Aesto's Amazon Web Services infrastructure.</p><h2 id="what-was-taken">What was taken</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3220px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="3Z3Wti6A7WPFu3GSjmXoDd" name="shutterstock_48106810.jpg" alt="Hacker using a stolen social security card" src="https://cdn.mos.cms.futurecdn.net/3Z3Wti6A7WPFu3GSjmXoDd-1920-80.jpg" mos="" align="middle" fullscreen="" width="3220" height="1811" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Blazej Lyjak/Shutterstock)</span></figcaption></figure><p>In its report, Aesto Health confirmed that the breach affects 9,540,683 people. Unfortunately, that data included full names, dates of birth, medical information, driver's license numbers, financial account numbers, health insurance information, taxpayer ID numbers, Social Security numbers and other government identification numbers.</p><p>According to the <a href="https://www.hipaajournal.com/aesto-health-data-breach/" target="_blank">HIPAA Journal</a>, the breach spans 29 different organizations including Edwards County Medical Center, Marana Health, My Doctor, LLC, the Nebraska Orthopedic Center and Women's Health Associates. </p><p>The company started informing impacted individuals of the breach on August 21, providing details about the incident and providing identity theft protection and credit monitoring via Experian.</p><p>As noted by Bleeping Computer, this incident follows an unfortunate series of breaches that have affected health care companies including CareCloud, Nutex Health, iRhythm and McKesson. The breaches have ranged in size from a couple of hundred thousand to millions of records.</p><p>Per Aesto Health and our own review, no threat groups have publicly claimed the attack, unlike other recent ones claimed by the hacker group ShinyHunters.</p><h2 id="how-to-stay-safe-after-a-data-breach">How to stay safe after a data breach</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1600px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="LMDEozUrCU7N8gtDxeKte3" name="SEXM8ah9EKKpBKB22d7Ak3.jpg" alt="An open lock depicting a data breach" src="https://cdn.mos.cms.futurecdn.net/LMDEozUrCU7N8gtDxeKte3-1920-80.jpg" mos="" align="middle" fullscreen="" width="1600" height="900" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Check out the full list of companies from the HIPAA Journal, and if you've used any health care organization, you might receive a <a href="https://www.tomsguide.com/what-is-a-data-breach-notification-letter"><u>data breach notification letter</u></a> from Aesto. If you do, take advantage of the Experian coverage. Keep an eye on your mailbox since notification letters arrive the old-fashioned way.</p><p>Even if Aesto doesn't send you a notification letter, you may want to take advantage of one of the <a href="https://www.tomsguide.com/us/best-identity-theft-protection,review-2083.html"><u>best identity theft protection services </u></a>to protect your identity.</p><p>While no one has claimed the attachment, a bad actor could use your information to launch <a href="https://www.tomsguide.com/news/personal-data-of-millions-of-americans-exposed-in-global-cyber-attack-what-you-need-to-know">targeted phishing attacks</a>. Phishing emails could contain <a href="https://www.tomsguide.com/computing/online-security/that-unsubscribe-link-is-actually-a-hidden-security-risk-do-this-instead">malicious links</a> or even malware.</p><p>Health companies appear especially vulnerable as the summer comes to a close, and every company should be taking this threat seriously. Hopefully, companies are bolstering their cybersecurity right now.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/us/best-identity-theft-protection,review-2083.html">We put the best identity theft protection to the test to protect your entire digital life — these are the services I recommend</a></li><li><a href="https://www.tomsguide.com/vehicle-tech/evs/have-you-been-flocked-heres-how-to-look-up-automatic-license-plate-readers-in-your-area">Have you been 'Flocked'? Here's how to look up automatic license plate readers in your area</a></li><li><a href="https://www.tomsguide.com/computing/antivirus/best-antivirus-software">We've tested the best antivirus software and these are the 5 I recommend right now</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I got a sneak peek at TP-Link’s upcoming Wi-Fi 8 routers — and improved range and reliability are their biggest upgrades ]]></title>
                                                                                                <dc:content><![CDATA[ <p>From the start of the wireless networking era – even before it was called Wi-Fi – every new spec and generation of hardware was aimed at delivering faster speeds to do more things online at home. Not anymore, because <a href="https://www.tomsguide.com/computing/internet/i-just-got-my-first-glimpse-at-whats-possible-with-wi-fi-8-and-this-one-new-feature-has-me-really-excited">Wi-Fi 8</a> (aka. 802.11bn) takes a different approach, putting an emphasis on range and reliability to be able to stay online longer with fewer interruptions. </p><p>While it seems like a step sideways with a top speed of 46 Gbps that’s equivalent to <a href="https://www.tomsguide.com/reference/wi-fi-7-explained">Wi-Fi 7</a>, Wi-Fi 8 can do a lot to make home networking easier, more fulfilling and dependable. The new spec’s Ultra High Reliability (UHR) approach promotes better performance at long range, the ability to handle more data traffic and block interference. Spectral efficiency is the name of the game with Wi-Fi turning from squeezing more data into the air waves to making it easier to use and more reliable. </p><p>Buyer beware, as has been the case with every Wi-Fi generation, the router hardware precedes the general availability of client devices. At first, it can seem like a wireless tease, then, all of a sudden, there are new generation devices everywhere. In addition to the first Wi-Fi routers and mesh kits in the coming months, expect Wi-Fi 8, phones, computers and tablets in early-to-mid 2027. This will be followed by range extenders and USB upgrade kits late in the year. </p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-OznRlO"></div>                            </div>                            <script src="https://kwizly.com/embed/OznRlO.js" async=""></script><h2 id="archer-8-ultra-and-deco-8-ultra">Archer 8 Ultra and Deco 8 Ultra</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="6Jx2Bvoo4BBUJ3Zz3z9mTT" name="Archer 8 Ultra Deco 8 Ultra Hero" alt="The TP-Link Archer 8 Ultra and Deco 8 Ultra next to each other on a colored background" src="https://cdn.mos.cms.futurecdn.net/6Jx2Bvoo4BBUJ3Zz3z9mTT-1920-80.png" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: TP-Link)</span></figcaption></figure><p>I got a sneak peek at what will likely be the first commercial Wi-Fi 8 routers from TP-Link, the company’s Archer 8 Ultra high performance router and Deco 8 Ultra mesh set. They each have functional designs, sleek lines and can theoretically move 19- and 22 Gbps, respectively. Powered by either Qualcomm’s Fast Connect 8800 or Broadcom’s BCM6718 chips, this networking gear is top shelf and aimed at high-performance users with two 10 Gbps inputs and USB ports for connecting a storage device across a network. </p><p>The IEEE 802.11bn spec isn’t close to being finalized and I do expect changes before it’s formally approved sometime in 2028. That said, the lack of finality hasn’t stopped the world’s Wi-Fi chip manufacturers and router makers from developing products. </p><p>If the past is any indication, the new routers will need a firmware update or three to add late changing aspects of the final Wi-Fi 8 spec. Plus, many router makers plan to introduce new routers that hit the main features on introduction and add items to them throughout 2027. Unfortunately, none of the current generation of Wi-Fi 7 routers can be upgraded to Wi-Fi 8.</p><p>How the routers will act is coming into focus. The big change that Wi-Fi 8 brings is better use of the 2.4-, 5.0- and 6.0 GHz frequency bands on which the data rides. It goes beyond 4K Quadrature Amplitude Modulation (QAM) and Multi-Link Operations (MLO) with what TP-Link calls its Stability Engine that will debut with the company’s Wi-Fi 8 hardware. </p><p>This can seem like an alphabet soup of engineering acronyms that starts with Unequal Modulation (UEQM) to make sure that each device can get to its full speed regardless of whether lower-speed clients are nearby. The New Modulation and Coding Scheme (MCS) takes this a step further by blocking interference that can lower throughput. Together, the techniques can improve throughput by 24% versus Wi-Fi 7, according to early tests.  </p><h2 id="antennas-by-the-dozen">Antennas by the dozen</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1916px;"><p class="vanilla-image-block" style="padding-top:56.37%;"><img id="KMeckkoER2XvwZwC3MSfCY" name="Archer 8_1920x1080_02" alt="A close-up shot of the top of the TP-Link Archer 8 Ultra" src="https://cdn.mos.cms.futurecdn.net/KMeckkoER2XvwZwC3MSfCY-1920-80.png" mos="" align="middle" fullscreen="" width="1916" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: TP-Link)</span></figcaption></figure><p>Meanwhile, the routers have internal antennas galore. While the Archer 8 Ultra has no fewer than 18 antennas, the Deco 8 Ultra has a 5 transmit, 5 receive antenna arrangement. This can amount to a 1 to 3 dB increase in signal strength that can translate into greater throughput and range. </p><p>That’s just the start because the new antennas can help prevent frustrating disconnect and reconnect cycles that rob throughput. TP-Link’s engineers are going a step further by looking into pushing its antennas to the limit by making its transmission pattern adjustable. The feature would bias it horizontally (for a ranch house) or vertically (for a multi-story building). </p><p>Meanwhile, Wi-Fi 8’s Distributed Resource Units (DRU) and Enhanced Long Range (ELR) combine to increase coverage so that the signal can enliven <a href="https://www.tomsguide.com/opinion/when-and-when-not-to-use-a-wi-fi-extender-and-what-to-do-instead">Wi-Fi dead zones</a> with data. These techniques allow clients at the periphery to stay online despite a weak signal. If these changes pan out, my Wi-Fi experience could be vastly improved, from not losing my connection when listening to the BBC World Service on my Wi-Fi Internet radio deep in the basement to working out on the patio on a sunny day. </p><h2 id="a-premium-next-gen-upgrade">A premium next-gen upgrade</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="PEpn9fWiVABftaPiqLWWfe" name="Deco 8 Ultra Lifestyle" alt="The TP-Link Deco 8 Ultra on a table" src="https://cdn.mos.cms.futurecdn.net/PEpn9fWiVABftaPiqLWWfe-1920-80.png" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: TP-Link)</span></figcaption></figure><p>TP-Link’s Archer 8 Ultra is going on sale in Germany and in the UK in October, where regulators have given the company the green light. This will be followed by U.S. sales in early 2027. </p><p>Premium and high performance in all aspects, look for a sub-$1,000 price tag for the Archer 8 Ultra. Though this will almost certainly drop as the year progresses. TP-Link then plans to introduce Pro and base product lines with lower prices during 2027.  </p><p>Think of Wi-Fi 8 as making the house of cards that wireless networking has become a little sturdier and more permanent so that a sneeze won’t make it all collapse. Just as I got used to Wi-Fi 7, it’s time to turn to Wi-Fi 8 but I can’t wait to get my hands on the two TP-Link networking devices as well as the products of other companies to try them out in my lab and home. </p><p>I must admit to a hidden hope that Wi-Fi 8 enhanced reliability is enough to replace many of the <a href="https://www.tomsguide.com/reference/ethernet-cables-explained">Ethernet cables</a> that run through my house, creating a wireless backbone for my entire home network.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/i-just-saw-wifi-8-in-action"><strong>I just saw Wi-Fi 8 in action, and it might be the first internet upgrade in years that actually makes sense</strong></a></li><li><strong></strong><a href="https://www.tomsguide.com/best-picks/best-Wi-fi-7-routers"><strong>These are the best Wi-Fi 7 routers to give your home upgrade a major upgrade right now</strong></a></li><li><a href="https://www.tomsguide.com/computing/internet/aluminum-foil-boosts-wi-fi-signal-heres-how-to-position-it-behind-your-router"><strong>I put aluminum foil behind my router to fix my Wi-Fi dead zones — and it actually worked</strong></a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/routers/i-got-a-sneak-peek-at-tp-links-upcoming-wi-fi-8-routers-and-improved-range-and-reliability-are-their-biggest-upgrades</link>
                                                                            <description>
                            <![CDATA[ The next generation of Wi-Fi gear is aimed more at dependability than outright speed but for many, it will offer more throughput. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">yvrZ7ccqrgeJySv8PdoiJP</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/7EvQmc6Gnx5o6epdcmL3LG-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 01 Sep 2026 13:51:25 +0000</pubDate>                                                                                                                                <updated>Mon, 07 Sep 2026 09:29:40 +0000</updated>
                                                                                                                                            <category><![CDATA[Routers]]></category>
                                                    <category><![CDATA[Internet]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Computing Hardware]]></category>
                                                                                                                    <dc:creator><![CDATA[ Brian Nadel ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/qLSkrTG95GayrZcQmwLa2N-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/7EvQmc6Gnx5o6epdcmL3LG-1920-80.jpg">
                                                            <media:credit><![CDATA[Tom&amp;#39;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A sign showing the Wi-Fi 8 logo]]></media:description>                                                            <media:text><![CDATA[A sign showing the Wi-Fi 8 logo]]></media:text>
                                <media:title type="plain"><![CDATA[A sign showing the Wi-Fi 8 logo]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/7EvQmc6Gnx5o6epdcmL3LG-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>From the start of the wireless networking era – even before it was called Wi-Fi – every new spec and generation of hardware was aimed at delivering faster speeds to do more things online at home. Not anymore, because <a href="https://www.tomsguide.com/computing/internet/i-just-got-my-first-glimpse-at-whats-possible-with-wi-fi-8-and-this-one-new-feature-has-me-really-excited">Wi-Fi 8</a> (aka. 802.11bn) takes a different approach, putting an emphasis on range and reliability to be able to stay online longer with fewer interruptions. </p><p>While it seems like a step sideways with a top speed of 46 Gbps that’s equivalent to <a href="https://www.tomsguide.com/reference/wi-fi-7-explained">Wi-Fi 7</a>, Wi-Fi 8 can do a lot to make home networking easier, more fulfilling and dependable. The new spec’s Ultra High Reliability (UHR) approach promotes better performance at long range, the ability to handle more data traffic and block interference. Spectral efficiency is the name of the game with Wi-Fi turning from squeezing more data into the air waves to making it easier to use and more reliable. </p><p>Buyer beware, as has been the case with every Wi-Fi generation, the router hardware precedes the general availability of client devices. At first, it can seem like a wireless tease, then, all of a sudden, there are new generation devices everywhere. In addition to the first Wi-Fi routers and mesh kits in the coming months, expect Wi-Fi 8, phones, computers and tablets in early-to-mid 2027. This will be followed by range extenders and USB upgrade kits late in the year. </p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-OznRlO"></div>                            </div>                            <script src="https://kwizly.com/embed/OznRlO.js" async=""></script><h2 id="archer-8-ultra-and-deco-8-ultra">Archer 8 Ultra and Deco 8 Ultra</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="6Jx2Bvoo4BBUJ3Zz3z9mTT" name="Archer 8 Ultra Deco 8 Ultra Hero" alt="The TP-Link Archer 8 Ultra and Deco 8 Ultra next to each other on a colored background" src="https://cdn.mos.cms.futurecdn.net/6Jx2Bvoo4BBUJ3Zz3z9mTT-1920-80.png" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: TP-Link)</span></figcaption></figure><p>I got a sneak peek at what will likely be the first commercial Wi-Fi 8 routers from TP-Link, the company’s Archer 8 Ultra high performance router and Deco 8 Ultra mesh set. They each have functional designs, sleek lines and can theoretically move 19- and 22 Gbps, respectively. Powered by either Qualcomm’s Fast Connect 8800 or Broadcom’s BCM6718 chips, this networking gear is top shelf and aimed at high-performance users with two 10 Gbps inputs and USB ports for connecting a storage device across a network. </p><p>The IEEE 802.11bn spec isn’t close to being finalized and I do expect changes before it’s formally approved sometime in 2028. That said, the lack of finality hasn’t stopped the world’s Wi-Fi chip manufacturers and router makers from developing products. </p><p>If the past is any indication, the new routers will need a firmware update or three to add late changing aspects of the final Wi-Fi 8 spec. Plus, many router makers plan to introduce new routers that hit the main features on introduction and add items to them throughout 2027. Unfortunately, none of the current generation of Wi-Fi 7 routers can be upgraded to Wi-Fi 8.</p><p>How the routers will act is coming into focus. The big change that Wi-Fi 8 brings is better use of the 2.4-, 5.0- and 6.0 GHz frequency bands on which the data rides. It goes beyond 4K Quadrature Amplitude Modulation (QAM) and Multi-Link Operations (MLO) with what TP-Link calls its Stability Engine that will debut with the company’s Wi-Fi 8 hardware. </p><p>This can seem like an alphabet soup of engineering acronyms that starts with Unequal Modulation (UEQM) to make sure that each device can get to its full speed regardless of whether lower-speed clients are nearby. The New Modulation and Coding Scheme (MCS) takes this a step further by blocking interference that can lower throughput. Together, the techniques can improve throughput by 24% versus Wi-Fi 7, according to early tests.  </p><h2 id="antennas-by-the-dozen">Antennas by the dozen</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1916px;"><p class="vanilla-image-block" style="padding-top:56.37%;"><img id="KMeckkoER2XvwZwC3MSfCY" name="Archer 8_1920x1080_02" alt="A close-up shot of the top of the TP-Link Archer 8 Ultra" src="https://cdn.mos.cms.futurecdn.net/KMeckkoER2XvwZwC3MSfCY-1920-80.png" mos="" align="middle" fullscreen="" width="1916" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: TP-Link)</span></figcaption></figure><p>Meanwhile, the routers have internal antennas galore. While the Archer 8 Ultra has no fewer than 18 antennas, the Deco 8 Ultra has a 5 transmit, 5 receive antenna arrangement. This can amount to a 1 to 3 dB increase in signal strength that can translate into greater throughput and range. </p><p>That’s just the start because the new antennas can help prevent frustrating disconnect and reconnect cycles that rob throughput. TP-Link’s engineers are going a step further by looking into pushing its antennas to the limit by making its transmission pattern adjustable. The feature would bias it horizontally (for a ranch house) or vertically (for a multi-story building). </p><p>Meanwhile, Wi-Fi 8’s Distributed Resource Units (DRU) and Enhanced Long Range (ELR) combine to increase coverage so that the signal can enliven <a href="https://www.tomsguide.com/opinion/when-and-when-not-to-use-a-wi-fi-extender-and-what-to-do-instead">Wi-Fi dead zones</a> with data. These techniques allow clients at the periphery to stay online despite a weak signal. If these changes pan out, my Wi-Fi experience could be vastly improved, from not losing my connection when listening to the BBC World Service on my Wi-Fi Internet radio deep in the basement to working out on the patio on a sunny day. </p><h2 id="a-premium-next-gen-upgrade">A premium next-gen upgrade</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="PEpn9fWiVABftaPiqLWWfe" name="Deco 8 Ultra Lifestyle" alt="The TP-Link Deco 8 Ultra on a table" src="https://cdn.mos.cms.futurecdn.net/PEpn9fWiVABftaPiqLWWfe-1920-80.png" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: TP-Link)</span></figcaption></figure><p>TP-Link’s Archer 8 Ultra is going on sale in Germany and in the UK in October, where regulators have given the company the green light. This will be followed by U.S. sales in early 2027. </p><p>Premium and high performance in all aspects, look for a sub-$1,000 price tag for the Archer 8 Ultra. Though this will almost certainly drop as the year progresses. TP-Link then plans to introduce Pro and base product lines with lower prices during 2027.  </p><p>Think of Wi-Fi 8 as making the house of cards that wireless networking has become a little sturdier and more permanent so that a sneeze won’t make it all collapse. Just as I got used to Wi-Fi 7, it’s time to turn to Wi-Fi 8 but I can’t wait to get my hands on the two TP-Link networking devices as well as the products of other companies to try them out in my lab and home. </p><p>I must admit to a hidden hope that Wi-Fi 8 enhanced reliability is enough to replace many of the <a href="https://www.tomsguide.com/reference/ethernet-cables-explained">Ethernet cables</a> that run through my house, creating a wireless backbone for my entire home network.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/computing/i-just-saw-wifi-8-in-action"><strong>I just saw Wi-Fi 8 in action, and it might be the first internet upgrade in years that actually makes sense</strong></a></li><li><strong></strong><a href="https://www.tomsguide.com/best-picks/best-Wi-fi-7-routers"><strong>These are the best Wi-Fi 7 routers to give your home upgrade a major upgrade right now</strong></a></li><li><a href="https://www.tomsguide.com/computing/internet/aluminum-foil-boosts-wi-fi-signal-heres-how-to-position-it-behind-your-router"><strong>I put aluminum foil behind my router to fix my Wi-Fi dead zones — and it actually worked</strong></a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Microsoft Outlook was down? Live tracking multi-hour email outage ]]></title>
                                                                                                <dc:content><![CDATA[ <div class="live-content"><p>Microsoft Outlook may be suffering an outage. Reports about the email platform started popping up on the outage-tracking site <a href="https://downdetector.com/status/outlook/" target="_blank">Down Detector</a> starting around 8:30 am Pacific. </p><p>It peaked around 9:30 am around 6,000 reports. The outage appears to be affecting access to mailboxes, delays in sending emails or failure to send. </p><p>Outlook stayed down for nearly 12 hours, last until about 8:30 pm Pacific. A fix was implemented around 6 pm that seemed to get people back online but it didn't completely work and some functions like search didn't work properly for two more hours.</p><p>According to the Microsoft 365 status page, the outage was caused by "an issue within a core authentication configuration used by multiple Microsoft 365 services is resulting in impact."</p><p>We did not see any more specific information beyond that. </p><p>Here's what we know:</p></div><div class="live-content"><time datetime="2026-08-31T18:26:22+00:00">August 31, 2026 – 2:26 PM</time><h2 id="multi-hour-outage">Multi-hour outage</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:673px;"><p class="vanilla-image-block" style="padding-top:42.79%;"><img id="E8exMaQWWNsgzYsLnRiQnN" name="Screenshot 2026-08-31 112543" alt="Microsoft Outlook outage Aug 31, 2026" src="https://cdn.mos.cms.futurecdn.net/E8exMaQWWNsgzYsLnRiQnN-1920-80.png" mos="" align="middle" fullscreen="" width="673" height="288" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Down Detector)</span></figcaption></figure><p>Reports starting appearing on Down Detector around 8:30 am Pacific but didn't peak until an hour later. </p><p>As of this posting, there are more than 5,000 reports on the outage tracker and no sign of decline.</p></div><div class="live-content"><time datetime="2026-08-31T18:28:54+00:00">August 31, 2026 – 2:28 PM</time><h2 id="microsoft-says-all-systems-quot-operational-quot">Microsoft says all systems "operational"</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="LFP6P5nzNFP8AkCLiWJSvG" name="Microsoft" alt="Microsoft 365 becomes Microsoft 364" src="https://cdn.mos.cms.futurecdn.net/LFP6P5nzNFP8AkCLiWJSvG-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Paolo Bona / Shutterstock.com / Microsoft / Future)</span></figcaption></figure><p>I've checked the Microsoft 365 <a href="https://status.cloud.microsoft/m365/referrer=serviceStatusRedirect" target="_blank">status page</a>, and according to that page every Microsoft product is operational.</p></div><div class="live-content"><time datetime="2026-08-31T18:31:03+00:00">August 31, 2026 – 2:31 PM</time><h2 id="m365-twitter-account-acknowledges-problem">M365 Twitter account acknowledges problem</h2><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2094465993007378744"><p lang="en" dir="ltr">We've confirmed that users may experience degraded functionality with various Exchange Online functionalities. We're reviewing service telemetry and diagnostic data to isolate the source of the issue. For more information, please see EX1464935 in the admin center.<a href="https://twitter.com/cantworkitout/status/2094465993007378744">August 31, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>While the Microsoft 365 status page isn't showing any issues, the official <a href="https://x.com/MSFT365Status/status/2094465993007378744" target="_blank">Microsoft 365 Status X account</a> did acknowledge the issue.</p><p>"We've confirmed that users may experience degraded functionality with various Exchange Online functionalities. We're reviewing service telemetry and diagnostic data to isolate the source of the issue. For more information, please see EX1464935 in the admin center," the post reads. </p></div><div class="live-content"><time datetime="2026-08-31T18:34:28+00:00">August 31, 2026 – 2:34 PM</time><h2 id="what-issues-are-we-seeing">What issues are we seeing?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:853px;"><p class="vanilla-image-block" style="padding-top:60.96%;"><img id="77h7giWwLQ9NhbRWTtqwSd" name="outlook-iphone-shst.jpg" alt="Microsoft Outlook" src="https://cdn.mos.cms.futurecdn.net/77h7giWwLQ9NhbRWTtqwSd-1920-80.jpg" mos="" align="middle" fullscreen="" width="853" height="520" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Microsoft)</span></figcaption></figure><p>Based on comments from Down Detector and X, the most common issue appears to be a failure to actually send and receive emails for those who can get in.</p><p>I've seen several comments saying that the app won't even open on their computers. </p><p>"Not receiving emails since about 10:45 am, then went downhill, replies stopped coming through, then emails came to a halt, and then, besides Outlook constantly freezing, now my shared work folder is no longer showing me emails and gives an error," one said.</p><p>For those in businesses, it appears they can't even send messages between connected emails.</p></div><div class="live-content"><time datetime="2026-08-31T18:40:54+00:00">August 31, 2026 – 2:40 PM</time><h2 id="users-quot-may-experience-a-variety-of-symptoms-quot">Users "may experience a variety of symptoms"</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1981px;"><p class="vanilla-image-block" style="padding-top:56.23%;"><img id="QcDNYDHLZWSjpMdgzpVJQG" name="Outlook.shutterstock_2384091865.jpg" alt="Outlook on a laptop" src="https://cdn.mos.cms.futurecdn.net/QcDNYDHLZWSjpMdgzpVJQG-1920-80.jpg" mos="" align="middle" fullscreen="" width="1981" height="1114" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>If you can get in the 365 Admin Center, this is the message you should see:</p><p>"Users may be unable to connect to, or experience degraded functionality with Exchange Online</p><p>Users may experience a variety of symptoms related to this event, including but not limited to:<br />- Delays, failures, or incomplete results when searching for content within Exchange Online mailboxes.<br />- Delays or failures when sending or receiving email messages.<br />- Authentication-related errors when accessing Exchange Online services.<br />- Difficulties accessing or performing actions within Exchange administration experiences.<br />- Intermittent failures affecting mailbox operations and message delivery workflows."</p></div><div class="live-content"><time datetime="2026-08-31T18:51:20+00:00">August 31, 2026 – 2:51 PM</time><h2 id="slow-decline">Slow decline</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:675px;"><p class="vanilla-image-block" style="padding-top:45.63%;"><img id="LCj29zbxdQbXSkRrDP5HXk" name="Screenshot 2026-08-31 114803" alt="Microsoft Outlook outage 8/31/26" src="https://cdn.mos.cms.futurecdn.net/LCj29zbxdQbXSkRrDP5HXk-1920-80.png" mos="" align="middle" fullscreen="" width="675" height="308" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Down Detector)</span></figcaption></figure><p>Over on Down Detector, reports have started to decline. </p><p>The peak around 9:30 a.m. was around 6,000 reports. As of 11:45 a.m. Pacific, reports are closer to 4,500. </p><p>I've seen some people in offices say that portions of their teams are able to access the email platform, but some of the team is still down.</p></div><div class="live-content"><time datetime="2026-08-31T19:09:19+00:00">August 31, 2026 – 3:09 PM</time><h2 id="no-updates-from-microsoft">No updates from Microsoft</h2><p>Other than the couple tweets and the Admin Center update, we haven't seen any other updates from Microsoft. </p><p>It's not clear what work is being done to resolve the outage.</p></div><div class="live-content"><time datetime="2026-08-31T19:26:40+00:00">August 31, 2026 – 3:26 PM</time><h2 id="is-outlook-down-for-you">Is Outlook down for you?</h2><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-W5E2wW"></div>                            </div>                            <script src="https://kwizly.com/embed/W5E2wW.js" async=""></script><p>Let us know in the comments what issues you're experiencing. </p></div><div class="live-content"><time datetime="2026-08-31T19:44:03+00:00">August 31, 2026 – 3:44 PM</time><h2 id="outage-has-last-4-hours">Outage has last 4 hours</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ytx7gsKrfFbWNQV8E7E9NB" name="MicrosoftOutlook.jpg" alt="The Microsoft Outlook app open on a phone" src="https://cdn.mos.cms.futurecdn.net/ytx7gsKrfFbWNQV8E7E9NB-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>With no updates from Microsoft, today's Outlook outage has lasted for more than four hours.</p><p>As of this posting, despite declining reports it's not clear when the outage might end.</p></div><div class="live-content"><time datetime="2026-08-31T19:52:00+00:00">August 31, 2026 – 3:52 PM</time><h2 id="update-from-microsoft">Update from Microsoft</h2><p>On the <a href="https://status.cloud.microsoft/m365/referrer=serviceStatusRedirect" target="_blank">M365 status page</a>, a new update just popped up. </p><p>Here it is: </p><p>OneDrive for Business and SharePoint Online: Users may be unable to load or refresh portions of OneDrive and SharePoint, including account and storage information, search results, Favorites, Followed and Shared With Me content, recent files, lists, and news. Some users may also experience delayed or failed file opening, Office policy-label retrieval, OneDrive synchronization, mobile camera upload, and video playback. Users may see partial page failures, missing or stale content, repeated retries, and operation timeouts rather than a complete platform outage.</p><p>Exchange Online: Users may be unable to connect to, or experience degraded functionality, with Exchange Online. All connection methods are affected. </p><p>Microsoft Teams: Users may experience issues with calendar functionality and search. Users’ presence may be stale and not update automatically or through manual adjustment. User location adjustment may fail. </p><p>Microsoft Purview: Users may face intermittent authorization failures across solutions in Purview. Purview admins can’t access the portal. Additionally, in Microsoft Purview Communication Compliance, users may see errors when loading Communication Compliance policies and Data Loss Prevention (DLP) policies. Communication Compliance policy creation and evaluation may be delayed. </p><p>Microsoft Defender XDR: Users may experience intermittent authorization failures across solutions in Defender. </p><p><strong>Current status: </strong>We're continuing to perform comprehensive tests to ensure our mitigation strategy effectively resolves the issue without introducing additional impact. In parallel, we're exploring alternative remediation avenues to minimize impact in the interim. </p><p><strong>Scope of impact: </strong>Users attempting to perform any of the outlined impact scenarios may be affected by this event. </p><p><strong>Preliminary root cause: </strong>An issue within a core authentication configuration used by multiple Microsoft 365 services is resulting in impact. </p></div><div class="live-content"><time datetime="2026-08-31T20:14:23+00:00">August 31, 2026 – 4:14 PM</time><h2 id="snail-mail">Snail mail</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="gWoW8UhSG7R78YpMZFCbYT" name="GettyImages-78486862edit.jpg" alt="Letter posted through the letterbox" src="https://cdn.mos.cms.futurecdn.net/gWoW8UhSG7R78YpMZFCbYT-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Getty Images)</span></figcaption></figure><p>Not much new to share with you but this message from a frustrated user on Down Detector gave me a chuckle.</p><p>"Now distributing stamps &amp; envelopes to our team. Printer is working overtime."</p></div><div class="live-content"><time datetime="2026-08-31T20:39:57+00:00">August 31, 2026 – 4:39 PM</time><h2 id="outage-appears-international">Outage appears international</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="SvzWgUkw8ivTUYcraTxj4n" name="TG-worldle-lede-shutterstock.jpg" alt="An image of the globe on a blue background. The globe has a green question mark formed from land." src="https://cdn.mos.cms.futurecdn.net/SvzWgUkw8ivTUYcraTxj4n-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Users reporting in on Down Detector are claiming to be from all over the country including New York, Las Vegas, Kentucky, Indianapolis and more.</p><p>I'm also seeing some reports from other countries including Guatamala City, Montevideo, Uruguay and Argentina.</p></div><div class="live-content"><time datetime="2026-08-31T21:23:00+00:00">August 31, 2026 – 5:23 PM</time><h2 id="where-we-stand-after-6-hours">Where we stand after 6 hours</h2><p>Unfortunately, pretty much the same. </p><p>The M365 status page had a recent update that shows Microsoft's engineers are working on the issue but it doesn't appear relief is coming any time soon.</p><p>"Current status: We're reexamining recent changes made to the service to determine why the authentication components aren't being deployed as expected. Additionally, we are exploring every avenue to safely restore the components, including reverting an update the affected infrastructure recently received. We're performing additional tests to determine whether this will provide relief."</p><p>Reports on Down Detector have declined but I think that's more because people on the East Coast are starting to log off for the day.</p></div><div class="live-content"><time datetime="2026-08-31T22:07:39+00:00">August 31, 2026 – 6:07 PM</time><h2 id="slow-decline-but-still-thousands-of-reports">Slow decline but still thousands of reports</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:675px;"><p class="vanilla-image-block" style="padding-top:45.48%;"><img id="B4chNaKBrbEUxpGwKJcqZn" name="Screenshot 2026-08-31 150353" alt="Microsoft Outlook outage 8/31/26" src="https://cdn.mos.cms.futurecdn.net/B4chNaKBrbEUxpGwKJcqZn-1920-80.png" mos="" align="middle" fullscreen="" width="675" height="307" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Down Detector)</span></figcaption></figure><p>As mentioned in my last post, the reports on Down Detector have been in a steady decline, but there are still thousands of reports. Currently, it's sitting around 3,100. </p><p>There are certainly people using Outlook for personal reasons, but I think reports will decline as people across the US start to log off from work. </p></div><div class="live-content"><time datetime="2026-08-31T22:41:53+00:00">August 31, 2026 – 6:41 PM</time><h2 id="a-different-update-from-microsoft">A different update from Microsoft</h2><p>A user on Down Detector shared an alleged update from Microsoft.</p><p>Here's what it says: </p><p>We're continuing our targeted review of affected infrastructure and recent changes made to the service to definitively confirm the cause of impact. We're additionally continuing to test and implement various mitigation strategies to apply the necessary authentication component, which have so far yielded positive results. We're monitoring these tests and mitigative actions closely and will provide an estimated time to resolution as soon as one is available.</p><p>We understand the impact that events like these can have for your organization and we appreciate your patience as we work to mitigate this issue with the highest priority.</p></div><div class="live-content"><time datetime="2026-08-31T23:19:32+00:00">August 31, 2026 – 7:19 PM</time><h2 id="fixes-may-be-in-the-works">Fixes may be in the works</h2><p>It finally seems that Microsoft may have mitigations in place. Though the company has not yet provided an estimated time for a return to normal service.</p><p>"<em>We're continuing to implement a targeted mitigation to re-apply core authentication components, and we're expanding this action more widely across the affected environments as we closely track the recovery of affected downstream scenarios. Users may notice gradual recovery to the scenarios identified in the "More info" section as our mitigation action takes effect in their corresponding sections of infrastructure, and we're continuing to review whether any additional actions may be required to achieve withstanding recovery across all affected scenarios. We'll provide an estimated time to resolution as soon as one is available."</em></p></div><div class="live-content"><time datetime="2026-08-31T23:45:49+00:00">August 31, 2026 – 7:45 PM</time><h2 id="reports-continue-to-decline">Reports continue to decline</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:674px;"><p class="vanilla-image-block" style="padding-top:45.99%;"><img id="6pLQZLUvZ6om6asAdqsHWX" name="Screenshot 2026-09-01 084149" alt="Microsoft Outlook outage 8/31/26" src="https://cdn.mos.cms.futurecdn.net/6pLQZLUvZ6om6asAdqsHWX-1920-80.png" mos="" align="middle" fullscreen="" width="674" height="310" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: New York Times)</span></figcaption></figure><p>Reports on Down Detector continue their steady decline but we are hewing closer to 5 pm on the West Coast, where it's likely people are starting to logoff there and I expect reports will take a nosedive over the next hour. </p><p>Microsoft still hasn't provided an ETA for a return to normal service. </p></div><div class="live-content"><time datetime="2026-09-01T00:23:36+00:00">August 31, 2026 – 8:23 PM</time><h2 id="microsoft-response">Microsoft response</h2><p>I reached out to Microsoft to see if they could provide an ETA or any kind of update. Unfortunately, I received neither. </p><p>Here's what I was told by a Microsoft spokesperson:</p><p><em>"We're aware of an issue affecting access to Exchange Online and some other services. We know this is disruptive for customers and we appreciate their patience while we work to restore services as quickly as possible. Updates are available on the </em><a href="https://uk01.l.antigena.com/l/1UXr5cGKjjp0o2OL9xWNCMQk8F5sezohurKMdWGBF~rOWnnC0ieSs5x3_ixEJl-9fBhzYDp399RfJgJtHCUKNYeHbfKpi8t8l2IxjOeb5OqEtC_rwHfjSOAJQYNdzGxW0U1Crn-~JZJDGQG9bg6ykf_Hni7Ylhx_mcFjEwBA2R" target="_blank"><u><em>Microsoft service health status page</em></u></a><em> and </em><a href="https://x.com/MSFT365Status/status/2094455556454920701" target="_blank"><em>@MSFT365Status</em></a><em>."</em><em><strong> </strong></em></p></div><div class="live-content"><time datetime="2026-09-01T00:37:28+00:00">August 31, 2026 – 8:37 PM</time><h2 id="latest-update-from-status-page">Latest update from status page</h2><p>Here's the latest update from the Microsoft status page: </p><p><em>We're progressively restarting targeted sections of affected infrastructure to ensure the re-applied authentication components are effectively implemented across affected services. We expect this will aid the recovery of affected scenarios. Users should expect delayed delivery of backlogged messages and residual impact across downstream scenarios as these actions are continuing. We'll provide an expected recovery time as soon as one becomes available to us.</em></p><p>Still no ETA, but you might start seeing some recovery. </p></div><div class="live-content"><time datetime="2026-09-01T01:05:15+00:00">August 31, 2026 – 9:05 PM</time><h2 id="taking-a-break">Taking a break </h2><p>This is Scott. Reports on DD have fallen below 1,000 since before 8 am Pacific. However, based on the Microsoft site its not over.</p><p>I'm taking a brief dinner break. I'll be back soon with more updates.</p></div><div class="live-content"><time datetime="2026-09-01T02:08:53+00:00">August 31, 2026 – 10:08 PM</time><h2 id="email-should-be-recovered">Email should be recovered</h2><p>The most recent update from Microsoft indicates that your email should have returned to normal. Though the status says that some parts of the system aren't recovering properly so you may have issues with things ilke search.</p><p><em>"Users can expect to see continued recovery to email delivery, while users may see residual impact to downstream and dependent scenarios, including search, across affected services. "</em></p></div><div class="live-content"><time datetime="2026-09-01T02:40:43+00:00">August 31, 2026 – 10:40 PM</time><h2 id="reports-are-under-500">Reports are under 500</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:674px;"><p class="vanilla-image-block" style="padding-top:45.70%;"><img id="ou88vSP5rovPjXBiyya52Q" name="Screenshot 2026-08-31 193838" alt="Microsoft outlook outage 8-31-26" src="https://cdn.mos.cms.futurecdn.net/ou88vSP5rovPjXBiyya52Q-1920-80.png" mos="" align="middle" fullscreen="" width="674" height="308" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Down Detector)</span></figcaption></figure><p>With some recovery in effect, reports are under 500 on Down Detector and I'm seeing a several comments from people who have regained access to their accounts. </p><p>However, I am also still seeing some comments from people who can't sign in or aren't getting emails.</p><p>There is still not ETA for a full recovery and as mentioned earlier, some aspects, like search, aren't working properly. </p></div><div class="live-content"><time datetime="2026-09-01T03:55:44+00:00">August 31, 2026 – 11:55 PM</time><h2 id="calling-it">Calling it</h2><p>Well folks, I'm going to call this outage. </p><p>The reports are under 200, and the status page just updated with this notice:</p><p><em>"We're observing widespread recovery to Exchange Online mail connectivity, though the draining of backlogged mail queues may take longer for some organizations due to the volume of previously queued messages. Our recovery efforts are now focused on re-applying our targeted authentication component fix and restarting certain instances of infrastructure correlated with search functionality to ensure the full restoration of the associated scenarios."</em></p><p>With that settled, this outage appears to finally be over.<br /></p></div> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/news/live/microsoft-outlook-outage-august-31-2026</link>
                                                                            <description>
                            <![CDATA[ Microsoft Outlook appears to be suffering from an outage. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">6jx9qj3S7K2XCpnEnUQyWd</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/KPG47747aX2DtH8NaaLvK-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Mon, 31 Aug 2026 18:24:37 +0000</pubDate>                                                                                                                                <updated>Tue, 01 Sep 2026 03:58:57 +0000</updated>
                                                                                                                                            <category><![CDATA[Email]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Internet]]></category>
                                                                                                <author><![CDATA[ scott.younker@futurenet.com (Scott Younker) ]]></author>                    <dc:creator><![CDATA[ Scott Younker ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/RZsUpqcJ6Uj2q83oCUwNhQ-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Scott Younker is the West Coast Reporter at Tom’s Guide. He covers all the latest tech news, including phones, computing and more. He’s been involved in tech since 2011 covering everything from cameras and swimming pool equipment to the latest gaming consoles and smart TVs. He is on a seemingly never ending hunt to build the easiest to use home media system. &lt;/p&gt;&lt;p&gt;Before Tom’s Guide, Scott worked for publications like &lt;em&gt;Digital Trends, Outdoor Photographer, Dead Beats Panel&lt;/em&gt;, and in a brief detour, &lt;em&gt;America’s Funniest Home Videos&lt;/em&gt;. Yes, he has seen more pratfalls, silly pets and ridiculous home movie fails than is reasonably healthy. &lt;/p&gt;&lt;p&gt;When not writing about the latest devices or advances in chipsets, be sure to ask about Scott about disc golf and sustainability, or just if you’re being cheeky, ask about his noodle arm. If you truly want to get nerdy, bring up board games and his ongoing losing streak. &lt;/p&gt;&lt;p&gt;Scott joined Tom&#039;s Guide in 2024 as the West Coast Reporter. He graduated from the School of Journalism at the University of Oregon with a degree in magazine journalism and a minor in communications. While there he blogged or wrote for several magazines including the Fluxx, Ethos and the Oregon Commentator. He briefly wrote and managed a moderately successful blog focused on web comics. &lt;br&gt;Send secure tips on Signal: scyo1.55.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/KPG47747aX2DtH8NaaLvK-1920-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Outlook]]></media:description>                                                            <media:text><![CDATA[Outlook]]></media:text>
                                <media:title type="plain"><![CDATA[Outlook]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/KPG47747aX2DtH8NaaLvK-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <div class="live-content"><p>Microsoft Outlook may be suffering an outage. Reports about the email platform started popping up on the outage-tracking site <a href="https://downdetector.com/status/outlook/" target="_blank">Down Detector</a> starting around 8:30 am Pacific. </p><p>It peaked around 9:30 am around 6,000 reports. The outage appears to be affecting access to mailboxes, delays in sending emails or failure to send. </p><p>Outlook stayed down for nearly 12 hours, last until about 8:30 pm Pacific. A fix was implemented around 6 pm that seemed to get people back online but it didn't completely work and some functions like search didn't work properly for two more hours.</p><p>According to the Microsoft 365 status page, the outage was caused by "an issue within a core authentication configuration used by multiple Microsoft 365 services is resulting in impact."</p><p>We did not see any more specific information beyond that. </p><p>Here's what we know:</p></div><div class="live-content"><time datetime="2026-08-31T18:26:22+00:00">August 31, 2026 – 2:26 PM</time><h2 id="multi-hour-outage">Multi-hour outage</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:673px;"><p class="vanilla-image-block" style="padding-top:42.79%;"><img id="E8exMaQWWNsgzYsLnRiQnN" name="Screenshot 2026-08-31 112543" alt="Microsoft Outlook outage Aug 31, 2026" src="https://cdn.mos.cms.futurecdn.net/E8exMaQWWNsgzYsLnRiQnN-1920-80.png" mos="" align="middle" fullscreen="" width="673" height="288" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Down Detector)</span></figcaption></figure><p>Reports starting appearing on Down Detector around 8:30 am Pacific but didn't peak until an hour later. </p><p>As of this posting, there are more than 5,000 reports on the outage tracker and no sign of decline.</p></div><div class="live-content"><time datetime="2026-08-31T18:28:54+00:00">August 31, 2026 – 2:28 PM</time><h2 id="microsoft-says-all-systems-quot-operational-quot">Microsoft says all systems "operational"</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="LFP6P5nzNFP8AkCLiWJSvG" name="Microsoft" alt="Microsoft 365 becomes Microsoft 364" src="https://cdn.mos.cms.futurecdn.net/LFP6P5nzNFP8AkCLiWJSvG-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Paolo Bona / Shutterstock.com / Microsoft / Future)</span></figcaption></figure><p>I've checked the Microsoft 365 <a href="https://status.cloud.microsoft/m365/referrer=serviceStatusRedirect" target="_blank">status page</a>, and according to that page every Microsoft product is operational.</p></div><div class="live-content"><time datetime="2026-08-31T18:31:03+00:00">August 31, 2026 – 2:31 PM</time><h2 id="m365-twitter-account-acknowledges-problem">M365 Twitter account acknowledges problem</h2><div class="see-more see-more--clipped"><figure><blockquote class="twitter-tweet hawk-ignore" data-lang="en" cite="https://twitter.com/cantworkitout/status/2094465993007378744"><p lang="en" dir="ltr">We've confirmed that users may experience degraded functionality with various Exchange Online functionalities. We're reviewing service telemetry and diagnostic data to isolate the source of the issue. For more information, please see EX1464935 in the admin center.<a href="https://twitter.com/cantworkitout/status/2094465993007378744">August 31, 2026</a></p></blockquote></figure><div class="see-more__filter"></div></div><p>While the Microsoft 365 status page isn't showing any issues, the official <a href="https://x.com/MSFT365Status/status/2094465993007378744" target="_blank">Microsoft 365 Status X account</a> did acknowledge the issue.</p><p>"We've confirmed that users may experience degraded functionality with various Exchange Online functionalities. We're reviewing service telemetry and diagnostic data to isolate the source of the issue. For more information, please see EX1464935 in the admin center," the post reads. </p></div><div class="live-content"><time datetime="2026-08-31T18:34:28+00:00">August 31, 2026 – 2:34 PM</time><h2 id="what-issues-are-we-seeing">What issues are we seeing?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:853px;"><p class="vanilla-image-block" style="padding-top:60.96%;"><img id="77h7giWwLQ9NhbRWTtqwSd" name="outlook-iphone-shst.jpg" alt="Microsoft Outlook" src="https://cdn.mos.cms.futurecdn.net/77h7giWwLQ9NhbRWTtqwSd-1920-80.jpg" mos="" align="middle" fullscreen="" width="853" height="520" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Microsoft)</span></figcaption></figure><p>Based on comments from Down Detector and X, the most common issue appears to be a failure to actually send and receive emails for those who can get in.</p><p>I've seen several comments saying that the app won't even open on their computers. </p><p>"Not receiving emails since about 10:45 am, then went downhill, replies stopped coming through, then emails came to a halt, and then, besides Outlook constantly freezing, now my shared work folder is no longer showing me emails and gives an error," one said.</p><p>For those in businesses, it appears they can't even send messages between connected emails.</p></div><div class="live-content"><time datetime="2026-08-31T18:40:54+00:00">August 31, 2026 – 2:40 PM</time><h2 id="users-quot-may-experience-a-variety-of-symptoms-quot">Users "may experience a variety of symptoms"</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1981px;"><p class="vanilla-image-block" style="padding-top:56.23%;"><img id="QcDNYDHLZWSjpMdgzpVJQG" name="Outlook.shutterstock_2384091865.jpg" alt="Outlook on a laptop" src="https://cdn.mos.cms.futurecdn.net/QcDNYDHLZWSjpMdgzpVJQG-1920-80.jpg" mos="" align="middle" fullscreen="" width="1981" height="1114" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>If you can get in the 365 Admin Center, this is the message you should see:</p><p>"Users may be unable to connect to, or experience degraded functionality with Exchange Online</p><p>Users may experience a variety of symptoms related to this event, including but not limited to:<br />- Delays, failures, or incomplete results when searching for content within Exchange Online mailboxes.<br />- Delays or failures when sending or receiving email messages.<br />- Authentication-related errors when accessing Exchange Online services.<br />- Difficulties accessing or performing actions within Exchange administration experiences.<br />- Intermittent failures affecting mailbox operations and message delivery workflows."</p></div><div class="live-content"><time datetime="2026-08-31T18:51:20+00:00">August 31, 2026 – 2:51 PM</time><h2 id="slow-decline">Slow decline</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:675px;"><p class="vanilla-image-block" style="padding-top:45.63%;"><img id="LCj29zbxdQbXSkRrDP5HXk" name="Screenshot 2026-08-31 114803" alt="Microsoft Outlook outage 8/31/26" src="https://cdn.mos.cms.futurecdn.net/LCj29zbxdQbXSkRrDP5HXk-1920-80.png" mos="" align="middle" fullscreen="" width="675" height="308" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Down Detector)</span></figcaption></figure><p>Over on Down Detector, reports have started to decline. </p><p>The peak around 9:30 a.m. was around 6,000 reports. As of 11:45 a.m. Pacific, reports are closer to 4,500. </p><p>I've seen some people in offices say that portions of their teams are able to access the email platform, but some of the team is still down.</p></div><div class="live-content"><time datetime="2026-08-31T19:09:19+00:00">August 31, 2026 – 3:09 PM</time><h2 id="no-updates-from-microsoft">No updates from Microsoft</h2><p>Other than the couple tweets and the Admin Center update, we haven't seen any other updates from Microsoft. </p><p>It's not clear what work is being done to resolve the outage.</p></div><div class="live-content"><time datetime="2026-08-31T19:26:40+00:00">August 31, 2026 – 3:26 PM</time><h2 id="is-outlook-down-for-you">Is Outlook down for you?</h2><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-W5E2wW"></div>                            </div>                            <script src="https://kwizly.com/embed/W5E2wW.js" async=""></script><p>Let us know in the comments what issues you're experiencing. </p></div><div class="live-content"><time datetime="2026-08-31T19:44:03+00:00">August 31, 2026 – 3:44 PM</time><h2 id="outage-has-last-4-hours">Outage has last 4 hours</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ytx7gsKrfFbWNQV8E7E9NB" name="MicrosoftOutlook.jpg" alt="The Microsoft Outlook app open on a phone" src="https://cdn.mos.cms.futurecdn.net/ytx7gsKrfFbWNQV8E7E9NB-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>With no updates from Microsoft, today's Outlook outage has lasted for more than four hours.</p><p>As of this posting, despite declining reports it's not clear when the outage might end.</p></div><div class="live-content"><time datetime="2026-08-31T19:52:00+00:00">August 31, 2026 – 3:52 PM</time><h2 id="update-from-microsoft">Update from Microsoft</h2><p>On the <a href="https://status.cloud.microsoft/m365/referrer=serviceStatusRedirect" target="_blank">M365 status page</a>, a new update just popped up. </p><p>Here it is: </p><p>OneDrive for Business and SharePoint Online: Users may be unable to load or refresh portions of OneDrive and SharePoint, including account and storage information, search results, Favorites, Followed and Shared With Me content, recent files, lists, and news. Some users may also experience delayed or failed file opening, Office policy-label retrieval, OneDrive synchronization, mobile camera upload, and video playback. Users may see partial page failures, missing or stale content, repeated retries, and operation timeouts rather than a complete platform outage.</p><p>Exchange Online: Users may be unable to connect to, or experience degraded functionality, with Exchange Online. All connection methods are affected. </p><p>Microsoft Teams: Users may experience issues with calendar functionality and search. Users’ presence may be stale and not update automatically or through manual adjustment. User location adjustment may fail. </p><p>Microsoft Purview: Users may face intermittent authorization failures across solutions in Purview. Purview admins can’t access the portal. Additionally, in Microsoft Purview Communication Compliance, users may see errors when loading Communication Compliance policies and Data Loss Prevention (DLP) policies. Communication Compliance policy creation and evaluation may be delayed. </p><p>Microsoft Defender XDR: Users may experience intermittent authorization failures across solutions in Defender. </p><p><strong>Current status: </strong>We're continuing to perform comprehensive tests to ensure our mitigation strategy effectively resolves the issue without introducing additional impact. In parallel, we're exploring alternative remediation avenues to minimize impact in the interim. </p><p><strong>Scope of impact: </strong>Users attempting to perform any of the outlined impact scenarios may be affected by this event. </p><p><strong>Preliminary root cause: </strong>An issue within a core authentication configuration used by multiple Microsoft 365 services is resulting in impact. </p></div><div class="live-content"><time datetime="2026-08-31T20:14:23+00:00">August 31, 2026 – 4:14 PM</time><h2 id="snail-mail">Snail mail</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="gWoW8UhSG7R78YpMZFCbYT" name="GettyImages-78486862edit.jpg" alt="Letter posted through the letterbox" src="https://cdn.mos.cms.futurecdn.net/gWoW8UhSG7R78YpMZFCbYT-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Getty Images)</span></figcaption></figure><p>Not much new to share with you but this message from a frustrated user on Down Detector gave me a chuckle.</p><p>"Now distributing stamps &amp; envelopes to our team. Printer is working overtime."</p></div><div class="live-content"><time datetime="2026-08-31T20:39:57+00:00">August 31, 2026 – 4:39 PM</time><h2 id="outage-appears-international">Outage appears international</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="SvzWgUkw8ivTUYcraTxj4n" name="TG-worldle-lede-shutterstock.jpg" alt="An image of the globe on a blue background. The globe has a green question mark formed from land." src="https://cdn.mos.cms.futurecdn.net/SvzWgUkw8ivTUYcraTxj4n-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Users reporting in on Down Detector are claiming to be from all over the country including New York, Las Vegas, Kentucky, Indianapolis and more.</p><p>I'm also seeing some reports from other countries including Guatamala City, Montevideo, Uruguay and Argentina.</p></div><div class="live-content"><time datetime="2026-08-31T21:23:00+00:00">August 31, 2026 – 5:23 PM</time><h2 id="where-we-stand-after-6-hours">Where we stand after 6 hours</h2><p>Unfortunately, pretty much the same. </p><p>The M365 status page had a recent update that shows Microsoft's engineers are working on the issue but it doesn't appear relief is coming any time soon.</p><p>"Current status: We're reexamining recent changes made to the service to determine why the authentication components aren't being deployed as expected. Additionally, we are exploring every avenue to safely restore the components, including reverting an update the affected infrastructure recently received. We're performing additional tests to determine whether this will provide relief."</p><p>Reports on Down Detector have declined but I think that's more because people on the East Coast are starting to log off for the day.</p></div><div class="live-content"><time datetime="2026-08-31T22:07:39+00:00">August 31, 2026 – 6:07 PM</time><h2 id="slow-decline-but-still-thousands-of-reports">Slow decline but still thousands of reports</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:675px;"><p class="vanilla-image-block" style="padding-top:45.48%;"><img id="B4chNaKBrbEUxpGwKJcqZn" name="Screenshot 2026-08-31 150353" alt="Microsoft Outlook outage 8/31/26" src="https://cdn.mos.cms.futurecdn.net/B4chNaKBrbEUxpGwKJcqZn-1920-80.png" mos="" align="middle" fullscreen="" width="675" height="307" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Down Detector)</span></figcaption></figure><p>As mentioned in my last post, the reports on Down Detector have been in a steady decline, but there are still thousands of reports. Currently, it's sitting around 3,100. </p><p>There are certainly people using Outlook for personal reasons, but I think reports will decline as people across the US start to log off from work. </p></div><div class="live-content"><time datetime="2026-08-31T22:41:53+00:00">August 31, 2026 – 6:41 PM</time><h2 id="a-different-update-from-microsoft">A different update from Microsoft</h2><p>A user on Down Detector shared an alleged update from Microsoft.</p><p>Here's what it says: </p><p>We're continuing our targeted review of affected infrastructure and recent changes made to the service to definitively confirm the cause of impact. We're additionally continuing to test and implement various mitigation strategies to apply the necessary authentication component, which have so far yielded positive results. We're monitoring these tests and mitigative actions closely and will provide an estimated time to resolution as soon as one is available.</p><p>We understand the impact that events like these can have for your organization and we appreciate your patience as we work to mitigate this issue with the highest priority.</p></div><div class="live-content"><time datetime="2026-08-31T23:19:32+00:00">August 31, 2026 – 7:19 PM</time><h2 id="fixes-may-be-in-the-works">Fixes may be in the works</h2><p>It finally seems that Microsoft may have mitigations in place. Though the company has not yet provided an estimated time for a return to normal service.</p><p>"<em>We're continuing to implement a targeted mitigation to re-apply core authentication components, and we're expanding this action more widely across the affected environments as we closely track the recovery of affected downstream scenarios. Users may notice gradual recovery to the scenarios identified in the "More info" section as our mitigation action takes effect in their corresponding sections of infrastructure, and we're continuing to review whether any additional actions may be required to achieve withstanding recovery across all affected scenarios. We'll provide an estimated time to resolution as soon as one is available."</em></p></div><div class="live-content"><time datetime="2026-08-31T23:45:49+00:00">August 31, 2026 – 7:45 PM</time><h2 id="reports-continue-to-decline">Reports continue to decline</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:674px;"><p class="vanilla-image-block" style="padding-top:45.99%;"><img id="6pLQZLUvZ6om6asAdqsHWX" name="Screenshot 2026-09-01 084149" alt="Microsoft Outlook outage 8/31/26" src="https://cdn.mos.cms.futurecdn.net/6pLQZLUvZ6om6asAdqsHWX-1920-80.png" mos="" align="middle" fullscreen="" width="674" height="310" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: New York Times)</span></figcaption></figure><p>Reports on Down Detector continue their steady decline but we are hewing closer to 5 pm on the West Coast, where it's likely people are starting to logoff there and I expect reports will take a nosedive over the next hour. </p><p>Microsoft still hasn't provided an ETA for a return to normal service. </p></div><div class="live-content"><time datetime="2026-09-01T00:23:36+00:00">August 31, 2026 – 8:23 PM</time><h2 id="microsoft-response">Microsoft response</h2><p>I reached out to Microsoft to see if they could provide an ETA or any kind of update. Unfortunately, I received neither. </p><p>Here's what I was told by a Microsoft spokesperson:</p><p><em>"We're aware of an issue affecting access to Exchange Online and some other services. We know this is disruptive for customers and we appreciate their patience while we work to restore services as quickly as possible. Updates are available on the </em><a href="https://uk01.l.antigena.com/l/1UXr5cGKjjp0o2OL9xWNCMQk8F5sezohurKMdWGBF~rOWnnC0ieSs5x3_ixEJl-9fBhzYDp399RfJgJtHCUKNYeHbfKpi8t8l2IxjOeb5OqEtC_rwHfjSOAJQYNdzGxW0U1Crn-~JZJDGQG9bg6ykf_Hni7Ylhx_mcFjEwBA2R" target="_blank"><u><em>Microsoft service health status page</em></u></a><em> and </em><a href="https://x.com/MSFT365Status/status/2094455556454920701" target="_blank"><em>@MSFT365Status</em></a><em>."</em><em><strong> </strong></em></p></div><div class="live-content"><time datetime="2026-09-01T00:37:28+00:00">August 31, 2026 – 8:37 PM</time><h2 id="latest-update-from-status-page">Latest update from status page</h2><p>Here's the latest update from the Microsoft status page: </p><p><em>We're progressively restarting targeted sections of affected infrastructure to ensure the re-applied authentication components are effectively implemented across affected services. We expect this will aid the recovery of affected scenarios. Users should expect delayed delivery of backlogged messages and residual impact across downstream scenarios as these actions are continuing. We'll provide an expected recovery time as soon as one becomes available to us.</em></p><p>Still no ETA, but you might start seeing some recovery. </p></div><div class="live-content"><time datetime="2026-09-01T01:05:15+00:00">August 31, 2026 – 9:05 PM</time><h2 id="taking-a-break">Taking a break </h2><p>This is Scott. Reports on DD have fallen below 1,000 since before 8 am Pacific. However, based on the Microsoft site its not over.</p><p>I'm taking a brief dinner break. I'll be back soon with more updates.</p></div><div class="live-content"><time datetime="2026-09-01T02:08:53+00:00">August 31, 2026 – 10:08 PM</time><h2 id="email-should-be-recovered">Email should be recovered</h2><p>The most recent update from Microsoft indicates that your email should have returned to normal. Though the status says that some parts of the system aren't recovering properly so you may have issues with things ilke search.</p><p><em>"Users can expect to see continued recovery to email delivery, while users may see residual impact to downstream and dependent scenarios, including search, across affected services. "</em></p></div><div class="live-content"><time datetime="2026-09-01T02:40:43+00:00">August 31, 2026 – 10:40 PM</time><h2 id="reports-are-under-500">Reports are under 500</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:674px;"><p class="vanilla-image-block" style="padding-top:45.70%;"><img id="ou88vSP5rovPjXBiyya52Q" name="Screenshot 2026-08-31 193838" alt="Microsoft outlook outage 8-31-26" src="https://cdn.mos.cms.futurecdn.net/ou88vSP5rovPjXBiyya52Q-1920-80.png" mos="" align="middle" fullscreen="" width="674" height="308" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Down Detector)</span></figcaption></figure><p>With some recovery in effect, reports are under 500 on Down Detector and I'm seeing a several comments from people who have regained access to their accounts. </p><p>However, I am also still seeing some comments from people who can't sign in or aren't getting emails.</p><p>There is still not ETA for a full recovery and as mentioned earlier, some aspects, like search, aren't working properly. </p></div><div class="live-content"><time datetime="2026-09-01T03:55:44+00:00">August 31, 2026 – 11:55 PM</time><h2 id="calling-it">Calling it</h2><p>Well folks, I'm going to call this outage. </p><p>The reports are under 200, and the status page just updated with this notice:</p><p><em>"We're observing widespread recovery to Exchange Online mail connectivity, though the draining of backlogged mail queues may take longer for some organizations due to the volume of previously queued messages. Our recovery efforts are now focused on re-applying our targeted authentication component fix and restarting certain instances of infrastructure correlated with search functionality to ensure the full restoration of the associated scenarios."</em></p><p>With that settled, this outage appears to finally be over.<br /></p></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Meta agrees to pay $17.1 billion to settle claims Facebook and Instagram harm children — here's what you need to know ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Meta has been in plenty of hot water as of late.</p><p>The company’s smart glasses have <a href="https://www.tomsguide.com/computing/smart-glasses/im-worried-smart-glasses-might-ruin-wearable-displays-and-of-course-its-the-cameras">gotten a ton of ire</a> as people have pointed to privacy concerns over users secretly filming random passersby and whoever else they please (there’s even a <a href="https://futurism.com/artificial-intelligence/teen-boys-meta-glasses-harass-bully-girls-school" target="_blank">report</a> about teenage boys using them to pester girls at middle and high schools).</p><p>Meta then found itself <a href="https://www.tomsguide.com/computing/social-media/i-read-all-233-pages-of-metas-usd1-4-trillion-lawsuit-heres-why-facebook-and-instagram-may-never-be-the-same">in the middle of a lawsuit</a> that saw 29 states, co-led by California Attorney General Rob Bonta and the AGs from Colorado, New Jersey and Kentucky, allege that its social media platforms are addictive to children, mislead consumers about those young users’ safety on said platforms and inappropriately gather children's personal data. </p><p>That lawsuit has now met its end, as Meta has just agreed to pay a settlement of $17.1 billion — according to a statement made by California AG Rob Bonta. The state of California could receive between $1.5 billion and $2.1 billion if the court authorizes the settlement. As for New York, its attorney general <a href="https://ag.ny.gov/press-release/2026/attorney-general-james-secures-171-billion-and-groundbreaking-reforms-meta" target="_blank">announced</a> that the state will get up to $1.15 billion and likely put it toward kids' education and social services meant to assist youngsters struggling with their social media addiction. Head to this <a href="https://www.kcra.com/article/meta-settlement-state-map/73535639" target="_blank">link</a> to see how much each state will receive from this monumental Meta settlement.</p><p>With this settlement in place comes a host of changes Meta has been ordered to make to Facebook and Instagram. Here’s what these changes could mean for parents with children who frequently use both platforms and how they could result in a positive outcome for them.</p><h2 id="less-addictive-and-harmful-social-media-spaces-for-kids-of-all-ages">Less addictive and harmful social media spaces for kids of all ages</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="KNsGDPbr5iYcc6M8azdQRa" name="shutterstock_2696215553-16x9" alt="facebook" src="https://cdn.mos.cms.futurecdn.net/KNsGDPbr5iYcc6M8azdQRa-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>There’s a wealth of changes Meta must now make according to the measures detailed in the settlement, such as:</p><ul><li><strong>A default daily time limit of two hours for users under 18 years of age that can only be lifted by a parent</strong></li><li><strong>A default nighttime block between midnight and 06:00 for users under 18 years of age that can only be lifted by a parent</strong></li><li><strong>Default blocks on notifications to users under 18 years of age from 22:00 to 07:00 and during the school day</strong></li><li><strong>An enhanced mechanism for teenagers to report potentially harmful content and a requirement that Meta respond to 90% of those reports within six hours</strong></li><li><strong>A ban on displaying numbers of likes or reactions to users under 18 years of age</strong></li><li><strong>A ban on cosmetic procedure image filters for users under 18 years of age</strong></li><li><strong>An option for users under 18 years of age to have a non-personalised feed</strong></li><li><strong>A commitment to enhance parent supervision tools</strong></li></ul><p>That settlement also notes that Meta has agreed to the following terms and conditions:</p><ul><li><strong>Institute robust age assurance measures to detect users under 18, as well as measures to identify and remove users under 13 years of age</strong></li><li><strong>Use an independent auditor with expansive access to information and resources</strong></li><li><strong>Be subject to an injunction prohibiting it from making "further false, misleading, or deceptive statements around its safety features"</strong></li></ul><p>In a statement that looks to reassure everyone that kids will be more protected across their social media platforms, Meta had this to say: “Ensuring teens have a safe and productive experience on our platforms is an absolute imperative for Meta. We want to get this right for parents and teens.”</p><p>With all these newly instituted measures in place, Facebook and Instagram could become far less of an addictive haven for children who want to do nothing but endless scrolling and discover content that could be extremely harmful to their mental well-being. Strict usage time limits, parents getting more control over the type of content their kids see, fewer distracting notifications popping up on kids’ screens and young users having less exposure to detrimental content could go a long way toward making Meta’s platforms more approachable for younger users. </p><p>While instituting a two-hour limit for kids using Facebook and Instagram is good, kids may still use that time to expose themselves to harmful content. With parents getting more control over their kids’ social media accounts, here’s hoping their stronger involvement will make children less susceptible to coming across said content.</p><h2 id="bottom-line-10">Bottom line</h2><p>Meta being forced to take responsibility for the harm its social media platforms have done to children is major. While this development doesn’t automatically make Facebook and Instagram 100% safe for kids from this point forward, it’s a good first step toward companies like Meta recognizing the ill effects their products have had on children.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom’s Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/perplexitys-new-local-first-ai-runs-on-your-pc-and-asks-before-using-the-cloud" target="_blank">Perplexity’s new local-first AI runs on your PC — and asks before using the cloud</a></li><li><a href="https://www.tomsguide.com/ai/chatgpt/chatgpt-can-learn-your-repetitive-tasks-by-watching-you-here-are-7-prompts-to-try" target="_blank">ChatGPT can learn your repetitive tasks by watching you — here are 7 prompts to try</a></li><li><a href="https://www.tomsguide.com/ai/ai-could-transform-healthcare-for-the-better-but-this-doctor-says-theres-one-thing-it-should-never-do" target="_blank">AI could transform healthcare for the better — but this doctor says there’s one thing it should never do</a></li></ul><div data-widget-type="comparison" data-model-name="Apple MacBook Neo"></div> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/ai/meta-agrees-to-pay-usd17-1-billion-to-settle-claims-that-facebook-and-instagram-harm-children-heres-what-you-need-to-know</link>
                                                                            <description>
                            <![CDATA[ Meta agrees a massive settlement over alleged transgressions connected to the mental health harm its social media sites inflict on kids; major changes are on the way. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">Wktj8WM2G9ekMn4TfqR929</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/qJSCzoLLLUzgtPVzqhx8kS-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 26 Aug 2026 15:18:34 +0000</pubDate>                                                                                                                                <updated>Thu, 27 Aug 2026 13:09:38 +0000</updated>
                                                                                                                                            <category><![CDATA[Social Media]]></category>
                                                    <category><![CDATA[AI]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Internet]]></category>
                                                                                                                    <dc:creator><![CDATA[ Elton Jones ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/NVtYYXr3tEPUE67jf3HtXM-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/qJSCzoLLLUzgtPVzqhx8kS-1920-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[meta]]></media:description>                                                            <media:text><![CDATA[meta]]></media:text>
                                <media:title type="plain"><![CDATA[meta]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/qJSCzoLLLUzgtPVzqhx8kS-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Meta has been in plenty of hot water as of late.</p><p>The company’s smart glasses have <a href="https://www.tomsguide.com/computing/smart-glasses/im-worried-smart-glasses-might-ruin-wearable-displays-and-of-course-its-the-cameras">gotten a ton of ire</a> as people have pointed to privacy concerns over users secretly filming random passersby and whoever else they please (there’s even a <a href="https://futurism.com/artificial-intelligence/teen-boys-meta-glasses-harass-bully-girls-school" target="_blank">report</a> about teenage boys using them to pester girls at middle and high schools).</p><p>Meta then found itself <a href="https://www.tomsguide.com/computing/social-media/i-read-all-233-pages-of-metas-usd1-4-trillion-lawsuit-heres-why-facebook-and-instagram-may-never-be-the-same">in the middle of a lawsuit</a> that saw 29 states, co-led by California Attorney General Rob Bonta and the AGs from Colorado, New Jersey and Kentucky, allege that its social media platforms are addictive to children, mislead consumers about those young users’ safety on said platforms and inappropriately gather children's personal data. </p><p>That lawsuit has now met its end, as Meta has just agreed to pay a settlement of $17.1 billion — according to a statement made by California AG Rob Bonta. The state of California could receive between $1.5 billion and $2.1 billion if the court authorizes the settlement. As for New York, its attorney general <a href="https://ag.ny.gov/press-release/2026/attorney-general-james-secures-171-billion-and-groundbreaking-reforms-meta" target="_blank">announced</a> that the state will get up to $1.15 billion and likely put it toward kids' education and social services meant to assist youngsters struggling with their social media addiction. Head to this <a href="https://www.kcra.com/article/meta-settlement-state-map/73535639" target="_blank">link</a> to see how much each state will receive from this monumental Meta settlement.</p><p>With this settlement in place comes a host of changes Meta has been ordered to make to Facebook and Instagram. Here’s what these changes could mean for parents with children who frequently use both platforms and how they could result in a positive outcome for them.</p><h2 id="less-addictive-and-harmful-social-media-spaces-for-kids-of-all-ages">Less addictive and harmful social media spaces for kids of all ages</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="KNsGDPbr5iYcc6M8azdQRa" name="shutterstock_2696215553-16x9" alt="facebook" src="https://cdn.mos.cms.futurecdn.net/KNsGDPbr5iYcc6M8azdQRa-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>There’s a wealth of changes Meta must now make according to the measures detailed in the settlement, such as:</p><ul><li><strong>A default daily time limit of two hours for users under 18 years of age that can only be lifted by a parent</strong></li><li><strong>A default nighttime block between midnight and 06:00 for users under 18 years of age that can only be lifted by a parent</strong></li><li><strong>Default blocks on notifications to users under 18 years of age from 22:00 to 07:00 and during the school day</strong></li><li><strong>An enhanced mechanism for teenagers to report potentially harmful content and a requirement that Meta respond to 90% of those reports within six hours</strong></li><li><strong>A ban on displaying numbers of likes or reactions to users under 18 years of age</strong></li><li><strong>A ban on cosmetic procedure image filters for users under 18 years of age</strong></li><li><strong>An option for users under 18 years of age to have a non-personalised feed</strong></li><li><strong>A commitment to enhance parent supervision tools</strong></li></ul><p>That settlement also notes that Meta has agreed to the following terms and conditions:</p><ul><li><strong>Institute robust age assurance measures to detect users under 18, as well as measures to identify and remove users under 13 years of age</strong></li><li><strong>Use an independent auditor with expansive access to information and resources</strong></li><li><strong>Be subject to an injunction prohibiting it from making "further false, misleading, or deceptive statements around its safety features"</strong></li></ul><p>In a statement that looks to reassure everyone that kids will be more protected across their social media platforms, Meta had this to say: “Ensuring teens have a safe and productive experience on our platforms is an absolute imperative for Meta. We want to get this right for parents and teens.”</p><p>With all these newly instituted measures in place, Facebook and Instagram could become far less of an addictive haven for children who want to do nothing but endless scrolling and discover content that could be extremely harmful to their mental well-being. Strict usage time limits, parents getting more control over the type of content their kids see, fewer distracting notifications popping up on kids’ screens and young users having less exposure to detrimental content could go a long way toward making Meta’s platforms more approachable for younger users. </p><p>While instituting a two-hour limit for kids using Facebook and Instagram is good, kids may still use that time to expose themselves to harmful content. With parents getting more control over their kids’ social media accounts, here’s hoping their stronger involvement will make children less susceptible to coming across said content.</p><h2 id="bottom-line-10">Bottom line</h2><p>Meta being forced to take responsibility for the harm its social media platforms have done to children is major. While this development doesn’t automatically make Facebook and Instagram 100% safe for kids from this point forward, it’s a good first step toward companies like Meta recognizing the ill effects their products have had on children.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom’s Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/perplexitys-new-local-first-ai-runs-on-your-pc-and-asks-before-using-the-cloud" target="_blank">Perplexity’s new local-first AI runs on your PC — and asks before using the cloud</a></li><li><a href="https://www.tomsguide.com/ai/chatgpt/chatgpt-can-learn-your-repetitive-tasks-by-watching-you-here-are-7-prompts-to-try" target="_blank">ChatGPT can learn your repetitive tasks by watching you — here are 7 prompts to try</a></li><li><a href="https://www.tomsguide.com/ai/ai-could-transform-healthcare-for-the-better-but-this-doctor-says-theres-one-thing-it-should-never-do" target="_blank">AI could transform healthcare for the better — but this doctor says there’s one thing it should never do</a></li></ul><div data-widget-type="comparison" data-model-name="Apple MacBook Neo"></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Your private Instagram profile may not hide as much as you think — here's what an investigation found ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Privacy concerns around social media have escalated significantly in recent years, with users increasingly cautious about what they share online. </p><p>A new experiment by <a href="https://www.comparethemarket.com/home-insurance/" target="_blank">Compare the Market</a> tested exactly how much information can actually be hidden when you set your Instagram to private. The results are sobering. </p><p>A licensed investigator was tasked with locating the home addresses of nine volunteers using only publicly available information. </p><p>Despite four of them having private Instagram profiles, the investigator identified the addresses of seven out of nine. The fastest was located in just 15 minutes, with the first lead found in 50 seconds.</p><h2 id="what-the-investigation-revealed">What the investigation revealed</h2><p>Colin Crowden, Intelligence Director at <a href="https://globalprotectrisk.com/">Global Protect</a> and an Open-Source Intelligence expert, conducted the investigation. What he discovered challenges the assumption that private accounts provide adequate protection. </p><p>Beyond identifying addresses, the investigation uncovered four complete property plans revealing internal home layouts. In one particularly concerning finding, Crowden established that a volunteer was away on holiday, confirming their property was unoccupied. </p><p>The speed at which information was gathered highlights a critical vulnerability. Information shared by friends and family, location tags from previous posts, property details visible in photos, and data from other online sources all contribute to a broader picture. </p><p>Crowden explains the issue clearly: "Information that appears harmless in isolation can become much more revealing when viewed alongside other publicly available information. This isn't about any one post creating a security risk; it's about how different pieces of information can build up over time."</p><h2 id="why-your-private-account-isn-39-t-enough">Why your private account isn't enough</h2><p>The experiment demonstrates that privacy settings alone offer incomplete protection. Even if your Instagram is private, tagged photos from friends, public check-ins, or incidental details in backgrounds can expose your location and home information. </p><p>The investigation reveals that the combination of data sources, not any single post, creates the vulnerability. Compare the Market's home insurance expert Helen Phipps worked with Crowden to develop concrete recommendations for reducing your digital footprint. </p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-exVnJO"></div>                            </div>                            <script src="https://kwizly.com/embed/exVnJO.js" async=""></script><h3 class="article-body__section" id="section-practical-steps-to-protect-yourself"><span>Practical steps to protect yourself </span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="AotcNKj6nhSo7ryq2Pw9iY" name="shutterstock_2377182091-16x9" alt="A person looking at a phone with a digital warning sign over it" src="https://cdn.mos.cms.futurecdn.net/v2/w:1920,t:0,l:0,cw:2000,ch:1125,q:80/AotcNKj6nhSo7ryq2Pw9iY.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><h2 id="wait-until-you-39-re-home-to-post">Wait until you're home to post</h2><p>If possible, <strong>wait until you're home before posting holiday photos</strong> rather than sharing in real time. This prevents anyone from knowing your property is unoccupied. If you do post while away, <strong>avoid revealing exactly where you are or how long you'll be away for</strong>.</p><h2 id="review-your-privacy-settings-before-you-travel">Review your privacy settings before you travel</h2><p>Check who can see your posts, stories, and tagged content. <strong>Consider setting your accounts to private and reviewing your followers</strong> so that holiday updates are only visible to people you trust. This step takes minutes but significantly limits exposure.</p><h2 id="coordinate-with-friends-and-family">Coordinate with friends and family</h2><p>Your friends and family can inadvertently expose you. <strong>Ask them not to share real-time updates if you're traveling together or post photos of your property if they're housesitting</strong>. </p><p>People often don't realize they're compromising your security by tagging you in posts or sharing location details.</p><h2 id="turn-off-automatic-location-tags">Turn off automatic location tags</h2><p>Disable geotagging in your social media settings entirely. On Instagram, <strong>this requires revoking access directly through your phone’s system settings under Privacy &amp; Security (iOS) or Apps (Android) </strong>rather than within the app itself. </p><p>Location sharing can unintentionally reveal your whereabouts even when you're not posting in real time. This is one of the easiest settings to overlook but also one of the most revealing.</p><h2 id="audit-your-digital-footprint">Audit your digital footprint</h2><p>Search for yourself online periodically to see what personal details are publicly accessible, and remove anything that compromises your privacy. <strong>Pay special attention to old social media posts containing house numbers, street signs, car license plates, or identifiable landmarks</strong>. </p><p>If you want to take action right now, I have a step-by-step walkthrough covering <a href="https://www.tomsguide.com/computing/online-security/your-personal-information-is-everywhere-online-5-ways-to-start-removing-it">5 ways to start removing your personal information from the internet</a>. You should also check out <a href="https://www.tomsguide.com/phones/how-to-stop-google-maps-from-displaying-your-home-to-strangers">how to blur your home in Google Maps Street View</a>.</p><h2 id="combine-digital-caution-with-home-security">Combine digital caution with home security</h2><p>Beyond digital precautions, pair online caution with classic home security measures. <strong>Set light timers to create the appearance someone's home, test all locks, arm your alarm system, and ask a neighbor to collect post and manage bins </strong>so the house looks lived-in. </p><p>Ensure your home insurance policy covers the duration of your trip and review any conditions that apply while your property is unoccupied.</p><p>This investigation raises important questions about privacy in the digital age. Have you changed your social media habits? What's your biggest concern about your digital footprint? Share your thoughts in the comments below.</p><p>For a complete breakdown of Compare the Market's methodology and findings, read the full <a href="https://www.comparethemarket.com/home-insurance/the-online-safety-experiment/" target="_blank">Online Safety Study here.</a></p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide </span></h3><ul><li><strong></strong><a href="https://www.tomsguide.com/computing/social-media/metas-new-ai-tool-uses-your-instagram-photos-by-default-heres-how-to-opt-out"><strong>Meta's new AI tool uses your Instagram photos by default — here’s how to opt out</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/ai/ai-image-video/all-she-did-was-change-the-face-i-spoke-to-a-creator-whose-video-was-stolen-and-reskinned-with-ai"><strong>Inside the dark market stealing real identities online</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/computing/social-media/instagrams-new-instants-feature-is-driving-users-crazy-heres-how-to-disable-it"><strong>Instagram's 'instants' feature is driving users crazy. Here's how to disable it</strong></a><strong></strong></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/social-media/your-private-instagram-profile-may-not-hide-as-much-as-you-think-heres-what-an-investigation-found</link>
                                                                            <description>
                            <![CDATA[ Even with a private Instagram account, a new investigation demonstrates how easily your personal information can be reconstructed. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">XNrepozpdpU95AL7jEYupZ</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/jPZiwUxvsgL5bSjBsCdCvB-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 26 Aug 2026 07:30:00 +0000</pubDate>                                                                                                                                <updated>Wed, 26 Aug 2026 14:03:03 +0000</updated>
                                                                                                                                            <category><![CDATA[Social Media]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Internet]]></category>
                                                                                                <author><![CDATA[ kaycee.hill@futurenet.com (Kaycee Hill) ]]></author>                    <dc:creator><![CDATA[ Kaycee Hill ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/xHn6RmpEqg87cvtLwrBu9G-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/jPZiwUxvsgL5bSjBsCdCvB-1920-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Instagram app logo on a phone display]]></media:description>                                                            <media:text><![CDATA[Instagram app logo on a phone display]]></media:text>
                                <media:title type="plain"><![CDATA[Instagram app logo on a phone display]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/jPZiwUxvsgL5bSjBsCdCvB-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Privacy concerns around social media have escalated significantly in recent years, with users increasingly cautious about what they share online. </p><p>A new experiment by <a href="https://www.comparethemarket.com/home-insurance/" target="_blank">Compare the Market</a> tested exactly how much information can actually be hidden when you set your Instagram to private. The results are sobering. </p><p>A licensed investigator was tasked with locating the home addresses of nine volunteers using only publicly available information. </p><p>Despite four of them having private Instagram profiles, the investigator identified the addresses of seven out of nine. The fastest was located in just 15 minutes, with the first lead found in 50 seconds.</p><h2 id="what-the-investigation-revealed">What the investigation revealed</h2><p>Colin Crowden, Intelligence Director at <a href="https://globalprotectrisk.com/">Global Protect</a> and an Open-Source Intelligence expert, conducted the investigation. What he discovered challenges the assumption that private accounts provide adequate protection. </p><p>Beyond identifying addresses, the investigation uncovered four complete property plans revealing internal home layouts. In one particularly concerning finding, Crowden established that a volunteer was away on holiday, confirming their property was unoccupied. </p><p>The speed at which information was gathered highlights a critical vulnerability. Information shared by friends and family, location tags from previous posts, property details visible in photos, and data from other online sources all contribute to a broader picture. </p><p>Crowden explains the issue clearly: "Information that appears harmless in isolation can become much more revealing when viewed alongside other publicly available information. This isn't about any one post creating a security risk; it's about how different pieces of information can build up over time."</p><h2 id="why-your-private-account-isn-39-t-enough">Why your private account isn't enough</h2><p>The experiment demonstrates that privacy settings alone offer incomplete protection. Even if your Instagram is private, tagged photos from friends, public check-ins, or incidental details in backgrounds can expose your location and home information. </p><p>The investigation reveals that the combination of data sources, not any single post, creates the vulnerability. Compare the Market's home insurance expert Helen Phipps worked with Crowden to develop concrete recommendations for reducing your digital footprint. </p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-exVnJO"></div>                            </div>                            <script src="https://kwizly.com/embed/exVnJO.js" async=""></script><h3 class="article-body__section" id="section-practical-steps-to-protect-yourself"><span>Practical steps to protect yourself </span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="AotcNKj6nhSo7ryq2Pw9iY" name="shutterstock_2377182091-16x9" alt="A person looking at a phone with a digital warning sign over it" src="https://cdn.mos.cms.futurecdn.net/v2/w:1920,t:0,l:0,cw:2000,ch:1125,q:80/AotcNKj6nhSo7ryq2Pw9iY.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><h2 id="wait-until-you-39-re-home-to-post">Wait until you're home to post</h2><p>If possible, <strong>wait until you're home before posting holiday photos</strong> rather than sharing in real time. This prevents anyone from knowing your property is unoccupied. If you do post while away, <strong>avoid revealing exactly where you are or how long you'll be away for</strong>.</p><h2 id="review-your-privacy-settings-before-you-travel">Review your privacy settings before you travel</h2><p>Check who can see your posts, stories, and tagged content. <strong>Consider setting your accounts to private and reviewing your followers</strong> so that holiday updates are only visible to people you trust. This step takes minutes but significantly limits exposure.</p><h2 id="coordinate-with-friends-and-family">Coordinate with friends and family</h2><p>Your friends and family can inadvertently expose you. <strong>Ask them not to share real-time updates if you're traveling together or post photos of your property if they're housesitting</strong>. </p><p>People often don't realize they're compromising your security by tagging you in posts or sharing location details.</p><h2 id="turn-off-automatic-location-tags">Turn off automatic location tags</h2><p>Disable geotagging in your social media settings entirely. On Instagram, <strong>this requires revoking access directly through your phone’s system settings under Privacy &amp; Security (iOS) or Apps (Android) </strong>rather than within the app itself. </p><p>Location sharing can unintentionally reveal your whereabouts even when you're not posting in real time. This is one of the easiest settings to overlook but also one of the most revealing.</p><h2 id="audit-your-digital-footprint">Audit your digital footprint</h2><p>Search for yourself online periodically to see what personal details are publicly accessible, and remove anything that compromises your privacy. <strong>Pay special attention to old social media posts containing house numbers, street signs, car license plates, or identifiable landmarks</strong>. </p><p>If you want to take action right now, I have a step-by-step walkthrough covering <a href="https://www.tomsguide.com/computing/online-security/your-personal-information-is-everywhere-online-5-ways-to-start-removing-it">5 ways to start removing your personal information from the internet</a>. You should also check out <a href="https://www.tomsguide.com/phones/how-to-stop-google-maps-from-displaying-your-home-to-strangers">how to blur your home in Google Maps Street View</a>.</p><h2 id="combine-digital-caution-with-home-security">Combine digital caution with home security</h2><p>Beyond digital precautions, pair online caution with classic home security measures. <strong>Set light timers to create the appearance someone's home, test all locks, arm your alarm system, and ask a neighbor to collect post and manage bins </strong>so the house looks lived-in. </p><p>Ensure your home insurance policy covers the duration of your trip and review any conditions that apply while your property is unoccupied.</p><p>This investigation raises important questions about privacy in the digital age. Have you changed your social media habits? What's your biggest concern about your digital footprint? Share your thoughts in the comments below.</p><p>For a complete breakdown of Compare the Market's methodology and findings, read the full <a href="https://www.comparethemarket.com/home-insurance/the-online-safety-experiment/" target="_blank">Online Safety Study here.</a></p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide </span></h3><ul><li><strong></strong><a href="https://www.tomsguide.com/computing/social-media/metas-new-ai-tool-uses-your-instagram-photos-by-default-heres-how-to-opt-out"><strong>Meta's new AI tool uses your Instagram photos by default — here’s how to opt out</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/ai/ai-image-video/all-she-did-was-change-the-face-i-spoke-to-a-creator-whose-video-was-stolen-and-reskinned-with-ai"><strong>Inside the dark market stealing real identities online</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/computing/social-media/instagrams-new-instants-feature-is-driving-users-crazy-heres-how-to-disable-it"><strong>Instagram's 'instants' feature is driving users crazy. Here's how to disable it</strong></a><strong></strong></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Have you been 'Flocked'? Here's how to look up automatic license plate readers in your area ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Automated license plate readers (<a href="https://www.tomsguide.com/computing/online-security/millions-at-risk-due-to-severe-security-flaw-in-license-plate-readers">ALPR</a>) manufactured by <a href="https://www.tomsguide.com/computing/online-security/flock-reportedly-planned-to-co-opt-uber-and-lyft-vehicles-to-expand-its-surveillance-network">Flock Safety</a> operate across tens of thousands of locations in nearly every U.S. state. </p><p>Mounted near intersections, neighborhood entrances, and main highways, these motion-activated systems capture high-resolution snapshots of passing traffic. The software logs license plate numbers, vehicle colors, make, and distinctive visual markers like roof racks or damage. </p><p>While law enforcement agencies cite the technology for helping solve active cases, privacy advocates raise concerns over continuous passive surveillance of everyday drivers. </p><p>Checking whether your daily commute passes through an active camera zone requires using public transparency tools, crowdsourced databases, and visual hardware checks. Here's where to start. </p><h2 id="curious-if-you-are-on-the-police-39-s-radar">Curious if you are on the police's radar?</h2><p>The independent transparency project <a href="https://haveibeenflocked.com/" target="_blank"><strong>Have I Been Flocked</strong></a> offers a rare, though limited, public window into automated surveillance by compiling official audit logs obtained through public records requests. </p><p>Where data is available, <strong>putting your license plate number into the site</strong> lets you check if participating law enforcement agencies have queried your specific vehicle. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1510px;"><p class="vanilla-image-block" style="padding-top:59.60%;"><img id="HSSwJGjKXKAvazap6fGTfn" name="How to check your license plate on Have I Been Flocked" alt="How to check your license plate on Have I Been Flocked" src="https://cdn.mos.cms.futurecdn.net/HSSwJGjKXKAvazap6fGTfn-1920-80.jpg" mos="" align="middle" fullscreen="" width="1510" height="900" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Keep in mind that coverage is far from comprehensive. It cannot show a real-time feed, nor does it log every time your car passes a camera. Instead, it exposes the historical paper trail left behind only when an officer manually searches your plate within a jurisdiction that has released its audit logs.</p><p>The platform also overlays crowdsourced camera maps and regional policy trends, helping to highlight local data retention habits and how agencies share access across city lines. </p><h2 id="you-don-39-t-have-to-wait-for-an-audit-log">You don't have to wait for an audit log</h2><p>While lookup sites rely on public records, community-driven maps offer a clearer picture of physical hardware placements. Volunteer-driven projects like <a href="https://deflock.org/" target="_blank"><strong>DeFlock</strong></a> map thousands of confirmed automated plate readers across interactive regional layouts.  </p><p>Inputting your home or work address displays verified device markers, often including field-of-view indicators that reveal which direction a camera faces. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1510px;"><p class="vanilla-image-block" style="padding-top:59.60%;"><img id="CzGviz3ZMjCSJA9nUV8Z3m" name="How to use FlockHopper" alt="How to use FlockHopper" src="https://cdn.mos.cms.futurecdn.net/CzGviz3ZMjCSJA9nUV8Z3m-1920-80.jpg" mos="" align="middle" fullscreen="" width="1510" height="900" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Meanwhile, privacy advocates and projects like <a href="https://dontgetflocked.com/" target="_blank"><strong>FlockHopper </strong></a>use this crowdsourced data to highlight heavy surveillance corridors and potential alternative routes, utility varies widely. </p><p>Because these platforms rely strictly on volunteer submissions, map coverage depends entirely on how active the privacy community is in your specific area.   </p><h2 id="see-what-your-town-or-city-39-s-cameras-are-doing">See what your town or city's cameras are doing </h2><p>Many city governments and police departments pull back the digital curtain by hosting dedicated <strong>Flock Safety Transparency Portals</strong> on their municipal websites. </p><p>By <strong>searching your town or city's name alongside "Flock transparency portal," you can unlock a live public dashboard</strong> detailing the exact number of active cameras in your area, and the searches undertaken. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1510px;"><p class="vanilla-image-block" style="padding-top:59.60%;"><img id="5jBLPAADTvbEpXBUnhQezf" name="Flock transparency portal" alt="Flock transparency portal" src="https://cdn.mos.cms.futurecdn.net/5jBLPAADTvbEpXBUnhQezf-1920-80.jpg" mos="" align="middle" fullscreen="" width="1510" height="900" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>These dashboards reveal the core settings of your local surveillance net. They show exactly whether your police department activates real-time hot-list alerts for missing persons and wanted vehicles, or if they restrict the technology strictly to retroactive evidence gathering after a crime has occurred.</p><p>While not every town chooses to make their dashboard public, a quick search is the fastest way to see how your community balances public safety with digital privacy.</p><h2 id="spotting-a-flock-camera-in-the-wild">Spotting a Flock camera in the wild </h2><p>While you can track placements via public records or crowdsourced maps, keeping your eyes on the road is the best way to spot unlisted or newly installed units. </p><p>Flock devices feature a distinct, minimalist design: <strong>a compact black rectangular box mounted roughly 8 to 12 feet high on light poles or dedicated metal posts</strong>. Each unit typically operates completely off-grid, equipped with a small, angled solar panel positioned directly above the main camera housing. </p><p>To spot them<strong>, look for lenses pointing sharply downward toward active traffic lanes </strong>rather than toward sidewalk pedestrian paths. They are built primarily to hunt for license plates and vehicle characteristics, not foot traffic.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-X7Av8W"></div>                            </div>                            <script src="https://kwizly.com/embed/X7Av8W.js" async=""></script><p>What’s your take on Flock cameras? Do you view them as essential public safety tools or an overreach on driver privacy? Let us know in the comments below.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide </span></h3><ul><li><strong></strong><a href="https://www.tomsguide.com/home/home-security/hidden-cameras-in-hotels-and-airbnbs-are-more-common-than-you-think-5-ways-to-protect-your-privacy"><strong>Hidden cameras in hotels and Airbnbs are more common than you think — 5 ways to protect your privacy</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/computing/online-security/is-your-personal-information-public-the-simple-step-to-securing-your-privacy-online"><strong>Is your personal information public? The simple step to securing your privacy online</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/home/home-security/your-security-cameras-are-in-the-wrong-spots-heres-how-to-fix-it"><strong>Your security cameras are in the wrong spots — here's how to fix it</strong></a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/vehicle-tech/evs/have-you-been-flocked-heres-how-to-look-up-automatic-license-plate-readers-in-your-area</link>
                                                                            <description>
                            <![CDATA[ Flock Safety cameras photograph millions of daily commutes. Here is how to look up camera locations and check if your license plate has been logged. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">cfFhXT6KVFSBX2fJRoYgQF</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/GNf2cBdjuKG4qKZENcaaiX-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 25 Aug 2026 07:00:00 +0000</pubDate>                                                                                                                                <updated>Tue, 25 Aug 2026 08:35:30 +0000</updated>
                                                                                                                                            <category><![CDATA[Online Security]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Internet]]></category>
                                                                                                <author><![CDATA[ kaycee.hill@futurenet.com (Kaycee Hill) ]]></author>                    <dc:creator><![CDATA[ Kaycee Hill ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/xHn6RmpEqg87cvtLwrBu9G-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/GNf2cBdjuKG4qKZENcaaiX-1920-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Flock camera ]]></media:description>                                                            <media:text><![CDATA[Flock camera ]]></media:text>
                                <media:title type="plain"><![CDATA[Flock camera ]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/GNf2cBdjuKG4qKZENcaaiX-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Automated license plate readers (<a href="https://www.tomsguide.com/computing/online-security/millions-at-risk-due-to-severe-security-flaw-in-license-plate-readers">ALPR</a>) manufactured by <a href="https://www.tomsguide.com/computing/online-security/flock-reportedly-planned-to-co-opt-uber-and-lyft-vehicles-to-expand-its-surveillance-network">Flock Safety</a> operate across tens of thousands of locations in nearly every U.S. state. </p><p>Mounted near intersections, neighborhood entrances, and main highways, these motion-activated systems capture high-resolution snapshots of passing traffic. The software logs license plate numbers, vehicle colors, make, and distinctive visual markers like roof racks or damage. </p><p>While law enforcement agencies cite the technology for helping solve active cases, privacy advocates raise concerns over continuous passive surveillance of everyday drivers. </p><p>Checking whether your daily commute passes through an active camera zone requires using public transparency tools, crowdsourced databases, and visual hardware checks. Here's where to start. </p><h2 id="curious-if-you-are-on-the-police-39-s-radar">Curious if you are on the police's radar?</h2><p>The independent transparency project <a href="https://haveibeenflocked.com/" target="_blank"><strong>Have I Been Flocked</strong></a> offers a rare, though limited, public window into automated surveillance by compiling official audit logs obtained through public records requests. </p><p>Where data is available, <strong>putting your license plate number into the site</strong> lets you check if participating law enforcement agencies have queried your specific vehicle. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1510px;"><p class="vanilla-image-block" style="padding-top:59.60%;"><img id="HSSwJGjKXKAvazap6fGTfn" name="How to check your license plate on Have I Been Flocked" alt="How to check your license plate on Have I Been Flocked" src="https://cdn.mos.cms.futurecdn.net/HSSwJGjKXKAvazap6fGTfn-1920-80.jpg" mos="" align="middle" fullscreen="" width="1510" height="900" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Keep in mind that coverage is far from comprehensive. It cannot show a real-time feed, nor does it log every time your car passes a camera. Instead, it exposes the historical paper trail left behind only when an officer manually searches your plate within a jurisdiction that has released its audit logs.</p><p>The platform also overlays crowdsourced camera maps and regional policy trends, helping to highlight local data retention habits and how agencies share access across city lines. </p><h2 id="you-don-39-t-have-to-wait-for-an-audit-log">You don't have to wait for an audit log</h2><p>While lookup sites rely on public records, community-driven maps offer a clearer picture of physical hardware placements. Volunteer-driven projects like <a href="https://deflock.org/" target="_blank"><strong>DeFlock</strong></a> map thousands of confirmed automated plate readers across interactive regional layouts.  </p><p>Inputting your home or work address displays verified device markers, often including field-of-view indicators that reveal which direction a camera faces. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1510px;"><p class="vanilla-image-block" style="padding-top:59.60%;"><img id="CzGviz3ZMjCSJA9nUV8Z3m" name="How to use FlockHopper" alt="How to use FlockHopper" src="https://cdn.mos.cms.futurecdn.net/CzGviz3ZMjCSJA9nUV8Z3m-1920-80.jpg" mos="" align="middle" fullscreen="" width="1510" height="900" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Meanwhile, privacy advocates and projects like <a href="https://dontgetflocked.com/" target="_blank"><strong>FlockHopper </strong></a>use this crowdsourced data to highlight heavy surveillance corridors and potential alternative routes, utility varies widely. </p><p>Because these platforms rely strictly on volunteer submissions, map coverage depends entirely on how active the privacy community is in your specific area.   </p><h2 id="see-what-your-town-or-city-39-s-cameras-are-doing">See what your town or city's cameras are doing </h2><p>Many city governments and police departments pull back the digital curtain by hosting dedicated <strong>Flock Safety Transparency Portals</strong> on their municipal websites. </p><p>By <strong>searching your town or city's name alongside "Flock transparency portal," you can unlock a live public dashboard</strong> detailing the exact number of active cameras in your area, and the searches undertaken. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1510px;"><p class="vanilla-image-block" style="padding-top:59.60%;"><img id="5jBLPAADTvbEpXBUnhQezf" name="Flock transparency portal" alt="Flock transparency portal" src="https://cdn.mos.cms.futurecdn.net/5jBLPAADTvbEpXBUnhQezf-1920-80.jpg" mos="" align="middle" fullscreen="" width="1510" height="900" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>These dashboards reveal the core settings of your local surveillance net. They show exactly whether your police department activates real-time hot-list alerts for missing persons and wanted vehicles, or if they restrict the technology strictly to retroactive evidence gathering after a crime has occurred.</p><p>While not every town chooses to make their dashboard public, a quick search is the fastest way to see how your community balances public safety with digital privacy.</p><h2 id="spotting-a-flock-camera-in-the-wild">Spotting a Flock camera in the wild </h2><p>While you can track placements via public records or crowdsourced maps, keeping your eyes on the road is the best way to spot unlisted or newly installed units. </p><p>Flock devices feature a distinct, minimalist design: <strong>a compact black rectangular box mounted roughly 8 to 12 feet high on light poles or dedicated metal posts</strong>. Each unit typically operates completely off-grid, equipped with a small, angled solar panel positioned directly above the main camera housing. </p><p>To spot them<strong>, look for lenses pointing sharply downward toward active traffic lanes </strong>rather than toward sidewalk pedestrian paths. They are built primarily to hunt for license plates and vehicle characteristics, not foot traffic.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-X7Av8W"></div>                            </div>                            <script src="https://kwizly.com/embed/X7Av8W.js" async=""></script><p>What’s your take on Flock cameras? Do you view them as essential public safety tools or an overreach on driver privacy? Let us know in the comments below.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide </span></h3><ul><li><strong></strong><a href="https://www.tomsguide.com/home/home-security/hidden-cameras-in-hotels-and-airbnbs-are-more-common-than-you-think-5-ways-to-protect-your-privacy"><strong>Hidden cameras in hotels and Airbnbs are more common than you think — 5 ways to protect your privacy</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/computing/online-security/is-your-personal-information-public-the-simple-step-to-securing-your-privacy-online"><strong>Is your personal information public? The simple step to securing your privacy online</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/home/home-security/your-security-cameras-are-in-the-wrong-spots-heres-how-to-fix-it"><strong>Your security cameras are in the wrong spots — here's how to fix it</strong></a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I don’t use AI to write my emails — here’s how I use it to manage my inbox instead ]]></title>
                                                                                                <dc:content><![CDATA[ <p>When my grandfather would write me while I was away at school, he would end each letter with, "It's been fun to visit with you for a few minutes." That's the way I still feel about any correspondance -- it's a way to visit with someone regardless of how quick or meaningless. <br /><br />And now that <a href="https://www.tomsguide.com/ai/claude-can-now-send-gmail-emails-heres-why-you-might-want-to-test-it-first">Claude can not only draft an email but send it</a>, I feel like that's just another AI feature I simply don't need.  However, I feel differently about everything surrounding that conversation.</p><p>There’s nothing personal about sorting newsletters, searching for a buried attachment or rereading a 20-message thread to work out what everyone decided. These are the jobs that could easily consume my day, and I’m more than happy to hand some of them to AI.</p><p>Features such as <a href="https://www.tomsguide.com/ai/gmails-biggest-update-in-20-years-5-ai-features-that-could-change-email-forever">Google’s AI Inbox and AI Overviews</a> in Gmail can identify priority messages, summarize conversations and answer questions about information scattered across multiple emails. I still write my own replies, but I spend much less time figuring out which ones I need to send.</p><p>Here are five ways AI can make your inbox easier to manage without writing a single email for you.</p><h2 id="1-show-you-what-needs-your-attention">1. Show you what needs your attention </h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="m7hfVGwtaCPDBmXJExuRoN" name="8 (78)" alt="AI Inbox for Gmail" src="https://cdn.mos.cms.futurecdn.net/m7hfVGwtaCPDBmXJExuRoN-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Google )</span></figcaption></figure><p>Most inboxes present every unread email as one more thing demanding your attention. A message from someone waiting on a decision can sit beside a sale announcement, an automated receipt and a newsletter you might read later.</p><p>Google’s <a href="https://www.tomsguide.com/ai/google-just-launched-a-new-ai-agent-that-runs-your-inbox-heres-what-cc-actually-does">AI Inbox</a> is designed to separate those signals. It surfaces top priorities and groups together topics you may need to catch up on, giving you a more focused starting point than a long chronological list.</p><p>This is particularly helpful when I return to my inbox after being away from it. Instead of opening messages one by one to see what happened, I can begin with the conversations Gmail has identified as important.</p><p>AI won’t always understand your priorities perfectly, so keep that in mind. A routine-looking message may matter because of the person who sent it or something discussed outside email. I still scan the rest of my inbox, but I no longer have to treat every unread message as equally urgent.</p><h2 id="2-summarize-a-long-email-thread">2. Summarize a long email thread </h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:800px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="V4mCk94thMGFbvLTKcXjeU" name="Gemini 3" alt="Gemini 3" src="https://cdn.mos.cms.futurecdn.net/V4mCk94thMGFbvLTKcXjeU-1920-80.gif" mos="" align="middle" fullscreen="" width="800" height="450" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Gemini)</span></figcaption></figure><p>Few things make me want to close Gmail faster than opening a thread with dozens of new replies.</p><p>Some messages repeat information from earlier in the conversation. Others branch into separate discussions, and the detail you need may be buried somewhere in the middle. By the time you reach the bottom, it’s easy to forget what prompted the exchange in the first place.</p><p>Gmail’s AI Overviews can summarize long conversations, pulling together the key points and recent replies. This gives me enough context to understand what the thread is about and where I should start reading.</p><p>I don’t rely on the summary when I need an exact quote, firm deadline or final decision. AI can miss a qualification or flatten a disagreement between two people into a cleaner consensus than the thread supports. For anything consequential, I go back to the original messages.</p><p>The summary still saves time because it directs me to the parts of the conversation that need closer attention.</p><h2 id="3-find-an-email-when-you-can-t-remember-the-keywords">3. Find an email when you can’t remember the keywords </h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1000px;"><p class="vanilla-image-block" style="padding-top:57.10%;"><img id="2UYaa7Q5trwrK9dQWCeHQF" name="gmail-magnify-shst.jpg" alt="The Gmail logo on a computer screen under a magnifying glass." src="https://cdn.mos.cms.futurecdn.net/2UYaa7Q5trwrK9dQWCeHQF-1920-80.jpg" mos="" align="middle" fullscreen="" width="1000" height="571" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: dennizn/Shutterstock)</span></figcaption></figure><p>This one is a life saver for me. With three kids, there is always a form or permission slip that I need to <em>not </em>miss. And while traditional search works when you know what you're searching for, sometimes all I have is a date or name. Unfortunately, that isn’t usually how I remember email.</p><p>I may remember that someone recommended an app or sent me a meeting date without recalling who said it. Sometimes I know an attachment arrived but have no idea what the file was called. That can lead to several rounds of searching with slightly different keywords.</p><p>AI search allows you to describe the information instead. In Gmail, you can ask a natural-language question, and Gemini can use relevant messages to generate an answer or surface the conversations containing it.</p><p>You might ask, “What date did we agree on for the interview?” or “Who sent me information about the new subscription?” The wording doesn’t have to match the original email.</p><p>As with summaries, I open the source message before using the information. The advantage is reaching it without having to remember how someone phrased the subject line three weeks ago.</p><h2 id="4-pull-out-action-items-and-deadlines">4. Pull out action items and deadlines </h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="vDN94fdQ2GNwBAQeWtL8p6" name="8 (77)" alt="AI Overviews in Gmail" src="https://cdn.mos.cms.futurecdn.net/vDN94fdQ2GNwBAQeWtL8p6-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Google)</span></figcaption></figure><p>An email doesn’t need to contain the words “action item” to give you something else to do.</p><p>A request may appear at the end of a long update. Someone might mention a deadline in passing or ask a question halfway through a message covering several unrelated subjects. Read it too quickly and the request disappears beneath everything that arrived afterward. That drives me crazy! However, AI can scan a conversation for outstanding questions, dates and tasks. You can ask Gemini which messages require a response, what you agreed to send or whether a thread contains an upcoming deadline.</p><p>This is one of the most useful ways to catch up after a busy stretch. I’d never treat that picture as a definitive to-do list. A missed deadline matters far more than a few saved minutes, so I check the original messages before adding anything to my calendar. AI acts as a second pass, catching details that could otherwise remain buried.</p><h2 id="5-bring-related-conversations-together">5. Bring related conversations together </h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ozvtEUJq43CwooQ9MhEPa4" name="Woman typing on iPhone.jpg" alt="A woman holding an iPhone near an iPad" src="https://cdn.mos.cms.futurecdn.net/ozvtEUJq43CwooQ9MhEPa4-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>One project rarely stays inside one neat email thread. The initial discussion may have one subject line, the scheduling conversation another and the follow-up a third. Add several participants and forwarded messages, and the information becomes scattered across your inbox.</p><p>AI can identify relationships between those conversations even when they don’t share the same wording. Instead of opening one thread and searching separately for the rest, you can ask for the latest information about a topic or project.</p><p> AI can work with the inbox I actually have, including the conversations I forgot to file correctly.</p><p>It still requires oversight. Two projects may have similar names, or the same person may email you about unrelated subjects. I check which messages informed an answer before assuming AI has assembled the right set.</p><h2 id="bottom-line-i-want-ai-handling-the-clutter-not-the-conversation">Bottom line: I want AI handling the clutter, not the conversation </h2><p>AI-generated replies will probably become harder to avoid as email providers place them directly beneath our messages. For some people, they remove the stress of writing and make communication faster. I understand the appeal.</p><p>They just aren’t the feature I need. Choosing my own words takes a little longer, but it preserves the reason for sending an email in the first place. The administrative work surrounding that exchange is where I’m happy to save time.</p><p>Do you use AI to save time with your inbox? Let me know in the comments. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/google-gemini/5-gemini-features-chatgpt-still-cant-match"><strong>5 Gemini features ChatGPT still can’t match</strong></a></li><li><a href="https://www.tomsguide.com/ai/meta-files-patent-for-ai-camera-glasses-that-use-facial-recognition-expression-analysis-and-information-about-your-relationships-to-identify-people-around-you-and-create-highlights"><strong>Meta files patent for AI facial recognition glasses that identify people around you and record automatically</strong></a></li><li><a href="https://www.tomsguide.com/ai/claude/5-features-that-give-claude-the-edge-over-chatgpt"><strong>5 features that give Claude the edge over ChatGPT</strong></a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/ai/i-dont-use-ai-to-write-my-emails-heres-how-i-use-it-to-manage-my-inbox-instead</link>
                                                                            <description>
                            <![CDATA[ Discover five ways AI can organize your inbox, summarize long threads and find buried messages without writing your emails for you. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">sTvEQhST4cHFA8gTAhjCSY</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/CUsJfx4ZxhsmotgspP3qqX-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 20 Aug 2026 05:00:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[AI]]></category>
                                                    <category><![CDATA[Email]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Internet]]></category>
                                                                                                <author><![CDATA[ amanda.caswell@futurenet.com (Amanda Caswell) ]]></author>                    <dc:creator><![CDATA[ Amanda Caswell ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/zYjevim2q7FjQiefqpjZRB-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/CUsJfx4ZxhsmotgspP3qqX-1920-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A smartphone with the Gmail logo on it resting on top of a computer keyboard.]]></media:description>                                                            <media:text><![CDATA[A smartphone with the Gmail logo on it resting on top of a computer keyboard.]]></media:text>
                                <media:title type="plain"><![CDATA[A smartphone with the Gmail logo on it resting on top of a computer keyboard.]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/CUsJfx4ZxhsmotgspP3qqX-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>When my grandfather would write me while I was away at school, he would end each letter with, "It's been fun to visit with you for a few minutes." That's the way I still feel about any correspondance -- it's a way to visit with someone regardless of how quick or meaningless. <br /><br />And now that <a href="https://www.tomsguide.com/ai/claude-can-now-send-gmail-emails-heres-why-you-might-want-to-test-it-first">Claude can not only draft an email but send it</a>, I feel like that's just another AI feature I simply don't need.  However, I feel differently about everything surrounding that conversation.</p><p>There’s nothing personal about sorting newsletters, searching for a buried attachment or rereading a 20-message thread to work out what everyone decided. These are the jobs that could easily consume my day, and I’m more than happy to hand some of them to AI.</p><p>Features such as <a href="https://www.tomsguide.com/ai/gmails-biggest-update-in-20-years-5-ai-features-that-could-change-email-forever">Google’s AI Inbox and AI Overviews</a> in Gmail can identify priority messages, summarize conversations and answer questions about information scattered across multiple emails. I still write my own replies, but I spend much less time figuring out which ones I need to send.</p><p>Here are five ways AI can make your inbox easier to manage without writing a single email for you.</p><h2 id="1-show-you-what-needs-your-attention">1. Show you what needs your attention </h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="m7hfVGwtaCPDBmXJExuRoN" name="8 (78)" alt="AI Inbox for Gmail" src="https://cdn.mos.cms.futurecdn.net/m7hfVGwtaCPDBmXJExuRoN-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Google )</span></figcaption></figure><p>Most inboxes present every unread email as one more thing demanding your attention. A message from someone waiting on a decision can sit beside a sale announcement, an automated receipt and a newsletter you might read later.</p><p>Google’s <a href="https://www.tomsguide.com/ai/google-just-launched-a-new-ai-agent-that-runs-your-inbox-heres-what-cc-actually-does">AI Inbox</a> is designed to separate those signals. It surfaces top priorities and groups together topics you may need to catch up on, giving you a more focused starting point than a long chronological list.</p><p>This is particularly helpful when I return to my inbox after being away from it. Instead of opening messages one by one to see what happened, I can begin with the conversations Gmail has identified as important.</p><p>AI won’t always understand your priorities perfectly, so keep that in mind. A routine-looking message may matter because of the person who sent it or something discussed outside email. I still scan the rest of my inbox, but I no longer have to treat every unread message as equally urgent.</p><h2 id="2-summarize-a-long-email-thread">2. Summarize a long email thread </h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:800px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="V4mCk94thMGFbvLTKcXjeU" name="Gemini 3" alt="Gemini 3" src="https://cdn.mos.cms.futurecdn.net/V4mCk94thMGFbvLTKcXjeU-1920-80.gif" mos="" align="middle" fullscreen="" width="800" height="450" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Gemini)</span></figcaption></figure><p>Few things make me want to close Gmail faster than opening a thread with dozens of new replies.</p><p>Some messages repeat information from earlier in the conversation. Others branch into separate discussions, and the detail you need may be buried somewhere in the middle. By the time you reach the bottom, it’s easy to forget what prompted the exchange in the first place.</p><p>Gmail’s AI Overviews can summarize long conversations, pulling together the key points and recent replies. This gives me enough context to understand what the thread is about and where I should start reading.</p><p>I don’t rely on the summary when I need an exact quote, firm deadline or final decision. AI can miss a qualification or flatten a disagreement between two people into a cleaner consensus than the thread supports. For anything consequential, I go back to the original messages.</p><p>The summary still saves time because it directs me to the parts of the conversation that need closer attention.</p><h2 id="3-find-an-email-when-you-can-t-remember-the-keywords">3. Find an email when you can’t remember the keywords </h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1000px;"><p class="vanilla-image-block" style="padding-top:57.10%;"><img id="2UYaa7Q5trwrK9dQWCeHQF" name="gmail-magnify-shst.jpg" alt="The Gmail logo on a computer screen under a magnifying glass." src="https://cdn.mos.cms.futurecdn.net/2UYaa7Q5trwrK9dQWCeHQF-1920-80.jpg" mos="" align="middle" fullscreen="" width="1000" height="571" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: dennizn/Shutterstock)</span></figcaption></figure><p>This one is a life saver for me. With three kids, there is always a form or permission slip that I need to <em>not </em>miss. And while traditional search works when you know what you're searching for, sometimes all I have is a date or name. Unfortunately, that isn’t usually how I remember email.</p><p>I may remember that someone recommended an app or sent me a meeting date without recalling who said it. Sometimes I know an attachment arrived but have no idea what the file was called. That can lead to several rounds of searching with slightly different keywords.</p><p>AI search allows you to describe the information instead. In Gmail, you can ask a natural-language question, and Gemini can use relevant messages to generate an answer or surface the conversations containing it.</p><p>You might ask, “What date did we agree on for the interview?” or “Who sent me information about the new subscription?” The wording doesn’t have to match the original email.</p><p>As with summaries, I open the source message before using the information. The advantage is reaching it without having to remember how someone phrased the subject line three weeks ago.</p><h2 id="4-pull-out-action-items-and-deadlines">4. Pull out action items and deadlines </h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="vDN94fdQ2GNwBAQeWtL8p6" name="8 (77)" alt="AI Overviews in Gmail" src="https://cdn.mos.cms.futurecdn.net/vDN94fdQ2GNwBAQeWtL8p6-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Google)</span></figcaption></figure><p>An email doesn’t need to contain the words “action item” to give you something else to do.</p><p>A request may appear at the end of a long update. Someone might mention a deadline in passing or ask a question halfway through a message covering several unrelated subjects. Read it too quickly and the request disappears beneath everything that arrived afterward. That drives me crazy! However, AI can scan a conversation for outstanding questions, dates and tasks. You can ask Gemini which messages require a response, what you agreed to send or whether a thread contains an upcoming deadline.</p><p>This is one of the most useful ways to catch up after a busy stretch. I’d never treat that picture as a definitive to-do list. A missed deadline matters far more than a few saved minutes, so I check the original messages before adding anything to my calendar. AI acts as a second pass, catching details that could otherwise remain buried.</p><h2 id="5-bring-related-conversations-together">5. Bring related conversations together </h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ozvtEUJq43CwooQ9MhEPa4" name="Woman typing on iPhone.jpg" alt="A woman holding an iPhone near an iPad" src="https://cdn.mos.cms.futurecdn.net/ozvtEUJq43CwooQ9MhEPa4-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>One project rarely stays inside one neat email thread. The initial discussion may have one subject line, the scheduling conversation another and the follow-up a third. Add several participants and forwarded messages, and the information becomes scattered across your inbox.</p><p>AI can identify relationships between those conversations even when they don’t share the same wording. Instead of opening one thread and searching separately for the rest, you can ask for the latest information about a topic or project.</p><p> AI can work with the inbox I actually have, including the conversations I forgot to file correctly.</p><p>It still requires oversight. Two projects may have similar names, or the same person may email you about unrelated subjects. I check which messages informed an answer before assuming AI has assembled the right set.</p><h2 id="bottom-line-i-want-ai-handling-the-clutter-not-the-conversation">Bottom line: I want AI handling the clutter, not the conversation </h2><p>AI-generated replies will probably become harder to avoid as email providers place them directly beneath our messages. For some people, they remove the stress of writing and make communication faster. I understand the appeal.</p><p>They just aren’t the feature I need. Choosing my own words takes a little longer, but it preserves the reason for sending an email in the first place. The administrative work surrounding that exchange is where I’m happy to save time.</p><p>Do you use AI to save time with your inbox? Let me know in the comments. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/google-gemini/5-gemini-features-chatgpt-still-cant-match"><strong>5 Gemini features ChatGPT still can’t match</strong></a></li><li><a href="https://www.tomsguide.com/ai/meta-files-patent-for-ai-camera-glasses-that-use-facial-recognition-expression-analysis-and-information-about-your-relationships-to-identify-people-around-you-and-create-highlights"><strong>Meta files patent for AI facial recognition glasses that identify people around you and record automatically</strong></a></li><li><a href="https://www.tomsguide.com/ai/claude/5-features-that-give-claude-the-edge-over-chatgpt"><strong>5 features that give Claude the edge over ChatGPT</strong></a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ New iOS 26 and macOS Tahoe updates fix 30 security vulnerabilities: what you need to know ]]></title>
                                                                                                <dc:content><![CDATA[ <p>Apple just dropped security updates for iOS 26.6.1, iPadOS 26.6.1 and macOS Tahoe 26.6.2 that fixe nearly 30 vulnerabilities according to a <a href="https://support.apple.com/en-us/148282" target="_blank">support document</a>. The surprising thing about this update is that it's the third security release in as many weeks. </p><p>Earlier this month, <a href="https://www.ft.com/content/4532122d-90f2-4433-9df6-ca99d8a141d2" target="_blank">The Financial Times reported</a> that AI is surfacing bugs faster than Apple's normal update release schedule can handle.</p><p>Per Apple, this update includes fixes that were already added to the <a href="https://www.tomsguide.com/phones/iphones/ios-27-beta-5-adds-new-app-icons-more-siri-voices-improved-search-and-more-everything-thats-changed">iOS 27 beta</a>, <a href="https://www.tomsguide.com/computing/ipads/ipados-27-public-beta">iPadOS 27</a> beta and <a href="https://www.tomsguide.com/computing/macos/macos-golden-gate-public-beta-hands-on-preview">macOS Golden Gate betas</a> that are currently running.</p><h2 id="close-to-30-vulnerabilities">Close to 30 vulnerabilities</h2><p>A majority of the vulnerabilities are related to <a href="https://www.tomsguide.com/computing/online-security/time-to-update-your-iphone-apple-patches-two-ios-zero-days-used-in-the-wild-by-hackers">WebKit</a> and flaws that affected Safari. Simply accessing "maliciously crafted web content" could cause Safari to crash. These crashes came from memory handling issues, input validation, and processing states. </p><p>The other fixes include an audio vulnerability that could allow an app to leak sensitive information, an image flaw that could allow for random code execution, and a trio of kernel vulnerabilities.</p><p>For iOS specifically, Apple addressed a telephony bug that could allow a bad actor in a privileged network to bypass IPSec authentication and intercept your network traffic.</p><p>Interestingly, of the vulnerabilities outlined, 21 are WebKit-related, and nine are credited to OpenAI's Codex Security. </p><h2 id="stay-safe-and-update">Stay safe and update</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1000px;"><p class="vanilla-image-block" style="padding-top:56.30%;"><img id="F9ybS7WNwSK95hqxotZgYM" name="apple shutterstock.jpg" alt="A padlock resting next to the Apple logo on the lid of a gold-colored Apple laptop." src="https://cdn.mos.cms.futurecdn.net/F9ybS7WNwSK95hqxotZgYM-1920-80.jpg" mos="" align="middle" fullscreen="" width="1000" height="563" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: robert coolen/Shutterstock)</span></figcaption></figure><p>According to Apple, none of the vulnerabilities in today's listing are known to have been exploited in the wild yet. Still, you'll want to update to the latest version as soon as possible since bad actors could start targeting those flaws.</p><p>As such, we recommend you update to the newest versions as soon as possible, especially with all of these vulnerabilities being found so quickly.</p><p>For devices that can't run iOS 26 or iPad OS 26, Apple also released iOS 18.7.10 and iPadOS 18.7.10 so older devices can receive the same support and protection.</p><p>You can install the updates via the Settings app by tapping General and selecting Software Update.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><strong></strong><a href="https://www.tomsguide.com/phones/iphones/apple-iphone-18-event-all-the-new-products-expected-to-launch-in-september"><strong>Apple iPhone 18 event — all the new products expected to launch in September</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/sales-events/15-apple-deals-students-should-snap-up-on-amazon-save-on-macbook-air-m5-airpods-ipads-and-accessories"><strong>15 Apple deals students should snap up on Amazon — save on MacBook Air M5, AirPods, iPads and accessories</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/phones/iphones/iphone-ultra-leakers-reveal-new-details-around-release-and-extremely-limited-availability"><strong>iPhone Ultra leakers reveal new details around release and 'extremely limited' availability</strong></a><strong></strong></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/online-security/new-ios-26-and-macos-tahoe-updates-fix-30-security-vulnerabilities-what-you-need-to-know</link>
                                                                            <description>
                            <![CDATA[ The latest Apple security updates fix more than 30 vulnerabilities for iOS  26 and macOS Tahoe. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">qfXm7dtFK2pumhziRukbjV</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/DguAUCVDyTf6UDjiBECbz8-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 18 Aug 2026 20:29:55 +0000</pubDate>                                                                                                                                <updated>Tue, 18 Aug 2026 20:36:45 +0000</updated>
                                                                                                                                            <category><![CDATA[Online Security]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Internet]]></category>
                                                                                                <author><![CDATA[ scott.younker@futurenet.com (Scott Younker) ]]></author>                    <dc:creator><![CDATA[ Scott Younker ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/RZsUpqcJ6Uj2q83oCUwNhQ-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Scott Younker is the West Coast Reporter at Tom’s Guide. He covers all the latest tech news, including phones, computing and more. He’s been involved in tech since 2011 covering everything from cameras and swimming pool equipment to the latest gaming consoles and smart TVs. He is on a seemingly never ending hunt to build the easiest to use home media system. &lt;/p&gt;&lt;p&gt;Before Tom’s Guide, Scott worked for publications like &lt;em&gt;Digital Trends, Outdoor Photographer, Dead Beats Panel&lt;/em&gt;, and in a brief detour, &lt;em&gt;America’s Funniest Home Videos&lt;/em&gt;. Yes, he has seen more pratfalls, silly pets and ridiculous home movie fails than is reasonably healthy. &lt;/p&gt;&lt;p&gt;When not writing about the latest devices or advances in chipsets, be sure to ask about Scott about disc golf and sustainability, or just if you’re being cheeky, ask about his noodle arm. If you truly want to get nerdy, bring up board games and his ongoing losing streak. &lt;/p&gt;&lt;p&gt;Scott joined Tom&#039;s Guide in 2024 as the West Coast Reporter. He graduated from the School of Journalism at the University of Oregon with a degree in magazine journalism and a minor in communications. While there he blogged or wrote for several magazines including the Fluxx, Ethos and the Oregon Commentator. He briefly wrote and managed a moderately successful blog focused on web comics. &lt;br&gt;Send secure tips on Signal: scyo1.55.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/DguAUCVDyTf6UDjiBECbz8-1920-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Guide / John Velasco]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[iPhone 17 Pro review.]]></media:description>                                                            <media:text><![CDATA[iPhone 17 Pro review.]]></media:text>
                                <media:title type="plain"><![CDATA[iPhone 17 Pro review.]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/DguAUCVDyTf6UDjiBECbz8-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Apple just dropped security updates for iOS 26.6.1, iPadOS 26.6.1 and macOS Tahoe 26.6.2 that fixe nearly 30 vulnerabilities according to a <a href="https://support.apple.com/en-us/148282" target="_blank">support document</a>. The surprising thing about this update is that it's the third security release in as many weeks. </p><p>Earlier this month, <a href="https://www.ft.com/content/4532122d-90f2-4433-9df6-ca99d8a141d2" target="_blank">The Financial Times reported</a> that AI is surfacing bugs faster than Apple's normal update release schedule can handle.</p><p>Per Apple, this update includes fixes that were already added to the <a href="https://www.tomsguide.com/phones/iphones/ios-27-beta-5-adds-new-app-icons-more-siri-voices-improved-search-and-more-everything-thats-changed">iOS 27 beta</a>, <a href="https://www.tomsguide.com/computing/ipads/ipados-27-public-beta">iPadOS 27</a> beta and <a href="https://www.tomsguide.com/computing/macos/macos-golden-gate-public-beta-hands-on-preview">macOS Golden Gate betas</a> that are currently running.</p><h2 id="close-to-30-vulnerabilities">Close to 30 vulnerabilities</h2><p>A majority of the vulnerabilities are related to <a href="https://www.tomsguide.com/computing/online-security/time-to-update-your-iphone-apple-patches-two-ios-zero-days-used-in-the-wild-by-hackers">WebKit</a> and flaws that affected Safari. Simply accessing "maliciously crafted web content" could cause Safari to crash. These crashes came from memory handling issues, input validation, and processing states. </p><p>The other fixes include an audio vulnerability that could allow an app to leak sensitive information, an image flaw that could allow for random code execution, and a trio of kernel vulnerabilities.</p><p>For iOS specifically, Apple addressed a telephony bug that could allow a bad actor in a privileged network to bypass IPSec authentication and intercept your network traffic.</p><p>Interestingly, of the vulnerabilities outlined, 21 are WebKit-related, and nine are credited to OpenAI's Codex Security. </p><h2 id="stay-safe-and-update">Stay safe and update</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1000px;"><p class="vanilla-image-block" style="padding-top:56.30%;"><img id="F9ybS7WNwSK95hqxotZgYM" name="apple shutterstock.jpg" alt="A padlock resting next to the Apple logo on the lid of a gold-colored Apple laptop." src="https://cdn.mos.cms.futurecdn.net/F9ybS7WNwSK95hqxotZgYM-1920-80.jpg" mos="" align="middle" fullscreen="" width="1000" height="563" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: robert coolen/Shutterstock)</span></figcaption></figure><p>According to Apple, none of the vulnerabilities in today's listing are known to have been exploited in the wild yet. Still, you'll want to update to the latest version as soon as possible since bad actors could start targeting those flaws.</p><p>As such, we recommend you update to the newest versions as soon as possible, especially with all of these vulnerabilities being found so quickly.</p><p>For devices that can't run iOS 26 or iPad OS 26, Apple also released iOS 18.7.10 and iPadOS 18.7.10 so older devices can receive the same support and protection.</p><p>You can install the updates via the Settings app by tapping General and selecting Software Update.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><strong></strong><a href="https://www.tomsguide.com/phones/iphones/apple-iphone-18-event-all-the-new-products-expected-to-launch-in-september"><strong>Apple iPhone 18 event — all the new products expected to launch in September</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/sales-events/15-apple-deals-students-should-snap-up-on-amazon-save-on-macbook-air-m5-airpods-ipads-and-accessories"><strong>15 Apple deals students should snap up on Amazon — save on MacBook Air M5, AirPods, iPads and accessories</strong></a><strong></strong></li><li><strong></strong><a href="https://www.tomsguide.com/phones/iphones/iphone-ultra-leakers-reveal-new-details-around-release-and-extremely-limited-availability"><strong>iPhone Ultra leakers reveal new details around release and 'extremely limited' availability</strong></a><strong></strong></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I read all 233 pages of Meta’s $1.4 trillion lawsuit — here’s why Facebook and Instagram may never be the same ]]></title>
                                                                                                <dc:content><![CDATA[ <p>A massive jury trial against Meta is beginning today that could change the face of social media forever with a potential financial death penalty of $1.4 trillion on the line.</p><p>When a tech giant is put on trial, the public is usually conditioned to expect a lengthy battle that ends in a quiet settlement, written off as just the cost of doing business. But this is entirely different.</p><p>That’s because after the lawsuit was filed by 30 U.S. states in 2023, including California and New York, governments are finally taking action in saying the “attention economy” is a public hazard for children.</p><p>It’s not just an accusation of bad content policy, it is a direct assault on how Meta and social media as a whole works. Beyond that eye-watering figure, the states are demanding fundamental changes to how Instagram and Facebook operate — including killing the like button and infinite scroll.</p><p>Should Meta lose, this would be a massive tectonic shift. I’ve sifted through the entire <a href="https://oag.ca.gov/system/files/attachments/press-docs/FINAL%20Meta%20Multistate%20Complaint,%20N.D.%20Cal.%20(REDACTED,%20CONFORMED).pdf" target="_blank">case document</a> to break down the accusations, the demands, the evidence and what this will actually mean for you.</p><h2 class="article-body__section" id="section-the-hit-list-what-is-actually-changing"><span>The hit list (what is actually changing)</span></h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="mjMcVn3yy2PbCer4Gv4pAg" name="shutterstock_2066080460.jpg" alt="Meta logo on screen of mobile phone on Facebook word background. Facebook after rebranding and changing name to Meta." src="https://cdn.mos.cms.futurecdn.net/mjMcVn3yy2PbCer4Gv4pAg-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Viacheslav Lopatin | Shutterstock)</span></figcaption></figure><p>I’ll go into the specifics of the case itself in a little bit, but outside of that gigantic price tag, what would actually vanish from Meta’s apps if the company loses?</p><ul><li><strong>Death of infinite scroll &amp; autoplay: </strong>The states are demanding an end to the endless feed and autoplaying of content. These features are explicitly designed to maximize screen time, and losing them breaks the TikTok-style doomscroll in a fundamental way.</li><li><strong>The end of the like button: </strong>Another key dopamine hit that keeps teens hooked to their screens is the like count. The lawsuit is targeting this too — demanding an end to social validation metrics.</li><li><strong>No more algorithmic manipulation: </strong>The states want to see change to Meta’s “dopamine-manipulating recommendation algorithms.” This could mean a return to your standard chronological timelines by default.</li><li><strong>Notification lockdown: </strong>No more frequent push notifications designed to pull young people back into apps. You’ll see these pop up to stop young people from disengaging with a social platform.</li><li><strong>Killing stories &amp; filters: </strong>The states want an end to disappearing or “ephemeral” posts like Instagram Stories. On top of that, they’re demanding the removal of image filters that alter a user’s physical appearance in pictures.</li></ul><p>However, there is one broader, scarier implication for <em>everyone, </em>not just teenagers.</p><h2 id="the-death-of-the-finsta">The death of the “Finsta”</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3405px;"><p class="vanilla-image-block" style="padding-top:66.67%;"><img id="J4EEHYGRdoGNKryBLi9JEf" name="GettyImages-1086354750.jpg" alt="Instagram" src="https://cdn.mos.cms.futurecdn.net/J4EEHYGRdoGNKryBLi9JEf-1920-80.jpg" mos="" align="middle" fullscreen="" width="3405" height="2270" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: aap Arriens/NurPhoto via Getty Images)</span></figcaption></figure><p>The lawsuit isn’t just about tweaking algorithms; it’s demanding structural changes to how accounts are created. The states are demanding strict parental verification for teenagers and limits on multiple account creation.</p><p>For teens, this effectively kills the “Finsta” — a fake or secondary Instagram account used to hide from parents or public scrutiny), and to enforce this, platforms will need to know exactly who is holding the phone. That would spell the end of casual online anonymity.</p><h2 class="article-body__section" id="section-the-smoking-gun-could-meta-lose-this-case"><span>The smoking gun — could Meta lose this case?</span></h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:9375px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="d6qmGSnFFXo6yGiczVTtSb" name="shutterstock_2663776741-2" alt="mark zuckerberg" src="https://cdn.mos.cms.futurecdn.net/d6qmGSnFFXo6yGiczVTtSb-1920-80.jpg" mos="" align="middle" fullscreen="" width="9375" height="5273" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Obviously, I’m not going to claim myself to be some expert legal mind here. But I’ve been a tech journalist for over 15 years and witnessed a bunch of lawsuits, and some of the data points, internal admissions and quotes in this document seem pretty eye-opening.</p><h2 id="the-coppa-scandals">The COPPA Scandals:</h2><p>For over seven years (until December 2019), Instagram had no age gate at all. When Meta finally added one, the drop-down menu defaulted automatically to a date making the user exactly 13 years old — effectively showing kids the exact date to bypass the restriction.</p><p>Internal research cited in the filing revealed that 40% of children aged 9 to 12 use Instagram daily, and 45% use Facebook daily. This leads to the accusation that Meta viewed children aged 10 to 12 as a “valuable but untapped audience” that dedicated internal teams analyzed to target.</p><h2 id="the-founding-confession">The founding confession</h2><p>Sean Parker himself said that the thought process behind building Facebook and Instagram was all about “how do we consume as much of your time and conscious attention as possible?” </p><p>He called it a “social-validation feedback loop” that exploits “a vulnerability in human psychology,” which its creators all understood “consciously.”</p><h2 id="i-don-t-want-to-hear-it-about-underage-users">“I don’t want to hear it” about underage users</h2><p>This is what Head of Instagram Adam Mosseri apparently said when he was confronted with evidence that child star JoJo Siwa had been active on Instagram since age 8. </p><p>On top of that, Meta’s former director of site integrity Arturo Bejar testified that Zuckerberg knew about “harms that teenagers are experiencing in its product,” but are “choosing not to engage about it.”</p><h2 id="meta-s-own-internal-numbers">Meta’s own internal numbers</h2><p>The company ran a “Teen Mental Health Deep Dive” private survey that found:</p><ul><li>1 in 5 teens felt worse about themselves after using Instagram</li><li>24% reported feeling “not good enough because of the app”</li><li>67% felt forced to “create a perfect image online”</li><li>Over half admitted to struggling with severe FOMO (Fear of Missing Out)</li><li>14% of young users admitted to having thoughts of wanting to “hurt [or] kill themselves”</li></ul><h2 id="cynical-product-design-and-internal-teams">Cynical product design and internal teams</h2><p>The lawsuit pulls back the curtain on how Meta internally viewed user engagement — with the company reportedly operating an engineering group called the “Rabbithole team.” Their mission was clear: optimizing “preference amplification,” which is fancy wording for figuring out how to push users deeper down algorithmic rabbit holes.</p><p>Even when Meta rolled out “time management” tools like the Daily Limit to appease public critics, the lawsuit alleges they were designed to fail. Originally, the daily limit was 10 minutes, but once public scrutiny died down after the 2021 whistleblower leaks, Meta quietly raised that minimum to 30 minutes.</p><p>But perhaps most damning of all is that as early as 2017, Facebook’s own former VP for user growth publicly admitted he had banned his own children from using Facebook. Sometime after that, Meta simply disbanded its internal “Responsible Innovation” team.</p><h2 class="article-body__section" id="section-outlook-a-corporate-death-penalty"><span>Outlook: a corporate death penalty?</span></h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="kWfKU2NXkqQqgsozLXPWxX" name="Zuckerberg.GettyImages-2173579179" alt="Mark Zuckerberg at Meta AI event" src="https://cdn.mos.cms.futurecdn.net/kWfKU2NXkqQqgsozLXPWxX-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: David Paul Morris/Bloomberg via Getty Images)</span></figcaption></figure><p>The federal trial officially kicks off today in Oakland, California, with California, Colorado, Kentucky and New Jersey leading the charge.</p><p>But this trial isn’t just about the money. Because this is a consumer protection lawsuit rather than a personal injury case, the states are asking the judge to order sweeping changes to the platforms.</p><p>If Meta loses, we aren’t just looking at a massive fine. We are looking at court-mandated age restrictions, the deletion of algorithmic feeds for minors, and the permanent removal of the infinite scroll.</p><p>Win or lose, the curtain has been pulled back. The “attention economy” as we know it is officially on trial.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/meta-files-patent-for-ai-camera-glasses-that-use-facial-recognition-expression-analysis-and-information-about-your-relationships-to-identify-people-around-you-and-create-highlights">Meta files patent for AI facial recognition glasses that identify people around you and record automatically</a></li><li><a href="https://www.tomsguide.com/computing/macbooks/a-parents-guide-to-the-macbook-neo-is-apples-cheapest-laptop-a-back-to-school-trap">A parent’s guide to the MacBook Neo: is Apple’s cheapest laptop a back-to-school trap?</a></li><li><a href="https://www.tomsguide.com/ai/i-connected-claude-to-my-daily-apps-here-are-the-5-that-actually-made-it-useful">I connected Claude to my daily apps — here are the 5 that actually made it useful</a></li></ul> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/social-media/i-read-all-233-pages-of-metas-usd1-4-trillion-lawsuit-heres-why-facebook-and-instagram-may-never-be-the-same</link>
                                                                            <description>
                            <![CDATA[ I read all 233 pages of Meta’s $1.4 trillion youth addiction lawsuit. From ending the like button to killing infinite scroll, here is what could change. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">6hPAY7k9jynWsEtDTFMBGf</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/EerCsNfck6dk6ifJUrQqWF-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 18 Aug 2026 11:46:12 +0000</pubDate>                                                                                                                                <updated>Tue, 18 Aug 2026 14:05:48 +0000</updated>
                                                                                                                                            <category><![CDATA[Social Media]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Internet]]></category>
                                                                                                                    <dc:creator><![CDATA[ Jason England ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/v4fSq5U4uZUEtGY2BwNuJ6-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Jason brings a decade of tech and gaming journalism experience to his role as a Managing Editor of Computing at Tom&#039;s Guide. He has previously written for Laptop Mag, Tom&#039;s Hardware, Kotaku, Stuff and BBC Science Focus. In his spare time, you&#039;ll find Jason looking for good dogs to pet or thinking about eating pizza if he isn&#039;t already.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/EerCsNfck6dk6ifJUrQqWF-1920-80.jpg">
                                                            <media:credit><![CDATA[Getty Images]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Mark Zuckerberg ]]></media:description>                                                            <media:text><![CDATA[Mark Zuckerberg ]]></media:text>
                                <media:title type="plain"><![CDATA[Mark Zuckerberg ]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/EerCsNfck6dk6ifJUrQqWF-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>A massive jury trial against Meta is beginning today that could change the face of social media forever with a potential financial death penalty of $1.4 trillion on the line.</p><p>When a tech giant is put on trial, the public is usually conditioned to expect a lengthy battle that ends in a quiet settlement, written off as just the cost of doing business. But this is entirely different.</p><p>That’s because after the lawsuit was filed by 30 U.S. states in 2023, including California and New York, governments are finally taking action in saying the “attention economy” is a public hazard for children.</p><p>It’s not just an accusation of bad content policy, it is a direct assault on how Meta and social media as a whole works. Beyond that eye-watering figure, the states are demanding fundamental changes to how Instagram and Facebook operate — including killing the like button and infinite scroll.</p><p>Should Meta lose, this would be a massive tectonic shift. I’ve sifted through the entire <a href="https://oag.ca.gov/system/files/attachments/press-docs/FINAL%20Meta%20Multistate%20Complaint,%20N.D.%20Cal.%20(REDACTED,%20CONFORMED).pdf" target="_blank">case document</a> to break down the accusations, the demands, the evidence and what this will actually mean for you.</p><h2 class="article-body__section" id="section-the-hit-list-what-is-actually-changing"><span>The hit list (what is actually changing)</span></h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="mjMcVn3yy2PbCer4Gv4pAg" name="shutterstock_2066080460.jpg" alt="Meta logo on screen of mobile phone on Facebook word background. Facebook after rebranding and changing name to Meta." src="https://cdn.mos.cms.futurecdn.net/mjMcVn3yy2PbCer4Gv4pAg-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Viacheslav Lopatin | Shutterstock)</span></figcaption></figure><p>I’ll go into the specifics of the case itself in a little bit, but outside of that gigantic price tag, what would actually vanish from Meta’s apps if the company loses?</p><ul><li><strong>Death of infinite scroll &amp; autoplay: </strong>The states are demanding an end to the endless feed and autoplaying of content. These features are explicitly designed to maximize screen time, and losing them breaks the TikTok-style doomscroll in a fundamental way.</li><li><strong>The end of the like button: </strong>Another key dopamine hit that keeps teens hooked to their screens is the like count. The lawsuit is targeting this too — demanding an end to social validation metrics.</li><li><strong>No more algorithmic manipulation: </strong>The states want to see change to Meta’s “dopamine-manipulating recommendation algorithms.” This could mean a return to your standard chronological timelines by default.</li><li><strong>Notification lockdown: </strong>No more frequent push notifications designed to pull young people back into apps. You’ll see these pop up to stop young people from disengaging with a social platform.</li><li><strong>Killing stories &amp; filters: </strong>The states want an end to disappearing or “ephemeral” posts like Instagram Stories. On top of that, they’re demanding the removal of image filters that alter a user’s physical appearance in pictures.</li></ul><p>However, there is one broader, scarier implication for <em>everyone, </em>not just teenagers.</p><h2 id="the-death-of-the-finsta">The death of the “Finsta”</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3405px;"><p class="vanilla-image-block" style="padding-top:66.67%;"><img id="J4EEHYGRdoGNKryBLi9JEf" name="GettyImages-1086354750.jpg" alt="Instagram" src="https://cdn.mos.cms.futurecdn.net/J4EEHYGRdoGNKryBLi9JEf-1920-80.jpg" mos="" align="middle" fullscreen="" width="3405" height="2270" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: aap Arriens/NurPhoto via Getty Images)</span></figcaption></figure><p>The lawsuit isn’t just about tweaking algorithms; it’s demanding structural changes to how accounts are created. The states are demanding strict parental verification for teenagers and limits on multiple account creation.</p><p>For teens, this effectively kills the “Finsta” — a fake or secondary Instagram account used to hide from parents or public scrutiny), and to enforce this, platforms will need to know exactly who is holding the phone. That would spell the end of casual online anonymity.</p><h2 class="article-body__section" id="section-the-smoking-gun-could-meta-lose-this-case"><span>The smoking gun — could Meta lose this case?</span></h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:9375px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="d6qmGSnFFXo6yGiczVTtSb" name="shutterstock_2663776741-2" alt="mark zuckerberg" src="https://cdn.mos.cms.futurecdn.net/d6qmGSnFFXo6yGiczVTtSb-1920-80.jpg" mos="" align="middle" fullscreen="" width="9375" height="5273" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Obviously, I’m not going to claim myself to be some expert legal mind here. But I’ve been a tech journalist for over 15 years and witnessed a bunch of lawsuits, and some of the data points, internal admissions and quotes in this document seem pretty eye-opening.</p><h2 id="the-coppa-scandals">The COPPA Scandals:</h2><p>For over seven years (until December 2019), Instagram had no age gate at all. When Meta finally added one, the drop-down menu defaulted automatically to a date making the user exactly 13 years old — effectively showing kids the exact date to bypass the restriction.</p><p>Internal research cited in the filing revealed that 40% of children aged 9 to 12 use Instagram daily, and 45% use Facebook daily. This leads to the accusation that Meta viewed children aged 10 to 12 as a “valuable but untapped audience” that dedicated internal teams analyzed to target.</p><h2 id="the-founding-confession">The founding confession</h2><p>Sean Parker himself said that the thought process behind building Facebook and Instagram was all about “how do we consume as much of your time and conscious attention as possible?” </p><p>He called it a “social-validation feedback loop” that exploits “a vulnerability in human psychology,” which its creators all understood “consciously.”</p><h2 id="i-don-t-want-to-hear-it-about-underage-users">“I don’t want to hear it” about underage users</h2><p>This is what Head of Instagram Adam Mosseri apparently said when he was confronted with evidence that child star JoJo Siwa had been active on Instagram since age 8. </p><p>On top of that, Meta’s former director of site integrity Arturo Bejar testified that Zuckerberg knew about “harms that teenagers are experiencing in its product,” but are “choosing not to engage about it.”</p><h2 id="meta-s-own-internal-numbers">Meta’s own internal numbers</h2><p>The company ran a “Teen Mental Health Deep Dive” private survey that found:</p><ul><li>1 in 5 teens felt worse about themselves after using Instagram</li><li>24% reported feeling “not good enough because of the app”</li><li>67% felt forced to “create a perfect image online”</li><li>Over half admitted to struggling with severe FOMO (Fear of Missing Out)</li><li>14% of young users admitted to having thoughts of wanting to “hurt [or] kill themselves”</li></ul><h2 id="cynical-product-design-and-internal-teams">Cynical product design and internal teams</h2><p>The lawsuit pulls back the curtain on how Meta internally viewed user engagement — with the company reportedly operating an engineering group called the “Rabbithole team.” Their mission was clear: optimizing “preference amplification,” which is fancy wording for figuring out how to push users deeper down algorithmic rabbit holes.</p><p>Even when Meta rolled out “time management” tools like the Daily Limit to appease public critics, the lawsuit alleges they were designed to fail. Originally, the daily limit was 10 minutes, but once public scrutiny died down after the 2021 whistleblower leaks, Meta quietly raised that minimum to 30 minutes.</p><p>But perhaps most damning of all is that as early as 2017, Facebook’s own former VP for user growth publicly admitted he had banned his own children from using Facebook. Sometime after that, Meta simply disbanded its internal “Responsible Innovation” team.</p><h2 class="article-body__section" id="section-outlook-a-corporate-death-penalty"><span>Outlook: a corporate death penalty?</span></h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="kWfKU2NXkqQqgsozLXPWxX" name="Zuckerberg.GettyImages-2173579179" alt="Mark Zuckerberg at Meta AI event" src="https://cdn.mos.cms.futurecdn.net/kWfKU2NXkqQqgsozLXPWxX-1920-80.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: David Paul Morris/Bloomberg via Getty Images)</span></figcaption></figure><p>The federal trial officially kicks off today in Oakland, California, with California, Colorado, Kentucky and New Jersey leading the charge.</p><p>But this trial isn’t just about the money. Because this is a consumer protection lawsuit rather than a personal injury case, the states are asking the judge to order sweeping changes to the platforms.</p><p>If Meta loses, we aren’t just looking at a massive fine. We are looking at court-mandated age restrictions, the deletion of algorithmic feeds for minors, and the permanent removal of the infinite scroll.</p><p>Win or lose, the curtain has been pulled back. The “attention economy” as we know it is officially on trial.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/meta-files-patent-for-ai-camera-glasses-that-use-facial-recognition-expression-analysis-and-information-about-your-relationships-to-identify-people-around-you-and-create-highlights">Meta files patent for AI facial recognition glasses that identify people around you and record automatically</a></li><li><a href="https://www.tomsguide.com/computing/macbooks/a-parents-guide-to-the-macbook-neo-is-apples-cheapest-laptop-a-back-to-school-trap">A parent’s guide to the MacBook Neo: is Apple’s cheapest laptop a back-to-school trap?</a></li><li><a href="https://www.tomsguide.com/ai/i-connected-claude-to-my-daily-apps-here-are-the-5-that-actually-made-it-useful">I connected Claude to my daily apps — here are the 5 that actually made it useful</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ McAfee+ Premium review: Comprehensive online and offline protection at a low starting price ]]></title>
                                                                                                <dc:content><![CDATA[ <p>McAfee has been around for decades, and it has come a long way from the antivirus software I remember slowing down my PC as a teenager. Having tested McAfee+ Premium extensively, I can confirm that it’s one of the <a href="https://www.tomsguide.com/computing/antivirus/best-antivirus-software">best antivirus software</a> suites available today. It packs plenty of useful tools, such as Identity Monitoring, Secure VPN with no limits, File Shredder, and Tracker Remover.</p><p>The software sports a user-friendly interface that makes it a delight to use, and 24/7 customer support over chat and phone ensures all your problems are quickly resolved. Low impact on system resources is another highlight. Even though the Full Scan takes a while and renewal price makes your eye twitch, neither of those are dealbreakers.</p><p>For the complete breakdown, read my full McAfee+ Premium review.</p><h2 class="article-body__section" id="section-mcafee-premium-review-specs"><span>McAfee+ Premium review: Specs</span></h2><div ><table><tbody><tr><td class="firstcol " ><p><strong>Starting price</strong></p></td><td  ><p><a href="https://www.mcafee.com/en-gb/antivirus.html" target="_blank" rel="nofollow">$49 / £49</a> (yearly, Consumer) | <a href="https://www.dell.com/en-us/shop/mcafee-total-protection-antivirus-internet-security-software-for-1-device-1-year-subscription-download/apd/ac180675/software" target="_blank" rel="nofollow">$24</a> / <a href="https://business.currys.co.uk/catalogue/computing/software/internet-security-software/mcafee-total-protection-1-year-automatic-renewal-for-3-devices/N659993W" target="_blank" rel="nofollow">£11</a> (yearly, Business)</p></td></tr><tr><td class="firstcol " ><p><strong>Operating system</strong></p></td><td  ><p>Windows, macOS, Android, iOS</p></td></tr><tr><td class="firstcol " ><p><strong>Supported devices</strong></p></td><td  ><p>Unlimited</p></td></tr><tr><td class="firstcol " ><p><strong>Malware protection</strong></p></td><td  ><p>Yes</p></td></tr><tr><td class="firstcol " ><p><strong>Ransomware protection</strong></p></td><td  ><p>No</p></td></tr><tr><td class="firstcol " ><p><strong>Identity theft protection</strong></p></td><td  ><p>Yes</p></td></tr><tr><td class="firstcol " ><p><strong>Webcam protection</strong></p></td><td  ><p>No</p></td></tr><tr><td class="firstcol " ><p><strong>Parental controls</strong></p></td><td  ><p>Yes (Family plans only)</p></td></tr><tr><td class="firstcol " ><p><strong>VPN</strong></p></td><td  ><p>Yes</p></td></tr><tr><td class="firstcol " ><p><strong>Password manager</strong></p></td><td  ><p>Yes</p></td></tr><tr><td class="firstcol " ><p><strong>Cloud backup</strong></p></td><td  ><p>No</p></td></tr><tr><td class="firstcol " ><p><strong>Firewall</strong></p></td><td  ><p>Yes</p></td></tr><tr><td class="firstcol " ><p><strong>Secure browser</strong></p></td><td  ><p>No</p></td></tr><tr><td class="firstcol " ><p><strong>Support</strong></p></td><td  ><p>24/7 phone and chat</p></td></tr></tbody></table></div><h2 class="article-body__section" id="section-mcafee-premium-review-costs-what-s-covered"><span>McAfee+ Premium review: Costs &amp; what’s covered</span></h2><p>Similar to other antivirus software suites, McAfee offers different plans for consumers and businesses alike. Let’s talk about McAfee’s consumer plans first. The most basic plan, Essential, covers up to five devices and is available for <a href="https://www.mcafee.com/en-gb/antivirus.html" target="_blank" rel="nofollow">$39 / £33</a> for the first year.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="K5WxUZVVhzGMwJ5rPi9XqN" name="McAfee_" alt="McAfee+ Premium antivirus software" src="https://cdn.mos.cms.futurecdn.net/K5WxUZVVhzGMwJ5rPi9XqN-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The McAfee+ Premium Individual plan is a step up from Essential, and costs $49 / £49 for the first year. It naturally includes everything Essential offers, plus a Social Privacy Manager as well as scanning the web for your personal information. McAfee+ Advanced Individual is the most expensive plan, offering the most comprehensive protection. It’ll cost you $89 / £74 for the first year. Alongside everything else included in Essential and Premium, Advanced includes up to $1 million identity theft coverage, bank and credit card transaction monitoring, credit lock and security freeze, and more.</p><p>It’s important to note that after your first year is up, McAfee’s renewal prices go up by <em>a lot. </em>For instance, the Premium plan I tested costs $149 after the first year — a steep $100 price hike. <a href="https://www.tomsguide.com/computing/antivirus/norton-360-review">Norton 360</a> Deluxe, in comparison, costs $124 per renewal, making it slightly cheaper than McAfee.</p><p>There are many family plans available, too, such as Premium Family ($69 starting price) and Ultimate Family ($249 starting price). If you own a business and want a competent antivirus software suite, a number of plans are available exclusively through Dell in the U.S. and Currys in the U.K., starting at just <a href="https://www.dell.com/en-us/shop/mcafee-total-protection-antivirus-internet-security-software-for-1-device-1-year-subscription-download/apd/ac180675/software" target="_blank" rel="nofollow">$24</a> / <a href="https://business.currys.co.uk/catalogue/computing/software/internet-security-software/mcafee-total-protection-1-year-automatic-renewal-for-3-devices/N659993W" target="_blank" rel="nofollow">£11</a> and going all the way up to <a href="https://www.dell.com/en-us/shop/mcafee-premium-family-antivirus-and-internet-security-software-for-unlimited-devices-subscription-1-year/apd/ac180678/software" target="_blank" rel="nofollow">$169</a> — depending on the number of devices and features, of course.</p><p>It’s important to read the fine print to understand what you’re signing up for, but in case you aren’t happy with your purchase, McAfee offers a 30-day money-back guarantee. Also, if McAfee fails to catch a virus and your device gets infected, the company’s Virus Protection Pledge states that it’ll refund you the amount you paid for your subscription.</p><h2 class="article-body__section" id="section-mcafee-premium-review-protection"><span>McAfee+ Premium review: Protection</span></h2><p>The more you pay for your McAfee subscription, the more protection you’ll get. For instance, the Essential plan protects up to five devices from scams and monitors the dark web for any personal detail leaks. The Premium plan (that I tested), on the other hand, covers unlimited macOS, Windows, iOS and Android devices, and offers extra features like Social Privacy Manager, Personal Data Cleanup and Online Account Cleanup (scans only). I’ll discuss these in detail shortly.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="SxMdD6NqD8VwDrEvsn25nN" name="McAfee_" alt="McAfee+ Premium antivirus software" src="https://cdn.mos.cms.futurecdn.net/SxMdD6NqD8VwDrEvsn25nN-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Regardless of the subscription you sign up for, McAfee offers a secure VPN, password manager and identity monitoring across all. But it’s important to note that it doesn’t offer cloud backup or ransomware protection, which is surprising. Competitors, like <a href="https://www.tomsguide.com/computing/antivirus/bitdefender-review">Bitdefender</a>, <a href="https://www.tomsguide.com/computing/antivirus/avast-one-review">Avast One</a> and Norton 360 offer these to a degree, so it’s worth considering them instead if these features are important to you.</p><p>Before diving into my experience with McAfee, let’s take a look at how three independent labs that test antivirus software twice a year (for the most part) rate it. <a href="https://www.av-test.org/en/antivirus/home-windows/" target="_blank" rel="nofollow">AV Test’s June 2026 report</a> rated McAfee as a “Top Product,” with 6/6 scores across Protection, Performance and Usability. Bitdefender, Avast and Norton 360 all received 100% scores, too, which goes to show that McAfee is just as good as its rivals, if not better.</p><p><a href="https://av-comparatives.org/tests/performance-test-april-2026/" target="_blank" rel="nofollow">AV Comparatives’ April 2026 test report</a> rated McAfee 1st out of the 19 antivirus software suites it tested — which is outstanding, as McAfee upstaged <a href="https://www.tomsguide.com/computing/antivirus/malwarebytes-review">Malwarebytes</a>, Avast, Norton 360 and Bitdefender. McAfee scored 90/100 in AVC, 96.7/100 in Procyon, and 3.3 in Impact. The low Impact rating means that the software doesn’t have a negative impact on your system’s resources. It blows the likes of Malwarebytes (17.6 Impact score) out of the water.</p><p>Lastly, I looked at <a href="https://selabs.uk/vendor/mcafee/" target="_blank" rel="nofollow">SE Labs’ (U.K.) June 2026 report</a>, which awarded McAfee an AAA rating with 98% protection accuracy and an overall 99% score. McAfee is edged out by Norton 360 and Bitdefender — but only just — as both of them achieved a 100% protection accuracy score.</p><h2 class="article-body__section" id="section-mcafee-premium-review-performance"><span>McAfee+ Premium review: Performance</span></h2><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/wJTXLWzqRb5fJXRuuMLyw7-1920-80.jpg" alt="McAfee+ Premium screenshots on PC" /><figcaption><small role="credit">McAfee / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/wBf39aYqXp8BRhpjMFUNF8-1920-80.jpg" alt="McAfee+ Premium screenshots on PC" /><figcaption><small role="credit">McAfee / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/zHgnooFUh4U79U5vgdWDP8-1920-80.jpg" alt="McAfee+ Premium screenshots on PC" /><figcaption><small role="credit">McAfee / Tom's Guide</small></figcaption></figure></figure><div  class="fancy-box"><div class="fancy_box-title">Tom's Guide reviews gaming platform</div><div class="fancy_box_body"><p class="fancy-box__body-text"><strong>Supplied by: </strong><a data-analytics-id="inline-link" href="https://www.msi.com/" target="_blank" rel="nofollow"><strong>MSI</strong></a><strong> | Tom's Guide</strong><br /><strong></strong><br /><strong>CPU:</strong> <a data-analytics-id="inline-link" href="https://www.amazon.com/AMD-7700X-16-Thread-Unlocked-Processor/dp/B0BBHHT8LY/" target="_blank" rel="nofollow">AMD Ryzen 7 7700X</a><strong> </strong>|<strong> Graphics card:</strong> <a data-analytics-id="inline-link" href="https://www.msi.com/Graphics-Card/GeForce-RTX-5070-Ti-16G-VANGUARD-SOC" target="_blank" rel="nofollow">MSI RTX 5070 Ti 16GB Vanguard SOC</a><strong> </strong>|<strong> Motherboard: </strong><a data-analytics-id="inline-link" href="https://www.msi.com/Motherboard/B850-GAMING-PLUS-WIFI" target="_blank" rel="nofollow">MSI B850E Gaming Plus WiFi</a><strong> </strong>|<strong> RAM: </strong><a data-analytics-id="inline-link" href="https://www.newegg.com/kingston-technology-corp-fury-renegade-32gb-ddr5-8000-cas-latency-cl38-desktop-memory-silver-black/p/N82E16820242829" target="_blank" rel="nofollow">Kingston Fury Renegade DDR5 32GB</a><strong> </strong>|<strong> Cooler:</strong> <a data-analytics-id="inline-link" href="https://www.amazon.com/Noctua-NH-U12S-chromax-Black-Single-Tower-Cooler/dp/B07Y88BNYZ" target="_blank">Noctua NH-U12S</a><strong> </strong>|<strong> PSU:</strong> <a data-analytics-id="inline-link" href="https://www.msi.com/Power-Supply/MEG-Ai1300P-PCIE5" target="_blank" rel="nofollow">MSI MEG Ai1300P PCIE5</a><strong> </strong>|<strong> Case: </strong><a data-analytics-id="inline-link" href="https://www.msi.com/PC-Case/MPG-GUNGNIR-110R" target="_blank" rel="nofollow">MSI MPG GUNGNIR 110R</a></p></div></div><p>Once you’ve bought your subscription, it’s time to download and install McAfee on your device and activate it. Doing so is extremely straightforward. Simply enter your product key, email address and billing information into <a href="https://www.mcafee.com/en-us/ipz/redeem/activate.html" target="_blank" rel="nofollow">McAfee’s dedicated activation page</a>. You’ll then be prompted to download the software onto your machine. On our testing rig, it took just under five minutes to get up and running.</p><p>On Android and iOS smartphones, you’ll need to download the free app from the respective app store, and punch in your registered email address to activate your subscription on your phone. Doing so on my <a href="https://www.tomsguide.com/phones/google-pixel-phones/google-pixel-10-pro-xl-review">Google Pixel 10 Pro XL</a> barely took any time — perhaps two minutes or so.</p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/TV5risiGr2tMMewkQFjoW8-1920-80.jpg" alt="McAfee+ Premium screenshots on PC" /><figcaption><small role="credit">McAfee / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/ockGAY98piiJYM8La6j3g9-1920-80.jpg" alt="McAfee+ Premium screenshots on PC" /><figcaption><small role="credit">McAfee / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/iuNNScu8hFxGuBruTnz5g9-1920-80.jpg" alt="McAfee+ Premium screenshots on PC" /><figcaption><small role="credit">McAfee / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/HzxggQY68cTp3CaJ2wN3g9-1920-80.jpg" alt="McAfee+ Premium screenshots on PC" /><figcaption><small role="credit">McAfee / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/pPcmysgA6qtmZkpPXPmDg9-1920-80.jpg" alt="McAfee+ Premium screenshots on PC" /><figcaption><small role="credit">McAfee / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/Dy5YszmotFzc3StyM6Kpv8-1920-80.jpg" alt="McAfee+ Premium screenshots on PC" /><figcaption><small role="credit">McAfee / Tom's Guide</small></figcaption></figure></figure><p>After installing McAfee and activating my Premium plan on our MSI testing rig, I ran a Quick Scan and a Full Scan, both of which are easily accessible from the app’s main page. As its name suggests, McAfee’s Quick Scan quickly scans your computer, and it isn’t as in-depth as the Full Scan. It took 29 seconds for McAfee to quickly scan 38,846 files. No threats were detected. It’s handy that McAfee offers a Quick Scan option, unlike Bitdefender.</p><p>A Full Scan took much longer, in comparison. While software suites like Bitedefender and Malwarebytes scanned hundreds of thousands of files in under 26 minutes or so, McAfee took 34 minutes and 40 seconds to scan 351,968 files. It’s quite slow, really! I had enough time to do some stretches, make myself a cup of coffee, and have a chat with my coworkers, and McAfee was <em>still </em>scanning. But as I expected, it didn’t catch any anomalies or threats to the PC.</p><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p><strong>FPS with McAfee running</strong></p></th><th  ><p><strong>FPS with Quick Scan running</strong></p></th><th  ><p><strong>FPS with Full Scan running</strong></p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Cyberpunk 2077 (Ultra graphics)</strong></p></td><td  ><p>99</p></td><td  ><p>93</p></td><td  ><p>87</p></td></tr><tr><td class="firstcol " ><p><strong>Forza Horizon 5 (High graphics)</strong></p></td><td  ><p>113</p></td><td  ><p>110</p></td><td  ><p>95</p></td></tr></tbody></table></div><p>The aforementioned scans were conducted with no other heavy-duty apps running in the background, so to get a clearer picture of how McAfee impacts system resources, I ran in-game benchmark tests in <a href="https://www.tomsguide.com/reviews/cyberpunk-2077-phantom-liberty">Cyberpunk 2077</a> and <a href="https://www.tomsguide.com/reviews/forza-horizon-5">Forza Horizon 5</a>. As you can see from the table above, Cyberpunk 2077’s frame rate dipped from 99fps to 87fps, while Forza Horizon 5’s went from 113fps to 95fps. I didn’t notice any lag while gaming, which is great. It’s worth pointing out that I achieved 97fps in Cyberpunk 2077 and 123fps in Forza Horizon 5 with Bitdefender running a Full Scan, though. Still, McAfee’s impact on system performance isn’t <em>that </em>noticeable.</p><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p><strong>Download (Mbps)</strong></p></th><th  ><p><strong>Upload (Mbps)</strong></p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Without McAfee</strong></p></td><td  ><p>901.2</p></td><td  ><p>922.4</p></td></tr><tr><td class="firstcol " ><p><strong>With McAfee running</strong></p></td><td  ><p>821.8</p></td><td  ><p>933.2</p></td></tr><tr><td class="firstcol " ><p><strong>Quick Scan running</strong></p></td><td  ><p>810.4</p></td><td  ><p>967.2</p></td></tr><tr><td class="firstcol " ><p><strong>Full Scan running</strong></p></td><td  ><p>807.1</p></td><td  ><p>948.7</p></td></tr></tbody></table></div><p>After finishing my in-game benchmarking, I ran a few internet speed tests at <a href="http://speedtest.net" target="_blank" rel="nofollow">speedtest.net</a> to see how McAfee impacted upload and download speeds. You can see the results in the table above. Surprisingly, neither the Quick Scan nor the Full Scan impacted the speeds by <em>that </em>much. Malwarebytes, in comparison, impacted upload speeds by a lot, as I was able to achieve only 592.4Mbps upload speeds with its Deep Scan running.</p><p>My testing goes to show that McAfee doesn’t have a detrimental effect on system resources — whether you’re browsing the internet or playing system-intensive games. Perhaps McAfee has finally gotten rid of the stereotype that it’s a drain on system resources.</p><h2 class="article-body__section" id="section-mcafee-premium-review-features"><span>McAfee+ Premium review: Features</span></h2><p>Alongside the two different types of scans, McAfee includes a bunch of extras to protect you against online and offline threats. I tested a few of the goodies included in the McAfee+ Premium Individual plan, starting with Identity Monitoring.</p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/WnkNiqSPGqa2YgYusMfnB9-1920-80.jpg" alt="McAfee+ Premium screenshots on PC" /><figcaption><small role="credit">McAfee / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/9Lqj64owY3Yoeb3Yhiowy8-1920-80.jpg" alt="McAfee+ Premium screenshots on PC" /><figcaption><small role="credit">McAfee / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/zN6zJv7Xjjih5NPkLybAs8-1920-80.jpg" alt="McAfee+ Premium screenshots on PC" /><figcaption><small role="credit">McAfee / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/dQXHQcDKpuvEQR68J6pp39-1920-80.jpg" alt="McAfee+ Premium screenshots on PC" /><figcaption><small role="credit">McAfee / Tom's Guide</small></figcaption></figure></figure><p>This service constantly monitors the internet, including the dark web, for any identity theft, fraud or breaches. You can add credit cards, passports, national IDs, email addresses, and even different usernames. McAfee will then send you timely security alerts and provide guidance as to how to protect yourself. I put in a few different email addresses and usernames (such as the one I use on Instagram) and McAfee didn’t find any active breaches.</p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/nJmWkNpnxkReXJL9XKGFW9-1920-80.jpg" alt="McAfee+ Premium screenshots on PC" /><figcaption><small role="credit">McAfee / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/uJNRHXKbrLeup6g44kpAX9-1920-80.jpg" alt="McAfee+ Premium screenshots on PC" /><figcaption><small role="credit">McAfee / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/fHv3DFDv9on8o56xXBKjd8-1920-80.jpg" alt="McAfee+ Premium screenshots on PC" /><figcaption><small role="credit">McAfee / Tom's Guide</small></figcaption></figure></figure><p>Next, I tried File Shredder, and it’s similar to the one you get with Malwarebytes. It enables you to permanently delete files to varying degrees, and it essentially overwrites data several times so there’s no trace left. Think of it like shredding a physical paper document to ensure no one else can read it. It worked well in my testing, as I used it to permanently delete files in the PC’s recycle bin.</p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/X866ffB5ajCGEZ95Bn38X9-1920-80.jpg" alt="McAfee+ Premium screenshots on PC" /><figcaption><small role="credit">McAfee / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/QspPRAakcsZVkG79WtKr69-1920-80.jpg" alt="McAfee+ Premium screenshots on PC" /><figcaption><small role="credit">McAfee / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/JxwP7BcxHoJJazvwCSuZg8-1920-80.jpg" alt="McAfee+ Premium screenshots on PC" /><figcaption><small role="credit">McAfee / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/ASWdQuRLh4vDf2FsrGkmk8-1920-80.jpg" alt="McAfee+ Premium screenshots on PC" /><figcaption><small role="credit">McAfee / Tom's Guide</small></figcaption></figure></figure><p>There’s also a handy Tracker Remover tool which, as its name suggests, removes unwanted items, like temporary files and cookies that sites could potentially use to track you online. The Tracker Remover reviews temporary files, recycle bin items, browser cookies and trackers, and browser history, and then deletes them if they aren’t needed. In my testing, it took just under two minutes to free up 1.14 GB and remove 3,000 items.</p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/8PHUQ5N2sympePokGMTrV9-1920-80.jpg" alt="McAfee+ Premium screenshots on PC" /><figcaption><small role="credit">McAfee / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/W6nTfBzSXBRZutzwHsMyo8-1920-80.jpg" alt="McAfee+ Premium screenshots on PC" /><figcaption><small role="credit">McAfee / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/XGntnUj9W3QgAXyifocfX9-1920-80.jpg" alt="McAfee+ Premium screenshots on PC" /><figcaption><small role="credit">McAfee / Tom's Guide</small></figcaption></figure></figure><p>Last but not least, I tried McAfee’s unlimited Secure VPN which is included in every subscription plan. It masks your IP address using bank-grade AES 256-bit encryption and connecting to servers located in almost 50 countries. The VPN takes less than a minute to connect to your chosen country and once that’s done, your online identity and location are protected. You can customize it to connect automatically when joining a network with weak security, for instance, and even add trusted networks where the VPN shouldn’t be activated.</p><h2 class="article-body__section" id="section-mcafee-premium-review-interface"><span>McAfee+ Premium review: Interface</span></h2><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/NTGR99dgp4dZdRcEMVcAA8-1920-80.jpg" alt="McAfee+ Premium screenshots on PC" /><figcaption><small role="credit">McAfee / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/JZLU8M99ji7HgVtStnAD78-1920-80.jpg" alt="McAfee+ Premium screenshots on PC" /><figcaption><small role="credit">McAfee / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/JexoX4DFjZDy6JBGq5b3g9-1920-80.jpg" alt="McAfee+ Premium screenshots on PC" /><figcaption><small role="credit">McAfee / Tom's Guide</small></figcaption></figure></figure><p>McAfee sports a clean and user-friendly interface, and I’ve had no issues using it whatsoever. The online dashboard, <a href="https://myaccount.mcafee.com/v2/" target="_blank" rel="nofollow">McAfee My Account</a>, gives you quick access to your subscription details and it lets you edit billing and renewal details. The downloaded software is straightforward to use and understand, too, thanks to plenty of signposting and explanations.</p><p>But unlike Malwarebytes, the McAfee app’s window can’t be maximized or made full-size, which means you have to scroll through the various settings one by one. This isn’t uncommon, though, as neither Bitdefender’s nor Avast One’s windows can be made to take up the full screen.</p><p>The McAfee mobile app is just as user-friendly if not more. The initial download took just 130MB of space on my Google Pixel 10 Pro XL — though this will naturally grow with use.</p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/uAGcnj3D4PJRhEhbt6Tzf9-1920-80.jpg" alt="McAfee+ Premium screenshots on PC" /><figcaption><small role="credit">McAfee / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/QEtuXhHfL23fKiXbFL5Vb9-1920-80.jpg" alt="McAfee+ Premium screenshots on PC" /><figcaption><small role="credit">McAfee / Tom's Guide</small></figcaption></figure></figure><p>I’ve seen many online users complaining about the uninstallation process on desktop. However, I didn’t experience any issues uninstalling McAfee from our testing rig. I wasn’t prompted again and again to keep the software, and it took just under 10 minutes to remove the software and restart my machine.</p><h2 class="article-body__section" id="section-mcafee-premium-review-support"><span>McAfee+ Premium review: Support</span></h2><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/sNT5zeMosnvZ2M2GEBsuL8-1920-80.jpg" alt="McAfee+ Premium screenshots on PC" /><figcaption><small role="credit">McAfee / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/ptrfa3aKXLDEXbzCSBGEP8-1920-80.jpg" alt="McAfee+ Premium screenshots on PC" /><figcaption><small role="credit">McAfee / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/fxmteuzhdAuPaFYHJGGTS8-1920-80.jpg" alt="McAfee+ Premium screenshots on PC" /><figcaption><small role="credit">McAfee / Tom's Guide</small></figcaption></figure></figure><p>If you find yourself in a pickle or have any questions about McAfee and your subscription, you can get in touch with customer support either via <a href="https://www.mcafee.com/support/s/?language=en_US" target="_blank" rel="nofollow">online chat</a> or over the phone. This is a similar level of support to what’s offered by Bitdefender and Norton 360.</p><p>I tested out the online chat function and I found it super easy to use. I asked the AI assistant a question and it answered promptly (and accurately). I then asked to speak to a human and within a couple of minutes, I was connected to a human agent. I like that I didn’t have to keep explaining <em>why </em>I needed to speak to a person.</p><p>If you need immediate assistance and can’t be bothered by typing, you can always ring <a href="https://www.mcafee.com/support/s/contactsupport" target="_blank" rel="nofollow">McAfee’s customer service team</a> which is available 24/7. It’s nice that McAfee offers phone support, unlike Malwarebytes. It makes getting help easier.</p><h2 class="article-body__section" id="section-mcafee-premium-review-verdict"><span>McAfee+ Premium review: Verdict</span></h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="SovGxRexYjntV4ze63sirN" name="McAfee_" alt="McAfee+ Premium antivirus software" src="https://cdn.mos.cms.futurecdn.net/SovGxRexYjntV4ze63sirN-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>McAfee+ Premium is a strong all-round antivirus package that doesn’t skimp on features and tools that keep you safe online and offline. Protection is excellent, independent lab results are consistent (and impressive), and the software doesn’t get in the way when you’re gaming or browsing the internet. The user experience is sublime, too, as the software sports a clean, user-friendly interface.</p><p>There are a couple of catches, though, such as the Full Scan taking over 35 minutes to complete in our testing. While the cost for the first year isn’t much more than its competitors, renewal price can feel quite steep. Are either of those dealbreakers? Not necessarily, as they’re overshadowed by everything else on offer.</p><p>At the end of the day, McAfee delivers a polished, capable antivirus suite that goes toe-to-toe with the likes of Norton 360 and Bitdefender.</p> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/antivirus/mcafee-plus-premium-review-2026</link>
                                                                            <description>
                            <![CDATA[ McAfee+ Premium offers comprehensive online and offline protection against viruses and scams. It's user-friendly, and the starting price is reasonable, too. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">R7CPiEW7syzMcqnd5ZytCJ</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/mG9WPwEWaYUoqwM2daRsvN-1920-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 18 Aug 2026 08:53:58 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Antivirus]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Internet]]></category>
                                                    <category><![CDATA[Online Security]]></category>
                                                                                                <author><![CDATA[ nikita.achanta@futurenet.com (Nikita Achanta) ]]></author>                    <dc:creator><![CDATA[ Nikita Achanta ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/7SPsEgwiRa9MdL3BPuVJUW-320-70.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Nikita is a Senior Writer on the Reviews team at Tom&amp;#39;s Guide. She is a lifelong gaming and photography enthusiast, especially interested in wildlife photography. Having worked as a Sub Editor and Writer for Canon EMEA, she’s a bit of a grammar nerd (and a supporter of the Oxford comma), and has also interviewed photographers from all over the world and working in different genres.&lt;/p&gt;&lt;p&gt;A holder of two master’s degrees, the most recent one being in Magazine Journalism from Cardiff University, Nikita’s work has appeared in several publications such as Motor Sport Magazine, NME, Marriott Bonvoy, The Independent, and Metro. Her favorite tech includes the PS5, the DJI Air 3S, and the Fujifilm X-T50. She&amp;#39;s also a licensed drone pilot and cameras expert so you&amp;#39;ll find her testing those nearly every week.&lt;/p&gt;&lt;p&gt;In her downtime, Nikita can usually be found sinking hours into RPGs on her PS5, flying a drone, out on a walk with a camera in hand, at a concert, watching F1, or planning her next tattoo. You can follow her photography account on Instagram&lt;a href=&quot;https://www.instagram.com/photos.bynikita/&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt; here&lt;/a&gt;.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/mG9WPwEWaYUoqwM2daRsvN-1920-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[McAfee+ Premium antivirus software]]></media:description>                                                            <media:text><![CDATA[McAfee+ Premium antivirus software]]></media:text>
                                <media:title type="plain"><![CDATA[McAfee+ Premium antivirus software]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/mG9WPwEWaYUoqwM2daRsvN-1920-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>McAfee has been around for decades, and it has come a long way from the antivirus software I remember slowing down my PC as a teenager. Having tested McAfee+ Premium extensively, I can confirm that it’s one of the <a href="https://www.tomsguide.com/computing/antivirus/best-antivirus-software">best antivirus software</a> suites available today. It packs plenty of useful tools, such as Identity Monitoring, Secure VPN with no limits, File Shredder, and Tracker Remover.</p><p>The software sports a user-friendly interface that makes it a delight to use, and 24/7 customer support over chat and phone ensures all your problems are quickly resolved. Low impact on system resources is another highlight. Even though the Full Scan takes a while and renewal price makes your eye twitch, neither of those are dealbreakers.</p><p>For the complete breakdown, read my full McAfee+ Premium review.</p><h2 class="article-body__section" id="section-mcafee-premium-review-specs"><span>McAfee+ Premium review: Specs</span></h2><div ><table><tbody><tr><td class="firstcol " ><p><strong>Starting price</strong></p></td><td  ><p><a href="https://www.mcafee.com/en-gb/antivirus.html" target="_blank" rel="nofollow">$49 / £49</a> (yearly, Consumer) | <a href="https://www.dell.com/en-us/shop/mcafee-total-protection-antivirus-internet-security-software-for-1-device-1-year-subscription-download/apd/ac180675/software" target="_blank" rel="nofollow">$24</a> / <a href="https://business.currys.co.uk/catalogue/computing/software/internet-security-software/mcafee-total-protection-1-year-automatic-renewal-for-3-devices/N659993W" target="_blank" rel="nofollow">£11</a> (yearly, Business)</p></td></tr><tr><td class="firstcol " ><p><strong>Operating system</strong></p></td><td  ><p>Windows, macOS, Android, iOS</p></td></tr><tr><td class="firstcol " ><p><strong>Supported devices</strong></p></td><td  ><p>Unlimited</p></td></tr><tr><td class="firstcol " ><p><strong>Malware protection</strong></p></td><td  ><p>Yes</p></td></tr><tr><td class="firstcol " ><p><strong>Ransomware protection</strong></p></td><td  ><p>No</p></td></tr><tr><td class="firstcol " ><p><strong>Identity theft protection</strong></p></td><td  ><p>Yes</p></td></tr><tr><td class="firstcol " ><p><strong>Webcam protection</strong></p></td><td  ><p>No</p></td></tr><tr><td class="firstcol " ><p><strong>Parental controls</strong></p></td><td  ><p>Yes (Family plans only)</p></td></tr><tr><td class="firstcol " ><p><strong>VPN</strong></p></td><td  ><p>Yes</p></td></tr><tr><td class="firstcol " ><p><strong>Password manager</strong></p></td><td  ><p>Yes</p></td></tr><tr><td class="firstcol " ><p><strong>Cloud backup</strong></p></td><td  ><p>No</p></td></tr><tr><td class="firstcol " ><p><strong>Firewall</strong></p></td><td  ><p>Yes</p></td></tr><tr><td class="firstcol " ><p><strong>Secure browser</strong></p></td><td  ><p>No</p></td></tr><tr><td class="firstcol " ><p><strong>Support</strong></p></td><td  ><p>24/7 phone and chat</p></td></tr></tbody></table></div><h2 class="article-body__section" id="section-mcafee-premium-review-costs-what-s-covered"><span>McAfee+ Premium review: Costs &amp; what’s covered</span></h2><p>Similar to other antivirus software suites, McAfee offers different plans for consumers and businesses alike. Let’s talk about McAfee’s consumer plans first. The most basic plan, Essential, covers up to five devices and is available for <a href="https://www.mcafee.com/en-gb/antivirus.html" target="_blank" rel="nofollow">$39 / £33</a> for the first year.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="K5WxUZVVhzGMwJ5rPi9XqN" name="McAfee_" alt="McAfee+ Premium antivirus software" src="https://cdn.mos.cms.futurecdn.net/K5WxUZVVhzGMwJ5rPi9XqN-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The McAfee+ Premium Individual plan is a step up from Essential, and costs $49 / £49 for the first year. It naturally includes everything Essential offers, plus a Social Privacy Manager as well as scanning the web for your personal information. McAfee+ Advanced Individual is the most expensive plan, offering the most comprehensive protection. It’ll cost you $89 / £74 for the first year. Alongside everything else included in Essential and Premium, Advanced includes up to $1 million identity theft coverage, bank and credit card transaction monitoring, credit lock and security freeze, and more.</p><p>It’s important to note that after your first year is up, McAfee’s renewal prices go up by <em>a lot. </em>For instance, the Premium plan I tested costs $149 after the first year — a steep $100 price hike. <a href="https://www.tomsguide.com/computing/antivirus/norton-360-review">Norton 360</a> Deluxe, in comparison, costs $124 per renewal, making it slightly cheaper than McAfee.</p><p>There are many family plans available, too, such as Premium Family ($69 starting price) and Ultimate Family ($249 starting price). If you own a business and want a competent antivirus software suite, a number of plans are available exclusively through Dell in the U.S. and Currys in the U.K., starting at just <a href="https://www.dell.com/en-us/shop/mcafee-total-protection-antivirus-internet-security-software-for-1-device-1-year-subscription-download/apd/ac180675/software" target="_blank" rel="nofollow">$24</a> / <a href="https://business.currys.co.uk/catalogue/computing/software/internet-security-software/mcafee-total-protection-1-year-automatic-renewal-for-3-devices/N659993W" target="_blank" rel="nofollow">£11</a> and going all the way up to <a href="https://www.dell.com/en-us/shop/mcafee-premium-family-antivirus-and-internet-security-software-for-unlimited-devices-subscription-1-year/apd/ac180678/software" target="_blank" rel="nofollow">$169</a> — depending on the number of devices and features, of course.</p><p>It’s important to read the fine print to understand what you’re signing up for, but in case you aren’t happy with your purchase, McAfee offers a 30-day money-back guarantee. Also, if McAfee fails to catch a virus and your device gets infected, the company’s Virus Protection Pledge states that it’ll refund you the amount you paid for your subscription.</p><h2 class="article-body__section" id="section-mcafee-premium-review-protection"><span>McAfee+ Premium review: Protection</span></h2><p>The more you pay for your McAfee subscription, the more protection you’ll get. For instance, the Essential plan protects up to five devices from scams and monitors the dark web for any personal detail leaks. The Premium plan (that I tested), on the other hand, covers unlimited macOS, Windows, iOS and Android devices, and offers extra features like Social Privacy Manager, Personal Data Cleanup and Online Account Cleanup (scans only). I’ll discuss these in detail shortly.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="SxMdD6NqD8VwDrEvsn25nN" name="McAfee_" alt="McAfee+ Premium antivirus software" src="https://cdn.mos.cms.futurecdn.net/SxMdD6NqD8VwDrEvsn25nN-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Regardless of the subscription you sign up for, McAfee offers a secure VPN, password manager and identity monitoring across all. But it’s important to note that it doesn’t offer cloud backup or ransomware protection, which is surprising. Competitors, like <a href="https://www.tomsguide.com/computing/antivirus/bitdefender-review">Bitdefender</a>, <a href="https://www.tomsguide.com/computing/antivirus/avast-one-review">Avast One</a> and Norton 360 offer these to a degree, so it’s worth considering them instead if these features are important to you.</p><p>Before diving into my experience with McAfee, let’s take a look at how three independent labs that test antivirus software twice a year (for the most part) rate it. <a href="https://www.av-test.org/en/antivirus/home-windows/" target="_blank" rel="nofollow">AV Test’s June 2026 report</a> rated McAfee as a “Top Product,” with 6/6 scores across Protection, Performance and Usability. Bitdefender, Avast and Norton 360 all received 100% scores, too, which goes to show that McAfee is just as good as its rivals, if not better.</p><p><a href="https://av-comparatives.org/tests/performance-test-april-2026/" target="_blank" rel="nofollow">AV Comparatives’ April 2026 test report</a> rated McAfee 1st out of the 19 antivirus software suites it tested — which is outstanding, as McAfee upstaged <a href="https://www.tomsguide.com/computing/antivirus/malwarebytes-review">Malwarebytes</a>, Avast, Norton 360 and Bitdefender. McAfee scored 90/100 in AVC, 96.7/100 in Procyon, and 3.3 in Impact. The low Impact rating means that the software doesn’t have a negative impact on your system’s resources. It blows the likes of Malwarebytes (17.6 Impact score) out of the water.</p><p>Lastly, I looked at <a href="https://selabs.uk/vendor/mcafee/" target="_blank" rel="nofollow">SE Labs’ (U.K.) June 2026 report</a>, which awarded McAfee an AAA rating with 98% protection accuracy and an overall 99% score. McAfee is edged out by Norton 360 and Bitdefender — but only just — as both of them achieved a 100% protection accuracy score.</p><h2 class="article-body__section" id="section-mcafee-premium-review-performance"><span>McAfee+ Premium review: Performance</span></h2><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/wJTXLWzqRb5fJXRuuMLyw7-1920-80.jpg" alt="McAfee+ Premium screenshots on PC" /><figcaption><small role="credit">McAfee / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/wBf39aYqXp8BRhpjMFUNF8-1920-80.jpg" alt="McAfee+ Premium screenshots on PC" /><figcaption><small role="credit">McAfee / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/zHgnooFUh4U79U5vgdWDP8-1920-80.jpg" alt="McAfee+ Premium screenshots on PC" /><figcaption><small role="credit">McAfee / Tom's Guide</small></figcaption></figure></figure><div  class="fancy-box"><div class="fancy_box-title">Tom's Guide reviews gaming platform</div><div class="fancy_box_body"><p class="fancy-box__body-text"><strong>Supplied by: </strong><a data-analytics-id="inline-link" href="https://www.msi.com/" target="_blank" rel="nofollow"><strong>MSI</strong></a><strong> | Tom's Guide</strong><br /><strong></strong><br /><strong>CPU:</strong> <a data-analytics-id="inline-link" href="https://www.amazon.com/AMD-7700X-16-Thread-Unlocked-Processor/dp/B0BBHHT8LY/" target="_blank" rel="nofollow">AMD Ryzen 7 7700X</a><strong> </strong>|<strong> Graphics card:</strong> <a data-analytics-id="inline-link" href="https://www.msi.com/Graphics-Card/GeForce-RTX-5070-Ti-16G-VANGUARD-SOC" target="_blank" rel="nofollow">MSI RTX 5070 Ti 16GB Vanguard SOC</a><strong> </strong>|<strong> Motherboard: </strong><a data-analytics-id="inline-link" href="https://www.msi.com/Motherboard/B850-GAMING-PLUS-WIFI" target="_blank" rel="nofollow">MSI B850E Gaming Plus WiFi</a><strong> </strong>|<strong> RAM: </strong><a data-analytics-id="inline-link" href="https://www.newegg.com/kingston-technology-corp-fury-renegade-32gb-ddr5-8000-cas-latency-cl38-desktop-memory-silver-black/p/N82E16820242829" target="_blank" rel="nofollow">Kingston Fury Renegade DDR5 32GB</a><strong> </strong>|<strong> Cooler:</strong> <a data-analytics-id="inline-link" href="https://www.amazon.com/Noctua-NH-U12S-chromax-Black-Single-Tower-Cooler/dp/B07Y88BNYZ" target="_blank">Noctua NH-U12S</a><strong> </strong>|<strong> PSU:</strong> <a data-analytics-id="inline-link" href="https://www.msi.com/Power-Supply/MEG-Ai1300P-PCIE5" target="_blank" rel="nofollow">MSI MEG Ai1300P PCIE5</a><strong> </strong>|<strong> Case: </strong><a data-analytics-id="inline-link" href="https://www.msi.com/PC-Case/MPG-GUNGNIR-110R" target="_blank" rel="nofollow">MSI MPG GUNGNIR 110R</a></p></div></div><p>Once you’ve bought your subscription, it’s time to download and install McAfee on your device and activate it. Doing so is extremely straightforward. Simply enter your product key, email address and billing information into <a href="https://www.mcafee.com/en-us/ipz/redeem/activate.html" target="_blank" rel="nofollow">McAfee’s dedicated activation page</a>. You’ll then be prompted to download the software onto your machine. On our testing rig, it took just under five minutes to get up and running.</p><p>On Android and iOS smartphones, you’ll need to download the free app from the respective app store, and punch in your registered email address to activate your subscription on your phone. Doing so on my <a href="https://www.tomsguide.com/phones/google-pixel-phones/google-pixel-10-pro-xl-review">Google Pixel 10 Pro XL</a> barely took any time — perhaps two minutes or so.</p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/TV5risiGr2tMMewkQFjoW8-1920-80.jpg" alt="McAfee+ Premium screenshots on PC" /><figcaption><small role="credit">McAfee / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/ockGAY98piiJYM8La6j3g9-1920-80.jpg" alt="McAfee+ Premium screenshots on PC" /><figcaption><small role="credit">McAfee / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/iuNNScu8hFxGuBruTnz5g9-1920-80.jpg" alt="McAfee+ Premium screenshots on PC" /><figcaption><small role="credit">McAfee / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/HzxggQY68cTp3CaJ2wN3g9-1920-80.jpg" alt="McAfee+ Premium screenshots on PC" /><figcaption><small role="credit">McAfee / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/pPcmysgA6qtmZkpPXPmDg9-1920-80.jpg" alt="McAfee+ Premium screenshots on PC" /><figcaption><small role="credit">McAfee / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/Dy5YszmotFzc3StyM6Kpv8-1920-80.jpg" alt="McAfee+ Premium screenshots on PC" /><figcaption><small role="credit">McAfee / Tom's Guide</small></figcaption></figure></figure><p>After installing McAfee and activating my Premium plan on our MSI testing rig, I ran a Quick Scan and a Full Scan, both of which are easily accessible from the app’s main page. As its name suggests, McAfee’s Quick Scan quickly scans your computer, and it isn’t as in-depth as the Full Scan. It took 29 seconds for McAfee to quickly scan 38,846 files. No threats were detected. It’s handy that McAfee offers a Quick Scan option, unlike Bitdefender.</p><p>A Full Scan took much longer, in comparison. While software suites like Bitedefender and Malwarebytes scanned hundreds of thousands of files in under 26 minutes or so, McAfee took 34 minutes and 40 seconds to scan 351,968 files. It’s quite slow, really! I had enough time to do some stretches, make myself a cup of coffee, and have a chat with my coworkers, and McAfee was <em>still </em>scanning. But as I expected, it didn’t catch any anomalies or threats to the PC.</p><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p><strong>FPS with McAfee running</strong></p></th><th  ><p><strong>FPS with Quick Scan running</strong></p></th><th  ><p><strong>FPS with Full Scan running</strong></p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Cyberpunk 2077 (Ultra graphics)</strong></p></td><td  ><p>99</p></td><td  ><p>93</p></td><td  ><p>87</p></td></tr><tr><td class="firstcol " ><p><strong>Forza Horizon 5 (High graphics)</strong></p></td><td  ><p>113</p></td><td  ><p>110</p></td><td  ><p>95</p></td></tr></tbody></table></div><p>The aforementioned scans were conducted with no other heavy-duty apps running in the background, so to get a clearer picture of how McAfee impacts system resources, I ran in-game benchmark tests in <a href="https://www.tomsguide.com/reviews/cyberpunk-2077-phantom-liberty">Cyberpunk 2077</a> and <a href="https://www.tomsguide.com/reviews/forza-horizon-5">Forza Horizon 5</a>. As you can see from the table above, Cyberpunk 2077’s frame rate dipped from 99fps to 87fps, while Forza Horizon 5’s went from 113fps to 95fps. I didn’t notice any lag while gaming, which is great. It’s worth pointing out that I achieved 97fps in Cyberpunk 2077 and 123fps in Forza Horizon 5 with Bitdefender running a Full Scan, though. Still, McAfee’s impact on system performance isn’t <em>that </em>noticeable.</p><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p><strong>Download (Mbps)</strong></p></th><th  ><p><strong>Upload (Mbps)</strong></p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Without McAfee</strong></p></td><td  ><p>901.2</p></td><td  ><p>922.4</p></td></tr><tr><td class="firstcol " ><p><strong>With McAfee running</strong></p></td><td  ><p>821.8</p></td><td  ><p>933.2</p></td></tr><tr><td class="firstcol " ><p><strong>Quick Scan running</strong></p></td><td  ><p>810.4</p></td><td  ><p>967.2</p></td></tr><tr><td class="firstcol " ><p><strong>Full Scan running</strong></p></td><td  ><p>807.1</p></td><td  ><p>948.7</p></td></tr></tbody></table></div><p>After finishing my in-game benchmarking, I ran a few internet speed tests at <a href="http://speedtest.net" target="_blank" rel="nofollow">speedtest.net</a> to see how McAfee impacted upload and download speeds. You can see the results in the table above. Surprisingly, neither the Quick Scan nor the Full Scan impacted the speeds by <em>that </em>much. Malwarebytes, in comparison, impacted upload speeds by a lot, as I was able to achieve only 592.4Mbps upload speeds with its Deep Scan running.</p><p>My testing goes to show that McAfee doesn’t have a detrimental effect on system resources — whether you’re browsing the internet or playing system-intensive games. Perhaps McAfee has finally gotten rid of the stereotype that it’s a drain on system resources.</p><h2 class="article-body__section" id="section-mcafee-premium-review-features"><span>McAfee+ Premium review: Features</span></h2><p>Alongside the two different types of scans, McAfee includes a bunch of extras to protect you against online and offline threats. I tested a few of the goodies included in the McAfee+ Premium Individual plan, starting with Identity Monitoring.</p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/WnkNiqSPGqa2YgYusMfnB9-1920-80.jpg" alt="McAfee+ Premium screenshots on PC" /><figcaption><small role="credit">McAfee / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/9Lqj64owY3Yoeb3Yhiowy8-1920-80.jpg" alt="McAfee+ Premium screenshots on PC" /><figcaption><small role="credit">McAfee / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/zN6zJv7Xjjih5NPkLybAs8-1920-80.jpg" alt="McAfee+ Premium screenshots on PC" /><figcaption><small role="credit">McAfee / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/dQXHQcDKpuvEQR68J6pp39-1920-80.jpg" alt="McAfee+ Premium screenshots on PC" /><figcaption><small role="credit">McAfee / Tom's Guide</small></figcaption></figure></figure><p>This service constantly monitors the internet, including the dark web, for any identity theft, fraud or breaches. You can add credit cards, passports, national IDs, email addresses, and even different usernames. McAfee will then send you timely security alerts and provide guidance as to how to protect yourself. I put in a few different email addresses and usernames (such as the one I use on Instagram) and McAfee didn’t find any active breaches.</p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/nJmWkNpnxkReXJL9XKGFW9-1920-80.jpg" alt="McAfee+ Premium screenshots on PC" /><figcaption><small role="credit">McAfee / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/uJNRHXKbrLeup6g44kpAX9-1920-80.jpg" alt="McAfee+ Premium screenshots on PC" /><figcaption><small role="credit">McAfee / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/fHv3DFDv9on8o56xXBKjd8-1920-80.jpg" alt="McAfee+ Premium screenshots on PC" /><figcaption><small role="credit">McAfee / Tom's Guide</small></figcaption></figure></figure><p>Next, I tried File Shredder, and it’s similar to the one you get with Malwarebytes. It enables you to permanently delete files to varying degrees, and it essentially overwrites data several times so there’s no trace left. Think of it like shredding a physical paper document to ensure no one else can read it. It worked well in my testing, as I used it to permanently delete files in the PC’s recycle bin.</p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/X866ffB5ajCGEZ95Bn38X9-1920-80.jpg" alt="McAfee+ Premium screenshots on PC" /><figcaption><small role="credit">McAfee / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/QspPRAakcsZVkG79WtKr69-1920-80.jpg" alt="McAfee+ Premium screenshots on PC" /><figcaption><small role="credit">McAfee / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/JxwP7BcxHoJJazvwCSuZg8-1920-80.jpg" alt="McAfee+ Premium screenshots on PC" /><figcaption><small role="credit">McAfee / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/ASWdQuRLh4vDf2FsrGkmk8-1920-80.jpg" alt="McAfee+ Premium screenshots on PC" /><figcaption><small role="credit">McAfee / Tom's Guide</small></figcaption></figure></figure><p>There’s also a handy Tracker Remover tool which, as its name suggests, removes unwanted items, like temporary files and cookies that sites could potentially use to track you online. The Tracker Remover reviews temporary files, recycle bin items, browser cookies and trackers, and browser history, and then deletes them if they aren’t needed. In my testing, it took just under two minutes to free up 1.14 GB and remove 3,000 items.</p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/8PHUQ5N2sympePokGMTrV9-1920-80.jpg" alt="McAfee+ Premium screenshots on PC" /><figcaption><small role="credit">McAfee / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/W6nTfBzSXBRZutzwHsMyo8-1920-80.jpg" alt="McAfee+ Premium screenshots on PC" /><figcaption><small role="credit">McAfee / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/XGntnUj9W3QgAXyifocfX9-1920-80.jpg" alt="McAfee+ Premium screenshots on PC" /><figcaption><small role="credit">McAfee / Tom's Guide</small></figcaption></figure></figure><p>Last but not least, I tried McAfee’s unlimited Secure VPN which is included in every subscription plan. It masks your IP address using bank-grade AES 256-bit encryption and connecting to servers located in almost 50 countries. The VPN takes less than a minute to connect to your chosen country and once that’s done, your online identity and location are protected. You can customize it to connect automatically when joining a network with weak security, for instance, and even add trusted networks where the VPN shouldn’t be activated.</p><h2 class="article-body__section" id="section-mcafee-premium-review-interface"><span>McAfee+ Premium review: Interface</span></h2><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/NTGR99dgp4dZdRcEMVcAA8-1920-80.jpg" alt="McAfee+ Premium screenshots on PC" /><figcaption><small role="credit">McAfee / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/JZLU8M99ji7HgVtStnAD78-1920-80.jpg" alt="McAfee+ Premium screenshots on PC" /><figcaption><small role="credit">McAfee / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/JexoX4DFjZDy6JBGq5b3g9-1920-80.jpg" alt="McAfee+ Premium screenshots on PC" /><figcaption><small role="credit">McAfee / Tom's Guide</small></figcaption></figure></figure><p>McAfee sports a clean and user-friendly interface, and I’ve had no issues using it whatsoever. The online dashboard, <a href="https://myaccount.mcafee.com/v2/" target="_blank" rel="nofollow">McAfee My Account</a>, gives you quick access to your subscription details and it lets you edit billing and renewal details. The downloaded software is straightforward to use and understand, too, thanks to plenty of signposting and explanations.</p><p>But unlike Malwarebytes, the McAfee app’s window can’t be maximized or made full-size, which means you have to scroll through the various settings one by one. This isn’t uncommon, though, as neither Bitdefender’s nor Avast One’s windows can be made to take up the full screen.</p><p>The McAfee mobile app is just as user-friendly if not more. The initial download took just 130MB of space on my Google Pixel 10 Pro XL — though this will naturally grow with use.</p><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/uAGcnj3D4PJRhEhbt6Tzf9-1920-80.jpg" alt="McAfee+ Premium screenshots on PC" /><figcaption><small role="credit">McAfee / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/QEtuXhHfL23fKiXbFL5Vb9-1920-80.jpg" alt="McAfee+ Premium screenshots on PC" /><figcaption><small role="credit">McAfee / Tom's Guide</small></figcaption></figure></figure><p>I’ve seen many online users complaining about the uninstallation process on desktop. However, I didn’t experience any issues uninstalling McAfee from our testing rig. I wasn’t prompted again and again to keep the software, and it took just under 10 minutes to remove the software and restart my machine.</p><h2 class="article-body__section" id="section-mcafee-premium-review-support"><span>McAfee+ Premium review: Support</span></h2><figure role="gallery"><figure><img src="https://cdn.mos.cms.futurecdn.net/sNT5zeMosnvZ2M2GEBsuL8-1920-80.jpg" alt="McAfee+ Premium screenshots on PC" /><figcaption><small role="credit">McAfee / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/ptrfa3aKXLDEXbzCSBGEP8-1920-80.jpg" alt="McAfee+ Premium screenshots on PC" /><figcaption><small role="credit">McAfee / Tom's Guide</small></figcaption></figure><figure><img src="https://cdn.mos.cms.futurecdn.net/fxmteuzhdAuPaFYHJGGTS8-1920-80.jpg" alt="McAfee+ Premium screenshots on PC" /><figcaption><small role="credit">McAfee / Tom's Guide</small></figcaption></figure></figure><p>If you find yourself in a pickle or have any questions about McAfee and your subscription, you can get in touch with customer support either via <a href="https://www.mcafee.com/support/s/?language=en_US" target="_blank" rel="nofollow">online chat</a> or over the phone. This is a similar level of support to what’s offered by Bitdefender and Norton 360.</p><p>I tested out the online chat function and I found it super easy to use. I asked the AI assistant a question and it answered promptly (and accurately). I then asked to speak to a human and within a couple of minutes, I was connected to a human agent. I like that I didn’t have to keep explaining <em>why </em>I needed to speak to a person.</p><p>If you need immediate assistance and can’t be bothered by typing, you can always ring <a href="https://www.mcafee.com/support/s/contactsupport" target="_blank" rel="nofollow">McAfee’s customer service team</a> which is available 24/7. It’s nice that McAfee offers phone support, unlike Malwarebytes. It makes getting help easier.</p><h2 class="article-body__section" id="section-mcafee-premium-review-verdict"><span>McAfee+ Premium review: Verdict</span></h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="SovGxRexYjntV4ze63sirN" name="McAfee_" alt="McAfee+ Premium antivirus software" src="https://cdn.mos.cms.futurecdn.net/SovGxRexYjntV4ze63sirN-1920-80.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>McAfee+ Premium is a strong all-round antivirus package that doesn’t skimp on features and tools that keep you safe online and offline. Protection is excellent, independent lab results are consistent (and impressive), and the software doesn’t get in the way when you’re gaming or browsing the internet. The user experience is sublime, too, as the software sports a clean, user-friendly interface.</p><p>There are a couple of catches, though, such as the Full Scan taking over 35 minutes to complete in our testing. While the cost for the first year isn’t much more than its competitors, renewal price can feel quite steep. Are either of those dealbreakers? Not necessarily, as they’re overshadowed by everything else on offer.</p><p>At the end of the day, McAfee delivers a polished, capable antivirus suite that goes toe-to-toe with the likes of Norton 360 and Bitdefender.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ The 256GB laptop is the new 32GB phone — and it’s quietly pushing you into cloud subscriptions ]]></title>
                                                                                                <dc:content><![CDATA[ <p>There was a time not too long ago when a 32GB smartphone felt perfectly workable — potentially even spacious. Fast forward to today and apps have gotten bigger, cameras have become larger, and routine software updates now eat entire gigabytes on their own. </p><p>32GB has gone from seeming totally normal (even luxurious) to looking absurdly stingy. I think 256GB laptops are heading in the same direction. </p><p>In 2026, plenty of otherwise <a href="https://www.tomsguide.com/best-picks/best-budget-laptops">excellent laptops</a> start with 256GB of storage, despite many of the <a href="https://www.tomsguide.com/best-picks/best-phones">best smartphones</a> offering the same amount. At first, 256GB might be enough, but after months or years of apps, photos, downloads, and updates, that breathing room is just... gone.</p><p>And when it does go, <a href="https://www.tomsguide.com/reviews/windows-11">Windows 11</a> and <a href="https://www.tomsguide.com/computing/macos/apple-macos-tahoe-review">macOS</a> have a very convenient answer waiting in the wings: move more of your stuff into the cloud — and, sooner or later, start paying for it.</p><div class="product"><a data-dimension112="bdce9650-972a-11f1-bf3c-f145984e235b" data-action="Deal Block" data-label="13" MacBook Air (M5)" data-dimension48="13" MacBook Air (M5)" data-dimension25="$1297" href="https://www.amazon.com/Apple-2026-MacBook-13-inch-Laptop/dp/B0GR1JTFP8?th=1" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1500px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="2S3mMDzKcdQKAxWc4wGxDQ" name="MacBook Air M5 deal" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/2S3mMDzKcdQKAxWc4wGxDQ-1920-80.jpg" mos="" align="middle" fullscreen="" width="1500" height="1500" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/Apple-2026-MacBook-13-inch-Laptop/dp/B0GR1JTFP8?th=1" target="_blank" rel="nofollow" data-dimension112="bdce9650-972a-11f1-bf3c-f145984e235b" data-action="Deal Block" data-label='13" MacBook Air (M5)' data-dimension48='13" MacBook Air (M5)' data-dimension25="$1297">13" MacBook Air (M5): $1297</a></strong><br />The MacBook Air has been upgraded with more power. The new laptop features a 13.6-inch (2560 x 1664) display, the new Apple M5 chip, 16GB of RAM, a 512GB SSD, and support for Wi-Fi 7 and Bluetooth 6. Although it now costs $100 more, the base model comes with a 512GB SSD instead of 256GB.<a class="view-deal button" href="https://www.amazon.com/Apple-2026-MacBook-13-inch-Laptop/dp/B0GR1JTFP8?th=1" target="_blank" rel="nofollow" data-dimension112="bdce9650-972a-11f1-bf3c-f145984e235b" data-action="Deal Block" data-label="13" MacBook Air (M5)" data-dimension48="13" MacBook Air (M5)" data-dimension25="$1297">View Deal</a></p></div><h2 id="256gb-isn-t-tiny-and-that-s-exactly-the-problem">256GB isn’t tiny — and that’s exactly the problem</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:6000px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="iQBUvBQeStovV4YftmSdMZ" name="Lenovo Chromebook Plus 14" alt="Lenovo Chromebook Plus 14" src="https://cdn.mos.cms.futurecdn.net/iQBUvBQeStovV4YftmSdMZ-1920-80.jpg" mos="" align="middle" fullscreen="" width="6000" height="3376" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>The funny part, if we can call it that, is that 256GB can feel perfectly comfortable for those who live inside a browser. But there's a difference between having enough storage and having enough room to <em>grow</em>.</p><p>We’ve previously said that <a href="https://www.tomsguide.com/computing/laptops/5-things-to-look-for-when-buying-a-laptop-from-someone-who-reviews-them-for-a-living">256GB is the bare minimum</a> you should look for in a general-purpose laptop, and that increasingly feels spot on in 2026.  </p><p>It’s definitely enough to get by, but it doesn’t leave you with a huge amount of headroom for the future. In a world where a single <a href="https://www.tomsguide.com/entertainment/music-streaming/spotifys-latest-update-makes-organizing-your-music-easier-plus-improved-offline-downloads">Spotify</a> playlist with 1,000 songs can take up nearly 10GB of space, bigger is better.  </p><p>You can actually see the shift happening elsewhere in the market: Apple’s latest <a href="https://www.tomsguide.com/computing/macbooks/macbook-air-m5-review">MacBook Air</a> now starts with 512GB, an upgrade we welcomed, while many <a href="https://www.tomsguide.com/best-picks/best-budget-laptops">budget laptops</a> continue to stick with 256GB to keep their prices down.</p><p>There is, of course, some nuance to this picture. A <a href="https://www.tomsguide.com/news/best-chromebook-deals-prices">cheap Chromebook</a> or secondary laptop definitely doesn’t need a huge SSD, and with memory prices soaring, buying decisions are becoming harder than ever.</p><p>But for a laptop you expect to use as your main computer for the next five-plus years, 256GB looks less like a specification and more like a compromise.</p><h2 id="your-laptop-can-last-years-but-its-storage-can-t-grow-with-it">Your laptop can last years, but its storage can’t grow with it</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ywqirqeDaWNqKZgmGgbrqF" name="macbook air m4" alt="macbook air m4" src="https://cdn.mos.cms.futurecdn.net/ywqirqeDaWNqKZgmGgbrqF-1920-80.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Apple)</span></figcaption></figure><p>At a basic level, storage is one of the few parts of a laptop that can become more restrictive simply through normal use.</p><p>Photos, downloads, apps, offline media, assorted files, and everything else you acquire from day to day gradually pile up, while the SSD you bought on day one stays the same size. This situation is less of a problem if you can simply replace the SSD later. </p><p>Some Windows laptops, like the excellent <a href="https://www.tomsguide.com/computing/laptops/framework-laptop-13-pro-revealed-and-its-a-ground-up-redesign-of-our-favorite-modular-laptop">Framework models</a>, still make that relatively straightforward, but plenty of thin-and-light notebooks — including <a href="https://www.tomsguide.com/computing/macbooks/i-review-macbooks-for-a-living-and-these-are-the-biggest-developments-i-expect-in-2026">MacBooks</a> — effectively lock you into whatever capacity you choose at checkout.</p><div class="product"><a data-dimension112="bdce9718-972a-11f1-b4e8-7590d6ebcb98" data-action="Deal Block" data-label="Laptop 16 (2025)" data-dimension48="Laptop 16 (2025)" data-dimension25="$1599" href="https://frame.work/laptop16" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1305px;"><p class="vanilla-image-block" style="padding-top:69.04%;"><img id="fnhfRVzYGyhBCo8Ng2wFJn" name="Framework Laptop 16.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/fnhfRVzYGyhBCo8Ng2wFJn-1920-80.jpg" mos="" align="middle" fullscreen="" width="1305" height="901" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://frame.work/laptop16" target="_blank" rel="nofollow" data-dimension112="bdce9718-972a-11f1-b4e8-7590d6ebcb98" data-action="Deal Block" data-label="Laptop 16 (2025)" data-dimension48="Laptop 16 (2025)" data-dimension25="$1599">Laptop 16 (2025): $1599</a></strong><br />The Framework Laptop 16 is a fully customizable, repairable, and upgradable laptop. It now includes the option to outfit it with an Nvidia GeForce RTX 5070 graphics card. In our <a href="https://www.tomsguide.com/computing/laptops/framework-laptop-16-2025-review">Framework Laptop 16 review,</a> we called the Editor's Choice machine our favorite laptop of the year and a must-buy for DIYers and folks who value their right to repair.<a class="view-deal button" href="https://frame.work/laptop16" target="_blank" rel="nofollow" data-dimension112="bdce9718-972a-11f1-b4e8-7590d6ebcb98" data-action="Deal Block" data-label="Laptop 16 (2025)" data-dimension48="Laptop 16 (2025)" data-dimension25="$1599">View Deal</a></p></div><h2 id="conveniently-there-s-a-subscription-for-that">Conveniently, there’s a subscription for that</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2112px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="6vEt8qRjSJA8ncGGUriukH" name="Framework Laptop 13 upgradeable" alt="Framework Laptop 13 being upgraded with new memory" src="https://cdn.mos.cms.futurecdn.net/6vEt8qRjSJA8ncGGUriukH-1920-80.jpg" mos="" align="middle" fullscreen="" width="2112" height="1188" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Framework)</span></figcaption></figure><p>Running low on storage is less painful than it used to be, mainly because Windows and macOS are extremely good at pushing files to the cloud.</p><p>OneDrive’s <a href="https://www.tomsguide.com/reviews/microsoft-onedrive-review">Files On-Demand feature</a>, for example, lets files remain visible in File Explorer without actually taking up space, while macOS can automatically move less frequently used files into <a href="https://www.tomsguide.com/phones/iphones/i-pay-for-icloud-not-for-storage-but-for-this-perk-instead">iCloud</a> when space starts running low.</p><p>There's no denying that these are genuinely useful features that save people a lot of hassle; having to actively choose what to delete is tough, and decision paralysis is real. </p><p>The problem comes when cloud storage starts compensating for your laptop's limited built-in storage.</p><p>Both OSes make that transition remarkably easy: You fill the SSD, move more into the cloud, and eventually find yourself paying for extra capacity. Almost without noticing, an understandable hardware compromise becomes yet another subscription.</p><p><a href="https://www.tomsguide.com/buying-guide/best-cloud-storage">Cloud storage</a> also isn’t a like-for-like replacement for local storage. Apps, games, caches, and plenty of other files still need SSD space, while online-only files naturally depend on an internet connection.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-eBz6Ke"></div>                            </div>                            <script src="https://kwizly.com/embed/eBz6Ke.js" async=""></script><h2 id="ai-is-making-the-obvious-solution-harder">AI is making the obvious solution harder</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="xvJgTcuknLbUZo9QawcVzi" name="macbook neo" alt="macbook neo" src="https://cdn.mos.cms.futurecdn.net/xvJgTcuknLbUZo9QawcVzi-1920-80.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>The obvious answer would be for 512GB to become the new baseline. Unfortunately, 2026 is turning out to be a pretty terrible year for that transition.</p><p>As you might have read, the <a href="https://www.tomsguide.com/computing/ram-price-crisis-2026-everything-you-need-to-know">RAMageddon</a> is also putting pressure on the storage inside our laptops, as well as <a href="https://www.tomsguide.com/gaming/best-games-consoles">consoles</a>, <a href="https://www.tomsguide.com/best-picks/best-cheap-tablets">tablets</a>, <a href="https://www.tomsguide.com/best-picks/best-phones">smartphones</a>, and, well, pretty much every consumer device.</p><p>Data centres need vast amounts of memory and storage to keep AI services running, and that extra demand is making the components used in consumer SSDs more expensive too.</p><p>We’ve already seen how the wider memory crunch is <a href="https://www.tomsguide.com/computing/laptops/buying-a-laptop-in-2026-is-complicated-heres-a-survival-guide-to-help-you-make-the-best-choice">affecting the laptop market</a>, with manufacturers facing higher component costs and difficult decisions over where to make compromises. Even usually unflappable giants like Apple are <a href="https://www.tomsguide.com/computing/macbooks/apple-price-hikes-are-official-heres-how-much-more-youll-pay-for-macbooks-and-ipads-now">raising prices</a> across the board. </p><p>All of this makes sticking with 256GB easier to understand, even if it doesn’t make it any more appealing. The 256GB laptop isn’t obsolete yet. But, like the 32GB phone before it, its days as an acceptable default should be numbered.</p><div data-widget-type="multimodelreview" data-model-name="Apple MacBook Neo,Dell XPS 13"></div><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/claude/claude-is-watermarking-every-response-heres-what-that-means-if-you-use-ai-for-writing">Claude is now watermarking every response — here's what that means if you use AI for writing</a></li><li><a href="https://www.tomsguide.com/computing/gaming-laptops/hyperx-omen-15-review">I tested the HyperX Omen 15, and it almost made me forget my PS5</a></li><li><a href="https://www.tomsguide.com/phones/google-pixel-phones/i-checked-out-the-pixel-11-pixel-11-pro-and-pixel-11-pro-xl-heres-the-one-i-recommend">I checked out the Pixel 11, Pixel 11 Pro, and Pixel 11 Pro XL — here’s the one I recommend</a></li></ul><div class="vizualizer-embed"><div class="tg-df-widget-host" data-widget-config="?search=laptops&amp;min_discount_ratio=0.95&amp;widget_title=Top+Deals+Handpicked+by+Our+Editors&amp;widget_subtitle=Discover+the+best+discounts+currently+available%2C+curated+daily+by+the+Tom%27s+Guide+Savings+Squad.&amp;bg_color=transparent" data-vizualizer-embed="true"></div>    <script>    /**     * Tom's Guide Deals Finder - Vanilla JS Encapsulated Engine     */    (function() {      // --- Freyr Analytics Adapter ---      function initAnalytics() {        window.dataLayer = window.dataLayer || [];        window.googletag = window.googletag || {};        window.googletag.cmd = window.googletag.cmd || [];        window.hawk = window.hawk || { analytics: { freyr: [] } };        window.hawk.analytics = window.hawk.analytics || { freyr: [] };        window.hawk.analytics.freyr = window.hawk.analytics.freyr || [];        window.freyr = window.freyr || { cmd: [] };        const scriptSrc = 'https://freyr.futurecdn.net/freyr.js';        const hostname = typeof window !== 'undefined' ? window.location.hostname : '';        const isTestEnv = typeof window.navigator !== 'undefined' && (window.navigator.webdriver || window.navigator.userAgent.includes('Headless'));        const shouldSendRealAnalytics = !isTestEnv && hostname && hostname !== 'localhost' && hostname !== '127.0.0.1' && !hostname.includes('run.app');        if (shouldSendRealAnalytics && !document.querySelector(`script[src="${scriptSrc}"]`)) {          const script = document.createElement('script');          script.src = scriptSrc;          script.async = true;          document.head.appendChild(script);        }      }      function storeEventForDebug(name, data) {        if (!window.hawk || !window.hawk.analytics || !window.hawk.analytics.freyr) return;        window.hawk.analytics.freyr.push({ name, data });        try {          if (typeof window !== 'undefined' && window.localStorage) {            window.localStorage.setItem("hawk", JSON.stringify(window.hawk));          }        } catch (e) {          // Ignore storage issues        }        try {          window.dispatchEvent(new CustomEvent("hawk-analytics-update"));        } catch (e) {}      }      function sendToFreyr(eventName, data) {        if (typeof window === 'undefined') return;        window.freyr = window.freyr || { cmd: [] };        window.freyr.cmd.push(() => {          if (window.freyr && window.freyr.pushAndUpdate) {            window.freyr.pushAndUpdate(eventName, data);          }        });      }      function sendEvent(event, skip = false) {        try {          storeEventForDebug(event.name, event.data);          if (!skip) {            sendToFreyr(event.name, event.data);          }        } catch (e) {          // Ensure tracking errors don't surface to the user        }      }      function getCookie(name) {        try {          const match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)'));          return match ? match[2] : null;        } catch (e) {          return null;        }      }      function normalizeCurrency(symbol) {        const map = {          '£': 'GBP',          '$': 'USD',          'A$': 'AUD',          'CA$': 'CAD',          '€': 'EUR'        };        return map[symbol] || symbol;      }      function trackElementInteraction(props) {        sendEvent({          name: 'elementInteraction',          data: {            element: {              action: props.action || "click",              id: props.id || undefined,              class: props.class || undefined,              name: props.name || undefined,              text: props.text || undefined,              label: props.label || undefined,              container: props.container || undefined,              url: props.url || undefined,              articleId: props.articleId || undefined            }          }        });      }      function generateRevenueId(url, productName, merchantName, modelId) {        const str = `${window.location.href}|${productName}|${merchantName}|${modelId || ''}|${new Date().toDateString()}|tomsguide`;        let hash = 0;        for (let i = 0; i < str.length; i++) {          const char = str.charCodeAt(i);          hash = ((hash << 5) - hash) + char;          hash = hash & hash;        }        let numericStr = Math.abs(hash).toString();        while (numericStr.length < 19) {          numericStr += Math.floor(Math.random() * 10).toString();        }        return numericStr.substring(0, 19);      }      function rewriteAffiliateLink(url, territory, revenueId) {        if (!url) return url;        const t = (territory || 'gb').toLowerCase();        return url.replace(/hawk-custom-tracking/g, `tomsguide-${t}-${revenueId}`);      }      function trackHawkEvent(params) {        const { clickType, widgetId, productCategoryName, product, productsArray, zeroBasedProductIndexOrNull, totalDealsOrProducts, areaClicked, merchant, revenueId, isoCurrencyCode, queryName, widgetTypeName } = params;        const data = {          event: "hawkEvent",          category: "Affiliates",          affiliate: {            action: {              type: clickType,              id: widgetId,              event: clickType === "appeared" ? "viewed" : "Click from",              timestamp: Date.now()            },            component: {              flag: "Editor",              product: productCategoryName || "deals",              category: `Signal Deal Finder ${widgetTypeName || "Carousel"} widget`,              type: clickType === "appeared" ? "review" : "signal product",              label: queryName || (product ? (product.name || "") : ""),              index: zeroBasedProductIndexOrNull === null || zeroBasedProductIndexOrNull === undefined ? -1 : zeroBasedProductIndexOrNull,              linkCount: totalDealsOrProducts || 0,              blockLayout: "",              areaClicked: areaClicked || ""            }          },          products: productsArray || (product && merchant ? [            {              product: {                primary: {                  id: product.id || product.matchId || null,                  name: product.name,                  type: "deal",                  price: product.price,                  previousPrice: product.previousPrice || null,                  currency: isoCurrencyCode || "USD",                  preorder: false,                  labels: [],                  link: product.link,                  originalLink: product.originalLink || null,                  revenueId: revenueId || null,                  startTime: null,                  endTime: null,                  voucherCode: null,                  voucherAudience: null,                  voucherPercentageSaving: null,                  voucherMoneySaving: null,                  voucherType: null,                  offerExclusive: false,                  offerScope: null,                  globalId: product.globalId || null,                  inStock: product.inStock !== false,                  contractProvider: null,                  contractMinutes: null,                  contractTexts: null,                  contractData: null,                  contractLength: null,                  contractMonthlyPrice: null,                  contractCurrency: isoCurrencyCode || "USD"                }              },              merchant: {                id: merchant.id || null,                name: merchant.name,                url: merchant.url || null,                network: merchant.network || null              },              model: {                id: product.modelId || null,                brand: product.brand || null,                name: product.name,                parent: product.parent || null              }            }          ] : []),          reviews: [],          _clear: true,          "gtm.uniqueEventId": Date.now() % 10000        };        sendEvent({ name: 'hawkEvent', data });      }      function trackDealClick(params) {        trackHawkEvent({ ...params, clickType: "retailer", areaClicked: "Signal Product Card" });      }      function trackViewSimilarClick(params) {        trackHawkEvent({ ...params, clickType: "retailer", areaClicked: "Signal Product Card View Similar" });      }      function trackPriceComparisonClick(params) {        trackHawkEvent({ ...params, clickType: "retailer", areaClicked: "Signal Price Comparison" });      }      function trackReviewClick(params) {        trackHawkEvent({ ...params, clickType: "review", areaClicked: "Signal Product Card Review Link" });      }      function trackShare(params) {        trackHawkEvent({ ...params, clickType: "share", areaClicked: "Signal Product Card Share" });      }      function trackDealsAppeared(widgetId, deals, revenueId, currency, queryName, widgetTypeName) {         if (!deals || deals.length === 0) return;                  const productsArray = deals.slice(0, 50).map((deal) => {            let voucherPct = null;            let rawPrice = parseFloat(deal.rawPrice) || parseFloat(deal.price) || null;            let rawMsrp = parseFloat(deal.rawMsrp) || parseFloat(deal.msrp) || null;            if (rawMsrp > rawPrice && rawPrice > 0) {              voucherPct = Math.round((1 - (rawPrice / rawMsrp)) * 100);            }            let numId = null;            if (deal.externalProductId && !isNaN(parseInt(deal.externalProductId))) {              numId = parseInt(deal.externalProductId);            } else if (deal.id && !isNaN(parseInt(deal.id))) {              numId = parseInt(deal.id);            } else {              numId = deal.matchId || null;            }            return {              product: {                primary: {                  id: numId,                  name: deal.productName || deal.title || "",                  type: "deal",                  price: rawPrice,                  previousPrice: rawMsrp,                  currency: currency || 'USD',                  preorder: false,                  labels: deal.modelBrand || deal.brand ? [                     { type: "brand", value: deal.modelBrand || deal.brand }                  ] : [],                  link: deal.url,                  originalLink: deal.url,                  revenueId: revenueId || null,                  startTime: null,                  endTime: null,                  voucherCode: null,                  voucherAudience: null,                  voucherPercentageSaving: voucherPct,                  voucherMoneySaving: null,                  voucherType: null,                  offerExclusive: false,                  offerScope: null,                  globalId: deal.productKey || null,                  inStock: deal.inStock !== false,                  contractProvider: null,                  contractMinutes: null,                  contractTexts: null,                  contractData: null,                  contractLength: null,                  contractMonthlyPrice: null,                  contractCurrency: currency || 'USD'                }              },              merchant: {                id: deal.merchantId ? parseInt(deal.merchantId) : null,                name: deal.merchant || "Retailer",                url: deal.merchantUrl || null,                network: deal.merchantNetwork || null              },              model: {                id: deal.modelId ? parseInt(deal.modelId) : null,                brand: deal.modelBrand || deal.brand || null,                name: deal.productName || deal.title || "",                parent: deal.modelParent || null              }            };         });                  trackHawkEvent({             clickType: "appeared",             widgetId: widgetId,             productCategoryName: "deals",             zeroBasedProductIndexOrNull: null,             totalDealsOrProducts: deals.length,             productsArray: productsArray,             queryName: queryName,             widgetTypeName: widgetTypeName         });      }      // 1. Setup Shadow DOM Sandbox      const currentScript = document.currentScript;      let hostContainer = null;      let template = null;            if (currentScript) {        let prev = currentScript.previousElementSibling;        while (prev) {          if (prev.tagName === 'TEMPLATE' && prev.classList.contains('tg-df-widget-template')) {            template = prev;          } else if (prev.tagName === 'DIV' && prev.classList.contains('tg-df-widget-host') && !prev.hasAttribute('data-initialized')) {            hostContainer = prev;            break;          }          prev = prev.previousElementSibling;        }      }            // Fallbacks in case script is deferred      if (!hostContainer) {        const hosts = document.querySelectorAll('.tg-df-widget-host:not([data-initialized])');        if (hosts.length > 0) hostContainer = hosts[0];      }            // Safely embedded template for CMS environments      const rawTemplate = `  \x3Cstyle>    /* --- Shadow DOM Base Reset --- */    *, *::before, *::after {      box-sizing: border-box;    }    img, picture, svg, video {      max-width: 100%;      height: auto;      display: block;    }    /*       1. Scoped CSS for Tom's Guide Deals Widget       All classes are prefixed with \`tg-df-\` to prevent CMS style leakage.    */    .tg-df-container {      container-type: inline-size;      container-name: tg-df;      --tg-df-blue: #1F69FF;      --tg-df-blue-hover: #004d8c;      --tg-df-text: #222222;      --tg-df-text-muted: #555555;      --tg-df-bg: #ffffff;      --tg-df-bg-secondary: #f4f4f4;      --tg-df-border: #e2e8f0;      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;      color: var(--tg-df-text);      background-color: transparent;       width: 100%;      max-width: 1200px;      margin: 0 auto;      padding-bottom: 24px;    }    .tg-df-container *, .tg-df-container *::before, .tg-df-container *::after {      margin: 0;      padding: 0;      box-sizing: border-box;    }    .tg-df-container img {      border: none;      margin: 0;      padding: 0;    }    .tg-df-container a {      text-decoration: none;      color: inherit;    }    /*       2. Search & Filter Bar    */    .tg-df-controls {      display: flex;      flex-direction: column;      align-items: center;      gap: 20px;      margin-bottom: 32px;      width: 100%;    }    .tg-df-top-bar {      display: flex;      width: 100%;      max-width: 760px;      gap: 12px;      align-items: center;    }    .tg-df-search-wrapper {      position: relative;      flex: 1;      width: 100%;      box-shadow: 0 8px 24px rgba(0,0,0,0.06);      border-radius: 40px;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      z-index: 100;    }    .tg-df-autocomplete-dropdown {      position: absolute;      top: calc(100% + 4px);      left: 0;      right: 0;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 12px;      box-shadow: 0 8px 32px rgba(0,0,0,0.12);      max-height: 300px;      overflow-y: auto;      z-index: 200;      display: none;    }    .tg-df-autocomplete-dropdown.active {      display: block;    }    .tg-df-autocomplete-item {      padding: 12px 24px;      cursor: pointer;      font-size: 14px;      color: var(--tg-df-text);      transition: background 0.1s ease;    }    .tg-df-autocomplete-item:hover {      background: var(--tg-df-bg-secondary);    }    .tg-df-search-input {      width: 100%;      padding: 16px 64px 16px 24px;      font-size: 16px;      border: 2px solid transparent;      border-radius: 40px;      outline: none;      transition: border-color 0.2s ease, box-shadow 0.2s ease;      color: var(--tg-df-text);      background: transparent;    }    .tg-df-search-input:focus {      border-color: transparent;      box-shadow: 0 0 0 3px rgba(0, 108, 196, 0.15);    }    .tg-df-search-input::placeholder {      color: #999999;    }        .tg-df-search-btn {      position: absolute;      right: 8px;      top: 50%;      transform: translateY(-50%);      width: 40px;      height: 40px;      border-radius: 50%;      background: #222;      border: none;      display: flex;      align-items: center;      justify-content: center;      cursor: pointer;      transition: background 0.2s ease;    }        .tg-df-search-btn:hover {      background: #000;    }    .tg-df-search-icon {      width: 16px;      height: 16px;      fill: #fff;    }    .tg-df-settings-wrapper {      position: relative;    }        .tg-df-settings-btn {      width: 48px;      height: 48px;      border-radius: 50%;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      box-shadow: 0 4px 12px rgba(0,0,0,0.04);      display: flex;      align-items: center;      justify-content: center;      cursor: pointer;      transition: all 0.2s ease;      color: var(--tg-df-text-muted);      flex-shrink: 0;    }    .tg-df-settings-btn:hover {      background: var(--tg-df-bg-secondary);      border-color: #0000ff;      color: var(--tg-df-text);    }    .tg-df-settings-btn svg {      width: 24px;      height: 24px;      fill: currentColor;    }    .tg-df-settings-dropdown {      position: absolute;      top: calc(100% + 8px);      right: 0;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 12px;      box-shadow: 0 8px 32px rgba(0,0,0,0.12);      width: 280px;      padding: 20px;      display: none;      z-index: 100;      flex-direction: column;      gap: 20px;    }    .tg-df-settings-dropdown.active {      display: flex;    }        .tg-df-settings-dropdown-backdrop {      display: none;      position: fixed;      inset: 0;      z-index: 99;    }        .tg-df-settings-dropdown-backdrop.active {      display: block;    }    .tg-df-setting-item {      display: flex;      flex-direction: column;      gap: 10px;    }    .tg-df-setting-label {      font-size: 11px;      font-weight: 700;      color: var(--tg-df-text-muted);      text-transform: uppercase;      letter-spacing: 0.5px;    }        .tg-df-region-select {        padding: 10px 12px;        border-radius: 8px;        border: 1px solid var(--tg-df-border);        font-size: 15px;        outline: none;        background: var(--tg-df-bg-secondary);        color: var(--tg-df-text);        cursor: pointer;        width: 100%;    }    .tg-df-toggle {        position: relative;        display: inline-block;        width: 44px;        height: 24px;        flex-shrink: 0;    }    .tg-df-toggle input {        opacity: 0;        width: 0;        height: 0;    }    .tg-df-slider {        position: absolute;        cursor: pointer;        top: 0; left: 0; right: 0; bottom: 0;        background-color: #ccc;        transition: .2s;        border-radius: 24px;    }    .tg-df-slider:before {        position: absolute;        content: "";        height: 18px;        width: 18px;        left: 3px;        bottom: 3px;        background-color: white;        transition: .2s;        border-radius: 50%;    }    .tg-df-toggle input:checked + .tg-df-slider {        background-color: #1F69FF;    }    .tg-df-toggle input:checked + .tg-df-slider:before {        transform: translateX(20px);    }    .tg-df-dl-row {        flex-direction: row;        align-items: center;        justify-content: space-between;    }    .tg-df-dl-row-text {        font-size: 14px;        font-weight: 600;        color: var(--tg-df-text);    }    .tg-df-dl-row-subtext {        font-size: 12px;        font-weight: 400;        line-height: 1.3;        color: var(--tg-df-text-muted);        margin-top: 4px;        display: block;    }    .tg-df-filters {      display: flex;      gap: 12px;      justify-content: center;      flex-wrap: wrap;    }    .tg-df-sort-wrapper {      position: relative;      display: flex;      align-items: center;    }        .tg-df-sort-icon {      position: absolute;      left: 14px;      width: 14px;      height: 14px;      fill: var(--tg-df-text-muted);      pointer-events: none;    }    .tg-df-sort-select, .tg-df-filter-select {      padding: 10px 36px 10px 38px;      font-size: 14px;      border: 1px solid var(--tg-df-border);      border-radius: 100px;      outline: none;      appearance: none;      background-color: var(--tg-df-bg-secondary);      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 12 12'%3E%3Cpath fill='%23555555' d='M6 8L1 3h10z'/%3E%3C/svg%3E");      background-repeat: no-repeat;      background-position: right 14px center;      color: var(--tg-df-text);      cursor: pointer;      font-weight: 500;      transition: all 0.2s ease;    }        .tg-df-price-input::-webkit-outer-spin-button,    .tg-df-price-input::-webkit-inner-spin-button {      -webkit-appearance: none;      margin: 0;    }    .tg-df-price-input {      -moz-appearance: textfield;    }    .tg-df-sort-select:hover, .tg-df-filter-select:hover {      background-color: #e2e8f0;    }    .tg-df-multiselect-container {      position: relative;    }        .tg-df-multiselect-trigger {      display: block;      background: #fff;      user-select: none;      width: 100%;      overflow: hidden;      white-space: nowrap;      text-overflow: ellipsis;    }        .tg-df-multiselect-dropdown {      display: none;      position: absolute;      top: calc(100% + 4px);      left: 0;      width: 100%;      min-width: 220px;      max-height: 300px;      overflow-y: auto;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 8px;      box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);      z-index: 100;      padding: 8px 0;    }    .tg-df-multiselect-dropdown.active {      display: block;    }    .tg-df-ms-option {      padding: 8px 16px;      display: flex;      align-items: center;      gap: 8px;      cursor: pointer;      font-size: 14px;    }    .tg-df-ms-option:hover {      background-color: var(--tg-df-bg-secondary);    }        .tg-df-ms-option input {      cursor: pointer;      accent-color: #1f69ff;    }    .tg-df-sort-select:focus, .tg-df-filter-select:focus {      border-color: #0000ff;      box-shadow: 0 0 0 3px rgba(0, 0, 255, 0.2);      background-color: var(--tg-df-bg);    }    /*       3. Deal Grid Layout    */    .tg-df-grid.tg-df-grid-auto {      padding-top: 24px;    }    .tg-df-grid, .tg-df-grid.layout-grid {      display: grid;      grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));      gap: 10px;    }    .tg-df-grid.layout-row {      grid-template-columns: 1fr;      gap: 16px;    }        .tg-df-grid.layout-row .tg-df-card {      flex-direction: row;      align-items: stretch;      height: auto;      box-shadow: none;      border-bottom: 1px solid var(--tg-df-border);    }    .tg-df-grid.layout-row .tg-df-card:hover {      box-shadow: none;    }    .tg-df-grid.layout-row .tg-df-card-image-box {      width: 140px;      min-width: 140px;      aspect-ratio: 3/4;      border-right: none;      padding: 16px 16px 16px 32px;    }    .tg-df-grid.layout-row .tg-df-card-body {      padding: 16px;      justify-content: space-between;    }    .tg-df-grid.layout-row .tg-df-card-title {      font-size: 15px;      margin-bottom: 16px;    }    .tg-df-grid.layout-row .tg-df-card-stars { margin-bottom: 8px; }    .tg-df-grid.layout-row .tg-df-card-footer {      flex-direction: column;      align-items: flex-start;      gap: 0;    }    .tg-df-grid.layout-row .tg-df-card-merchant-pill {      margin-bottom: 4px;    }    .tg-df-grid.layout-row .tg-df-card-price-group {      margin-bottom: 8px;    }    .tg-df-grid.layout-row .tg-df-price-group {      width: auto;    }    .tg-df-grid.layout-row .tg-df-card-cta {      width: 100%;      max-width: 200px;      padding: 10px 24px;      font-size: 13px;      flex-shrink: 0;      text-align: center;      justify-content: center;    }    /*       4. Deal Card Design    */    .tg-df-card {      position: relative;      display: flex;      flex-direction: column;      background-color: #ffffff;      border-radius: 0;      overflow: hidden;      transition: transform 0.2s ease, box-shadow 0.2s ease;      text-decoration: none;      color: inherit;      height: 100%;      box-shadow: 0 0 16px rgba(0, 0, 0, 0.08);      border: 1px solid var(--tg-df-border);    }    .tg-df-card:hover {      box-shadow: 0 0 24px rgba(0, 0, 0, 0.12);    }    .tg-df-card-image-box {      width: 100%;      aspect-ratio: 3/4;      background-color: #f8f8f8;      display: flex;      align-items: center;      justify-content: center;      position: relative;      overflow: hidden;      padding: 32px;      flex: 0 0 auto;    }    .tg-df-card-image {      max-width: 100%;      max-height: 100%;      width: auto;      height: auto;      object-fit: contain;      mix-blend-mode: multiply; /* Helps white background images blend into secondary bg */      transition: transform 0.3s ease;    }    .tg-df-card:hover .tg-df-card-image {      transform: scale(1.05); /* Zoom in on hover */    }    .tg-df-card-discount-badge {      position: absolute;      top: 12px;      left: 12px;      background: #dc2626; /* Red */      color: #ffffff;      padding: 6px 8px;      font-size: 11px;      font-weight: 500;      text-transform: uppercase;      letter-spacing: 0.5px;      border-radius: 0;      z-index: 10;    }        .tg-df-card-merchant-pill {      display: block;      padding: 0;      font-size: 11px;      font-weight: 600;      text-transform: uppercase;      letter-spacing: 0.5px;      border-radius: 0;      color: var(--tg-df-text-muted);      margin-bottom: 8px;      white-space: nowrap;      overflow: hidden;      text-overflow: ellipsis;    }    .tg-df-card-body {      padding: 16px;      display: flex;      flex-direction: column;      flex-grow: 1;      min-width: 0;    }    .tg-df-card-badges {      display: flex;      flex-wrap: wrap;      gap: 6px;      margin-bottom: 8px;    }    .tg-df-tag {      display: inline-flex;      align-items: center;      padding: 4px 6px;      font-size: 11px;      font-weight: 700;      text-transform: uppercase;      border-radius: 4px;      gap: 4px;    }    .tg-df-tag-prime {      background-color: #00A8E1;      color: #fff;    }    .tg-df-tag-coupons {      background-color: #f1f5f9;      color: #334155;      border: 1px solid #cbd5e1;      cursor: pointer;      transition: background-color 0.2s;    }    .tg-df-tag-coupons:hover {      background-color: #e2e8f0;    }        .tg-df-tag-outline {      background-color: #f1f5f9;      color: #334155;      border: 1px solid #cbd5e1;      cursor: pointer;      transition: background-color 0.2s;    }    .tg-df-tag-outline:hover {      background-color: #e2e8f0;    }        @keyframes tg-df-spin {      0% { transform: rotate(0deg); }      100% { transform: rotate(360deg); }    }    .tg-df-coupon-spinner {      border: 2px solid #e2e8f0;      border-top: 2px solid #3b82f6;      border-radius: 50%;      width: 14px;      height: 14px;      animation: tg-df-spin 1s linear infinite;      margin: 4px 8px;      display: inline-block;    }        /* Vouchers Modal */    .tg-df-modal-backdrop {      position: fixed;      top: 0; left: 0; right: 0; bottom: 0;      background: rgba(0,0,0,0.5);      z-index: 10000;      display: flex;      align-items: center;      justify-content: center;      opacity: 0;      pointer-events: none;      transition: opacity 0.3s;    }    .tg-df-modal-backdrop.active {      opacity: 1;      pointer-events: auto;    }    .tg-df-modal {      background: #fff;      border-radius: 12px;      width: 90%;      max-width: 400px;      max-height: 80vh;      display: flex;      flex-direction: column;      box-shadow: 0 10px 40px rgba(0,0,0,0.2);      transform: translateY(20px);      transition: transform 0.3s;    }    .tg-df-modal-backdrop.active .tg-df-modal {      transform: translateY(0);    }    .tg-df-modal-header {      padding: 16px;      border-bottom: 1px solid #e2e8f0;      display: flex;      align-items: center;      justify-content: space-between;    }    .tg-df-modal-title {      font-size: 16px;      font-weight: 600;      margin: 0;    }    .tg-df-modal-close {      background: none;      border: none;      cursor: pointer;      padding: 4px;      color: #64748b;    }    .tg-df-modal-body {      padding: 16px;      overflow-y: auto;    }    .tg-df-voucher-item {      padding: 12px;      border: 1px dashed #cbd5e1;      border-radius: 8px;      margin-bottom: 10px;      background: #f8fafc;      display: flex;      align-items: center;      gap: 12px;      text-decoration: none;      color: inherit;      transition: background-color 0.2s, border-color 0.2s;    }    .tg-df-voucher-item:hover {      background: #f1f5f9;      border-color: #94a3b8;    }    .tg-df-voucher-item:last-child {      margin-bottom: 0;    }    .tg-df-voucher-logo {      width: 48px;      height: 48px;      object-fit: contain;      border-radius: 4px;      background: #fff;      border: 1px solid #e2e8f0;      flex-shrink: 0;    }    .tg-df-voucher-content {      flex: 1;      min-width: 0;    }    .tg-df-voucher-title {      font-size: 14px;      font-weight: 600;      margin: 0 0 4px 0;      line-height: 1.3;      color: #0f172a;    }    .tg-df-voucher-expiry {      font-size: 12px;      color: #64748b;      display: flex;      align-items: center;      gap: 4px;      margin-top: 6px;    }    .tg-df-voucher-code {      display: inline-flex;      align-items: center;      background: #f1f5f9;      border: 1px dashed #cbd5e1;      padding: 6px 10px;      font-family: monospace;      font-weight: 700;      font-size: 14px;      color: #0f172a;      border-radius: 4px;      margin-top: 8px;      cursor: pointer;      transition: all 0.2s ease;    }    .tg-df-voucher-code:hover {      background: #e2e8f0;      border-color: #94a3b8;    }    .tg-df-voucher-code.copied {      background: #ecfdf5;      border-color: #10b981;      color: #10b981;    }    .tg-df-voucher-cta {      display: inline-block;      margin-top: 8px;      font-size: 13px;      font-weight: 600;      color: #2563eb;      text-decoration: none;    }    .tg-df-card-title {      font-size: 15px;      font-weight: 400;      line-height: 1.4;      margin: 0 0 12px 0;      color: var(--tg-df-text);      display: -webkit-box;      -webkit-line-clamp: 2;      -webkit-box-orient: vertical;      overflow: hidden;    }    .tg-df-card-footer {      margin-top: auto;      display: flex;      flex-direction: column;      width: 100%;    }    .tg-df-card-price-group {      display: flex;      flex-direction: row;      align-items: center;      gap: 8px;      margin-bottom: 12px;    }    .tg-df-card-price {      font-size: 16px;      font-weight: 700;      color: #dc2626; /* Red price */      line-height: 1;    }        .tg-df-card-msrp {      font-size: 13px;      color: var(--tg-df-text-muted);      text-decoration: line-through;    }    .tg-df-container .tg-df-card-cta {      display: flex;      align-items: center;      justify-content: center;      width: 100%;      box-sizing: border-box;      background-color: #1f69ff;      color: #ffffff;      font-size: 12px;      font-weight: 700;      text-transform: uppercase;      letter-spacing: 0.5px;      padding: 12px 16px;      border-radius: 0;      border: none;      cursor: pointer;      transition: background-color 0.2s ease;    }    .tg-df-card:hover .tg-df-card-cta,    .tg-df-card-cta:hover {      background-color: #1555cc;    }    .tg-df-container .tg-df-card-cta.tg-df-cta-savings-squad {      background-color: #3c8d0d;    }    .tg-df-card:hover .tg-df-card-cta.tg-df-cta-savings-squad,    .tg-df-card-cta.tg-df-cta-savings-squad:hover {      background-color: #2b6509;    }    /*       5. State & Skeleton Styles    */    .tg-df-message {      grid-column: 1 / -1;      text-align: center;      padding: 48px 24px;      color: var(--tg-df-text-muted);      font-size: 16px;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 8px;    }    @keyframes tg-df-shimmer {      0% { background-position: -200% 0; }      100% { background-position: 200% 0; }    }    .tg-df-skeleton {      background: linear-gradient(90deg, var(--tg-df-bg-secondary) 25%, #e2e8f0 50%, var(--tg-df-bg-secondary) 75%);      background-size: 200% 100%;      animation: tg-df-shimmer 1.5s infinite;      border-radius: 4px;    }    .tg-df-skeleton-img {      width: 100%;      height: 100%;      position: absolute;      top: 0; left: 0;    }        .tg-df-skeleton-text {      height: 16px;      margin-bottom: 8px;      width: 100%;    }    .tg-df-skeleton-text.short { width: 40%; }    .tg-df-skeleton-text.title { height: 20px; margin-bottom: 16px; }    /* Editor Floating Bar & Elements */    .tg-df-editor-bar {      position: sticky;      top: 0;      z-index: 1000;      background: #111827;      color: #fff;      padding: 12px 16px;      border-radius: 8px;      margin-bottom: 16px;      display: flex;      align-items: center;      justify-content: space-between;      box-shadow: 0 4px 12px rgba(0,0,0,0.15);    }    .tg-df-editor-bar-text {      font-weight: 600;      font-size: 14px;    }    .tg-df-editor-copy-btn {      background: #10b981;      color: #fff;      padding: 6px 16px;      border: none;      border-radius: 4px;      font-weight: 600;      cursor: pointer;      display: flex;      align-items: center;      font-size: 13px;    }    .tg-df-editor-copy-btn:hover { background: #059669; }        .tg-df-deal-checkbox {      position: absolute;      top: 12px;      right: 12px;      z-index: 10;      width: 20px;      height: 20px;      cursor: pointer;      pointer-events: auto;    }    /*       6. Mobile List View (Stacks into a cleaner horizontal row/list)    */    @container tg-df (max-width: 599px) {      .tg-df-controls {        padding: 0 16px;      }            .tg-df-top-bar {        width: 100%;      }            .tg-df-settings-dropdown {        position: fixed;        top: auto;        bottom: 0;        left: 0;        right: 0;        width: 100%;        border-radius: 20px 20px 0 0;        padding: 24px;        box-shadow: 0 -8px 32px rgba(0,0,0,0.15);        z-index: 1000;        border: none;        border-top: 1px solid var(--tg-df-border);      }            .tg-df-settings-dropdown-backdrop.active {        background: rgba(0,0,0,0.4);      }            .tg-df-search-wrapper {        box-shadow: 0 0 16px rgba(0,0,0,0.08);      }            .tg-df-filters {        width: calc(100% + 32px);        margin: 0 -16px;        padding: 0 16px 4px 16px;        display: flex;        justify-content: flex-start;        gap: 8px;        flex-wrap: nowrap;        overflow-x: auto;        -webkit-overflow-scrolling: touch;        scrollbar-width: none;      }      .tg-df-filters::after {        content: "";        display: block;        flex: 0 0 8px;      }      .tg-df-filters::-webkit-scrollbar {        display: none;      }            .tg-df-sort-wrapper {        flex: 0 0 max(42%, 130px);        min-width: 0;      }      .tg-df-sort-wrapper.tg-df-price-range-wrapper {        flex: 0 0 auto;        min-width: max-content;      }            .tg-df-sort-select, .tg-df-filter-select {        width: 100%;        text-align: left;        padding: 10px 24px 10px 32px;        background-position: right 8px center;        text-overflow: ellipsis;        white-space: nowrap;        overflow: hidden;      }      .tg-df-sort-icon {        left: 10px;      }      .tg-df-grid:not(.layout-grid):not(.layout-row),      .tg-df-grid.layout-row {        grid-template-columns: 1fr;        gap: 16px;      }            .tg-df-grid.tg-df-grid-auto {        padding-top: 24px;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card,      .tg-df-grid.layout-row .tg-df-card {        flex-direction: row;        align-items: stretch;        height: auto;        box-shadow: none; /* simple line on mobile if preferred, or keep */        border-bottom: 1px solid var(--tg-df-border);      }      .tg-df-grid.tg-df-grid-auto .tg-df-card:hover,      .tg-df-grid.layout-row .tg-df-card:hover {        box-shadow: none;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-image-box,      .tg-df-grid.layout-row .tg-df-card-image-box {        width: 120px;        min-width: 120px;        aspect-ratio: 3/4;        border-right: none;        padding: 12px;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-body,      .tg-df-grid.layout-row .tg-df-card-body {        padding: 12px;        justify-content: space-between;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-title,      .tg-df-grid.layout-row .tg-df-card-title {        font-size: 14px;        margin-bottom: 12px;        -webkit-line-clamp: 3;      }      /* Single column mobile grid override */      .tg-df-grid.layout-grid {        grid-template-columns: 1fr;        gap: 16px;      }      .tg-df-grid.layout-grid .tg-df-card-image-box {        padding: 12px;      }      .tg-df-grid.layout-grid .tg-df-card-body {        padding: 10px;      }      .tg-df-grid.layout-grid .tg-df-card-title {        font-size: 13px;        -webkit-line-clamp: 3;        margin-bottom: 8px;      }      .tg-df-grid.layout-grid .tg-df-card-price {        font-size: 14px;      }            .tg-df-card-footer {        flex-direction: column;        align-items: stretch;        gap: 0;        width: 100%;        min-width: 0;      }      .tg-df-card-merchant-pill {        margin-bottom: 4px;      }      .tg-df-card-price-group {        flex: 1 1 auto;        margin-bottom: 8px;      }      .tg-df-card-price {        font-size: 16px;      }      .tg-df-card-msrp {        display: block;       }      .tg-df-grid.layout-row .tg-df-card-cta,      .tg-df-container .tg-df-card-cta {        width: 100%;        max-width: none;        min-width: 0;        box-sizing: border-box;        padding: 8px 16px;        font-size: 12px;        flex: 0 0 auto;        text-align: center;        white-space: normal;        line-height: 1.2;      }    }    .tg-df-container.is-carousel {      min-height: 760px;      background-color: #E7F0FF;      padding: 0 0 24px 0;      border-radius: 24px;    }    .tg-df-container.is-carousel.hide-header-details {      min-height: 480px;    }    /*       7. Carousel View Mode    */    .tg-df-container .tg-df-carousel-host {      /* Layout is now handled by container wrapper */    }    .tg-df-container .tg-df-carousel-eyebrow {      color: #1F69FF;      font-weight: 700;      font-size: 14px;      text-transform: uppercase;      letter-spacing: 1px;      padding: 24px 16px 0 16px;      display: none;    }    .tg-df-container .tg-df-carousel-query-title {      color: #011535;      font-size: 28px;      font-weight: 600;      padding: 0 16px 24px 16px;      line-height: 1.2;      display: none;    }    .tg-df-container .tg-df-carousel-blue-box {      background-color: transparent;      border-radius: 0;      padding: 24px 24px 0 24px;      margin: 0;      color: #1F69FF;          position: relative;      overflow: hidden;    }    .tg-df-container .tg-df-carousel-bg-circle-1 {      display: none;    }    .tg-df-container .tg-df-carousel-bg-circle-2 {      display: none;    }    .tg-df-container .tg-df-carousel-bg-circle-3 {      display: none;    }    .tg-df-container .tg-df-carousel-box-content {      position: relative;      z-index: 10;    }    .tg-df-container .tg-df-carousel-box-eyebrow {      background-color: transparent;      color: #1F69FF;      font-weight: 700;      font-size: 14px;      text-transform: uppercase;      letter-spacing: 1px;      display: inline-block;      padding: 0;      border-radius: 0;    }    .tg-df-container .tg-df-carousel-box-title {      font-size: 28px;      font-weight: 600;      line-height: 1.2;      margin-top: 8px;      color: #1e293b;    }    .tg-df-container .tg-df-countdown-wrapper {      position: absolute;      top: 0;      right: 0;      display: flex;      flex-direction: column;      align-items: flex-end;      gap: 12px;      transform: scale(0.67);      transform-origin: top right;    }    .tg-df-container .tg-df-countdown-title {      font-size: 16px;      text-align: center;      width: 100%;      font-weight: 600;      color: #011535;      margin: 0;    }    .tg-df-container .tg-df-countdown-blocks {      display: flex;      gap: 16px;    }    .tg-df-container .tg-df-countdown-item {      display: flex;      flex-direction: column;      align-items: center;      gap: 4px;    }    .tg-df-container .tg-df-countdown-box {      width: 59px;      height: 59px;      background: #03FE9E;      border-radius: 15px;      display: flex;      align-items: center;      justify-content: center;    }    .tg-df-container .tg-df-countdown-num {      font-family: 'Inter', sans-serif;      font-weight: 700;      font-size: 20px;      line-height: normal;      color: #011535;    }    .tg-df-container .tg-df-countdown-label {      font-family: 'Inter', sans-serif;      font-weight: 500;      font-size: 16px;      line-height: normal;      color: #1e293b;      text-transform: uppercase;    }    .tg-df-container .tg-df-carousel-box-subtitle {      font-size: 16px;      margin-top: 8px;      font-weight: 300;      color: #1e293b;      line-height: 24px;    }    .tg-df-container .tg-df-carousel-roundels-wrapper {      position: relative;      margin-top: 24px;      margin-left: -24px;      margin-right: -24px;    }    .tg-df-container .tg-df-carousel-roundels {      display: flex;      gap: 16px;      overflow-x: auto;            scrollbar-width: none;      padding-top: 12px;      padding-bottom: 24px;      padding-left: 24px;      padding-right: 24px;      margin-left: 0;      margin-right: 0;    }        .tg-df-container .tg-df-carousel-scroll-left,    .tg-df-container .tg-df-carousel-scroll-right {      position: absolute;      top: 50%;      transform: translateY(-50%);      height: 36px;      width: 36px;      display: flex;      align-items: center;      justify-content: center;      border-radius: 50%;      background-color: #ffffff;      border: 1px solid #e2e8f0;      box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);      color: #1F69FF;      cursor: pointer;      transition: all 0.2s;      margin-top: -4px;      z-index: 20;    }    .tg-df-container .tg-df-carousel-scroll-left { left: 8px; }    .tg-df-container .tg-df-carousel-scroll-right { right: 8px; }    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-left { left: 0px; }    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-right { right: 0px; }    .tg-df-carousel-filters-outer { margin-left: -24px; margin-right: -24px; padding-left: 24px; padding-right: 24px; }    @container tg-df (max-width: 599px) { .tg-df-carousel-filters-outer { margin-left: -16px; margin-right: -16px; padding-left: 16px; padding-right: 16px; } }        .tg-df-container .tg-df-carousel-scroll-left:hover,    .tg-df-container .tg-df-carousel-scroll-right:hover {      background-color: #f8fafc;      border-color: #cbd5e1;    }        .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-left,    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-right,    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-left,    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-right {      background-color: rgba(255, 255, 255, 0.4);      border: none;      box-shadow: none;      backdrop-filter: blur(4px);      -webkit-backdrop-filter: blur(4px);    }    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-left { left: 0; }    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-right { right: 0; }    .tg-df-grid-wrapper .tg-df-carousel-scroll-left { left: 0; }    .tg-df-grid-wrapper .tg-df-carousel-scroll-right { right: 0; }        .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-left:hover,    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-right:hover {      background-color: rgba(255, 255, 255, 0.6);      border: none;    }    .tg-df-container .tg-df-carousel-roundels::-webkit-scrollbar {      display: none;    }    .tg-df-container .tg-df-carousel-roundels::after {      content: "";      flex: 0 0 32px;    }    .tg-df-container .tg-df-roundel {      display: flex;      flex-direction: column;      align-items: center;      gap: 8px;      cursor: pointer;      min-width: 120px;      flex-shrink: 0;    }    .tg-df-container .tg-df-roundel-img-box {      width: 120px;      height: 120px;      border-radius: 50%;      background: white;      display: flex;      align-items: center;      justify-content: center;      overflow: hidden;      box-shadow: 0px 3px 14px 0px rgba(30, 41, 59, 0.08);      transition: box-shadow 0.2s;    }    .tg-df-container .tg-df-roundel:hover .tg-df-roundel-img-box {      box-shadow: 0 0 0 2px #E7F0FF, 0 0 0 4px #1F69FF;    }    .tg-df-container .tg-df-roundel.active .tg-df-roundel-img-box {      box-shadow: 0 0 0 2px #E7F0FF, 0 0 0 4px #1F69FF;    }    .tg-df-container .tg-df-roundel:hover .tg-df-roundel-img-box img {      transform: scale(1.08);    }    .tg-df-container .tg-df-roundel-img-box img {      width: 100%;      height: 100%;      object-fit: contain;      padding: 10px;      box-sizing: border-box;      transition: transform 0.3s ease;    }    .tg-df-container .tg-df-roundel-label {      font-size: 13px;      font-weight: 400;      color: #1e293b;      text-align: center;      transition: font-weight 0.2s;    }    .tg-df-container .tg-df-roundel.active .tg-df-roundel-label {      font-weight: 700;    }    .tg-df-container .tg-df-carousel-filters-label {      font-size: 16px;      font-weight: 400;      color: #1e293b;      white-space: nowrap;      margin-right: 4px;    }    .tg-df-container .tg-df-carousel-filters-wrap {      display: flex;      align-items: center;      flex-wrap: nowrap;      gap: 8px;      margin-top: 8px;      overflow-x: auto;      scrollbar-width: none;      -webkit-overflow-scrolling: touch;      padding-bottom: 8px;      margin-left: -24px;      margin-right: -24px;      padding-left: 24px;      padding-right: 24px;    }    .tg-df-container .tg-df-carousel-filters-wrap::-webkit-scrollbar {      display: none;    }        .tg-df-container .tg-df-carousel-filter-btn img,    .tg-df-container .tg-df-carousel-filter-btn picture {      height: 20px;      width: 20px;      object-fit: contain;      object-position: center;      display: inline-flex;      align-items: center;      justify-content: center;      margin-right: 6px;    }    .tg-df-container .tg-df-carousel-filter-btn picture img {      margin-right: 0;      height: 100%;      width: 100%;    }    .tg-df-container .tg-df-carousel-filter-btn img.active-img,    .tg-df-container .tg-df-carousel-filter-btn picture:has(.active-img) {      display: none;    }    .tg-df-container .tg-df-carousel-filter-btn:hover img.inactive-img,    .tg-df-container .tg-df-carousel-filter-btn.active img.inactive-img,    .tg-df-container .tg-df-carousel-filter-btn:hover picture:has(.inactive-img),    .tg-df-container .tg-df-carousel-filter-btn.active picture:has(.inactive-img) {      display: none;    }    .tg-df-container .tg-df-carousel-filter-btn:hover img.active-img,    .tg-df-container .tg-df-carousel-filter-btn.active img.active-img,    .tg-df-container .tg-df-carousel-filter-btn:hover picture:has(.active-img),    .tg-df-container .tg-df-carousel-filter-btn.active picture:has(.active-img) {      display: inline-flex;    }    .tg-df-container .tg-df-carousel-filter-btn {      background: #ffffff;      border: 2px solid #1e293b;      color: #1e293b;      border-radius: 24px;      padding: 6px 16px;      font-size: 14px;      font-weight: 600;      cursor: pointer;      transition: all 0.2s;      flex-shrink: 0;      white-space: nowrap;      display: inline-flex;      align-items: center;      justify-content: center;      min-height: 36px;      box-sizing: border-box;    }    .tg-df-container .tg-df-carousel-filter-btn svg {      margin-right: 6px;    }    .tg-df-container .tg-df-carousel-filter-btn:hover {      background: #1e293b;      color: white;      border-color: #1e293b;    }    .tg-df-container .tg-df-carousel-filter-btn.active {      background: #1e293b;      color: white;      border-color: #1e293b;    }        .tg-df-grid.carousel-compact {      display: flex;      flex-wrap: nowrap;      overflow-x: auto;      gap: 16px;      padding: 16px 24px;      align-items: stretch;      scrollbar-width: none;    }    .tg-df-grid.carousel-compact::after {      content: "";      flex: 0 0 32px;    }    .tg-df-grid-wrapper {      position: relative;    }    .tg-df-grid.carousel-compact::-webkit-scrollbar {      display: none;    }    .tg-df-grid.carousel-compact .tg-df-load-more-card {      flex: 0 0 auto;      width: 100px;      border-radius: 15px;      box-shadow: 0 0 16px rgba(0,0,0,0.08);      border: 2px solid #1e293b;      background: white;      color: #1e293b;      display: flex;      flex-direction: column;      justify-content: center;      align-items: center;      font-weight: 600;      font-size: 14px;      cursor: pointer;      padding: 16px;      text-align: center;      transition: all 0.2s;    }    .tg-df-grid.carousel-compact .tg-df-load-more-card:hover {      background: #1e293b;      color: white;    }    .tg-df-grid.carousel-compact .tg-df-card {      flex: 0 0 auto;      width: 200px;      min-height: auto;      height: auto;      display: flex;      flex-direction: column;      border-radius: 15px;      border: none;      box-shadow: 0 0 16px rgba(0,0,0,0.08);      overflow: visible;    }    .tg-df-grid.carousel-compact .tg-df-card-image-box {      padding: 12px;      background-color: transparent;      border-radius: 15px 15px 0 0;      height: 130px;    }    .tg-df-grid.carousel-compact .tg-df-card-image {      mix-blend-mode: normal;    }    .tg-df-grid.carousel-compact .tg-df-card-discount-badge {      border-radius: 0;      top: 0px;      left: 0px;      padding: 4px 8px;      font-size: 11px;    }    .tg-df-grid.carousel-compact .tg-df-card-body {      padding: 8px 12px 12px 12px;    }    .tg-df-grid.carousel-compact .tg-df-card-title {      font-size: 14px;      font-weight: 400;      -webkit-line-clamp: 2;      margin-bottom: 8px;      color: #011535;    }    .tg-df-grid.carousel-compact .tg-df-card-body:not(:has(.tg-df-card-stars)):not(:has(.tg-df-tag-prime)):not(:has(.tg-df-coupon-wrapper:not([style*="none"]))) > .tg-df-card-title,    .tg-df-grid.carousel-compact .tg-df-card-body:not(:has(.tg-df-card-stars)):has(> .tg-df-card-title:first-child) > .tg-df-card-title {      -webkit-line-clamp: 3;    }    .tg-df-grid.carousel-compact .tg-df-card-cta {      border-radius: 5px;      padding: 8px 10px;      margin-top: 4px;      background-color: #1F69FF;    }    .tg-df-grid.carousel-compact .tg-df-card-price-group {      margin-bottom: 2px;    }    .tg-df-grid.carousel-compact .tg-df-card-merchant-pill {      margin-bottom: 2px;    }    @container tg-df (max-width: 599px) {      .tg-df-container .tg-df-carousel-blue-box-title {        font-size: 24px;      }      .tg-df-container .tg-df-countdown-title {        display: none;      }      .tg-df-container .tg-df-countdown-wrapper {        position: absolute;        top: 0;        right: 0;        align-items: flex-end;        transform: scale(0.45);        transform-origin: top right;      }      .tg-df-container .tg-df-roundel {        min-width: 88px;      }      .tg-df-container .tg-df-roundel-img-box {        width: 88px;        height: 88px;      }    }    /* REPLICA BLOCK STYLES */    .tg-df-grid.layout-replica-2 { grid-template-columns: repeat(2, 1fr) !important; gap: 20px; }    .tg-df-grid.layout-replica-1 { grid-template-columns: 1fr !important; gap: 20px; }        .tg-df-container .hawk-deal-widget-container { border-bottom: 1px solid #e5e7eb; display: flex; flex-direction: column; margin: 0; padding: 20px 0; box-sizing: border-box; font-family: inherit; }    .tg-df-container .hawk-deal-widget-wrap { display: flex; flex-direction: row; align-items: flex-start; width: 100%; gap: 24px; }    .tg-df-container .hawk-deal-widget-image-container { display: flex; flex-shrink: 0; justify-content: center; width: 160px; height: 160px; align-items: center; background: white; margin-bottom: 0px; }    .tg-df-container .hawk-deal-widget-title-product-title { color: #111827; font-size: 18px; font-weight: 700; line-height: 1.4; display: inline; }    .tg-df-container .hawk-deal-widget-title-price { font-size: 18px; font-weight: 700; line-height: 1.4; white-space: nowrap; color: #2563eb; }    .tg-df-container .hawk-deal-widget-title-price-now { font-weight: 700; }    .tg-df-container .hawk-deal-widget-title-retailer-price:hover { text-decoration: underline; }    .tg-df-container .hawk-deal-widget-title-retailer { font-size: 18px; font-weight: 700; line-height: 1.4; color: #2563eb; }    .tg-df-container .hawk-deal-widget-title-was-price { color: #dc2626; font-size: 16px; font-weight: 500; line-height: 1.4; text-decoration: line-through; white-space: nowrap; margin-left: 8px; margin-right: 8px; }    .tg-df-container .hawk-deal-widget-text-body-container { position: relative; width: 100%; box-sizing: border-box; }    .tg-df-container .hawk-deal-widget-text-body-main { font-size: 16px; width: 100%; margin-bottom: 12px; }    .tg-df-container .hawk-deal-widget-text-body-description { display: block; font-size: 15px; margin-top: 12px; color: #4b5563; line-height: 1.6; }    .tg-df-container .hawk-deal-widget-text-body-description p { margin: 0; line-height: 1.6; }    .tg-df-container .hawk-deal-widget-text-cta-container { display: flex; flex-direction: column; gap: 12px; width: 100%; flex: 1; min-width: 0; box-sizing: border-box; }    .tg-df-container .hawk-deal-widget-footer { display: flex; justify-content: flex-end; width: 100%; margin-top: auto; }    .tg-df-container .hawk-deal-widget-button-wrapper { display: flex; flex-direction: column; align-items: flex-end; justify-content: flex-end; width: 100%; }    .tg-df-container .hawk-deal-widget-preferred-partner-wrapper { display: flex; flex-direction: row; }        @container tg-df (min-width: 600px) {      .tg-df-mobile-only { display: none !important; }    }    @container tg-df (max-width: 599px) {      .tg-df-desktop-only { display: none !important; }      .tg-df-grid.layout-replica-2 { grid-template-columns: 1fr !important; }      .tg-df-grid.savings-squad-cards { grid-template-columns: 1fr !important; display: flex; flex-direction: column; }    }    .tg-df-grid.savings-squad-cards .tg-df-card-title {      -webkit-line-clamp: unset !important;      display: block !important;      overflow: visible !important;    }    @container tg-df (max-width: 500px) {      .tg-df-container .hawk-deal-widget-wrap { display: block; }      .tg-df-container .hawk-deal-widget-image-container { display: block; float: left; margin: 0 16px 8px 0; width: 120px; max-width: 120px; height: auto; align-items: normal; justify-content: normal; }      .tg-df-container .hawk-deal-widget-text-cta-container { display: block; text-align: left; }      .tg-df-container .hawk-deal-widget-footer { display: block; margin-top: 16px; clear: both; width: 100%; }      .tg-df-container .hawk-deal-widget-button-wrapper { display: block; width: 100%; }      .tg-df-container .hawk-deal-widget-button-wrapper .hawk-deal-widget-preferred-partner-wrapper { display: block; width: 100%; }      .tg-df-container .hawk-affiliate-link-deal-button { box-sizing: border-box !important; display: flex !important; max-width: none !important; width: 100% !important; margin: 0 !important; }    }        .tg-df-container .hawk-affiliate-link-deal-button {       align-items: center; background-color: #5aaf0b; box-sizing: border-box; color: #ffffff !important; display: flex; font-size: 14px; font-weight: 700; justify-content: center; letter-spacing: 0.5px; line-height: 1; min-width: 160px; padding: 14px 24px; text-align: center; text-decoration: none; text-transform: uppercase; width: 100%; word-break: normal; border-radius: 4px; border: 0; transition: background-color 0.2s;     }    .tg-df-container .hawk-affiliate-link-deal-button:hover { background-color: #4a9109; text-decoration: none; }    .tg-df-container .hawk-lazy-image-deal-widget { display: block; height: auto; margin: auto; max-height: 160px; max-width: 100%; mix-blend-mode: multiply; object-fit: contain; }    .tg-df-container .hawk-deal-widget-text-cta-container a { color: #2563eb; text-decoration: none; display: inline; }    .tg-df-container .hawk-deal-widget-text-cta-container a:hover { text-decoration: underline; }    .tg-df-container .hawk-deal-widget-text-cta-container a:has(.hawk-deal-widget-title-product-title) { color: #111827; }    .tg-df-container .hawk-deal-widget-text-cta-container a:hover .hawk-deal-widget-title-product-title,    .tg-df-container .hawk-deal-widget-text-cta-container a:hover .hawk-deal-widget-title-retailer-price { text-decoration: underline; }  \x3C/style>  \x3C!-- Widget Container --\x3E  \x3Cdiv class="tg-df-container" id="signal-deals-finder-root">    \x3C!-- Editor Floating Bar --\x3E    \x3Cdiv class="tg-df-editor-bar" id="tg-df-editor-bar" style="display:none;">      \x3Cdiv class="tg-df-editor-bar-text" style="display: flex; align-items: center;">        \x3Cspan id="tg-df-selected-count">0\x3C/span>\x26nbsp;Deals Selected        \x3Cbutton class="tg-df-editor-clear-btn" id="tg-df-editor-clear" type="button" style="margin-left: 12px; font-size: 13px; color: #9ca3af; background: none; border: none; cursor: pointer; text-decoration: underline;">Clear All\x3C/button>      \x3C/div>      \x3Cbutton class="tg-df-editor-copy-btn" id="tg-df-editor-copy" type="button">        \x3Csvg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-right: 6px;">\x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2">\x3C/rect>\x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1">\x3C/path>\x3C/svg>        Copy to CMS      \x3C/button>    \x3C/div>    \x3Cdiv class="tg-df-carousel-host" id="tg-df-carousel-host" style="display: none;">      \x3Cdiv class="tg-df-carousel-eyebrow">DEAL FINDER\x3C/div>      \x3Cdiv class="tg-df-carousel-query-title" id="tg-df-carousel-title-label">Best Deals\x3C/div>            \x3Cdiv class="tg-df-carousel-blue-box">        \x3Cdiv class="tg-df-carousel-bg-circle-1" aria-hidden="true">\x26nbsp;\x3C/div>        \x3Cdiv class="tg-df-carousel-bg-circle-2" aria-hidden="true">\x26nbsp;\x3C/div>        \x3Cdiv class="tg-df-carousel-bg-circle-3" aria-hidden="true">\x26nbsp;\x3C/div>        \x3Cdiv class="tg-df-carousel-box-content">          \x3Cdiv class="tg-df-countdown-wrapper" id="tg-df-countdown-wrapper" style="display:none;">            \x3Cdiv class="tg-df-countdown-title" id="tg-df-countdown-title">Prime Day starts in\x3C/div>            \x3Cdiv class="tg-df-countdown-blocks">              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-days">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">DAYS\x3C/div>\x3C/div>              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-hrs">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">HRS\x3C/div>\x3C/div>              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-min">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">MIN\x3C/div>\x3C/div>              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-sec">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">SEC\x3C/div>\x3C/div>            \x3C/div>          \x3C/div>          \x3Cdiv class="tg-df-carousel-box-eyebrow">DEAL FINDER\x3C/div>          \x3Cdiv class="tg-df-carousel-box-title">Find Deals Fast\x3C/div>          \x3Cdiv class="tg-df-carousel-box-subtitle">The latest deals from the biggest retailers, all in one place\x3C/div>                    \x3Cdiv class="tg-df-carousel-roundels-wrapper">          \x3Cbutton class="tg-df-carousel-scroll-left" type="button" aria-label="Scroll left" style="display:none;" onclick="this.parentElement.querySelector('.tg-df-carousel-roundels').scrollBy({left: -200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m15 18-6-6 6-6">\x3C/path>\x3C/svg>\x3C/button>          \x3Cdiv class="tg-df-carousel-roundels">            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>          \x3C/div>          \x3Cbutton class="tg-df-carousel-scroll-right" type="button" aria-label="Scroll right" onclick="this.parentElement.querySelector('.tg-df-carousel-roundels').scrollBy({left: 200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m9 18 6-6-6-6">\x3C/path>\x3C/svg>\x3C/button>        \x3C/div>        \x3Cdiv class="tg-df-carousel-filters-outer" style="position: relative;">          \x3Cbutton class="tg-df-carousel-scroll-left" type="button" aria-label="Scroll left" style="display:none;" onclick="this.parentElement.querySelector('.tg-df-carousel-filters-wrap').scrollBy({left: -200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m15 18-6-6 6-6">\x3C/path>\x3C/svg>\x3C/button>          \x3Cdiv class="tg-df-carousel-filters-wrap">                      \x3Cbutton class="tg-df-carousel-filter-btn" data-d="0">All\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-ot="amazon_lightning">              \x3Cimg src="https://cdn.mos.cms.futurecdn.net/HqAui7w97ft2NPqBtQ5r38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/yWPQ5yyQRhUwVKzGwYbh38-600-100.png" class="active-img" alt="" /> Lightning deals\x3C/button>            \x3Cbutton class="tg-df-carousel-filter-btn" data-ot="amazon_prime">              \x3Cimg src="https://cdn.mos.cms.futurecdn.net/fwoVXvL79turN3Ph535m38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/u75QjVpt3w2EsMimJiRo38-600-100.png" class="active-img" alt="" /> Prime deals\x3C/button>            \x3Cbutton class="tg-df-carousel-filter-btn" data-d="10">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>            Min 10% off\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-d="15">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>            Min 15% off\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-d="25">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>            Min 25% off\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-pr="under50">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-badge-dollar-sign">\x3Cpath d="M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z">\x3C/path>\x3Cpath d="M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8">\x3C/path>\x3Cpath d="M12 18V6">\x3C/path>\x3C/svg>            Under $50\x3C/button>        \x3C/div>        \x3Cbutton class="tg-df-carousel-scroll-right" type="button" aria-label="Scroll right" style="display:none;" onclick="this.parentElement.querySelector('.tg-df-carousel-filters-wrap').scrollBy({left: 200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m9 18 6-6-6-6">\x3C/path>\x3C/svg>\x3C/button>      \x3C/div>    \x3C/div>    \x3C/div>      \x3C!-- Search & Filter Controls --\x3E    \x3Cdiv class="tg-df-controls" id="tg-df-controls" style="display:flex;">      \x3Cdiv class="tg-df-top-bar">        \x3Cdiv class="tg-df-search-wrapper">          \x3Cinput type="text" class="tg-df-search-input" placeholder="Search for deals, products, or brands...">          \x3Cbutton type="button" class="tg-df-search-btn" aria-label="Search">              \x3Csvg class="tg-df-search-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">                \x3Cpath d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/>              \x3C/svg>          \x3C/button>          \x3Cdiv class="tg-df-autocomplete-dropdown" id="tg-df-autocomplete">\x3C/div>        \x3C/div>                \x3Cdiv class="tg-df-settings-wrapper">          \x3Cbutton type="button" class="tg-df-settings-btn" aria-label="Settings" id="tg-df-settings-toggle">            \x3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="20" height="20">                \x3Cpath d="M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.06-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.73 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.06.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .43-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.49-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z"/>            \x3C/svg>          \x3C/button>          \x3Cdiv class="tg-df-settings-dropdown-backdrop" id="tg-df-settings-backdrop">\x3C/div>          \x3Cdiv class="tg-df-settings-dropdown" id="tg-df-settings-panel">            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Search Region\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-region-select">                \x3Coption value="auto">🌍 Auto-detect\x3C/option>                \x3Coption value="US">🇺🇸 United States (US)\x3C/option>                \x3Coption value="GB">🇬🇧 United Kingdom (UK)\x3C/option>                \x3Coption value="CA">🇨🇦 Canada (CA)\x3C/option>                \x3Coption value="AU">🇦🇺 Australia (AU)\x3C/option>                \x3Coption value="DE">🇩🇪 Germany (DE)\x3C/option>                \x3Coption value="FR">🇫🇷 France (FR)\x3C/option>                \x3Coption value="IT">🇮🇹 Italy (IT)\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Retailer\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-retailer-select">                \x3Coption value="">All Retailers\x3C/option>                \x3Coption value="Amazon">Amazon\x3C/option>                \x3Coption value="Walmart">Walmart\x3C/option>                \x3Coption value="Best Buy">Best Buy\x3C/option>                \x3Coption value="Target">Target\x3C/option>                \x3Coption value="John Lewis">John Lewis\x3C/option>                \x3Coption value="Currys">Currys\x3C/option>                \x3Coption value="Argos">Argos\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Offer Type\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-offer-type-select">                \x3Coption value="">All Offers\x3C/option>                \x3Coption value="amazon_prime">Amazon Prime\x3C/option>                \x3Coption value="recommended_promo">Recommended Promo\x3C/option>                \x3Coption value="amazon_lightning">Amazon Lightning Deal\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Result Count\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-rows-select">                \x3Coption value="3">3 Items\x3C/option>                \x3Coption value="4">4 Items\x3C/option>                \x3Coption value="6">6 Items\x3C/option>                \x3Coption value="12" selected>12 Items\x3C/option>                \x3Coption value="24">24 Items\x3C/option>                \x3Coption value="48">48 Items\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item tg-df-dl-row">              \x3Cdiv>                \x3Cspan class="tg-df-dl-row-text">Deal Mode\x3C/span>                \x3Cspan class="tg-df-dl-row-subtext">Only show products with active offers or previous prices (was_price)\x3C/span>              \x3C/div>              \x3Clabel class="tg-df-toggle">                \x3Cinput type="checkbox" id="tg-df-deal-mode">                \x3Cspan class="tg-df-slider">\x3C/span>              \x3C/label>            \x3C/div>            \x3Cdiv class="tg-df-setting-item tg-df-dl-row">              \x3Cdiv>                \x3Cspan class="tg-df-dl-row-text">Editor Mode\x3C/span>                \x3Cspan class="tg-df-dl-row-subtext">Enable multi-select to copy deals to CMS\x3C/span>              \x3C/div>              \x3Clabel class="tg-df-toggle">                \x3Cinput type="checkbox" id="tg-df-editor-mode">                \x3Cspan class="tg-df-slider">\x3C/span>              \x3C/label>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">View Mode\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-view-mode-select">                \x3Coption value="auto">Auto Collection\x3C/option>                \x3Coption value="carousel">Carousel\x3C/option>                \x3Coption value="savings_squad">Savings Squad\x3C/option>                \x3Coption value="grid">Grid (Columns)\x3C/option>                \x3Coption value="row">Row (List)\x3C/option>              \x3C/select>            \x3C/div>          \x3C/div>        \x3C/div>      \x3C/div>      \x3Cdiv class="tg-df-filters">        \x3Cdiv class="tg-df-sort-wrapper" id="tg-df-category-filter-wrapper" style="display: none;">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z"/>          \x3C/svg>          \x3Cselect class="tg-df-filter-select" id="tg-df-category-filter" aria-label="Category">            \x3Coption value="all">All Categories\x3C/option>          \x3C/select>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper tg-df-multiselect-container" id="tg-df-brand-filter-wrapper" style="display:none;">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M4.25 5.61C6.27 8.2 10 13 10 13v6c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-6s3.72-4.8 5.74-7.39A.998.998 0 0 0 18.95 4H5.04c-.83 0-1.3.95-.79 1.61z"/>          \x3C/svg>          \x3Cdiv class="tg-df-filter-select tg-df-multiselect-trigger" id="tg-df-brand-trigger" tabindex="0">            Any Brand          \x3C/div>          \x3Cdiv class="tg-df-multiselect-dropdown" id="tg-df-brand-dropdown">            \x3C!-- Populated via script --\x3E          \x3C/div>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M9 3L5 6.99h3V14h2V6.99h3L9 3zm7 14.01V10h-2v7.01h-3L15 21l4-3.99h-3z"/>          \x3C/svg>          \x3Cselect class="tg-df-sort-select" aria-label="Sort Deals">            \x3Coption value="date_desc">Newest First\x3C/option>            \x3Coption value="best_match">Sort by: Match\x3C/option>            \x3Coption value="price_asc">Price Low to High\x3C/option>            \x3Coption value="price_desc">Price High to Low\x3C/option>            \x3Coption value="discount_desc">Biggest Discount\x3C/option>          \x3C/select>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper tg-df-price-range-wrapper" id="tg-df-custom-price-wrapper" style="display: flex; align-items:center; justify-content:center; padding: 10px 20px; gap: 8px; border: 1px solid var(--tg-df-border); border-radius: 100px; background-color: var(--tg-df-bg);">          \x3Cspan style="font-size:14px; font-weight:500; color:var(--tg-df-text-primary);">Price\x3C/span>          \x3Cinput type="number" class="tg-df-price-input" id="tg-df-custom-price-min" placeholder="Min" style="width: 48px; background: transparent; border: none; color: var(--tg-df-text-primary); outline: none; font-size: 14px; text-align: center; padding: 0;">          \x3Cspan style="color:var(--tg-df-text-muted)">-\x3C/span>          \x3Cinput type="number" class="tg-df-price-input" id="tg-df-custom-price-max" placeholder="Max" style="width: 48px; background: transparent; border: none; color: var(--tg-df-text-primary); outline: none; font-size: 14px; text-align: center; padding: 0;">        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper" id="tg-df-legacy-price-wrapper">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"/>          \x3C/svg>          \x3Cselect class="tg-df-filter-select" id="tg-df-price-filter" aria-label="Filter Prices">            \x3Coption value="all">All Prices\x3C/option>            \x3Coption value="under50">Under $50\x3C/option>            \x3Coption value="50_100">$50 - $100\x3C/option>            \x3Coption value="100_200">$100 - $200\x3C/option>            \x3Coption value="200_500">$200 - $500\x3C/option>            \x3Coption value="over500">Over $500\x3C/option>          \x3C/select>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper" id="tg-df-discount-filter-wrapper">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">            \x3Cpath d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"/>          \x3C/svg>          \x3Cselect class="tg-df-filter-select" id="tg-df-discount-filter" aria-label="Discount Amount">            \x3Coption value="all">Any discount\x3C/option>            \x3Coption value="5">Min 5%\x3C/option>            \x3Coption value="10">Min 10%\x3C/option>            \x3Coption value="15">Min 15%\x3C/option>            \x3Coption value="20">Min 20%\x3C/option>            \x3Coption value="25">Min 25%\x3C/option>            \x3Coption value="30">Min 30%\x3C/option>            \x3Coption value="40">Min 40%\x3C/option>            \x3Coption value="50">Min 50%\x3C/option>            \x3Coption value="60">Min 60%\x3C/option>            \x3Coption value="70">Min 70%\x3C/option>          \x3C/select>        \x3C/div>      \x3C/div>    \x3C/div>    \x3C!-- Deals Grid Wrapper --\x3E    \x3Cdiv class="tg-df-grid-wrapper tg-df-carousel-cards-wrapper" id="tg-df-grid-wrapper">      \x3Cbutton class="tg-df-carousel-scroll-left" type="button" aria-label="Scroll left" style="display:none;" onclick="this.parentElement.querySelector('#tg-df-grid').scrollBy({left: -200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m15 18-6-6 6-6">\x3C/path>\x3C/svg>\x3C/button>      \x3Cdiv class="tg-df-grid" id="tg-df-grid">        \x3C!-- Content populated by JavaScript --\x3E      \x3C/div>      \x3Cbutton class="tg-df-carousel-scroll-right" type="button" aria-label="Scroll right" style="display:none;" onclick="this.parentElement.querySelector('#tg-df-grid').scrollBy({left: 200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m9 18 6-6-6-6">\x3C/path>\x3C/svg>\x3C/button>    \x3C/div>        \x3C!-- Vouchers Modal --\x3E    \x3Cdiv class="tg-df-modal-backdrop" id="tg-df-vouchers-modal">      \x3Cdiv class="tg-df-modal">        \x3Cdiv class="tg-df-modal-header">          \x3Ch3 class="tg-df-modal-title" id="tg-df-vouchers-title">Available Coupons & Deals\x3C/h3>          \x3Cbutton class="tg-df-modal-close" id="tg-df-vouchers-close">            \x3Csvg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">              \x3Cline x1="18" y1="6" x2="6" y2="18">\x3C/line>              \x3Cline x1="6" y1="6" x2="18" y2="18">\x3C/line>            \x3C/svg>          \x3C/button>        \x3C/div>        \x3Cdiv class="tg-df-modal-body" id="tg-df-vouchers-content">          \x3C!-- Vouchers injected here --\x3E        \x3C/div>      \x3C/div>    \x3C/div>  \x3C/div>`;      if (!template) {        template = document.createElement('template');        template.innerHTML = rawTemplate;      }      let shadowRoot = null;      if (hostContainer && template) {        hostContainer.setAttribute('data-initialized', 'true');        shadowRoot = hostContainer.attachShadow({ mode: 'open' });        shadowRoot.appendChild(template.content.cloneNode(true));      }      class DealsFinderWidget {        constructor(config) {          this.rootNode = config.rootNode || document;          this.hostContainer = config.hostContainer || null;          this.rootId = config.rootId || 'signal-deals-finder-root';          this.root = this.rootNode.querySelector('#' + this.rootId);          if (!this.root) return;          this.widgetId = (window.crypto && window.crypto.randomUUID) ? window.crypto.randomUUID() : 'widget-' + Date.now() + '-' + Math.random().toString(36).slice(2);          this.grid = this.root.querySelector('#tg-df-grid');          this.tagsContainer = this.root.querySelector('#tg-df-tags-container');          this.categoryFilter = this.root.querySelector('#tg-df-category-filter');          this.categoryFilterWrapper = this.root.querySelector('#tg-df-category-filter-wrapper');          this.searchInput = this.root.querySelector('.tg-df-search-input');          this.autocompleteDropdown = this.root.querySelector('#tg-df-autocomplete');          this.sortSelect = this.root.querySelector('.tg-df-sort-select');          this.searchBtn = this.root.querySelector('.tg-df-search-btn');                    this.settingsToggle = this.root.querySelector('#tg-df-settings-toggle');          this.settingsPanel = this.root.querySelector('#tg-df-settings-panel');          this.settingsBackdrop = this.root.querySelector('#tg-df-settings-backdrop');          this.regionSelect = this.root.querySelector('#tg-df-region-select');          this.retailerSelect = this.root.querySelector('#tg-df-retailer-select');          this.offerTypeSelect = this.root.querySelector('#tg-df-offer-type-select');          this.viewModeSelect = this.root.querySelector('#tg-df-view-mode-select');          this.rowsSelect = this.root.querySelector('#tg-df-rows-select');          this.dealModeToggle = this.root.querySelector('#tg-df-deal-mode');          this.editorModeToggle = this.root.querySelector('#tg-df-editor-mode');          this.priceFilter = this.root.querySelector('#tg-df-price-filter');          this.discountFilter = this.root.querySelector('#tg-df-discount-filter');                    this.editorBar = this.root.querySelector('#tg-df-editor-bar');          this.editorSelectedCount = this.root.querySelector('#tg-df-selected-count');          this.editorCopyBtn = this.root.querySelector('#tg-df-editor-copy');          this.editorClearBtn = this.root.querySelector('#tg-df-editor-clear');                    this.apiUrl = 'https://search-api.fie.future.net.uk/widget.php';          this.deals = [];          this.displayLimit = 12;          this.airedaleArticles = null;          this.airedaleTags = [];          this.airedaleTagCounts = {};          this.activeDealTag = null;          this.selectedBrands = [];          this.currentQuery = '';          this.editorMode = this.hostContainer ? this.hostContainer.hasAttribute('data-editor-mode') : false;          this.viewModeOverride = this.hostContainer ? this.hostContainer.getAttribute('data-view-mode') : null;          this.selectedDeals = new Map();                    this.brandFilterWrapper = this.root.querySelector('#tg-df-brand-filter-wrapper');          this.brandTrigger = this.root.querySelector('#tg-df-brand-trigger');          this.brandDropdown = this.root.querySelector('#tg-df-brand-dropdown');                    this.customPriceWrapper = this.root.querySelector('#tg-df-custom-price-wrapper');          this.customPriceMin = this.root.querySelector('#tg-df-custom-price-min');          this.customPriceMax = this.root.querySelector('#tg-df-custom-price-max');          this.legacyPriceWrapper = this.root.querySelector('#tg-df-legacy-price-wrapper');          this.discountFilterWrapper = this.root.querySelector('#tg-df-discount-filter-wrapper');          this.initResizeObserver();          this.init();            if (['carousel', 'carousel-compact', 'auto', 'grid', 'row'].includes(this.getViewMode())) { this.loadCarouselSpreadsheet(); }        }        getViewMode() {          if (this.viewModeOverride && (!this.editorMode || !this.viewModeSelect)) {            return this.viewModeOverride;          }          return (this.viewModeSelect && this.viewModeSelect.value) ? this.viewModeSelect.value : (this.viewModeOverride || 'auto');        }        applyLayoutMode() {          if (!this.grid) return;          const mode = this.getViewMode();          this.grid.classList.remove('layout-row', 'layout-grid', 'tg-df-grid-auto', 'carousel-compact', 'layout-replica-1', 'layout-replica-2');                    const carouselHost = this.root.querySelector('#tg-df-carousel-host');          const controlsDiv = this.root.querySelector('#tg-df-controls');          if (mode === 'carousel' || mode === 'auto' || mode === 'grid' || mode === 'row') {             if (mode === 'carousel') this.grid.classList.add('carousel-compact');             if (carouselHost) carouselHost.style.display = 'block';             if (controlsDiv) controlsDiv.style.display = 'none';             if (this.root.classList.contains('tg-df-container') && mode === 'carousel') {               this.root.classList.add('is-carousel');             } else if (this.root.classList.contains('tg-df-container')) {               this.root.classList.remove('is-carousel');             }          } else {             if (carouselHost) carouselHost.style.display = 'none';             if (controlsDiv) controlsDiv.style.display = 'flex';             if (this.root.classList.contains('tg-df-container')) {               this.root.classList.remove('is-carousel');             }          }          if (mode === 'grid') {            this.grid.classList.add('layout-grid');          } else if (mode === 'row') {            this.grid.classList.add('layout-row');          } else if (mode === 'savings_squad') {            this.grid.classList.add('tg-df-grid-auto', 'savings-squad-cards');          } else if (mode !== 'carousel') {            this.grid.classList.add('tg-df-grid-auto');          }                    const settingsWrapper = this.root.querySelector('.tg-df-settings-wrapper');          if (settingsWrapper) {            settingsWrapper.style.display = mode === 'auto' ? 'none' : 'block';          }          if (this.customPriceWrapper) {             this.customPriceWrapper.style.display = mode === 'auto' ? 'flex' : 'none';          }          if (this.legacyPriceWrapper) {             this.legacyPriceWrapper.style.display = mode === 'auto' ? 'none' : 'flex';          }          if (this.discountFilterWrapper) {             this.discountFilterWrapper.style.display = mode === 'auto' ? 'none' : 'flex';          }        }        initResizeObserver() {          try {            if (window.parent === window) return;          } catch (e) {            // cross origin frame check threw          }          const emitHeight = () => {            try {              const height = document.documentElement.scrollHeight || document.body.scrollHeight;              const msg = { type: 'embed-size', height: height };              if (window.parent && window.parent !== window) {                window.parent.postMessage(msg, '*');                window.parent.postMessage(JSON.stringify({ ...msg, sentinel: 'amp' }), '*');              }            } catch (e) {}          };                    if (window.ResizeObserver) {            try {              const ro = new ResizeObserver(() => emitHeight());              ro.observe(document.body);              if (this.root) ro.observe(this.root);            } catch(e){ console.warn(e); }          }          window.addEventListener('resize', emitHeight);          setTimeout(emitHeight, 300);        }        initCountdown() {          this.cdWrapper = this.root.querySelector('#tg-df-countdown-wrapper');                    let searchSource = window.location.search;          if (this.hostContainer && this.hostContainer.hasAttribute('data-widget-config')) {            searchSource = this.hostContainer.getAttribute('data-widget-config');          } else if (typeof window !== 'undefined' && window.__WIDGET_CONFIG__) {            searchSource = window.__WIDGET_CONFIG__;          }          const params = new URLSearchParams(searchSource);          this.showCountdown = params.get('show_countdown') === 'true';          const showHeaderDetails = params.get('show_header_details') !== 'false';          const eyebrow = this.root.querySelector('.tg-df-carousel-box-eyebrow');          const title = this.root.querySelector('.tg-df-carousel-box-title');          const subtitle = this.root.querySelector('.tg-df-carousel-box-subtitle');          if (!showHeaderDetails) {            let containerElement = this.root.classList.contains('tg-df-container') ? this.root : this.root.querySelector('.tg-df-container');            if (containerElement) containerElement.classList.add('hide-header-details');            if (eyebrow) eyebrow.style.display = 'none';            if (title) title.style.display = 'none';            if (subtitle) subtitle.style.display = 'none';          }          if (!this.cdWrapper) return;          this.cdTitle = this.root.querySelector('#tg-df-countdown-title');          this.cdDays = this.root.querySelector('#tg-df-cd-days');          this.cdHrs = this.root.querySelector('#tg-df-cd-hrs');          this.cdMin = this.root.querySelector('#tg-df-cd-min');          this.cdSec = this.root.querySelector('#tg-df-cd-sec');          this.updateCountdown();          this.cdInterval = setInterval(() => this.updateCountdown(), 1000);        }        updateCountdown() {          if (!this.cdWrapper) return;          if (!this.showCountdown) {            this.cdWrapper.style.display = 'none';            return;          }          const area = this.getAreaCode();          let offset = '-04:00';          if (['DE', 'FR', 'IT', 'ES', 'NL'].includes(area)) {             offset = '+02:00';          } else if (['GB', 'IE', 'UK'].includes(area)) {             offset = '+01:00';          }          const startTime = new Date('2026-06-23T00:00:00' + offset).getTime();          const endTime = new Date('2026-06-26T00:00:00' + offset).getTime();          const now = Date.now();          let targetTime = 0;          if (now < startTime) {             targetTime = startTime;             if (this.cdTitle) this.cdTitle.textContent = 'Prime Day starts in';             this.cdWrapper.style.display = 'flex';          } else if (now < endTime) {             targetTime = endTime;             if (this.cdTitle) this.cdTitle.textContent = 'Prime Day ends in';             this.cdWrapper.style.display = 'flex';          } else {             this.cdWrapper.style.display = 'none';             if (this.cdInterval) clearInterval(this.cdInterval);             return;          }          const diff = Math.max(0, targetTime - now);          const d = Math.floor(diff / (1000 * 60 * 60 * 24));          const h = Math.floor((diff / (1000 * 60 * 60)) % 24);          const m = Math.floor((diff / 1000 / 60) % 60);          const s = Math.floor((diff / 1000) % 60);          if (this.cdDays) this.cdDays.textContent = d;          if (this.cdHrs) this.cdHrs.textContent = h;          if (this.cdMin) this.cdMin.textContent = m;          if (this.cdSec) this.cdSec.textContent = s;        }        init() {          this.initCountdown();          try {            initAnalytics();          } catch (e) {            console.warn('Deals Widget Analytics Error:', e);          }                    this.bindEvents();                    let initialQuery = '';                    let searchSource = window.location.search;          if (this.hostContainer && this.hostContainer.hasAttribute('data-widget-config')) {            searchSource = this.hostContainer.getAttribute('data-widget-config');          } else if (typeof window !== 'undefined' && window.__WIDGET_CONFIG__) {            searchSource = window.__WIDGET_CONFIG__;          }          const params = new URLSearchParams(searchSource);          let initialViewMode = params.get('view_mode');          if (!params.has('search') && !params.has('q') && !params.has('query') && initialViewMode !== 'savings_squad') {             initialQuery = 'Everything';             if (this.discountFilter && !params.has('min_discount_ratio')) {               this.discountFilter.value = '5';             }          }          const website = params.get('website') || 'tomsguide';          this.website = website;          if (website === 'techradar') {            const squadHeader = this.root.querySelector('.tg-df-savings-squad-header');            if (squadHeader) {               const pic = squadHeader.querySelector('picture');               if (pic) pic.style.display = 'none';            }            const style = document.createElement('style');            style.innerHTML = `              .tg-df-container .hawk-affiliate-link-deal-button, .tg-df-container .tg-df-card-cta { background-color: #5DAF08 !important; }              .tg-df-container .hawk-affiliate-link-deal-button:hover, .tg-df-container .tg-df-card-cta:hover { background-color: #4a8c06 !important; }            `;            this.root.appendChild(style);          }                    if (this.regionSelect) {            this.regionSelect.value = params.get('region') || 'auto';            this.updatePriceDropdownCurrency();          }                    if (this.retailerSelect && params.has('retailer')) {            this.retailerSelect.value = params.get('retailer');          }                    if (params.has('brands')) {            const b = params.get('brands');            if (b) {              this.selectedBrands = b.split(',');            }          }                    if (this.offerTypeSelect && params.has('offer_type')) {            this.offerTypeSelect.value = params.get('offer_type');          }          if (params.has('bg_color')) {            const bg = params.get('bg_color');            if (bg === 'white') {              this.root.style.setProperty('background-color', '#ffffff', 'important');            } else if (bg === 'transparent') {              this.root.style.setProperty('background-color', 'transparent', 'important');            } else if (bg === 'light_blue') {              this.root.style.setProperty('background-color', '#E7F0FF', 'important');            }          } else {             this.root.style.removeProperty('background-color');          }                    if (params.has('view_mode')) {            if (this.viewModeSelect) {              this.viewModeSelect.value = params.get('view_mode');            } else {              this.viewModeOverride = params.get('view_mode');            }          }          if (this.rowsSelect && params.has('rows')) {            this.rowsSelect.value = params.get('rows');          }          if (params.has('price')) {            const priceVal = params.get('price');            if (this.priceFilter) {               // Try assigning it directly to select. If it's not present implicitly ignores               this.priceFilter.value = priceVal;            }            if (priceVal.includes('_')) {               const parts = priceVal.split('_');               if (this.customPriceMin && parts[0]) this.customPriceMin.value = parts[0];               if (this.customPriceMax && parts[1]) this.customPriceMax.value = parts[1];            }          }          if (this.discountFilter && params.has('min_discount_ratio')) {            // Need to convert back from ratio (e.g. 0.8) to select value (e.g. "20")            const ratioStr = params.get('min_discount_ratio');            const ratioFloat = parseFloat(ratioStr);            if (!isNaN(ratioFloat)) {               const percentage = Math.round((1 - ratioFloat) * 100);               this.discountFilter.value = percentage.toString();            }          }          if (this.sortSelect) {            this.sortSelect.value = params.get('sort') || 'discount_desc';          }          if (this.dealModeToggle && params.has('deal_mode')) {            this.dealModeToggle.checked = params.get('deal_mode') === 'true' || params.get('deal_mode') === '1';          }                    // Re-apply layout after params have updated control values          this.applyLayoutMode();                    if (params.get('search')) {            initialQuery = params.get('search');          } else if (params.get('q')) {            initialQuery = params.get('q');          } else if (params.get('query')) {            initialQuery = params.get('query');          }                    this.currentQuery = initialQuery;          if (this.searchInput) {            this.searchInput.value = this.currentQuery;          }                    if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {            this.fetchDeals(this.currentQuery);          } else {            this.render();          }        }        updatePriceDropdownCurrency() {          if (!this.priceFilter || !this.regionSelect) return;          const currencySymbols = {            'US': '$',            'GB': '£',            'CA': '$CA',            'AU': '$AU',            'DE': '€',            'FR': '€',            'IT': '€',          };          const area = this.getAreaCode();          const cur = currencySymbols[area || 'US'] || '$';                    const options = this.priceFilter.options;          for (let i = 0; i < options.length; i++) {            const opt = options[i];            if (opt.value === 'all') {              opt.innerText = 'All Prices';            } else if (opt.value === 'under50') {              opt.innerText = `Under ${cur}50`;            } else if (opt.value === '50_100') {              opt.innerText = `${cur}50 - ${cur}100`;            } else if (opt.value === '100_200') {              opt.innerText = `${cur}100 - ${cur}200`;            } else if (opt.value === '200_500') {              opt.innerText = `${cur}200 - ${cur}500`;            } else if (opt.value === 'over500') {              opt.innerText = `Over ${cur}500`;            }          }        }        populateBrandDropdown(values) {          if (!this.brandDropdown || !this.brandFilterWrapper) return;          this.brandFilterWrapper.style.display = 'flex'; // show the wrapper                    let html = '';          const allChecked = this.selectedBrands.length === 0 ? 'checked' : '';          const _div = '<' + '/div>';          const _span = '<' + '/span>';          html += `\x3Cdiv class="tg-df-ms-option">\x3Cinput type="checkbox" value="" ${allChecked} class="tg-df-brand-chk"> Any Brand${_div}`;                    values.forEach(v => {             if (!v.formatted_value || v.formatted_value === 'Any Brand') return;             const isChecked = this.selectedBrands.includes(v.formatted_value) ? 'checked' : '';             html += `\x3Cdiv class="tg-df-ms-option">\x3Cinput type="checkbox" value="${this.escapeHTML(v.formatted_value)}" ${isChecked} class="tg-df-brand-chk"> ${this.escapeHTML(v.formatted_value)} \x3Cspan style="color:var(--tg-df-text-muted);font-size:12px">(${v.count || 0})${_span}${_div}`;          });                    this.brandDropdown.innerHTML = html;                    // Re-bind listeners          const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');          chks.forEach(chk => {            chk.addEventListener('change', (e) => {              const val = e.target.value;              if (val === '') {                this.selectedBrands = [];              } else {                if (e.target.checked) {                   if (!this.selectedBrands.includes(val)) this.selectedBrands.push(val);                } else {                   this.selectedBrands = this.selectedBrands.filter(b => b !== val);                }              }                            if (this.selectedBrands.length === 0) {                 this.brandTrigger.innerText = 'Any Brand';              } else if (this.selectedBrands.length === 1) {                 this.brandTrigger.innerText = this.selectedBrands[0];              } else {                 this.brandTrigger.innerText = `${this.selectedBrands.length} Brands selected`;              }                            // Only call API if changed from UI interactions              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                 this.updateURLParams();                 this.fetchDeals(this.currentQuery);              }            });          });                    // Update button text on load          if (this.selectedBrands.length === 0) {             this.brandTrigger.innerText = 'Any Brand';          } else if (this.selectedBrands.length === 1) {             this.brandTrigger.innerText = this.selectedBrands[0];          } else {             this.brandTrigger.innerText = `${this.selectedBrands.length} Brands selected`;          }        }        updateURLParams() {          const url = new URL(window.location);          if (this.currentQuery && this.currentQuery !== 'Gaming laptops') {            url.searchParams.set('q', this.currentQuery);          } else {            url.searchParams.delete('q');            url.searchParams.delete('search');            url.searchParams.delete('query');          }                    if (this.regionSelect && this.regionSelect.value !== 'auto') {            url.searchParams.set('region', this.regionSelect.value);          } else {            url.searchParams.delete('region');          }                    if (this.retailerSelect && this.retailerSelect.value) {            url.searchParams.set('retailer', this.retailerSelect.value);          } else {            url.searchParams.delete('retailer');          }                    if (this.selectedBrands && this.selectedBrands.length > 0) {            url.searchParams.set('brands', this.selectedBrands.join(','));          } else {            url.searchParams.delete('brands');          }                    if (this.offerTypeSelect && this.offerTypeSelect.value) {            url.searchParams.set('offer_type', this.offerTypeSelect.value);          } else {            url.searchParams.delete('offer_type');          }                    if (this.viewModeSelect && this.viewModeSelect.value !== 'auto') {            url.searchParams.set('view_mode', this.viewModeSelect.value);          } else {            url.searchParams.delete('view_mode');          }                    if (this.rowsSelect && this.rowsSelect.value !== '12') {            url.searchParams.set('rows', this.rowsSelect.value);          } else {            url.searchParams.delete('rows');          }                    const min = this.customPriceMin ? this.customPriceMin.value : '';          const max = this.customPriceMax ? this.customPriceMax.value : '';          if (min || max) {             url.searchParams.set('price', `${min}_${max}`);          } else if (this.priceFilter && this.priceFilter.value !== 'all') {            url.searchParams.set('price', this.priceFilter.value);          } else {            url.searchParams.delete('price');          }                    if (this.discountFilter && this.discountFilter.value !== 'all' && this.discountFilter.value !== '0') {            const v = parseInt(this.discountFilter.value);            if (!isNaN(v) && v > 0) {               const ratio = (100 - v) / 100;               url.searchParams.set('min_discount_ratio', ratio.toString());            }          } else {            url.searchParams.delete('min_discount_ratio');          }                    if (this.sortSelect && this.sortSelect.value !== 'discount_desc') {            url.searchParams.set('sort', this.sortSelect.value);          } else {            url.searchParams.delete('sort');          }                    if (this.dealModeToggle && this.dealModeToggle.checked) {            url.searchParams.set('deal_mode', 'true');          } else {            url.searchParams.delete('deal_mode');          }                    window.history.replaceState({}, '', url);        }        bindEvents() {          const roundels = this.root.querySelectorAll('.tg-df-carousel-cat.original-hardcoded');          roundels.forEach(r => {             r.addEventListener('click', () => {                const q = r.getAttribute('data-query');                const pr = r.getAttribute('data-pr');                if (typeof trackHawkEvent !== 'undefined') {                     trackHawkEvent({                         clickType: "CC",                         widgetId: this.widgetId,                         productCategoryName: "deals",                         zeroBasedProductIndexOrNull: null,                         totalDealsOrProducts: null,                         areaClicked: "Category Roundel",                         revenueId: this.revenueId,                         isoCurrencyCode: typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD',                         queryName: q,                         widgetTypeName: this.widgetTypeName                     });                 }                this.currentQuery = q;                const label = this.root.querySelector('#tg-df-carousel-title-label');                if (label) label.textContent = 'Best ' + q;                if (this.priceFilter) this.priceFilter.value = pr || 'all';                if (this.discountFilter) this.discountFilter.value = '5';                if (this.searchInput) this.searchInput.value = q;                                roundels.forEach(ro => ro.classList.remove('active'));                r.classList.add('active');                this.fetchDeals(this.currentQuery);             });          });          const discBtns = this.root.querySelectorAll('.tg-df-carousel-filter-btn');          discBtns.forEach(b => {             b.addEventListener('click', () => {                const d = b.getAttribute('data-d');                const pr = b.getAttribute('data-pr');                const ot = b.getAttribute('data-ot');                let label = b.innerText ? b.innerText.trim() : '';                let filterType = 'unknown';                let filterVal = 'unknown';                if (d !== null) { filterType = 'discount'; filterVal = d; }                else if (pr !== null) { filterType = 'price'; filterVal = pr; }                else if (ot !== null) { filterType = 'offertype'; filterVal = ot; }                if (typeof trackElementInteraction === 'function') trackElementInteraction({ id: `filter-${filterType}-${filterVal}`, name: 'Filter Button', label: label });                                if (d !== null) {                   if (this.discountFilter) this.discountFilter.value = this.discountFilter.value === d ? '0' : d;                } else if (pr !== null) {                   if (this.priceFilter) this.priceFilter.value = this.priceFilter.value === pr ? 'all' : pr;                } else if (ot !== null) {                   if (this.offerTypeSelect) this.offerTypeSelect.value = this.offerTypeSelect.value === ot ? 'all' : ot;                } else {                   if (this.discountFilter) this.discountFilter.value = '0';                   if (this.priceFilter) this.priceFilter.value = 'all';                   if (this.offerTypeSelect) this.offerTypeSelect.value = 'all';                }                if (d === null && pr === null && ot === null && b.getAttribute("data-type") !== "custom") {                   discBtns.forEach(ro => ro.classList.remove('active'));                   b.classList.add('active');                } else if (b.getAttribute("data-type") !== "custom") {                   // Only operate on hardcoded buttons (those without data-type)                   discBtns.forEach(ro => {                      if (!ro.getAttribute('data-d') && !ro.getAttribute('data-pr') && !ro.getAttribute('data-ot') && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active');                   });                                      let makeActive = true;                   if (d !== null) {                       if (b.classList.contains('active')) makeActive = false;                       discBtns.forEach(ro => { if (ro.getAttribute('data-d') !== null && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active') });                   } else if (pr !== null) {                       if (b.classList.contains('active')) makeActive = false;                       discBtns.forEach(ro => { if (ro.getAttribute('data-pr') !== null && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active') });                   } else if (ot !== null) {                       if (b.classList.contains('active')) makeActive = false;                       discBtns.forEach(ro => { if (ro.getAttribute('data-ot') !== null && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active') });                   }                                      if (makeActive) b.classList.add('active');                                      // Check if anything is active, if not activate "All"                   let anyActive = false;                   discBtns.forEach(ro => { if (ro.classList.contains('active') && ro.getAttribute('data-type') !== 'custom') anyActive = true; });                   if (!anyActive) {                       discBtns.forEach(ro => { if (!ro.getAttribute('data-d') && !ro.getAttribute('data-pr') && !ro.getAttribute('data-ot') && ro.getAttribute('data-type') !== 'custom') ro.classList.add('active'); });                   }                }                                this.fetchDeals(this.currentQuery);             });          });          if (this.brandTrigger && this.brandDropdown) {            this.brandTrigger.addEventListener('click', () => {              this.brandDropdown.classList.toggle('active');            });            document.addEventListener('click', (e) => {              if (this.brandFilterWrapper && !e.composedPath().includes(this.brandFilterWrapper)) {                this.brandDropdown.classList.remove('active');              }            });          }          let debounceTimer;          if(this.searchInput) {            this.searchInput.addEventListener('input', (e) => {              clearTimeout(debounceTimer);              const query = e.target.value.trim();              this.currentQuery = query;              if (this.getViewMode() === 'savings_squad' && this.autocompleteDropdown && this.airedaleTags && query.length > 0) {                 const matches = this.airedaleTags.filter(t => t.toLowerCase().includes(query.toLowerCase()) && t.toLowerCase() !== query.toLowerCase()).slice(0, 5);                 if (matches.length > 0) {                    this.autocompleteDropdown.innerHTML = matches.map(m => `\x3Cdiv class="tg-df-autocomplete-item" data-tag="${this.escapeHTML(m)}">${this.escapeHTML(m)}<` + `/div>`).join('');                    this.autocompleteDropdown.classList.add('active');                 } else {                    this.autocompleteDropdown.classList.remove('active');                 }              } else if (this.autocompleteDropdown) {                 this.autocompleteDropdown.classList.remove('active');              }              debounceTimer = setTimeout(() => {                this.updateURLParams();                if (query.length > 2) {                  this.fetchDeals(query);                } else if (query.length === 0) {                  this.deals = [];                  this.render();                }              }, 400);            });            this.searchInput.addEventListener('keypress', (e) => {              if (e.key === 'Enter') {                if (this.autocompleteDropdown) this.autocompleteDropdown.classList.remove('active');                clearTimeout(debounceTimer);                const query = e.target.value.trim();                this.currentQuery = query;                this.activeDealTag = null;                trackElementInteraction({ id: 'search-submit', name: 'Ask', label: 'Ask (main search)', text: query });                this.updateURLParams();                if (query.length > 2 || (this.getViewMode() === 'savings_squad')) {                   this.fetchDeals(query);                }              }            });          }          if (this.autocompleteDropdown) {             this.autocompleteDropdown.addEventListener('click', (e) => {                const item = e.target.closest('.tg-df-autocomplete-item');                if (item) {                   const tag = item.getAttribute('data-tag');                   this.currentQuery = tag;                   if (this.searchInput) this.searchInput.value = tag;                   this.activeDealTag = tag;                   this.autocompleteDropdown.classList.remove('active');                   this.updateURLParams();                   this.fetchDeals(tag);                }             });             document.addEventListener('click', (e) => {               if (this.autocompleteDropdown && this.searchInput && !e.composedPath().includes(this.searchInput) && !e.composedPath().includes(this.autocompleteDropdown)) {                 this.autocompleteDropdown.classList.remove('active');               }             });          }          if (this.searchBtn) {            this.searchBtn.addEventListener('click', () => {              if (this.autocompleteDropdown) this.autocompleteDropdown.classList.remove('active');              clearTimeout(debounceTimer);              const query = this.searchInput.value.trim();              trackElementInteraction({ id: 'search-submit', name: 'Ask', label: 'Ask (main search)', text: query });              this.activeDealTag = null;              this.currentQuery = query;              this.updateURLParams();              if (query.length > 2 || (this.getViewMode() === 'savings_squad')) {                 this.fetchDeals(query);              }            });          }          if(this.sortSelect) this.sortSelect.addEventListener('change', () => {            trackElementInteraction({ id: `sort-option-${this.sortSelect.value}`, name: 'Sort', label: `Sort: ${this.sortSelect.options[this.sortSelect.selectedIndex].text}` });            this.updateURLParams();            if (this.deals.length > 0) {              this.sortData();              this.render();            }          });                    const priceFilter = this.root.querySelector('#tg-df-price-filter');          if (priceFilter) {            this.priceFilter = priceFilter;            this.priceFilter.addEventListener('change', () => {              trackElementInteraction({ id: `filter-price-${this.priceFilter.value}`, name: 'Price', label: this.priceFilter.options[this.priceFilter.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              } else {                this.render();              }            });          }          const updateCustomPrice = () => {             this.updateURLParams();             if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);             } else {                this.render();             }          };          if (this.customPriceMin) {             this.customPriceMin.addEventListener('change', updateCustomPrice);             this.customPriceMin.addEventListener('keypress', (e) => {                if (e.key === 'Enter') updateCustomPrice();             });          }          if (this.customPriceMax) {             this.customPriceMax.addEventListener('change', updateCustomPrice);             this.customPriceMax.addEventListener('keypress', (e) => {                if (e.key === 'Enter') updateCustomPrice();             });          }          const discountFilter = this.root.querySelector('#tg-df-discount-filter');          if (discountFilter) {            this.discountFilter = discountFilter;            this.discountFilter.addEventListener('change', () => {              trackElementInteraction({ id: `filter-discount-${this.discountFilter.value}`, name: 'Discount', label: this.discountFilter.options[this.discountFilter.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              } else {                this.render();              }            });          }          if (this.categoryFilter) {            this.categoryFilter.addEventListener('change', (e) => {               const val = e.target.value === 'all' ? null : e.target.value;               this.activeDealTag = val;               this.fetchSavingsSquad();            });          }                    if (this.settingsToggle) {            this.settingsToggle.addEventListener('click', () => {              const o = this.settingsPanel.classList.toggle('active');              this.settingsBackdrop.classList.toggle('active');              if (o) trackElementInteraction({ id: 'filter-open', name: 'Filters', label: 'Open filters' });            });          }                    if (this.settingsBackdrop) {            this.settingsBackdrop.addEventListener('click', () => {              this.settingsPanel.classList.remove('active');              this.settingsBackdrop.classList.remove('active');            });          }                    if (this.regionSelect) {            this.regionSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-region-${this.regionSelect.value}`, name: 'Region', label: this.regionSelect.options[this.regionSelect.selectedIndex].text });              this.updateURLParams();              this.updatePriceDropdownCurrency();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.retailerSelect) {            this.retailerSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-merchant-${this.retailerSelect.value}`, name: 'Retailer', label: this.retailerSelect.options[this.retailerSelect.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.offerTypeSelect) {            this.offerTypeSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-offertype-${this.offerTypeSelect.value}`, name: 'Offer Type', label: this.offerTypeSelect.options[this.offerTypeSelect.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.viewModeSelect) {            this._prevViewMode = this.viewModeSelect.value;            this.viewModeSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-viewmode-${this.viewModeSelect.value}`, name: 'View Mode', label: this.viewModeSelect.options[this.viewModeSelect.selectedIndex].text });                            // Reset all active toggles and filters to prevent config carry-over              this.selectedBrands = [];              if (this.brandTrigger) this.brandTrigger.innerText = 'Select Brands';              if (this.brandDropdown) {                const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                chks.forEach(chk => { chk.checked = false; });              }              if (this.priceFilter) this.priceFilter.value = 'all';              if (this.customPriceMin) this.customPriceMin.value = '';              if (this.customPriceMax) this.customPriceMax.value = '';              if (this.sortSelect) this.sortSelect.value = this.viewModeSelect.value === 'savings_squad' ? 'date_desc' : 'discount_desc';              if (this.discountFilter) this.discountFilter.value = '0';              if (this.retailerSelect) this.retailerSelect.value = '';              if (this.offerTypeSelect) this.offerTypeSelect.value = '';              if (this.rowsSelect) this.rowsSelect.value = '12';              if (this.categoryFilter) this.categoryFilter.value = 'all';              this.activeDealTag = null;              this.updateURLParams();              this.applyLayoutMode();                            if (this.getViewMode() === 'savings_squad' || this._prevViewMode === 'savings_squad') {                this.fetchDeals(this.currentQuery);              } else {                this.render();              }              this._prevViewMode = this.viewModeSelect.value;            });          }                    if (this.rowsSelect) {            this.rowsSelect.addEventListener('change', () => {              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.dealModeToggle) {            this.dealModeToggle.addEventListener('change', () => {              this.updateURLParams();              this.render();            });          }          if (this.editorModeToggle) {             this.editorModeToggle.addEventListener('change', (e) => {                this.editorMode = e.target.checked;                this.render();                this.updateFloatingCopyBar();             });          }          if (this.editorCopyBtn) {             this.editorCopyBtn.addEventListener('click', () => {                this.copySelectedDealsToCMS();             });          }          if (this.editorClearBtn) {             this.editorClearBtn.addEventListener('click', () => {                this.selectedDeals.clear();                this.render();                this.updateFloatingCopyBar();             });          }          if (this.grid) {            this.grid.addEventListener('change', (e) => {               if (e.target.classList.contains('tg-df-deal-checkbox')) {                  const dealId = e.target.getAttribute('data-id');                  if (e.target.checked) {                     const dealObj = this.deals.find(d => d.id === dealId);                     if (dealObj) this.selectedDeals.set(dealId, dealObj);                  } else {                     this.selectedDeals.delete(dealId);                  }                  this.updateFloatingCopyBar();               }            });            this.grid.addEventListener('click', (e) => {              const dealCard = e.target.closest('[data-action="deal-click"]');              const similarCard = e.target.closest('[data-action="view-similar-click"]');              const cardLink = dealCard || similarCard;              if (cardLink) {                const productName = cardLink.getAttribute('data-product-name');                const merchantName = cardLink.getAttribute('data-merchant-name');                const productId = cardLink.getAttribute('data-analytics-id');                const price = parseFloat(cardLink.getAttribute('data-price')) || null;                const prevPriceStr = cardLink.getAttribute('data-previous-price');                const previousPrice = prevPriceStr ? parseFloat(prevPriceStr) : null;                const originalLink = cardLink.getAttribute('data-original-link');                const rewrittenLink = cardLink.getAttribute('href');                const revenueId = cardLink.getAttribute('data-revenue-id');                const index = parseInt(cardLink.getAttribute('data-index'), 10) || 0;                const inStock = cardLink.getAttribute('data-in-stock') === 'true';                const totalText = cardLink.getAttribute('data-total');                const totalDeals = parseInt(totalText, 10) || 0;                const productCategoryName = 'deals';                const trackingParams = {                  widgetId: this.widgetId,                  productCategoryName: productCategoryName,                  product: {                    modelId: cardLink.getAttribute('data-model-id') || null,                    matchId: cardLink.getAttribute('data-match-id') || null,                    brand: cardLink.getAttribute('data-model-brand') || null,                    parent: cardLink.getAttribute('data-model-parent') || null,                    name: productName,                    price: price,                    previousPrice: previousPrice,                    link: rewrittenLink,                    originalLink: originalLink,                    inStock: inStock                  },                  zeroBasedProductIndexOrNull: index,                  totalDealsOrProducts: totalDeals,                   merchant: {                    id: cardLink.getAttribute('data-merchant-id') || null,                    network: cardLink.getAttribute('data-merchant-network') || null,                    url: cardLink.getAttribute('data-merchant-url') || null,                    name: merchantName                  },                  revenueId: revenueId,                  widgetTypeName: this.widgetTypeName,                  isoCurrencyCode: normalizeCurrency(this.escapeHTML(cardLink.getAttribute('data-currency') || '$'))                };                if (dealCard) {                  trackDealClick(trackingParams);                } else {                  trackViewSimilarClick(trackingParams);                }              }              const couponsBtn = e.target.closest('[data-action="coupons-click"]');              if (couponsBtn) {                trackElementInteraction({                  id: 'product-card-show-coupons',                  name: 'Coupons',                  label: `Product card coupons: ${couponsBtn.getAttribute('data-merchant')}`                });              }            });          }          this.setupScrollListeners();        }        setupScrollListeners() {          const containers = [             this.root.querySelector('.tg-df-carousel-roundels'),             this.root.querySelector('.tg-df-carousel-filters-wrap'),             this.root.querySelector('#tg-df-grid')          ];                    containers.forEach(container => {             if (!container) return;                          const checkScroll = () => {                if (!container.parentElement) return;                const leftBtn = container.parentElement.querySelector('.tg-df-carousel-scroll-left');                const rightBtn = container.parentElement.querySelector('.tg-df-carousel-scroll-right');                                if (leftBtn) {                   if (container.scrollLeft <= 5) leftBtn.style.display = 'none';                   else leftBtn.style.display = 'flex';                }                                if (rightBtn) {                   if (container.scrollWidth <= container.clientWidth) {                       rightBtn.style.display = 'none';                   } else if (container.scrollLeft >= container.scrollWidth - container.clientWidth - 5) {                       rightBtn.style.display = 'none';                   } else {                       rightBtn.style.display = 'flex';                   }                }             };                          container.addEventListener('scroll', checkScroll);             checkScroll();                          window.addEventListener('resize', checkScroll);                          const observer = new MutationObserver(checkScroll);             observer.observe(container, { childList: true, subtree: true, characterData: false });          });        }        get widgetTypeName() {          const mode = this.viewModeSelect ? this.viewModeSelect.value : (this.viewModeOverride || 'auto');          switch(mode) {              case 'carousel': return 'Carousel';              case 'savings_squad': return 'Savings Squad';              case 'grid': return 'Grid';              case 'row': return 'Row';              default: return 'Auto Collection';          }        }        getRowsLimit() {          if (this.rowsSelect && this.rowsSelect.value) return parseInt(this.rowsSelect.value, 10);          let configSource = window.location.search;          if (this.hostContainer && this.hostContainer.hasAttribute('data-widget-config')) {             configSource = this.hostContainer.getAttribute('data-widget-config');          } else if (typeof window !== 'undefined' && window.__WIDGET_CONFIG__) {             configSource = window.__WIDGET_CONFIG__;          }          const params = new URLSearchParams(configSource);          if (params.has('rows')) return parseInt(params.get('rows'), 10) || 12;          return 12;        }        getAreaCode() {          if (this.regionSelect && this.regionSelect.value) {            if (this.regionSelect.value === 'auto') return null;            return this.regionSelect.value;          }          let area = null;          try {            const locale = window.navigator.language || window.navigator.userLanguage;            if (locale && locale.includes('-')) {              area = locale.split('-')[1].toUpperCase();            } else if (locale && locale.length === 2) {              if (locale.toUpperCase() === 'EN') { area = 'US'; }              else { area = locale.toUpperCase(); }            }          } catch (e) { /* Ignore */ }                    // Map to known valid options or fallback to US          const valid = ['US', 'GB', 'CA', 'AU', 'DE', 'FR', 'IT'];          if (area === 'UK') area = 'GB';          if (valid.includes(area)) {             return area;          }          return 'US';        }                async loadCarouselSpreadsheet() {          try {              const parseCSVRow = (str) => {                  let result = [], cur = '', inQuotes = false;                  for (let i = 0; i < str.length; i++) {                      let char = str[i];                      if (inQuotes) {                          if (char === '"') {                              if (str[i + 1] === '"') { cur += '"'; i++; }                              else { inQuotes = false; }                          } else { cur += char; }                      } else {                          if (char === '"') { inQuotes = true; }                          else if (char === ',') { result.push(cur); cur = ''; }                          else { cur += char; }                      }                  }                  result.push(cur); return result;              };              const parseCSV = (str) => {                  const rows = []; let curRow = '', inQuotes = false;                  for (let i = 0; i < str.length; i++) {                      let char = str[i];                      if (char === '"') inQuotes = !inQuotes;                      if ((char === '\n' || char === '\r') && !inQuotes) {                          if (char === '\r' && str[i+1] === '\n') i++;                          if (curRow) rows.push(parseCSVRow(curRow));                          curRow = '';                      } else { curRow += char; }                  }                  if (curRow) rows.push(parseCSVRow(curRow));                  return rows;              };              const preloadedCSV = decodeURIComponent(escape(atob("LCwxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNQ0KUm91bmRlbCB0ZXh0LEFsbCxUVnMsRm9vdHdlYXIsQXBwYXJlbCxNYXR0cmVzZXMsQXBwbGlhbmNlcyxXZWFyYWJsZSB0ZWNoLEhlYWRwaG9uZXMsU21hcnQgSG9tZSxTcGVha2VycyxMYXB0b3BzLFRhYmxldHMsQ29tcHV0aW5nLFBob25lcyxHYW1pbmcsTGVnbw0KUm91bmRlbCBpbWFnZSxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Nob3AtYXNzZXRzL2Nhcm91c2VsL2FpLnBuZyxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Nob3AtYXNzZXRzL2Nhcm91c2VsL3R2cy5wbmcsaHR0cHM6Ly9pbWFnZXMuZmllLmZ1dHVyZWNkbi5uZXQvcHJvZHVjdHMvN2IzYTIyNGIwNzk2M2M2MjdiNmI5MDliZDc4MzM4MzZlMDJmZjgxOS5qcGcud2VicCxodHRwczovL2ltYWdlcy5maWUuZnV0dXJlY2RuLm5ldC9wcm9kdWN0cy84NGRhYzVkNDhlZDJkNDQ4NTU5ZWJhNjdhY2U4MzE0Y2M2N2NjZDk0LmpwZy53ZWJwLGh0dHBzOi8vd3d3LnRvbXNndWlkZS5jb20vc2hvcC1hc3NldHMvY2Fyb3VzZWwvbWF0dHJlc3Nlcy5wbmcsaHR0cHM6Ly9pbWFnZXMuZmllLmZ1dHVyZWNkbi5uZXQvcHJvZHVjdHMvNzY4ZTk3Y2ViMDcxODAxZmFlMjA5MTBkMDgyMGIxNmY3NDdhZjkzOS5qcGcud2VicCxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Nob3AtYXNzZXRzL2Nhcm91c2VsL3dlbGxuZXNzLnBuZyxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Nob3AtYXNzZXRzL2Nhcm91c2VsL2hlYWRwaG9uZXMuanBnLGh0dHBzOi8vaW1hZ2VzLmZpZS5mdXR1cmVjZG4ubmV0L3Byb2R1Y3RzLzg5NTM1YmVlYmUyMGRiYmQ0YTM0NmQ2ZDZiZGZlOTFkOGE4ODRhMjEuanBnLndlYnAsaHR0cHM6Ly93d3cudG9tc2d1aWRlLmNvbS9zaG9wLWFzc2V0cy9jYXJvdXNlbC9hdWRpby5qcGcsaHR0cHM6Ly93d3cudG9tc2d1aWRlLmNvbS9zaG9wLWFzc2V0cy9jYXJvdXNlbC9sYXB0b3BzLmpwZyxodHRwczovL2ltYWdlcy5maWUuZnV0dXJlY2RuLm5ldC9wcm9kdWN0cy8yMzk3NTY0ZWQ3YTVmZjk0N2U5YjZiMzBlNTRmNDc0OTRiODQxZjg5LmpwZy53ZWJwLGh0dHBzOi8vd3d3LnRvbXNndWlkZS5jb20vc2hvcC1hc3NldHMvY2Fyb3VzZWwvY29tcHV0aW5nLmpwZyxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Nob3AtYXNzZXRzL2Nhcm91c2VsL3Bob25lcy5wbmcsaHR0cHM6Ly93d3cudG9tc2d1aWRlLmNvbS9zaG9wLWFzc2V0cy9jYXJvdXNlbC9nYW1pbmcucG5nLGh0dHBzOi8vaW1hZ2VzLmZpZS5mdXR1cmVjZG4ubmV0L3Byb2R1Y3RzLzRmNmM2MjFjYWMwYmMxYTg1ZDU5M2UzNTk0YmE1YjM0OWVmZmQyOTIuanBnLndlYnANClNlYXJjaCBRdWVyeSxFdmVyeXRoaW5nLFRlbGV2aXNpb25zLCJTbmVha2VycywgcnVubmluZyBzaG9lcywgc2FuZGFscyIsQ2xvdGhpbmcsTWF0dHJlc3NlcyxIb21lIEFwcGxpYW5jZXMsV2VhcmFibGVzICYgRml0bmVzcyBUZWNoLEhlYWRwaG9uZXMsSG9tZSBUZWNoLFNwZWFrZXJzLExhcHRvcHMsVGFibGV0cyxDb21wdXRpbmcsUGhvbmVzLEdhbWluZyxDb25zdHJ1Y3Rpb24gVG95cw0KRGlzY291bnQgQW1vdW50LG1pbiA1JSxtaW4gMTAlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUNClByaWNlIFJhbmdlLCwsLCxtaW4gJDQwMCwsLCxtaW4gJDI1LCxtaW4gJDMwMCwsLG1pbiAkMTAwLCwNCkJyYW5kIFNlbGVjdGlvbiwsLCwsLCwsLCwsLCwsLCwNCkZpbHRlciBidXR0b25zLCwsLCwsLCwsLCwsLCwsLA0KMSxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMNCjIsQW1hem9uIGRlYWxzLFVuZGVyICQxMDAwLDUwJSBvZmYsQWRpZGFzLEFtYXpvbiBkZWFscyxBbWF6b24gZGVhbHMsNTAlIG9mZixBbWF6b24gZGVhbHMsQW1hem9uIGRlYWxzLEFtYXpvbiBkZWFscyxBbWF6b24gZGVhbHMsQW1hem9uIGRlYWxzLEFtYXpvbiBkZWFscyxBbWF6b24gZGVhbHMsQW1hem9uIGRlYWxzLEFtYXpvbiBkZWFscw0KMyxPdmVyICQ0MDAsVW5kZXIgJDUwMCxIb2thLE5pa2UsU2FhdHZhLE5pbmphLDQwJSBvZmYsSkxhYiwsSkJMLERlbGwsLEFzdXMsQXBwbGUsQ29uc29sZXMsU3RhciBXYXJzDQo0LFVuZGVyICQxMDAwLDUwJSBvZmYsU2tlY2hlcnMsVW5kZXIgQXJtb3VyLEhlbGl4LFNoYXJrLEdhcm1pbixBbmtlciBTb3VuZGNvcmUsUmluZyxTb25vcyxBcHBsZSxBcHBsZSxUUC1saW5rLFNhbXN1bmcsQWNjZXNzb3JpZXMsVW5kZXIgJDI1DQo1LFVuZGVyICQ1MDAsTEcsQXNpY3MsQ29sdW1iaWEsRHJlYW1DbG91ZCxLZXVyaWcsQXBwbGUsU29ueSxHb3ZlZSxUcmliaXQsTGVub3ZvLFNhbXN1bmcsRWVybyxHb29nbGUsR2FtZXMsVW5kZXIgJDUwDQo2LDUwJSBvZmYsU2Ftc3VuZyxOaWtlLFBhdGFnb25pYSxOZWN0YXIsRGUnTG9uZ2hpLEFtYXpmaXQsQXBwbGUsS2FzYSBzbWFydCxTb255LEFsaWVud2FyZSxUQ0wsTmV0Z2VhcixNb3Rvcm9sYSxOaW50ZW5kbyxCb3RhbmljYWxzDQo3LEFtYXpvbixIaXNlbnNlLE5ldyBCYWxhbmNlLEFyYyd0ZXJ5eCxUZW1wdXItcGVkaWMsRHlzb24sRml0Yml0LEJlYXRzLFBoaWxpcHMgSHVlLEFua2VyLEFjZXIsT25lUGx1cyxEZWxsLE9uZVBsdXMsU29ueSxEaXNuZXkNCjgsQXBwbGUsVENMLEFkaWRhcyxDYXJoYXJ0dCxCZWFyLEJpc3NlbGwsU2Ftc3VuZyxFYXJmdW4sQmxpbmssQmVhdHMsTVNJLE1pY3Jvc29mdCxBY2VyLE5vdGhpbmcsWGJveCxNYXJ2ZWwNCjksLFNvbnksU2F1Y29ueSxUaGUgTm9ydGggRmFjZSxTaWVuYSxOdXRyaWJ1bGxldCxPdXJhLFNhbXN1bmcsR29vZ2xlIE5lc3QgLE1hcnNoYWxsLFNhbXN1bmcsTGVub3ZvLExlbm92bywsLFBva2Vtb24NCjEwLCxSb2t1LEJpcmtlbnN0b2NrLENSWiBZb2dhLFdpbmtCZWRzLEJsYWNrIGFuZCBEZWNrZXIsUmluZ2Nvbm4sQ01GLEV1ZnksU2Ftc3VuZyxNaWNyb3NvZnQsUmVNYXJrYWJsZSxBbGllbndhcmUsLCwNCjExLCwsQnJvb2tzLFRoZSBHeW0gUGVvcGxlLEJyb29rbHluIGJlZGRpbmcsTmVzcHJlc3NvLCwxTW9yZSxBcmxvLCxSYXplciwsQ29yc2FpciwsLA0KMTIsLCxDcm9jcywsRWlnaHQgU2xlZXAsQ3Vpc2luYXJ0LCxKQkwsLCwsLEhQLCwsDQpOb3RlcywsLCwsLCwsLCwsLCwsLCwNCiwsIlByaW9yaXRpc2UgYmlnZ2VzdCAlLyQgZGlzY291bnQsIFR2cyB3aXRoIH41MCUgb2ZmIGhhdmUgYmVlbiB0aGUgbW9zdCBwb3B1bGFyIGV2ZW4gaWYgdGhleSBhcmUgc3RpbGwgZXhwZW5zaXZlIiwiTm8gcGF0dGVybiB0byBwcmljaW5nL2Rpc2NvdW50LCByZWFkZXJzIG1haW5seSBzaG9wIGJ5IGJyYW5kL3JlY29nbmlzYWJsZSBzaG9lcyIsIk5vIHBhdHRlcm4gdG8gcHJpY2luZy9kaXNjb3VudCwgcmVhZGVycyBtYWlubHkgc2hvcCBieSBicmFuZCIsIkEgbGFiZWwgd2lsbCBkZWZpbml0ZWx5IGhlbHAgaGVyZSBlLmcuIGJlc3QgZm9yIHNpZGUgc2xlZXBlciwgYmVzdCBtZW1vcnkgZm9hbSIsIkFwcGxpYW5jZXMgaXMgYSBiaWcgY2F0ZWdvcnksIGlzIGl0IHBvc3NpYmxlIHRvIHNwbGl0IGludG8ga2l0Y2hlbiBhcHBsaWFuY2VzLCBmbG9vcmNhcmUsIGFpciBoZWFsdGgvY29vbGluZz8gT3Igc2ltaWxhciIsIkZvY3VzIG9uIHZhbHVlIGZvciBtb25leSwgR2FybWlucyB3aXRoIH41MCUgb2ZmIGhhdmUgYmVlbiBwb3B1bGFyIGV2ZW4gdGhvdWdoIHRoZXkgYXJlIHN0aWxsICQ1MDAiLCwsLCxJbmNsdWRlIEtpbmRsZXMsSSB3b3VsZCBpbmNsdWRlIHdpZmkgcm91dGVycyBoZXJlIGluc3RlYWQgb2Ygc21hcnQgaG9tZSxDYW4gd2Ugc3VyZmFjZSBwaG9uZSBwcm92aWRlciBkZWFscz8gVC1tb2JpbGUgYW5kIHZlcml6b24gd291bGQgbWFrZSBhIGxvdCBtb3JlIG1vbmV5IHRoYW4gQW1hem9uLCwNCiwsaGF2aW5nIGEgJ2Jlc3QgZm9yJyBsYWJlbCB3b3VsZCBiZSBoZWxwZnVsIGUuZy4gYmVzdCBmb3IgYnJpZ2h0IHJvb20sQ2FuIHdlIHN0b3Aga2lkcyBzaG9lcyBmcm9tIHB1bGxpbmcgdGhyb3VnaD8sIldpbGwgdGhpcyBpbmNsdWRlIGFjY2Vzc29yaWVzIGUuZy4gY2FwcywgYmFncywgaWYgc28gbWFrZSBzdXJlIHRoZXNlIGFyZSBtaXhlZCB0aHJvdWdob3V0IGNsb3RoaW5nIGRlYWxzIixXaWxsIHRoaXMgaW5jbHVkZSB0b3BwZXJzIGFuZCBwaWxsb3dzPyBTZWVpbmcgbW9yZSBtb21lbnR1bSB3aXRoIHRoaXMgY2F0ZWdvcnkgcmVjZW50bHkgc28gYSBiZWRkaW5nIHRhYiBtaWdodCB3b3JrLCwiTmVlZCB0byBtYWtlIHN1cmUgYmFuZHMsIHNjcmVlbiBwcm90ZWN0b3JzIGV0Yy4gZG9uJ3QgcHVsbCBpbnRvIGhlcmUiLCwsLCwsLCwsDQosLCJQcmlvcml0aXNlIDY1JycgYW5kIDU1JyBpbmNoIFRWcywgdGhlbiBiaWdnZXIgc2NyZWVucyBiZWZvcmUgdGhlIHNtYWxsZXIgc2l6ZXMiLCwsUXVlZW4gaXMgdGhlIG1vc3QgcG9wdWxhciBzaXplIGluIHRoZSBVUyAtIHByaW9yaXRpc2UgZGVhbHMgZm9yIHRoaXMgc2l6ZSwsLCwsLCwsLCwsDQosLCwsLCwsLCwsLCwsLCwsDQpDYXRlZ29yaWVzIHRvIGNvbnNpZGVyLCxQcm9kdWN0cyBpbmNsdWRlZCwsLCwsLCwsLCwsLCwsDQpVbmRlciAkNTA/LCxBaXIgdGFncywsLCwsLCwsLCwsLCwsDQosLFBvcnRhYmxlIGNoYXJnZXJzL3dpcmVsZXNzIGNoYXJnZXJzLCwsLCwsLCwsLCwsLCwNCiwsIldhdGVyIGJvdHRsZXMgKHN0YW5sZXlzLCBPd2FsYSwgSHlkcm8gZmxhc2ssIFlldGkpIiwsLCwsLCwsLCwsLCwsDQosLEhhbmQgaGVsZCBmYW5zLCwsLCwsLCwsLCwsLCwNCiwsLCwsLCwsLCwsLCwsLCwNCmhvbWUgb2ZmaWNlLCxvZmZpY2UgY2hhaXJzLCwsLCwsLCwsLCwsLCwNCiwsc3RhbmRpbmcgZGVza3MsLCwsLCwsLCwsLCwsLA0KLCxtb25pdG9ycywsLCwsLCwsLCwsLCwsDQosLEtleWJvYXJkcywsLCwsLCwsLCwsLCwsDQosLGRvY2tpbmcgc3RhdGlvbiwsLCwsLCwsLCwsLCwsDQosLCwsLCwsLCwsLCwsLCwsDQpHYW1pbmcsLENvbnNvbGVzLCwsLCwsLCwsLCwsLCwNCiwsQWNjZXNzb3JpZXMsLCwsLCwsLCwsLCwsLA0KLCxHYW1lcywsLCwsLCwsLCwsLCwsDQosLENvdWxkIGluY2x1ZGUgTGVnbz8sLCwsLCwsLCwsLCwsLA==")));              const text = preloadedCSV;              const parsed = parseCSV(text);                            const rowsByName = {};              let filterStart = -1;              parsed.forEach((rc, i) => {                 if (rc && rc.length > 0 && rc[0]) rowsByName[rc[0]] = rc;                 if (rc && rc.length > 0 && rc[0] === 'Filter buttons') filterStart = i;              });                            const cols = [];              if(rowsByName['Roundel text']) {                const headerRow = rowsByName['Roundel text'];                for(let col = 1; col < headerRow.length; col++) {                   let label = headerRow[col];                   if (!label) continue;                                      let q = rowsByName['Search Query'] && rowsByName['Search Query'][col] ? rowsByName['Search Query'][col] : '';                   let img = rowsByName['Roundel image'] && rowsByName['Roundel image'][col] ? rowsByName['Roundel image'][col] : '';                   let ds = rowsByName['Discount Amount'] && rowsByName['Discount Amount'][col] ? rowsByName['Discount Amount'][col] : '';                   let pr = rowsByName['Price Range'] && rowsByName['Price Range'][col] ? rowsByName['Price Range'][col] : '';                   let rt = rowsByName['Retailer'] && rowsByName['Retailer'][col] ? rowsByName['Retailer'][col] : '';                   let ot = rowsByName['Offer Type'] && rowsByName['Offer Type'][col] ? rowsByName['Offer Type'][col] : '';                                      let filters = [];                   if(filterStart > 0) {                     for(let r = filterStart + 1; r < parsed.length; r++) {                         if(!parsed[r] || parsed[r][0] === 'Notes' || parsed[r][0] === 'Categories to consider') break;                         let f = parsed[r][col];                         if(f) filters.push(f);                     }                   }                   cols.push({ label, img, q, ds, pr, rt, ot, filters });                }              }              this.carouselData = cols;              if (this.carouselData && this.carouselData.length > 0) {                 const isMatched = this.carouselData.some(c => c.q === this.currentQuery || c.label === this.currentQuery);                 if (!isMatched) {                    const first = this.carouselData[0];                    this.currentQuery = first.q || first.label;                    if (this.priceFilter) this.priceFilter.value = 'all';                    if (this.customPriceMin) this.customPriceMin.value = '';                    if (this.customPriceMax) this.customPriceMax.value = '';                    let dPr = first.pr || 'all';                    if (typeof dPr === 'string' && dPr !== 'all') {                       let prLower = dPr.toLowerCase();                       if (prLower.includes('min') || prLower.includes('over')) {                          let m = dPr.match(/(\d+)/);                          if (m && this.customPriceMin) this.customPriceMin.value = m[1];                       } else if (prLower.includes('max') || prLower.includes('under')) {                          let m = dPr.match(/(\d+)/);                          if (m && this.customPriceMax) this.customPriceMax.value = m[1];                       }                    }                    let dAm = '0';                    if(first.ds && typeof first.ds === 'string') {                       let m = first.ds.match(/(\d+)/);                       if(m) dAm = m[1];                    }                    if (this.discountFilter) this.discountFilter.value = dAm;                    if (this.offerTypeSelect) this.offerTypeSelect.value = first.ot || '';                    if (this.retailerSelect) this.retailerSelect.value = first.rt || '';                    this.selectedBrands = [];                    if (this.brandDropdown) {                        const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                        chks.forEach(chk => chk.checked = false);                    }                    if (this.searchInput) this.searchInput.value = this.currentQuery;                 }              }              this.renderCarouselUI();          } catch(e){ console.warn(e); }        }                renderCarouselUI() {           const roundelWrapper = this.root.querySelector('.tg-df-carousel-roundels');           if(!roundelWrapper || !this.carouselData) return;                      let html = '';           this.carouselData.forEach(r => {              const q = r.q || r.label;              const isActive = (this.currentQuery === q || this.currentQuery === r.label) ? 'active' : '';              const imgHtml = r.img ? `\x3Cimg src="${r.img}" alt="${r.label}" />` : `\x3Csvg width="32" height="32" fill="#1F69FF" viewBox="0 0 24 24">\x3Cpath d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/>\x3C/svg>`;              html += `                \x3Cdiv class="tg-df-roundel tg-df-carousel-cat ${isActive}" data-label="${this.escapeHTML(r.label)}">                  \x3Cdiv class="tg-df-roundel-img-box">${imgHtml}\x3C/div>                  \x3Cspan class="tg-df-roundel-label">${this.escapeHTML(r.label)}\x3C/span>                \x3C/div>              `;           });           roundelWrapper.innerHTML = html;                      // Rebind clicks           const roundels = this.root.querySelectorAll('.tg-df-carousel-cat');           roundels.forEach(rNode => {             rNode.addEventListener('click', () => {                const r = this.carouselData.find(c => c.label === rNode.getAttribute('data-label'));                 if(!r) return;                                  if (typeof trackHawkEvent !== 'undefined') {                     trackHawkEvent({                         clickType: "CC",                         widgetId: this.widgetId,                         productCategoryName: "deals",                         zeroBasedProductIndexOrNull: null,                         totalDealsOrProducts: null,                         areaClicked: "Category Roundel",                         revenueId: this.revenueId,                         isoCurrencyCode: typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD',                         queryName: r.label,                         widgetTypeName: this.widgetTypeName                     });                 }                this.currentQuery = r.q || r.label;                const labelTitle = this.root.querySelector('#tg-df-carousel-title-label');                if (labelTitle) labelTitle.textContent = 'Best ' + this.currentQuery;                if (this.priceFilter) this.priceFilter.value = 'all';                if (this.customPriceMin) this.customPriceMin.value = '';                if (this.customPriceMax) this.customPriceMax.value = '';                let dPr = r.pr || 'all';                if (typeof dPr === 'string' && dPr !== 'all') {                   let prLower = dPr.toLowerCase();                   if (prLower.includes('min') || prLower.includes('over')) {                      let m = dPr.match(/(\d+)/);                      if (m && this.customPriceMin) this.customPriceMin.value = m[1];                   } else if (prLower.includes('max') || prLower.includes('under')) {                      let m = dPr.match(/(\d+)/);                      if (m && this.customPriceMax) this.customPriceMax.value = m[1];                   }                }                                let discountAmount = '0';                if(r.ds && typeof r.ds === 'string') {                   let m = r.ds.match(/(\d+)/);                   if(m) discountAmount = m[1];                }                if (this.discountFilter) this.discountFilter.value = discountAmount;                if (this.offerTypeSelect) this.offerTypeSelect.value = r.ot || '';                if (this.retailerSelect) this.retailerSelect.value = r.rt || '';                                // Clear brands                    this.selectedBrands = [];                    if (this.brandDropdown) {                    const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                    chks.forEach(chk => chk.checked = false);                }                                if (this.searchInput) this.searchInput.value = this.currentQuery;                                roundels.forEach(ro => ro.classList.remove('active'));                if (rNode) rNode.classList.add('active');                                this.renderCarouselFilters(r);                this.fetchDeals(this.currentQuery);             });           });                      // Auto-highlight active           const activeR = this.carouselData.find(c => c.q === this.currentQuery || c.label === this.currentQuery);           if(activeR) this.renderCarouselFilters(activeR);        }                renderCarouselFilters(r) {           const filtersWrap = this.root.querySelector('.tg-df-carousel-filters-wrap');           if(!filtersWrap) return;                      let html = `\x3Cbutton class="tg-df-carousel-filter-btn" data-type="all">All\x3C/button>`;                      r.filters.forEach(f => {              let fL = f.toLowerCase();              let icon = '';              let logic = `data-type="custom" data-v="${this.escapeHTML(f)}"`;              if (fL === 'amazon deals' || fL === 'prime deals') {                 html += `\x3Cbutton class="tg-df-carousel-filter-btn" ${logic}>\x3Cimg src="https://cdn.mos.cms.futurecdn.net/fwoVXvL79turN3Ph535m38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/u75QjVpt3w2EsMimJiRo38-600-100.png" class="active-img" alt="" /> Prime deals\x3C/button>`;              } else if (fL === 'lightning deals') {                 html += `\x3Cbutton class="tg-df-carousel-filter-btn" ${logic}>\x3Cimg src="https://cdn.mos.cms.futurecdn.net/HqAui7w97ft2NPqBtQ5r38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/yWPQ5yyQRhUwVKzGwYbh38-600-100.png" class="active-img" alt="" /> Lightning deals\x3C/button>`;              } else {                 if (fL.includes('lightning')) {                    icon = `\x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-zap">\x3Cpolygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2">\x3C/polygon>\x3C/svg>`;                 } else if (fL.includes('% off')) {                    icon = `\x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>`;                 } else if (fL.includes('under') || fL.includes('min ')) {                    icon = `\x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-badge-dollar-sign">\x3Cpath d="M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z">\x3C/path>\x3Cpath d="M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8">\x3C/path>\x3Cpath d="M12 18V6">\x3C/path>\x3C/svg>`;                 }                 html += `\x3Cbutton class="tg-df-carousel-filter-btn" ${logic}>${icon} ${this.escapeHTML(f)}\x3C/button>`;              }           });                      filtersWrap.innerHTML = html;                      const btns = filtersWrap.querySelectorAll('button');           btns.forEach(b => {             b.addEventListener('click', () => {                const type = b.getAttribute('data-type');                if (type === 'custom') {                   const v = b.getAttribute('data-v');                   if (typeof trackElementInteraction === 'function') trackElementInteraction({ id: `filter-custom-${(v||'').toLowerCase().replace(/[^a-z0-9]+/g, '-')}`, name: 'Custom Filter', label: v });                }                if (type === 'all') {                   if (typeof trackElementInteraction === 'function') trackElementInteraction({ id: 'filter-clear-all', name: 'Clear all', label: 'Clear all filters' });                   // reset everything                   btns.forEach(btn => btn.classList.remove('active'));                   b.classList.add('active');                                      // Reset prices                   if (this.priceFilter) this.priceFilter.value = 'all';                   if (this.customPriceMin) this.customPriceMin.value = '';                   if (this.customPriceMax) this.customPriceMax.value = '';                   let dPr = r.pr || 'all';                   if (typeof dPr === 'string' && dPr !== 'all') {                      let prLower = dPr.toLowerCase();                      if (prLower.includes('min') || prLower.includes('over')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMin) this.customPriceMin.value = m[1];                      } else if (prLower.includes('max') || prLower.includes('under')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMax) this.customPriceMax.value = m[1];                      }                   }                                      let discountAmount = '0';                   if(r.ds && typeof r.ds === 'string') {                      let m = r.ds.match(/(\d+)/);                      if(m) discountAmount = m[1];                   }                   if (this.discountFilter) this.discountFilter.value = discountAmount;                   if (this.offerTypeSelect) this.offerTypeSelect.value = r.ot || '';                   if (this.retailerSelect) this.retailerSelect.value = r.rt || '';                   this.selectedBrands = [];                   if (this.brandDropdown) {                     const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                     chks.forEach(chk => chk.checked = false);                   }                } else {                   const v = b.getAttribute('data-v');                   const fL = v.toLowerCase();                                      let mapRet = ['amazon', 'walmart', 'best buy', 'target', 'john lewis', 'currys', 'argos'];                   const getCategory = (s) => {                      if (s === 'lightning deals' || s === 'amazon deals' || s === 'prime deals') return 'offer';                      if (s.includes('% off')) return 'discount';                      if (s.includes('under') || s.includes('over') || s.includes('min') || s.includes('max')) return 'price';                      if (mapRet.includes(s)) return 'retailer';                      return 'brand';                   };                   const cat = getCategory(fL);                   const wasActive = b.classList.contains('active');                   if (cat !== 'brand') {                      btns.forEach(btn => {                          if (btn === b) return;                          if (btn.getAttribute('data-type') === 'all') return;                          const bV = btn.getAttribute('data-v');                          if (!bV) return;                          if (getCategory(bV.toLowerCase()) === cat) btn.classList.remove('active');                      });                   }                   if (wasActive) b.classList.remove('active');                   else b.classList.add('active');                   let anyActive = Array.from(btns).some(btn => btn !== btns[0] && btn.classList.contains('active'));                   if (!anyActive) {                       btns[0].click();                       return;                   } else {                       btns[0].classList.remove('active');                   }                                      if (this.priceFilter) this.priceFilter.value = 'all';                   if (this.customPriceMin) this.customPriceMin.value = '';                   if (this.customPriceMax) this.customPriceMax.value = '';                   let dPr = r.pr || 'all';                   if (typeof dPr === 'string' && dPr !== 'all') {                      let prLower = dPr.toLowerCase();                      if (prLower.includes('min') || prLower.includes('over')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMin) this.customPriceMin.value = m[1];                      } else if (prLower.includes('max') || prLower.includes('under')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMax) this.customPriceMax.value = m[1];                      }                   }                                      let discountAmount = '0';                   if(r.ds && typeof r.ds === 'string') {                      let m = r.ds.match(/(\d+)/);                      if(m) discountAmount = m[1];                   }                   if (this.discountFilter) this.discountFilter.value = discountAmount;                   if (this.offerTypeSelect) this.offerTypeSelect.value = r.ot || '';                   if (this.retailerSelect) this.retailerSelect.value = r.rt || '';                   this.selectedBrands = [];                   btns.forEach(btn => {                       if (!btn.classList.contains('active') || btn.getAttribute('data-type') === 'all') return;                       const vv = btn.getAttribute('data-v');                       const vl = vv.toLowerCase();                                              if (vl === 'lightning deals') {                          if (this.offerTypeSelect) this.offerTypeSelect.value = 'amazon_lightning';                       } else if (vl === 'amazon deals' || vl === 'prime deals') {                          if (this.offerTypeSelect) this.offerTypeSelect.value = 'amazon_prime';                       } else if (vl.includes('% off')) {                          let m = vl.match(/(\d+)%/);                          if (m && this.discountFilter) this.discountFilter.value = m[1];                       } else if (vl.includes('under') || vl.includes('max')) {                          let m = vl.match(/(\d+)/);                          if (m && this.customPriceMax) this.customPriceMax.value = m[1];                       } else if (vl.includes('min') || vl.includes('over')) {                          let m = vl.match(/(\d+)/);                          if (m && this.customPriceMin) this.customPriceMin.value = m[1];                       } else {                          let foundR = mapRet.find(x => x === vl);                          if (foundR) {                             let realR = ['Amazon', 'Walmart', 'Best Buy', 'Target', 'John Lewis', 'Currys', 'Argos'].find(x => x.toLowerCase() === vl);                             if (this.retailerSelect) this.retailerSelect.value = realR;                          } else {                             this.selectedBrands.push(vv);                          }                       }                   });                                      if (this.brandDropdown) {                       const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                       chks.forEach(c => c.checked = this.selectedBrands.includes(c.value));                   }                                      if (r.pr && typeof r.pr === 'string') {                       let prL = r.pr.toLowerCase();                       if (prL.includes('under $')) {                           let m = prL.match(/under \$(\d+)/i);                           if (m && this.customPriceMax && !this.customPriceMax.value) this.customPriceMax.value = m[1];                       }                   }                }                                this.fetchDeals(this.currentQuery);             });           });                      // default to highlighting first           btns[0].classList.add('active');        }async fetchDeals(query, append = false) {          if (!append) {             this.showLoading();             this.deals = [];             this.displayLimit = this.getRowsLimit();          } else {             this.displayLimit += this.getRowsLimit();          }                    try {            if (this.getViewMode() === 'savings_squad') {               await this.fetchSavingsSquad(append);            } else {               if (this.isBroadQuery(query)) {                 await this.fetchAdviserDeals(query, append);               } else {                 await this.fetchHawkDeals(query, append);                 if (this.deals.length === 0) {                   await this.fetchAdviserDeals(query, append);                 }               }            }          } catch (error) {            console.warn("[Tom's Guide Widget] Fetch error:", error);            this.showError();          }        }        async fetchSavingsSquad() {          let topArticles = this.airedaleArticles;          if (!topArticles) {            const airedaleUrl = `https://airedale.futurecdn.net/feeds/feed_1776420579726.json?site=tomsguide&articleType=deals&limit=50`;            let res;            try {               res = await fetch(airedaleUrl);            } catch(e) {               try { res = await fetch(`https://airedale.futurecdn.net/feeds/feed_1776420579726.json?site=tomsguide&articleType=deals&limit=50`); } catch (err) { console.warn("Fallback fetch failed", err); return; }            }            if (!res.ok) throw new Error('Airedale API Error');            const articles = await res.json();            topArticles = Array.isArray(articles) ? articles.slice(0, 50) : ((articles.data && Array.isArray(articles.data)) ? articles.data.slice(0, 50) : []);            this.airedaleArticles = topArticles;                        let tagCounts = {};            topArticles.forEach((a) => {              let articleTags = new Set();              if (a.articlecategory && Array.isArray(a.articlecategory)) {                 a.articlecategory.forEach((t) => articleTags.add(t));              }              articleTags.forEach(t => {                 tagCounts[t] = (tagCounts[t] || 0) + 1;              });            });                        this.airedaleTags = Object.keys(tagCounts).sort((a, b) => tagCounts[b] - tagCounts[a]);            this.airedaleTagCounts = tagCounts;          }                    let targetArticles = topArticles;          if (this.activeDealTag) {             const cleanTag = this.activeDealTag.toLowerCase().replace(/&/g, '').replace(/[^a-z0-9]+/g, '-').replace(/-+/g, '-').replace(/^-|-$/g, '');             const encodedTag = encodeURIComponent(cleanTag);             const url = `https://airedale.futurecdn.net/feeds/feed_1776420579726.json?site=tomsguide&articleType=deals&limit=50&articleCategoryHandle=${encodedTag}`;             try {                const res = await fetch(url);                if (res.ok) {                   const articles = await res.json();                   targetArticles = Array.isArray(articles) ? articles.slice(0, 50) : ((articles.data && Array.isArray(articles.data)) ? articles.data.slice(0, 50) : []);                }             } catch(e) {                console.warn("Failed to fetch by activeDealTag", e);             }          }          let extractedDeals = [];          let dynamicBrandsCounts = {};                    targetArticles.forEach((article) => {             if (!article.articlepage) return;                          let pageData = [];             try {                pageData = JSON.parse(article.articlepage[0]);             } catch(e){ console.warn(e); }                          const savingsSquad = pageData.filter((p) => p.type === 'deal' || p.type === 'featured-product');                          savingsSquad.forEach((block, idx) => {                const data = block.data || {};                const isFeatured = block.type === 'featured-product';                                const link = data.link || {};                const priceObj = data.price || {};                const image = data.image || {};                                if (data.brand) {                   data.brand = data.brand.replace(/^\d+\.\s*/, '').trim();                   dynamicBrandsCounts[data.brand] = (dynamicBrandsCounts[data.brand] || 0) + 1;                }                const externalUrl = isFeatured ? data.url : (link.href || null);                let summaryTitle = isFeatured ? (data.name || data.brand) : (data.productName || link.label || article.articlename);                let description = isFeatured ? (data.strapline || '') : (data.text || '');                                if (!isFeatured && !data.productName && data.text) {                   const brSplit = data.text.split(new RegExp('\x3Cbr\\s*\\/?\\x3E', 'i'));                   if (brSplit.length > 1) {                     summaryTitle = brSplit[0].replace(/<[^>]+>/g, '').trim();                     description = brSplit.slice(1).join(' ').replace(/<br\s*\/?>/gi, ' ').replace(/<\/?(p|div)[^>]*>/gi, ' ').replace(/<[^>]+>/g, '').replace(/\s+/g, ' ').trim();                   } else {                     const match = data.text.match(/\x3Cstrong>(.*?)<\/strong>/);                     if (match) {                       summaryTitle = match[1].replace(/<[^>]+>/g, '').trim();                       if (summaryTitle.endsWith(':')) summaryTitle = summaryTitle.slice(0, -1);                     }                   }                }                                let imageUrl = isFeatured ? image.mos : (image.src || null);                if (imageUrl && imageUrl.startsWith('//')) imageUrl = 'https:' + imageUrl;                                description = description.replace(/<br\s*\/?>/gi, ' ').replace(/<\/?(p|div)[^>]*>/gi, ' ').replace(/<[^>]+>/g, '').replace(/\s+/g, ' ').replace(/View Deal$/i, '').trim();                                let merchantName = data.retailer || '';                if (!merchantName && externalUrl) {                   try {                     merchantName = new URL(externalUrl).hostname.replace('www.', '').split('.')[0];                     merchantName = merchantName.charAt(0).toUpperCase() + merchantName.slice(1);                   }catch(e){ console.warn(e); }                }                if (!merchantName) merchantName = 'Retailer';                const q = (this.currentQuery || '').toLowerCase();                const activeTagLogic = (this.activeDealTag || '').toLowerCase();                if (q.length > 2 && q !== activeTagLogic) {                   const searchTarget = `${summaryTitle || ''} ${description || ''}`.toLowerCase();                   if (!searchTarget.includes(q)) return;                }                let rawPrice = 0;                let rawMsrp = 0;                let currencyStr = '$';                if (isFeatured) {                   rawPrice = typeof data.salePrice === 'number' && data.salePrice > 0 ? data.salePrice : (typeof data.price === 'number' ? data.price : 0);                   rawMsrp = typeof data.salePrice === 'number' && typeof data.price === 'number' && data.price > data.salePrice ? data.price : 0;                   currencyStr = data.currency === 'GBP' ? '£' : '$';                } else {                   rawPrice = priceObj.amount ? parseFloat(priceObj.amount) : 0;                   rawMsrp = priceObj.amountWas ? parseFloat(priceObj.amountWas) : 0;                   currencyStr = priceObj.currency === 'GBP' ? '£' : '$';                }                                let savingAmt = 0;                let savingLabel = '';                if (rawPrice > 0 && rawMsrp > rawPrice) {                   savingAmt = parseFloat((rawMsrp - rawPrice).toFixed(2));                   savingLabel = `Save ${currencyStr}${savingAmt}`;                }                                // Apply Brand filter                if (this.selectedBrands && this.selectedBrands.length > 0) {                   const itemBrand = (data.brand || '').toLowerCase();                   const hasMatch = this.selectedBrands.some(sb => sb.toLowerCase() === itemBrand);                   if (!hasMatch) return;                }                // Apply Price filter                let priceFilterVal = null;                const min = this.customPriceMin ? this.customPriceMin.value : '';                const max = this.customPriceMax ? this.customPriceMax.value : '';                if (min || max) {                   priceFilterVal = `${min}_${max}`;                } else if (this.priceFilter && this.priceFilter.value !== 'all') {                   priceFilterVal = this.priceFilter.value;                }                if (priceFilterVal && rawPrice > 0) {                   if (priceFilterVal === 'under50' && rawPrice >= 50) return;                   if (priceFilterVal === 'over50' && rawPrice <= 50) return;                   if (priceFilterVal === 'over30' && rawPrice <= 30) return;                   if (priceFilterVal === 'over500' && rawPrice <= 500) return;                   if (priceFilterVal.includes('_')) {                      const parts = priceFilterVal.split('_');                      const min = parseFloat(parts[0]);                      const max = parseFloat(parts[1]);                      if (!isNaN(min) && rawPrice < min) return;                      if (!isNaN(max) && rawPrice > max) return;                   }                }                // Apply Discount filter                if (this.discountFilter && this.discountFilter.value !== 'all' && this.discountFilter.value !== '0') {                   const requiredDiscount = parseInt(this.discountFilter.value);                   if (!isNaN(requiredDiscount) && requiredDiscount > 0) {                      if (!rawMsrp || rawMsrp <= rawPrice) return;                      const ratio = Math.round((1 - (rawPrice / rawMsrp)) * 100);                      if (ratio < requiredDiscount) return;                   }                }                                extractedDeals.push({                   id: `airedale-${article.id || Math.random()}-${idx}`,                   url: externalUrl,                   image: imageUrl,                   fallbackImage: imageUrl,                   title: summaryTitle,                   brand: data.brand || '',                   productName: data.productName || '',                   merchant: merchantName,                   rawPrice: rawPrice,                   rawMsrp: rawMsrp,                   price: rawPrice > 0 ? rawPrice.toString() : '',                   msrp: rawMsrp > 0 ? rawMsrp.toString() : '',                   currency: currencyStr,                   isCheckPrice: !rawPrice,                   savingLabel: savingLabel,                   savingType: rawMsrp > rawPrice ? 'amount' : 'none',                   isPrime: false,                   starRating: null,                   description: description,                   text: data.text || ''                });             });          });                    const airedaleBrandsList = Object.keys(dynamicBrandsCounts).map(b => ({              formatted_value: b,              count: dynamicBrandsCounts[b]          })).sort((a,b) => b.count - a.count);                    if (this.getViewMode() === 'savings_squad') {             this.populateBrandDropdown(airedaleBrandsList.slice(0, 15));             if (this.brandFilterWrapper) {                if (airedaleBrandsList.length === 0) {                    this.brandFilterWrapper.style.display = 'none';                } else {                    this.brandFilterWrapper.style.display = 'flex';                }             }          }                    this.deals = extractedDeals;          this.sortData();          this.render();          if (typeof trackDealsAppeared !== 'undefined') {             trackDealsAppeared(this.widgetId, this.deals, this.revenueId, typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD', this.currentQuery, this.widgetTypeName);          }        }        isBroadQuery(query) {          const q = query.toLowerCase();          const intentModifiers = ['deals', 'best', 'sale', 'under', 'cheap', 'offers', 'discount'];          return intentModifiers.some(term => q.includes(term));        }        async fetchHawkDeals(query, append = false) {          const url = new URL(this.apiUrl);          url.searchParams.append('model_name', query);          const areaCode = this.getAreaCode();          if (areaCode) {            url.searchParams.append('area', areaCode);          }                    if (append && this.deals.length > 0) {            url.searchParams.append('offset', this.deals.length.toString());          }                    if (this.retailerSelect && this.retailerSelect.value) {            url.searchParams.append('filter_merchant_name', this.retailerSelect.value);          }                    if (this.selectedBrands && this.selectedBrands.length > 0) {            url.searchParams.append('filter_label[text_brand]', this.selectedBrands.join(','));          }                    let priceVal = null;          const min = this.customPriceMin ? this.customPriceMin.value : '';          const max = this.customPriceMax ? this.customPriceMax.value : '';          if (min || max) {             priceVal = `${min}_${max}`;          } else if (this.priceFilter && this.priceFilter.value !== 'all') {             priceVal = this.priceFilter.value;          }          if (priceVal) {            if (priceVal === 'under50') {              url.searchParams.append('filter_max_price', '50');            } else if (priceVal === 'over50') {              url.searchParams.append('filter_min_price', '50');            } else if (priceVal === 'over30') {              url.searchParams.append('filter_min_price', '30');            } else if (priceVal === 'over500') {              url.searchParams.append('filter_min_price', '500');            } else if (priceVal.includes('_')) {              const parts = priceVal.split('_');              if (parts[0]) url.searchParams.append('filter_min_price', parts[0]);              if (parts[1]) url.searchParams.append('filter_max_price', parts[1]);            }          }                    if (this.discountFilter && this.discountFilter.value !== 'all' && this.discountFilter.value !== '0') {            const v = parseInt(this.discountFilter.value);            if (!isNaN(v) && v > 0) {              const ratio = (100 - v) / 100;              url.searchParams.append('min_discount_ratio', ratio.toString());            }          }                    if (this.offerTypeSelect && this.offerTypeSelect.value) {            url.searchParams.append('offer', this.offerTypeSelect.value);          }                    url.searchParams.append('filter_product_types', 'deals');                    url.searchParams.append('rows', this.getRowsLimit().toString());          let response;          try {             response = await fetch(url.toString());          } catch(e) {             if (window.location.protocol === 'file:') {                console.warn("[Tom's Guide Widget] fetch from file:// blocked by local CORS policy, falling back to Adviser mock.");                await this.fetchAdviserDeals(query);                return;             }             console.warn("Hawk fetch failed", e);             this.deals = [];             this.render();             return;          }          if (!response.ok) {            throw new Error('Hawk API Response Error');          }          const rawData = await response.json();          // Safely locate data array from potentially wrapped response          let offers = [];          let modelInfoArray = [];                    let brandFilterData = null;          if (rawData && rawData.widget && rawData.widget.data && Array.isArray(rawData.widget.data.filters)) {             brandFilterData = rawData.widget.data.filters.find(f => f.type === 'label_text_brand');          } else if (rawData && rawData.data && Array.isArray(rawData.data.filters)) {             brandFilterData = rawData.data.filters.find(f => f.type === 'label_text_brand');          }          if (brandFilterData && Array.isArray(brandFilterData.values) && brandFilterData.values.length > 0) {             this.populateBrandDropdown(brandFilterData.values);          } else {             if (this.brandFilterWrapper && this.selectedBrands.length === 0) {                this.brandFilterWrapper.style.display = 'none';             }          }                    if (rawData && rawData.widget && rawData.widget.data) {            if (Array.isArray(rawData.widget.data.offers)) offers = rawData.widget.data.offers;            if (rawData.widget.data.model_info && typeof rawData.widget.data.model_info === 'object') {              modelInfoArray = Array.isArray(rawData.widget.data.model_info) ? rawData.widget.data.model_info : Object.values(rawData.widget.data.model_info);            }          } else if (rawData && rawData.data) {            if (Array.isArray(rawData.data.offers)) offers = rawData.data.offers;            if (rawData.data.model_info && typeof rawData.data.model_info === 'object') {              modelInfoArray = Array.isArray(rawData.data.model_info) ? rawData.data.model_info : Object.values(rawData.data.model_info);            }          } else {            if (Array.isArray(rawData)) offers = rawData;            else if (rawData && Array.isArray(rawData.offers)) offers = rawData.offers;            else if (rawData && rawData.offers && Array.isArray(rawData.offers.offer)) offers = rawData.offers.offer;            else if (rawData && rawData.offers) offers = [].concat(rawData.offers);                        if (rawData && rawData.model_info && typeof rawData.model_info === 'object') {              modelInfoArray = Array.isArray(rawData.model_info) ? rawData.model_info : Object.values(rawData.model_info);            }          }          let modelDetails = {};          modelInfoArray.forEach(m => {            const mId = m.model_id || m.id;            if (mId) {              modelDetails[mId] = {                score: m.score != null ? parseFloat(m.score) : null,                brand: m.brand || null,                parent: (m.parents && Array.isArray(m.parents) && m.parents.length > 0) ? m.parents[0].name : null              };            }          });          offers.forEach(item => {            let data = { ...item };            const mId = data.model_id;            if (mId && modelDetails[mId]) {              data.review_score = modelDetails[mId].score;              data.model_brand = modelDetails[mId].brand;              data.model_parent = modelDetails[mId].parent;            } else {              data.review_score = null;            }                        let itemOffers = [];            if (Array.isArray(item.offers)) itemOffers = item.offers;            else if (Array.isArray(item.offer)) itemOffers = item.offer;            else if (item.offers && typeof item.offers === 'object') itemOffers = [item.offers];            else if (item.offer && typeof item.offer === 'object') itemOffers = [item.offer];            if (itemOffers.length > 0) {              itemOffers.forEach(subItem => {                let subData = { ...item, ...subItem };                const subId = subData.model_id;                if (subId && modelDetails[subId]) {                  subData.review_score = modelDetails[subId].score;                  subData.model_brand = modelDetails[subId].brand;                  subData.model_parent = modelDetails[subId].parent;                } else if (data.review_score != null) {                  subData.review_score = data.review_score;                }                if (subData.merchant && typeof subData.merchant === 'object') {                  subData.merchant_name = subData.merchant.name;                }                this.deals.push(this.extractDealData(subData));              });              return;            }                        if (item.merchant && typeof item.merchant === 'object') {              data.merchant_name = item.merchant.name;            }                        this.deals.push(this.extractDealData(data));          });                    this.sortData();          this.render();          if (typeof trackDealsAppeared !== 'undefined') {             trackDealsAppeared(this.widgetId, this.deals, this.revenueId, typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD', this.currentQuery, this.widgetTypeName);          }        }        async fetchAdviserDeals(query) {          // ======================================================================          // TODO: ADVISER API REPLACEMENT          // The code below simulates the Adviser API response using mock data.          // Once the real endpoint is ready, remove getAdviserMockData() and           // perform an actual fetch() request similar to fetchHawkDeals().          // Example:          // const area = this.getAreaCode();          // let apiUrl = `https://your-adviser-api.com/search?q=${query}&area=${area}`;          // if (this.priceFilter && this.priceFilter.value !== 'all') {          //   const val = this.priceFilter.value;          //   if (val === 'under50') apiUrl += '&filter_max_price=50';          //   else if (val === '50_100') apiUrl += '&filter_max_price=100';          //   else if (val === '100_200') apiUrl += '&filter_max_price=200';          //   else if (val === '200_500') apiUrl += '&filter_max_price=500';          // }          // const res = await fetch(apiUrl);          // const rawData = await res.json();          // ======================================================================          // Simulating network latency          await new Promise(resolve => setTimeout(resolve, 400));                    const rawData = this.getAdviserMockData();          let offers = [];                    if (rawData && rawData.data && rawData.data.Get && Array.isArray(rawData.data.Get.Deal)) {            offers = rawData.data.Get.Deal;          }                    // Basic client-side filtering for the mock if we want it to react to the query          const q = query.toLowerCase();          const selectedRetailer = (this.retailerSelect && this.retailerSelect.value) ? this.retailerSelect.value.toLowerCase() : null;                    offers.forEach(item => {            const dataObj = item;                        // Apply retailer filter            const itemRetailer = (dataObj.dataRetailer || '').toLowerCase();            if (selectedRetailer && itemRetailer !== selectedRetailer && !itemRetailer.includes(selectedRetailer)) {              return;            }                        // Apply mock price filter            let price = dataObj.dataDiscountedPrice || 0;            if (typeof price === 'string') {              price = parseFloat(price.replace(/[^0-9.]/g, ''));            }            let priceVal = null;            const min = this.customPriceMin ? this.customPriceMin.value : '';            const max = this.customPriceMax ? this.customPriceMax.value : '';            if (min || max) {               priceVal = `${min}_${max}`;            } else if (this.priceFilter && this.priceFilter.value !== 'all') {               priceVal = this.priceFilter.value;            }            if (priceVal) {              if (priceVal === 'under50' && price >= 50) return;              if (priceVal === 'over50' && price <= 50) return;              if (priceVal === 'over30' && price <= 30) return;              if (priceVal === 'over500' && price <= 500) return;              if (priceVal.includes('_')) {                 const parts = priceVal.split('_');                 if (parts[0] && price < parseFloat(parts[0])) return;                 if (parts[1] && price > parseFloat(parts[1])) return;              }            }                        // Map Adviser schema to our widget's expected schema            const mappedData = {              url: dataObj.linkHREF || dataObj.dataLink || '#',              image: dataObj.imageURL || (dataObj.image && dataObj.image.src) || '',              title: dataObj.dataProduct || (dataObj.product && dataObj.product.name) || 'Product Deal',              merchant: dataObj.dataRetailer || 'Retailer',              price: dataObj.dataDiscountedPrice || 0,              currency: dataObj.dataCurrency === 'USD' ? '$' : (dataObj.dataCurrency || '$'),              msrp: dataObj.dataOriginalPrice || null            };                        const titleLow = mappedData.title.toLowerCase();            const merchLow = mappedData.merchant.toLowerCase();                        // Smarter mock filtering            let isMatch = false;            if (q === '' || this.isBroadQuery(q)) {              isMatch = true;            } else if (titleLow.includes(q) || merchLow.includes(q)) {              isMatch = true;            } else if ((q.includes('laptop') || q.includes('mac') || q.includes('pc')) && (titleLow.includes('macbook') || titleLow.includes('laptop'))) {              isMatch = true;            } else if ((q.includes('tv') || q.includes('television')) && (titleLow.includes('tv') || titleLow.includes('oled') || titleLow.includes('qled'))) {              isMatch = true;            } else if ((q.includes('phone') || q.includes('smartphone')) && (titleLow.includes('galaxy') || titleLow.includes('phone'))) {              isMatch = true;            } else if ((q.match(/watch|fitness|run|shoe/)) && (titleLow.includes('forerunner') || titleLow.includes('saucony') || titleLow.includes('watch'))) {              isMatch = true;            }                        if (isMatch) {               this.deals.push(this.extractDealData(mappedData));            }          });                    let rowLimit = this.getRowsLimit();          // Intentionally omitting the slice here to allow "Load More" to work if the API returns more                    this.sortData();          this.render();          if (typeof trackDealsAppeared !== 'undefined') {             trackDealsAppeared(this.widgetId, this.deals, this.revenueId, typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD', this.currentQuery, this.widgetTypeName);          }        }        getAdviserMockData() {          return {            "data": {              "Get": {                "Deal": [                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 300,                    "dataOriginalPrice": 399,                    "dataProduct": "Samsung Galaxy A36",                    "dataRetailer": "Samsung",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/MqDYsukV3JBG54te6dEs7j.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 14,                    "dataOriginalPrice": 24,                    "dataProduct": "Blink Mini",                    "dataRetailer": "Amazon",                    "imageURL": "http://cdn.mos.cms.futurecdn.net/3JurmAjHsDa5tPdaHAwEV8.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 59,                    "dataOriginalPrice": 99,                    "dataProduct": "Ring Video Doorbell",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/rAh4uR7AsAsALCCLTXnLNJ.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 10,                    "dataOriginalPrice": 599,                    "dataProduct": "MacBook Neo",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/Lg4Dvg68j9SbB5CPNrTEpH.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 749,                    "dataOriginalPrice": 849,                    "dataProduct": "65\\\" Fire TV Omni 4K QLED TV",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/SG34ZWodUkLTxJvMTbjPYR.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 71,                    "dataOriginalPrice": 160,                    "dataProduct": "Saucony Hurricane 24",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/vxf7UD5T2Am7guVzFoFcZ4.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 649,                    "dataOriginalPrice": 749,                    "dataProduct": "Garmin Forerunner 970",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/3GKnEu7CdhtxPMfnPCMCiA.png"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 1049,                    "dataOriginalPrice": 1499,                    "dataProduct": "LG 48\\\" C4 4K OLED TV",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/imvwZV9zoMD6fn9Afuge35.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 1499,                    "dataOriginalPrice": 2199,                    "dataProduct": "Samsung 49\\\" Odyssey Neo G9 4K Gaming Monitor",                    "dataRetailer": "Amazon",                    "imageURL": "http://cdn.mos.cms.futurecdn.net/XWDEJ5dUAE2nhK8k3Jk7k7.png"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 299,                    "dataOriginalPrice": 699,                    "dataProduct": "EGOHOME Black Memory Foam Mattress (queen)",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/hMUemtAejNETLVYxNrktzm.jpg"                  }                ]              }            }          };        }        decodeHTML(html) {          if (!html) return '';          const txt = document.createElement("textarea");          txt.innerHTML = String(html);          return txt.value;        }        extractDealData(item) {          const priceRawStr = String(item.price || item.current_price || '0');          const msrpRawStr = String(item.was_price || item.msrp || item.original_price || '0');          const rawPrice = parseFloat(priceRawStr.replace(/[^\d.]/g, '')) || 0;          const rawMsrp = parseFloat(msrpRawStr.replace(/[^\d.]/g, '')) || 0;          const isCheckPrice = rawPrice === 0 || priceRawStr === '0.00' || priceRawStr === '0';                    let originalImageUrl = item.image || item.image_url || item.product_image || '';          let imageUrl = originalImageUrl;          if ((!imageUrl || isCheckPrice) && item.model_image_url) {             imageUrl = item.model_image_url;             originalImageUrl = imageUrl;          } else if ((!imageUrl || isCheckPrice) && item.model_image) {             imageUrl = item.model_image;             originalImageUrl = imageUrl;          }                    if (imageUrl) {            imageUrl = imageUrl.replace(/-(\d+)-(\d+)(\.[a-z.]+)$/i, '$3');          }                    let fallbackImage = '';          if (originalImageUrl && originalImageUrl !== imageUrl) {             fallbackImage = originalImageUrl;          } else if (item.model_image && item.model_image !== imageUrl) {             fallbackImage = item.model_image;          } else if (item.model_image_url && item.model_image_url !== imageUrl) {             fallbackImage = item.model_image_url;          }                    const rawCurrency = item.currency || item.currency_symbol || '$';                    let savingLabel = item.percentage_saving_label || '';          if (!savingLabel && rawMsrp > rawPrice && rawPrice > 0) {            const pct = Math.round(((rawMsrp - rawPrice) / rawMsrp) * 100);            if (pct > 0) {              savingLabel = `${pct}% OFF`;            }          }                    const isPrime = item.shipping && item.shipping.prime === true;                    let scoreRaw = (item.review_score !== undefined && item.review_score !== null && item.review_score > 0) ? parseFloat(item.review_score) : null;          let starRating = 0;          if (scoreRaw !== null) {            starRating = Math.round((scoreRaw > 10 ? scoreRaw / 20 : scoreRaw / 2) * 2) / 2;          }                    return {            id: item.offer_id || item.link || item.url || item.offer_link || Math.random().toString(),            url: item.link || item.url || item.offer_link || '#',            image: imageUrl,            fallbackImage: fallbackImage,            title: item.name || item.title || item.model_name || item.product_name || 'Unknown Product',            brand: item.brand || '',            productName: item.model_name || item.product_name || item.name || '',            merchant: item.merchant_name || item.merchant || item.retailer || 'Retailer',            price: item.price !== undefined ? String(item.price) : '0.00',            currency: this.decodeHTML(rawCurrency),            msrp: item.was_price || item.msrp || item.original_price || null,            rawPrice: rawPrice,            rawMsrp: rawMsrp,            hasWasPrice: (item.was_price !== undefined && item.was_price !== null),            isCheckPrice: isCheckPrice,            savingLabel: savingLabel,            isPrime: isPrime,            starRating: starRating > 0 ? starRating : null,            modelId: item.model_id || '',            productKey: item.product_key || '',            merchantId: (item.merchant && typeof item.merchant === 'object') ? item.merchant.id || '' : '',            matchId: item.match_id || '',            merchantNetwork: (item.merchant && typeof item.merchant === 'object') ? item.merchant.an || '' : '',            merchantUrl: (item.merchant && typeof item.merchant === 'object') ? item.merchant.url || '' : '',            modelBrand: item.model_brand || item.brand || '',            modelParent: item.model_parent || ''          };        }        sortData() {          const sortVal = this.sortSelect ? this.sortSelect.value : (this.getViewMode() === 'savings_squad' ? 'date_desc' : 'discount_desc');          if (sortVal === 'price_asc') {            this.deals.sort((a, b) => a.rawPrice - b.rawPrice);          } else if (sortVal === 'price_desc') {            this.deals.sort((a, b) => b.rawPrice - a.rawPrice);          } else if (sortVal === 'discount_desc') {            this.deals.sort((a, b) => {              const aDiscount = a.rawMsrp > a.rawPrice ? (a.rawMsrp - a.rawPrice) : 0;              const bDiscount = b.rawMsrp > b.rawPrice ? (b.rawMsrp - b.rawPrice) : 0;              return bDiscount - aDiscount;            });          } else if (sortVal === 'date_desc') {             this.deals.sort((a, b) => {                let dateA = 0;                let dateB = 0;                if (a && a.modifiedDate) {                   const valA = Array.isArray(a.modifiedDate) ? a.modifiedDate[0] : a.modifiedDate;                   dateA = new Date(valA).getTime();                   if (isNaN(dateA)) dateA = 0;                }                if (b && b.modifiedDate) {                   const valB = Array.isArray(b.modifiedDate) ? b.modifiedDate[0] : b.modifiedDate;                   dateB = new Date(valB).getTime();                   if (isNaN(dateB)) dateB = 0;                }                return dateB - dateA;             });          }        }        getFilteredDeals() {          let filteredDeals = [...this.deals];                    if (this.dealModeToggle && this.dealModeToggle.checked) {            filteredDeals = filteredDeals.filter(d => d.hasWasPrice || (d.msrp && d.rawMsrp > d.rawPrice));          }                    return filteredDeals;        }        showLoading() {          const _div = '<' + '/div>';          const skeletonCardHtml = `            \x3Cdiv class="tg-df-card">              \x3Cdiv class="tg-df-card-image-box">                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-img">${_div}              ${_div}              \x3Cdiv class="tg-df-card-body">                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short">${_div}                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text title">${_div}                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text title">${_div}                \x3Cdiv class="tg-df-card-footer mt-auto">                  \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="height:24px;">${_div}                  \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text" style="height:44px; margin-top:8px;">${_div}                ${_div}              ${_div}            ${_div}`;          this.grid.innerHTML = Array(4).fill(skeletonCardHtml).join('');        }        showError() {          const _div = '<' + '/div>';          this.grid.innerHTML = `\x3Cdiv class="tg-df-message">            An error occurred while finding deals. Please check your connection and try again.          ${_div}`;        }        escapeHTML(str) {          if (!str) return '';          return String(str).replace(/[&<>'"]/g, tag => ({              '&': '&', '<': '<', '>': '>', "'": ''', '"': '"'          }[tag] || tag));        }                bindCouponButtons() {          const btns = this.root.querySelectorAll('.tg-df-tag-coupons');          btns.forEach(btn => {            btn.addEventListener('click', (e) => {              e.preventDefault();              e.stopPropagation();              const merchant = btn.getAttribute('data-merchant');              this.openVouchersModal(merchant);            });          });                    const closeBtn = this.root.querySelector('#tg-df-vouchers-close');          const backdrop = this.root.querySelector('#tg-df-vouchers-modal');          if (closeBtn) {            closeBtn.onclick = () => this.closeVouchersModal();          }          if (backdrop) {            backdrop.onclick = (e) => {              if (e.target === backdrop) this.closeVouchersModal();            };          }        }                closeVouchersModal() {          const backdrop = this.root.querySelector('#tg-df-vouchers-modal');          if (backdrop) backdrop.classList.remove('active');        }                async checkMerchantsCouponsBulk(merchants) {          if (!merchants || merchants.length === 0) return {};          const controller = new AbortController();          const timeoutId = setTimeout(() => controller.abort(), 4000);          try {            const area = this.getAreaCode();            const url = new URL('https://search-api.fie.future.net.uk/widget.php');            url.searchParams.append('model_name', 'Everything');            url.searchParams.append('language', 'en-GB');            if (area) url.searchParams.append('area', area);            url.searchParams.append('combine_product_types', '1');            url.searchParams.append('filter_merchant_name', merchants.join(','));            url.searchParams.append('all_filters', 'false');            url.searchParams.append('exclude_unlabelled', 'false');            url.searchParams.append('include_specs', 'false');            url.searchParams.append('sort', 'voucher');            url.searchParams.append('distinct_merchants', 'natural');            url.searchParams.append('filter_product_types', 'vouchers,offer_deals,newsletter');            url.searchParams.append('rows', '120');            url.searchParams.append('origin', 'widgets-clientside');                        let res; try { res = await fetch(url.toString(), { signal: controller.signal }); } catch (e) { return {}; }            clearTimeout(timeoutId);            if (!res.ok) return {};            const data = await res.json();                        let offers = [];            if (data && data.widget && data.widget.data && Array.isArray(data.widget.data.offers)) {              offers = data.widget.data.offers;            } else if (data && data.data && Array.isArray(data.data.offers)) {              offers = data.data.offers;            } else if (Array.isArray(data)) {              offers = data;            } else if (data && Array.isArray(data.offers)) {              offers = data.offers;            } else if (data && data.offers && Array.isArray(data.offers.offer)) {              offers = data.offers.offer;            } else if (data && Array.isArray(data.data)) {              offers = data.data;            }                        const foundMerchants = new Set();            offers.forEach(o => {              let mName = o.merchant_name || o.merchant || o.retailer;              if (mName && typeof mName === 'object') mName = mName.name;              if (mName) foundMerchants.add(String(mName).toLowerCase());            });            const resultMap = {};            merchants.forEach(m => {              if (m) resultMap[m] = foundMerchants.has(String(m).toLowerCase());            });            return resultMap;          } catch (e) {            return {};          }        }                async openVouchersModal(merchantName) {          const backdrop = this.root.querySelector('#tg-df-vouchers-modal');          const title = this.root.querySelector('#tg-df-vouchers-title');          const content = this.root.querySelector('#tg-df-vouchers-content');                    if (!backdrop || !content) return;                    // HACK: Hide closing tags          const _div = '<' + '/div>';          const _span = '<' + '/span>';          const _a = '<' + '/a>';          const _h4 = '<' + '/h4>';          const _svg = '<' + '/svg>';          const _circle = '<' + '/circle>';          const _polyline = '<' + '/polyline>';          const _rect = '<' + '/rect>';          const _path = '<' + '/path>';                    title.innerText = `${merchantName} Coupons & Deals`;          content.innerHTML = `\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text">${_div}                               \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text">${_div}`;          backdrop.classList.add('active');                    try {            const area = this.getAreaCode();            const url = new URL('https://search-api.fie.future.net.uk/widget.php');            url.searchParams.append('model_name', 'Everything');            url.searchParams.append('language', 'en-GB');            if (area) url.searchParams.append('area', area);            url.searchParams.append('combine_product_types', '1');            url.searchParams.append('filter_merchant_name', merchantName);            url.searchParams.append('all_filters', 'false');            url.searchParams.append('exclude_unlabelled', 'false');            url.searchParams.append('include_specs', 'false');            url.searchParams.append('sort', 'voucher');            url.searchParams.append('distinct_merchants', 'natural');            url.searchParams.append('filter_product_types', 'vouchers,offer_deals,newsletter');            url.searchParams.append('rows', '50');            url.searchParams.append('origin', 'widgets-clientside');                        const res = await fetch(url.toString());            if (!res.ok) throw new Error('API Error');            const data = await res.json();                        let offers = [];            if (data && data.widget && data.widget.data && Array.isArray(data.widget.data.offers)) {              offers = data.widget.data.offers;            } else if (data && data.data && Array.isArray(data.data.offers)) {              offers = data.data.offers;            } else if (Array.isArray(data)) {              offers = data;            } else if (data && Array.isArray(data.offers)) {              offers = data.offers;            } else if (data && data.offers && Array.isArray(data.offers.offer)) {              offers = data.offers.offer;            } else if (data && Array.isArray(data.data)) {              offers = data.data;            }                        if (offers.length === 0) {              content.innerHTML = `\x3Cdiv class="tg-df-message">No vouchers currently available for ${this.escapeHTML(merchantName)}.${_div}`;              return;            }                        content.innerHTML = offers.map((v, idx) => {              let offerObj = v;              if (v.offers && v.offers.offer) {                offerObj = Array.isArray(v.offers.offer) ? v.offers.offer[0] : v.offers.offer;              } else if (v.offer) {                offerObj = Array.isArray(v.offer) ? v.offer[0] : v.offer;              }              let logoUrl = v.logo_url || offerObj.logo_url || '';              if (!logoUrl && v.merchant) {                if (Array.isArray(v.merchant) && v.merchant.length > 0) logoUrl = v.merchant[0].logo_url || '';                else logoUrl = v.merchant.logo_url || '';              }                            const offerName = offerObj.name || offerObj.title || v.name || v.title || 'Special Offer';              const endTime = offerObj.end_time || v.end_time || '';              const linkUrl = offerObj.link || offerObj.url || v.link || v.url || '#';                            let foundVoucherCode = '';              const findVoucherCode = (obj) => {                if (!obj || typeof obj !== 'object') return;                if (obj.type === 'voucher_code' && obj.display_value) {                  foundVoucherCode = obj.display_value;                  return;                }                if (Array.isArray(obj)) {                  for (const item of obj) {                    findVoucherCode(item);                    if (foundVoucherCode) return;                  }                } else {                  for (const k in obj) {                    if (Object.prototype.hasOwnProperty.call(obj, k)) {                      findVoucherCode(obj[k]);                      if (foundVoucherCode) return;                    }                  }                }              };              findVoucherCode(offerObj);              if (!foundVoucherCode) findVoucherCode(v);                            const voucherCode = foundVoucherCode || offerObj.voucher_code || v.voucher_code || '';              const codeHtml = voucherCode ? `\x3Cspan class="tg-df-voucher-code" data-action="copy-code" data-code="${this.escapeHTML(voucherCode)}" title="Copy to clipboard">                \x3Cspan class="tg-df-voucher-code-text">${this.escapeHTML(voucherCode)}${_span}                \x3Csvg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-left:6px;flex-shrink:0;" class="tg-df-voucher-copy-icon">                  \x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2">${_rect}                  \x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1">${_path}                ${_svg}              ${_span}` : '';                            const logoHtml = logoUrl                 ? `\x3Cimg src="${this.escapeHTML(logoUrl)}" alt="${this.escapeHTML(offerName)}" class="tg-df-voucher-logo" />`                 : `\x3Cdiv class="tg-df-voucher-logo" style="background:#e2e8f0;">${_div}`;                            let expiryHtml = '';              if (endTime) {                let dStr = endTime;                if (!isNaN(dStr) && String(dStr).length === 10) dStr = Number(dStr) * 1000;                const d = new Date(dStr);                if (!isNaN(d.getTime())) {                  const options = { year: 'numeric', month: 'short', day: 'numeric' };                  expiryHtml = `                    \x3Cdiv class="tg-df-voucher-expiry">                      \x3Csvg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">                        \x3Ccircle cx="12" cy="12" r="10">${_circle}                        \x3Cpolyline points="12 6 12 12 16 14">${_polyline}                      ${_svg}                      Expires ${d.toLocaleDateString(undefined, options)}                    ${_div}`;                }              }              const revenueIdVal = generateRevenueId(linkUrl, offerName, merchantName, null);              const rewrittenLinkUrl = rewriteAffiliateLink(linkUrl, area, revenueIdVal);              return `                \x3Ca href="${this.escapeHTML(rewrittenLinkUrl)}" target="_blank" rel="noopener nofollow" class="tg-df-voucher-item"                  data-action="voucher-click"                  data-product-name="${this.escapeHTML(offerName)}"                  data-merchant-name="${this.escapeHTML(merchantName)}"                  data-analytics-id="${this.escapeHTML(offerObj.offer_id || offerObj.id || v.id || '')}"                  data-price=""                  data-previous-price=""                  data-original-link="${this.escapeHTML(linkUrl)}"                  data-revenue-id="${revenueIdVal}"                  data-index="${idx}"                  data-total="${offers.length}"                  data-in-stock="true"                  data-currency="USD"                  data-model-id="${this.escapeHTML(offerObj.model_id || v.model_id || offerObj.id || v.id || '')}"                  data-merchant-id="${this.escapeHTML(offerObj.merchant_id || offerObj.merchant?.id || '')}"                >                  ${logoHtml}                  \x3Cdiv class="tg-df-voucher-content">                    \x3Ch4 class="tg-df-voucher-title">${this.escapeHTML(offerName)}${_h4}                    ${codeHtml}                    ${expiryHtml}                  ${_div}                ${_a}              `;            }).join('');                        // Attach copy functionality            const copyBtns = content.querySelectorAll('[data-action="copy-code"]');            copyBtns.forEach(btn => {              btn.addEventListener('click', async (e) => {                e.preventDefault();                e.stopPropagation();                                const code = btn.getAttribute('data-code');                if (!code) return;                                try {                  const copyToClipboard = async (text) => {                     if (window.navigator.clipboard && window.isSecureContext) {                        try { await window.navigator.clipboard.writeText(text); return; } catch (e) {}                     }                     const textArea = document.createElement("textarea");                     textArea.value = text;                     textArea.style.position = "fixed";                     document.body.appendChild(textArea);                     textArea.focus();                     textArea.select();                     document.execCommand('copy');                     textArea.remove();                  };                  await copyToClipboard(code);                                    // Visual feedback                  btn.classList.add('copied');                  const textSpan = btn.querySelector('.tg-df-voucher-code-text');                  const iconSvg = btn.querySelector('.tg-df-voucher-copy-icon');                                    const origText = textSpan.innerText;                  const origIcon = iconSvg.innerHTML;                                    textSpan.innerText = 'Copied!';                  iconSvg.innerHTML = `\x3Cpolyline points="20 6 9 17 4 12">${_polyline}`;                                    setTimeout(() => {                    if (btn) {                      btn.classList.remove('copied');                      if (textSpan) textSpan.innerText = origText;                      if (iconSvg) iconSvg.innerHTML = origIcon;                    }                  }, 2000);                                    trackElementInteraction({                    id: 'voucher-code-copy',                    name: 'Copy Voucher Code',                    label: `Copied ${code} for ${merchantName}`                  });                } catch (err) {                  console.warn('Failed to copy text: ', err);                }              });            });            // Attach voucher click tracking            const voucherBtns = content.querySelectorAll('[data-action="voucher-click"]');            voucherBtns.forEach(btn => {              btn.addEventListener('click', (e) => {                if (e.target.closest('[data-action="copy-code"]')) return;                                const productName = btn.getAttribute('data-product-name');                const merchantNameAttr = btn.getAttribute('data-merchant-name');                const productId = btn.getAttribute('data-analytics-id');                const price = parseFloat(btn.getAttribute('data-price')) || null;                const prevPriceStr = btn.getAttribute('data-previous-price');                const previousPrice = prevPriceStr ? parseFloat(prevPriceStr) : null;                const originalLink = btn.getAttribute('data-original-link');                const rewrittenLink = btn.getAttribute('href');                const revenueId = btn.getAttribute('data-revenue-id');                const index = parseInt(btn.getAttribute('data-index'), 10) || 0;                const inStock = btn.getAttribute('data-in-stock') === 'true';                const totalText = btn.getAttribute('data-total');                const totalDeals = parseInt(totalText, 10) || 0;                const productCategoryName = 'deals';                const trackingParams = {                  widgetId: this.widgetId,                  productCategoryName: productCategoryName,                  product: {                    modelId: btn.getAttribute('data-model-id') || null,                    matchId: btn.getAttribute('data-match-id') || null,                    brand: btn.getAttribute('data-model-brand') || null,                    parent: btn.getAttribute('data-model-parent') || null,                    name: productName,                    price: price,                    previousPrice: previousPrice,                    link: rewrittenLink,                    originalLink: originalLink,                    inStock: inStock                  },                  zeroBasedProductIndexOrNull: index,                  totalDealsOrProducts: totalDeals,                   merchant: {                    id: btn.getAttribute('data-merchant-id') || null,                    network: btn.getAttribute('data-merchant-network') || null,                    url: btn.getAttribute('data-merchant-url') || null,                    name: merchantNameAttr                  },                  revenueId: revenueId,                  widgetTypeName: this.widgetTypeName,                  isoCurrencyCode: btn.getAttribute('data-currency') || 'USD'                };                if (typeof trackDealClick === 'function') {                  trackDealClick(trackingParams);                }              });            });                                  } catch (e) {            console.warn(e);            content.innerHTML = `\x3Cdiv class="tg-df-message">Failed to load vouchers.${_div}`;          }        }        render() {          try {            if (this.getViewMode() === 'savings_squad' && this.airedaleTags.length > 0) {              if (this.categoryFilterWrapper) {                 this.categoryFilterWrapper.style.display = 'flex';              }              if (this.categoryFilter) {                 const _option = '<' + '/option>';                 let optionsHtml = `\x3Coption value="all">All Categories${_option}`;                 this.airedaleTags.forEach(tag => {                    const isSelected = this.activeDealTag === tag ? 'selected' : '';                    optionsHtml += `\x3Coption value="${this.escapeHTML(tag)}" ${isSelected}>${this.escapeHTML(tag)} (${this.airedaleTagCounts[tag] || 0})${_option}`;                 });                 this.categoryFilter.innerHTML = optionsHtml;                 this.categoryFilter.value = this.activeDealTag || 'all';              }            } else {               if (this.categoryFilterWrapper) {                  this.categoryFilterWrapper.style.display = 'none';               }            }            const displayDeals = this.getFilteredDeals();          // HACK: Hide closing tags from the CMS HTML sanitizer so it doesn't strip them during in-page injection          const _div = '<' + '/div>';          const _span = '<' + '/span>';          const _a = '<' + '/a>';          const _h3 = '<' + '/h3>';          const _p = '<' + '/p>';          const _strong = '<' + '/strong>';          const _sup = '<' + '/sup>';          const _button = '<' + '/button>';          if (displayDeals.length === 0) {            if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {              if (this.deals.length > 0) {                 this.grid.innerHTML = `\x3Cdiv class="tg-df-message">                  No deals match your selected filters.                ${_div}`;              } else if (this.getViewMode() === 'savings_squad' && this.currentQuery.length <= 2) {                 // Do not show "no exact matches" if query is empty for savings_squad                 this.grid.innerHTML = '';              } else {                 this.grid.innerHTML = `\x3Cdiv class="tg-df-message">                  No exact matches found for "\x3Cstrong>${this.escapeHTML(this.currentQuery)}${_strong}". Try adjusting your search term.                ${_div}`;              }            } else {              this.grid.innerHTML = `\x3Cdiv class="tg-df-message">                Search product or category names to discover the best deals from across the web.              ${_div}`;            }            return;          }          let dealsHtml = displayDeals.slice(0, this.displayLimit).map((deal, index) => {            try {               const currencySym = this.escapeHTML(deal.currency);               const isoCurrencyCode = normalizeCurrency(currencySym);               const escapedPrice = this.escapeHTML(deal.price);               const escapedMsrp = this.escapeHTML(deal.msrp);               const areaCode = this.getAreaCode();                              const revenueId = generateRevenueId(deal.url, deal.title, deal.merchant, null);               const originalLink = deal.url;               const rewrittenLink = rewriteAffiliateLink(deal.url, areaCode, revenueId);                        const productCategoryName = 'deals';            const dataAttr = `              data-action="${deal.isCheckPrice ? 'view-similar-click' : 'deal-click'}"              data-analytics-id="${this.escapeHTML(deal.externalProductId || deal.id || '')}"              data-product-name="${this.escapeHTML(deal.title)}"              data-merchant-name="${this.escapeHTML(deal.merchant)}"              data-price="${deal.rawPrice || ''}"              data-previous-price="${deal.rawMsrp || ''}"              data-original-link="${this.escapeHTML(originalLink)}"              data-revenue-id="${revenueId}"              data-index="${index}"              data-total="${displayDeals.length}"              data-in-stock="${deal.inStock !== false}"              data-currency="${this.escapeHTML(isoCurrencyCode)}"              data-model-id="${this.escapeHTML(deal.modelId || '')}"              data-product-key="${this.escapeHTML(deal.productKey || '')}"              data-merchant-id="${this.escapeHTML(deal.merchantId || '')}"            `;                        let priceGroupHtml = '';            let isSavingsSquadMode = this.getViewMode() === 'savings_squad';            let ctaText = 'View Deal';            let formattedPrice = '';            let msrpHtml = '';                        if (deal.isCheckPrice) {              ctaText = isSavingsSquadMode ? 'View Deal' : 'Check Price';              if (isSavingsSquadMode) {                priceGroupHtml = `                  \x3Cdiv class="tg-df-card-merchant-wrapper">                    \x3Cspan class="tg-df-card-merchant-pill" title="${this.escapeHTML(deal.merchant)}">${this.escapeHTML(deal.merchant)}${_span}                  ${_div}                  \x3Cdiv class="tg-df-card-price-group">                  ${_div}                `;              } else {                priceGroupHtml = `                  \x3Cdiv class="tg-df-card-merchant-wrapper">                    \x3Cspan class="tg-df-card-merchant-pill" title="${this.escapeHTML(deal.merchant)}">${this.escapeHTML(deal.merchant)}${_span}                  ${_div}                  \x3Cdiv class="tg-df-card-price-group">                    \x3Cspan class="tg-df-card-price" style="font-size: 15px; font-weight: 500; font-style: italic;">See price at retailer${_span}                  ${_div}                `;              }            } else {              // Format Price              formattedPrice = escapedPrice.includes(currencySym)                 ? escapedPrice                 : `${currencySym}${escapedPrice}`;                              // Format MSRP              msrpHtml = deal.msrp && deal.rawMsrp > deal.rawPrice                ? `\x3Cspan class="tg-df-card-msrp">${escapedMsrp.includes(currencySym) ? escapedMsrp : currencySym + escapedMsrp}${_span}`                : '';                              priceGroupHtml = `                \x3Cdiv class="tg-df-card-merchant-wrapper">                  \x3Cspan class="tg-df-card-merchant-pill" title="${this.escapeHTML(deal.merchant)}">${this.escapeHTML(deal.merchant)}${_span}                ${_div}                \x3Cdiv class="tg-df-card-price-group">                  ${isSavingsSquadMode ? '' : `                  \x3Cspan class="tg-df-card-price">${formattedPrice}${_span}                  ${msrpHtml}                  `}                ${_div}              `;            }                        const discountBadgeHtml = deal.savingLabel && !deal.isCheckPrice              ? `\x3Cspan class="tg-df-card-discount-badge">${this.escapeHTML(deal.savingLabel)}${_span}`              : '';                          // HACK for CMS            const _button = '<' + '/button>';            const _svg = '<' + '/svg>';            const _path = '<' + '/path>';            const _rect = '<' + '/rect>';            const _circle = '<' + '/circle>';            const _polyline = '<' + '/polyline>';            const _line = '<' + '/line>';                        let badgesHtml = '';            const primeBadge = deal.isPrime ? `              \x3Cspan class="tg-df-tag tg-df-tag-prime">                \x3Csvg width="12" height="12" viewBox="0 0 24 24" fill="currentColor">                  \x3Cpath d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z">${_path}                ${_svg} Prime              ${_span}            ` : '';                        const couponsBadge = deal.merchant && deal.merchant.toLowerCase().includes('amazon') ? '' : `              \x3Cdiv class="tg-df-coupon-wrapper" data-merchant="${this.escapeHTML(deal.merchant)}" style="display:inline-flex; align-items:center;">                \x3Cdiv class="tg-df-coupon-spinner">${_div}                \x3Cbutton type="button" class="tg-df-tag tg-df-tag-coupons" data-action="coupons-click" data-merchant="${this.escapeHTML(deal.merchant)}" style="display:none;">                  \x3Csvg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">                    \x3Cpath d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z">${_path}                    \x3Cline x1="7" y1="7" x2="7.01" y2="7">${_line}                  ${_svg} Coupons                ${_button}              ${_div}            `;                        // Note: We always add coupons badge if there's a chance, but to allow 3-line titles we check wrapper display state            badgesHtml = `              \x3Cdiv class="tg-df-card-badges">                ${primeBadge}                ${couponsBadge}              ${_div}            `;            const _linearGradient = '<' + '/linearGradient>';            const _polygon = '<' + '/polygon>';            const _stop = '<' + '/stop>';            const _defs = '<' + '/defs>';                        let starHtml = '';            if (deal.starRating) {              let rating = deal.starRating;                            if (rating > 0) {                const fullStars = Math.floor(rating);                const halfStar = (rating - fullStars) >= 0.5 ? 1 : 0;                const emptyStars = Math.max(0, 5 - fullStars - halfStar);                const blue = '#1f69ff'; // Tom's guide brand color from VIEW DEAL button                const gray = '#cbd5e1';                                const starSvgFull = `\x3Csvg width="14" height="14" viewBox="0 0 24 24" fill="${blue}" stroke="${blue}" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpolygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26">${_polygon}${_svg}`;                                const gradId = 'half_grad_' + Math.floor(Math.random()*1000000);                const starSvgHalf = `\x3Csvg width="14" height="14" viewBox="0 0 24 24" stroke="${blue}" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">\x3Cdefs>\x3ClinearGradient id="${gradId}" x1="0" x2="1" y1="0" y2="0">\x3Cstop offset="50%" stop-color="${blue}">${_stop}\x3Cstop offset="50%" stop-color="transparent">${_stop}${_linearGradient}${_defs}                  \x3Cpolygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26" fill="url(#${gradId})">${_polygon}${_svg}`;                                  const starSvgEmpty = `\x3Csvg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="${gray}" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpolygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26">${_polygon}${_svg}`;                                let stars = [];                for (let i=0; i<fullStars; i++) stars.push(starSvgFull);                if (halfStar) stars.push(starSvgHalf);                for (let i=0; i<emptyStars; i++) stars.push(starSvgEmpty);                                starHtml = `\x3Cdiv class="tg-df-card-stars" style="display:flex;align-items:center;margin-bottom:8px;font-size:13px;font-weight:600;color:var(--tg-df-text-muted);">                  \x3Cspan style="margin-right:6px;">Tom's Guide:${_span}                  \x3Cdiv style="display:flex;gap:2px;">                    ${stars.join('')}                  ${_div}                ${_div}`;              }            }            let htmlOutput = '';            if (isSavingsSquadMode) {              htmlOutput += `              \x3Cdiv class="hawk-deal-widget-container tg-df-mobile-only" data-collapsible="true">                ${this.editorMode ? `\x3Cinput type="checkbox" class="tg-df-deal-checkbox" data-id="${this.escapeHTML(deal.id)}" ${this.selectedDeals.has(deal.id) ? 'checked' : ''} style="margin-bottom: 10px;">` : ''}                \x3Cdiv class="hawk-deal-widget-wrap">                  \x3Cdiv class="hawk-deal-widget-image-container">                    \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" rel="sponsored noopener" target="_blank" class="hawk-affiliate-link-deal-widget" ${dataAttr}>                      \x3Cimg ${deal.image ? `src="${this.escapeHTML(deal.image)}"` : ''} alt="${this.escapeHTML(deal.title)}" class="hawk-lazy-image-deal-widget" loading="lazy" width="140" height="160" onerror="${deal.fallbackImage ? `if(!this.dataset.fb) { this.dataset.fb='1'; this.src='${this.escapeHTML(deal.fallbackImage)}'; } else { this.style.opacity='0'; }` : `this.style.opacity='0';`}">                    ${_a}                  ${_div}                  \x3Cdiv class="hawk-deal-widget-text-cta-container">                    \x3Cdiv class="hawk-deal-widget-text-body-container">                      \x3Cdiv class="hawk-deal-widget-text-body-main">                        \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-container" rel="sponsored noopener" target="_blank" ${dataAttr}>                          ${deal.isCheckPrice ? `                            \x3Cspan class="hawk-deal-widget-title-product-title">${this.escapeHTML(deal.title)}${_span}                          ` : `                            \x3Cspan class="hawk-deal-widget-title-product-title">${deal.brand ? this.escapeHTML(deal.brand) + ' ' : ''}${this.escapeHTML(deal.productName || deal.title || '')}:${_span}                          `}                        ${_a}                        ${!deal.isCheckPrice && deal.rawMsrp && deal.rawMsrp > deal.rawPrice ? `                          \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-container" rel="sponsored noopener" target="_blank" ${dataAttr}>                            \x3Cspan class="hawk-deal-widget-title-was-price">was ${currencySym}${escapedMsrp}${_span}                          ${_a}                        ` : ''}                        \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-container" rel="sponsored noopener" target="_blank" ${dataAttr}>                          \x3Cspan class="hawk-deal-widget-title-retailer-price">                            ${!deal.isCheckPrice ? `                              \x3Cspan class="hawk-deal-widget-title-price">now ${formattedPrice}${_span}                              \x3Cspan class="hawk-deal-widget-title-retailer"> at ${this.escapeHTML(deal.merchant)}${_span}                            ` : `                              \x3Cspan class="hawk-deal-widget-title-price">See price at ${this.escapeHTML(deal.merchant)}${_span}                            `}                          ${_span}                        ${_a}                        ${deal.description ? `\x3Cdiv class="hawk-deal-widget-text-body-description">\x3Cp>${this.escapeHTML(deal.description)}${_p}${_div}` : ''}                      ${_div}                    ${_div}                    \x3Cdiv class="hawk-deal-widget-footer">                      \x3Cdiv class="hawk-deal-widget-button-wrapper">                        \x3Cdiv class="hawk-deal-widget-preferred-partner-wrapper">                          \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-deal-button" rel="sponsored noopener" target="_blank" ${dataAttr}>                            \x3Cspan>${deal.isCheckPrice ? 'Check Price' : 'View Deal'}${_span}                          ${_a}                        ${_div}                      ${_div}                    ${_div}                  ${_div}                ${_div}              ${_div}              `;            }            htmlOutput += `              \x3Cdiv class="tg-df-card ${isSavingsSquadMode ? 'tg-df-desktop-only' : ''}">                ${this.editorMode ? `\x3Cinput type="checkbox" class="tg-df-deal-checkbox" data-id="${this.escapeHTML(deal.id)}" ${this.selectedDeals.has(deal.id) ? 'checked' : ''}>` : ''}                \x3Cdiv class="tg-df-card-image-box">                  ${discountBadgeHtml}                  \x3Ca href="${this.escapeHTML(rewrittenLink)}" ${dataAttr} target="_blank" rel="noopener nofollow" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;">                    \x3Cimg ${deal.image ? `src="${this.escapeHTML(deal.image)}"` : ''} alt="${this.escapeHTML(deal.title)}" class="tg-df-card-image" loading="lazy" onerror="${deal.fallbackImage ? `if(!this.dataset.fb) { this.dataset.fb='1'; this.src='${this.escapeHTML(deal.fallbackImage)}'; } else { this.style.opacity='0'; }` : `this.style.opacity='0';`}">                  ${_a}                ${_div}                \x3Cdiv class="tg-df-card-body">                  ${starHtml}                  ${badgesHtml}                  \x3Ch3 class="tg-df-card-title tg-df-custom-savings-squad-title" title="${this.escapeHTML(deal.title)}">                    \x3Ca href="${this.escapeHTML(rewrittenLink)}" disable-tracking="true" target="_blank" rel="noopener nofollow" style="text-decoration: none; color: inherit;">                      ${isSavingsSquadMode                         ? (deal.isCheckPrice                             ? (deal.title && deal.title.includes(':')                                 ? `\x3Cstrong>${this.escapeHTML(deal.title.substring(0, deal.title.indexOf(':') + 1))}${_strong}\x3Cspan style="color: #1f69ff; font-weight: normal;">${this.escapeHTML(deal.title.substring(deal.title.indexOf(':') + 1))}${_span}`                                : this.escapeHTML(deal.title)                              )                             : `\x3Cstrong>${deal.brand ? this.escapeHTML(deal.brand) + ' ' : ''}${this.escapeHTML(deal.productName || deal.title || '')}:${_strong} ${deal.rawMsrp && deal.rawMsrp > deal.rawPrice ? `\x3Cspan style="color: #d0021b; text-decoration: line-through; font-weight: normal; margin-right: 4px;">was ${currencySym}${escapedMsrp}${_span} ` : ''}\x3Cspan style="color: #1f69ff; font-weight: normal;">now ${formattedPrice} at ${this.escapeHTML(deal.merchant)}${_span}`                          )                        : this.escapeHTML(deal.title)                      }                    ${_a}                  ${_h3}                  ${deal.description ? `\x3Cp style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 12px; line-height: 1.4;">${this.escapeHTML(deal.description)}${_p}` : ''}                  \x3Cdiv class="tg-df-card-footer">                    ${priceGroupHtml}                    \x3Ca href="${this.escapeHTML(rewrittenLink)}" ${dataAttr} target="_blank" rel="noopener nofollow" class="tg-df-card-cta ${isSavingsSquadMode ? 'tg-df-cta-savings-squad' : ''}" style="text-decoration: none;">${ctaText}${_a}                  ${_div}                ${_div}              ${_div}            `;                        return htmlOutput;            } catch (e) {               console.log("Error rendering deal in map for index", index, typeof deal === 'object' ? JSON.stringify(deal) : deal, "MSG:", e.message);               return '';            }          }).join('');                    if (displayDeals.length > this.displayLimit || ((this.getViewMode() === 'carousel' || this.getViewMode() === 'auto') && displayDeals.length > 0 && displayDeals.length % ((this.rowsSelect && this.rowsSelect.value) ? parseInt(this.rowsSelect.value, 10) : 12) === 0)) {            if (this.getViewMode() === 'carousel') {               dealsHtml += `                 \x3Cbutton type="button" class="tg-df-load-more-card tg-df-load-more">                   \x3Csvg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-bottom: 8px;">\x3Cpath d="M5 12h14">\x3C/path>\x3Cpath d="m12 5 7 7-7 7">\x3C/path>\x3C/svg>                   Load More                 ${_button}               `;            } else {               dealsHtml += `                 \x3Cdiv style="width: 100%; display: flex; justify-content: center; margin-top: 16px; grid-column: 1 / -1;">                   \x3Cbutton type="button" class="tg-df-tag-outline tg-df-load-more" style="padding: 8px 24px; border-radius: 100px; font-weight: 600; font-size: 14px; cursor: pointer; display: flex; align-items: center;">Load More${_button}                 ${_div}               `;            }          }                    this.grid.innerHTML = dealsHtml;          // Inject JSON-LD          try {            let targetNode = this.hostContainer || document.head;            let jsonLdScript = targetNode.querySelector('#tg-df-json-ld-' + this.widgetId);            if (!jsonLdScript) {                jsonLdScript = document.createElement('script');                jsonLdScript.type = 'application/ld+json';                jsonLdScript.id = 'tg-df-json-ld-' + this.widgetId;                targetNode.appendChild(jsonLdScript);            }            const jsonLdData = {              "@context": "https://schema.org",              "@type": "ItemList",              "itemListElement": displayDeals.slice(0, this.displayLimit).map((deal, index) => {                 let isoCurrency = "USD";                 if (deal.currency === '£') isoCurrency = "GBP";                 else if (deal.currency === '€') isoCurrency = "EUR";                 else if (deal.currency === 'A$') isoCurrency = "AUD";                 else if (deal.currency === 'CA$') isoCurrency = "CAD";                 const areaCode = typeof this.getAreaCode === 'function' ? this.getAreaCode() : 'US';                 const revenueId = typeof generateRevenueId === 'function' ? generateRevenueId(deal.url, deal.title, deal.merchant, null) : '';                 const rewrittenLink = typeof rewriteAffiliateLink === 'function' ? rewriteAffiliateLink(deal.url, areaCode, revenueId) : deal.url;                 return {                   "@type": "ListItem",                   "position": index + 1,                   "item": {                     "@type": "Product",                     "name": deal.title,                     "image": deal.image || "",                     "description": deal.description || "",                     "brand": {                       "@type": "Brand",                       "name": deal.brand || ""                     },                     "offers": {                       "@type": "Offer",                       "priceCurrency": isoCurrency,                       "price": deal.rawPrice || 0,                       "url": rewrittenLink,                       "seller": {                         "@type": "Organization",                         "name": deal.merchant || ""                       }                     }                   }                 };              }).filter(item => item.item.name)            };            jsonLdScript.textContent = JSON.stringify(jsonLdData);          } catch(e) { console.warn("JSON-LD generation failed", e); }                    let gridWrapper = this.grid.parentElement;          if (gridWrapper && gridWrapper.classList.contains('tg-df-grid-wrapper')) {             let rightChevron = gridWrapper.querySelector('.tg-df-carousel-scroll-right');             let leftChevron = gridWrapper.querySelector('.tg-df-carousel-scroll-left');             if (this.getViewMode() === 'carousel') {                 // The observer set up in setupScrollListeners handles visibility.                 if (rightChevron) rightChevron.style.display = 'flex';                 if (leftChevron) leftChevron.style.display = 'none'; // reset correctly             } else {                 if (rightChevron) rightChevron.style.display = 'none';                 if (leftChevron) leftChevron.style.display = 'none';             }          }                    const loadMoreBtn = this.grid.querySelector('.tg-df-load-more');          if (loadMoreBtn) {            loadMoreBtn.addEventListener('click', async () => {              if (typeof trackElementInteraction === 'function') {                trackElementInteraction({ id: 'load-more', name: 'Load more', label: 'Load More Results' });              }              if (displayDeals.length <= this.displayLimit) {                 loadMoreBtn.innerHTML = `                  <svg class="tg-df-spinner" style="width: 16px; height: 16px; display: inline-block; vertical-align: middle; margin-right: 8px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" d="M12 2v4m0 12v4M4.93 4.93l2.83 2.83m8.48 8.48l2.83 2.83M2 12h4m12 0h4M4.93 19.07l2.83-2.83m8.48-8.48l2.83-2.83"/></svg>                  Loading...                 `;                 loadMoreBtn.disabled = true;                 await this.fetchDeals(this.currentQuery, true);              } else {                 this.displayLimit += this.getRowsLimit();                 this.render();              }            });          }                      this.bindCouponButtons();            this.checkAndUpdateCoupons();                        // Allow hawklinks.js to discover and rewrite our widget links             // by appending the .article-body class and manually triggering processArticle.            let container = this.root.classList.contains('tg-df-container') ? this.root : this.root.querySelector('.tg-df-container');            if (container && !container.classList.contains('article-body')) {               container.classList.add('article-body');            }            setTimeout(() => {               if (this.grid && !this.grid.classList.contains('article-body')) this.grid.classList.add('article-body');               document.dispatchEvent(new CustomEvent('processArticle', { detail: { element: this.root } }));            }, 50);          } catch(e) {            console.warn("Widget render error", e);          }        }                async checkAndUpdateCoupons() {          const wrappers = Array.from(this.root.querySelectorAll('.tg-df-coupon-wrapper'));          if (wrappers.length === 0) return;                    const merchants = [...new Set(wrappers.map(w => w.getAttribute('data-merchant')).filter(Boolean))];          if (merchants.length === 0) return;          const couponResultsMap = await this.checkMerchantsCouponsBulk(merchants);                    for (const merchant of merchants) {            const hasCoupons = !!couponResultsMap[merchant];            const merchantWrappers = wrappers.filter(w => w.getAttribute('data-merchant') === merchant);            merchantWrappers.forEach(wrapper => {              const spinner = wrapper.querySelector('.tg-df-coupon-spinner');              const btn = wrapper.querySelector('.tg-df-tag-coupons');                            if (spinner) spinner.style.display = 'none';                            if (hasCoupons && btn) {                btn.style.display = 'inline-flex';              } else if (!hasCoupons) {                wrapper.style.display = 'none';              }            });          }        }        updateFloatingCopyBar() {          if (!this.editorBar || !this.editorSelectedCount) return;          if (this.editorMode && this.selectedDeals.size > 0) {            this.editorBar.style.display = 'flex';            this.editorSelectedCount.innerText = this.selectedDeals.size;          } else {            this.editorBar.style.display = 'none';          }        }        async copySelectedDealsToCMS() {           function htmlToSlate(htmlString) {              if (!htmlString) return [{ type: 'paragraph', children: [{ text: '' }] }];              let doc;              if (typeof window !== 'undefined' && window.DOMParser) {                 doc = new DOMParser().parseFromString(htmlString, 'text/html');              } else {                 doc = document.implementation.createHTMLDocument('');                 doc.body.innerHTML = htmlString;              }                            function parseNode(node, marks = {}) {                  if (node.nodeType === 3) {                      const text = node.textContent;                      if (!text) return null;                      return { text: text, ...marks };                  }                  if (node.nodeType === 1) {                      const tagName = node.tagName.toLowerCase();                      if (tagName === 'br') {                          return { type: 'line-break', children: [{ text: '' }] };                      }                      if (tagName === 'p') {                          let children = Array.from(node.childNodes).map(child => parseNode(child, marks)).flat().filter(Boolean);                          if (children.length === 0) children.push({ text: "" });                          return { type: 'paragraph', children };                      }                      if (tagName === 'strong' || tagName === 'b') {                          const newMarks = { ...marks, bold: true };                          return Array.from(node.childNodes).map(child => parseNode(child, newMarks)).flat().filter(Boolean);                      }                      if (tagName === 'em' || tagName === 'i') {                          const newMarks = { ...marks, italic: true };                          return Array.from(node.childNodes).map(child => parseNode(child, newMarks)).flat().filter(Boolean);                      }                      if (tagName === 'a') {                          const href = node.getAttribute('href') || '';                          let children = Array.from(node.childNodes).map(child => parseNode(child, marks)).flat().filter(Boolean);                          if (children.length === 0) children.push({ text: "" });                          return {                              type: 'link',                              url: href,                              isNoFollow: (node.getAttribute('rel') || '').includes('nofollow'),                              isSponsored: (node.getAttribute('rel') || '').includes('sponsored'),                              isOpenNewTab: node.getAttribute('target') === '_blank',                              isPreventDataRewrite: false,                              children: children                          };                      }                      return Array.from(node.childNodes).map(child => parseNode(child, marks)).flat().filter(Boolean);                  }                  return null;              }                            let blocksArray = [];              let currentParagraphChildren = [];              function flushParagraph() {                  if (currentParagraphChildren.length > 0) {                      blocksArray.push({ type: 'paragraph', children: currentParagraphChildren });                      currentParagraphChildren = [];                  }              }              Array.from(doc.body.childNodes).forEach(node => {                  const parsed = parseNode(node, {});                  const parsedItems = Array.isArray(parsed) ? parsed : (parsed ? [parsed] : []);                  parsedItems.forEach(item => {                      if (item.type === 'paragraph') {                          flushParagraph();                          blocksArray.push(item);                      } else {                          currentParagraphChildren.push(item);                      }                  });              });              flushParagraph();              if (blocksArray.length === 0) {                  blocksArray = [{ type: 'paragraph', children: [{ text: '' }] }];              }              return blocksArray;           }           const blocks = [];                      this.editorCopyBtn.innerHTML = '\x3Cspan class="tg-df-coupon-spinner" style="display:inline-block; margin-right:8px; border-top-color:#fff;">' + '<' + '/span> Copying...';           for (const deal of Array.from(this.selectedDeals.values())) {              const url = deal.url;              const merchant = deal.merchant;              const title = deal.title;              const image = deal.image;              const currentPrice = deal.currency + deal.rawPrice;              const wasPrice = deal.hasWasPrice && deal.rawMsrp > deal.rawPrice ? deal.currency + deal.rawMsrp : '';                            let couponsChildren = [];              try {                  const area = this.getAreaCode();                  const apiUrl = new URL('https://search-api.fie.future.net.uk/widget.php');                  apiUrl.searchParams.append('model_name', 'Everything');                  apiUrl.searchParams.append('language', 'en-GB');                  apiUrl.searchParams.append('area', area);                  apiUrl.searchParams.append('combine_product_types', '1');                  apiUrl.searchParams.append('filter_merchant_name', merchant);                  apiUrl.searchParams.append('all_filters', 'false');                  apiUrl.searchParams.append('exclude_unlabelled', 'false');                  apiUrl.searchParams.append('include_specs', 'false');                  apiUrl.searchParams.append('sort', 'voucher');                  apiUrl.searchParams.append('distinct_merchants', 'natural');                  apiUrl.searchParams.append('filter_product_types', 'vouchers,offer_deals,newsletter');                  apiUrl.searchParams.append('rows', '3');                  apiUrl.searchParams.append('origin', 'widgets-clientside');                                    let res; try { res = await fetch(apiUrl.toString()); } catch (e) { return; }                  if (res.ok) {                      const data = await res.json();                      let offers = [];                      if (data && data.widget && data.widget.data && Array.isArray(data.widget.data.offers)) {                        offers = data.widget.data.offers;                      } else if (data && data.data && Array.isArray(data.data.offers)) {                        offers = data.data.offers;                      }                                            if (offers.length > 0) {                          couponsChildren.push({ text: "Also check out these coupons: ", bold: true });                          offers.slice(0, 3).forEach((offer, idx) => {                              const actualOffer = offer.offer || offer;                              const offerName = actualOffer.name || actualOffer.title || offer.model_name || offer.title || offer.name || 'Coupon';                              const linkUrl = actualOffer.link || actualOffer.url || actualOffer.offer_link || '#';                              couponsChildren.push({ type: "line-break", children: [{ text: "" }] });                              couponsChildren.push({ text: "🎟️ " });                              couponsChildren.push({                                  type: "link",                                  url: linkUrl,                                  isNoFollow: true,                                  isSponsored: false,                                  isOpenNewTab: true,                                  isPreventDataRewrite: false,                                  children: [{ text: offerName, bold: true }]                              });                          });                      }                  }              } catch (err) {                  console.warn('Failed to fetch coupons for', merchant, err);              }              let descriptionValue = [];              if (deal.text) {                 descriptionValue = htmlToSlate(deal.text);              } else {                 const dealDescriptions = [                   `Don't miss out on this fantastic deal for the ${title}. It is currently available at ${merchant} for a highly competitive price.`,                   `We've spotted an excellent price drop on the ${title}. Grab it now at ${merchant} before it's gone.`,                   `The ${title} is currently seeing a generous discount over at ${merchant}. This is a perfect time to buy if you've been holding out.`,                   `If you're in the market for the ${title}, ${merchant} has just the deal for you.`,                   `Score the ${title} for less at ${merchant} right now. This is a rare chance to save big.`,                   `Upgrade your setup with the ${title}, now available at a stellar price via ${merchant}.`                 ];                 const randomDescription = dealDescriptions[Math.floor(Math.random() * dealDescriptions.length)];                 descriptionValue = [                    { type: "paragraph", children: [{ text: randomDescription }] }                 ];              }                            if (couponsChildren.length > 0) {                 let lastBlock = descriptionValue[descriptionValue.length - 1];                 if (lastBlock && lastBlock.type === 'paragraph') {                     lastBlock.children.push({ type: "line-break", children: [{ text: "" }] });                     lastBlock.children.push({ type: "line-break", children: [{ text: "" }] });                     lastBlock.children.push({ text: "Also check out these coupons: ", bold: true });                     lastBlock.children.push({ type: "line-break", children: [{ text: "" }] });                     lastBlock.children = lastBlock.children.concat(couponsChildren);                 } else {                     descriptionValue.push({                         type: "paragraph",                         children: [                             { type: "line-break", children: [{ text: "" }] },                             { type: "line-break", children: [{ text: "" }] },                             { text: "Also check out these coupons: ", bold: true },                             { type: "line-break", children: [{ text: "" }] },                             ...couponsChildren                         ]                     });                 }              }              function normalizeCurrencyToISO(symbol) {                const map = { '£': 'GBP', '$': 'USD', 'A$': 'AUD', 'CA$': 'CAD', '€': 'EUR' };                return map[symbol] || symbol;              }              const isoCurrency = normalizeCurrencyToISO(deal.currency);              blocks.push({                 id: (window.crypto && window.crypto.randomUUID) ? window.crypto.randomUUID() : 'cms-' + Date.now() + Math.random(),                 blockTypeName: "deal",                 excludeFrom: [],                 collapsible: false,                 props: {                    description: {                       value: descriptionValue,                       touched: false,                       validationMessage: ""                    },                    image: {                       value: {                          credit: [{ type: "paragraph", children: [{ text: merchant }] }],                          dateCreated: Date.now(),                          dateModified: Date.now(),                          distribution: [],                          fileSize: 0,                          height: 1000,                          id: deal.id,                          imageRights: "",                          src: image,                          name: title + ".jpg",                          tags: [],                          width: 1000                       },                       touched: false,                       validationMessage: ""                    },                    showDealButton: { value: true, touched: false, validationMessage: "" },                    isPreferredPartner: { value: false, touched: false, validationMessage: "" },                    linkHref: { value: url, touched: false, validationMessage: "" },                    linkLabel: { value: "", touched: false, validationMessage: "" },                    linkIsNoFollow: { value: true, touched: false, validationMessage: "" },                    linkIsSponsored: { value: false, touched: false, validationMessage: "" },                    linkIsOpenNewWindow: { value: true, touched: false, validationMessage: "" },                    customPromoFlags: { value: [], touched: false, validationMessage: "" },                    showStarDeal: { value: false, touched: false, validationMessage: "" },                    savingType: { value: "none", touched: false, validationMessage: "" },                    starDealPromoFlag: { value: "", touched: false, validationMessage: "" },                    showEditorsChoice: { value: false, touched: false, validationMessage: "" },                    editorsChoiceTitle: { value: "", touched: false, validationMessage: "" },                    hawkPriceCurrency: { value: { value: isoCurrency, label: isoCurrency }, touched: false, validationMessage: "" },                    hawkPrice: { value: deal.hasWasPrice ? String(deal.rawMsrp) : String(deal.rawPrice), touched: false, validationMessage: "" },                    hawkSalePrice: { value: String(deal.rawPrice), touched: false, validationMessage: "" },                    lastCheckedPriceDate: { value: "", touched: false, validationMessage: "" },                    hawkModel: { touched: false, validationMessage: "" },                    productId: { value: "", touched: false, validationMessage: "" },                    voucherId: { value: "", touched: false, validationMessage: "" },                    brand: { value: deal.brand || merchant, touched: false, validationMessage: "" },                    productName: { value: title, touched: false, validationMessage: "" },                    label: { value: "", touched: false, validationMessage: "" },                    retailer: { value: merchant, touched: false, validationMessage: "" },                    priceCheckError: false                 },                 failedFetchError: ""              });           }           const payload = {              type: "articleBuilderPages",              data: blocks           };           const jsonStr = JSON.stringify(payload);                      if (navigator.clipboard && navigator.clipboard.writeText) {              navigator.clipboard.writeText(jsonStr).then(() => {                 this.editorCopyBtn.innerHTML = 'Copied!';                 setTimeout(() => {                    this.editorCopyBtn.innerHTML = '\x3Csvg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-right: 6px;">\x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2"><' + '/rect>\x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"><' + '/path><' + '/svg> Copy to CMS';                 }, 2000);              }).catch(err => {                 console.warn('Failed to copy text: ', err);                 alert('Failed to copy deals to clipboard. See console.');              });           } else {              // Fallback              const textArea = document.createElement("textarea");              textArea.value = jsonStr;              document.body.appendChild(textArea);              textArea.focus();              textArea.select();              try {                 document.execCommand('copy');                 this.editorCopyBtn.innerHTML = 'Copied!';                 setTimeout(() => {                    this.editorCopyBtn.innerHTML = '\x3Csvg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-right: 6px;">\x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2"><' + '/rect>\x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"><' + '/path><' + '/svg> Copy to CMS';                 }, 2000);              } catch (err) {                 console.warn('Fallback: Oops, unable to copy', err);                 alert('Fallback: Failed to copy deals to clipboard.');              }              document.body.removeChild(textArea);           }        }      }      // Initialize the Widget      if (document.readyState === 'loading') {        document.addEventListener('DOMContentLoaded', () => new DealsFinderWidget({ rootId: 'signal-deals-finder-root', rootNode: shadowRoot, hostContainer: hostContainer }));      } else {        new DealsFinderWidget({ rootId: 'signal-deals-finder-root', rootNode: shadowRoot, hostContainer: hostContainer });      }    })();  </script></div> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/cloud-storage/the-256gb-laptop-is-the-new-32gb-phone-and-its-quietly-pushing-you-into-cloud-subscriptions</link>
                                                                            <description>
                            <![CDATA[ Many laptops start with 256GB of storage. Unfortunately, that doesn't tend to last long, which could inevitably force you into cloud subscriptions. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">2dDayHGrQtJTU2i7pfpWjg</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/9h2ktgVmyY3wffQ56vrvuD-1920-80.png" type="image/png" length="0"></enclosure>
                                                                        <pubDate>Sat, 15 Aug 2026 06:30:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Cloud Storage]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Internet]]></category>
                                                                                                                    <dc:creator><![CDATA[ Max Slater-Robins ]]></dc:creator>                                                                                                        <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/png" url="https://cdn.mos.cms.futurecdn.net/9h2ktgVmyY3wffQ56vrvuD-1920-80.png">
                                                            <media:credit><![CDATA[Future]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[MacBook Neo]]></media:description>                                                            <media:text><![CDATA[MacBook Neo]]></media:text>
                                <media:title type="plain"><![CDATA[MacBook Neo]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/9h2ktgVmyY3wffQ56vrvuD-1920-80.png" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>There was a time not too long ago when a 32GB smartphone felt perfectly workable — potentially even spacious. Fast forward to today and apps have gotten bigger, cameras have become larger, and routine software updates now eat entire gigabytes on their own. </p><p>32GB has gone from seeming totally normal (even luxurious) to looking absurdly stingy. I think 256GB laptops are heading in the same direction. </p><p>In 2026, plenty of otherwise <a href="https://www.tomsguide.com/best-picks/best-budget-laptops">excellent laptops</a> start with 256GB of storage, despite many of the <a href="https://www.tomsguide.com/best-picks/best-phones">best smartphones</a> offering the same amount. At first, 256GB might be enough, but after months or years of apps, photos, downloads, and updates, that breathing room is just... gone.</p><p>And when it does go, <a href="https://www.tomsguide.com/reviews/windows-11">Windows 11</a> and <a href="https://www.tomsguide.com/computing/macos/apple-macos-tahoe-review">macOS</a> have a very convenient answer waiting in the wings: move more of your stuff into the cloud — and, sooner or later, start paying for it.</p><div class="product"><a data-dimension112="bdce9650-972a-11f1-bf3c-f145984e235b" data-action="Deal Block" data-label="13" MacBook Air (M5)" data-dimension48="13" MacBook Air (M5)" data-dimension25="$1297" href="https://www.amazon.com/Apple-2026-MacBook-13-inch-Laptop/dp/B0GR1JTFP8?th=1" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1500px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="2S3mMDzKcdQKAxWc4wGxDQ" name="MacBook Air M5 deal" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/2S3mMDzKcdQKAxWc4wGxDQ-1920-80.jpg" mos="" align="middle" fullscreen="" width="1500" height="1500" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://www.amazon.com/Apple-2026-MacBook-13-inch-Laptop/dp/B0GR1JTFP8?th=1" target="_blank" rel="nofollow" data-dimension112="bdce9650-972a-11f1-bf3c-f145984e235b" data-action="Deal Block" data-label='13" MacBook Air (M5)' data-dimension48='13" MacBook Air (M5)' data-dimension25="$1297">13" MacBook Air (M5): $1297</a></strong><br />The MacBook Air has been upgraded with more power. The new laptop features a 13.6-inch (2560 x 1664) display, the new Apple M5 chip, 16GB of RAM, a 512GB SSD, and support for Wi-Fi 7 and Bluetooth 6. Although it now costs $100 more, the base model comes with a 512GB SSD instead of 256GB.<a class="view-deal button" href="https://www.amazon.com/Apple-2026-MacBook-13-inch-Laptop/dp/B0GR1JTFP8?th=1" target="_blank" rel="nofollow" data-dimension112="bdce9650-972a-11f1-bf3c-f145984e235b" data-action="Deal Block" data-label="13" MacBook Air (M5)" data-dimension48="13" MacBook Air (M5)" data-dimension25="$1297">View Deal</a></p></div><h2 id="256gb-isn-t-tiny-and-that-s-exactly-the-problem">256GB isn’t tiny — and that’s exactly the problem</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:6000px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="iQBUvBQeStovV4YftmSdMZ" name="Lenovo Chromebook Plus 14" alt="Lenovo Chromebook Plus 14" src="https://cdn.mos.cms.futurecdn.net/iQBUvBQeStovV4YftmSdMZ-1920-80.jpg" mos="" align="middle" fullscreen="" width="6000" height="3376" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>The funny part, if we can call it that, is that 256GB can feel perfectly comfortable for those who live inside a browser. But there's a difference between having enough storage and having enough room to <em>grow</em>.</p><p>We’ve previously said that <a href="https://www.tomsguide.com/computing/laptops/5-things-to-look-for-when-buying-a-laptop-from-someone-who-reviews-them-for-a-living">256GB is the bare minimum</a> you should look for in a general-purpose laptop, and that increasingly feels spot on in 2026.  </p><p>It’s definitely enough to get by, but it doesn’t leave you with a huge amount of headroom for the future. In a world where a single <a href="https://www.tomsguide.com/entertainment/music-streaming/spotifys-latest-update-makes-organizing-your-music-easier-plus-improved-offline-downloads">Spotify</a> playlist with 1,000 songs can take up nearly 10GB of space, bigger is better.  </p><p>You can actually see the shift happening elsewhere in the market: Apple’s latest <a href="https://www.tomsguide.com/computing/macbooks/macbook-air-m5-review">MacBook Air</a> now starts with 512GB, an upgrade we welcomed, while many <a href="https://www.tomsguide.com/best-picks/best-budget-laptops">budget laptops</a> continue to stick with 256GB to keep their prices down.</p><p>There is, of course, some nuance to this picture. A <a href="https://www.tomsguide.com/news/best-chromebook-deals-prices">cheap Chromebook</a> or secondary laptop definitely doesn’t need a huge SSD, and with memory prices soaring, buying decisions are becoming harder than ever.</p><p>But for a laptop you expect to use as your main computer for the next five-plus years, 256GB looks less like a specification and more like a compromise.</p><h2 id="your-laptop-can-last-years-but-its-storage-can-t-grow-with-it">Your laptop can last years, but its storage can’t grow with it</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ywqirqeDaWNqKZgmGgbrqF" name="macbook air m4" alt="macbook air m4" src="https://cdn.mos.cms.futurecdn.net/ywqirqeDaWNqKZgmGgbrqF-1920-80.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Apple)</span></figcaption></figure><p>At a basic level, storage is one of the few parts of a laptop that can become more restrictive simply through normal use.</p><p>Photos, downloads, apps, offline media, assorted files, and everything else you acquire from day to day gradually pile up, while the SSD you bought on day one stays the same size. This situation is less of a problem if you can simply replace the SSD later. </p><p>Some Windows laptops, like the excellent <a href="https://www.tomsguide.com/computing/laptops/framework-laptop-13-pro-revealed-and-its-a-ground-up-redesign-of-our-favorite-modular-laptop">Framework models</a>, still make that relatively straightforward, but plenty of thin-and-light notebooks — including <a href="https://www.tomsguide.com/computing/macbooks/i-review-macbooks-for-a-living-and-these-are-the-biggest-developments-i-expect-in-2026">MacBooks</a> — effectively lock you into whatever capacity you choose at checkout.</p><div class="product"><a data-dimension112="bdce9718-972a-11f1-b4e8-7590d6ebcb98" data-action="Deal Block" data-label="Laptop 16 (2025)" data-dimension48="Laptop 16 (2025)" data-dimension25="$1599" href="https://frame.work/laptop16" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1305px;"><p class="vanilla-image-block" style="padding-top:69.04%;"><img id="fnhfRVzYGyhBCo8Ng2wFJn" name="Framework Laptop 16.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/fnhfRVzYGyhBCo8Ng2wFJn-1920-80.jpg" mos="" align="middle" fullscreen="" width="1305" height="901" attribution="" endorsement="" credit="" class="" /></p></div></div></figure></a><p><strong><a href="https://frame.work/laptop16" target="_blank" rel="nofollow" data-dimension112="bdce9718-972a-11f1-b4e8-7590d6ebcb98" data-action="Deal Block" data-label="Laptop 16 (2025)" data-dimension48="Laptop 16 (2025)" data-dimension25="$1599">Laptop 16 (2025): $1599</a></strong><br />The Framework Laptop 16 is a fully customizable, repairable, and upgradable laptop. It now includes the option to outfit it with an Nvidia GeForce RTX 5070 graphics card. In our <a href="https://www.tomsguide.com/computing/laptops/framework-laptop-16-2025-review">Framework Laptop 16 review,</a> we called the Editor's Choice machine our favorite laptop of the year and a must-buy for DIYers and folks who value their right to repair.<a class="view-deal button" href="https://frame.work/laptop16" target="_blank" rel="nofollow" data-dimension112="bdce9718-972a-11f1-b4e8-7590d6ebcb98" data-action="Deal Block" data-label="Laptop 16 (2025)" data-dimension48="Laptop 16 (2025)" data-dimension25="$1599">View Deal</a></p></div><h2 id="conveniently-there-s-a-subscription-for-that">Conveniently, there’s a subscription for that</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2112px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="6vEt8qRjSJA8ncGGUriukH" name="Framework Laptop 13 upgradeable" alt="Framework Laptop 13 being upgraded with new memory" src="https://cdn.mos.cms.futurecdn.net/6vEt8qRjSJA8ncGGUriukH-1920-80.jpg" mos="" align="middle" fullscreen="" width="2112" height="1188" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Framework)</span></figcaption></figure><p>Running low on storage is less painful than it used to be, mainly because Windows and macOS are extremely good at pushing files to the cloud.</p><p>OneDrive’s <a href="https://www.tomsguide.com/reviews/microsoft-onedrive-review">Files On-Demand feature</a>, for example, lets files remain visible in File Explorer without actually taking up space, while macOS can automatically move less frequently used files into <a href="https://www.tomsguide.com/phones/iphones/i-pay-for-icloud-not-for-storage-but-for-this-perk-instead">iCloud</a> when space starts running low.</p><p>There's no denying that these are genuinely useful features that save people a lot of hassle; having to actively choose what to delete is tough, and decision paralysis is real. </p><p>The problem comes when cloud storage starts compensating for your laptop's limited built-in storage.</p><p>Both OSes make that transition remarkably easy: You fill the SSD, move more into the cloud, and eventually find yourself paying for extra capacity. Almost without noticing, an understandable hardware compromise becomes yet another subscription.</p><p><a href="https://www.tomsguide.com/buying-guide/best-cloud-storage">Cloud storage</a> also isn’t a like-for-like replacement for local storage. Apps, games, caches, and plenty of other files still need SSD space, while online-only files naturally depend on an internet connection.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-eBz6Ke"></div>                            </div>                            <script src="https://kwizly.com/embed/eBz6Ke.js" async=""></script><h2 id="ai-is-making-the-obvious-solution-harder">AI is making the obvious solution harder</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="xvJgTcuknLbUZo9QawcVzi" name="macbook neo" alt="macbook neo" src="https://cdn.mos.cms.futurecdn.net/xvJgTcuknLbUZo9QawcVzi-1920-80.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>The obvious answer would be for 512GB to become the new baseline. Unfortunately, 2026 is turning out to be a pretty terrible year for that transition.</p><p>As you might have read, the <a href="https://www.tomsguide.com/computing/ram-price-crisis-2026-everything-you-need-to-know">RAMageddon</a> is also putting pressure on the storage inside our laptops, as well as <a href="https://www.tomsguide.com/gaming/best-games-consoles">consoles</a>, <a href="https://www.tomsguide.com/best-picks/best-cheap-tablets">tablets</a>, <a href="https://www.tomsguide.com/best-picks/best-phones">smartphones</a>, and, well, pretty much every consumer device.</p><p>Data centres need vast amounts of memory and storage to keep AI services running, and that extra demand is making the components used in consumer SSDs more expensive too.</p><p>We’ve already seen how the wider memory crunch is <a href="https://www.tomsguide.com/computing/laptops/buying-a-laptop-in-2026-is-complicated-heres-a-survival-guide-to-help-you-make-the-best-choice">affecting the laptop market</a>, with manufacturers facing higher component costs and difficult decisions over where to make compromises. Even usually unflappable giants like Apple are <a href="https://www.tomsguide.com/computing/macbooks/apple-price-hikes-are-official-heres-how-much-more-youll-pay-for-macbooks-and-ipads-now">raising prices</a> across the board. </p><p>All of this makes sticking with 256GB easier to understand, even if it doesn’t make it any more appealing. The 256GB laptop isn’t obsolete yet. But, like the 32GB phone before it, its days as an acceptable default should be numbered.</p><div data-widget-type="multimodelreview" data-model-name="Apple MacBook Neo,Dell XPS 13"></div><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/claude/claude-is-watermarking-every-response-heres-what-that-means-if-you-use-ai-for-writing">Claude is now watermarking every response — here's what that means if you use AI for writing</a></li><li><a href="https://www.tomsguide.com/computing/gaming-laptops/hyperx-omen-15-review">I tested the HyperX Omen 15, and it almost made me forget my PS5</a></li><li><a href="https://www.tomsguide.com/phones/google-pixel-phones/i-checked-out-the-pixel-11-pixel-11-pro-and-pixel-11-pro-xl-heres-the-one-i-recommend">I checked out the Pixel 11, Pixel 11 Pro, and Pixel 11 Pro XL — here’s the one I recommend</a></li></ul><div class="vizualizer-embed"><div class="tg-df-widget-host" data-widget-config="?search=laptops&amp;min_discount_ratio=0.95&amp;widget_title=Top+Deals+Handpicked+by+Our+Editors&amp;widget_subtitle=Discover+the+best+discounts+currently+available%2C+curated+daily+by+the+Tom%27s+Guide+Savings+Squad.&amp;bg_color=transparent" data-vizualizer-embed="true"></div>    <script>    /**     * Tom's Guide Deals Finder - Vanilla JS Encapsulated Engine     */    (function() {      // --- Freyr Analytics Adapter ---      function initAnalytics() {        window.dataLayer = window.dataLayer || [];        window.googletag = window.googletag || {};        window.googletag.cmd = window.googletag.cmd || [];        window.hawk = window.hawk || { analytics: { freyr: [] } };        window.hawk.analytics = window.hawk.analytics || { freyr: [] };        window.hawk.analytics.freyr = window.hawk.analytics.freyr || [];        window.freyr = window.freyr || { cmd: [] };        const scriptSrc = 'https://freyr.futurecdn.net/freyr.js';        const hostname = typeof window !== 'undefined' ? window.location.hostname : '';        const isTestEnv = typeof window.navigator !== 'undefined' && (window.navigator.webdriver || window.navigator.userAgent.includes('Headless'));        const shouldSendRealAnalytics = !isTestEnv && hostname && hostname !== 'localhost' && hostname !== '127.0.0.1' && !hostname.includes('run.app');        if (shouldSendRealAnalytics && !document.querySelector(`script[src="${scriptSrc}"]`)) {          const script = document.createElement('script');          script.src = scriptSrc;          script.async = true;          document.head.appendChild(script);        }      }      function storeEventForDebug(name, data) {        if (!window.hawk || !window.hawk.analytics || !window.hawk.analytics.freyr) return;        window.hawk.analytics.freyr.push({ name, data });        try {          if (typeof window !== 'undefined' && window.localStorage) {            window.localStorage.setItem("hawk", JSON.stringify(window.hawk));          }        } catch (e) {          // Ignore storage issues        }        try {          window.dispatchEvent(new CustomEvent("hawk-analytics-update"));        } catch (e) {}      }      function sendToFreyr(eventName, data) {        if (typeof window === 'undefined') return;        window.freyr = window.freyr || { cmd: [] };        window.freyr.cmd.push(() => {          if (window.freyr && window.freyr.pushAndUpdate) {            window.freyr.pushAndUpdate(eventName, data);          }        });      }      function sendEvent(event, skip = false) {        try {          storeEventForDebug(event.name, event.data);          if (!skip) {            sendToFreyr(event.name, event.data);          }        } catch (e) {          // Ensure tracking errors don't surface to the user        }      }      function getCookie(name) {        try {          const match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)'));          return match ? match[2] : null;        } catch (e) {          return null;        }      }      function normalizeCurrency(symbol) {        const map = {          '£': 'GBP',          '$': 'USD',          'A$': 'AUD',          'CA$': 'CAD',          '€': 'EUR'        };        return map[symbol] || symbol;      }      function trackElementInteraction(props) {        sendEvent({          name: 'elementInteraction',          data: {            element: {              action: props.action || "click",              id: props.id || undefined,              class: props.class || undefined,              name: props.name || undefined,              text: props.text || undefined,              label: props.label || undefined,              container: props.container || undefined,              url: props.url || undefined,              articleId: props.articleId || undefined            }          }        });      }      function generateRevenueId(url, productName, merchantName, modelId) {        const str = `${window.location.href}|${productName}|${merchantName}|${modelId || ''}|${new Date().toDateString()}|tomsguide`;        let hash = 0;        for (let i = 0; i < str.length; i++) {          const char = str.charCodeAt(i);          hash = ((hash << 5) - hash) + char;          hash = hash & hash;        }        let numericStr = Math.abs(hash).toString();        while (numericStr.length < 19) {          numericStr += Math.floor(Math.random() * 10).toString();        }        return numericStr.substring(0, 19);      }      function rewriteAffiliateLink(url, territory, revenueId) {        if (!url) return url;        const t = (territory || 'gb').toLowerCase();        return url.replace(/hawk-custom-tracking/g, `tomsguide-${t}-${revenueId}`);      }      function trackHawkEvent(params) {        const { clickType, widgetId, productCategoryName, product, productsArray, zeroBasedProductIndexOrNull, totalDealsOrProducts, areaClicked, merchant, revenueId, isoCurrencyCode, queryName, widgetTypeName } = params;        const data = {          event: "hawkEvent",          category: "Affiliates",          affiliate: {            action: {              type: clickType,              id: widgetId,              event: clickType === "appeared" ? "viewed" : "Click from",              timestamp: Date.now()            },            component: {              flag: "Editor",              product: productCategoryName || "deals",              category: `Signal Deal Finder ${widgetTypeName || "Carousel"} widget`,              type: clickType === "appeared" ? "review" : "signal product",              label: queryName || (product ? (product.name || "") : ""),              index: zeroBasedProductIndexOrNull === null || zeroBasedProductIndexOrNull === undefined ? -1 : zeroBasedProductIndexOrNull,              linkCount: totalDealsOrProducts || 0,              blockLayout: "",              areaClicked: areaClicked || ""            }          },          products: productsArray || (product && merchant ? [            {              product: {                primary: {                  id: product.id || product.matchId || null,                  name: product.name,                  type: "deal",                  price: product.price,                  previousPrice: product.previousPrice || null,                  currency: isoCurrencyCode || "USD",                  preorder: false,                  labels: [],                  link: product.link,                  originalLink: product.originalLink || null,                  revenueId: revenueId || null,                  startTime: null,                  endTime: null,                  voucherCode: null,                  voucherAudience: null,                  voucherPercentageSaving: null,                  voucherMoneySaving: null,                  voucherType: null,                  offerExclusive: false,                  offerScope: null,                  globalId: product.globalId || null,                  inStock: product.inStock !== false,                  contractProvider: null,                  contractMinutes: null,                  contractTexts: null,                  contractData: null,                  contractLength: null,                  contractMonthlyPrice: null,                  contractCurrency: isoCurrencyCode || "USD"                }              },              merchant: {                id: merchant.id || null,                name: merchant.name,                url: merchant.url || null,                network: merchant.network || null              },              model: {                id: product.modelId || null,                brand: product.brand || null,                name: product.name,                parent: product.parent || null              }            }          ] : []),          reviews: [],          _clear: true,          "gtm.uniqueEventId": Date.now() % 10000        };        sendEvent({ name: 'hawkEvent', data });      }      function trackDealClick(params) {        trackHawkEvent({ ...params, clickType: "retailer", areaClicked: "Signal Product Card" });      }      function trackViewSimilarClick(params) {        trackHawkEvent({ ...params, clickType: "retailer", areaClicked: "Signal Product Card View Similar" });      }      function trackPriceComparisonClick(params) {        trackHawkEvent({ ...params, clickType: "retailer", areaClicked: "Signal Price Comparison" });      }      function trackReviewClick(params) {        trackHawkEvent({ ...params, clickType: "review", areaClicked: "Signal Product Card Review Link" });      }      function trackShare(params) {        trackHawkEvent({ ...params, clickType: "share", areaClicked: "Signal Product Card Share" });      }      function trackDealsAppeared(widgetId, deals, revenueId, currency, queryName, widgetTypeName) {         if (!deals || deals.length === 0) return;                  const productsArray = deals.slice(0, 50).map((deal) => {            let voucherPct = null;            let rawPrice = parseFloat(deal.rawPrice) || parseFloat(deal.price) || null;            let rawMsrp = parseFloat(deal.rawMsrp) || parseFloat(deal.msrp) || null;            if (rawMsrp > rawPrice && rawPrice > 0) {              voucherPct = Math.round((1 - (rawPrice / rawMsrp)) * 100);            }            let numId = null;            if (deal.externalProductId && !isNaN(parseInt(deal.externalProductId))) {              numId = parseInt(deal.externalProductId);            } else if (deal.id && !isNaN(parseInt(deal.id))) {              numId = parseInt(deal.id);            } else {              numId = deal.matchId || null;            }            return {              product: {                primary: {                  id: numId,                  name: deal.productName || deal.title || "",                  type: "deal",                  price: rawPrice,                  previousPrice: rawMsrp,                  currency: currency || 'USD',                  preorder: false,                  labels: deal.modelBrand || deal.brand ? [                     { type: "brand", value: deal.modelBrand || deal.brand }                  ] : [],                  link: deal.url,                  originalLink: deal.url,                  revenueId: revenueId || null,                  startTime: null,                  endTime: null,                  voucherCode: null,                  voucherAudience: null,                  voucherPercentageSaving: voucherPct,                  voucherMoneySaving: null,                  voucherType: null,                  offerExclusive: false,                  offerScope: null,                  globalId: deal.productKey || null,                  inStock: deal.inStock !== false,                  contractProvider: null,                  contractMinutes: null,                  contractTexts: null,                  contractData: null,                  contractLength: null,                  contractMonthlyPrice: null,                  contractCurrency: currency || 'USD'                }              },              merchant: {                id: deal.merchantId ? parseInt(deal.merchantId) : null,                name: deal.merchant || "Retailer",                url: deal.merchantUrl || null,                network: deal.merchantNetwork || null              },              model: {                id: deal.modelId ? parseInt(deal.modelId) : null,                brand: deal.modelBrand || deal.brand || null,                name: deal.productName || deal.title || "",                parent: deal.modelParent || null              }            };         });                  trackHawkEvent({             clickType: "appeared",             widgetId: widgetId,             productCategoryName: "deals",             zeroBasedProductIndexOrNull: null,             totalDealsOrProducts: deals.length,             productsArray: productsArray,             queryName: queryName,             widgetTypeName: widgetTypeName         });      }      // 1. Setup Shadow DOM Sandbox      const currentScript = document.currentScript;      let hostContainer = null;      let template = null;            if (currentScript) {        let prev = currentScript.previousElementSibling;        while (prev) {          if (prev.tagName === 'TEMPLATE' && prev.classList.contains('tg-df-widget-template')) {            template = prev;          } else if (prev.tagName === 'DIV' && prev.classList.contains('tg-df-widget-host') && !prev.hasAttribute('data-initialized')) {            hostContainer = prev;            break;          }          prev = prev.previousElementSibling;        }      }            // Fallbacks in case script is deferred      if (!hostContainer) {        const hosts = document.querySelectorAll('.tg-df-widget-host:not([data-initialized])');        if (hosts.length > 0) hostContainer = hosts[0];      }            // Safely embedded template for CMS environments      const rawTemplate = `  \x3Cstyle>    /* --- Shadow DOM Base Reset --- */    *, *::before, *::after {      box-sizing: border-box;    }    img, picture, svg, video {      max-width: 100%;      height: auto;      display: block;    }    /*       1. Scoped CSS for Tom's Guide Deals Widget       All classes are prefixed with \`tg-df-\` to prevent CMS style leakage.    */    .tg-df-container {      container-type: inline-size;      container-name: tg-df;      --tg-df-blue: #1F69FF;      --tg-df-blue-hover: #004d8c;      --tg-df-text: #222222;      --tg-df-text-muted: #555555;      --tg-df-bg: #ffffff;      --tg-df-bg-secondary: #f4f4f4;      --tg-df-border: #e2e8f0;      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;      color: var(--tg-df-text);      background-color: transparent;       width: 100%;      max-width: 1200px;      margin: 0 auto;      padding-bottom: 24px;    }    .tg-df-container *, .tg-df-container *::before, .tg-df-container *::after {      margin: 0;      padding: 0;      box-sizing: border-box;    }    .tg-df-container img {      border: none;      margin: 0;      padding: 0;    }    .tg-df-container a {      text-decoration: none;      color: inherit;    }    /*       2. Search & Filter Bar    */    .tg-df-controls {      display: flex;      flex-direction: column;      align-items: center;      gap: 20px;      margin-bottom: 32px;      width: 100%;    }    .tg-df-top-bar {      display: flex;      width: 100%;      max-width: 760px;      gap: 12px;      align-items: center;    }    .tg-df-search-wrapper {      position: relative;      flex: 1;      width: 100%;      box-shadow: 0 8px 24px rgba(0,0,0,0.06);      border-radius: 40px;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      z-index: 100;    }    .tg-df-autocomplete-dropdown {      position: absolute;      top: calc(100% + 4px);      left: 0;      right: 0;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 12px;      box-shadow: 0 8px 32px rgba(0,0,0,0.12);      max-height: 300px;      overflow-y: auto;      z-index: 200;      display: none;    }    .tg-df-autocomplete-dropdown.active {      display: block;    }    .tg-df-autocomplete-item {      padding: 12px 24px;      cursor: pointer;      font-size: 14px;      color: var(--tg-df-text);      transition: background 0.1s ease;    }    .tg-df-autocomplete-item:hover {      background: var(--tg-df-bg-secondary);    }    .tg-df-search-input {      width: 100%;      padding: 16px 64px 16px 24px;      font-size: 16px;      border: 2px solid transparent;      border-radius: 40px;      outline: none;      transition: border-color 0.2s ease, box-shadow 0.2s ease;      color: var(--tg-df-text);      background: transparent;    }    .tg-df-search-input:focus {      border-color: transparent;      box-shadow: 0 0 0 3px rgba(0, 108, 196, 0.15);    }    .tg-df-search-input::placeholder {      color: #999999;    }        .tg-df-search-btn {      position: absolute;      right: 8px;      top: 50%;      transform: translateY(-50%);      width: 40px;      height: 40px;      border-radius: 50%;      background: #222;      border: none;      display: flex;      align-items: center;      justify-content: center;      cursor: pointer;      transition: background 0.2s ease;    }        .tg-df-search-btn:hover {      background: #000;    }    .tg-df-search-icon {      width: 16px;      height: 16px;      fill: #fff;    }    .tg-df-settings-wrapper {      position: relative;    }        .tg-df-settings-btn {      width: 48px;      height: 48px;      border-radius: 50%;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      box-shadow: 0 4px 12px rgba(0,0,0,0.04);      display: flex;      align-items: center;      justify-content: center;      cursor: pointer;      transition: all 0.2s ease;      color: var(--tg-df-text-muted);      flex-shrink: 0;    }    .tg-df-settings-btn:hover {      background: var(--tg-df-bg-secondary);      border-color: #0000ff;      color: var(--tg-df-text);    }    .tg-df-settings-btn svg {      width: 24px;      height: 24px;      fill: currentColor;    }    .tg-df-settings-dropdown {      position: absolute;      top: calc(100% + 8px);      right: 0;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 12px;      box-shadow: 0 8px 32px rgba(0,0,0,0.12);      width: 280px;      padding: 20px;      display: none;      z-index: 100;      flex-direction: column;      gap: 20px;    }    .tg-df-settings-dropdown.active {      display: flex;    }        .tg-df-settings-dropdown-backdrop {      display: none;      position: fixed;      inset: 0;      z-index: 99;    }        .tg-df-settings-dropdown-backdrop.active {      display: block;    }    .tg-df-setting-item {      display: flex;      flex-direction: column;      gap: 10px;    }    .tg-df-setting-label {      font-size: 11px;      font-weight: 700;      color: var(--tg-df-text-muted);      text-transform: uppercase;      letter-spacing: 0.5px;    }        .tg-df-region-select {        padding: 10px 12px;        border-radius: 8px;        border: 1px solid var(--tg-df-border);        font-size: 15px;        outline: none;        background: var(--tg-df-bg-secondary);        color: var(--tg-df-text);        cursor: pointer;        width: 100%;    }    .tg-df-toggle {        position: relative;        display: inline-block;        width: 44px;        height: 24px;        flex-shrink: 0;    }    .tg-df-toggle input {        opacity: 0;        width: 0;        height: 0;    }    .tg-df-slider {        position: absolute;        cursor: pointer;        top: 0; left: 0; right: 0; bottom: 0;        background-color: #ccc;        transition: .2s;        border-radius: 24px;    }    .tg-df-slider:before {        position: absolute;        content: "";        height: 18px;        width: 18px;        left: 3px;        bottom: 3px;        background-color: white;        transition: .2s;        border-radius: 50%;    }    .tg-df-toggle input:checked + .tg-df-slider {        background-color: #1F69FF;    }    .tg-df-toggle input:checked + .tg-df-slider:before {        transform: translateX(20px);    }    .tg-df-dl-row {        flex-direction: row;        align-items: center;        justify-content: space-between;    }    .tg-df-dl-row-text {        font-size: 14px;        font-weight: 600;        color: var(--tg-df-text);    }    .tg-df-dl-row-subtext {        font-size: 12px;        font-weight: 400;        line-height: 1.3;        color: var(--tg-df-text-muted);        margin-top: 4px;        display: block;    }    .tg-df-filters {      display: flex;      gap: 12px;      justify-content: center;      flex-wrap: wrap;    }    .tg-df-sort-wrapper {      position: relative;      display: flex;      align-items: center;    }        .tg-df-sort-icon {      position: absolute;      left: 14px;      width: 14px;      height: 14px;      fill: var(--tg-df-text-muted);      pointer-events: none;    }    .tg-df-sort-select, .tg-df-filter-select {      padding: 10px 36px 10px 38px;      font-size: 14px;      border: 1px solid var(--tg-df-border);      border-radius: 100px;      outline: none;      appearance: none;      background-color: var(--tg-df-bg-secondary);      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 12 12'%3E%3Cpath fill='%23555555' d='M6 8L1 3h10z'/%3E%3C/svg%3E");      background-repeat: no-repeat;      background-position: right 14px center;      color: var(--tg-df-text);      cursor: pointer;      font-weight: 500;      transition: all 0.2s ease;    }        .tg-df-price-input::-webkit-outer-spin-button,    .tg-df-price-input::-webkit-inner-spin-button {      -webkit-appearance: none;      margin: 0;    }    .tg-df-price-input {      -moz-appearance: textfield;    }    .tg-df-sort-select:hover, .tg-df-filter-select:hover {      background-color: #e2e8f0;    }    .tg-df-multiselect-container {      position: relative;    }        .tg-df-multiselect-trigger {      display: block;      background: #fff;      user-select: none;      width: 100%;      overflow: hidden;      white-space: nowrap;      text-overflow: ellipsis;    }        .tg-df-multiselect-dropdown {      display: none;      position: absolute;      top: calc(100% + 4px);      left: 0;      width: 100%;      min-width: 220px;      max-height: 300px;      overflow-y: auto;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 8px;      box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);      z-index: 100;      padding: 8px 0;    }    .tg-df-multiselect-dropdown.active {      display: block;    }    .tg-df-ms-option {      padding: 8px 16px;      display: flex;      align-items: center;      gap: 8px;      cursor: pointer;      font-size: 14px;    }    .tg-df-ms-option:hover {      background-color: var(--tg-df-bg-secondary);    }        .tg-df-ms-option input {      cursor: pointer;      accent-color: #1f69ff;    }    .tg-df-sort-select:focus, .tg-df-filter-select:focus {      border-color: #0000ff;      box-shadow: 0 0 0 3px rgba(0, 0, 255, 0.2);      background-color: var(--tg-df-bg);    }    /*       3. Deal Grid Layout    */    .tg-df-grid.tg-df-grid-auto {      padding-top: 24px;    }    .tg-df-grid, .tg-df-grid.layout-grid {      display: grid;      grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));      gap: 10px;    }    .tg-df-grid.layout-row {      grid-template-columns: 1fr;      gap: 16px;    }        .tg-df-grid.layout-row .tg-df-card {      flex-direction: row;      align-items: stretch;      height: auto;      box-shadow: none;      border-bottom: 1px solid var(--tg-df-border);    }    .tg-df-grid.layout-row .tg-df-card:hover {      box-shadow: none;    }    .tg-df-grid.layout-row .tg-df-card-image-box {      width: 140px;      min-width: 140px;      aspect-ratio: 3/4;      border-right: none;      padding: 16px 16px 16px 32px;    }    .tg-df-grid.layout-row .tg-df-card-body {      padding: 16px;      justify-content: space-between;    }    .tg-df-grid.layout-row .tg-df-card-title {      font-size: 15px;      margin-bottom: 16px;    }    .tg-df-grid.layout-row .tg-df-card-stars { margin-bottom: 8px; }    .tg-df-grid.layout-row .tg-df-card-footer {      flex-direction: column;      align-items: flex-start;      gap: 0;    }    .tg-df-grid.layout-row .tg-df-card-merchant-pill {      margin-bottom: 4px;    }    .tg-df-grid.layout-row .tg-df-card-price-group {      margin-bottom: 8px;    }    .tg-df-grid.layout-row .tg-df-price-group {      width: auto;    }    .tg-df-grid.layout-row .tg-df-card-cta {      width: 100%;      max-width: 200px;      padding: 10px 24px;      font-size: 13px;      flex-shrink: 0;      text-align: center;      justify-content: center;    }    /*       4. Deal Card Design    */    .tg-df-card {      position: relative;      display: flex;      flex-direction: column;      background-color: #ffffff;      border-radius: 0;      overflow: hidden;      transition: transform 0.2s ease, box-shadow 0.2s ease;      text-decoration: none;      color: inherit;      height: 100%;      box-shadow: 0 0 16px rgba(0, 0, 0, 0.08);      border: 1px solid var(--tg-df-border);    }    .tg-df-card:hover {      box-shadow: 0 0 24px rgba(0, 0, 0, 0.12);    }    .tg-df-card-image-box {      width: 100%;      aspect-ratio: 3/4;      background-color: #f8f8f8;      display: flex;      align-items: center;      justify-content: center;      position: relative;      overflow: hidden;      padding: 32px;      flex: 0 0 auto;    }    .tg-df-card-image {      max-width: 100%;      max-height: 100%;      width: auto;      height: auto;      object-fit: contain;      mix-blend-mode: multiply; /* Helps white background images blend into secondary bg */      transition: transform 0.3s ease;    }    .tg-df-card:hover .tg-df-card-image {      transform: scale(1.05); /* Zoom in on hover */    }    .tg-df-card-discount-badge {      position: absolute;      top: 12px;      left: 12px;      background: #dc2626; /* Red */      color: #ffffff;      padding: 6px 8px;      font-size: 11px;      font-weight: 500;      text-transform: uppercase;      letter-spacing: 0.5px;      border-radius: 0;      z-index: 10;    }        .tg-df-card-merchant-pill {      display: block;      padding: 0;      font-size: 11px;      font-weight: 600;      text-transform: uppercase;      letter-spacing: 0.5px;      border-radius: 0;      color: var(--tg-df-text-muted);      margin-bottom: 8px;      white-space: nowrap;      overflow: hidden;      text-overflow: ellipsis;    }    .tg-df-card-body {      padding: 16px;      display: flex;      flex-direction: column;      flex-grow: 1;      min-width: 0;    }    .tg-df-card-badges {      display: flex;      flex-wrap: wrap;      gap: 6px;      margin-bottom: 8px;    }    .tg-df-tag {      display: inline-flex;      align-items: center;      padding: 4px 6px;      font-size: 11px;      font-weight: 700;      text-transform: uppercase;      border-radius: 4px;      gap: 4px;    }    .tg-df-tag-prime {      background-color: #00A8E1;      color: #fff;    }    .tg-df-tag-coupons {      background-color: #f1f5f9;      color: #334155;      border: 1px solid #cbd5e1;      cursor: pointer;      transition: background-color 0.2s;    }    .tg-df-tag-coupons:hover {      background-color: #e2e8f0;    }        .tg-df-tag-outline {      background-color: #f1f5f9;      color: #334155;      border: 1px solid #cbd5e1;      cursor: pointer;      transition: background-color 0.2s;    }    .tg-df-tag-outline:hover {      background-color: #e2e8f0;    }        @keyframes tg-df-spin {      0% { transform: rotate(0deg); }      100% { transform: rotate(360deg); }    }    .tg-df-coupon-spinner {      border: 2px solid #e2e8f0;      border-top: 2px solid #3b82f6;      border-radius: 50%;      width: 14px;      height: 14px;      animation: tg-df-spin 1s linear infinite;      margin: 4px 8px;      display: inline-block;    }        /* Vouchers Modal */    .tg-df-modal-backdrop {      position: fixed;      top: 0; left: 0; right: 0; bottom: 0;      background: rgba(0,0,0,0.5);      z-index: 10000;      display: flex;      align-items: center;      justify-content: center;      opacity: 0;      pointer-events: none;      transition: opacity 0.3s;    }    .tg-df-modal-backdrop.active {      opacity: 1;      pointer-events: auto;    }    .tg-df-modal {      background: #fff;      border-radius: 12px;      width: 90%;      max-width: 400px;      max-height: 80vh;      display: flex;      flex-direction: column;      box-shadow: 0 10px 40px rgba(0,0,0,0.2);      transform: translateY(20px);      transition: transform 0.3s;    }    .tg-df-modal-backdrop.active .tg-df-modal {      transform: translateY(0);    }    .tg-df-modal-header {      padding: 16px;      border-bottom: 1px solid #e2e8f0;      display: flex;      align-items: center;      justify-content: space-between;    }    .tg-df-modal-title {      font-size: 16px;      font-weight: 600;      margin: 0;    }    .tg-df-modal-close {      background: none;      border: none;      cursor: pointer;      padding: 4px;      color: #64748b;    }    .tg-df-modal-body {      padding: 16px;      overflow-y: auto;    }    .tg-df-voucher-item {      padding: 12px;      border: 1px dashed #cbd5e1;      border-radius: 8px;      margin-bottom: 10px;      background: #f8fafc;      display: flex;      align-items: center;      gap: 12px;      text-decoration: none;      color: inherit;      transition: background-color 0.2s, border-color 0.2s;    }    .tg-df-voucher-item:hover {      background: #f1f5f9;      border-color: #94a3b8;    }    .tg-df-voucher-item:last-child {      margin-bottom: 0;    }    .tg-df-voucher-logo {      width: 48px;      height: 48px;      object-fit: contain;      border-radius: 4px;      background: #fff;      border: 1px solid #e2e8f0;      flex-shrink: 0;    }    .tg-df-voucher-content {      flex: 1;      min-width: 0;    }    .tg-df-voucher-title {      font-size: 14px;      font-weight: 600;      margin: 0 0 4px 0;      line-height: 1.3;      color: #0f172a;    }    .tg-df-voucher-expiry {      font-size: 12px;      color: #64748b;      display: flex;      align-items: center;      gap: 4px;      margin-top: 6px;    }    .tg-df-voucher-code {      display: inline-flex;      align-items: center;      background: #f1f5f9;      border: 1px dashed #cbd5e1;      padding: 6px 10px;      font-family: monospace;      font-weight: 700;      font-size: 14px;      color: #0f172a;      border-radius: 4px;      margin-top: 8px;      cursor: pointer;      transition: all 0.2s ease;    }    .tg-df-voucher-code:hover {      background: #e2e8f0;      border-color: #94a3b8;    }    .tg-df-voucher-code.copied {      background: #ecfdf5;      border-color: #10b981;      color: #10b981;    }    .tg-df-voucher-cta {      display: inline-block;      margin-top: 8px;      font-size: 13px;      font-weight: 600;      color: #2563eb;      text-decoration: none;    }    .tg-df-card-title {      font-size: 15px;      font-weight: 400;      line-height: 1.4;      margin: 0 0 12px 0;      color: var(--tg-df-text);      display: -webkit-box;      -webkit-line-clamp: 2;      -webkit-box-orient: vertical;      overflow: hidden;    }    .tg-df-card-footer {      margin-top: auto;      display: flex;      flex-direction: column;      width: 100%;    }    .tg-df-card-price-group {      display: flex;      flex-direction: row;      align-items: center;      gap: 8px;      margin-bottom: 12px;    }    .tg-df-card-price {      font-size: 16px;      font-weight: 700;      color: #dc2626; /* Red price */      line-height: 1;    }        .tg-df-card-msrp {      font-size: 13px;      color: var(--tg-df-text-muted);      text-decoration: line-through;    }    .tg-df-container .tg-df-card-cta {      display: flex;      align-items: center;      justify-content: center;      width: 100%;      box-sizing: border-box;      background-color: #1f69ff;      color: #ffffff;      font-size: 12px;      font-weight: 700;      text-transform: uppercase;      letter-spacing: 0.5px;      padding: 12px 16px;      border-radius: 0;      border: none;      cursor: pointer;      transition: background-color 0.2s ease;    }    .tg-df-card:hover .tg-df-card-cta,    .tg-df-card-cta:hover {      background-color: #1555cc;    }    .tg-df-container .tg-df-card-cta.tg-df-cta-savings-squad {      background-color: #3c8d0d;    }    .tg-df-card:hover .tg-df-card-cta.tg-df-cta-savings-squad,    .tg-df-card-cta.tg-df-cta-savings-squad:hover {      background-color: #2b6509;    }    /*       5. State & Skeleton Styles    */    .tg-df-message {      grid-column: 1 / -1;      text-align: center;      padding: 48px 24px;      color: var(--tg-df-text-muted);      font-size: 16px;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 8px;    }    @keyframes tg-df-shimmer {      0% { background-position: -200% 0; }      100% { background-position: 200% 0; }    }    .tg-df-skeleton {      background: linear-gradient(90deg, var(--tg-df-bg-secondary) 25%, #e2e8f0 50%, var(--tg-df-bg-secondary) 75%);      background-size: 200% 100%;      animation: tg-df-shimmer 1.5s infinite;      border-radius: 4px;    }    .tg-df-skeleton-img {      width: 100%;      height: 100%;      position: absolute;      top: 0; left: 0;    }        .tg-df-skeleton-text {      height: 16px;      margin-bottom: 8px;      width: 100%;    }    .tg-df-skeleton-text.short { width: 40%; }    .tg-df-skeleton-text.title { height: 20px; margin-bottom: 16px; }    /* Editor Floating Bar & Elements */    .tg-df-editor-bar {      position: sticky;      top: 0;      z-index: 1000;      background: #111827;      color: #fff;      padding: 12px 16px;      border-radius: 8px;      margin-bottom: 16px;      display: flex;      align-items: center;      justify-content: space-between;      box-shadow: 0 4px 12px rgba(0,0,0,0.15);    }    .tg-df-editor-bar-text {      font-weight: 600;      font-size: 14px;    }    .tg-df-editor-copy-btn {      background: #10b981;      color: #fff;      padding: 6px 16px;      border: none;      border-radius: 4px;      font-weight: 600;      cursor: pointer;      display: flex;      align-items: center;      font-size: 13px;    }    .tg-df-editor-copy-btn:hover { background: #059669; }        .tg-df-deal-checkbox {      position: absolute;      top: 12px;      right: 12px;      z-index: 10;      width: 20px;      height: 20px;      cursor: pointer;      pointer-events: auto;    }    /*       6. Mobile List View (Stacks into a cleaner horizontal row/list)    */    @container tg-df (max-width: 599px) {      .tg-df-controls {        padding: 0 16px;      }            .tg-df-top-bar {        width: 100%;      }            .tg-df-settings-dropdown {        position: fixed;        top: auto;        bottom: 0;        left: 0;        right: 0;        width: 100%;        border-radius: 20px 20px 0 0;        padding: 24px;        box-shadow: 0 -8px 32px rgba(0,0,0,0.15);        z-index: 1000;        border: none;        border-top: 1px solid var(--tg-df-border);      }            .tg-df-settings-dropdown-backdrop.active {        background: rgba(0,0,0,0.4);      }            .tg-df-search-wrapper {        box-shadow: 0 0 16px rgba(0,0,0,0.08);      }            .tg-df-filters {        width: calc(100% + 32px);        margin: 0 -16px;        padding: 0 16px 4px 16px;        display: flex;        justify-content: flex-start;        gap: 8px;        flex-wrap: nowrap;        overflow-x: auto;        -webkit-overflow-scrolling: touch;        scrollbar-width: none;      }      .tg-df-filters::after {        content: "";        display: block;        flex: 0 0 8px;      }      .tg-df-filters::-webkit-scrollbar {        display: none;      }            .tg-df-sort-wrapper {        flex: 0 0 max(42%, 130px);        min-width: 0;      }      .tg-df-sort-wrapper.tg-df-price-range-wrapper {        flex: 0 0 auto;        min-width: max-content;      }            .tg-df-sort-select, .tg-df-filter-select {        width: 100%;        text-align: left;        padding: 10px 24px 10px 32px;        background-position: right 8px center;        text-overflow: ellipsis;        white-space: nowrap;        overflow: hidden;      }      .tg-df-sort-icon {        left: 10px;      }      .tg-df-grid:not(.layout-grid):not(.layout-row),      .tg-df-grid.layout-row {        grid-template-columns: 1fr;        gap: 16px;      }            .tg-df-grid.tg-df-grid-auto {        padding-top: 24px;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card,      .tg-df-grid.layout-row .tg-df-card {        flex-direction: row;        align-items: stretch;        height: auto;        box-shadow: none; /* simple line on mobile if preferred, or keep */        border-bottom: 1px solid var(--tg-df-border);      }      .tg-df-grid.tg-df-grid-auto .tg-df-card:hover,      .tg-df-grid.layout-row .tg-df-card:hover {        box-shadow: none;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-image-box,      .tg-df-grid.layout-row .tg-df-card-image-box {        width: 120px;        min-width: 120px;        aspect-ratio: 3/4;        border-right: none;        padding: 12px;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-body,      .tg-df-grid.layout-row .tg-df-card-body {        padding: 12px;        justify-content: space-between;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-title,      .tg-df-grid.layout-row .tg-df-card-title {        font-size: 14px;        margin-bottom: 12px;        -webkit-line-clamp: 3;      }      /* Single column mobile grid override */      .tg-df-grid.layout-grid {        grid-template-columns: 1fr;        gap: 16px;      }      .tg-df-grid.layout-grid .tg-df-card-image-box {        padding: 12px;      }      .tg-df-grid.layout-grid .tg-df-card-body {        padding: 10px;      }      .tg-df-grid.layout-grid .tg-df-card-title {        font-size: 13px;        -webkit-line-clamp: 3;        margin-bottom: 8px;      }      .tg-df-grid.layout-grid .tg-df-card-price {        font-size: 14px;      }            .tg-df-card-footer {        flex-direction: column;        align-items: stretch;        gap: 0;        width: 100%;        min-width: 0;      }      .tg-df-card-merchant-pill {        margin-bottom: 4px;      }      .tg-df-card-price-group {        flex: 1 1 auto;        margin-bottom: 8px;      }      .tg-df-card-price {        font-size: 16px;      }      .tg-df-card-msrp {        display: block;       }      .tg-df-grid.layout-row .tg-df-card-cta,      .tg-df-container .tg-df-card-cta {        width: 100%;        max-width: none;        min-width: 0;        box-sizing: border-box;        padding: 8px 16px;        font-size: 12px;        flex: 0 0 auto;        text-align: center;        white-space: normal;        line-height: 1.2;      }    }    .tg-df-container.is-carousel {      min-height: 760px;      background-color: #E7F0FF;      padding: 0 0 24px 0;      border-radius: 24px;    }    .tg-df-container.is-carousel.hide-header-details {      min-height: 480px;    }    /*       7. Carousel View Mode    */    .tg-df-container .tg-df-carousel-host {      /* Layout is now handled by container wrapper */    }    .tg-df-container .tg-df-carousel-eyebrow {      color: #1F69FF;      font-weight: 700;      font-size: 14px;      text-transform: uppercase;      letter-spacing: 1px;      padding: 24px 16px 0 16px;      display: none;    }    .tg-df-container .tg-df-carousel-query-title {      color: #011535;      font-size: 28px;      font-weight: 600;      padding: 0 16px 24px 16px;      line-height: 1.2;      display: none;    }    .tg-df-container .tg-df-carousel-blue-box {      background-color: transparent;      border-radius: 0;      padding: 24px 24px 0 24px;      margin: 0;      color: #1F69FF;          position: relative;      overflow: hidden;    }    .tg-df-container .tg-df-carousel-bg-circle-1 {      display: none;    }    .tg-df-container .tg-df-carousel-bg-circle-2 {      display: none;    }    .tg-df-container .tg-df-carousel-bg-circle-3 {      display: none;    }    .tg-df-container .tg-df-carousel-box-content {      position: relative;      z-index: 10;    }    .tg-df-container .tg-df-carousel-box-eyebrow {      background-color: transparent;      color: #1F69FF;      font-weight: 700;      font-size: 14px;      text-transform: uppercase;      letter-spacing: 1px;      display: inline-block;      padding: 0;      border-radius: 0;    }    .tg-df-container .tg-df-carousel-box-title {      font-size: 28px;      font-weight: 600;      line-height: 1.2;      margin-top: 8px;      color: #1e293b;    }    .tg-df-container .tg-df-countdown-wrapper {      position: absolute;      top: 0;      right: 0;      display: flex;      flex-direction: column;      align-items: flex-end;      gap: 12px;      transform: scale(0.67);      transform-origin: top right;    }    .tg-df-container .tg-df-countdown-title {      font-size: 16px;      text-align: center;      width: 100%;      font-weight: 600;      color: #011535;      margin: 0;    }    .tg-df-container .tg-df-countdown-blocks {      display: flex;      gap: 16px;    }    .tg-df-container .tg-df-countdown-item {      display: flex;      flex-direction: column;      align-items: center;      gap: 4px;    }    .tg-df-container .tg-df-countdown-box {      width: 59px;      height: 59px;      background: #03FE9E;      border-radius: 15px;      display: flex;      align-items: center;      justify-content: center;    }    .tg-df-container .tg-df-countdown-num {      font-family: 'Inter', sans-serif;      font-weight: 700;      font-size: 20px;      line-height: normal;      color: #011535;    }    .tg-df-container .tg-df-countdown-label {      font-family: 'Inter', sans-serif;      font-weight: 500;      font-size: 16px;      line-height: normal;      color: #1e293b;      text-transform: uppercase;    }    .tg-df-container .tg-df-carousel-box-subtitle {      font-size: 16px;      margin-top: 8px;      font-weight: 300;      color: #1e293b;      line-height: 24px;    }    .tg-df-container .tg-df-carousel-roundels-wrapper {      position: relative;      margin-top: 24px;      margin-left: -24px;      margin-right: -24px;    }    .tg-df-container .tg-df-carousel-roundels {      display: flex;      gap: 16px;      overflow-x: auto;            scrollbar-width: none;      padding-top: 12px;      padding-bottom: 24px;      padding-left: 24px;      padding-right: 24px;      margin-left: 0;      margin-right: 0;    }        .tg-df-container .tg-df-carousel-scroll-left,    .tg-df-container .tg-df-carousel-scroll-right {      position: absolute;      top: 50%;      transform: translateY(-50%);      height: 36px;      width: 36px;      display: flex;      align-items: center;      justify-content: center;      border-radius: 50%;      background-color: #ffffff;      border: 1px solid #e2e8f0;      box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);      color: #1F69FF;      cursor: pointer;      transition: all 0.2s;      margin-top: -4px;      z-index: 20;    }    .tg-df-container .tg-df-carousel-scroll-left { left: 8px; }    .tg-df-container .tg-df-carousel-scroll-right { right: 8px; }    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-left { left: 0px; }    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-right { right: 0px; }    .tg-df-carousel-filters-outer { margin-left: -24px; margin-right: -24px; padding-left: 24px; padding-right: 24px; }    @container tg-df (max-width: 599px) { .tg-df-carousel-filters-outer { margin-left: -16px; margin-right: -16px; padding-left: 16px; padding-right: 16px; } }        .tg-df-container .tg-df-carousel-scroll-left:hover,    .tg-df-container .tg-df-carousel-scroll-right:hover {      background-color: #f8fafc;      border-color: #cbd5e1;    }        .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-left,    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-right,    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-left,    .tg-df-carousel-filters-outer .tg-df-carousel-scroll-right {      background-color: rgba(255, 255, 255, 0.4);      border: none;      box-shadow: none;      backdrop-filter: blur(4px);      -webkit-backdrop-filter: blur(4px);    }    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-left { left: 0; }    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-right { right: 0; }    .tg-df-grid-wrapper .tg-df-carousel-scroll-left { left: 0; }    .tg-df-grid-wrapper .tg-df-carousel-scroll-right { right: 0; }        .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-left:hover,    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-right:hover {      background-color: rgba(255, 255, 255, 0.6);      border: none;    }    .tg-df-container .tg-df-carousel-roundels::-webkit-scrollbar {      display: none;    }    .tg-df-container .tg-df-carousel-roundels::after {      content: "";      flex: 0 0 32px;    }    .tg-df-container .tg-df-roundel {      display: flex;      flex-direction: column;      align-items: center;      gap: 8px;      cursor: pointer;      min-width: 120px;      flex-shrink: 0;    }    .tg-df-container .tg-df-roundel-img-box {      width: 120px;      height: 120px;      border-radius: 50%;      background: white;      display: flex;      align-items: center;      justify-content: center;      overflow: hidden;      box-shadow: 0px 3px 14px 0px rgba(30, 41, 59, 0.08);      transition: box-shadow 0.2s;    }    .tg-df-container .tg-df-roundel:hover .tg-df-roundel-img-box {      box-shadow: 0 0 0 2px #E7F0FF, 0 0 0 4px #1F69FF;    }    .tg-df-container .tg-df-roundel.active .tg-df-roundel-img-box {      box-shadow: 0 0 0 2px #E7F0FF, 0 0 0 4px #1F69FF;    }    .tg-df-container .tg-df-roundel:hover .tg-df-roundel-img-box img {      transform: scale(1.08);    }    .tg-df-container .tg-df-roundel-img-box img {      width: 100%;      height: 100%;      object-fit: contain;      padding: 10px;      box-sizing: border-box;      transition: transform 0.3s ease;    }    .tg-df-container .tg-df-roundel-label {      font-size: 13px;      font-weight: 400;      color: #1e293b;      text-align: center;      transition: font-weight 0.2s;    }    .tg-df-container .tg-df-roundel.active .tg-df-roundel-label {      font-weight: 700;    }    .tg-df-container .tg-df-carousel-filters-label {      font-size: 16px;      font-weight: 400;      color: #1e293b;      white-space: nowrap;      margin-right: 4px;    }    .tg-df-container .tg-df-carousel-filters-wrap {      display: flex;      align-items: center;      flex-wrap: nowrap;      gap: 8px;      margin-top: 8px;      overflow-x: auto;      scrollbar-width: none;      -webkit-overflow-scrolling: touch;      padding-bottom: 8px;      margin-left: -24px;      margin-right: -24px;      padding-left: 24px;      padding-right: 24px;    }    .tg-df-container .tg-df-carousel-filters-wrap::-webkit-scrollbar {      display: none;    }        .tg-df-container .tg-df-carousel-filter-btn img,    .tg-df-container .tg-df-carousel-filter-btn picture {      height: 20px;      width: 20px;      object-fit: contain;      object-position: center;      display: inline-flex;      align-items: center;      justify-content: center;      margin-right: 6px;    }    .tg-df-container .tg-df-carousel-filter-btn picture img {      margin-right: 0;      height: 100%;      width: 100%;    }    .tg-df-container .tg-df-carousel-filter-btn img.active-img,    .tg-df-container .tg-df-carousel-filter-btn picture:has(.active-img) {      display: none;    }    .tg-df-container .tg-df-carousel-filter-btn:hover img.inactive-img,    .tg-df-container .tg-df-carousel-filter-btn.active img.inactive-img,    .tg-df-container .tg-df-carousel-filter-btn:hover picture:has(.inactive-img),    .tg-df-container .tg-df-carousel-filter-btn.active picture:has(.inactive-img) {      display: none;    }    .tg-df-container .tg-df-carousel-filter-btn:hover img.active-img,    .tg-df-container .tg-df-carousel-filter-btn.active img.active-img,    .tg-df-container .tg-df-carousel-filter-btn:hover picture:has(.active-img),    .tg-df-container .tg-df-carousel-filter-btn.active picture:has(.active-img) {      display: inline-flex;    }    .tg-df-container .tg-df-carousel-filter-btn {      background: #ffffff;      border: 2px solid #1e293b;      color: #1e293b;      border-radius: 24px;      padding: 6px 16px;      font-size: 14px;      font-weight: 600;      cursor: pointer;      transition: all 0.2s;      flex-shrink: 0;      white-space: nowrap;      display: inline-flex;      align-items: center;      justify-content: center;      min-height: 36px;      box-sizing: border-box;    }    .tg-df-container .tg-df-carousel-filter-btn svg {      margin-right: 6px;    }    .tg-df-container .tg-df-carousel-filter-btn:hover {      background: #1e293b;      color: white;      border-color: #1e293b;    }    .tg-df-container .tg-df-carousel-filter-btn.active {      background: #1e293b;      color: white;      border-color: #1e293b;    }        .tg-df-grid.carousel-compact {      display: flex;      flex-wrap: nowrap;      overflow-x: auto;      gap: 16px;      padding: 16px 24px;      align-items: stretch;      scrollbar-width: none;    }    .tg-df-grid.carousel-compact::after {      content: "";      flex: 0 0 32px;    }    .tg-df-grid-wrapper {      position: relative;    }    .tg-df-grid.carousel-compact::-webkit-scrollbar {      display: none;    }    .tg-df-grid.carousel-compact .tg-df-load-more-card {      flex: 0 0 auto;      width: 100px;      border-radius: 15px;      box-shadow: 0 0 16px rgba(0,0,0,0.08);      border: 2px solid #1e293b;      background: white;      color: #1e293b;      display: flex;      flex-direction: column;      justify-content: center;      align-items: center;      font-weight: 600;      font-size: 14px;      cursor: pointer;      padding: 16px;      text-align: center;      transition: all 0.2s;    }    .tg-df-grid.carousel-compact .tg-df-load-more-card:hover {      background: #1e293b;      color: white;    }    .tg-df-grid.carousel-compact .tg-df-card {      flex: 0 0 auto;      width: 200px;      min-height: auto;      height: auto;      display: flex;      flex-direction: column;      border-radius: 15px;      border: none;      box-shadow: 0 0 16px rgba(0,0,0,0.08);      overflow: visible;    }    .tg-df-grid.carousel-compact .tg-df-card-image-box {      padding: 12px;      background-color: transparent;      border-radius: 15px 15px 0 0;      height: 130px;    }    .tg-df-grid.carousel-compact .tg-df-card-image {      mix-blend-mode: normal;    }    .tg-df-grid.carousel-compact .tg-df-card-discount-badge {      border-radius: 0;      top: 0px;      left: 0px;      padding: 4px 8px;      font-size: 11px;    }    .tg-df-grid.carousel-compact .tg-df-card-body {      padding: 8px 12px 12px 12px;    }    .tg-df-grid.carousel-compact .tg-df-card-title {      font-size: 14px;      font-weight: 400;      -webkit-line-clamp: 2;      margin-bottom: 8px;      color: #011535;    }    .tg-df-grid.carousel-compact .tg-df-card-body:not(:has(.tg-df-card-stars)):not(:has(.tg-df-tag-prime)):not(:has(.tg-df-coupon-wrapper:not([style*="none"]))) > .tg-df-card-title,    .tg-df-grid.carousel-compact .tg-df-card-body:not(:has(.tg-df-card-stars)):has(> .tg-df-card-title:first-child) > .tg-df-card-title {      -webkit-line-clamp: 3;    }    .tg-df-grid.carousel-compact .tg-df-card-cta {      border-radius: 5px;      padding: 8px 10px;      margin-top: 4px;      background-color: #1F69FF;    }    .tg-df-grid.carousel-compact .tg-df-card-price-group {      margin-bottom: 2px;    }    .tg-df-grid.carousel-compact .tg-df-card-merchant-pill {      margin-bottom: 2px;    }    @container tg-df (max-width: 599px) {      .tg-df-container .tg-df-carousel-blue-box-title {        font-size: 24px;      }      .tg-df-container .tg-df-countdown-title {        display: none;      }      .tg-df-container .tg-df-countdown-wrapper {        position: absolute;        top: 0;        right: 0;        align-items: flex-end;        transform: scale(0.45);        transform-origin: top right;      }      .tg-df-container .tg-df-roundel {        min-width: 88px;      }      .tg-df-container .tg-df-roundel-img-box {        width: 88px;        height: 88px;      }    }    /* REPLICA BLOCK STYLES */    .tg-df-grid.layout-replica-2 { grid-template-columns: repeat(2, 1fr) !important; gap: 20px; }    .tg-df-grid.layout-replica-1 { grid-template-columns: 1fr !important; gap: 20px; }        .tg-df-container .hawk-deal-widget-container { border-bottom: 1px solid #e5e7eb; display: flex; flex-direction: column; margin: 0; padding: 20px 0; box-sizing: border-box; font-family: inherit; }    .tg-df-container .hawk-deal-widget-wrap { display: flex; flex-direction: row; align-items: flex-start; width: 100%; gap: 24px; }    .tg-df-container .hawk-deal-widget-image-container { display: flex; flex-shrink: 0; justify-content: center; width: 160px; height: 160px; align-items: center; background: white; margin-bottom: 0px; }    .tg-df-container .hawk-deal-widget-title-product-title { color: #111827; font-size: 18px; font-weight: 700; line-height: 1.4; display: inline; }    .tg-df-container .hawk-deal-widget-title-price { font-size: 18px; font-weight: 700; line-height: 1.4; white-space: nowrap; color: #2563eb; }    .tg-df-container .hawk-deal-widget-title-price-now { font-weight: 700; }    .tg-df-container .hawk-deal-widget-title-retailer-price:hover { text-decoration: underline; }    .tg-df-container .hawk-deal-widget-title-retailer { font-size: 18px; font-weight: 700; line-height: 1.4; color: #2563eb; }    .tg-df-container .hawk-deal-widget-title-was-price { color: #dc2626; font-size: 16px; font-weight: 500; line-height: 1.4; text-decoration: line-through; white-space: nowrap; margin-left: 8px; margin-right: 8px; }    .tg-df-container .hawk-deal-widget-text-body-container { position: relative; width: 100%; box-sizing: border-box; }    .tg-df-container .hawk-deal-widget-text-body-main { font-size: 16px; width: 100%; margin-bottom: 12px; }    .tg-df-container .hawk-deal-widget-text-body-description { display: block; font-size: 15px; margin-top: 12px; color: #4b5563; line-height: 1.6; }    .tg-df-container .hawk-deal-widget-text-body-description p { margin: 0; line-height: 1.6; }    .tg-df-container .hawk-deal-widget-text-cta-container { display: flex; flex-direction: column; gap: 12px; width: 100%; flex: 1; min-width: 0; box-sizing: border-box; }    .tg-df-container .hawk-deal-widget-footer { display: flex; justify-content: flex-end; width: 100%; margin-top: auto; }    .tg-df-container .hawk-deal-widget-button-wrapper { display: flex; flex-direction: column; align-items: flex-end; justify-content: flex-end; width: 100%; }    .tg-df-container .hawk-deal-widget-preferred-partner-wrapper { display: flex; flex-direction: row; }        @container tg-df (min-width: 600px) {      .tg-df-mobile-only { display: none !important; }    }    @container tg-df (max-width: 599px) {      .tg-df-desktop-only { display: none !important; }      .tg-df-grid.layout-replica-2 { grid-template-columns: 1fr !important; }      .tg-df-grid.savings-squad-cards { grid-template-columns: 1fr !important; display: flex; flex-direction: column; }    }    .tg-df-grid.savings-squad-cards .tg-df-card-title {      -webkit-line-clamp: unset !important;      display: block !important;      overflow: visible !important;    }    @container tg-df (max-width: 500px) {      .tg-df-container .hawk-deal-widget-wrap { display: block; }      .tg-df-container .hawk-deal-widget-image-container { display: block; float: left; margin: 0 16px 8px 0; width: 120px; max-width: 120px; height: auto; align-items: normal; justify-content: normal; }      .tg-df-container .hawk-deal-widget-text-cta-container { display: block; text-align: left; }      .tg-df-container .hawk-deal-widget-footer { display: block; margin-top: 16px; clear: both; width: 100%; }      .tg-df-container .hawk-deal-widget-button-wrapper { display: block; width: 100%; }      .tg-df-container .hawk-deal-widget-button-wrapper .hawk-deal-widget-preferred-partner-wrapper { display: block; width: 100%; }      .tg-df-container .hawk-affiliate-link-deal-button { box-sizing: border-box !important; display: flex !important; max-width: none !important; width: 100% !important; margin: 0 !important; }    }        .tg-df-container .hawk-affiliate-link-deal-button {       align-items: center; background-color: #5aaf0b; box-sizing: border-box; color: #ffffff !important; display: flex; font-size: 14px; font-weight: 700; justify-content: center; letter-spacing: 0.5px; line-height: 1; min-width: 160px; padding: 14px 24px; text-align: center; text-decoration: none; text-transform: uppercase; width: 100%; word-break: normal; border-radius: 4px; border: 0; transition: background-color 0.2s;     }    .tg-df-container .hawk-affiliate-link-deal-button:hover { background-color: #4a9109; text-decoration: none; }    .tg-df-container .hawk-lazy-image-deal-widget { display: block; height: auto; margin: auto; max-height: 160px; max-width: 100%; mix-blend-mode: multiply; object-fit: contain; }    .tg-df-container .hawk-deal-widget-text-cta-container a { color: #2563eb; text-decoration: none; display: inline; }    .tg-df-container .hawk-deal-widget-text-cta-container a:hover { text-decoration: underline; }    .tg-df-container .hawk-deal-widget-text-cta-container a:has(.hawk-deal-widget-title-product-title) { color: #111827; }    .tg-df-container .hawk-deal-widget-text-cta-container a:hover .hawk-deal-widget-title-product-title,    .tg-df-container .hawk-deal-widget-text-cta-container a:hover .hawk-deal-widget-title-retailer-price { text-decoration: underline; }  \x3C/style>  \x3C!-- Widget Container --\x3E  \x3Cdiv class="tg-df-container" id="signal-deals-finder-root">    \x3C!-- Editor Floating Bar --\x3E    \x3Cdiv class="tg-df-editor-bar" id="tg-df-editor-bar" style="display:none;">      \x3Cdiv class="tg-df-editor-bar-text" style="display: flex; align-items: center;">        \x3Cspan id="tg-df-selected-count">0\x3C/span>\x26nbsp;Deals Selected        \x3Cbutton class="tg-df-editor-clear-btn" id="tg-df-editor-clear" type="button" style="margin-left: 12px; font-size: 13px; color: #9ca3af; background: none; border: none; cursor: pointer; text-decoration: underline;">Clear All\x3C/button>      \x3C/div>      \x3Cbutton class="tg-df-editor-copy-btn" id="tg-df-editor-copy" type="button">        \x3Csvg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-right: 6px;">\x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2">\x3C/rect>\x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1">\x3C/path>\x3C/svg>        Copy to CMS      \x3C/button>    \x3C/div>    \x3Cdiv class="tg-df-carousel-host" id="tg-df-carousel-host" style="display: none;">      \x3Cdiv class="tg-df-carousel-eyebrow">DEAL FINDER\x3C/div>      \x3Cdiv class="tg-df-carousel-query-title" id="tg-df-carousel-title-label">Best Deals\x3C/div>            \x3Cdiv class="tg-df-carousel-blue-box">        \x3Cdiv class="tg-df-carousel-bg-circle-1" aria-hidden="true">\x26nbsp;\x3C/div>        \x3Cdiv class="tg-df-carousel-bg-circle-2" aria-hidden="true">\x26nbsp;\x3C/div>        \x3Cdiv class="tg-df-carousel-bg-circle-3" aria-hidden="true">\x26nbsp;\x3C/div>        \x3Cdiv class="tg-df-carousel-box-content">          \x3Cdiv class="tg-df-countdown-wrapper" id="tg-df-countdown-wrapper" style="display:none;">            \x3Cdiv class="tg-df-countdown-title" id="tg-df-countdown-title">Prime Day starts in\x3C/div>            \x3Cdiv class="tg-df-countdown-blocks">              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-days">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">DAYS\x3C/div>\x3C/div>              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-hrs">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">HRS\x3C/div>\x3C/div>              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-min">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">MIN\x3C/div>\x3C/div>              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-sec">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">SEC\x3C/div>\x3C/div>            \x3C/div>          \x3C/div>          \x3Cdiv class="tg-df-carousel-box-eyebrow">DEAL FINDER\x3C/div>          \x3Cdiv class="tg-df-carousel-box-title">Find Deals Fast\x3C/div>          \x3Cdiv class="tg-df-carousel-box-subtitle">The latest deals from the biggest retailers, all in one place\x3C/div>                    \x3Cdiv class="tg-df-carousel-roundels-wrapper">          \x3Cbutton class="tg-df-carousel-scroll-left" type="button" aria-label="Scroll left" style="display:none;" onclick="this.parentElement.querySelector('.tg-df-carousel-roundels').scrollBy({left: -200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m15 18-6-6 6-6">\x3C/path>\x3C/svg>\x3C/button>          \x3Cdiv class="tg-df-carousel-roundels">            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>          \x3C/div>          \x3Cbutton class="tg-df-carousel-scroll-right" type="button" aria-label="Scroll right" onclick="this.parentElement.querySelector('.tg-df-carousel-roundels').scrollBy({left: 200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m9 18 6-6-6-6">\x3C/path>\x3C/svg>\x3C/button>        \x3C/div>        \x3Cdiv class="tg-df-carousel-filters-outer" style="position: relative;">          \x3Cbutton class="tg-df-carousel-scroll-left" type="button" aria-label="Scroll left" style="display:none;" onclick="this.parentElement.querySelector('.tg-df-carousel-filters-wrap').scrollBy({left: -200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m15 18-6-6 6-6">\x3C/path>\x3C/svg>\x3C/button>          \x3Cdiv class="tg-df-carousel-filters-wrap">                      \x3Cbutton class="tg-df-carousel-filter-btn" data-d="0">All\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-ot="amazon_lightning">              \x3Cimg src="https://cdn.mos.cms.futurecdn.net/HqAui7w97ft2NPqBtQ5r38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/yWPQ5yyQRhUwVKzGwYbh38-600-100.png" class="active-img" alt="" /> Lightning deals\x3C/button>            \x3Cbutton class="tg-df-carousel-filter-btn" data-ot="amazon_prime">              \x3Cimg src="https://cdn.mos.cms.futurecdn.net/fwoVXvL79turN3Ph535m38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/u75QjVpt3w2EsMimJiRo38-600-100.png" class="active-img" alt="" /> Prime deals\x3C/button>            \x3Cbutton class="tg-df-carousel-filter-btn" data-d="10">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>            Min 10% off\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-d="15">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>            Min 15% off\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-d="25">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>            Min 25% off\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-pr="under50">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-badge-dollar-sign">\x3Cpath d="M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z">\x3C/path>\x3Cpath d="M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8">\x3C/path>\x3Cpath d="M12 18V6">\x3C/path>\x3C/svg>            Under $50\x3C/button>        \x3C/div>        \x3Cbutton class="tg-df-carousel-scroll-right" type="button" aria-label="Scroll right" style="display:none;" onclick="this.parentElement.querySelector('.tg-df-carousel-filters-wrap').scrollBy({left: 200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m9 18 6-6-6-6">\x3C/path>\x3C/svg>\x3C/button>      \x3C/div>    \x3C/div>    \x3C/div>      \x3C!-- Search & Filter Controls --\x3E    \x3Cdiv class="tg-df-controls" id="tg-df-controls" style="display:flex;">      \x3Cdiv class="tg-df-top-bar">        \x3Cdiv class="tg-df-search-wrapper">          \x3Cinput type="text" class="tg-df-search-input" placeholder="Search for deals, products, or brands...">          \x3Cbutton type="button" class="tg-df-search-btn" aria-label="Search">              \x3Csvg class="tg-df-search-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">                \x3Cpath d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/>              \x3C/svg>          \x3C/button>          \x3Cdiv class="tg-df-autocomplete-dropdown" id="tg-df-autocomplete">\x3C/div>        \x3C/div>                \x3Cdiv class="tg-df-settings-wrapper">          \x3Cbutton type="button" class="tg-df-settings-btn" aria-label="Settings" id="tg-df-settings-toggle">            \x3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="20" height="20">                \x3Cpath d="M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.06-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.73 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.06.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .43-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.49-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z"/>            \x3C/svg>          \x3C/button>          \x3Cdiv class="tg-df-settings-dropdown-backdrop" id="tg-df-settings-backdrop">\x3C/div>          \x3Cdiv class="tg-df-settings-dropdown" id="tg-df-settings-panel">            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Search Region\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-region-select">                \x3Coption value="auto">🌍 Auto-detect\x3C/option>                \x3Coption value="US">🇺🇸 United States (US)\x3C/option>                \x3Coption value="GB">🇬🇧 United Kingdom (UK)\x3C/option>                \x3Coption value="CA">🇨🇦 Canada (CA)\x3C/option>                \x3Coption value="AU">🇦🇺 Australia (AU)\x3C/option>                \x3Coption value="DE">🇩🇪 Germany (DE)\x3C/option>                \x3Coption value="FR">🇫🇷 France (FR)\x3C/option>                \x3Coption value="IT">🇮🇹 Italy (IT)\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Retailer\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-retailer-select">                \x3Coption value="">All Retailers\x3C/option>                \x3Coption value="Amazon">Amazon\x3C/option>                \x3Coption value="Walmart">Walmart\x3C/option>                \x3Coption value="Best Buy">Best Buy\x3C/option>                \x3Coption value="Target">Target\x3C/option>                \x3Coption value="John Lewis">John Lewis\x3C/option>                \x3Coption value="Currys">Currys\x3C/option>                \x3Coption value="Argos">Argos\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Offer Type\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-offer-type-select">                \x3Coption value="">All Offers\x3C/option>                \x3Coption value="amazon_prime">Amazon Prime\x3C/option>                \x3Coption value="recommended_promo">Recommended Promo\x3C/option>                \x3Coption value="amazon_lightning">Amazon Lightning Deal\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Result Count\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-rows-select">                \x3Coption value="3">3 Items\x3C/option>                \x3Coption value="4">4 Items\x3C/option>                \x3Coption value="6">6 Items\x3C/option>                \x3Coption value="12" selected>12 Items\x3C/option>                \x3Coption value="24">24 Items\x3C/option>                \x3Coption value="48">48 Items\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item tg-df-dl-row">              \x3Cdiv>                \x3Cspan class="tg-df-dl-row-text">Deal Mode\x3C/span>                \x3Cspan class="tg-df-dl-row-subtext">Only show products with active offers or previous prices (was_price)\x3C/span>              \x3C/div>              \x3Clabel class="tg-df-toggle">                \x3Cinput type="checkbox" id="tg-df-deal-mode">                \x3Cspan class="tg-df-slider">\x3C/span>              \x3C/label>            \x3C/div>            \x3Cdiv class="tg-df-setting-item tg-df-dl-row">              \x3Cdiv>                \x3Cspan class="tg-df-dl-row-text">Editor Mode\x3C/span>                \x3Cspan class="tg-df-dl-row-subtext">Enable multi-select to copy deals to CMS\x3C/span>              \x3C/div>              \x3Clabel class="tg-df-toggle">                \x3Cinput type="checkbox" id="tg-df-editor-mode">                \x3Cspan class="tg-df-slider">\x3C/span>              \x3C/label>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">View Mode\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-view-mode-select">                \x3Coption value="auto">Auto Collection\x3C/option>                \x3Coption value="carousel">Carousel\x3C/option>                \x3Coption value="savings_squad">Savings Squad\x3C/option>                \x3Coption value="grid">Grid (Columns)\x3C/option>                \x3Coption value="row">Row (List)\x3C/option>              \x3C/select>            \x3C/div>          \x3C/div>        \x3C/div>      \x3C/div>      \x3Cdiv class="tg-df-filters">        \x3Cdiv class="tg-df-sort-wrapper" id="tg-df-category-filter-wrapper" style="display: none;">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z"/>          \x3C/svg>          \x3Cselect class="tg-df-filter-select" id="tg-df-category-filter" aria-label="Category">            \x3Coption value="all">All Categories\x3C/option>          \x3C/select>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper tg-df-multiselect-container" id="tg-df-brand-filter-wrapper" style="display:none;">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M4.25 5.61C6.27 8.2 10 13 10 13v6c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-6s3.72-4.8 5.74-7.39A.998.998 0 0 0 18.95 4H5.04c-.83 0-1.3.95-.79 1.61z"/>          \x3C/svg>          \x3Cdiv class="tg-df-filter-select tg-df-multiselect-trigger" id="tg-df-brand-trigger" tabindex="0">            Any Brand          \x3C/div>          \x3Cdiv class="tg-df-multiselect-dropdown" id="tg-df-brand-dropdown">            \x3C!-- Populated via script --\x3E          \x3C/div>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M9 3L5 6.99h3V14h2V6.99h3L9 3zm7 14.01V10h-2v7.01h-3L15 21l4-3.99h-3z"/>          \x3C/svg>          \x3Cselect class="tg-df-sort-select" aria-label="Sort Deals">            \x3Coption value="date_desc">Newest First\x3C/option>            \x3Coption value="best_match">Sort by: Match\x3C/option>            \x3Coption value="price_asc">Price Low to High\x3C/option>            \x3Coption value="price_desc">Price High to Low\x3C/option>            \x3Coption value="discount_desc">Biggest Discount\x3C/option>          \x3C/select>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper tg-df-price-range-wrapper" id="tg-df-custom-price-wrapper" style="display: flex; align-items:center; justify-content:center; padding: 10px 20px; gap: 8px; border: 1px solid var(--tg-df-border); border-radius: 100px; background-color: var(--tg-df-bg);">          \x3Cspan style="font-size:14px; font-weight:500; color:var(--tg-df-text-primary);">Price\x3C/span>          \x3Cinput type="number" class="tg-df-price-input" id="tg-df-custom-price-min" placeholder="Min" style="width: 48px; background: transparent; border: none; color: var(--tg-df-text-primary); outline: none; font-size: 14px; text-align: center; padding: 0;">          \x3Cspan style="color:var(--tg-df-text-muted)">-\x3C/span>          \x3Cinput type="number" class="tg-df-price-input" id="tg-df-custom-price-max" placeholder="Max" style="width: 48px; background: transparent; border: none; color: var(--tg-df-text-primary); outline: none; font-size: 14px; text-align: center; padding: 0;">        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper" id="tg-df-legacy-price-wrapper">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"/>          \x3C/svg>          \x3Cselect class="tg-df-filter-select" id="tg-df-price-filter" aria-label="Filter Prices">            \x3Coption value="all">All Prices\x3C/option>            \x3Coption value="under50">Under $50\x3C/option>            \x3Coption value="50_100">$50 - $100\x3C/option>            \x3Coption value="100_200">$100 - $200\x3C/option>            \x3Coption value="200_500">$200 - $500\x3C/option>            \x3Coption value="over500">Over $500\x3C/option>          \x3C/select>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper" id="tg-df-discount-filter-wrapper">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">            \x3Cpath d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"/>          \x3C/svg>          \x3Cselect class="tg-df-filter-select" id="tg-df-discount-filter" aria-label="Discount Amount">            \x3Coption value="all">Any discount\x3C/option>            \x3Coption value="5">Min 5%\x3C/option>            \x3Coption value="10">Min 10%\x3C/option>            \x3Coption value="15">Min 15%\x3C/option>            \x3Coption value="20">Min 20%\x3C/option>            \x3Coption value="25">Min 25%\x3C/option>            \x3Coption value="30">Min 30%\x3C/option>            \x3Coption value="40">Min 40%\x3C/option>            \x3Coption value="50">Min 50%\x3C/option>            \x3Coption value="60">Min 60%\x3C/option>            \x3Coption value="70">Min 70%\x3C/option>          \x3C/select>        \x3C/div>      \x3C/div>    \x3C/div>    \x3C!-- Deals Grid Wrapper --\x3E    \x3Cdiv class="tg-df-grid-wrapper tg-df-carousel-cards-wrapper" id="tg-df-grid-wrapper">      \x3Cbutton class="tg-df-carousel-scroll-left" type="button" aria-label="Scroll left" style="display:none;" onclick="this.parentElement.querySelector('#tg-df-grid').scrollBy({left: -200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m15 18-6-6 6-6">\x3C/path>\x3C/svg>\x3C/button>      \x3Cdiv class="tg-df-grid" id="tg-df-grid">        \x3C!-- Content populated by JavaScript --\x3E      \x3C/div>      \x3Cbutton class="tg-df-carousel-scroll-right" type="button" aria-label="Scroll right" style="display:none;" onclick="this.parentElement.querySelector('#tg-df-grid').scrollBy({left: 200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m9 18 6-6-6-6">\x3C/path>\x3C/svg>\x3C/button>    \x3C/div>        \x3C!-- Vouchers Modal --\x3E    \x3Cdiv class="tg-df-modal-backdrop" id="tg-df-vouchers-modal">      \x3Cdiv class="tg-df-modal">        \x3Cdiv class="tg-df-modal-header">          \x3Ch3 class="tg-df-modal-title" id="tg-df-vouchers-title">Available Coupons & Deals\x3C/h3>          \x3Cbutton class="tg-df-modal-close" id="tg-df-vouchers-close">            \x3Csvg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">              \x3Cline x1="18" y1="6" x2="6" y2="18">\x3C/line>              \x3Cline x1="6" y1="6" x2="18" y2="18">\x3C/line>            \x3C/svg>          \x3C/button>        \x3C/div>        \x3Cdiv class="tg-df-modal-body" id="tg-df-vouchers-content">          \x3C!-- Vouchers injected here --\x3E        \x3C/div>      \x3C/div>    \x3C/div>  \x3C/div>`;      if (!template) {        template = document.createElement('template');        template.innerHTML = rawTemplate;      }      let shadowRoot = null;      if (hostContainer && template) {        hostContainer.setAttribute('data-initialized', 'true');        shadowRoot = hostContainer.attachShadow({ mode: 'open' });        shadowRoot.appendChild(template.content.cloneNode(true));      }      class DealsFinderWidget {        constructor(config) {          this.rootNode = config.rootNode || document;          this.hostContainer = config.hostContainer || null;          this.rootId = config.rootId || 'signal-deals-finder-root';          this.root = this.rootNode.querySelector('#' + this.rootId);          if (!this.root) return;          this.widgetId = (window.crypto && window.crypto.randomUUID) ? window.crypto.randomUUID() : 'widget-' + Date.now() + '-' + Math.random().toString(36).slice(2);          this.grid = this.root.querySelector('#tg-df-grid');          this.tagsContainer = this.root.querySelector('#tg-df-tags-container');          this.categoryFilter = this.root.querySelector('#tg-df-category-filter');          this.categoryFilterWrapper = this.root.querySelector('#tg-df-category-filter-wrapper');          this.searchInput = this.root.querySelector('.tg-df-search-input');          this.autocompleteDropdown = this.root.querySelector('#tg-df-autocomplete');          this.sortSelect = this.root.querySelector('.tg-df-sort-select');          this.searchBtn = this.root.querySelector('.tg-df-search-btn');                    this.settingsToggle = this.root.querySelector('#tg-df-settings-toggle');          this.settingsPanel = this.root.querySelector('#tg-df-settings-panel');          this.settingsBackdrop = this.root.querySelector('#tg-df-settings-backdrop');          this.regionSelect = this.root.querySelector('#tg-df-region-select');          this.retailerSelect = this.root.querySelector('#tg-df-retailer-select');          this.offerTypeSelect = this.root.querySelector('#tg-df-offer-type-select');          this.viewModeSelect = this.root.querySelector('#tg-df-view-mode-select');          this.rowsSelect = this.root.querySelector('#tg-df-rows-select');          this.dealModeToggle = this.root.querySelector('#tg-df-deal-mode');          this.editorModeToggle = this.root.querySelector('#tg-df-editor-mode');          this.priceFilter = this.root.querySelector('#tg-df-price-filter');          this.discountFilter = this.root.querySelector('#tg-df-discount-filter');                    this.editorBar = this.root.querySelector('#tg-df-editor-bar');          this.editorSelectedCount = this.root.querySelector('#tg-df-selected-count');          this.editorCopyBtn = this.root.querySelector('#tg-df-editor-copy');          this.editorClearBtn = this.root.querySelector('#tg-df-editor-clear');                    this.apiUrl = 'https://search-api.fie.future.net.uk/widget.php';          this.deals = [];          this.displayLimit = 12;          this.airedaleArticles = null;          this.airedaleTags = [];          this.airedaleTagCounts = {};          this.activeDealTag = null;          this.selectedBrands = [];          this.currentQuery = '';          this.editorMode = this.hostContainer ? this.hostContainer.hasAttribute('data-editor-mode') : false;          this.viewModeOverride = this.hostContainer ? this.hostContainer.getAttribute('data-view-mode') : null;          this.selectedDeals = new Map();                    this.brandFilterWrapper = this.root.querySelector('#tg-df-brand-filter-wrapper');          this.brandTrigger = this.root.querySelector('#tg-df-brand-trigger');          this.brandDropdown = this.root.querySelector('#tg-df-brand-dropdown');                    this.customPriceWrapper = this.root.querySelector('#tg-df-custom-price-wrapper');          this.customPriceMin = this.root.querySelector('#tg-df-custom-price-min');          this.customPriceMax = this.root.querySelector('#tg-df-custom-price-max');          this.legacyPriceWrapper = this.root.querySelector('#tg-df-legacy-price-wrapper');          this.discountFilterWrapper = this.root.querySelector('#tg-df-discount-filter-wrapper');          this.initResizeObserver();          this.init();            if (['carousel', 'carousel-compact', 'auto', 'grid', 'row'].includes(this.getViewMode())) { this.loadCarouselSpreadsheet(); }        }        getViewMode() {          if (this.viewModeOverride && (!this.editorMode || !this.viewModeSelect)) {            return this.viewModeOverride;          }          return (this.viewModeSelect && this.viewModeSelect.value) ? this.viewModeSelect.value : (this.viewModeOverride || 'auto');        }        applyLayoutMode() {          if (!this.grid) return;          const mode = this.getViewMode();          this.grid.classList.remove('layout-row', 'layout-grid', 'tg-df-grid-auto', 'carousel-compact', 'layout-replica-1', 'layout-replica-2');                    const carouselHost = this.root.querySelector('#tg-df-carousel-host');          const controlsDiv = this.root.querySelector('#tg-df-controls');          if (mode === 'carousel' || mode === 'auto' || mode === 'grid' || mode === 'row') {             if (mode === 'carousel') this.grid.classList.add('carousel-compact');             if (carouselHost) carouselHost.style.display = 'block';             if (controlsDiv) controlsDiv.style.display = 'none';             if (this.root.classList.contains('tg-df-container') && mode === 'carousel') {               this.root.classList.add('is-carousel');             } else if (this.root.classList.contains('tg-df-container')) {               this.root.classList.remove('is-carousel');             }          } else {             if (carouselHost) carouselHost.style.display = 'none';             if (controlsDiv) controlsDiv.style.display = 'flex';             if (this.root.classList.contains('tg-df-container')) {               this.root.classList.remove('is-carousel');             }          }          if (mode === 'grid') {            this.grid.classList.add('layout-grid');          } else if (mode === 'row') {            this.grid.classList.add('layout-row');          } else if (mode === 'savings_squad') {            this.grid.classList.add('tg-df-grid-auto', 'savings-squad-cards');          } else if (mode !== 'carousel') {            this.grid.classList.add('tg-df-grid-auto');          }                    const settingsWrapper = this.root.querySelector('.tg-df-settings-wrapper');          if (settingsWrapper) {            settingsWrapper.style.display = mode === 'auto' ? 'none' : 'block';          }          if (this.customPriceWrapper) {             this.customPriceWrapper.style.display = mode === 'auto' ? 'flex' : 'none';          }          if (this.legacyPriceWrapper) {             this.legacyPriceWrapper.style.display = mode === 'auto' ? 'none' : 'flex';          }          if (this.discountFilterWrapper) {             this.discountFilterWrapper.style.display = mode === 'auto' ? 'none' : 'flex';          }        }        initResizeObserver() {          try {            if (window.parent === window) return;          } catch (e) {            // cross origin frame check threw          }          const emitHeight = () => {            try {              const height = document.documentElement.scrollHeight || document.body.scrollHeight;              const msg = { type: 'embed-size', height: height };              if (window.parent && window.parent !== window) {                window.parent.postMessage(msg, '*');                window.parent.postMessage(JSON.stringify({ ...msg, sentinel: 'amp' }), '*');              }            } catch (e) {}          };                    if (window.ResizeObserver) {            try {              const ro = new ResizeObserver(() => emitHeight());              ro.observe(document.body);              if (this.root) ro.observe(this.root);            } catch(e){ console.warn(e); }          }          window.addEventListener('resize', emitHeight);          setTimeout(emitHeight, 300);        }        initCountdown() {          this.cdWrapper = this.root.querySelector('#tg-df-countdown-wrapper');                    let searchSource = window.location.search;          if (this.hostContainer && this.hostContainer.hasAttribute('data-widget-config')) {            searchSource = this.hostContainer.getAttribute('data-widget-config');          } else if (typeof window !== 'undefined' && window.__WIDGET_CONFIG__) {            searchSource = window.__WIDGET_CONFIG__;          }          const params = new URLSearchParams(searchSource);          this.showCountdown = params.get('show_countdown') === 'true';          const showHeaderDetails = params.get('show_header_details') !== 'false';          const eyebrow = this.root.querySelector('.tg-df-carousel-box-eyebrow');          const title = this.root.querySelector('.tg-df-carousel-box-title');          const subtitle = this.root.querySelector('.tg-df-carousel-box-subtitle');          if (!showHeaderDetails) {            let containerElement = this.root.classList.contains('tg-df-container') ? this.root : this.root.querySelector('.tg-df-container');            if (containerElement) containerElement.classList.add('hide-header-details');            if (eyebrow) eyebrow.style.display = 'none';            if (title) title.style.display = 'none';            if (subtitle) subtitle.style.display = 'none';          }          if (!this.cdWrapper) return;          this.cdTitle = this.root.querySelector('#tg-df-countdown-title');          this.cdDays = this.root.querySelector('#tg-df-cd-days');          this.cdHrs = this.root.querySelector('#tg-df-cd-hrs');          this.cdMin = this.root.querySelector('#tg-df-cd-min');          this.cdSec = this.root.querySelector('#tg-df-cd-sec');          this.updateCountdown();          this.cdInterval = setInterval(() => this.updateCountdown(), 1000);        }        updateCountdown() {          if (!this.cdWrapper) return;          if (!this.showCountdown) {            this.cdWrapper.style.display = 'none';            return;          }          const area = this.getAreaCode();          let offset = '-04:00';          if (['DE', 'FR', 'IT', 'ES', 'NL'].includes(area)) {             offset = '+02:00';          } else if (['GB', 'IE', 'UK'].includes(area)) {             offset = '+01:00';          }          const startTime = new Date('2026-06-23T00:00:00' + offset).getTime();          const endTime = new Date('2026-06-26T00:00:00' + offset).getTime();          const now = Date.now();          let targetTime = 0;          if (now < startTime) {             targetTime = startTime;             if (this.cdTitle) this.cdTitle.textContent = 'Prime Day starts in';             this.cdWrapper.style.display = 'flex';          } else if (now < endTime) {             targetTime = endTime;             if (this.cdTitle) this.cdTitle.textContent = 'Prime Day ends in';             this.cdWrapper.style.display = 'flex';          } else {             this.cdWrapper.style.display = 'none';             if (this.cdInterval) clearInterval(this.cdInterval);             return;          }          const diff = Math.max(0, targetTime - now);          const d = Math.floor(diff / (1000 * 60 * 60 * 24));          const h = Math.floor((diff / (1000 * 60 * 60)) % 24);          const m = Math.floor((diff / 1000 / 60) % 60);          const s = Math.floor((diff / 1000) % 60);          if (this.cdDays) this.cdDays.textContent = d;          if (this.cdHrs) this.cdHrs.textContent = h;          if (this.cdMin) this.cdMin.textContent = m;          if (this.cdSec) this.cdSec.textContent = s;        }        init() {          this.initCountdown();          try {            initAnalytics();          } catch (e) {            console.warn('Deals Widget Analytics Error:', e);          }                    this.bindEvents();                    let initialQuery = '';                    let searchSource = window.location.search;          if (this.hostContainer && this.hostContainer.hasAttribute('data-widget-config')) {            searchSource = this.hostContainer.getAttribute('data-widget-config');          } else if (typeof window !== 'undefined' && window.__WIDGET_CONFIG__) {            searchSource = window.__WIDGET_CONFIG__;          }          const params = new URLSearchParams(searchSource);          let initialViewMode = params.get('view_mode');          if (!params.has('search') && !params.has('q') && !params.has('query') && initialViewMode !== 'savings_squad') {             initialQuery = 'Everything';             if (this.discountFilter && !params.has('min_discount_ratio')) {               this.discountFilter.value = '5';             }          }          const website = params.get('website') || 'tomsguide';          this.website = website;          if (website === 'techradar') {            const squadHeader = this.root.querySelector('.tg-df-savings-squad-header');            if (squadHeader) {               const pic = squadHeader.querySelector('picture');               if (pic) pic.style.display = 'none';            }            const style = document.createElement('style');            style.innerHTML = `              .tg-df-container .hawk-affiliate-link-deal-button, .tg-df-container .tg-df-card-cta { background-color: #5DAF08 !important; }              .tg-df-container .hawk-affiliate-link-deal-button:hover, .tg-df-container .tg-df-card-cta:hover { background-color: #4a8c06 !important; }            `;            this.root.appendChild(style);          }                    if (this.regionSelect) {            this.regionSelect.value = params.get('region') || 'auto';            this.updatePriceDropdownCurrency();          }                    if (this.retailerSelect && params.has('retailer')) {            this.retailerSelect.value = params.get('retailer');          }                    if (params.has('brands')) {            const b = params.get('brands');            if (b) {              this.selectedBrands = b.split(',');            }          }                    if (this.offerTypeSelect && params.has('offer_type')) {            this.offerTypeSelect.value = params.get('offer_type');          }          if (params.has('bg_color')) {            const bg = params.get('bg_color');            if (bg === 'white') {              this.root.style.setProperty('background-color', '#ffffff', 'important');            } else if (bg === 'transparent') {              this.root.style.setProperty('background-color', 'transparent', 'important');            } else if (bg === 'light_blue') {              this.root.style.setProperty('background-color', '#E7F0FF', 'important');            }          } else {             this.root.style.removeProperty('background-color');          }                    if (params.has('view_mode')) {            if (this.viewModeSelect) {              this.viewModeSelect.value = params.get('view_mode');            } else {              this.viewModeOverride = params.get('view_mode');            }          }          if (this.rowsSelect && params.has('rows')) {            this.rowsSelect.value = params.get('rows');          }          if (params.has('price')) {            const priceVal = params.get('price');            if (this.priceFilter) {               // Try assigning it directly to select. If it's not present implicitly ignores               this.priceFilter.value = priceVal;            }            if (priceVal.includes('_')) {               const parts = priceVal.split('_');               if (this.customPriceMin && parts[0]) this.customPriceMin.value = parts[0];               if (this.customPriceMax && parts[1]) this.customPriceMax.value = parts[1];            }          }          if (this.discountFilter && params.has('min_discount_ratio')) {            // Need to convert back from ratio (e.g. 0.8) to select value (e.g. "20")            const ratioStr = params.get('min_discount_ratio');            const ratioFloat = parseFloat(ratioStr);            if (!isNaN(ratioFloat)) {               const percentage = Math.round((1 - ratioFloat) * 100);               this.discountFilter.value = percentage.toString();            }          }          if (this.sortSelect) {            this.sortSelect.value = params.get('sort') || 'discount_desc';          }          if (this.dealModeToggle && params.has('deal_mode')) {            this.dealModeToggle.checked = params.get('deal_mode') === 'true' || params.get('deal_mode') === '1';          }                    // Re-apply layout after params have updated control values          this.applyLayoutMode();                    if (params.get('search')) {            initialQuery = params.get('search');          } else if (params.get('q')) {            initialQuery = params.get('q');          } else if (params.get('query')) {            initialQuery = params.get('query');          }                    this.currentQuery = initialQuery;          if (this.searchInput) {            this.searchInput.value = this.currentQuery;          }                    if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {            this.fetchDeals(this.currentQuery);          } else {            this.render();          }        }        updatePriceDropdownCurrency() {          if (!this.priceFilter || !this.regionSelect) return;          const currencySymbols = {            'US': '$',            'GB': '£',            'CA': '$CA',            'AU': '$AU',            'DE': '€',            'FR': '€',            'IT': '€',          };          const area = this.getAreaCode();          const cur = currencySymbols[area || 'US'] || '$';                    const options = this.priceFilter.options;          for (let i = 0; i < options.length; i++) {            const opt = options[i];            if (opt.value === 'all') {              opt.innerText = 'All Prices';            } else if (opt.value === 'under50') {              opt.innerText = `Under ${cur}50`;            } else if (opt.value === '50_100') {              opt.innerText = `${cur}50 - ${cur}100`;            } else if (opt.value === '100_200') {              opt.innerText = `${cur}100 - ${cur}200`;            } else if (opt.value === '200_500') {              opt.innerText = `${cur}200 - ${cur}500`;            } else if (opt.value === 'over500') {              opt.innerText = `Over ${cur}500`;            }          }        }        populateBrandDropdown(values) {          if (!this.brandDropdown || !this.brandFilterWrapper) return;          this.brandFilterWrapper.style.display = 'flex'; // show the wrapper                    let html = '';          const allChecked = this.selectedBrands.length === 0 ? 'checked' : '';          const _div = '<' + '/div>';          const _span = '<' + '/span>';          html += `\x3Cdiv class="tg-df-ms-option">\x3Cinput type="checkbox" value="" ${allChecked} class="tg-df-brand-chk"> Any Brand${_div}`;                    values.forEach(v => {             if (!v.formatted_value || v.formatted_value === 'Any Brand') return;             const isChecked = this.selectedBrands.includes(v.formatted_value) ? 'checked' : '';             html += `\x3Cdiv class="tg-df-ms-option">\x3Cinput type="checkbox" value="${this.escapeHTML(v.formatted_value)}" ${isChecked} class="tg-df-brand-chk"> ${this.escapeHTML(v.formatted_value)} \x3Cspan style="color:var(--tg-df-text-muted);font-size:12px">(${v.count || 0})${_span}${_div}`;          });                    this.brandDropdown.innerHTML = html;                    // Re-bind listeners          const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');          chks.forEach(chk => {            chk.addEventListener('change', (e) => {              const val = e.target.value;              if (val === '') {                this.selectedBrands = [];              } else {                if (e.target.checked) {                   if (!this.selectedBrands.includes(val)) this.selectedBrands.push(val);                } else {                   this.selectedBrands = this.selectedBrands.filter(b => b !== val);                }              }                            if (this.selectedBrands.length === 0) {                 this.brandTrigger.innerText = 'Any Brand';              } else if (this.selectedBrands.length === 1) {                 this.brandTrigger.innerText = this.selectedBrands[0];              } else {                 this.brandTrigger.innerText = `${this.selectedBrands.length} Brands selected`;              }                            // Only call API if changed from UI interactions              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                 this.updateURLParams();                 this.fetchDeals(this.currentQuery);              }            });          });                    // Update button text on load          if (this.selectedBrands.length === 0) {             this.brandTrigger.innerText = 'Any Brand';          } else if (this.selectedBrands.length === 1) {             this.brandTrigger.innerText = this.selectedBrands[0];          } else {             this.brandTrigger.innerText = `${this.selectedBrands.length} Brands selected`;          }        }        updateURLParams() {          const url = new URL(window.location);          if (this.currentQuery && this.currentQuery !== 'Gaming laptops') {            url.searchParams.set('q', this.currentQuery);          } else {            url.searchParams.delete('q');            url.searchParams.delete('search');            url.searchParams.delete('query');          }                    if (this.regionSelect && this.regionSelect.value !== 'auto') {            url.searchParams.set('region', this.regionSelect.value);          } else {            url.searchParams.delete('region');          }                    if (this.retailerSelect && this.retailerSelect.value) {            url.searchParams.set('retailer', this.retailerSelect.value);          } else {            url.searchParams.delete('retailer');          }                    if (this.selectedBrands && this.selectedBrands.length > 0) {            url.searchParams.set('brands', this.selectedBrands.join(','));          } else {            url.searchParams.delete('brands');          }                    if (this.offerTypeSelect && this.offerTypeSelect.value) {            url.searchParams.set('offer_type', this.offerTypeSelect.value);          } else {            url.searchParams.delete('offer_type');          }                    if (this.viewModeSelect && this.viewModeSelect.value !== 'auto') {            url.searchParams.set('view_mode', this.viewModeSelect.value);          } else {            url.searchParams.delete('view_mode');          }                    if (this.rowsSelect && this.rowsSelect.value !== '12') {            url.searchParams.set('rows', this.rowsSelect.value);          } else {            url.searchParams.delete('rows');          }                    const min = this.customPriceMin ? this.customPriceMin.value : '';          const max = this.customPriceMax ? this.customPriceMax.value : '';          if (min || max) {             url.searchParams.set('price', `${min}_${max}`);          } else if (this.priceFilter && this.priceFilter.value !== 'all') {            url.searchParams.set('price', this.priceFilter.value);          } else {            url.searchParams.delete('price');          }                    if (this.discountFilter && this.discountFilter.value !== 'all' && this.discountFilter.value !== '0') {            const v = parseInt(this.discountFilter.value);            if (!isNaN(v) && v > 0) {               const ratio = (100 - v) / 100;               url.searchParams.set('min_discount_ratio', ratio.toString());            }          } else {            url.searchParams.delete('min_discount_ratio');          }                    if (this.sortSelect && this.sortSelect.value !== 'discount_desc') {            url.searchParams.set('sort', this.sortSelect.value);          } else {            url.searchParams.delete('sort');          }                    if (this.dealModeToggle && this.dealModeToggle.checked) {            url.searchParams.set('deal_mode', 'true');          } else {            url.searchParams.delete('deal_mode');          }                    window.history.replaceState({}, '', url);        }        bindEvents() {          const roundels = this.root.querySelectorAll('.tg-df-carousel-cat.original-hardcoded');          roundels.forEach(r => {             r.addEventListener('click', () => {                const q = r.getAttribute('data-query');                const pr = r.getAttribute('data-pr');                if (typeof trackHawkEvent !== 'undefined') {                     trackHawkEvent({                         clickType: "CC",                         widgetId: this.widgetId,                         productCategoryName: "deals",                         zeroBasedProductIndexOrNull: null,                         totalDealsOrProducts: null,                         areaClicked: "Category Roundel",                         revenueId: this.revenueId,                         isoCurrencyCode: typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD',                         queryName: q,                         widgetTypeName: this.widgetTypeName                     });                 }                this.currentQuery = q;                const label = this.root.querySelector('#tg-df-carousel-title-label');                if (label) label.textContent = 'Best ' + q;                if (this.priceFilter) this.priceFilter.value = pr || 'all';                if (this.discountFilter) this.discountFilter.value = '5';                if (this.searchInput) this.searchInput.value = q;                                roundels.forEach(ro => ro.classList.remove('active'));                r.classList.add('active');                this.fetchDeals(this.currentQuery);             });          });          const discBtns = this.root.querySelectorAll('.tg-df-carousel-filter-btn');          discBtns.forEach(b => {             b.addEventListener('click', () => {                const d = b.getAttribute('data-d');                const pr = b.getAttribute('data-pr');                const ot = b.getAttribute('data-ot');                let label = b.innerText ? b.innerText.trim() : '';                let filterType = 'unknown';                let filterVal = 'unknown';                if (d !== null) { filterType = 'discount'; filterVal = d; }                else if (pr !== null) { filterType = 'price'; filterVal = pr; }                else if (ot !== null) { filterType = 'offertype'; filterVal = ot; }                if (typeof trackElementInteraction === 'function') trackElementInteraction({ id: `filter-${filterType}-${filterVal}`, name: 'Filter Button', label: label });                                if (d !== null) {                   if (this.discountFilter) this.discountFilter.value = this.discountFilter.value === d ? '0' : d;                } else if (pr !== null) {                   if (this.priceFilter) this.priceFilter.value = this.priceFilter.value === pr ? 'all' : pr;                } else if (ot !== null) {                   if (this.offerTypeSelect) this.offerTypeSelect.value = this.offerTypeSelect.value === ot ? 'all' : ot;                } else {                   if (this.discountFilter) this.discountFilter.value = '0';                   if (this.priceFilter) this.priceFilter.value = 'all';                   if (this.offerTypeSelect) this.offerTypeSelect.value = 'all';                }                if (d === null && pr === null && ot === null && b.getAttribute("data-type") !== "custom") {                   discBtns.forEach(ro => ro.classList.remove('active'));                   b.classList.add('active');                } else if (b.getAttribute("data-type") !== "custom") {                   // Only operate on hardcoded buttons (those without data-type)                   discBtns.forEach(ro => {                      if (!ro.getAttribute('data-d') && !ro.getAttribute('data-pr') && !ro.getAttribute('data-ot') && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active');                   });                                      let makeActive = true;                   if (d !== null) {                       if (b.classList.contains('active')) makeActive = false;                       discBtns.forEach(ro => { if (ro.getAttribute('data-d') !== null && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active') });                   } else if (pr !== null) {                       if (b.classList.contains('active')) makeActive = false;                       discBtns.forEach(ro => { if (ro.getAttribute('data-pr') !== null && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active') });                   } else if (ot !== null) {                       if (b.classList.contains('active')) makeActive = false;                       discBtns.forEach(ro => { if (ro.getAttribute('data-ot') !== null && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active') });                   }                                      if (makeActive) b.classList.add('active');                                      // Check if anything is active, if not activate "All"                   let anyActive = false;                   discBtns.forEach(ro => { if (ro.classList.contains('active') && ro.getAttribute('data-type') !== 'custom') anyActive = true; });                   if (!anyActive) {                       discBtns.forEach(ro => { if (!ro.getAttribute('data-d') && !ro.getAttribute('data-pr') && !ro.getAttribute('data-ot') && ro.getAttribute('data-type') !== 'custom') ro.classList.add('active'); });                   }                }                                this.fetchDeals(this.currentQuery);             });          });          if (this.brandTrigger && this.brandDropdown) {            this.brandTrigger.addEventListener('click', () => {              this.brandDropdown.classList.toggle('active');            });            document.addEventListener('click', (e) => {              if (this.brandFilterWrapper && !e.composedPath().includes(this.brandFilterWrapper)) {                this.brandDropdown.classList.remove('active');              }            });          }          let debounceTimer;          if(this.searchInput) {            this.searchInput.addEventListener('input', (e) => {              clearTimeout(debounceTimer);              const query = e.target.value.trim();              this.currentQuery = query;              if (this.getViewMode() === 'savings_squad' && this.autocompleteDropdown && this.airedaleTags && query.length > 0) {                 const matches = this.airedaleTags.filter(t => t.toLowerCase().includes(query.toLowerCase()) && t.toLowerCase() !== query.toLowerCase()).slice(0, 5);                 if (matches.length > 0) {                    this.autocompleteDropdown.innerHTML = matches.map(m => `\x3Cdiv class="tg-df-autocomplete-item" data-tag="${this.escapeHTML(m)}">${this.escapeHTML(m)}<` + `/div>`).join('');                    this.autocompleteDropdown.classList.add('active');                 } else {                    this.autocompleteDropdown.classList.remove('active');                 }              } else if (this.autocompleteDropdown) {                 this.autocompleteDropdown.classList.remove('active');              }              debounceTimer = setTimeout(() => {                this.updateURLParams();                if (query.length > 2) {                  this.fetchDeals(query);                } else if (query.length === 0) {                  this.deals = [];                  this.render();                }              }, 400);            });            this.searchInput.addEventListener('keypress', (e) => {              if (e.key === 'Enter') {                if (this.autocompleteDropdown) this.autocompleteDropdown.classList.remove('active');                clearTimeout(debounceTimer);                const query = e.target.value.trim();                this.currentQuery = query;                this.activeDealTag = null;                trackElementInteraction({ id: 'search-submit', name: 'Ask', label: 'Ask (main search)', text: query });                this.updateURLParams();                if (query.length > 2 || (this.getViewMode() === 'savings_squad')) {                   this.fetchDeals(query);                }              }            });          }          if (this.autocompleteDropdown) {             this.autocompleteDropdown.addEventListener('click', (e) => {                const item = e.target.closest('.tg-df-autocomplete-item');                if (item) {                   const tag = item.getAttribute('data-tag');                   this.currentQuery = tag;                   if (this.searchInput) this.searchInput.value = tag;                   this.activeDealTag = tag;                   this.autocompleteDropdown.classList.remove('active');                   this.updateURLParams();                   this.fetchDeals(tag);                }             });             document.addEventListener('click', (e) => {               if (this.autocompleteDropdown && this.searchInput && !e.composedPath().includes(this.searchInput) && !e.composedPath().includes(this.autocompleteDropdown)) {                 this.autocompleteDropdown.classList.remove('active');               }             });          }          if (this.searchBtn) {            this.searchBtn.addEventListener('click', () => {              if (this.autocompleteDropdown) this.autocompleteDropdown.classList.remove('active');              clearTimeout(debounceTimer);              const query = this.searchInput.value.trim();              trackElementInteraction({ id: 'search-submit', name: 'Ask', label: 'Ask (main search)', text: query });              this.activeDealTag = null;              this.currentQuery = query;              this.updateURLParams();              if (query.length > 2 || (this.getViewMode() === 'savings_squad')) {                 this.fetchDeals(query);              }            });          }          if(this.sortSelect) this.sortSelect.addEventListener('change', () => {            trackElementInteraction({ id: `sort-option-${this.sortSelect.value}`, name: 'Sort', label: `Sort: ${this.sortSelect.options[this.sortSelect.selectedIndex].text}` });            this.updateURLParams();            if (this.deals.length > 0) {              this.sortData();              this.render();            }          });                    const priceFilter = this.root.querySelector('#tg-df-price-filter');          if (priceFilter) {            this.priceFilter = priceFilter;            this.priceFilter.addEventListener('change', () => {              trackElementInteraction({ id: `filter-price-${this.priceFilter.value}`, name: 'Price', label: this.priceFilter.options[this.priceFilter.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              } else {                this.render();              }            });          }          const updateCustomPrice = () => {             this.updateURLParams();             if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);             } else {                this.render();             }          };          if (this.customPriceMin) {             this.customPriceMin.addEventListener('change', updateCustomPrice);             this.customPriceMin.addEventListener('keypress', (e) => {                if (e.key === 'Enter') updateCustomPrice();             });          }          if (this.customPriceMax) {             this.customPriceMax.addEventListener('change', updateCustomPrice);             this.customPriceMax.addEventListener('keypress', (e) => {                if (e.key === 'Enter') updateCustomPrice();             });          }          const discountFilter = this.root.querySelector('#tg-df-discount-filter');          if (discountFilter) {            this.discountFilter = discountFilter;            this.discountFilter.addEventListener('change', () => {              trackElementInteraction({ id: `filter-discount-${this.discountFilter.value}`, name: 'Discount', label: this.discountFilter.options[this.discountFilter.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              } else {                this.render();              }            });          }          if (this.categoryFilter) {            this.categoryFilter.addEventListener('change', (e) => {               const val = e.target.value === 'all' ? null : e.target.value;               this.activeDealTag = val;               this.fetchSavingsSquad();            });          }                    if (this.settingsToggle) {            this.settingsToggle.addEventListener('click', () => {              const o = this.settingsPanel.classList.toggle('active');              this.settingsBackdrop.classList.toggle('active');              if (o) trackElementInteraction({ id: 'filter-open', name: 'Filters', label: 'Open filters' });            });          }                    if (this.settingsBackdrop) {            this.settingsBackdrop.addEventListener('click', () => {              this.settingsPanel.classList.remove('active');              this.settingsBackdrop.classList.remove('active');            });          }                    if (this.regionSelect) {            this.regionSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-region-${this.regionSelect.value}`, name: 'Region', label: this.regionSelect.options[this.regionSelect.selectedIndex].text });              this.updateURLParams();              this.updatePriceDropdownCurrency();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.retailerSelect) {            this.retailerSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-merchant-${this.retailerSelect.value}`, name: 'Retailer', label: this.retailerSelect.options[this.retailerSelect.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.offerTypeSelect) {            this.offerTypeSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-offertype-${this.offerTypeSelect.value}`, name: 'Offer Type', label: this.offerTypeSelect.options[this.offerTypeSelect.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.viewModeSelect) {            this._prevViewMode = this.viewModeSelect.value;            this.viewModeSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-viewmode-${this.viewModeSelect.value}`, name: 'View Mode', label: this.viewModeSelect.options[this.viewModeSelect.selectedIndex].text });                            // Reset all active toggles and filters to prevent config carry-over              this.selectedBrands = [];              if (this.brandTrigger) this.brandTrigger.innerText = 'Select Brands';              if (this.brandDropdown) {                const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                chks.forEach(chk => { chk.checked = false; });              }              if (this.priceFilter) this.priceFilter.value = 'all';              if (this.customPriceMin) this.customPriceMin.value = '';              if (this.customPriceMax) this.customPriceMax.value = '';              if (this.sortSelect) this.sortSelect.value = this.viewModeSelect.value === 'savings_squad' ? 'date_desc' : 'discount_desc';              if (this.discountFilter) this.discountFilter.value = '0';              if (this.retailerSelect) this.retailerSelect.value = '';              if (this.offerTypeSelect) this.offerTypeSelect.value = '';              if (this.rowsSelect) this.rowsSelect.value = '12';              if (this.categoryFilter) this.categoryFilter.value = 'all';              this.activeDealTag = null;              this.updateURLParams();              this.applyLayoutMode();                            if (this.getViewMode() === 'savings_squad' || this._prevViewMode === 'savings_squad') {                this.fetchDeals(this.currentQuery);              } else {                this.render();              }              this._prevViewMode = this.viewModeSelect.value;            });          }                    if (this.rowsSelect) {            this.rowsSelect.addEventListener('change', () => {              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.dealModeToggle) {            this.dealModeToggle.addEventListener('change', () => {              this.updateURLParams();              this.render();            });          }          if (this.editorModeToggle) {             this.editorModeToggle.addEventListener('change', (e) => {                this.editorMode = e.target.checked;                this.render();                this.updateFloatingCopyBar();             });          }          if (this.editorCopyBtn) {             this.editorCopyBtn.addEventListener('click', () => {                this.copySelectedDealsToCMS();             });          }          if (this.editorClearBtn) {             this.editorClearBtn.addEventListener('click', () => {                this.selectedDeals.clear();                this.render();                this.updateFloatingCopyBar();             });          }          if (this.grid) {            this.grid.addEventListener('change', (e) => {               if (e.target.classList.contains('tg-df-deal-checkbox')) {                  const dealId = e.target.getAttribute('data-id');                  if (e.target.checked) {                     const dealObj = this.deals.find(d => d.id === dealId);                     if (dealObj) this.selectedDeals.set(dealId, dealObj);                  } else {                     this.selectedDeals.delete(dealId);                  }                  this.updateFloatingCopyBar();               }            });            this.grid.addEventListener('click', (e) => {              const dealCard = e.target.closest('[data-action="deal-click"]');              const similarCard = e.target.closest('[data-action="view-similar-click"]');              const cardLink = dealCard || similarCard;              if (cardLink) {                const productName = cardLink.getAttribute('data-product-name');                const merchantName = cardLink.getAttribute('data-merchant-name');                const productId = cardLink.getAttribute('data-analytics-id');                const price = parseFloat(cardLink.getAttribute('data-price')) || null;                const prevPriceStr = cardLink.getAttribute('data-previous-price');                const previousPrice = prevPriceStr ? parseFloat(prevPriceStr) : null;                const originalLink = cardLink.getAttribute('data-original-link');                const rewrittenLink = cardLink.getAttribute('href');                const revenueId = cardLink.getAttribute('data-revenue-id');                const index = parseInt(cardLink.getAttribute('data-index'), 10) || 0;                const inStock = cardLink.getAttribute('data-in-stock') === 'true';                const totalText = cardLink.getAttribute('data-total');                const totalDeals = parseInt(totalText, 10) || 0;                const productCategoryName = 'deals';                const trackingParams = {                  widgetId: this.widgetId,                  productCategoryName: productCategoryName,                  product: {                    modelId: cardLink.getAttribute('data-model-id') || null,                    matchId: cardLink.getAttribute('data-match-id') || null,                    brand: cardLink.getAttribute('data-model-brand') || null,                    parent: cardLink.getAttribute('data-model-parent') || null,                    name: productName,                    price: price,                    previousPrice: previousPrice,                    link: rewrittenLink,                    originalLink: originalLink,                    inStock: inStock                  },                  zeroBasedProductIndexOrNull: index,                  totalDealsOrProducts: totalDeals,                   merchant: {                    id: cardLink.getAttribute('data-merchant-id') || null,                    network: cardLink.getAttribute('data-merchant-network') || null,                    url: cardLink.getAttribute('data-merchant-url') || null,                    name: merchantName                  },                  revenueId: revenueId,                  widgetTypeName: this.widgetTypeName,                  isoCurrencyCode: normalizeCurrency(this.escapeHTML(cardLink.getAttribute('data-currency') || '$'))                };                if (dealCard) {                  trackDealClick(trackingParams);                } else {                  trackViewSimilarClick(trackingParams);                }              }              const couponsBtn = e.target.closest('[data-action="coupons-click"]');              if (couponsBtn) {                trackElementInteraction({                  id: 'product-card-show-coupons',                  name: 'Coupons',                  label: `Product card coupons: ${couponsBtn.getAttribute('data-merchant')}`                });              }            });          }          this.setupScrollListeners();        }        setupScrollListeners() {          const containers = [             this.root.querySelector('.tg-df-carousel-roundels'),             this.root.querySelector('.tg-df-carousel-filters-wrap'),             this.root.querySelector('#tg-df-grid')          ];                    containers.forEach(container => {             if (!container) return;                          const checkScroll = () => {                if (!container.parentElement) return;                const leftBtn = container.parentElement.querySelector('.tg-df-carousel-scroll-left');                const rightBtn = container.parentElement.querySelector('.tg-df-carousel-scroll-right');                                if (leftBtn) {                   if (container.scrollLeft <= 5) leftBtn.style.display = 'none';                   else leftBtn.style.display = 'flex';                }                                if (rightBtn) {                   if (container.scrollWidth <= container.clientWidth) {                       rightBtn.style.display = 'none';                   } else if (container.scrollLeft >= container.scrollWidth - container.clientWidth - 5) {                       rightBtn.style.display = 'none';                   } else {                       rightBtn.style.display = 'flex';                   }                }             };                          container.addEventListener('scroll', checkScroll);             checkScroll();                          window.addEventListener('resize', checkScroll);                          const observer = new MutationObserver(checkScroll);             observer.observe(container, { childList: true, subtree: true, characterData: false });          });        }        get widgetTypeName() {          const mode = this.viewModeSelect ? this.viewModeSelect.value : (this.viewModeOverride || 'auto');          switch(mode) {              case 'carousel': return 'Carousel';              case 'savings_squad': return 'Savings Squad';              case 'grid': return 'Grid';              case 'row': return 'Row';              default: return 'Auto Collection';          }        }        getRowsLimit() {          if (this.rowsSelect && this.rowsSelect.value) return parseInt(this.rowsSelect.value, 10);          let configSource = window.location.search;          if (this.hostContainer && this.hostContainer.hasAttribute('data-widget-config')) {             configSource = this.hostContainer.getAttribute('data-widget-config');          } else if (typeof window !== 'undefined' && window.__WIDGET_CONFIG__) {             configSource = window.__WIDGET_CONFIG__;          }          const params = new URLSearchParams(configSource);          if (params.has('rows')) return parseInt(params.get('rows'), 10) || 12;          return 12;        }        getAreaCode() {          if (this.regionSelect && this.regionSelect.value) {            if (this.regionSelect.value === 'auto') return null;            return this.regionSelect.value;          }          let area = null;          try {            const locale = window.navigator.language || window.navigator.userLanguage;            if (locale && locale.includes('-')) {              area = locale.split('-')[1].toUpperCase();            } else if (locale && locale.length === 2) {              if (locale.toUpperCase() === 'EN') { area = 'US'; }              else { area = locale.toUpperCase(); }            }          } catch (e) { /* Ignore */ }                    // Map to known valid options or fallback to US          const valid = ['US', 'GB', 'CA', 'AU', 'DE', 'FR', 'IT'];          if (area === 'UK') area = 'GB';          if (valid.includes(area)) {             return area;          }          return 'US';        }                async loadCarouselSpreadsheet() {          try {              const parseCSVRow = (str) => {                  let result = [], cur = '', inQuotes = false;                  for (let i = 0; i < str.length; i++) {                      let char = str[i];                      if (inQuotes) {                          if (char === '"') {                              if (str[i + 1] === '"') { cur += '"'; i++; }                              else { inQuotes = false; }                          } else { cur += char; }                      } else {                          if (char === '"') { inQuotes = true; }                          else if (char === ',') { result.push(cur); cur = ''; }                          else { cur += char; }                      }                  }                  result.push(cur); return result;              };              const parseCSV = (str) => {                  const rows = []; let curRow = '', inQuotes = false;                  for (let i = 0; i < str.length; i++) {                      let char = str[i];                      if (char === '"') inQuotes = !inQuotes;                      if ((char === '\n' || char === '\r') && !inQuotes) {                          if (char === '\r' && str[i+1] === '\n') i++;                          if (curRow) rows.push(parseCSVRow(curRow));                          curRow = '';                      } else { curRow += char; }                  }                  if (curRow) rows.push(parseCSVRow(curRow));                  return rows;              };              const preloadedCSV = decodeURIComponent(escape(atob("LCwxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNQ0KUm91bmRlbCB0ZXh0LEFsbCxUVnMsRm9vdHdlYXIsQXBwYXJlbCxNYXR0cmVzZXMsQXBwbGlhbmNlcyxXZWFyYWJsZSB0ZWNoLEhlYWRwaG9uZXMsU21hcnQgSG9tZSxTcGVha2VycyxMYXB0b3BzLFRhYmxldHMsQ29tcHV0aW5nLFBob25lcyxHYW1pbmcsTGVnbw0KUm91bmRlbCBpbWFnZSxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Nob3AtYXNzZXRzL2Nhcm91c2VsL2FpLnBuZyxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Nob3AtYXNzZXRzL2Nhcm91c2VsL3R2cy5wbmcsaHR0cHM6Ly9pbWFnZXMuZmllLmZ1dHVyZWNkbi5uZXQvcHJvZHVjdHMvN2IzYTIyNGIwNzk2M2M2MjdiNmI5MDliZDc4MzM4MzZlMDJmZjgxOS5qcGcud2VicCxodHRwczovL2ltYWdlcy5maWUuZnV0dXJlY2RuLm5ldC9wcm9kdWN0cy84NGRhYzVkNDhlZDJkNDQ4NTU5ZWJhNjdhY2U4MzE0Y2M2N2NjZDk0LmpwZy53ZWJwLGh0dHBzOi8vd3d3LnRvbXNndWlkZS5jb20vc2hvcC1hc3NldHMvY2Fyb3VzZWwvbWF0dHJlc3Nlcy5wbmcsaHR0cHM6Ly9pbWFnZXMuZmllLmZ1dHVyZWNkbi5uZXQvcHJvZHVjdHMvNzY4ZTk3Y2ViMDcxODAxZmFlMjA5MTBkMDgyMGIxNmY3NDdhZjkzOS5qcGcud2VicCxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Nob3AtYXNzZXRzL2Nhcm91c2VsL3dlbGxuZXNzLnBuZyxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Nob3AtYXNzZXRzL2Nhcm91c2VsL2hlYWRwaG9uZXMuanBnLGh0dHBzOi8vaW1hZ2VzLmZpZS5mdXR1cmVjZG4ubmV0L3Byb2R1Y3RzLzg5NTM1YmVlYmUyMGRiYmQ0YTM0NmQ2ZDZiZGZlOTFkOGE4ODRhMjEuanBnLndlYnAsaHR0cHM6Ly93d3cudG9tc2d1aWRlLmNvbS9zaG9wLWFzc2V0cy9jYXJvdXNlbC9hdWRpby5qcGcsaHR0cHM6Ly93d3cudG9tc2d1aWRlLmNvbS9zaG9wLWFzc2V0cy9jYXJvdXNlbC9sYXB0b3BzLmpwZyxodHRwczovL2ltYWdlcy5maWUuZnV0dXJlY2RuLm5ldC9wcm9kdWN0cy8yMzk3NTY0ZWQ3YTVmZjk0N2U5YjZiMzBlNTRmNDc0OTRiODQxZjg5LmpwZy53ZWJwLGh0dHBzOi8vd3d3LnRvbXNndWlkZS5jb20vc2hvcC1hc3NldHMvY2Fyb3VzZWwvY29tcHV0aW5nLmpwZyxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Nob3AtYXNzZXRzL2Nhcm91c2VsL3Bob25lcy5wbmcsaHR0cHM6Ly93d3cudG9tc2d1aWRlLmNvbS9zaG9wLWFzc2V0cy9jYXJvdXNlbC9nYW1pbmcucG5nLGh0dHBzOi8vaW1hZ2VzLmZpZS5mdXR1cmVjZG4ubmV0L3Byb2R1Y3RzLzRmNmM2MjFjYWMwYmMxYTg1ZDU5M2UzNTk0YmE1YjM0OWVmZmQyOTIuanBnLndlYnANClNlYXJjaCBRdWVyeSxFdmVyeXRoaW5nLFRlbGV2aXNpb25zLCJTbmVha2VycywgcnVubmluZyBzaG9lcywgc2FuZGFscyIsQ2xvdGhpbmcsTWF0dHJlc3NlcyxIb21lIEFwcGxpYW5jZXMsV2VhcmFibGVzICYgRml0bmVzcyBUZWNoLEhlYWRwaG9uZXMsSG9tZSBUZWNoLFNwZWFrZXJzLExhcHRvcHMsVGFibGV0cyxDb21wdXRpbmcsUGhvbmVzLEdhbWluZyxDb25zdHJ1Y3Rpb24gVG95cw0KRGlzY291bnQgQW1vdW50LG1pbiA1JSxtaW4gMTAlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUNClByaWNlIFJhbmdlLCwsLCxtaW4gJDQwMCwsLCxtaW4gJDI1LCxtaW4gJDMwMCwsLG1pbiAkMTAwLCwNCkJyYW5kIFNlbGVjdGlvbiwsLCwsLCwsLCwsLCwsLCwNCkZpbHRlciBidXR0b25zLCwsLCwsLCwsLCwsLCwsLA0KMSxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMNCjIsQW1hem9uIGRlYWxzLFVuZGVyICQxMDAwLDUwJSBvZmYsQWRpZGFzLEFtYXpvbiBkZWFscyxBbWF6b24gZGVhbHMsNTAlIG9mZixBbWF6b24gZGVhbHMsQW1hem9uIGRlYWxzLEFtYXpvbiBkZWFscyxBbWF6b24gZGVhbHMsQW1hem9uIGRlYWxzLEFtYXpvbiBkZWFscyxBbWF6b24gZGVhbHMsQW1hem9uIGRlYWxzLEFtYXpvbiBkZWFscw0KMyxPdmVyICQ0MDAsVW5kZXIgJDUwMCxIb2thLE5pa2UsU2FhdHZhLE5pbmphLDQwJSBvZmYsSkxhYiwsSkJMLERlbGwsLEFzdXMsQXBwbGUsQ29uc29sZXMsU3RhciBXYXJzDQo0LFVuZGVyICQxMDAwLDUwJSBvZmYsU2tlY2hlcnMsVW5kZXIgQXJtb3VyLEhlbGl4LFNoYXJrLEdhcm1pbixBbmtlciBTb3VuZGNvcmUsUmluZyxTb25vcyxBcHBsZSxBcHBsZSxUUC1saW5rLFNhbXN1bmcsQWNjZXNzb3JpZXMsVW5kZXIgJDI1DQo1LFVuZGVyICQ1MDAsTEcsQXNpY3MsQ29sdW1iaWEsRHJlYW1DbG91ZCxLZXVyaWcsQXBwbGUsU29ueSxHb3ZlZSxUcmliaXQsTGVub3ZvLFNhbXN1bmcsRWVybyxHb29nbGUsR2FtZXMsVW5kZXIgJDUwDQo2LDUwJSBvZmYsU2Ftc3VuZyxOaWtlLFBhdGFnb25pYSxOZWN0YXIsRGUnTG9uZ2hpLEFtYXpmaXQsQXBwbGUsS2FzYSBzbWFydCxTb255LEFsaWVud2FyZSxUQ0wsTmV0Z2VhcixNb3Rvcm9sYSxOaW50ZW5kbyxCb3RhbmljYWxzDQo3LEFtYXpvbixIaXNlbnNlLE5ldyBCYWxhbmNlLEFyYyd0ZXJ5eCxUZW1wdXItcGVkaWMsRHlzb24sRml0Yml0LEJlYXRzLFBoaWxpcHMgSHVlLEFua2VyLEFjZXIsT25lUGx1cyxEZWxsLE9uZVBsdXMsU29ueSxEaXNuZXkNCjgsQXBwbGUsVENMLEFkaWRhcyxDYXJoYXJ0dCxCZWFyLEJpc3NlbGwsU2Ftc3VuZyxFYXJmdW4sQmxpbmssQmVhdHMsTVNJLE1pY3Jvc29mdCxBY2VyLE5vdGhpbmcsWGJveCxNYXJ2ZWwNCjksLFNvbnksU2F1Y29ueSxUaGUgTm9ydGggRmFjZSxTaWVuYSxOdXRyaWJ1bGxldCxPdXJhLFNhbXN1bmcsR29vZ2xlIE5lc3QgLE1hcnNoYWxsLFNhbXN1bmcsTGVub3ZvLExlbm92bywsLFBva2Vtb24NCjEwLCxSb2t1LEJpcmtlbnN0b2NrLENSWiBZb2dhLFdpbmtCZWRzLEJsYWNrIGFuZCBEZWNrZXIsUmluZ2Nvbm4sQ01GLEV1ZnksU2Ftc3VuZyxNaWNyb3NvZnQsUmVNYXJrYWJsZSxBbGllbndhcmUsLCwNCjExLCwsQnJvb2tzLFRoZSBHeW0gUGVvcGxlLEJyb29rbHluIGJlZGRpbmcsTmVzcHJlc3NvLCwxTW9yZSxBcmxvLCxSYXplciwsQ29yc2FpciwsLA0KMTIsLCxDcm9jcywsRWlnaHQgU2xlZXAsQ3Vpc2luYXJ0LCxKQkwsLCwsLEhQLCwsDQpOb3RlcywsLCwsLCwsLCwsLCwsLCwNCiwsIlByaW9yaXRpc2UgYmlnZ2VzdCAlLyQgZGlzY291bnQsIFR2cyB3aXRoIH41MCUgb2ZmIGhhdmUgYmVlbiB0aGUgbW9zdCBwb3B1bGFyIGV2ZW4gaWYgdGhleSBhcmUgc3RpbGwgZXhwZW5zaXZlIiwiTm8gcGF0dGVybiB0byBwcmljaW5nL2Rpc2NvdW50LCByZWFkZXJzIG1haW5seSBzaG9wIGJ5IGJyYW5kL3JlY29nbmlzYWJsZSBzaG9lcyIsIk5vIHBhdHRlcm4gdG8gcHJpY2luZy9kaXNjb3VudCwgcmVhZGVycyBtYWlubHkgc2hvcCBieSBicmFuZCIsIkEgbGFiZWwgd2lsbCBkZWZpbml0ZWx5IGhlbHAgaGVyZSBlLmcuIGJlc3QgZm9yIHNpZGUgc2xlZXBlciwgYmVzdCBtZW1vcnkgZm9hbSIsIkFwcGxpYW5jZXMgaXMgYSBiaWcgY2F0ZWdvcnksIGlzIGl0IHBvc3NpYmxlIHRvIHNwbGl0IGludG8ga2l0Y2hlbiBhcHBsaWFuY2VzLCBmbG9vcmNhcmUsIGFpciBoZWFsdGgvY29vbGluZz8gT3Igc2ltaWxhciIsIkZvY3VzIG9uIHZhbHVlIGZvciBtb25leSwgR2FybWlucyB3aXRoIH41MCUgb2ZmIGhhdmUgYmVlbiBwb3B1bGFyIGV2ZW4gdGhvdWdoIHRoZXkgYXJlIHN0aWxsICQ1MDAiLCwsLCxJbmNsdWRlIEtpbmRsZXMsSSB3b3VsZCBpbmNsdWRlIHdpZmkgcm91dGVycyBoZXJlIGluc3RlYWQgb2Ygc21hcnQgaG9tZSxDYW4gd2Ugc3VyZmFjZSBwaG9uZSBwcm92aWRlciBkZWFscz8gVC1tb2JpbGUgYW5kIHZlcml6b24gd291bGQgbWFrZSBhIGxvdCBtb3JlIG1vbmV5IHRoYW4gQW1hem9uLCwNCiwsaGF2aW5nIGEgJ2Jlc3QgZm9yJyBsYWJlbCB3b3VsZCBiZSBoZWxwZnVsIGUuZy4gYmVzdCBmb3IgYnJpZ2h0IHJvb20sQ2FuIHdlIHN0b3Aga2lkcyBzaG9lcyBmcm9tIHB1bGxpbmcgdGhyb3VnaD8sIldpbGwgdGhpcyBpbmNsdWRlIGFjY2Vzc29yaWVzIGUuZy4gY2FwcywgYmFncywgaWYgc28gbWFrZSBzdXJlIHRoZXNlIGFyZSBtaXhlZCB0aHJvdWdob3V0IGNsb3RoaW5nIGRlYWxzIixXaWxsIHRoaXMgaW5jbHVkZSB0b3BwZXJzIGFuZCBwaWxsb3dzPyBTZWVpbmcgbW9yZSBtb21lbnR1bSB3aXRoIHRoaXMgY2F0ZWdvcnkgcmVjZW50bHkgc28gYSBiZWRkaW5nIHRhYiBtaWdodCB3b3JrLCwiTmVlZCB0byBtYWtlIHN1cmUgYmFuZHMsIHNjcmVlbiBwcm90ZWN0b3JzIGV0Yy4gZG9uJ3QgcHVsbCBpbnRvIGhlcmUiLCwsLCwsLCwsDQosLCJQcmlvcml0aXNlIDY1JycgYW5kIDU1JyBpbmNoIFRWcywgdGhlbiBiaWdnZXIgc2NyZWVucyBiZWZvcmUgdGhlIHNtYWxsZXIgc2l6ZXMiLCwsUXVlZW4gaXMgdGhlIG1vc3QgcG9wdWxhciBzaXplIGluIHRoZSBVUyAtIHByaW9yaXRpc2UgZGVhbHMgZm9yIHRoaXMgc2l6ZSwsLCwsLCwsLCwsDQosLCwsLCwsLCwsLCwsLCwsDQpDYXRlZ29yaWVzIHRvIGNvbnNpZGVyLCxQcm9kdWN0cyBpbmNsdWRlZCwsLCwsLCwsLCwsLCwsDQpVbmRlciAkNTA/LCxBaXIgdGFncywsLCwsLCwsLCwsLCwsDQosLFBvcnRhYmxlIGNoYXJnZXJzL3dpcmVsZXNzIGNoYXJnZXJzLCwsLCwsLCwsLCwsLCwNCiwsIldhdGVyIGJvdHRsZXMgKHN0YW5sZXlzLCBPd2FsYSwgSHlkcm8gZmxhc2ssIFlldGkpIiwsLCwsLCwsLCwsLCwsDQosLEhhbmQgaGVsZCBmYW5zLCwsLCwsLCwsLCwsLCwNCiwsLCwsLCwsLCwsLCwsLCwNCmhvbWUgb2ZmaWNlLCxvZmZpY2UgY2hhaXJzLCwsLCwsLCwsLCwsLCwNCiwsc3RhbmRpbmcgZGVza3MsLCwsLCwsLCwsLCwsLA0KLCxtb25pdG9ycywsLCwsLCwsLCwsLCwsDQosLEtleWJvYXJkcywsLCwsLCwsLCwsLCwsDQosLGRvY2tpbmcgc3RhdGlvbiwsLCwsLCwsLCwsLCwsDQosLCwsLCwsLCwsLCwsLCwsDQpHYW1pbmcsLENvbnNvbGVzLCwsLCwsLCwsLCwsLCwNCiwsQWNjZXNzb3JpZXMsLCwsLCwsLCwsLCwsLA0KLCxHYW1lcywsLCwsLCwsLCwsLCwsDQosLENvdWxkIGluY2x1ZGUgTGVnbz8sLCwsLCwsLCwsLCwsLA==")));              const text = preloadedCSV;              const parsed = parseCSV(text);                            const rowsByName = {};              let filterStart = -1;              parsed.forEach((rc, i) => {                 if (rc && rc.length > 0 && rc[0]) rowsByName[rc[0]] = rc;                 if (rc && rc.length > 0 && rc[0] === 'Filter buttons') filterStart = i;              });                            const cols = [];              if(rowsByName['Roundel text']) {                const headerRow = rowsByName['Roundel text'];                for(let col = 1; col < headerRow.length; col++) {                   let label = headerRow[col];                   if (!label) continue;                                      let q = rowsByName['Search Query'] && rowsByName['Search Query'][col] ? rowsByName['Search Query'][col] : '';                   let img = rowsByName['Roundel image'] && rowsByName['Roundel image'][col] ? rowsByName['Roundel image'][col] : '';                   let ds = rowsByName['Discount Amount'] && rowsByName['Discount Amount'][col] ? rowsByName['Discount Amount'][col] : '';                   let pr = rowsByName['Price Range'] && rowsByName['Price Range'][col] ? rowsByName['Price Range'][col] : '';                   let rt = rowsByName['Retailer'] && rowsByName['Retailer'][col] ? rowsByName['Retailer'][col] : '';                   let ot = rowsByName['Offer Type'] && rowsByName['Offer Type'][col] ? rowsByName['Offer Type'][col] : '';                                      let filters = [];                   if(filterStart > 0) {                     for(let r = filterStart + 1; r < parsed.length; r++) {                         if(!parsed[r] || parsed[r][0] === 'Notes' || parsed[r][0] === 'Categories to consider') break;                         let f = parsed[r][col];                         if(f) filters.push(f);                     }                   }                   cols.push({ label, img, q, ds, pr, rt, ot, filters });                }              }              this.carouselData = cols;              if (this.carouselData && this.carouselData.length > 0) {                 const isMatched = this.carouselData.some(c => c.q === this.currentQuery || c.label === this.currentQuery);                 if (!isMatched) {                    const first = this.carouselData[0];                    this.currentQuery = first.q || first.label;                    if (this.priceFilter) this.priceFilter.value = 'all';                    if (this.customPriceMin) this.customPriceMin.value = '';                    if (this.customPriceMax) this.customPriceMax.value = '';                    let dPr = first.pr || 'all';                    if (typeof dPr === 'string' && dPr !== 'all') {                       let prLower = dPr.toLowerCase();                       if (prLower.includes('min') || prLower.includes('over')) {                          let m = dPr.match(/(\d+)/);                          if (m && this.customPriceMin) this.customPriceMin.value = m[1];                       } else if (prLower.includes('max') || prLower.includes('under')) {                          let m = dPr.match(/(\d+)/);                          if (m && this.customPriceMax) this.customPriceMax.value = m[1];                       }                    }                    let dAm = '0';                    if(first.ds && typeof first.ds === 'string') {                       let m = first.ds.match(/(\d+)/);                       if(m) dAm = m[1];                    }                    if (this.discountFilter) this.discountFilter.value = dAm;                    if (this.offerTypeSelect) this.offerTypeSelect.value = first.ot || '';                    if (this.retailerSelect) this.retailerSelect.value = first.rt || '';                    this.selectedBrands = [];                    if (this.brandDropdown) {                        const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                        chks.forEach(chk => chk.checked = false);                    }                    if (this.searchInput) this.searchInput.value = this.currentQuery;                 }              }              this.renderCarouselUI();          } catch(e){ console.warn(e); }        }                renderCarouselUI() {           const roundelWrapper = this.root.querySelector('.tg-df-carousel-roundels');           if(!roundelWrapper || !this.carouselData) return;                      let html = '';           this.carouselData.forEach(r => {              const q = r.q || r.label;              const isActive = (this.currentQuery === q || this.currentQuery === r.label) ? 'active' : '';              const imgHtml = r.img ? `\x3Cimg src="${r.img}" alt="${r.label}" />` : `\x3Csvg width="32" height="32" fill="#1F69FF" viewBox="0 0 24 24">\x3Cpath d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/>\x3C/svg>`;              html += `                \x3Cdiv class="tg-df-roundel tg-df-carousel-cat ${isActive}" data-label="${this.escapeHTML(r.label)}">                  \x3Cdiv class="tg-df-roundel-img-box">${imgHtml}\x3C/div>                  \x3Cspan class="tg-df-roundel-label">${this.escapeHTML(r.label)}\x3C/span>                \x3C/div>              `;           });           roundelWrapper.innerHTML = html;                      // Rebind clicks           const roundels = this.root.querySelectorAll('.tg-df-carousel-cat');           roundels.forEach(rNode => {             rNode.addEventListener('click', () => {                const r = this.carouselData.find(c => c.label === rNode.getAttribute('data-label'));                 if(!r) return;                                  if (typeof trackHawkEvent !== 'undefined') {                     trackHawkEvent({                         clickType: "CC",                         widgetId: this.widgetId,                         productCategoryName: "deals",                         zeroBasedProductIndexOrNull: null,                         totalDealsOrProducts: null,                         areaClicked: "Category Roundel",                         revenueId: this.revenueId,                         isoCurrencyCode: typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD',                         queryName: r.label,                         widgetTypeName: this.widgetTypeName                     });                 }                this.currentQuery = r.q || r.label;                const labelTitle = this.root.querySelector('#tg-df-carousel-title-label');                if (labelTitle) labelTitle.textContent = 'Best ' + this.currentQuery;                if (this.priceFilter) this.priceFilter.value = 'all';                if (this.customPriceMin) this.customPriceMin.value = '';                if (this.customPriceMax) this.customPriceMax.value = '';                let dPr = r.pr || 'all';                if (typeof dPr === 'string' && dPr !== 'all') {                   let prLower = dPr.toLowerCase();                   if (prLower.includes('min') || prLower.includes('over')) {                      let m = dPr.match(/(\d+)/);                      if (m && this.customPriceMin) this.customPriceMin.value = m[1];                   } else if (prLower.includes('max') || prLower.includes('under')) {                      let m = dPr.match(/(\d+)/);                      if (m && this.customPriceMax) this.customPriceMax.value = m[1];                   }                }                                let discountAmount = '0';                if(r.ds && typeof r.ds === 'string') {                   let m = r.ds.match(/(\d+)/);                   if(m) discountAmount = m[1];                }                if (this.discountFilter) this.discountFilter.value = discountAmount;                if (this.offerTypeSelect) this.offerTypeSelect.value = r.ot || '';                if (this.retailerSelect) this.retailerSelect.value = r.rt || '';                                // Clear brands                    this.selectedBrands = [];                    if (this.brandDropdown) {                    const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                    chks.forEach(chk => chk.checked = false);                }                                if (this.searchInput) this.searchInput.value = this.currentQuery;                                roundels.forEach(ro => ro.classList.remove('active'));                if (rNode) rNode.classList.add('active');                                this.renderCarouselFilters(r);                this.fetchDeals(this.currentQuery);             });           });                      // Auto-highlight active           const activeR = this.carouselData.find(c => c.q === this.currentQuery || c.label === this.currentQuery);           if(activeR) this.renderCarouselFilters(activeR);        }                renderCarouselFilters(r) {           const filtersWrap = this.root.querySelector('.tg-df-carousel-filters-wrap');           if(!filtersWrap) return;                      let html = `\x3Cbutton class="tg-df-carousel-filter-btn" data-type="all">All\x3C/button>`;                      r.filters.forEach(f => {              let fL = f.toLowerCase();              let icon = '';              let logic = `data-type="custom" data-v="${this.escapeHTML(f)}"`;              if (fL === 'amazon deals' || fL === 'prime deals') {                 html += `\x3Cbutton class="tg-df-carousel-filter-btn" ${logic}>\x3Cimg src="https://cdn.mos.cms.futurecdn.net/fwoVXvL79turN3Ph535m38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/u75QjVpt3w2EsMimJiRo38-600-100.png" class="active-img" alt="" /> Prime deals\x3C/button>`;              } else if (fL === 'lightning deals') {                 html += `\x3Cbutton class="tg-df-carousel-filter-btn" ${logic}>\x3Cimg src="https://cdn.mos.cms.futurecdn.net/HqAui7w97ft2NPqBtQ5r38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/yWPQ5yyQRhUwVKzGwYbh38-600-100.png" class="active-img" alt="" /> Lightning deals\x3C/button>`;              } else {                 if (fL.includes('lightning')) {                    icon = `\x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-zap">\x3Cpolygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2">\x3C/polygon>\x3C/svg>`;                 } else if (fL.includes('% off')) {                    icon = `\x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>`;                 } else if (fL.includes('under') || fL.includes('min ')) {                    icon = `\x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-badge-dollar-sign">\x3Cpath d="M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z">\x3C/path>\x3Cpath d="M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8">\x3C/path>\x3Cpath d="M12 18V6">\x3C/path>\x3C/svg>`;                 }                 html += `\x3Cbutton class="tg-df-carousel-filter-btn" ${logic}>${icon} ${this.escapeHTML(f)}\x3C/button>`;              }           });                      filtersWrap.innerHTML = html;                      const btns = filtersWrap.querySelectorAll('button');           btns.forEach(b => {             b.addEventListener('click', () => {                const type = b.getAttribute('data-type');                if (type === 'custom') {                   const v = b.getAttribute('data-v');                   if (typeof trackElementInteraction === 'function') trackElementInteraction({ id: `filter-custom-${(v||'').toLowerCase().replace(/[^a-z0-9]+/g, '-')}`, name: 'Custom Filter', label: v });                }                if (type === 'all') {                   if (typeof trackElementInteraction === 'function') trackElementInteraction({ id: 'filter-clear-all', name: 'Clear all', label: 'Clear all filters' });                   // reset everything                   btns.forEach(btn => btn.classList.remove('active'));                   b.classList.add('active');                                      // Reset prices                   if (this.priceFilter) this.priceFilter.value = 'all';                   if (this.customPriceMin) this.customPriceMin.value = '';                   if (this.customPriceMax) this.customPriceMax.value = '';                   let dPr = r.pr || 'all';                   if (typeof dPr === 'string' && dPr !== 'all') {                      let prLower = dPr.toLowerCase();                      if (prLower.includes('min') || prLower.includes('over')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMin) this.customPriceMin.value = m[1];                      } else if (prLower.includes('max') || prLower.includes('under')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMax) this.customPriceMax.value = m[1];                      }                   }                                      let discountAmount = '0';                   if(r.ds && typeof r.ds === 'string') {                      let m = r.ds.match(/(\d+)/);                      if(m) discountAmount = m[1];                   }                   if (this.discountFilter) this.discountFilter.value = discountAmount;                   if (this.offerTypeSelect) this.offerTypeSelect.value = r.ot || '';                   if (this.retailerSelect) this.retailerSelect.value = r.rt || '';                   this.selectedBrands = [];                   if (this.brandDropdown) {                     const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                     chks.forEach(chk => chk.checked = false);                   }                } else {                   const v = b.getAttribute('data-v');                   const fL = v.toLowerCase();                                      let mapRet = ['amazon', 'walmart', 'best buy', 'target', 'john lewis', 'currys', 'argos'];                   const getCategory = (s) => {                      if (s === 'lightning deals' || s === 'amazon deals' || s === 'prime deals') return 'offer';                      if (s.includes('% off')) return 'discount';                      if (s.includes('under') || s.includes('over') || s.includes('min') || s.includes('max')) return 'price';                      if (mapRet.includes(s)) return 'retailer';                      return 'brand';                   };                   const cat = getCategory(fL);                   const wasActive = b.classList.contains('active');                   if (cat !== 'brand') {                      btns.forEach(btn => {                          if (btn === b) return;                          if (btn.getAttribute('data-type') === 'all') return;                          const bV = btn.getAttribute('data-v');                          if (!bV) return;                          if (getCategory(bV.toLowerCase()) === cat) btn.classList.remove('active');                      });                   }                   if (wasActive) b.classList.remove('active');                   else b.classList.add('active');                   let anyActive = Array.from(btns).some(btn => btn !== btns[0] && btn.classList.contains('active'));                   if (!anyActive) {                       btns[0].click();                       return;                   } else {                       btns[0].classList.remove('active');                   }                                      if (this.priceFilter) this.priceFilter.value = 'all';                   if (this.customPriceMin) this.customPriceMin.value = '';                   if (this.customPriceMax) this.customPriceMax.value = '';                   let dPr = r.pr || 'all';                   if (typeof dPr === 'string' && dPr !== 'all') {                      let prLower = dPr.toLowerCase();                      if (prLower.includes('min') || prLower.includes('over')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMin) this.customPriceMin.value = m[1];                      } else if (prLower.includes('max') || prLower.includes('under')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMax) this.customPriceMax.value = m[1];                      }                   }                                      let discountAmount = '0';                   if(r.ds && typeof r.ds === 'string') {                      let m = r.ds.match(/(\d+)/);                      if(m) discountAmount = m[1];                   }                   if (this.discountFilter) this.discountFilter.value = discountAmount;                   if (this.offerTypeSelect) this.offerTypeSelect.value = r.ot || '';                   if (this.retailerSelect) this.retailerSelect.value = r.rt || '';                   this.selectedBrands = [];                   btns.forEach(btn => {                       if (!btn.classList.contains('active') || btn.getAttribute('data-type') === 'all') return;                       const vv = btn.getAttribute('data-v');                       const vl = vv.toLowerCase();                                              if (vl === 'lightning deals') {                          if (this.offerTypeSelect) this.offerTypeSelect.value = 'amazon_lightning';                       } else if (vl === 'amazon deals' || vl === 'prime deals') {                          if (this.offerTypeSelect) this.offerTypeSelect.value = 'amazon_prime';                       } else if (vl.includes('% off')) {                          let m = vl.match(/(\d+)%/);                          if (m && this.discountFilter) this.discountFilter.value = m[1];                       } else if (vl.includes('under') || vl.includes('max')) {                          let m = vl.match(/(\d+)/);                          if (m && this.customPriceMax) this.customPriceMax.value = m[1];                       } else if (vl.includes('min') || vl.includes('over')) {                          let m = vl.match(/(\d+)/);                          if (m && this.customPriceMin) this.customPriceMin.value = m[1];                       } else {                          let foundR = mapRet.find(x => x === vl);                          if (foundR) {                             let realR = ['Amazon', 'Walmart', 'Best Buy', 'Target', 'John Lewis', 'Currys', 'Argos'].find(x => x.toLowerCase() === vl);                             if (this.retailerSelect) this.retailerSelect.value = realR;                          } else {                             this.selectedBrands.push(vv);                          }                       }                   });                                      if (this.brandDropdown) {                       const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                       chks.forEach(c => c.checked = this.selectedBrands.includes(c.value));                   }                                      if (r.pr && typeof r.pr === 'string') {                       let prL = r.pr.toLowerCase();                       if (prL.includes('under $')) {                           let m = prL.match(/under \$(\d+)/i);                           if (m && this.customPriceMax && !this.customPriceMax.value) this.customPriceMax.value = m[1];                       }                   }                }                                this.fetchDeals(this.currentQuery);             });           });                      // default to highlighting first           btns[0].classList.add('active');        }async fetchDeals(query, append = false) {          if (!append) {             this.showLoading();             this.deals = [];             this.displayLimit = this.getRowsLimit();          } else {             this.displayLimit += this.getRowsLimit();          }                    try {            if (this.getViewMode() === 'savings_squad') {               await this.fetchSavingsSquad(append);            } else {               if (this.isBroadQuery(query)) {                 await this.fetchAdviserDeals(query, append);               } else {                 await this.fetchHawkDeals(query, append);                 if (this.deals.length === 0) {                   await this.fetchAdviserDeals(query, append);                 }               }            }          } catch (error) {            console.warn("[Tom's Guide Widget] Fetch error:", error);            this.showError();          }        }        async fetchSavingsSquad() {          let topArticles = this.airedaleArticles;          if (!topArticles) {            const airedaleUrl = `https://airedale.futurecdn.net/feeds/feed_1776420579726.json?site=tomsguide&articleType=deals&limit=50`;            let res;            try {               res = await fetch(airedaleUrl);            } catch(e) {               try { res = await fetch(`https://airedale.futurecdn.net/feeds/feed_1776420579726.json?site=tomsguide&articleType=deals&limit=50`); } catch (err) { console.warn("Fallback fetch failed", err); return; }            }            if (!res.ok) throw new Error('Airedale API Error');            const articles = await res.json();            topArticles = Array.isArray(articles) ? articles.slice(0, 50) : ((articles.data && Array.isArray(articles.data)) ? articles.data.slice(0, 50) : []);            this.airedaleArticles = topArticles;                        let tagCounts = {};            topArticles.forEach((a) => {              let articleTags = new Set();              if (a.articlecategory && Array.isArray(a.articlecategory)) {                 a.articlecategory.forEach((t) => articleTags.add(t));              }              articleTags.forEach(t => {                 tagCounts[t] = (tagCounts[t] || 0) + 1;              });            });                        this.airedaleTags = Object.keys(tagCounts).sort((a, b) => tagCounts[b] - tagCounts[a]);            this.airedaleTagCounts = tagCounts;          }                    let targetArticles = topArticles;          if (this.activeDealTag) {             const cleanTag = this.activeDealTag.toLowerCase().replace(/&/g, '').replace(/[^a-z0-9]+/g, '-').replace(/-+/g, '-').replace(/^-|-$/g, '');             const encodedTag = encodeURIComponent(cleanTag);             const url = `https://airedale.futurecdn.net/feeds/feed_1776420579726.json?site=tomsguide&articleType=deals&limit=50&articleCategoryHandle=${encodedTag}`;             try {                const res = await fetch(url);                if (res.ok) {                   const articles = await res.json();                   targetArticles = Array.isArray(articles) ? articles.slice(0, 50) : ((articles.data && Array.isArray(articles.data)) ? articles.data.slice(0, 50) : []);                }             } catch(e) {                console.warn("Failed to fetch by activeDealTag", e);             }          }          let extractedDeals = [];          let dynamicBrandsCounts = {};                    targetArticles.forEach((article) => {             if (!article.articlepage) return;                          let pageData = [];             try {                pageData = JSON.parse(article.articlepage[0]);             } catch(e){ console.warn(e); }                          const savingsSquad = pageData.filter((p) => p.type === 'deal' || p.type === 'featured-product');                          savingsSquad.forEach((block, idx) => {                const data = block.data || {};                const isFeatured = block.type === 'featured-product';                                const link = data.link || {};                const priceObj = data.price || {};                const image = data.image || {};                                if (data.brand) {                   data.brand = data.brand.replace(/^\d+\.\s*/, '').trim();                   dynamicBrandsCounts[data.brand] = (dynamicBrandsCounts[data.brand] || 0) + 1;                }                const externalUrl = isFeatured ? data.url : (link.href || null);                let summaryTitle = isFeatured ? (data.name || data.brand) : (data.productName || link.label || article.articlename);                let description = isFeatured ? (data.strapline || '') : (data.text || '');                                if (!isFeatured && !data.productName && data.text) {                   const brSplit = data.text.split(new RegExp('\x3Cbr\\s*\\/?\\x3E', 'i'));                   if (brSplit.length > 1) {                     summaryTitle = brSplit[0].replace(/<[^>]+>/g, '').trim();                     description = brSplit.slice(1).join(' ').replace(/<br\s*\/?>/gi, ' ').replace(/<\/?(p|div)[^>]*>/gi, ' ').replace(/<[^>]+>/g, '').replace(/\s+/g, ' ').trim();                   } else {                     const match = data.text.match(/\x3Cstrong>(.*?)<\/strong>/);                     if (match) {                       summaryTitle = match[1].replace(/<[^>]+>/g, '').trim();                       if (summaryTitle.endsWith(':')) summaryTitle = summaryTitle.slice(0, -1);                     }                   }                }                                let imageUrl = isFeatured ? image.mos : (image.src || null);                if (imageUrl && imageUrl.startsWith('//')) imageUrl = 'https:' + imageUrl;                                description = description.replace(/<br\s*\/?>/gi, ' ').replace(/<\/?(p|div)[^>]*>/gi, ' ').replace(/<[^>]+>/g, '').replace(/\s+/g, ' ').replace(/View Deal$/i, '').trim();                                let merchantName = data.retailer || '';                if (!merchantName && externalUrl) {                   try {                     merchantName = new URL(externalUrl).hostname.replace('www.', '').split('.')[0];                     merchantName = merchantName.charAt(0).toUpperCase() + merchantName.slice(1);                   }catch(e){ console.warn(e); }                }                if (!merchantName) merchantName = 'Retailer';                const q = (this.currentQuery || '').toLowerCase();                const activeTagLogic = (this.activeDealTag || '').toLowerCase();                if (q.length > 2 && q !== activeTagLogic) {                   const searchTarget = `${summaryTitle || ''} ${description || ''}`.toLowerCase();                   if (!searchTarget.includes(q)) return;                }                let rawPrice = 0;                let rawMsrp = 0;                let currencyStr = '$';                if (isFeatured) {                   rawPrice = typeof data.salePrice === 'number' && data.salePrice > 0 ? data.salePrice : (typeof data.price === 'number' ? data.price : 0);                   rawMsrp = typeof data.salePrice === 'number' && typeof data.price === 'number' && data.price > data.salePrice ? data.price : 0;                   currencyStr = data.currency === 'GBP' ? '£' : '$';                } else {                   rawPrice = priceObj.amount ? parseFloat(priceObj.amount) : 0;                   rawMsrp = priceObj.amountWas ? parseFloat(priceObj.amountWas) : 0;                   currencyStr = priceObj.currency === 'GBP' ? '£' : '$';                }                                let savingAmt = 0;                let savingLabel = '';                if (rawPrice > 0 && rawMsrp > rawPrice) {                   savingAmt = parseFloat((rawMsrp - rawPrice).toFixed(2));                   savingLabel = `Save ${currencyStr}${savingAmt}`;                }                                // Apply Brand filter                if (this.selectedBrands && this.selectedBrands.length > 0) {                   const itemBrand = (data.brand || '').toLowerCase();                   const hasMatch = this.selectedBrands.some(sb => sb.toLowerCase() === itemBrand);                   if (!hasMatch) return;                }                // Apply Price filter                let priceFilterVal = null;                const min = this.customPriceMin ? this.customPriceMin.value : '';                const max = this.customPriceMax ? this.customPriceMax.value : '';                if (min || max) {                   priceFilterVal = `${min}_${max}`;                } else if (this.priceFilter && this.priceFilter.value !== 'all') {                   priceFilterVal = this.priceFilter.value;                }                if (priceFilterVal && rawPrice > 0) {                   if (priceFilterVal === 'under50' && rawPrice >= 50) return;                   if (priceFilterVal === 'over50' && rawPrice <= 50) return;                   if (priceFilterVal === 'over30' && rawPrice <= 30) return;                   if (priceFilterVal === 'over500' && rawPrice <= 500) return;                   if (priceFilterVal.includes('_')) {                      const parts = priceFilterVal.split('_');                      const min = parseFloat(parts[0]);                      const max = parseFloat(parts[1]);                      if (!isNaN(min) && rawPrice < min) return;                      if (!isNaN(max) && rawPrice > max) return;                   }                }                // Apply Discount filter                if (this.discountFilter && this.discountFilter.value !== 'all' && this.discountFilter.value !== '0') {                   const requiredDiscount = parseInt(this.discountFilter.value);                   if (!isNaN(requiredDiscount) && requiredDiscount > 0) {                      if (!rawMsrp || rawMsrp <= rawPrice) return;                      const ratio = Math.round((1 - (rawPrice / rawMsrp)) * 100);                      if (ratio < requiredDiscount) return;                   }                }                                extractedDeals.push({                   id: `airedale-${article.id || Math.random()}-${idx}`,                   url: externalUrl,                   image: imageUrl,                   fallbackImage: imageUrl,                   title: summaryTitle,                   brand: data.brand || '',                   productName: data.productName || '',                   merchant: merchantName,                   rawPrice: rawPrice,                   rawMsrp: rawMsrp,                   price: rawPrice > 0 ? rawPrice.toString() : '',                   msrp: rawMsrp > 0 ? rawMsrp.toString() : '',                   currency: currencyStr,                   isCheckPrice: !rawPrice,                   savingLabel: savingLabel,                   savingType: rawMsrp > rawPrice ? 'amount' : 'none',                   isPrime: false,                   starRating: null,                   description: description,                   text: data.text || ''                });             });          });                    const airedaleBrandsList = Object.keys(dynamicBrandsCounts).map(b => ({              formatted_value: b,              count: dynamicBrandsCounts[b]          })).sort((a,b) => b.count - a.count);                    if (this.getViewMode() === 'savings_squad') {             this.populateBrandDropdown(airedaleBrandsList.slice(0, 15));             if (this.brandFilterWrapper) {                if (airedaleBrandsList.length === 0) {                    this.brandFilterWrapper.style.display = 'none';                } else {                    this.brandFilterWrapper.style.display = 'flex';                }             }          }                    this.deals = extractedDeals;          this.sortData();          this.render();          if (typeof trackDealsAppeared !== 'undefined') {             trackDealsAppeared(this.widgetId, this.deals, this.revenueId, typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD', this.currentQuery, this.widgetTypeName);          }        }        isBroadQuery(query) {          const q = query.toLowerCase();          const intentModifiers = ['deals', 'best', 'sale', 'under', 'cheap', 'offers', 'discount'];          return intentModifiers.some(term => q.includes(term));        }        async fetchHawkDeals(query, append = false) {          const url = new URL(this.apiUrl);          url.searchParams.append('model_name', query);          const areaCode = this.getAreaCode();          if (areaCode) {            url.searchParams.append('area', areaCode);          }                    if (append && this.deals.length > 0) {            url.searchParams.append('offset', this.deals.length.toString());          }                    if (this.retailerSelect && this.retailerSelect.value) {            url.searchParams.append('filter_merchant_name', this.retailerSelect.value);          }                    if (this.selectedBrands && this.selectedBrands.length > 0) {            url.searchParams.append('filter_label[text_brand]', this.selectedBrands.join(','));          }                    let priceVal = null;          const min = this.customPriceMin ? this.customPriceMin.value : '';          const max = this.customPriceMax ? this.customPriceMax.value : '';          if (min || max) {             priceVal = `${min}_${max}`;          } else if (this.priceFilter && this.priceFilter.value !== 'all') {             priceVal = this.priceFilter.value;          }          if (priceVal) {            if (priceVal === 'under50') {              url.searchParams.append('filter_max_price', '50');            } else if (priceVal === 'over50') {              url.searchParams.append('filter_min_price', '50');            } else if (priceVal === 'over30') {              url.searchParams.append('filter_min_price', '30');            } else if (priceVal === 'over500') {              url.searchParams.append('filter_min_price', '500');            } else if (priceVal.includes('_')) {              const parts = priceVal.split('_');              if (parts[0]) url.searchParams.append('filter_min_price', parts[0]);              if (parts[1]) url.searchParams.append('filter_max_price', parts[1]);            }          }                    if (this.discountFilter && this.discountFilter.value !== 'all' && this.discountFilter.value !== '0') {            const v = parseInt(this.discountFilter.value);            if (!isNaN(v) && v > 0) {              const ratio = (100 - v) / 100;              url.searchParams.append('min_discount_ratio', ratio.toString());            }          }                    if (this.offerTypeSelect && this.offerTypeSelect.value) {            url.searchParams.append('offer', this.offerTypeSelect.value);          }                    url.searchParams.append('filter_product_types', 'deals');                    url.searchParams.append('rows', this.getRowsLimit().toString());          let response;          try {             response = await fetch(url.toString());          } catch(e) {             if (window.location.protocol === 'file:') {                console.warn("[Tom's Guide Widget] fetch from file:// blocked by local CORS policy, falling back to Adviser mock.");                await this.fetchAdviserDeals(query);                return;             }             console.warn("Hawk fetch failed", e);             this.deals = [];             this.render();             return;          }          if (!response.ok) {            throw new Error('Hawk API Response Error');          }          const rawData = await response.json();          // Safely locate data array from potentially wrapped response          let offers = [];          let modelInfoArray = [];                    let brandFilterData = null;          if (rawData && rawData.widget && rawData.widget.data && Array.isArray(rawData.widget.data.filters)) {             brandFilterData = rawData.widget.data.filters.find(f => f.type === 'label_text_brand');          } else if (rawData && rawData.data && Array.isArray(rawData.data.filters)) {             brandFilterData = rawData.data.filters.find(f => f.type === 'label_text_brand');          }          if (brandFilterData && Array.isArray(brandFilterData.values) && brandFilterData.values.length > 0) {             this.populateBrandDropdown(brandFilterData.values);          } else {             if (this.brandFilterWrapper && this.selectedBrands.length === 0) {                this.brandFilterWrapper.style.display = 'none';             }          }                    if (rawData && rawData.widget && rawData.widget.data) {            if (Array.isArray(rawData.widget.data.offers)) offers = rawData.widget.data.offers;            if (rawData.widget.data.model_info && typeof rawData.widget.data.model_info === 'object') {              modelInfoArray = Array.isArray(rawData.widget.data.model_info) ? rawData.widget.data.model_info : Object.values(rawData.widget.data.model_info);            }          } else if (rawData && rawData.data) {            if (Array.isArray(rawData.data.offers)) offers = rawData.data.offers;            if (rawData.data.model_info && typeof rawData.data.model_info === 'object') {              modelInfoArray = Array.isArray(rawData.data.model_info) ? rawData.data.model_info : Object.values(rawData.data.model_info);            }          } else {            if (Array.isArray(rawData)) offers = rawData;            else if (rawData && Array.isArray(rawData.offers)) offers = rawData.offers;            else if (rawData && rawData.offers && Array.isArray(rawData.offers.offer)) offers = rawData.offers.offer;            else if (rawData && rawData.offers) offers = [].concat(rawData.offers);                        if (rawData && rawData.model_info && typeof rawData.model_info === 'object') {              modelInfoArray = Array.isArray(rawData.model_info) ? rawData.model_info : Object.values(rawData.model_info);            }          }          let modelDetails = {};          modelInfoArray.forEach(m => {            const mId = m.model_id || m.id;            if (mId) {              modelDetails[mId] = {                score: m.score != null ? parseFloat(m.score) : null,                brand: m.brand || null,                parent: (m.parents && Array.isArray(m.parents) && m.parents.length > 0) ? m.parents[0].name : null              };            }          });          offers.forEach(item => {            let data = { ...item };            const mId = data.model_id;            if (mId && modelDetails[mId]) {              data.review_score = modelDetails[mId].score;              data.model_brand = modelDetails[mId].brand;              data.model_parent = modelDetails[mId].parent;            } else {              data.review_score = null;            }                        let itemOffers = [];            if (Array.isArray(item.offers)) itemOffers = item.offers;            else if (Array.isArray(item.offer)) itemOffers = item.offer;            else if (item.offers && typeof item.offers === 'object') itemOffers = [item.offers];            else if (item.offer && typeof item.offer === 'object') itemOffers = [item.offer];            if (itemOffers.length > 0) {              itemOffers.forEach(subItem => {                let subData = { ...item, ...subItem };                const subId = subData.model_id;                if (subId && modelDetails[subId]) {                  subData.review_score = modelDetails[subId].score;                  subData.model_brand = modelDetails[subId].brand;                  subData.model_parent = modelDetails[subId].parent;                } else if (data.review_score != null) {                  subData.review_score = data.review_score;                }                if (subData.merchant && typeof subData.merchant === 'object') {                  subData.merchant_name = subData.merchant.name;                }                this.deals.push(this.extractDealData(subData));              });              return;            }                        if (item.merchant && typeof item.merchant === 'object') {              data.merchant_name = item.merchant.name;            }                        this.deals.push(this.extractDealData(data));          });                    this.sortData();          this.render();          if (typeof trackDealsAppeared !== 'undefined') {             trackDealsAppeared(this.widgetId, this.deals, this.revenueId, typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD', this.currentQuery, this.widgetTypeName);          }        }        async fetchAdviserDeals(query) {          // ======================================================================          // TODO: ADVISER API REPLACEMENT          // The code below simulates the Adviser API response using mock data.          // Once the real endpoint is ready, remove getAdviserMockData() and           // perform an actual fetch() request similar to fetchHawkDeals().          // Example:          // const area = this.getAreaCode();          // let apiUrl = `https://your-adviser-api.com/search?q=${query}&area=${area}`;          // if (this.priceFilter && this.priceFilter.value !== 'all') {          //   const val = this.priceFilter.value;          //   if (val === 'under50') apiUrl += '&filter_max_price=50';          //   else if (val === '50_100') apiUrl += '&filter_max_price=100';          //   else if (val === '100_200') apiUrl += '&filter_max_price=200';          //   else if (val === '200_500') apiUrl += '&filter_max_price=500';          // }          // const res = await fetch(apiUrl);          // const rawData = await res.json();          // ======================================================================          // Simulating network latency          await new Promise(resolve => setTimeout(resolve, 400));                    const rawData = this.getAdviserMockData();          let offers = [];                    if (rawData && rawData.data && rawData.data.Get && Array.isArray(rawData.data.Get.Deal)) {            offers = rawData.data.Get.Deal;          }                    // Basic client-side filtering for the mock if we want it to react to the query          const q = query.toLowerCase();          const selectedRetailer = (this.retailerSelect && this.retailerSelect.value) ? this.retailerSelect.value.toLowerCase() : null;                    offers.forEach(item => {            const dataObj = item;                        // Apply retailer filter            const itemRetailer = (dataObj.dataRetailer || '').toLowerCase();            if (selectedRetailer && itemRetailer !== selectedRetailer && !itemRetailer.includes(selectedRetailer)) {              return;            }                        // Apply mock price filter            let price = dataObj.dataDiscountedPrice || 0;            if (typeof price === 'string') {              price = parseFloat(price.replace(/[^0-9.]/g, ''));            }            let priceVal = null;            const min = this.customPriceMin ? this.customPriceMin.value : '';            const max = this.customPriceMax ? this.customPriceMax.value : '';            if (min || max) {               priceVal = `${min}_${max}`;            } else if (this.priceFilter && this.priceFilter.value !== 'all') {               priceVal = this.priceFilter.value;            }            if (priceVal) {              if (priceVal === 'under50' && price >= 50) return;              if (priceVal === 'over50' && price <= 50) return;              if (priceVal === 'over30' && price <= 30) return;              if (priceVal === 'over500' && price <= 500) return;              if (priceVal.includes('_')) {                 const parts = priceVal.split('_');                 if (parts[0] && price < parseFloat(parts[0])) return;                 if (parts[1] && price > parseFloat(parts[1])) return;              }            }                        // Map Adviser schema to our widget's expected schema            const mappedData = {              url: dataObj.linkHREF || dataObj.dataLink || '#',              image: dataObj.imageURL || (dataObj.image && dataObj.image.src) || '',              title: dataObj.dataProduct || (dataObj.product && dataObj.product.name) || 'Product Deal',              merchant: dataObj.dataRetailer || 'Retailer',              price: dataObj.dataDiscountedPrice || 0,              currency: dataObj.dataCurrency === 'USD' ? '$' : (dataObj.dataCurrency || '$'),              msrp: dataObj.dataOriginalPrice || null            };                        const titleLow = mappedData.title.toLowerCase();            const merchLow = mappedData.merchant.toLowerCase();                        // Smarter mock filtering            let isMatch = false;            if (q === '' || this.isBroadQuery(q)) {              isMatch = true;            } else if (titleLow.includes(q) || merchLow.includes(q)) {              isMatch = true;            } else if ((q.includes('laptop') || q.includes('mac') || q.includes('pc')) && (titleLow.includes('macbook') || titleLow.includes('laptop'))) {              isMatch = true;            } else if ((q.includes('tv') || q.includes('television')) && (titleLow.includes('tv') || titleLow.includes('oled') || titleLow.includes('qled'))) {              isMatch = true;            } else if ((q.includes('phone') || q.includes('smartphone')) && (titleLow.includes('galaxy') || titleLow.includes('phone'))) {              isMatch = true;            } else if ((q.match(/watch|fitness|run|shoe/)) && (titleLow.includes('forerunner') || titleLow.includes('saucony') || titleLow.includes('watch'))) {              isMatch = true;            }                        if (isMatch) {               this.deals.push(this.extractDealData(mappedData));            }          });                    let rowLimit = this.getRowsLimit();          // Intentionally omitting the slice here to allow "Load More" to work if the API returns more                    this.sortData();          this.render();          if (typeof trackDealsAppeared !== 'undefined') {             trackDealsAppeared(this.widgetId, this.deals, this.revenueId, typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD', this.currentQuery, this.widgetTypeName);          }        }        getAdviserMockData() {          return {            "data": {              "Get": {                "Deal": [                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 300,                    "dataOriginalPrice": 399,                    "dataProduct": "Samsung Galaxy A36",                    "dataRetailer": "Samsung",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/MqDYsukV3JBG54te6dEs7j.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 14,                    "dataOriginalPrice": 24,                    "dataProduct": "Blink Mini",                    "dataRetailer": "Amazon",                    "imageURL": "http://cdn.mos.cms.futurecdn.net/3JurmAjHsDa5tPdaHAwEV8.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 59,                    "dataOriginalPrice": 99,                    "dataProduct": "Ring Video Doorbell",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/rAh4uR7AsAsALCCLTXnLNJ.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 10,                    "dataOriginalPrice": 599,                    "dataProduct": "MacBook Neo",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/Lg4Dvg68j9SbB5CPNrTEpH.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 749,                    "dataOriginalPrice": 849,                    "dataProduct": "65\\\" Fire TV Omni 4K QLED TV",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/SG34ZWodUkLTxJvMTbjPYR.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 71,                    "dataOriginalPrice": 160,                    "dataProduct": "Saucony Hurricane 24",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/vxf7UD5T2Am7guVzFoFcZ4.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 649,                    "dataOriginalPrice": 749,                    "dataProduct": "Garmin Forerunner 970",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/3GKnEu7CdhtxPMfnPCMCiA.png"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 1049,                    "dataOriginalPrice": 1499,                    "dataProduct": "LG 48\\\" C4 4K OLED TV",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/imvwZV9zoMD6fn9Afuge35.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 1499,                    "dataOriginalPrice": 2199,                    "dataProduct": "Samsung 49\\\" Odyssey Neo G9 4K Gaming Monitor",                    "dataRetailer": "Amazon",                    "imageURL": "http://cdn.mos.cms.futurecdn.net/XWDEJ5dUAE2nhK8k3Jk7k7.png"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 299,                    "dataOriginalPrice": 699,                    "dataProduct": "EGOHOME Black Memory Foam Mattress (queen)",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/hMUemtAejNETLVYxNrktzm.jpg"                  }                ]              }            }          };        }        decodeHTML(html) {          if (!html) return '';          const txt = document.createElement("textarea");          txt.innerHTML = String(html);          return txt.value;        }        extractDealData(item) {          const priceRawStr = String(item.price || item.current_price || '0');          const msrpRawStr = String(item.was_price || item.msrp || item.original_price || '0');          const rawPrice = parseFloat(priceRawStr.replace(/[^\d.]/g, '')) || 0;          const rawMsrp = parseFloat(msrpRawStr.replace(/[^\d.]/g, '')) || 0;          const isCheckPrice = rawPrice === 0 || priceRawStr === '0.00' || priceRawStr === '0';                    let originalImageUrl = item.image || item.image_url || item.product_image || '';          let imageUrl = originalImageUrl;          if ((!imageUrl || isCheckPrice) && item.model_image_url) {             imageUrl = item.model_image_url;             originalImageUrl = imageUrl;          } else if ((!imageUrl || isCheckPrice) && item.model_image) {             imageUrl = item.model_image;             originalImageUrl = imageUrl;          }                    if (imageUrl) {            imageUrl = imageUrl.replace(/-(\d+)-(\d+)(\.[a-z.]+)$/i, '$3');          }                    let fallbackImage = '';          if (originalImageUrl && originalImageUrl !== imageUrl) {             fallbackImage = originalImageUrl;          } else if (item.model_image && item.model_image !== imageUrl) {             fallbackImage = item.model_image;          } else if (item.model_image_url && item.model_image_url !== imageUrl) {             fallbackImage = item.model_image_url;          }                    const rawCurrency = item.currency || item.currency_symbol || '$';                    let savingLabel = item.percentage_saving_label || '';          if (!savingLabel && rawMsrp > rawPrice && rawPrice > 0) {            const pct = Math.round(((rawMsrp - rawPrice) / rawMsrp) * 100);            if (pct > 0) {              savingLabel = `${pct}% OFF`;            }          }                    const isPrime = item.shipping && item.shipping.prime === true;                    let scoreRaw = (item.review_score !== undefined && item.review_score !== null && item.review_score > 0) ? parseFloat(item.review_score) : null;          let starRating = 0;          if (scoreRaw !== null) {            starRating = Math.round((scoreRaw > 10 ? scoreRaw / 20 : scoreRaw / 2) * 2) / 2;          }                    return {            id: item.offer_id || item.link || item.url || item.offer_link || Math.random().toString(),            url: item.link || item.url || item.offer_link || '#',            image: imageUrl,            fallbackImage: fallbackImage,            title: item.name || item.title || item.model_name || item.product_name || 'Unknown Product',            brand: item.brand || '',            productName: item.model_name || item.product_name || item.name || '',            merchant: item.merchant_name || item.merchant || item.retailer || 'Retailer',            price: item.price !== undefined ? String(item.price) : '0.00',            currency: this.decodeHTML(rawCurrency),            msrp: item.was_price || item.msrp || item.original_price || null,            rawPrice: rawPrice,            rawMsrp: rawMsrp,            hasWasPrice: (item.was_price !== undefined && item.was_price !== null),            isCheckPrice: isCheckPrice,            savingLabel: savingLabel,            isPrime: isPrime,            starRating: starRating > 0 ? starRating : null,            modelId: item.model_id || '',            productKey: item.product_key || '',            merchantId: (item.merchant && typeof item.merchant === 'object') ? item.merchant.id || '' : '',            matchId: item.match_id || '',            merchantNetwork: (item.merchant && typeof item.merchant === 'object') ? item.merchant.an || '' : '',            merchantUrl: (item.merchant && typeof item.merchant === 'object') ? item.merchant.url || '' : '',            modelBrand: item.model_brand || item.brand || '',            modelParent: item.model_parent || ''          };        }        sortData() {          const sortVal = this.sortSelect ? this.sortSelect.value : (this.getViewMode() === 'savings_squad' ? 'date_desc' : 'discount_desc');          if (sortVal === 'price_asc') {            this.deals.sort((a, b) => a.rawPrice - b.rawPrice);          } else if (sortVal === 'price_desc') {            this.deals.sort((a, b) => b.rawPrice - a.rawPrice);          } else if (sortVal === 'discount_desc') {            this.deals.sort((a, b) => {              const aDiscount = a.rawMsrp > a.rawPrice ? (a.rawMsrp - a.rawPrice) : 0;              const bDiscount = b.rawMsrp > b.rawPrice ? (b.rawMsrp - b.rawPrice) : 0;              return bDiscount - aDiscount;            });          } else if (sortVal === 'date_desc') {             this.deals.sort((a, b) => {                let dateA = 0;                let dateB = 0;                if (a && a.modifiedDate) {                   const valA = Array.isArray(a.modifiedDate) ? a.modifiedDate[0] : a.modifiedDate;                   dateA = new Date(valA).getTime();                   if (isNaN(dateA)) dateA = 0;                }                if (b && b.modifiedDate) {                   const valB = Array.isArray(b.modifiedDate) ? b.modifiedDate[0] : b.modifiedDate;                   dateB = new Date(valB).getTime();                   if (isNaN(dateB)) dateB = 0;                }                return dateB - dateA;             });          }        }        getFilteredDeals() {          let filteredDeals = [...this.deals];                    if (this.dealModeToggle && this.dealModeToggle.checked) {            filteredDeals = filteredDeals.filter(d => d.hasWasPrice || (d.msrp && d.rawMsrp > d.rawPrice));          }                    return filteredDeals;        }        showLoading() {          const _div = '<' + '/div>';          const skeletonCardHtml = `            \x3Cdiv class="tg-df-card">              \x3Cdiv class="tg-df-card-image-box">                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-img">${_div}              ${_div}              \x3Cdiv class="tg-df-card-body">                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short">${_div}                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text title">${_div}                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text title">${_div}                \x3Cdiv class="tg-df-card-footer mt-auto">                  \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="height:24px;">${_div}                  \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text" style="height:44px; margin-top:8px;">${_div}                ${_div}              ${_div}            ${_div}`;          this.grid.innerHTML = Array(4).fill(skeletonCardHtml).join('');        }        showError() {          const _div = '<' + '/div>';          this.grid.innerHTML = `\x3Cdiv class="tg-df-message">            An error occurred while finding deals. Please check your connection and try again.          ${_div}`;        }        escapeHTML(str) {          if (!str) return '';          return String(str).replace(/[&<>'"]/g, tag => ({              '&': '&', '<': '<', '>': '>', "'": ''', '"': '"'          }[tag] || tag));        }                bindCouponButtons() {          const btns = this.root.querySelectorAll('.tg-df-tag-coupons');          btns.forEach(btn => {            btn.addEventListener('click', (e) => {              e.preventDefault();              e.stopPropagation();              const merchant = btn.getAttribute('data-merchant');              this.openVouchersModal(merchant);            });          });                    const closeBtn = this.root.querySelector('#tg-df-vouchers-close');          const backdrop = this.root.querySelector('#tg-df-vouchers-modal');          if (closeBtn) {            closeBtn.onclick = () => this.closeVouchersModal();          }          if (backdrop) {            backdrop.onclick = (e) => {              if (e.target === backdrop) this.closeVouchersModal();            };          }        }                closeVouchersModal() {          const backdrop = this.root.querySelector('#tg-df-vouchers-modal');          if (backdrop) backdrop.classList.remove('active');        }                async checkMerchantsCouponsBulk(merchants) {          if (!merchants || merchants.length === 0) return {};          const controller = new AbortController();          const timeoutId = setTimeout(() => controller.abort(), 4000);          try {            const area = this.getAreaCode();            const url = new URL('https://search-api.fie.future.net.uk/widget.php');            url.searchParams.append('model_name', 'Everything');            url.searchParams.append('language', 'en-GB');            if (area) url.searchParams.append('area', area);            url.searchParams.append('combine_product_types', '1');            url.searchParams.append('filter_merchant_name', merchants.join(','));            url.searchParams.append('all_filters', 'false');            url.searchParams.append('exclude_unlabelled', 'false');            url.searchParams.append('include_specs', 'false');            url.searchParams.append('sort', 'voucher');            url.searchParams.append('distinct_merchants', 'natural');            url.searchParams.append('filter_product_types', 'vouchers,offer_deals,newsletter');            url.searchParams.append('rows', '120');            url.searchParams.append('origin', 'widgets-clientside');                        let res; try { res = await fetch(url.toString(), { signal: controller.signal }); } catch (e) { return {}; }            clearTimeout(timeoutId);            if (!res.ok) return {};            const data = await res.json();                        let offers = [];            if (data && data.widget && data.widget.data && Array.isArray(data.widget.data.offers)) {              offers = data.widget.data.offers;            } else if (data && data.data && Array.isArray(data.data.offers)) {              offers = data.data.offers;            } else if (Array.isArray(data)) {              offers = data;            } else if (data && Array.isArray(data.offers)) {              offers = data.offers;            } else if (data && data.offers && Array.isArray(data.offers.offer)) {              offers = data.offers.offer;            } else if (data && Array.isArray(data.data)) {              offers = data.data;            }                        const foundMerchants = new Set();            offers.forEach(o => {              let mName = o.merchant_name || o.merchant || o.retailer;              if (mName && typeof mName === 'object') mName = mName.name;              if (mName) foundMerchants.add(String(mName).toLowerCase());            });            const resultMap = {};            merchants.forEach(m => {              if (m) resultMap[m] = foundMerchants.has(String(m).toLowerCase());            });            return resultMap;          } catch (e) {            return {};          }        }                async openVouchersModal(merchantName) {          const backdrop = this.root.querySelector('#tg-df-vouchers-modal');          const title = this.root.querySelector('#tg-df-vouchers-title');          const content = this.root.querySelector('#tg-df-vouchers-content');                    if (!backdrop || !content) return;                    // HACK: Hide closing tags          const _div = '<' + '/div>';          const _span = '<' + '/span>';          const _a = '<' + '/a>';          const _h4 = '<' + '/h4>';          const _svg = '<' + '/svg>';          const _circle = '<' + '/circle>';          const _polyline = '<' + '/polyline>';          const _rect = '<' + '/rect>';          const _path = '<' + '/path>';                    title.innerText = `${merchantName} Coupons & Deals`;          content.innerHTML = `\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text">${_div}                               \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text">${_div}`;          backdrop.classList.add('active');                    try {            const area = this.getAreaCode();            const url = new URL('https://search-api.fie.future.net.uk/widget.php');            url.searchParams.append('model_name', 'Everything');            url.searchParams.append('language', 'en-GB');            if (area) url.searchParams.append('area', area);            url.searchParams.append('combine_product_types', '1');            url.searchParams.append('filter_merchant_name', merchantName);            url.searchParams.append('all_filters', 'false');            url.searchParams.append('exclude_unlabelled', 'false');            url.searchParams.append('include_specs', 'false');            url.searchParams.append('sort', 'voucher');            url.searchParams.append('distinct_merchants', 'natural');            url.searchParams.append('filter_product_types', 'vouchers,offer_deals,newsletter');            url.searchParams.append('rows', '50');            url.searchParams.append('origin', 'widgets-clientside');                        const res = await fetch(url.toString());            if (!res.ok) throw new Error('API Error');            const data = await res.json();                        let offers = [];            if (data && data.widget && data.widget.data && Array.isArray(data.widget.data.offers)) {              offers = data.widget.data.offers;            } else if (data && data.data && Array.isArray(data.data.offers)) {              offers = data.data.offers;            } else if (Array.isArray(data)) {              offers = data;            } else if (data && Array.isArray(data.offers)) {              offers = data.offers;            } else if (data && data.offers && Array.isArray(data.offers.offer)) {              offers = data.offers.offer;            } else if (data && Array.isArray(data.data)) {              offers = data.data;            }                        if (offers.length === 0) {              content.innerHTML = `\x3Cdiv class="tg-df-message">No vouchers currently available for ${this.escapeHTML(merchantName)}.${_div}`;              return;            }                        content.innerHTML = offers.map((v, idx) => {              let offerObj = v;              if (v.offers && v.offers.offer) {                offerObj = Array.isArray(v.offers.offer) ? v.offers.offer[0] : v.offers.offer;              } else if (v.offer) {                offerObj = Array.isArray(v.offer) ? v.offer[0] : v.offer;              }              let logoUrl = v.logo_url || offerObj.logo_url || '';              if (!logoUrl && v.merchant) {                if (Array.isArray(v.merchant) && v.merchant.length > 0) logoUrl = v.merchant[0].logo_url || '';                else logoUrl = v.merchant.logo_url || '';              }                            const offerName = offerObj.name || offerObj.title || v.name || v.title || 'Special Offer';              const endTime = offerObj.end_time || v.end_time || '';              const linkUrl = offerObj.link || offerObj.url || v.link || v.url || '#';                            let foundVoucherCode = '';              const findVoucherCode = (obj) => {                if (!obj || typeof obj !== 'object') return;                if (obj.type === 'voucher_code' && obj.display_value) {                  foundVoucherCode = obj.display_value;                  return;                }                if (Array.isArray(obj)) {                  for (const item of obj) {                    findVoucherCode(item);                    if (foundVoucherCode) return;                  }                } else {                  for (const k in obj) {                    if (Object.prototype.hasOwnProperty.call(obj, k)) {                      findVoucherCode(obj[k]);                      if (foundVoucherCode) return;                    }                  }                }              };              findVoucherCode(offerObj);              if (!foundVoucherCode) findVoucherCode(v);                            const voucherCode = foundVoucherCode || offerObj.voucher_code || v.voucher_code || '';              const codeHtml = voucherCode ? `\x3Cspan class="tg-df-voucher-code" data-action="copy-code" data-code="${this.escapeHTML(voucherCode)}" title="Copy to clipboard">                \x3Cspan class="tg-df-voucher-code-text">${this.escapeHTML(voucherCode)}${_span}                \x3Csvg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-left:6px;flex-shrink:0;" class="tg-df-voucher-copy-icon">                  \x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2">${_rect}                  \x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1">${_path}                ${_svg}              ${_span}` : '';                            const logoHtml = logoUrl                 ? `\x3Cimg src="${this.escapeHTML(logoUrl)}" alt="${this.escapeHTML(offerName)}" class="tg-df-voucher-logo" />`                 : `\x3Cdiv class="tg-df-voucher-logo" style="background:#e2e8f0;">${_div}`;                            let expiryHtml = '';              if (endTime) {                let dStr = endTime;                if (!isNaN(dStr) && String(dStr).length === 10) dStr = Number(dStr) * 1000;                const d = new Date(dStr);                if (!isNaN(d.getTime())) {                  const options = { year: 'numeric', month: 'short', day: 'numeric' };                  expiryHtml = `                    \x3Cdiv class="tg-df-voucher-expiry">                      \x3Csvg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">                        \x3Ccircle cx="12" cy="12" r="10">${_circle}                        \x3Cpolyline points="12 6 12 12 16 14">${_polyline}                      ${_svg}                      Expires ${d.toLocaleDateString(undefined, options)}                    ${_div}`;                }              }              const revenueIdVal = generateRevenueId(linkUrl, offerName, merchantName, null);              const rewrittenLinkUrl = rewriteAffiliateLink(linkUrl, area, revenueIdVal);              return `                \x3Ca href="${this.escapeHTML(rewrittenLinkUrl)}" target="_blank" rel="noopener nofollow" class="tg-df-voucher-item"                  data-action="voucher-click"                  data-product-name="${this.escapeHTML(offerName)}"                  data-merchant-name="${this.escapeHTML(merchantName)}"                  data-analytics-id="${this.escapeHTML(offerObj.offer_id || offerObj.id || v.id || '')}"                  data-price=""                  data-previous-price=""                  data-original-link="${this.escapeHTML(linkUrl)}"                  data-revenue-id="${revenueIdVal}"                  data-index="${idx}"                  data-total="${offers.length}"                  data-in-stock="true"                  data-currency="USD"                  data-model-id="${this.escapeHTML(offerObj.model_id || v.model_id || offerObj.id || v.id || '')}"                  data-merchant-id="${this.escapeHTML(offerObj.merchant_id || offerObj.merchant?.id || '')}"                >                  ${logoHtml}                  \x3Cdiv class="tg-df-voucher-content">                    \x3Ch4 class="tg-df-voucher-title">${this.escapeHTML(offerName)}${_h4}                    ${codeHtml}                    ${expiryHtml}                  ${_div}                ${_a}              `;            }).join('');                        // Attach copy functionality            const copyBtns = content.querySelectorAll('[data-action="copy-code"]');            copyBtns.forEach(btn => {              btn.addEventListener('click', async (e) => {                e.preventDefault();                e.stopPropagation();                                const code = btn.getAttribute('data-code');                if (!code) return;                                try {                  const copyToClipboard = async (text) => {                     if (window.navigator.clipboard && window.isSecureContext) {                        try { await window.navigator.clipboard.writeText(text); return; } catch (e) {}                     }                     const textArea = document.createElement("textarea");                     textArea.value = text;                     textArea.style.position = "fixed";                     document.body.appendChild(textArea);                     textArea.focus();                     textArea.select();                     document.execCommand('copy');                     textArea.remove();                  };                  await copyToClipboard(code);                                    // Visual feedback                  btn.classList.add('copied');                  const textSpan = btn.querySelector('.tg-df-voucher-code-text');                  const iconSvg = btn.querySelector('.tg-df-voucher-copy-icon');                                    const origText = textSpan.innerText;                  const origIcon = iconSvg.innerHTML;                                    textSpan.innerText = 'Copied!';                  iconSvg.innerHTML = `\x3Cpolyline points="20 6 9 17 4 12">${_polyline}`;                                    setTimeout(() => {                    if (btn) {                      btn.classList.remove('copied');                      if (textSpan) textSpan.innerText = origText;                      if (iconSvg) iconSvg.innerHTML = origIcon;                    }                  }, 2000);                                    trackElementInteraction({                    id: 'voucher-code-copy',                    name: 'Copy Voucher Code',                    label: `Copied ${code} for ${merchantName}`                  });                } catch (err) {                  console.warn('Failed to copy text: ', err);                }              });            });            // Attach voucher click tracking            const voucherBtns = content.querySelectorAll('[data-action="voucher-click"]');            voucherBtns.forEach(btn => {              btn.addEventListener('click', (e) => {                if (e.target.closest('[data-action="copy-code"]')) return;                                const productName = btn.getAttribute('data-product-name');                const merchantNameAttr = btn.getAttribute('data-merchant-name');                const productId = btn.getAttribute('data-analytics-id');                const price = parseFloat(btn.getAttribute('data-price')) || null;                const prevPriceStr = btn.getAttribute('data-previous-price');                const previousPrice = prevPriceStr ? parseFloat(prevPriceStr) : null;                const originalLink = btn.getAttribute('data-original-link');                const rewrittenLink = btn.getAttribute('href');                const revenueId = btn.getAttribute('data-revenue-id');                const index = parseInt(btn.getAttribute('data-index'), 10) || 0;                const inStock = btn.getAttribute('data-in-stock') === 'true';                const totalText = btn.getAttribute('data-total');                const totalDeals = parseInt(totalText, 10) || 0;                const productCategoryName = 'deals';                const trackingParams = {                  widgetId: this.widgetId,                  productCategoryName: productCategoryName,                  product: {                    modelId: btn.getAttribute('data-model-id') || null,                    matchId: btn.getAttribute('data-match-id') || null,                    brand: btn.getAttribute('data-model-brand') || null,                    parent: btn.getAttribute('data-model-parent') || null,                    name: productName,                    price: price,                    previousPrice: previousPrice,                    link: rewrittenLink,                    originalLink: originalLink,                    inStock: inStock                  },                  zeroBasedProductIndexOrNull: index,                  totalDealsOrProducts: totalDeals,                   merchant: {                    id: btn.getAttribute('data-merchant-id') || null,                    network: btn.getAttribute('data-merchant-network') || null,                    url: btn.getAttribute('data-merchant-url') || null,                    name: merchantNameAttr                  },                  revenueId: revenueId,                  widgetTypeName: this.widgetTypeName,                  isoCurrencyCode: btn.getAttribute('data-currency') || 'USD'                };                if (typeof trackDealClick === 'function') {                  trackDealClick(trackingParams);                }              });            });                                  } catch (e) {            console.warn(e);            content.innerHTML = `\x3Cdiv class="tg-df-message">Failed to load vouchers.${_div}`;          }        }        render() {          try {            if (this.getViewMode() === 'savings_squad' && this.airedaleTags.length > 0) {              if (this.categoryFilterWrapper) {                 this.categoryFilterWrapper.style.display = 'flex';              }              if (this.categoryFilter) {                 const _option = '<' + '/option>';                 let optionsHtml = `\x3Coption value="all">All Categories${_option}`;                 this.airedaleTags.forEach(tag => {                    const isSelected = this.activeDealTag === tag ? 'selected' : '';                    optionsHtml += `\x3Coption value="${this.escapeHTML(tag)}" ${isSelected}>${this.escapeHTML(tag)} (${this.airedaleTagCounts[tag] || 0})${_option}`;                 });                 this.categoryFilter.innerHTML = optionsHtml;                 this.categoryFilter.value = this.activeDealTag || 'all';              }            } else {               if (this.categoryFilterWrapper) {                  this.categoryFilterWrapper.style.display = 'none';               }            }            const displayDeals = this.getFilteredDeals();          // HACK: Hide closing tags from the CMS HTML sanitizer so it doesn't strip them during in-page injection          const _div = '<' + '/div>';          const _span = '<' + '/span>';          const _a = '<' + '/a>';          const _h3 = '<' + '/h3>';          const _p = '<' + '/p>';          const _strong = '<' + '/strong>';          const _sup = '<' + '/sup>';          const _button = '<' + '/button>';          if (displayDeals.length === 0) {            if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {              if (this.deals.length > 0) {                 this.grid.innerHTML = `\x3Cdiv class="tg-df-message">                  No deals match your selected filters.                ${_div}`;              } else if (this.getViewMode() === 'savings_squad' && this.currentQuery.length <= 2) {                 // Do not show "no exact matches" if query is empty for savings_squad                 this.grid.innerHTML = '';              } else {                 this.grid.innerHTML = `\x3Cdiv class="tg-df-message">                  No exact matches found for "\x3Cstrong>${this.escapeHTML(this.currentQuery)}${_strong}". Try adjusting your search term.                ${_div}`;              }            } else {              this.grid.innerHTML = `\x3Cdiv class="tg-df-message">                Search product or category names to discover the best deals from across the web.              ${_div}`;            }            return;          }          let dealsHtml = displayDeals.slice(0, this.displayLimit).map((deal, index) => {            try {               const currencySym = this.escapeHTML(deal.currency);               const isoCurrencyCode = normalizeCurrency(currencySym);               const escapedPrice = this.escapeHTML(deal.price);               const escapedMsrp = this.escapeHTML(deal.msrp);               const areaCode = this.getAreaCode();                              const revenueId = generateRevenueId(deal.url, deal.title, deal.merchant, null);               const originalLink = deal.url;               const rewrittenLink = rewriteAffiliateLink(deal.url, areaCode, revenueId);                        const productCategoryName = 'deals';            const dataAttr = `              data-action="${deal.isCheckPrice ? 'view-similar-click' : 'deal-click'}"              data-analytics-id="${this.escapeHTML(deal.externalProductId || deal.id || '')}"              data-product-name="${this.escapeHTML(deal.title)}"              data-merchant-name="${this.escapeHTML(deal.merchant)}"              data-price="${deal.rawPrice || ''}"              data-previous-price="${deal.rawMsrp || ''}"              data-original-link="${this.escapeHTML(originalLink)}"              data-revenue-id="${revenueId}"              data-index="${index}"              data-total="${displayDeals.length}"              data-in-stock="${deal.inStock !== false}"              data-currency="${this.escapeHTML(isoCurrencyCode)}"              data-model-id="${this.escapeHTML(deal.modelId || '')}"              data-product-key="${this.escapeHTML(deal.productKey || '')}"              data-merchant-id="${this.escapeHTML(deal.merchantId || '')}"            `;                        let priceGroupHtml = '';            let isSavingsSquadMode = this.getViewMode() === 'savings_squad';            let ctaText = 'View Deal';            let formattedPrice = '';            let msrpHtml = '';                        if (deal.isCheckPrice) {              ctaText = isSavingsSquadMode ? 'View Deal' : 'Check Price';              if (isSavingsSquadMode) {                priceGroupHtml = `                  \x3Cdiv class="tg-df-card-merchant-wrapper">                    \x3Cspan class="tg-df-card-merchant-pill" title="${this.escapeHTML(deal.merchant)}">${this.escapeHTML(deal.merchant)}${_span}                  ${_div}                  \x3Cdiv class="tg-df-card-price-group">                  ${_div}                `;              } else {                priceGroupHtml = `                  \x3Cdiv class="tg-df-card-merchant-wrapper">                    \x3Cspan class="tg-df-card-merchant-pill" title="${this.escapeHTML(deal.merchant)}">${this.escapeHTML(deal.merchant)}${_span}                  ${_div}                  \x3Cdiv class="tg-df-card-price-group">                    \x3Cspan class="tg-df-card-price" style="font-size: 15px; font-weight: 500; font-style: italic;">See price at retailer${_span}                  ${_div}                `;              }            } else {              // Format Price              formattedPrice = escapedPrice.includes(currencySym)                 ? escapedPrice                 : `${currencySym}${escapedPrice}`;                              // Format MSRP              msrpHtml = deal.msrp && deal.rawMsrp > deal.rawPrice                ? `\x3Cspan class="tg-df-card-msrp">${escapedMsrp.includes(currencySym) ? escapedMsrp : currencySym + escapedMsrp}${_span}`                : '';                              priceGroupHtml = `                \x3Cdiv class="tg-df-card-merchant-wrapper">                  \x3Cspan class="tg-df-card-merchant-pill" title="${this.escapeHTML(deal.merchant)}">${this.escapeHTML(deal.merchant)}${_span}                ${_div}                \x3Cdiv class="tg-df-card-price-group">                  ${isSavingsSquadMode ? '' : `                  \x3Cspan class="tg-df-card-price">${formattedPrice}${_span}                  ${msrpHtml}                  `}                ${_div}              `;            }                        const discountBadgeHtml = deal.savingLabel && !deal.isCheckPrice              ? `\x3Cspan class="tg-df-card-discount-badge">${this.escapeHTML(deal.savingLabel)}${_span}`              : '';                          // HACK for CMS            const _button = '<' + '/button>';            const _svg = '<' + '/svg>';            const _path = '<' + '/path>';            const _rect = '<' + '/rect>';            const _circle = '<' + '/circle>';            const _polyline = '<' + '/polyline>';            const _line = '<' + '/line>';                        let badgesHtml = '';            const primeBadge = deal.isPrime ? `              \x3Cspan class="tg-df-tag tg-df-tag-prime">                \x3Csvg width="12" height="12" viewBox="0 0 24 24" fill="currentColor">                  \x3Cpath d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z">${_path}                ${_svg} Prime              ${_span}            ` : '';                        const couponsBadge = deal.merchant && deal.merchant.toLowerCase().includes('amazon') ? '' : `              \x3Cdiv class="tg-df-coupon-wrapper" data-merchant="${this.escapeHTML(deal.merchant)}" style="display:inline-flex; align-items:center;">                \x3Cdiv class="tg-df-coupon-spinner">${_div}                \x3Cbutton type="button" class="tg-df-tag tg-df-tag-coupons" data-action="coupons-click" data-merchant="${this.escapeHTML(deal.merchant)}" style="display:none;">                  \x3Csvg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">                    \x3Cpath d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z">${_path}                    \x3Cline x1="7" y1="7" x2="7.01" y2="7">${_line}                  ${_svg} Coupons                ${_button}              ${_div}            `;                        // Note: We always add coupons badge if there's a chance, but to allow 3-line titles we check wrapper display state            badgesHtml = `              \x3Cdiv class="tg-df-card-badges">                ${primeBadge}                ${couponsBadge}              ${_div}            `;            const _linearGradient = '<' + '/linearGradient>';            const _polygon = '<' + '/polygon>';            const _stop = '<' + '/stop>';            const _defs = '<' + '/defs>';                        let starHtml = '';            if (deal.starRating) {              let rating = deal.starRating;                            if (rating > 0) {                const fullStars = Math.floor(rating);                const halfStar = (rating - fullStars) >= 0.5 ? 1 : 0;                const emptyStars = Math.max(0, 5 - fullStars - halfStar);                const blue = '#1f69ff'; // Tom's guide brand color from VIEW DEAL button                const gray = '#cbd5e1';                                const starSvgFull = `\x3Csvg width="14" height="14" viewBox="0 0 24 24" fill="${blue}" stroke="${blue}" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpolygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26">${_polygon}${_svg}`;                                const gradId = 'half_grad_' + Math.floor(Math.random()*1000000);                const starSvgHalf = `\x3Csvg width="14" height="14" viewBox="0 0 24 24" stroke="${blue}" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">\x3Cdefs>\x3ClinearGradient id="${gradId}" x1="0" x2="1" y1="0" y2="0">\x3Cstop offset="50%" stop-color="${blue}">${_stop}\x3Cstop offset="50%" stop-color="transparent">${_stop}${_linearGradient}${_defs}                  \x3Cpolygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26" fill="url(#${gradId})">${_polygon}${_svg}`;                                  const starSvgEmpty = `\x3Csvg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="${gray}" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpolygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26">${_polygon}${_svg}`;                                let stars = [];                for (let i=0; i<fullStars; i++) stars.push(starSvgFull);                if (halfStar) stars.push(starSvgHalf);                for (let i=0; i<emptyStars; i++) stars.push(starSvgEmpty);                                starHtml = `\x3Cdiv class="tg-df-card-stars" style="display:flex;align-items:center;margin-bottom:8px;font-size:13px;font-weight:600;color:var(--tg-df-text-muted);">                  \x3Cspan style="margin-right:6px;">Tom's Guide:${_span}                  \x3Cdiv style="display:flex;gap:2px;">                    ${stars.join('')}                  ${_div}                ${_div}`;              }            }            let htmlOutput = '';            if (isSavingsSquadMode) {              htmlOutput += `              \x3Cdiv class="hawk-deal-widget-container tg-df-mobile-only" data-collapsible="true">                ${this.editorMode ? `\x3Cinput type="checkbox" class="tg-df-deal-checkbox" data-id="${this.escapeHTML(deal.id)}" ${this.selectedDeals.has(deal.id) ? 'checked' : ''} style="margin-bottom: 10px;">` : ''}                \x3Cdiv class="hawk-deal-widget-wrap">                  \x3Cdiv class="hawk-deal-widget-image-container">                    \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" rel="sponsored noopener" target="_blank" class="hawk-affiliate-link-deal-widget" ${dataAttr}>                      \x3Cimg ${deal.image ? `src="${this.escapeHTML(deal.image)}"` : ''} alt="${this.escapeHTML(deal.title)}" class="hawk-lazy-image-deal-widget" loading="lazy" width="140" height="160" onerror="${deal.fallbackImage ? `if(!this.dataset.fb) { this.dataset.fb='1'; this.src='${this.escapeHTML(deal.fallbackImage)}'; } else { this.style.opacity='0'; }` : `this.style.opacity='0';`}">                    ${_a}                  ${_div}                  \x3Cdiv class="hawk-deal-widget-text-cta-container">                    \x3Cdiv class="hawk-deal-widget-text-body-container">                      \x3Cdiv class="hawk-deal-widget-text-body-main">                        \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-container" rel="sponsored noopener" target="_blank" ${dataAttr}>                          ${deal.isCheckPrice ? `                            \x3Cspan class="hawk-deal-widget-title-product-title">${this.escapeHTML(deal.title)}${_span}                          ` : `                            \x3Cspan class="hawk-deal-widget-title-product-title">${deal.brand ? this.escapeHTML(deal.brand) + ' ' : ''}${this.escapeHTML(deal.productName || deal.title || '')}:${_span}                          `}                        ${_a}                        ${!deal.isCheckPrice && deal.rawMsrp && deal.rawMsrp > deal.rawPrice ? `                          \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-container" rel="sponsored noopener" target="_blank" ${dataAttr}>                            \x3Cspan class="hawk-deal-widget-title-was-price">was ${currencySym}${escapedMsrp}${_span}                          ${_a}                        ` : ''}                        \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-container" rel="sponsored noopener" target="_blank" ${dataAttr}>                          \x3Cspan class="hawk-deal-widget-title-retailer-price">                            ${!deal.isCheckPrice ? `                              \x3Cspan class="hawk-deal-widget-title-price">now ${formattedPrice}${_span}                              \x3Cspan class="hawk-deal-widget-title-retailer"> at ${this.escapeHTML(deal.merchant)}${_span}                            ` : `                              \x3Cspan class="hawk-deal-widget-title-price">See price at ${this.escapeHTML(deal.merchant)}${_span}                            `}                          ${_span}                        ${_a}                        ${deal.description ? `\x3Cdiv class="hawk-deal-widget-text-body-description">\x3Cp>${this.escapeHTML(deal.description)}${_p}${_div}` : ''}                      ${_div}                    ${_div}                    \x3Cdiv class="hawk-deal-widget-footer">                      \x3Cdiv class="hawk-deal-widget-button-wrapper">                        \x3Cdiv class="hawk-deal-widget-preferred-partner-wrapper">                          \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-deal-button" rel="sponsored noopener" target="_blank" ${dataAttr}>                            \x3Cspan>${deal.isCheckPrice ? 'Check Price' : 'View Deal'}${_span}                          ${_a}                        ${_div}                      ${_div}                    ${_div}                  ${_div}                ${_div}              ${_div}              `;            }            htmlOutput += `              \x3Cdiv class="tg-df-card ${isSavingsSquadMode ? 'tg-df-desktop-only' : ''}">                ${this.editorMode ? `\x3Cinput type="checkbox" class="tg-df-deal-checkbox" data-id="${this.escapeHTML(deal.id)}" ${this.selectedDeals.has(deal.id) ? 'checked' : ''}>` : ''}                \x3Cdiv class="tg-df-card-image-box">                  ${discountBadgeHtml}                  \x3Ca href="${this.escapeHTML(rewrittenLink)}" ${dataAttr} target="_blank" rel="noopener nofollow" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;">                    \x3Cimg ${deal.image ? `src="${this.escapeHTML(deal.image)}"` : ''} alt="${this.escapeHTML(deal.title)}" class="tg-df-card-image" loading="lazy" onerror="${deal.fallbackImage ? `if(!this.dataset.fb) { this.dataset.fb='1'; this.src='${this.escapeHTML(deal.fallbackImage)}'; } else { this.style.opacity='0'; }` : `this.style.opacity='0';`}">                  ${_a}                ${_div}                \x3Cdiv class="tg-df-card-body">                  ${starHtml}                  ${badgesHtml}                  \x3Ch3 class="tg-df-card-title tg-df-custom-savings-squad-title" title="${this.escapeHTML(deal.title)}">                    \x3Ca href="${this.escapeHTML(rewrittenLink)}" disable-tracking="true" target="_blank" rel="noopener nofollow" style="text-decoration: none; color: inherit;">                      ${isSavingsSquadMode                         ? (deal.isCheckPrice                             ? (deal.title && deal.title.includes(':')                                 ? `\x3Cstrong>${this.escapeHTML(deal.title.substring(0, deal.title.indexOf(':') + 1))}${_strong}\x3Cspan style="color: #1f69ff; font-weight: normal;">${this.escapeHTML(deal.title.substring(deal.title.indexOf(':') + 1))}${_span}`                                : this.escapeHTML(deal.title)                              )                             : `\x3Cstrong>${deal.brand ? this.escapeHTML(deal.brand) + ' ' : ''}${this.escapeHTML(deal.productName || deal.title || '')}:${_strong} ${deal.rawMsrp && deal.rawMsrp > deal.rawPrice ? `\x3Cspan style="color: #d0021b; text-decoration: line-through; font-weight: normal; margin-right: 4px;">was ${currencySym}${escapedMsrp}${_span} ` : ''}\x3Cspan style="color: #1f69ff; font-weight: normal;">now ${formattedPrice} at ${this.escapeHTML(deal.merchant)}${_span}`                          )                        : this.escapeHTML(deal.title)                      }                    ${_a}                  ${_h3}                  ${deal.description ? `\x3Cp style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 12px; line-height: 1.4;">${this.escapeHTML(deal.description)}${_p}` : ''}                  \x3Cdiv class="tg-df-card-footer">                    ${priceGroupHtml}                    \x3Ca href="${this.escapeHTML(rewrittenLink)}" ${dataAttr} target="_blank" rel="noopener nofollow" class="tg-df-card-cta ${isSavingsSquadMode ? 'tg-df-cta-savings-squad' : ''}" style="text-decoration: none;">${ctaText}${_a}                  ${_div}                ${_div}              ${_div}            `;                        return htmlOutput;            } catch (e) {               console.log("Error rendering deal in map for index", index, typeof deal === 'object' ? JSON.stringify(deal) : deal, "MSG:", e.message);               return '';            }          }).join('');                    if (displayDeals.length > this.displayLimit || ((this.getViewMode() === 'carousel' || this.getViewMode() === 'auto') && displayDeals.length > 0 && displayDeals.length % ((this.rowsSelect && this.rowsSelect.value) ? parseInt(this.rowsSelect.value, 10) : 12) === 0)) {            if (this.getViewMode() === 'carousel') {               dealsHtml += `                 \x3Cbutton type="button" class="tg-df-load-more-card tg-df-load-more">                   \x3Csvg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-bottom: 8px;">\x3Cpath d="M5 12h14">\x3C/path>\x3Cpath d="m12 5 7 7-7 7">\x3C/path>\x3C/svg>                   Load More                 ${_button}               `;            } else {               dealsHtml += `                 \x3Cdiv style="width: 100%; display: flex; justify-content: center; margin-top: 16px; grid-column: 1 / -1;">                   \x3Cbutton type="button" class="tg-df-tag-outline tg-df-load-more" style="padding: 8px 24px; border-radius: 100px; font-weight: 600; font-size: 14px; cursor: pointer; display: flex; align-items: center;">Load More${_button}                 ${_div}               `;            }          }                    this.grid.innerHTML = dealsHtml;          // Inject JSON-LD          try {            let targetNode = this.hostContainer || document.head;            let jsonLdScript = targetNode.querySelector('#tg-df-json-ld-' + this.widgetId);            if (!jsonLdScript) {                jsonLdScript = document.createElement('script');                jsonLdScript.type = 'application/ld+json';                jsonLdScript.id = 'tg-df-json-ld-' + this.widgetId;                targetNode.appendChild(jsonLdScript);            }            const jsonLdData = {              "@context": "https://schema.org",              "@type": "ItemList",              "itemListElement": displayDeals.slice(0, this.displayLimit).map((deal, index) => {                 let isoCurrency = "USD";                 if (deal.currency === '£') isoCurrency = "GBP";                 else if (deal.currency === '€') isoCurrency = "EUR";                 else if (deal.currency === 'A$') isoCurrency = "AUD";                 else if (deal.currency === 'CA$') isoCurrency = "CAD";                 const areaCode = typeof this.getAreaCode === 'function' ? this.getAreaCode() : 'US';                 const revenueId = typeof generateRevenueId === 'function' ? generateRevenueId(deal.url, deal.title, deal.merchant, null) : '';                 const rewrittenLink = typeof rewriteAffiliateLink === 'function' ? rewriteAffiliateLink(deal.url, areaCode, revenueId) : deal.url;                 return {                   "@type": "ListItem",                   "position": index + 1,                   "item": {                     "@type": "Product",                     "name": deal.title,                     "image": deal.image || "",                     "description": deal.description || "",                     "brand": {                       "@type": "Brand",                       "name": deal.brand || ""                     },                     "offers": {                       "@type": "Offer",                       "priceCurrency": isoCurrency,                       "price": deal.rawPrice || 0,                       "url": rewrittenLink,                       "seller": {                         "@type": "Organization",                         "name": deal.merchant || ""                       }                     }                   }                 };              }).filter(item => item.item.name)            };            jsonLdScript.textContent = JSON.stringify(jsonLdData);          } catch(e) { console.warn("JSON-LD generation failed", e); }                    let gridWrapper = this.grid.parentElement;          if (gridWrapper && gridWrapper.classList.contains('tg-df-grid-wrapper')) {             let rightChevron = gridWrapper.querySelector('.tg-df-carousel-scroll-right');             let leftChevron = gridWrapper.querySelector('.tg-df-carousel-scroll-left');             if (this.getViewMode() === 'carousel') {                 // The observer set up in setupScrollListeners handles visibility.                 if (rightChevron) rightChevron.style.display = 'flex';                 if (leftChevron) leftChevron.style.display = 'none'; // reset correctly             } else {                 if (rightChevron) rightChevron.style.display = 'none';                 if (leftChevron) leftChevron.style.display = 'none';             }          }                    const loadMoreBtn = this.grid.querySelector('.tg-df-load-more');          if (loadMoreBtn) {            loadMoreBtn.addEventListener('click', async () => {              if (typeof trackElementInteraction === 'function') {                trackElementInteraction({ id: 'load-more', name: 'Load more', label: 'Load More Results' });              }              if (displayDeals.length <= this.displayLimit) {                 loadMoreBtn.innerHTML = `                  <svg class="tg-df-spinner" style="width: 16px; height: 16px; display: inline-block; vertical-align: middle; margin-right: 8px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" d="M12 2v4m0 12v4M4.93 4.93l2.83 2.83m8.48 8.48l2.83 2.83M2 12h4m12 0h4M4.93 19.07l2.83-2.83m8.48-8.48l2.83-2.83"/></svg>                  Loading...                 `;                 loadMoreBtn.disabled = true;                 await this.fetchDeals(this.currentQuery, true);              } else {                 this.displayLimit += this.getRowsLimit();                 this.render();              }            });          }                      this.bindCouponButtons();            this.checkAndUpdateCoupons();                        // Allow hawklinks.js to discover and rewrite our widget links             // by appending the .article-body class and manually triggering processArticle.            let container = this.root.classList.contains('tg-df-container') ? this.root : this.root.querySelector('.tg-df-container');            if (container && !container.classList.contains('article-body')) {               container.classList.add('article-body');            }            setTimeout(() => {               if (this.grid && !this.grid.classList.contains('article-body')) this.grid.classList.add('article-body');               document.dispatchEvent(new CustomEvent('processArticle', { detail: { element: this.root } }));            }, 50);          } catch(e) {            console.warn("Widget render error", e);          }        }                async checkAndUpdateCoupons() {          const wrappers = Array.from(this.root.querySelectorAll('.tg-df-coupon-wrapper'));          if (wrappers.length === 0) return;                    const merchants = [...new Set(wrappers.map(w => w.getAttribute('data-merchant')).filter(Boolean))];          if (merchants.length === 0) return;          const couponResultsMap = await this.checkMerchantsCouponsBulk(merchants);                    for (const merchant of merchants) {            const hasCoupons = !!couponResultsMap[merchant];            const merchantWrappers = wrappers.filter(w => w.getAttribute('data-merchant') === merchant);            merchantWrappers.forEach(wrapper => {              const spinner = wrapper.querySelector('.tg-df-coupon-spinner');              const btn = wrapper.querySelector('.tg-df-tag-coupons');                            if (spinner) spinner.style.display = 'none';                            if (hasCoupons && btn) {                btn.style.display = 'inline-flex';              } else if (!hasCoupons) {                wrapper.style.display = 'none';              }            });          }        }        updateFloatingCopyBar() {          if (!this.editorBar || !this.editorSelectedCount) return;          if (this.editorMode && this.selectedDeals.size > 0) {            this.editorBar.style.display = 'flex';            this.editorSelectedCount.innerText = this.selectedDeals.size;          } else {            this.editorBar.style.display = 'none';          }        }        async copySelectedDealsToCMS() {           function htmlToSlate(htmlString) {              if (!htmlString) return [{ type: 'paragraph', children: [{ text: '' }] }];              let doc;              if (typeof window !== 'undefined' && window.DOMParser) {                 doc = new DOMParser().parseFromString(htmlString, 'text/html');              } else {                 doc = document.implementation.createHTMLDocument('');                 doc.body.innerHTML = htmlString;              }                            function parseNode(node, marks = {}) {                  if (node.nodeType === 3) {                      const text = node.textContent;                      if (!text) return null;                      return { text: text, ...marks };                  }                  if (node.nodeType === 1) {                      const tagName = node.tagName.toLowerCase();                      if (tagName === 'br') {                          return { type: 'line-break', children: [{ text: '' }] };                      }                      if (tagName === 'p') {                          let children = Array.from(node.childNodes).map(child => parseNode(child, marks)).flat().filter(Boolean);                          if (children.length === 0) children.push({ text: "" });                          return { type: 'paragraph', children };                      }                      if (tagName === 'strong' || tagName === 'b') {                          const newMarks = { ...marks, bold: true };                          return Array.from(node.childNodes).map(child => parseNode(child, newMarks)).flat().filter(Boolean);                      }                      if (tagName === 'em' || tagName === 'i') {                          const newMarks = { ...marks, italic: true };                          return Array.from(node.childNodes).map(child => parseNode(child, newMarks)).flat().filter(Boolean);                      }                      if (tagName === 'a') {                          const href = node.getAttribute('href') || '';                          let children = Array.from(node.childNodes).map(child => parseNode(child, marks)).flat().filter(Boolean);                          if (children.length === 0) children.push({ text: "" });                          return {                              type: 'link',                              url: href,                              isNoFollow: (node.getAttribute('rel') || '').includes('nofollow'),                              isSponsored: (node.getAttribute('rel') || '').includes('sponsored'),                              isOpenNewTab: node.getAttribute('target') === '_blank',                              isPreventDataRewrite: false,                              children: children                          };                      }                      return Array.from(node.childNodes).map(child => parseNode(child, marks)).flat().filter(Boolean);                  }                  return null;              }                            let blocksArray = [];              let currentParagraphChildren = [];              function flushParagraph() {                  if (currentParagraphChildren.length > 0) {                      blocksArray.push({ type: 'paragraph', children: currentParagraphChildren });                      currentParagraphChildren = [];                  }              }              Array.from(doc.body.childNodes).forEach(node => {                  const parsed = parseNode(node, {});                  const parsedItems = Array.isArray(parsed) ? parsed : (parsed ? [parsed] : []);                  parsedItems.forEach(item => {                      if (item.type === 'paragraph') {                          flushParagraph();                          blocksArray.push(item);                      } else {                          currentParagraphChildren.push(item);                      }                  });              });              flushParagraph();              if (blocksArray.length === 0) {                  blocksArray = [{ type: 'paragraph', children: [{ text: '' }] }];              }              return blocksArray;           }           const blocks = [];                      this.editorCopyBtn.innerHTML = '\x3Cspan class="tg-df-coupon-spinner" style="display:inline-block; margin-right:8px; border-top-color:#fff;">' + '<' + '/span> Copying...';           for (const deal of Array.from(this.selectedDeals.values())) {              const url = deal.url;              const merchant = deal.merchant;              const title = deal.title;              const image = deal.image;              const currentPrice = deal.currency + deal.rawPrice;              const wasPrice = deal.hasWasPrice && deal.rawMsrp > deal.rawPrice ? deal.currency + deal.rawMsrp : '';                            let couponsChildren = [];              try {                  const area = this.getAreaCode();                  const apiUrl = new URL('https://search-api.fie.future.net.uk/widget.php');                  apiUrl.searchParams.append('model_name', 'Everything');                  apiUrl.searchParams.append('language', 'en-GB');                  apiUrl.searchParams.append('area', area);                  apiUrl.searchParams.append('combine_product_types', '1');                  apiUrl.searchParams.append('filter_merchant_name', merchant);                  apiUrl.searchParams.append('all_filters', 'false');                  apiUrl.searchParams.append('exclude_unlabelled', 'false');                  apiUrl.searchParams.append('include_specs', 'false');                  apiUrl.searchParams.append('sort', 'voucher');                  apiUrl.searchParams.append('distinct_merchants', 'natural');                  apiUrl.searchParams.append('filter_product_types', 'vouchers,offer_deals,newsletter');                  apiUrl.searchParams.append('rows', '3');                  apiUrl.searchParams.append('origin', 'widgets-clientside');                                    let res; try { res = await fetch(apiUrl.toString()); } catch (e) { return; }                  if (res.ok) {                      const data = await res.json();                      let offers = [];                      if (data && data.widget && data.widget.data && Array.isArray(data.widget.data.offers)) {                        offers = data.widget.data.offers;                      } else if (data && data.data && Array.isArray(data.data.offers)) {                        offers = data.data.offers;                      }                                            if (offers.length > 0) {                          couponsChildren.push({ text: "Also check out these coupons: ", bold: true });                          offers.slice(0, 3).forEach((offer, idx) => {                              const actualOffer = offer.offer || offer;                              const offerName = actualOffer.name || actualOffer.title || offer.model_name || offer.title || offer.name || 'Coupon';                              const linkUrl = actualOffer.link || actualOffer.url || actualOffer.offer_link || '#';                              couponsChildren.push({ type: "line-break", children: [{ text: "" }] });                              couponsChildren.push({ text: "🎟️ " });                              couponsChildren.push({                                  type: "link",                                  url: linkUrl,                                  isNoFollow: true,                                  isSponsored: false,                                  isOpenNewTab: true,                                  isPreventDataRewrite: false,                                  children: [{ text: offerName, bold: true }]                              });                          });                      }                  }              } catch (err) {                  console.warn('Failed to fetch coupons for', merchant, err);              }              let descriptionValue = [];              if (deal.text) {                 descriptionValue = htmlToSlate(deal.text);              } else {                 const dealDescriptions = [                   `Don't miss out on this fantastic deal for the ${title}. It is currently available at ${merchant} for a highly competitive price.`,                   `We've spotted an excellent price drop on the ${title}. Grab it now at ${merchant} before it's gone.`,                   `The ${title} is currently seeing a generous discount over at ${merchant}. This is a perfect time to buy if you've been holding out.`,                   `If you're in the market for the ${title}, ${merchant} has just the deal for you.`,                   `Score the ${title} for less at ${merchant} right now. This is a rare chance to save big.`,                   `Upgrade your setup with the ${title}, now available at a stellar price via ${merchant}.`                 ];                 const randomDescription = dealDescriptions[Math.floor(Math.random() * dealDescriptions.length)];                 descriptionValue = [                    { type: "paragraph", children: [{ text: randomDescription }] }                 ];              }                            if (couponsChildren.length > 0) {                 let lastBlock = descriptionValue[descriptionValue.length - 1];                 if (lastBlock && lastBlock.type === 'paragraph') {                     lastBlock.children.push({ type: "line-break", children: [{ text: "" }] });                     lastBlock.children.push({ type: "line-break", children: [{ text: "" }] });                     lastBlock.children.push({ text: "Also check out these coupons: ", bold: true });                     lastBlock.children.push({ type: "line-break", children: [{ text: "" }] });                     lastBlock.children = lastBlock.children.concat(couponsChildren);                 } else {                     descriptionValue.push({                         type: "paragraph",                         children: [                             { type: "line-break", children: [{ text: "" }] },                             { type: "line-break", children: [{ text: "" }] },                             { text: "Also check out these coupons: ", bold: true },                             { type: "line-break", children: [{ text: "" }] },                             ...couponsChildren                         ]                     });                 }              }              function normalizeCurrencyToISO(symbol) {                const map = { '£': 'GBP', '$': 'USD', 'A$': 'AUD', 'CA$': 'CAD', '€': 'EUR' };                return map[symbol] || symbol;              }              const isoCurrency = normalizeCurrencyToISO(deal.currency);              blocks.push({                 id: (window.crypto && window.crypto.randomUUID) ? window.crypto.randomUUID() : 'cms-' + Date.now() + Math.random(),                 blockTypeName: "deal",                 excludeFrom: [],                 collapsible: false,                 props: {                    description: {                       value: descriptionValue,                       touched: false,                       validationMessage: ""                    },                    image: {                       value: {                          credit: [{ type: "paragraph", children: [{ text: merchant }] }],                          dateCreated: Date.now(),                          dateModified: Date.now(),                          distribution: [],                          fileSize: 0,                          height: 1000,                          id: deal.id,                          imageRights: "",                          src: image,                          name: title + ".jpg",                          tags: [],                          width: 1000                       },                       touched: false,                       validationMessage: ""                    },                    showDealButton: { value: true, touched: false, validationMessage: "" },                    isPreferredPartner: { value: false, touched: false, validationMessage: "" },                    linkHref: { value: url, touched: false, validationMessage: "" },                    linkLabel: { value: "", touched: false, validationMessage: "" },                    linkIsNoFollow: { value: true, touched: false, validationMessage: "" },                    linkIsSponsored: { value: false, touched: false, validationMessage: "" },                    linkIsOpenNewWindow: { value: true, touched: false, validationMessage: "" },                    customPromoFlags: { value: [], touched: false, validationMessage: "" },                    showStarDeal: { value: false, touched: false, validationMessage: "" },                    savingType: { value: "none", touched: false, validationMessage: "" },                    starDealPromoFlag: { value: "", touched: false, validationMessage: "" },                    showEditorsChoice: { value: false, touched: false, validationMessage: "" },                    editorsChoiceTitle: { value: "", touched: false, validationMessage: "" },                    hawkPriceCurrency: { value: { value: isoCurrency, label: isoCurrency }, touched: false, validationMessage: "" },                    hawkPrice: { value: deal.hasWasPrice ? String(deal.rawMsrp) : String(deal.rawPrice), touched: false, validationMessage: "" },                    hawkSalePrice: { value: String(deal.rawPrice), touched: false, validationMessage: "" },                    lastCheckedPriceDate: { value: "", touched: false, validationMessage: "" },                    hawkModel: { touched: false, validationMessage: "" },                    productId: { value: "", touched: false, validationMessage: "" },                    voucherId: { value: "", touched: false, validationMessage: "" },                    brand: { value: deal.brand || merchant, touched: false, validationMessage: "" },                    productName: { value: title, touched: false, validationMessage: "" },                    label: { value: "", touched: false, validationMessage: "" },                    retailer: { value: merchant, touched: false, validationMessage: "" },                    priceCheckError: false                 },                 failedFetchError: ""              });           }           const payload = {              type: "articleBuilderPages",              data: blocks           };           const jsonStr = JSON.stringify(payload);                      if (navigator.clipboard && navigator.clipboard.writeText) {              navigator.clipboard.writeText(jsonStr).then(() => {                 this.editorCopyBtn.innerHTML = 'Copied!';                 setTimeout(() => {                    this.editorCopyBtn.innerHTML = '\x3Csvg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-right: 6px;">\x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2"><' + '/rect>\x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"><' + '/path><' + '/svg> Copy to CMS';                 }, 2000);              }).catch(err => {                 console.warn('Failed to copy text: ', err);                 alert('Failed to copy deals to clipboard. See console.');              });           } else {              // Fallback              const textArea = document.createElement("textarea");              textArea.value = jsonStr;              document.body.appendChild(textArea);              textArea.focus();              textArea.select();              try {                 document.execCommand('copy');                 this.editorCopyBtn.innerHTML = 'Copied!';                 setTimeout(() => {                    this.editorCopyBtn.innerHTML = '\x3Csvg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-right: 6px;">\x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2"><' + '/rect>\x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"><' + '/path><' + '/svg> Copy to CMS';                 }, 2000);              } catch (err) {                 console.warn('Fallback: Oops, unable to copy', err);                 alert('Fallback: Failed to copy deals to clipboard.');              }              document.body.removeChild(textArea);           }        }      }      // Initialize the Widget      if (document.readyState === 'loading') {        document.addEventListener('DOMContentLoaded', () => new DealsFinderWidget({ rootId: 'signal-deals-finder-root', rootNode: shadowRoot, hostContainer: hostContainer }));      } else {        new DealsFinderWidget({ rootId: 'signal-deals-finder-root', rootNode: shadowRoot, hostContainer: hostContainer });      }    })();  </script></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ 5 reasons why NordVPN beats a free alternative every time ]]></title>
                                                                                                <dc:content><![CDATA[ <p><a href="https://www.tomsguide.com/reviews/nordvpn-review" target="_blank"><u>NordVPN</u></a> is one of the <a href="https://www.tomsguide.com/best-picks/best-vpn" target="_blank"><u>best VPNs</u></a> you can use instead of a free one, and for good reason. Founded in 2012, it’s fast become one of the most secure and speedy VPNs you can use in 2026. <strong>Available on all major operating systems</strong>, such as iOS, Windows, macOS, and Linux, it’s a straightforward process to sign up, install the app, sign in, and enable NordVPN on your devices.</p><p>However, you may have previously been tempted to try out a free VPN. Whilst these can give your device a way of browsing streaming sites in another country, there’s a good chance your browsing data is at risk of being used by third-party companies. This is a big factor in funding these VPNs, and you may experience far slower speeds compared to using a paid VPN.</p><p>With this in mind, we’ve listed five reasons below why NordVPN is the far better choice than a free VPN, and we've also delved into details about how the company keeps its users’ data secure.</p><ul><li><strong>NordVPN is one of the best value for money VPN packages you can buy, and is known to be one of the fastest available.</strong></li><li><strong>NordVPN runs on servers with no hard drives, meaning data is never stored, and there’s low-power consumption and fast speeds, benefiting everyone.</strong></li><li><strong>There have been six audits under the ISAE 3000 standard so far, showcasing NordVPN’s focus on privacy.</strong></li><li><strong>There are three subscription tiers that have varying features to suit a single device or 10, depending on your needs; this flexible pricing gives you premium speed and security without the hidden data limits or privacy risks of free VPNs.</strong></li></ul><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="xuhg5HK4CxJJDre6LJVWrB" name="ios-specialty-servers-ca" alt="NordVPN" src="https://cdn.mos.cms.futurecdn.net/xuhg5HK4CxJJDre6LJVWrB-1920-80.png" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: NordVPN)</span></figcaption></figure><h2 id="5-reasons-to-use-nordvpn-instead-of-a-free-alternative">5 reasons to use NordVPN instead of a free alternative</h2><h2 class="article-body__section" id="section-nordvpn-s-no-log-policy-has-been-independently-audited-six-times"><span>NordVPN’s no-log policy has been independently audited six times</span></h2><p>When you’re considering a paid VPN, privacy has to be at the top of what one offers. NordVPN’s no-log policy, which means that it doesn’t store your information, has been verified by auditors six times so far under the <a href="https://www.iaasb.org/publications/international-standard-assurance-engagements-isae-3000-revised-assurance-engagements-other-audits-or" target="_blank" rel="nofollow"><u>ISAE 3000 standard</u></a>. This assures that no data, such as user traffic or metadata, is kept by NordVPN when enabled.</p><h3 id="what-does-an-isae-3000-audit-actually-prove">What does an ISAE 3000 audit actually prove?</h3><p>An ISAE 3000 audit examines a company's systems and reports on its findings. It’s a big distinction from free VPNs, as they can be funded by sharing data collected by users. Many assume that these are private, but it’s usually far from the case.</p><h2 class="article-body__section" id="section-nordvpn-s-servers-run-without-hard-drives"><span>NordVPN’s servers run without hard drives</span></h2><p>Because every server in NordVPN’s network runs on <a href="https://nordvpn.com/blog/ram-based-servers/?srsltid=AfmBOop--IQw9kHqqAWvOcDHYsrmpyJMtJZab43qNgdSzcmecNXwT4CL" target="_blank" rel="nofollow"><u>RAM instead of hard drives</u></a>, this means that any data stored is only temporary, as there’s no storage for hackers to steal. There are other benefits to using Nord’s services, such as high-speed and lower power consumption. This means that when you enable NordVPN, you’re less likely to experience lag compared to a free VPN that works on a server with hard drives installed.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="qHaNXUAafL4bTGSCSH3LfR" name="macos-fr-6" alt="NordVPN" src="https://cdn.mos.cms.futurecdn.net/qHaNXUAafL4bTGSCSH3LfR-1920-80.png" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: NordVPN)</span></figcaption></figure><h2 class="article-body__section" id="section-why-is-nordvpn-faster-than-a-free-vpn"><span>Why is NordVPN faster than a free VPN?</span></h2><p>This is because of NordVPN’s exclusive protocol, <a href="https://nordvpn.com/blog/nordlynx-protocol-wireguard/?srsltid=AfmBOoruZXJXMzDd9EfIznuK9xuCx9vYy2c_SyFIRlQBtZB6N4qAGwcr" target="_blank" rel="nofollow"><u>NordLynx</u></a>. Built on the light WireGuard framework, NordLynx runs on only 4,000 lines of code, compared to legacy protocols like OpenVPN, which can bloat up to 400,000 lines.</p><p>Because it's made with far less code than others, it means that you get quick server connections, reduced battery drain on mobile devices, and fast, unthrottled speeds with almost no lag when streaming on top platforms, whereas that can be a common occurrence when using free VPNs.</p><p>In <a href="https://www.tomsguide.com/reviews/nordvpn-review#section-nordvpn-connection-speeds" target="_blank">speed testing by Tom’s Guide</a>, NordLynx reached local speeds averaging 1,249 Mbps (peaking at 1,284 Mbps), nearly doubling the speed of NordVPN's own OpenVPN implementation (688 Mbps) and being "fast enough for almost any conceivable use-case".</p><p>NordLynx is also available on all major devices, such as the <a href="https://www.tomsguide.com/us/best-apple-iphone,review-6348.html" target="_blank"><u>best iPhones</u></a> and <a href="https://www.tomsguide.com/us/best-android-phones,review-6051.html" target="_blank"><u>Android handsets</u></a>, so you’ll be able to experience fast speeds on the devices you use daily.</p><h2 class="article-body__section" id="section-connecting-to-a-server-and-using-the-kill-switch-work-without-being-asked"><span>Connecting to a server and using the kill switch work without being asked</span></h2><p>One of the biggest benefits of using a paid VPN is being protected without even realizing it. NordVPN auto-connect creates an encrypted connection once your device joins an insecure network without you doing anything.</p><p>In addition, the kill switch kicks in if your device fails to connect to a VPN, protecting it from your data being shared on an unsecure network. Free VPNs usually work on unprotected connections, which can expose your data at any moment.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="M8D4iZLyTqK694JGqz4N6Y" name="android-tv-br-2" alt="NordVPN" src="https://cdn.mos.cms.futurecdn.net/M8D4iZLyTqK694JGqz4N6Y-1920-80.png" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: NordVPN)</span></figcaption></figure><h2 class="article-body__section" id="section-one-subscription-covers-the-whole-vpn-experience"><span>One subscription covers the whole VPN experience</span></h2><p>NordVPN offers <a href="https://nordvpn.com/pricing/" target="_blank" rel="nofollow"><u>three subscription tiers</u></a> that can easily suit anyone who’s looking for a VPN to use, consisting of  Basic, Complete, and Ultimate Max, which can cover up to 10 devices:</p><p>• Basic ($3.49 / £2.59 per month): NordVPN</p><p>• Complete ($4.49 / £3.39 per month): Email, phone, credit card, and national ID/SSN monitoring, scam call protection, ad &amp; tracker blocker, and more</p><p>• Ultimate Max ($7.49 / £6.29 per month): Unique IP address to help improve security and avoid CAPTCHAs. For UK users, coverage for Scam and ID loss of up to £5,000.</p><p>These can all be a monthly, yearly, or two-year plan.</p><p>There’s also a helpful <a href="https://nordvpn.com/customer-service/?srsltid=AfmBOopcufe5weTxzrnHwfGjd4ZNnHzG4mYJgtnwKZcz-XCE4BxBdyWZ" target="_blank" rel="nofollow"><u>24/7 support line</u></a> included as standard - this can be used if you need some help or if you need to change your account info. Free VPNs don’t offer this, and if you’re managing ten devices, it’s good to have support when you need it.</p><h2 id="nordvpn-proves-why-it-s-the-best-alternative-to-a-free-vpn">NordVPN proves why it’s the best alternative to a free VPN</h2><p><a href="https://www.tomsguide.com/reviews/nordvpn-review" target="_blank"><u>NordVPN</u></a> is the best alternative to a free VPN. When you consider that the company has been <a href="https://nordvpn.com/blog/nordvpn-no-logs-assurance-engagement-2025/" target="_blank" rel="nofollow"><u>publicly audited six times so far</u></a>, as well as having its own protocol to ensure fast and secure connection speeds, the benefits outweigh the ability to use a free VPN. To find out more, <a href="https://go.nordvpn.net/aff_c?offer_id=346&amp;aff_id=3013&amp;url_id=8737" target="_blank" rel="nofollow">visit the NordVPN website</a>.</p><h2 id="faqs">FAQs</h2><h3 id="why-is-nordvpn-considered-one-of-the-fastest-vpns">Why is NordVPN considered one of the fastest VPNs?</h3><p>This is due to several reasons, like NordLynx, an exclusive protocol that NordVPN runs on to ensure a fast and secure VPN connection. There’s also SmartPlay, which helps you securely watch movies and TV shows, as well as Meshnet, which can let you share files and more with other devices worldwide.</p><h3 id="is-nordvpn-a-good-long-term-vpn-subscription">Is NordVPN a good long-term VPN subscription?</h3><p>Absolutely. NordVPN is designed to offer more than just basic VPN protection, making it a strong choice if you’re looking for a service you can rely on long term. Its 2-year Ultimate Max plan includes a broad range of features, including NordLynx, designed to deliver fast, secure connections without making everyday browsing feel complicated. You also get tools such as a kill switch and threat protection features, giving you additional peace of mind when you’re online. For anyone who wants a VPN that’s easy to use, feature-rich and built for regular use across multiple devices, NordVPN is a compelling long-term option.</p><h3 id="why-do-people-choose-nordvpn-over-cheaper-vpns">Why do people choose NordVPN over cheaper VPNs?</h3><p>The appeal of NordVPN is often its balance of simplicity, security and features. Setting it up across your devices is straightforward, so you don’t need to be particularly tech-savvy to start using it. Once you’re connected, features such as the kill switch can help protect your connection if your VPN drops unexpectedly. NordVPN also offers its NordLynx protocol, which is designed to provide fast connections while maintaining strong security. While cheaper VPNs can offer basic privacy tools, NordVPN’s combination of ease of use, additional features and a polished experience can make it worth considering if you plan to use a VPN regularly.</p> ]]></dc:content>
                                                                                                                                            <link>https://www.tomsguide.com/computing/vpns/5-reasons-why-nordvpn-beats-a-free-alternative-every-time</link>
                                                                            <description>
                            <![CDATA[ Paying for a VPN can work out in more ways than you think ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">CNXMPm39jzQ5HHXeZxnadP</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/z7c7SKDV32SHpQtUdeUv9L-1920-80.png" type="image/png" length="0"></enclosure>
                                                                        <pubDate>Thu, 13 Aug 2026 16:15:40 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[VPNs]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                    <category><![CDATA[Internet]]></category>
                                                                                                                    <dc:creator><![CDATA[ Sponsored ]]></dc:creator>                                                                                                        <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                                                                    <media:content type="image/png" url="https://cdn.mos.cms.futurecdn.net/z7c7SKDV32SHpQtUdeUv9L-1920-80.png">
                                                            <media:credit><![CDATA[NordVPN]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[NordVPN]]></media:description>                                                            <media:text><![CDATA[NordVPN]]></media:text>
                                <media:title type="plain"><![CDATA[NordVPN]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/z7c7SKDV32SHpQtUdeUv9L-1920-80.png" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p><a href="https://www.tomsguide.com/reviews/nordvpn-review" target="_blank"><u>NordVPN</u></a> is one of the <a href="https://www.tomsguide.com/best-picks/best-vpn" target="_blank"><u>best VPNs</u></a> you can use instead of a free one, and for good reason. Founded in 2012, it’s fast become one of the most secure and speedy VPNs you can use in 2026. <strong>Available on all major operating systems</strong>, such as iOS, Windows, macOS, and Linux, it’s a straightforward process to sign up, install the app, sign in, and enable NordVPN on your devices.</p><p>However, you may have previously been tempted to try out a free VPN. Whilst these can give your device a way of browsing streaming sites in another country, there’s a good chance your browsing data is at risk of being used by third-party companies. This is a big factor in funding these VPNs, and you may experience far slower speeds compared to using a paid VPN.</p><p>With this in mind, we’ve listed five reasons below why NordVPN is the far better choice than a free VPN, and we've also delved into details about how the company keeps its users’ data secure.</p><ul><li><strong>NordVPN is one of the best value for money VPN packages you can buy, and is known to be one of the fastest available.</strong></li><li><strong>NordVPN runs on servers with no hard drives, meaning data is never stored, and there’s low-power consumption and fast speeds, benefiting everyone.</strong></li><li><strong>There have been six audits under the ISAE 3000 standard so far, showcasing NordVPN’s focus on privacy.</strong></li><li><strong>There are three subscription tiers that have varying features to suit a single device or 10, depending on your needs; this flexible pricing gives you premium speed and security without the hidden data limits or privacy risks of free VPNs.</strong></li></ul><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="xuhg5HK4CxJJDre6LJVWrB" name="ios-specialty-servers-ca" alt="NordVPN" src="https://cdn.mos.cms.futurecdn.net/xuhg5HK4CxJJDre6LJVWrB-1920-80.png" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: NordVPN)</span></figcaption></figure><h2 id="5-reasons-to-use-nordvpn-instead-of-a-free-alternative">5 reasons to use NordVPN instead of a free alternative</h2><h2 class="article-body__section" id="section-nordvpn-s-no-log-policy-has-been-independently-audited-six-times"><span>NordVPN’s no-log policy has been independently audited six times</span></h2><p>When you’re considering a paid VPN, privacy has to be at the top of what one offers. NordVPN’s no-log policy, which means that it doesn’t store your information, has been verified by auditors six times so far under the <a href="https://www.iaasb.org/publications/international-standard-assurance-engagements-isae-3000-revised-assurance-engagements-other-audits-or" target="_blank" rel="nofollow"><u>ISAE 3000 standard</u></a>. This assures that no data, such as user traffic or metadata, is kept by NordVPN when enabled.</p><h3 id="what-does-an-isae-3000-audit-actually-prove">What does an ISAE 3000 audit actually prove?</h3><p>An ISAE 3000 audit examines a company's systems and reports on its findings. It’s a big distinction from free VPNs, as they can be funded by sharing data collected by users. Many assume that these are private, but it’s usually far from the case.</p><h2 class="article-body__section" id="section-nordvpn-s-servers-run-without-hard-drives"><span>NordVPN’s servers run without hard drives</span></h2><p>Because every server in NordVPN’s network runs on <a href="https://nordvpn.com/blog/ram-based-servers/?srsltid=AfmBOop--IQw9kHqqAWvOcDHYsrmpyJMtJZab43qNgdSzcmecNXwT4CL" target="_blank" rel="nofollow"><u>RAM instead of hard drives</u></a>, this means that any data stored is only temporary, as there’s no storage for hackers to steal. There are other benefits to using Nord’s services, such as high-speed and lower power consumption. This means that when you enable NordVPN, you’re less likely to experience lag compared to a free VPN that works on a server with hard drives installed.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="qHaNXUAafL4bTGSCSH3LfR" name="macos-fr-6" alt="NordVPN" src="https://cdn.mos.cms.futurecdn.net/qHaNXUAafL4bTGSCSH3LfR-1920-80.png" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: NordVPN)</span></figcaption></figure><h2 class="article-body__section" id="section-why-is-nordvpn-faster-than-a-free-vpn"><span>Why is NordVPN faster than a free VPN?</span></h2><p>This is because of NordVPN’s exclusive protocol, <a href="https://nordvpn.com/blog/nordlynx-protocol-wireguard/?srsltid=AfmBOoruZXJXMzDd9EfIznuK9xuCx9vYy2c_SyFIRlQBtZB6N4qAGwcr" target="_blank" rel="nofollow"><u>NordLynx</u></a>. Built on the light WireGuard framework, NordLynx runs on only 4,000 lines of code, compared to legacy protocols like OpenVPN, which can bloat up to 400,000 lines.</p><p>Because it's made with far less code than others, it means that you get quick server connections, reduced battery drain on mobile devices, and fast, unthrottled speeds with almost no lag when streaming on top platforms, whereas that can be a common occurrence when using free VPNs.</p><p>In <a href="https://www.tomsguide.com/reviews/nordvpn-review#section-nordvpn-connection-speeds" target="_blank">speed testing by Tom’s Guide</a>, NordLynx reached local speeds averaging 1,249 Mbps (peaking at 1,284 Mbps), nearly doubling the speed of NordVPN's own OpenVPN implementation (688 Mbps) and being "fast enough for almost any conceivable use-case".</p><p>NordLynx is also available on all major devices, such as the <a href="https://www.tomsguide.com/us/best-apple-iphone,review-6348.html" target="_blank"><u>best iPhones</u></a> and <a href="https://www.tomsguide.com/us/best-android-phones,review-6051.html" target="_blank"><u>Android handsets</u></a>, so you’ll be able to experience fast speeds on the devices you use daily.</p><h2 class="article-body__section" id="section-connecting-to-a-server-and-using-the-kill-switch-work-without-being-asked"><span>Connecting to a server and using the kill switch work without being asked</span></h2><p>One of the biggest benefits of using a paid VPN is being protected without even realizing it. NordVPN auto-connect creates an encrypted connection once your device joins an insecure network without you doing anything.</p><p>In addition, the kill switch kicks in if your device fails to connect to a VPN, protecting it from your data being shared on an unsecure network. Free VPNs usually work on unprotected connections, which can expose your data at any moment.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check="" ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="M8D4iZLyTqK694JGqz4N6Y" name="android-tv-br-2" alt="NordVPN" src="https://cdn.mos.cms.futurecdn.net/M8D4iZLyTqK694JGqz4N6Y-1920-80.png" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline" /></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: NordVPN)</span></figcaption></figure><h2 class="article-body__section" id="section-one-subscription-covers-the-whole-vpn-experience"><span>One subscription covers the whole VPN experience</span></h2><p>NordVPN offers <a href="https://nordvpn.com/pricing/" target="_blank" rel="nofollow"><u>three subscription tiers</u></a> that can easily suit anyone who’s looking for a VPN to use, consisting of  Basic, Complete, and Ultimate Max, which can cover up to 10 devices:</p><p>• Basic ($3.49 / £2.59 per month): NordVPN</p><p>• Complete ($4.49 / £3.39 per month): Email, phone, credit card, and national ID/SSN monitoring, scam call protection, ad &amp; tracker blocker, and more</p><p>• Ultimate Max ($7.49 / £6.29 per month): Unique IP address to help improve security and avoid CAPTCHAs. For UK users, coverage for Scam and ID loss of up to £5,000.</p><p>These can all be a monthly, yearly, or two-year plan.</p><p>There’s also a helpful <a href="https://nordvpn.com/customer-service/?srsltid=AfmBOopcufe5weTxzrnHwfGjd4ZNnHzG4mYJgtnwKZcz-XCE4BxBdyWZ" target="_blank" rel="nofollow"><u>24/7 support line</u></a> included as standard - this can be used if you need some help or if you need to change your account info. Free VPNs don’t offer this, and if you’re managing ten devices, it’s good to have support when you need it.</p><h2 id="nordvpn-proves-why-it-s-the-best-alternative-to-a-free-vpn">NordVPN proves why it’s the best alternative to a free VPN</h2><p><a href="https://www.tomsguide.com/reviews/nordvpn-review" target="_blank"><u>NordVPN</u></a> is the best alternative to a free VPN. When you consider that the company has been <a href="https://nordvpn.com/blog/nordvpn-no-logs-assurance-engagement-2025/" target="_blank" rel="nofollow"><u>publicly audited six times so far</u></a>, as well as having its own protocol to ensure fast and secure connection speeds, the benefits outweigh the ability to use a free VPN. To find out more, <a href="https://go.nordvpn.net/aff_c?offer_id=346&amp;aff_id=3013&amp;url_id=8737" target="_blank" rel="nofollow">visit the NordVPN website</a>.</p><h2 id="faqs">FAQs</h2><h3 id="why-is-nordvpn-considered-one-of-the-fastest-vpns">Why is NordVPN considered one of the fastest VPNs?</h3><p>This is due to several reasons, like NordLynx, an exclusive protocol that NordVPN runs on to ensure a fast and secure VPN connection. There’s also SmartPlay, which helps you securely watch movies and TV shows, as well as Meshnet, which can let you share files and more with other devices worldwide.</p><h3 id="is-nordvpn-a-good-long-term-vpn-subscription">Is NordVPN a good long-term VPN subscription?</h3><p>Absolutely. NordVPN is designed to offer more than just basic VPN protection, making it a strong choice if you’re looking for a service you can rely on long term. Its 2-year Ultimate Max plan includes a broad range of features, including NordLynx, designed to deliver fast, secure connections without making everyday browsing feel complicated. You also get tools such as a kill switch and threat protection features, giving you additional peace of mind when you’re online. For anyone who wants a VPN that’s easy to use, feature-rich and built for regular use across multiple devices, NordVPN is a compelling long-term option.</p><h3 id="why-do-people-choose-nordvpn-over-cheaper-vpns">Why do people choose NordVPN over cheaper VPNs?</h3><p>The appeal of NordVPN is often its balance of simplicity, security and features. Setting it up across your devices is straightforward, so you don’t need to be particularly tech-savvy to start using it. Once you’re connected, features such as the kill switch can help protect your connection if your VPN drops unexpectedly. NordVPN also offers its NordLynx protocol, which is designed to provide fast connections while maintaining strong security. While cheaper VPNs can offer basic privacy tools, NordVPN’s combination of ease of use, additional features and a polished experience can make it worth considering if you plan to use a VPN regularly.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
            </channel>
</rss>