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

Esse conteúdo é antigo

Justiça torna réu homem que matou ageira com marretadas no metrô de SP

Roseli Dias Bispo, de 46 anos, morta a marretadas no metrô de São Paulo, e seu filho Thiago Bispo, de 21 anos - Reprodução
Roseli Dias Bispo, de 46 anos, morta a marretadas no metrô de São Paulo, e seu filho Thiago Bispo, de 21 anos Imagem: Reprodução

Leonardo Martins

Do UOL, em São Paulo

01/05/2021 10h51

O Tribunal de Justiça de São Paulo tornou réu o homem acusado de matar com golpes de marreta dentro do Metrô de São Paulo a doméstica Roseli Dias Bispo, 46. O aposentado Luciano Gomes da Silva vai responder por homicídio doloso duplamente qualificado.

A denúncia contra o suspeito foi protocolada pelo Ministério Público de São Paulo nesta semana, e foi acatada ontem à noite pelo juiz Roberto Zanichelli Cintra, da 1ª vara do júri do Fórum da Barra Funda, na zona oeste da capital paulista.

O juiz também marcou para o dia 23 de junho, às 16h, a primeira audiência com o réu. Nela, serão ouvidos o acusado, testemunhas e o MP. Caso o juiz entenda que há indícios de crime, será marcado um julgamento com júri popular para definir a sentença do homem.

Luciano Gomes da SIlva, que está preso preventivamente, tem 10 dias para constituir um advogado particular ou defensor público para se defender por escrito ao magistrado.

Morta a marretadas

O crime aconteceu na madrugada da última segunda-feira (26) dentro de um vagão da linha 1-Azul, na estação Sé, que ia no sentido da estação Tucuruvi.

Segundo boletim de ocorrência do caso, testemunhas relataram que Luciano Gomes da Silva atacou Roseli Dias Bispo "de repente" com uma marreta, enquanto ela esperava sentada a chegada do trem. Luciano teria relatado ter "ouvido vozes" e que ele "toma remédios". Um exame de sanidade mental foi requisitado pelo juiz do caso, inclusive.

Ainda de acordo com o registro oficial, os agentes do Metrô chegaram logo depois da agressão, quando testemunhas já tinham segurado o homem e o estavam agredindo. Com Luciano, os seguranças encontraram, além de uma marreta, uma faca, que não chegou a ser usada.

Ele foi imediatamente detido pela Polícia Militar de São Paulo e está internado — sob escolta policial — em um hospital do centro de São Paulo.

Roseli deixa quatro filhos, entre eles, o caçula Thiago Bispo, 21, que contou ao UOL a dor de perder a mãe de forma tão brutal.