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

MC Mirella oferece cirurgias plásticas a Alice Felis no valor de R$ 150 mil

Alice Feris, modelo transexual espancada no RJ, e MC Mirella - Reprodução/Instagram
Alice Feris, modelo transexual espancada no RJ, e MC Mirella Imagem: Reprodução/Instagram

Colaboração para o UOL, em Santos

20/08/2020 10h01Atualizada em 20/08/2020 11h11

MC Mirella contou que, ao saber do espancamento da modelo transexual Alice Feris, no Rio de Janeiro, se sentiu mal a ponto de não conseguir dormir. Ela disse que entrou em contato com Alice, que teve nariz e mandíbula quebrados, e lhe ofereceu tratamentos estéticos no valor de R$ 150 mil.

"Eu nem consegui dormir direito, aquilo embrulhou meu estômago. Como alguém pode fazer isso com outra pessoa, ainda mais a Alice, tão pequena e indefesa?", disse a funkeira em entrevista à coluna de Fábia Oliveira no jornal O Dia.

"Eu a procurei no Instagram e me propus a ajudar no que ela precisasse. Liguei para o meu dentista, Paulo Antonioli, e para o médico que fez minha cirurgia do nariz, Frederico Keim, e eles prontamente me atenderam. Essa foi uma forma que encontrei de ajudar essa princesa", afirmou.

Mirella disse que arcará com os custos dos procedimentos — cirurgia plástica das cicatrizes no rosto, correção do nariz e lentes de contato em todos os dentes, —, que somam cerca de R$ 150 mil, segundo ela.

A funkeira também afirmou que doou roupas e sapatos à modelo, que veste e calça os mesmos números que ela.

"A Alice me disse que estava muito triste porque não podia sorrir. Agora ela vai sorrir ainda mais linda. Nós duas juntas vamos gravar uma música muito incrível e ela vai arrasar muito. Isso é o mínimo que eu poderia fazer."

Alice foi atacada na madrugada de domingo (16) no próprio apartamento no Rio de Janeiro, após um encontro. Com ajuda de fotografias fornecidas pela 13ª Delegacia de Polícia, a vítima foi capaz de identificar o agressor, Lucas Brito Marques, que foi preso.

Alice ganhou apoio de inúmeras pessoas na internet, incluindo famosos como as cantoras Pabllo Vittar e Preta Gil e o youtuber Felipe Neto.