
The internet never forgets
Real Madrid – not Manchester City – will face Liverpool in the Champions League final in Paris. City’s spectacular late collapse in the Bernabeu will give those connected with the club nightmares for some time to come – Jack Grealish, perhaps, more than most.
Things had looked good for City when Grealish came on to replace Gabriel Jesus in the second half. Riyad Mahrez had just put them ahead on the night, extending their aggregate lead to 5-3.
Madrid looked beaten, having failed to register a shot, with City pressing to score another goal to well and truly kill the tie.
Two chances fell to Grealish. Cutting inside from the City left, the first was cleared off the line while a second drew a save from Thibaut Courtois – the faintest of touches from his boot enough to divert it wide of the post.
Man City were THIS CLOSE to going through 🤏#UCL pic.twitter.com/7zWYU8pAyP
— Football on BT Sport (@btsportfootball) May 4, 2022
Real Madrid stunned City with late, late comeback
Then, within the space of two minutes, things began to fall apart.
Substitute Rodrygo quickly scored two as the game entered stoppage time. That sent the game to extra time where Karim Benzema, relatively quiet throughout the game, won and scored a penalty to give Madrid the lead. That was the final goal of the contest.
Old Grealish tweet emerges
After the game, an eight-year-old tweet from Grealish quickly racked up retweets and shares. Sent on April 23, 2014 – the night Real faced Bayern Munich in another Champions League semi-final – Grealish, who had been a teenager hoping to force his way into the Aston Villa team at the time, had posted ‘Hala Madrid!!!’
The tweet was quickly taken down – either by Grealish or whoever is responsible for running his social media accounts.
City must now turn their attention to the league, where they hold a slender one-point lead over Liverpool with four games to play.
Related links:
var host="www.joe.co.uk"; var element = document.createElement('script'); var firstScript = document.getElementsByTagName('script')[0]; var url="https://quantcast.mgr.consensu.org" .concat('/choice/', 'wFs6Tqd6-pgRC', '/', host, '/choice.js') var uspTries = 0; var uspTriesLimit = 3; element.async = true; element.type="text/javascript"; element.src = url;
firstScript.parentNode.insertBefore(element, firstScript);
function makeStub() { var TCF_LOCATOR_NAME = '__tcfapiLocator'; var queue = []; var win = window; var cmpFrame;
function addFrame() { var doc = win.document; var otherCMP = !!(win.frames[TCF_LOCATOR_NAME]);
if (!otherCMP) { if (doc.body) { var iframe = doc.createElement('iframe');
iframe.style.cssText="display:none"; iframe.name = TCF_LOCATOR_NAME; doc.body.appendChild(iframe); } else { setTimeout(addFrame, 5); } } return !otherCMP; }
function tcfAPIHandler() { var gdprApplies; var args = arguments;
if (!args.length) { return queue; } else if (args[0] === 'setGdprApplies') { if ( args.length > 3 && args[2] === 2 && typeof args[3] === 'boolean' ) { gdprApplies = args[3]; if (typeof args[2] === 'function') { args[2]('set', true); } } } else if (args[0] === 'ping') { var retr = { gdprApplies: gdprApplies, cmpLoaded: false, cmpStatus: 'stub' };
if (typeof args[2] === 'function') { args[2](retr); } } else { queue.push(args); } }
function postMessageEventHandler(event) { var msgIsString = typeof event.data === 'string'; var json = {};
try { if (msgIsString) { json = JSON.parse(event.data); } else { json = event.data; } } catch (ignore) {}
var payload = json.__tcfapiCall;
if (payload) { window.__tcfapi( payload.command, payload.version, function(retValue, success) { var returnMsg = { __tcfapiReturn: { returnValue: retValue, success: success, callId: payload.callId } }; if (msgIsString) { returnMsg = JSON.stringify(returnMsg); } event.source.postMessage(returnMsg, '*'); }, payload.parameter ); } }
while (win) { try { if (win.frames[TCF_LOCATOR_NAME]) { cmpFrame = win; break; } } catch (ignore) {}
if (win === window.top) { break; } win = win.parent; } if (!cmpFrame) { addFrame(); win.__tcfapi = tcfAPIHandler; win.addEventListener('message', postMessageEventHandler, false); } };
makeStub();
var uspStubFunction = function() { var arg = arguments; if (typeof window.__uspapi !== uspStubFunction) { setTimeout(function() { if (typeof window.__uspapi !== 'undefined') { window.__uspapi.apply(window.__uspapi, arg); } }, 500); } };
var checkIfUspIsReady = function() { uspTries++; if (window.__uspapi === uspStubFunction && uspTries < uspTriesLimit) { console.warn('USP is not accessible'); } else { clearInterval(uspInterval); } }; if (typeof window.__uspapi === 'undefined') { window.__uspapi = uspStubFunction; var uspInterval = setInterval(checkIfUspIsReady, 6000); } // This callback is triggered on each page load __tcfapi('addEventListener', 0, function(tcData, success) { if (success && (tcData.eventStatus == 'useractioncomplete' || tcData.eventStatus == 'tcloaded')) { processCmpData(tcData); } }); function processCmpData(tcData) { // Flag that CMP has been processed. consentManager.cmpProcessed = true; // Permutive disabling needed? if (tcData.purpose.consents[1] && tcData.purpose.consents[3]) { consentManager.permutive.isAllowed = true; } if (consentManager.isAllowed('permutive')) { window.localStorage.removeItem('permutive-opt-out'); } else { window.localStorage.setItem('permutive-opt-out', 'true'); } consentManager.setUserConsent(tcData); if(consentManager.isAllowed('google')) { (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l="+l:"';j.async=true;j.src="https://www.googletagmanager.com/gtm.js?id="+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-NTW9BPH'); } // Consent String is needed as DFP target consentManager.setConsentString(tcData.tcString); consentManager.trackPublisherConsentLevel(tcData.publisher.consents); consentManager.trackVendorConsentLevel(tcData.vendor.consents); /** * According to Google policies, if Publisher Purpose 1 is revoked, we should not display ads at all * Check https://support.google.com/admanager/answer/9805023?hl=en for more information * Here we update the flag that points if ads should be rederer or not. */ consentManager.hideAds(tcData.purpose.consents[1]); // Posts tagged as sensitive shouldn't be showing any ads. Since we have a way to control ads viewability through // the consent manager, it's easy to check for the posts tags and flagged if they should shown or not. // According to Google policies, if Publisher Purpose 1 is revoked, we should not display ads at all // Check https://support.google.com/admanager/answer/9805023?hl=en for more information if (consentManager.hasBeenProcessed() && consentManager.displayAds) { consentManager.renderAds(); } // If consent was processed once the page was loaded, there are some ads that may not appear. Let's run prebid again. if (typeof executeParallelAuctionAlongsidePrebid !== 'undefined' && !consentManager.prebidProcessed && consentManager.displayAds) { executeParallelAuctionAlongsidePrebid() } // Facebook and Twitter are non IAB vendors, so we need to check their consents using a different callback __tcfapi('getNonIABVendorConsents', 0, function(consent, success) { if (success && consent.gdprApplies) { consentManager.setUserNonIabConsent(consent); } }) if (!consentManager.sentEventFbPixel && consentManager.isAllowed('facebook')) { !function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n; n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, document,'script','//connect.facebook.net/en_US/fbevents.js'); fbq('init', '1294117580618248'); fbq('track', "PageView"); fbq('track', 'ViewContent'); consentManager.sentEventFbPixel = true; } if (!consentManager.sentEventTwPixel && consentManager.isAllowed('twitter')) { !function(e,t,n,s,u,a){e.twq||(s=e.twq=function(){s.exe?s.exe.apply(s,arguments):s.queue.push(arguments); },s.version='1.1',s.queue=[],u=t.createElement(n),u.async=!0,u.src="https://static.ads-twitter.com/uwt.js", a=t.getElementsByTagName(n)[0],a.parentNode.insertBefore(u,a))}(window,document,'script'); // Insert Twitter Pixel ID and Standard Event data below twq('init','o1f6l'); twq('track','PageView'); consentManager.sentEventTwPixel = true; } }