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

Operação prende milicianos após morte de Jerominho: 'Matança generalizada'

Igor Mello e Marcela Lemos

Do UOL e colaboração para o UOL, no Rio

25/08/2022 08h59Atualizada em 25/08/2022 12h34

A PF (Polícia Federal) e o Gaeco (Grupo de Atuação Especializada de Combate ao Crime Organizado do Ministério Público do Estado do Rio de Janeiro) cumpriram hoje mandados de prisão contra ao menos oito pessoas durante a Operação Dinastia, deflagrada para prender lideranças da milícia de Luís Antônio da Silva Braga, o Zinho, que atua principalmente na zona oeste da cidade.

Quatro dos oito suspeitos já se encontravam detidos. De acordo com fontes no Ministério Público, as prisões e apreensões feitas durante a operação devem ajudar a esclarecer uma série de homicídios relacionados à maior milícia do Rio. Os promotores têm a expectativa de conseguir informações sobre o assassinato do ex-vereador do Rio Jerônimo Guimarães, o Jerominho, fundador da milícia Liga da Justiça, que deu origem ao Bonde do Zinho. Jerominho foi morto no dia 4 deste mês, atingido por tiros de fuzil. Uma câmera de segurança filmou a ação.

Até o momento, uma das linhas de investigação é de que Jerominho foi assassinado por ordem de Zinho. Com as novas informações, o MP espera comprovar ou eliminar de vez essa tese.

Um dos alvos da ação de hoje foi preso num hotel de luxo na cidade de Gramado (RS). Ele foi identificado como Geovane da Silva Mota, conhecido como GG.

Ao todo, a ação tenta cumprir 23 mandados de prisão temporária e 16 mandados de busca e apreensão.

De acordo com o MP, as investigações revelaram que o grupo sustenta um esquema de extorsão, posse e porte de armas de fogo de uso permitido e de uso (fuzis), comércio ilegal de armas de fogo, corrupção ativa de agentes das Forças de Segurança, "além de diversos homicídios, que são incessantemente planejados e executados pelos milicianos em face de criminosos rivais, que integram a milícia comandada por Danilo Dias, conhecido como Tandera".

Ainda segundo o MP, as provas recolhidas até agora "evidenciam uma matança generalizada que é fomentada pela organização, que tem como pilar para o seu funcionamento e manutenção a destruição dos integrantes da milícia rival e de quaisquer pessoas que possam auxiliar os seus inimigos, ou prejudicar o andamento de suas atividades criminosas".

Segundo a investigação, há criminosos destacados exclusivamente para fazer, de forma incessante, o levantamento de dados pessoais e a vigilância dos alvos que devem ser "abatidos".

A quadrilha também é suspeita de praticar extorsões de forma reiterada, cobrando "taxas" de comerciantes e prestadores de serviço que começam a empreender nas áreas dominadas pela milícia. "Até as informais barraquinhas de rua, que vendem lanches, são achacadas pelos criminosos", diz o MP em nota.

A Operação, fruto do trabalho conjunto do GAECO com a Polícia Federal, ainda visa identificar outros integrantes da organização criminosa, que é considerada a maior milícia em atividade do Estado do Rio de Janeiro.

Os suspeitos são investigados por organização criminosa, tráfico de armas de fogo e munições, além de extorsões e corrupção.