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

Podcast

UOL Prime

Podcasts com o melhor do jornalismo do UOL


Armas, lobby e assassinato: a investigação sobre corrupção no STJ | Podcast UOL Prime #68

Do UOL, em São Paulo

01/05/2025 05h20

A investigação da Polícia Federal sobre um esquema de venda de decisões do STJ (Superior Tribunal de Justiça) liderado pelo lobista Andreson de Oliveira Gonçalves já chegou às primeiras provas de pagamento de propina a um assessor do tribunal, revelando uma movimentação bilionária.

A PF está seguindo o caminho desse dinheiro. Um relatório do Coaf (Conselho de Controle de Atividades Financeiras) apontou uma movimentação financeira suspeita no valor total de R$ 2 bilhões feita pelo lobista e pessoas ligadas a ele.

A movimentação envolve a mulher do lobista, a advogada Mirian Ribeiro, e o advogado Roberto Zampieri, assassinado no final de 2023, crime que motivou a investigação.

O podcast UOL Prime, apresentado por José Roberto de Toledo, traz uma entrevista com o jornalista Aguirre Talento sobre uma série de reportagens a respeito do assunto.

Em outubro de 2024, a reportagem do UOL revelou que Andreson de Oliveira Gonçalves tinha o indevido a documentos internos e a minutas de decisões de ministros do STJ.

As suspeitas vieram a público após a apreensão do telefone celular de um advogado de Cuiabá, Roberto Zampieri, assassinado no fim de 2023 em Mato Grosso.

Investigadores encontraram no aparelho diálogos em que Andreson, parceiro de Zampieri, demonstra ter relação próxima com diversos funcionários de gabinetes do STJ.

As investigações apontam que o mandante do assassinato de Zampieri é um produtor rural prejudicado pelo esquema de venda de decisões na segunda mais alta corte do país.

"Parece um faroeste caboclo. Tem armas, corrupção, lobby por gabinetes brasilienses e assassinato", comentou Toledo.

Nesta edição, Aguirre Talento fala sobre o avanço das investigações da Polícia Federal e os detalhes da movimentação financeira bilionária envolvendo o lobista.

"Só para ter uma ideia das cifras envolvidas, porque a Polícia Federal começou a seguir o rastro do dinheiro pra dar prosseguimento à investigação, esse relatório do Coaf que fez uma análise inicial de movimentações financeiras suspeitas envolvendo Andreson, Mirian e também Roberto Zampieri totalizou transações no valor de R$ 2 bilhões", afirmou Aguirre.

"Se todos os valores fossem lícitos, já seriam valores altíssimos a serem movimentados", complementou.

Ao se aprofundar nas transações, a PF já descobriu que uma empresa do lobista transferiu R$ 4 milhões para uma empresa da esposa de um assessor do STJ, Márcio Toledo Pinto, que trabalhou nos gabinetes das ministras Isabel Gallotti e Nancy Andrighi.

O podcast UOL Prime é publicado às quintas-feiras no YouTube do UOL Prime, Spotify, Apple Podcasts, Amazon Music, Deezer e em todas as plataformas de podcast.