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

MP pede mais informações sobre ação no Jacarezinho e apura denúncia de tortura

6.mai.2021 - Policiais apontam fuzis durante operação militar na favela do Jacarezinho - Ricardo Moraes/Reuters
6.mai.2021 - Policiais apontam fuzis durante operação militar na favela do Jacarezinho Imagem: Ricardo Moraes/Reuters

Wilson Tosta

Rio

02/06/2021 14h05Atualizada em 02/06/2021 14h34

O Ministério Público do Rio de Janeiro requereu novamente à Secretaria da Polícia Civil fluminense ontem, o envio de documentos e informações sobre a Operação Exceptis, realizada em 6 de maio na comunidade do Jacarezinho, na zona norte, e que resultou em 28 mortes.

O material, já requerido pela força-tarefa da Procuradoria e ainda não enviado, inclui autos de apreensão, termos de cautela das armas utilizadas, planejamento operacional e relatório final de investigação, além de apresentação da justificativa constante da Lei Estadual 8.928/2020, que trata da alteração de locais de crime por policiais.

O MP deu à polícia novo prazo, de dez dias, para cumprir a exigência até agora não atendida. A ação na favela mobilizou mais de 200 agentes. Moradores denunciaram que houve execuções de homens já presos. A polícia nega. Afirma que todos os 27 mortos enfrentaram os policiais e foram abatidos nos confrontos. Levantamento do Estadão apontou que um terço dos mortos não tinha processo criminal em tramitação no Tribunal de Justiça do Rio de Janeiro.

"Já foram recebidos laudos de local e de necropsia. A Força-Tarefa do MPRJ informa também que novos depoimentos de testemunhas foram obtidos nesta semana e juntados aos autos", informou por nota o MP.

O órgão anunciou ter levantado parcialmente a parte sigilosa do Procedimento Investigatório Criminal da Procuradoria sobre o caso.

Ainda estão sob sigilo informações sensíveis, tais como imagens, nomes, endereços e depoimentos de testemunhas, imagens das pessoas envolvidas e dados protegidos por sigilo legal e também por medidas de segurança, assim como diligências em andamento, na forma da Súmula 14 do STF, a fim de não inviabilizar a eficácia da investigação.

Mortes no Jacarezinho

O MP anunciou ainda a abertura de novo Procedimento Investigatório Criminal envolvendo a ação no Jacarezinho. A nova investigação vai apurar denúncias de tortura contra seis presos na operação. A apuração será aberta com base em mídias e atas de audiências de custódia de seis presos na operação.

O material foi enviado pelo Tribunal de Justiça do Estado do Rio. Segundo a Procuradoria, o objetivo da abertura do novo PIC é permitir que a apuração original se concentre nas mortes em decorrência de intervenção policial e do homicídio do policial civil André Frias. O agente foi baleado por criminosos durante a ação.

"O objetivo (do novo PIC) é garantir maior agilidade à apuração, possibilitando a adoção de linhas de investigação próprias, em razão de diligências a serem adotadas nestes casos diferirem daquelas relativas aos homicídios", informou a nota do MP.