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

Witzel elogia Polícia do Rio após morte de miliciano: "Outro patamar"

28.jan.2020 - Wilson Witzel em inauguração de base do Segurança Presente em Madureira, zona norte do Rio - Eliane Carvalho/Divulgação
28.jan.2020 - Wilson Witzel em inauguração de base do Segurança Presente em Madureira, zona norte do Rio Imagem: Eliane Carvalho/Divulgação

Igor Mello

Do UOL, no Rio

10/02/2020 13h10

O governador Wilson Witzel (PSC) elogiou hoje a ação de forças policiais do Rio de Janeiro e da Bahia que ontem localizou e matou o miliciano Adriano Magalhães da Nóbrega, o Capitão Adriano, apontado como o chefe do Escritório do Crime, grupo paramilitar que comanda a comunidade do Rio das Pedras.

A ação ocorreu em colaboração entre a Polícia Civil do Rio e a Polícia Militar da Bahia. Adriano foi localizado em uma propriedade rural na cidade de Esplanada, no interior do estado. Ele estava foragido desde janeiro de 2019, quando escapou das forças policiais durante a deflagração da Operação Intocáveis. A ação prendeu diversas lideranças do Escritório do Crime.

Witzel afirmou que a equipe "chegou ao local do crime para prender", mas disse que Adriano atirou contra os policiais.

"Não podemos deixar de agradecer à Polícia Civil do Rio de Janeiro. Ontem tivemos duas importantes operações em parceria com outra polícia, a polícia da Bahia e obteve o resultado que se esperava. Chegamos ao local do crime para prender mas, infelizmente, o bandido que ali estava não quis se entregar. Trocou tiros com a polícia e infelizmente faleceu", afirmou.

Em referência a um famoso meme criado pela torcida do Flamengo no ano ado, Witzel ainda disse que a Polícia Civil do Rio "mostrou que está num outro patamar". As declarações foram dadas durante uma agenda pública do governador em Queimados, na Baixada Fluminense.

De acordo com o governador, a ação reafirma que sua decisão de extinguir a Secretaria de Segurança foi acertada. "Não precisa de Secretaria de Segurança pública para dizer o que a Polícia Civil precisa fazer", comemorou.

Em nota, Secretaria de Segurança Pública da Bahia afirmou que Adriano reagiu à ordem de prisão e atirou contra os policiais que o abordaram em uma casa no interior da propriedade.

"No momento do cumprimento do mandado de prisão ele resistiu com disparos de arma de fogo e terminou ferido. Ele chegou a ser socorrido para um hospital da região, mas não resistiu aos ferimentos", diz a nota. O advogado de Adriano Magalhães da Nóbrega, Paulo Emílio Catta Preta, contou que o miliciano havia lhe dito que tinha medo de ser alvo de uma queima de arquivo —morte de uma testemunha ou envolvido em organização criminosa que possui informações comprometedoras.

"Até tentei dizer a que nessas circunstâncias eu preferia que ele se entregasse, para facilitar os habeas corpus que temos contra a prisão preventiva, enfim...Mas ele disse: "Doutor Paulo, eu não o vivo. Se eu entrar na prisão eu tô morto em um período muito curto e tenho absoluta certeza de que essa operação não é para me prender, é para me matar". Palavras dele", lembrou o advogado.

Na semana ada, as polícias do Rio e da Bahia já tinham feito uma operação conjunta para tentar prender Capitão Adriano. As forças policiais foram até um condomínio de luxo na Costa do Sauipe, no litoral baiano, onde ele estava escondido com a mulher e a filha. O criminoso conseguiu fugir, mas deixou para trás uma identidade falsa que utilizava.