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

Vamos abordar todos os motoqueiros, diz novo comandante da PM de SP

O coronel Ronaldo Miguel Vieira, novo comandante-geral da Polícia Militar de SP - Herculano Barreto Filho/UOL
O coronel Ronaldo Miguel Vieira, novo comandante-geral da Polícia Militar de SP Imagem: Herculano Barreto Filho/UOL

Herculano Barreto Filho

Do UOL, em São Paulo

03/05/2022 14h14

O coronel Ronaldo Miguel Vieira, que assumiu hoje o comando-geral da Polícia Militar de São Paulo, disse que serão feitas abordagens a todos os motoqueiros como resposta à onda de assaltos cometidos por criminosos disfarçados de entregadores de aplicativos na capital paulista.

"A gente não pode criminalizar essa profissão. Eles estão tentando ganhar a vida. E, infelizmente, criminosos estão usando essa atividade como disfarce para cometer roubos. Estamos dando continuidade em operações com motociclistas. Só que a gente vai parando todos", disse o coronel.

Em entrevista coletiva concedida após a cerimônia de posse na Academia de Polícia Militar do Barro Branco, o coronel Vieira pediu pela compreensão dos motociclistas que atuam no ramo em decorrência das abordagens.

"A gente conversa com os profissionais que estão trabalhando para que eles entendam. Mas uma moto pode ter sido furtada ou roubada para ser usada em outro crime. Então, a Polícia Militar utiliza bastante [as abordagens] para dar uma resposta a esse crime. A gente tem que mostrar para a população que a Polícia Militar está presente", afirmou.

Contudo, não detalhou como essas abordagens serão feitas. O anúncio oficial do conjunto de medidas para coibir esse tipo de delito será feito amanhã pelo governador Rodrigo Garcia (PSDB), que esteve no evento de posse do novo comandante da corporação ao lado de Alexandre de Moraes, ministro do STF (Supremo Tribunal Federal) e ex-secretário de Segurança Pública de São Paulo.

Pela manhã, Garcia já havia se posicionado sobre o assunto em seu perfil no Twitter. "Hoje, eu e a cúpula da segurança de SP nos reuniremos com as empresas de delivery para criar protocolos de segurança e evitar que falsos entregadores espalhem terror no estado", escreveu.

O novo comandante da PM-SP disse ainda que as abordagens também serão feitas em motoristas por aplicativos. "A gente vai fazer uma abordagem, conversar com a família [ageiros]. A população tem que entender essa abordagem. Muitas vezes, falam: 'Não sou ladrão'. Mas a Polícia Militar tem que fazer a parte dela", explicou.

'Fiquei sensibilizado', diz sobre morte de Renan

O coronel Ronaldo Miguel Vieira também comentou a morte de Renan Silva Loureiro, 20, atingido por um tiro na cabeça em um assalto cometido por um motoqueiro disfarçado de entregador na noite de 25 de abril na região do Jabaquara, zona sul de São Paulo.

Renan Silva Loureiro, de 20 anos, morreu ao ser atingido por um tiro na cabeça em assalto na zona sul de São Paulo - Arquivo pessoal - Arquivo pessoal
Renan Loureiro levou um tiro na cabeça em assalto em SP
Imagem: Arquivo pessoal

O novo comandante da PM-SP fez críticas à progressão de regime em casos de roubo —Axcel Gabriel de Holanda Peres, 23, o falso motoqueiro preso por suspeita de cometer o crime, tinha dez agens pela polícia.

"O caso do Renan é muito triste. Fiquei extremamente sensibilizado, eu sou pai. Mas ele já tinha agens pela polícia. Ele vai para o semiaberto e tem progressão de pena. A gente prende, ele volta [para as ruas]".

Em entrevista ao UOL, Clarice Silva, mãe do jovem, contou que nunca imaginou perder o filho por um crime tão brutal. "Meu filho era um rapaz doce, educado, gentil. A única coisa que está me trazendo conforto é ouvir as pessoas falando dele com ternura", disse.

Relembre o caso Renan

O vídeo mostra o momento em que o motoqueiro desce do veículo e anuncia o assalto, apontando uma arma na direção do casal. Renan chega a se ajoelhar, mas vai em direção ao assaltante quando ele rouba a namorada dele. Neste momento, o homem dispara.

Segundo a Polícia Civil, o assaltante fez quatro tiros. Um deles atingiu Renan na cabeça. Em seguida, ele subiu na moto e deixou o local.

A partir de informações que relacionavam um suspeito às características do criminoso, a equipe da 1ª Delegacia Patrimônio (Investigações sobre Roubo e Latrocínio) esteve em dois endereços na Vila do Encontro, também na zona sul.

Em um imóvel, os policiais encontraram o revólver, bolsa, uma jaqueta e capa de chuva, material semelhante ao utilizado pelo autor do crime, de acordo com a polícia. No outro local, estavam objetos que podem ser provenientes de roubo, principalmente cartões de memória de celulares.

A namorada de Renan, que não ficou ferida após o assalto, reconheceu os olhos do suspeito, única parte à mostra durante o roubo, e outros objetos coletados em endereços ligados a ele. O homem confessou o crime e teria demorado para se entregar após ser identificado porque esperava a mãe vir do litoral paulista para conversar com ele.