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

OPINIÃO

Sakamoto: Ordem de equipe de Tarcísio cheira a tentativa de destruir provas

Colaboração para o UOL, em São Paulo

25/10/2022 14h29

O colunista do UOL Leonardo Sakamoto participou do UOL News hoje e falou sobre os áudios atribuídos à equipe do candidato ao governo de São Paulo Tarcísio de Freitas (Republicanos) onde fazem um pedido para um cinegrafista da Jovem Pan apagar o vídeo do tiroteio que aconteceu em Paraisópolis quando o candidato cumpria agenda de campanha. Para Sakamoto, se não houver mais explicações, isso pode configurar uma tentativa de destruir provas que podem auxiliar na elucidação do caso.

"Campanha do candidato Tarcísio de Freitas precisa se explicar muito bem para tentar entender que imagens são essas, que foram inclusive divulgadas pela Jovem Pan, e que eles não queriam. Por quê? Do jeito que está, fica cheirando a uma tentativa de destruição de provas", disse.

Sakamoto ainda reforçou que há indícios de destruição de provas e relembrou que o próprio candidato havia afirmado que sua equipe de campanha havia sido atacada na ocasião. "Aquelas imagens são provas e como provas, elas precisam ser resguardadas e entregues à autoridade policial investigatória para que possa solucionar o caso", completou.

Ele ainda afirmou que essa atitude da campanha de Tarcísio é, inclusive, coerente com sua proposta de retirar câmeras dos uniformes dos policiais militares de São Paulo.

"Isso mostra uma certa coerência com o comportamento do próprio candidato que, no início da campanha, defendeu que era contra a utilização de câmeras nas fardas de policiais".

Sakamoto: Mais de 70 milhões serão lesados se Guedes mudar reajuste do salário mínimo

Ainda durante participação no UOL News, Sakamoto afirmou que mais de 70 milhões de brasileiros que dependem do salário mínimo podem ser prejudicados caso a mudança estudada pelo Ministério da Economia de Jair Bolsonaro (PL) de alterar a forma de correção do salário mínimo pela inflação seja implementada a partir do ano que vem.

Ele conversou com Eduardo Fagnani, que é professor do Instituto de Economia da Universidade Estadual de Campinas (Unicamp) e pesquisador do Centro de Estudos Sindicais e do Trabalho, e também trabalhadores formais e informais, quanto aposentados, entram nessa conta.

"Pela lógica de Guedes, se isso aí for aprovado, vai ser uma bomba no ano que vem. A questão é que vazou antes da hora provavelmente, mas 72 milhões de pessoas estão esperando para ver o que acontece".

TSE não está censurando imprensa, mas vedando crimes eleitorais, avalia Sakamoto

"O TSE não está censurando a imprensa, ele está vedando o crime eleitoral. Os casos em que ele é capaz de verificar e as ações que está tomando nesse sentido são para proibir mentiras que já haviam sido proibidas pela Justiça Eleitoral de não poderem circular travestidas de matérias em veículos de comunicação que apoiam A ou B", disse Sakamoto sobre a decisão do STF que formou maioria para aumentar 'poderes do TSE' contra fake news.

"É justo, é muito justo e é justíssimo que Tribunal Superior Eleitoral tome essas medidas nesse momento", completou.

O UOL News vai ao ar de segunda a sexta-feira em três edições: 8h, 12h e 18h, sempre ao vivo.

Quando: de segunda a sexta às 8h, 12h e 18h.

Onde assistir: Ao vivo na home UOL, UOL no YouTube e Facebook do UOL.

Veja a íntegra do programa: