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

Fãs e amigos de MC Kevin prestam homenagem no bairro em que ele cresceu

Do UOL, em São Paulo

17/05/2021 18h36Atualizada em 17/05/2021 19h01

Um grupo de fãs e amigos do MC Kevin — que faleceu ontem após cair do 5º andar de um hotel no Rio — se reuniram para homenageá-lo no bairro da Vila Ede, na Zona Norte de São Paulo, onde ele cresceu.

Duas meninas de um dos fã-clubes do cantor, o Preparadas do Kevin, se emocionaram durante uma entrevista à edição de hoje do Brasil Urgente (Band) enquanto falavam sobre a iração que sentem pelo cantor.

A gente chegou a ir pra Baixada [Santista] ver um show. Eu moro na Zona Leste, ela [a outra menina do fã-clube] mora no Itaim Paulista. O Kevin representa pra gente a inspiração de que você precisa acreditar para alcançar seus sonhos. E ele alcançou, de fato, tava fazendo muito sucesso. É lamentável a morte dele, a gente tá desolada. Eu queria dedicar os meus sentimentos à família.
Disse uma das garotas.

Outra, mais emocionada, chorou muito ao dizer que não vai conseguir esquecer do MC.

Ele significa muito, vai significar para sempre. Será eterno. A gente nunca vai esquecer do nosso eterno menino maluquinho.

As imagens da Band mostram que as ruas do bairro estão cheias de fãs e amigos do cantor, que levaram velas, camisetas e outras peças em homenagem a ele.

Entendo o caso

Entenda o caso

O funkeiro MC Kevin morreu aos 23 anos na noite de ontem, após sofrer um grave acidente. Ele caiu da varanda do 5º andar de um hotel localizado na Barra da Tijuca, zona oeste do Rio, e precisou ser levado às pressas para o hospital Miguel Couto, na Gávea.

Anteriormente, a PM havia afirmado que o cantor caiu do 11º andar, mas corrigiu a informação horas depois.

A Secretaria Municipal de Saúde do Rio confirmou a entrada de Kevin no hospital e informou que seu estado de saúde era muito grave. Alguns minutos depois, trouxe a notícia de que o funkeiro não havia resistido aos ferimentos.

"Infelizmente, o paciente Kevin Bueno não resistiu e faleceu", dizia a nota, enviada pela Secretaria ao UOL.