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

Jacarezinho: MPF pede inquérito independente com apoio da Polícia Federal

6.mai.2021 - Policiais apontam fuzis durante operação militar na favela do Jacarezinho, no Rio de Janeiro. Ação terminou com 28 mortos - Ricardo Moraes/Reuters
6.mai.2021 - Policiais apontam fuzis durante operação militar na favela do Jacarezinho, no Rio de Janeiro. Ação terminou com 28 mortos Imagem: Ricardo Moraes/Reuters

Colaboração para o UOL

19/05/2021 13h13

O Grupo de Trabalho (GT) de Defesa da Cidadania, coordenado pelo MPF (Ministério Público Federal) encaminhou ao MP-RJ (Ministério Público do Rio de Janeiro) um pedido de investigação independente, com o apoio da Polícia Federal, para apurar a operação no Jacarezinho, em 6 de maio.

Segundo o órgão, a solicitação foi realizada por conta de indícios de execução sumária e de adulteração de cenas de crime. No documento enviado ao procurador-geral de Justiça Luciano Mattos, o GT disse que uma apuração maior é necessária para evitar impunidade e lembrou a investigação da Polícia Civil sobre mortes arbitrárias em operações policiais na favela Nova Brasília nos anos de 1994 e 1995.

O GT defende que a investigação independente em curso no MP-RJ não deve se valer de provas produzidas no inquérito da Polícia Civil sobre a operação vinculada a 28 óbitos, sendo esses 27 civis e um policial. Para o grupo, o inquérito da Polícia Civil deve ser arquivado.

"Entendemos que deve haver uma única investigação a ser implementada pelo MPRJ com o auxílio da Polícia Federal", afirmou o Grupo de Trabalho de Defesa da Cidadania, refutando a repetição do roteiro da apuração da tragédia de Nova Brasília, responsável por condenação do Estado brasileiro pela Corte Interamericana de Direitos Humanos.

"Entendemos que todas as provas devem ser produzidas de forma autônoma pelo Ministério Público, tanto provas testemunhais quanto materiais, quando possível, inclusive, realizando-se por órgão técnico independente as perícias diretas e indiretas necessárias", disse o órgão.

No documento ao MPRJ, o GT de Defesa da Cidadania sugeriu que o procurador-geral de Justiça leve em consideração que agentes da cúpula da Polícia Civil participaram da diligência, sendo que alguns estiveram no local no momento das ações.

"A ausência de preservação das cenas de crime e a apresentação de pouco mais de 20 armas para perícia, em uma operação que contou com 200 agentes, já revelam, por si só, um descompromisso com a busca da verdade real", destacou o grupo.

O GT de Defesa da Cidadania recebe, acompanha e remete casos de violações de direitos humanos por agentes de segurança pública atuantes no Rio de Janeiro.

Ligado à Câmara de Controle Externo da Atividade Policial e Sistema Prisional (7CCR) do MPF, reúne integrantes de Defensorias Públicas (DPU e DPE/RJ), Ordem dos Advogados do Brasil (OAB/RJ), Mecanismo Estadual de Prevenção e Combate à Tortura do Rio de Janeiro, Centro de Assessoria Popular Mariana Criola, Fórum Grita Baixada, Frente Estadual pelo Desencarceramento do Rio de Janeiro, Maré 0800 Movimento de Favelas do Rio de Janeiro, Rede de Comunidades e Movimentos contra a Violência e Iniciativa Direito à Memória e Justiça Racial/Baixada-Fluminense.