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

Carolina Brígido

OPINIÃO

Texto em que o autor apresenta e defende suas ideias e opiniões, a partir da interpretação de fatos e dados.

Ao cassar Deltan e absolver Moro, TSE mostra que rigidez não é perseguição

O deputado Deltan Dallagnol, que teve o mandato cassado pelo TSE -  O Antagonista
O deputado Deltan Dallagnol, que teve o mandato cassado pelo TSE Imagem: O Antagonista

Colunista do UOL

16/05/2023 22h16

Desde a decisão do STF (Supremo Tribunal Federal) que deslegitimou a conduta do ex-juiz Sergio Moro, a Lava Jato tem sofrido uma série de reveses judiciais. A mais recente foi nesta terça-feira (16), quando o TSE (Tribunal Superior Eleitoral) cassou o mandato do ex-procurador Deltan Dallagnol, que comandava as investigações em Curitiba.

Na esteira da popularidade da Lava Jato, Moro se elegeu senador e Dallagnol, deputado. Em dezembro do ano ado, o TSE absolveu Moro de um processo de cassação. Hoje, condenou Dallagnol.

A diferença no tratamento dos dois traz algumas mensagens. A primeira delas é que, mesmo tendo firmado estilo mais rígido na interpretação da legislação eleitoral a partir da campanha do ano ado, o TSE está disposto a analisar detidamente caso a caso. Resumindo: rigor no julgamento não é sinônimo de perseguição gratuita.

O corregedor do tribunal, ministro Benedito Gonçalves, fez um paralelo entre os dois casos na sessão de hoje.

Dallagnol foi cassado por fraude à Lei da Ficha Limpa. Ele renunciou ao cargo de procurador da República quando já havia sinais de que poderia ser exonerado por desvio de conduta. Se ele tivesse sido de fato punido no processo disciplinar, teria sido impedido de concorrer às eleições - e, portanto, não seria hoje deputado.

O raciocínio do TSE é uma interpretação ampliativa da Lei da Ficha Limpa e mostra que os ministros estão dispostos a combater fraudes, ainda que isso signifique a perda de mandato de um parlamentar federal empossado recentemente.

No caso de Moro, o ex-juiz foi acusado de não ter filiação partidária válida no Paraná dentro do prazo legal. Até março do ano ado, Moro era filiado ao Podemos do Paraná. Ele deixou o partido e foi para o União Brasil de São Paulo.

Em junho, a Justiça Eleitoral cancelou a transferência de seu domicílio eleitoral, por considerar que ele não tinha vínculo para concorrer na capital paulista. Moro, então, decidiu concorrer pelo Paraná. Segundo o TSE, tudo foi feito no prazo legal. Ou seja, na observação estrita das datas fixadas no calendário eleitoral, não houve fraude.

Outra mensagem que o TSE a no julgamento de Dallagnol é que ataques ao Judiciário são uma ameaça grave à democracia. O STF já firmou esse entendimento e, agora, a Justiça Eleitoral tem a oportunidade de reforçar o recado. O ex-procurador já havia sido punido pelo CNMP (Conselho Nacional do Ministério Público) por dizer que certas decisões do STF "mandam uma mensagem muito forte de leniência a favor da corrupção".

Em breve, os holofotes do TSE estarão lançados sobre o ex-presidente Jair Bolsonaro, que responde a 16 ações de inelegibilidade na Corte. Em algumas delas, a acusação é de ataque ao Judiciário e às instituições democráticas. Integrantes do governo consultados em caráter reservado pela coluna têm esperança que Bolsonaro, a exemplo de Dallagnol, pague a língua com a inelegibilidade.