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

Esse conteúdo é antigo

Comprariam um carro do Moro ou do Deltan?, pergunta Gilmar Mendes no STF

Júlia Schiaffarino, Leticia Lázaro, Lucas Borges Teixeira e Rafael Bragança

Do UOL, em São Paulo

23/03/2021 16h12

O ministro do STF (Supremo Tribunal Federal) Gilmar Mendes questionou hoje os colegas da Segunda Turma se eles confiariam no ex-juiz Sergio Moro e no procurador Deltan Dallagnol para comprarem um carro deles. Gilmar fez a pergunta em sua reafirmação de voto durante o julgamento sobre a suspeição de Moro no processo da Lava Jato que levou à condenação do ex-presidente Luiz Inácio Lula da Silva (PT) pelo tríplex no Guarujá (SP).

"Algum dos senhores aqui compraria um carro do Moro? Algum dos senhores hoje seria capaz de comprar um carro do Dallagnol? São pessoas de confiança? Alguém o contrataria como advogado nessas circunstâncias, tendo agido dessa forma?", questionou o ministro do STF, que preside a Segunda Turma da Corte.

Gilmar falava sobre a relação entre Moro e Deltan quando o procurador era coordenador da extinta força-tarefa da Lava Jato em Curitiba. Para o ministro do STF, que já votou a favor da suspeição de Moro, a conduta do ex-juiz justifica a alegada parcialidade que a defesa de Lula diz ter havido no julgamento do ex-presidente.

O ministro que preside a Segunda Turma falou logo após o ministro Kassio Nunes Marques concluir seu voto em favor de Moro, contra a suspeição apontada por Lula. De maneira enfática e se exaltando em alguns momentos, Gilmar rebateu os argumentos de Nunes Marques sobre a obtenção dos indícios da parcialidade do ex-juiz.

O voto de Nunes Marques foi baseado, em grande parte, na forma de obtenção das mensagens trocadas entre Moro e procuradores da Lava Jato em Curitiba. O ministro, que foi indicado pelo presidente Jair Bolsonaro (sem partido), reforçou que as conversas foram obtidas de maneira ilícita por hackers.

"Eu já disse aqui: ou o hacker é um ficcionista ou estamos diante de um grande escândalo, e não importa o resultado desse julgamento, a desmoralização da Justiça já ocorreu. O tribunal de Curitiba é conhecido mundialmente hoje como tribunal de exceção, enchem-nos de vergonha", afirmou Gilmar.

"Ministro Kassio, nós não estamos falando de hackers. Estamos falando de uma informação cínica vinda do juiz. Só este fato já seria suficiente, como essa Corte já decidiu, para reconhecer a quebra da imparcialidade, ministro. É chocante", completou.

Habeas corpus

Gilmar também argumentou contra as alegações de Nunes Marques de que o habeas corpus impetrado pela defesa de Lula — motivo do julgamento de hoje no STF — não poderia pedir a suspeição de um juiz.

"Por isso essa Corte, por pessoas mais sábias do que nós, antes de nós, já disse de maneira muito clara que o HC é instrumento, sim, para afirmar a suspeita de magistrado", disse Gilmar.

Na reafirmação do seu voto a favor da suspeição, o ministro também identificou um "conluio" da mídia com a Lava Jato, com o objetivo de propagar as ações da operação e, principalmente, da força-tarefa de Curitiba.

"Não vou encerrar minha fala sem lembrar que aqui houve um consórcio, um conluio espúrio com a mídia, inclusive cooperações que se fizeram, ao invés de criticar, tanto é que hoje escondem tanto quanto possível essas divulgações", afirmou Gilmar, citando a "massificação de divulgação" das ações da Lava Jato e a "criação de mídia opressiva".