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

Rio: com 14 mortos, operação policial é a mais violenta em mais de 2 anos

8.fev.2019 - Policial militar em operação no Morro do Fallet - BETINHO CASAS NOVAS/ESTADÃO CONTEÚDO
8.fev.2019 - Policial militar em operação no Morro do Fallet Imagem: BETINHO CASAS NOVAS/ESTADÃO CONTEÚDO

Alex Tajra e Silvia Ribeiro

Do UOL, em São Paulo e no Rio*

08/02/2019 19h23

O confronto entre policiais e traficantes nas comunidades Fallet Fogueteiro, em Santa Teresa, e no Morro dos Prazeres, no Catumbi, ambas na região central do Rio de Janeiro, que resultou em 14 mortos, foi a operação policial mais violenta no estado em mais de dois anos. Levantamento feito pelo laboratório de dados Fogo Cruzado a pedido da reportagem do UOL mostra que, desde o segundo semestre de 2016, quando a organização começou a funcionar, não houve registro de uma operação de forças de segurança com tantos mortos no estado.

Segundo a Polícia Militar, os mortos seriam suspeitos de envolvimento com o tráfico de drogas. As identidades deles ainda não foram reveladas pela corporação, que diz ter encontrado os corpos após o confronto. Em nota enviada ao UOL, a PM afirmou que "equipes policiais reagiram à injusta agressão proveniente dos criminosos". Foram apreendidos quatro fuzis, 14 pistolas e seis granadas.

Nos últimos dois anos, foram registrados oito confrontos com sete ou mais mortes em comunidades do Rio, segundo o Fogo Cruzado --organização independente que mapeia e contabiliza tiroteios na região metropolitana do Rio.

Operações com 8 vítimas:

  • 24/03/2018 - Rocinha
  • 18/05/18 - Complexo do Lins

Operações com 7 vítimas:

  • 19/11/16 - Cidade de Deus
  • 11/11/17 - Complexo do Salgueiro
  • 25/11/17 - Complexo do Caju
  • 08/06/18 - Praia Vermelha
  • 20/06/18 - Vila Pinheiro (Maré)
  • 20/08/18 - Morro do Sereno (Complexo da Penha)

Cinco destas operações aconteceram durante o período de intervenção federal na segunda pública do Rio, que vigorou entre fevereiro e dezembro de 2018. Foi o caso do confronto no Complexo do Lins (zona norte), em maio do ano ado, quando o chefe do tráfico de comunidades da Praça Seca (zona oeste) Sérgio Luiz da Silva Júnior, conhecido como Da Russa, foi morto durante troca de tiros com a polícia. 

A operação, comandada pela Subsecretaria de Comando e Controle, envolveu cooperação entre as Forças Armadas e policiais civis e militares. Em outra operação que envolveu o Exército, uma grande operação realizada no Complexo da Penha, em agosto ado, deixou cinco civis e dois militares mortos. O cabo do Exército Fabiano de Oliveira Santos e o soldado João Viktor da Silva foram os primeiros militares mortos em operações desde o início da intervenção, que terminou em dezembro.

2018: mortes pela polícia aumentaram 36%

Entre janeiro e dezembro do ano ado, o Rio registrou 1.532 mortes por intervenção de agentes de segurança. O número é 36% maior do que o registrado no mesmo período de 2017, quando ocorreram 1.127 mortes desse tipo.

O número expressivo de mortes verificado nesta sexta acontece depois de um grande debate iniciado na campanha eleitoral. O então candidato Wilson Witzel (PSC) defendeu o "abate" de criminosos que estejam portando fuzis. Ele defende o uso de atiradores de elite para este tipo de ação.

Um levantamento feito pelo Fogo Cruzado também aponta o aumento de tiroteios em oito grandes vias do Rio. Foram 419 tiros ou tiroteios nos seus arredores no ano ado. O número é 80% maior do que o verificado em 2017, quando foram registrados 234 tiros ou tiroteios nas mesmas vias.

As vias citadas pelo relatório são a avenida Brasil, as linhas Vermelha e Amarela, a Transolímpica, a autoestrada Lagoa-Barra, a estrada Grajaú-Jacarepaguá, a avenida das Américas e a estrada do Alto da Boavista, que liga as zonas norte e oeste.

A avenida Brasil apresentou o maior aumento no número de registros --de 137 casos em 2017 para 225 no ano ado. A via corta boa parte da região metropolitana e a pelas região central da capital, além cruzar bairros das zonas norte e oeste e margear municípios da Baixada Fluminense.

*Com reportagem de Gabriel Sabóia e Marcela Lemos, do UOL, no Rio, e colaboração para o UOL, no Rio