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

Doria pede que PM não seja condenada de antemão por mortes em Paraisópolis

03/12/2019 19h36

São Paulo, 3 dez (EFE).- O governador de São Paulo, João Doria, pediu nesta terça-feira, em entrevista a jornalistas estrangeiros, que a Polícia Militar não seja condenada antecipadamente pela morte de nove jovens e adolescentes na favela de Paraisópolis, na capital paulista.

"Não se pode condenar uma corporação, ainda mais a Polícia Militar do estado de São Paulo, que é a mais bem treinada polícia militar do país, e a melhor polícia militar do Brasil. Não se pode condenar se dois, três, quatro, cinco ou seis policiais cometeram equívocos. É preciso investigar e, havendo a culpabilidade, penalizá-los, evidentemente", defendeu o político do PSDB.

Doria manteve a versão oficial do governo de São Paulo e da força de segurança estadual, de que não houve uma operação em Paraisópolis na madrugada de domingo, mas sim uma perseguição policial a dois suspeitos, que abriram fogo contra os agentes em ruas da comunidade.

"Não se trata de uma ação policial, não houve disparo, nenhuma ação policial efetiva, que tenha proporcionado a morte de qualquer um deles. Uma situação de descontrole da população, tínhamos 5 mil pessoas agrupadas na madrugada, em uma região onde nem sequer deveria estar havendo uma manifestação desse tipo, porque ela é proibida pela prefeitura", disse.

"Nós determinamos uma investigação rigorosa para verificar aonde há e aonde não há participação policial, mas não generalizar. O governo de São Paulo não generaliza, nem se atemoriza diante de situações desse tipo. Analisa, investiga, avalia a decide. E se tiver que punir, punirá", completou o governador.

Doria garantiu que os primeiros que precisam responder sobre o que aconteceu em Paraisópolis são os criminosos que fugiam de policiais e fizeram disparos, provocando pânico na multidão. Além disso, revelou que há preocupação sobre as imagens que rodaram o mundo nos últimos dias.

"Se as cenas que foram veiculadas pelas redes sociais são da mesma época, do mesmo final de semana, ou seja, de sábado para domingo, na nessa região ou se de outro período. Há dúvidas em relação a isso. Há que se investigar", disse.

O governador negou que a Polícia Militar de São Paulo esteja voltada para reprimir a camada mais pobre da população, e garantiu que a corporação age com rigor, mas dentro da lei, sem distinguir classes sociais.

"A lei vale para todos, comunidades e bairros nobres do estado de São Paulo, seja da capital, seja da região metropolitana, seja de qualquer outra região. A política pública é feita para todos e a segurança também. É o estado que mais prende bandidos nos país. E aqui nós prendemos e penalizamos, de acordo com a Justiça, evidentemente, ricos e pobres", destacou. EFE