;(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

Capa da Playboy relata troca de mensagens com MC Kevin: 'Me elogiava'

Cris Galera é conhecida como a Advogata de Danilo Gentili - Davi Borges / Edu Graboski / Divulgação
Cris Galera é conhecida como a Advogata de Danilo Gentili Imagem: Davi Borges / Edu Graboski / Divulgação

Colaboração para Splash

13/06/2022 15h14

A modelo Cris Galera não guardou segredos ao participar de um podcast e revelou todas as suas intimidades, incluindo casos com famosos. Capa de março da Playboy Austrália, ela contou recentemente que já se envolveu com MC Kevinho, na época em que ele lançou um hit com Anitta.

Agora, Cris afirma ter trocado 'mensagens secretas' e íntimas com MC Kevin, que morreu em maio do ano ado. Na época, segundo a jovem, ele estava casado com a advogada Deolane Bezerra.

"Ele me encontrou na rede social, depois que apareci como Advogata do Danilo Gentili em um outro podcast. Foi então que começamos a falar. Ele me elogiava, me chamava para os shows e queria me ver de qualquer jeito. Inclusive ele me mandava fotos. Mas nunca rolou nada, não peguei o Kevin em respeito a Deolane, eu sabia do casamento. E ele não escondia isso também", conta.

"Quando soube da morte, fiquei em choque. Guardo os áudios e as mensagens dele até hoje", acrescenta Cris. Ela ite que sempre teve uma queda por funkeiros, tanto que já se envolveu com alguns, e recorda que Kevinho foi o primeiro famoso da lista.

"Eles (os MCs) têm pegada. Jogador de futebol e cantor só tem fama (risos), os funkeiros que mandam bem na hora H mesmo", solta. "Dá para se envolver e até se apaixonar, mas é difícil acompanhar o ritmo deles. A maioria é novinho e quer curtir a vida, sempre rola alguma traição. Acho que a própria Deolane já sabia de tudo isso".

Questionada no podcast porque só revelou essas mensagens agora, Cris conta que nunca quis se promover em cima de Kevin, principalmente depois da sua morte.

"Jamais usaria isso para aparecer, estou falando sobre isso porque surgiu o assunto. Se eu fosse abrir a boca, muitos ficariam solteiros (risos). Já peguei muitos famosos casados sem saber. Se eu um dia fosse expor todos, daria um livro", brinca. "Aliás, quero lançar uma biografia em breve. Quem sabe não conto mais".