;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

Madonna chama 50 Cent de falso após comentário e dispara: 'Inveja'

50 Cent e Madonna - Reprodução/Divulgação
50 Cent e Madonna Imagem: Reprodução/Divulgação

Colaboração para Splash, em São Paulo

03/12/2021 11h42

A cantora Madonna, de 63 anos, criticou o rapper 50 Cent, de 46, após ele ter feito um comentário sexista em fotos sensuais publicadas pela estrela nas redes sociais.

"Aqui está 50 Cent fingindo ser meu amigo. Agora você decidiu falar desse jeito sobre mim. Acho que sua nova carreira está chamando a atenção, mas tentando humilhar os outros nas redes sociais. A escolha menos elevada que você poderia fazer como artista e adulto. Você está com inveja porque não vai ficar tão bonito quanto eu ou se divertir tanto quando tiver a minha idade!", disse ela na noite de ontem.

Madonna compartilhou as imagens no Instagram e, em seguida, a plataforma apagou o post por censura. A rainha do Pop as publicou novamente, porém, cobrindo suas partes íntimas com emojis.

"Estou postando fotos que o Instagram tirou do ar sem aviso ou notificação. O motivo pelo qual eles informaram é que uma pequena parte do meu mamilo foi exposta. Ainda é surpreendente para mim que vivemos em uma cultura que permite que cada centímetro do corpo de uma mulher seja mostrado, exceto um mamilo. Como se essa fosse a única parte da anatomia de uma mulher que pudesse ser sexualizada. O mamilo que nutre o bebê! Um mamilo de homem não pode ser sentido como erótico? E a bunda de uma mulher que nunca é censurada em lugar nenhum. Agradeço por ter conseguido manter minha sanidade ao longo de quatro décadas de censura... sexismo... preconceito de idade e misoginia. Perfeitamente cronometrado com as mentiras em que fomos criados para acreditar sobre os peregrinos dividindo o pão pacificamente com os índios americanos nativos quando eles pousaram em Plymouth Rock!", disse ela na ocasião.

Foi aí que, o rapper se manifestou:

"Meu Deus, essa é a me*** mais engraçada que já vi. Aquela é a Madonna embaixo da cama tentando agir como uma virgem aos 63 anos".

Com a repercussão, 50 Cent se desculpou pelo Twitter:

"Devo ter ferido os sentimentos da Madonna, ela foi e desenterrou uma foto antiga da MTV. Ok, desculpe, não pretendia magoar os seus sentimentos. Não me beneficio com isso de forma alguma, eu disse o que pensei quando eu vi a foto por causa de onde eu a tinha visto antes, espero que você aceite minhas desculpas", escreveu.