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

Diogo Schelp

OPINIÃO

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

Oposição precisa assumir que não há condições para impeachment de Bolsonaro

Manifestação antibolsonarista de 12 de setembro - Reprodução/MBL
Manifestação antibolsonarista de 12 de setembro Imagem: Reprodução/MBL

Colunista do UOL

13/09/2021 15h11

Os esvaziados protestos deste domingo (12) contra Jair Bolsonaro reafirmam algo que está mais do que evidente há meses: não há condições políticas para um processo de impeachment contra o presidente.

Há quatro motivos para isso. O primeiro é o desinteresse do maior partido de oposição, o PT, em pressionar para valer pelo afastamento e pela inelegibilidade do presidente, o que impacta no segundo motivo, a dificuldade dos variados grupos pró-impeachment em deixar as diferenças de lado por um instante e se unir em torno da causa comum. O terceiro é a popularidade de Bolsonaro — mais baixa do que nunca, mas suficientemente elevada para fazer contrapeso ao antibolsonarismo. O quarto é a resistência na Câmara dos Deputados, tanto por parte da maioria dos parlamentares como do presidente da casa, Arthur Lira (PP-AL), a um processo de impedimento de Bolsonaro.

O PT atuou escancaradamente contra a mobilização que uniu movimentos de direita, como o MBL e o Vem Pra Rua, partidos de centro e de esquerda, como o PSDB e o PDT, e algumas centrais sindicais nos protestos de 12 de setembro.

Há um componente de ressentimento pelo protagonismo de alguns desses grupos no impeachment da ex-presidente Dilma Rousseff, em 2016, e pelo apoio à eleição de Bolsonaro, em 2018, mas a verdadeira razão, oculta, para o boicote às manifestações é o cálculo eleitoral.

Para Lula, o melhor cenário para 2022 é ter Bolsonaro como principal adversário nas urnas. Não interessa ao pré-candidato presidencial do PT uma eleição sem Bolsonaro, com quem pode polarizar, e correr o risco de enfrentar um nome moderado da centro-direita, capaz de crescer nas pesquisas, angariando os votos antipetistas.

Eis porque Lula demorou tanto para apoiar publicamente o impeachment de Bolsonaro, quando outros correligionários da esquerda já o faziam. E, mesmo agora, esse apoio do PT ao impeachment é claramente apenas para inglês ver.

O que nos leva ao segundo motivo da ausência de condições políticas para o impeachment. Não há clima para afastar um presidente do poder por meio de um julgamento político no Congresso Nacional sem respaldo visível das massas populares.

Ou seja, sem povo nas ruas, a elite política em Brasília não se mexe. Fernando Collor de Mello caiu após os grandes protestos dos caras-pintadas, alavancados pelo PT, mas com forte adesão de outros setores políticos. Dilma enfrentou a devastadora maré verde-amarela, que unificou a direita, mas também partidos de centro e centro-esquerda.

Já os atuais protestos pró-impeachment estão rachados. A esquerda conseguiu reunir mais gente nas manifestações de maio e junho do que os atos pró-Bolsonaro de 7 de setembro, mas petistas e psolistas recusam-se a marchar ao lado de grupos de direita. Tucanos chegaram a ser agredidos por manifestantes de esquerda mais radicais nos atos de 4 de julho, em São Paulo.

O PT e parte da direita que rompeu com Bolsonaro não conseguem deixar para 2022 as discussões em torno do abismo ideológico que os separa.

A menos de um ano para o início da campanha, a agenda eleitoral se impõe. O grito de #ForaBolsonaro, principalmente para o PT, acaba sendo só um slogan para incendiar as bases, não uma agenda política real e imediata.

Sem uma oposição unida, fica ainda mais fácil para os grupos de apoio a Bolsonaro fazerem o contrapeso, a demonstração popular de força e dissuasão contra o impeachment — isso quando não estão conspirando abertamente por uma agenda golpista. Foi o que se viu nos atos de 7 de setembro.

O governo Bolsonaro enfrenta atualmente o seu nível mais baixo de aprovação popular, segundo as principais pesquisas de opinião, mas nunca rompeu o piso de 20% de apoio. É ruim, mas não tanto quanto a impopularidade enfrentada por Collor (9% de aprovação) ou por Dilma (8%).

Sem o derretimento da aprovação a Bolsonaro abaixo dos dois dígitos, não se cria o clima político capaz de convencer parlamentares do centrão a abandonar as emendas orçamentárias e os carguinhos no governo para seus apadrinhados em prol de um impeachment do presidente.

Isso explica por que Arthur Lira, presidente da Câmara dos Deputados, se impõe como maior barreira ao afastamento de Bolsonaro ao manter na gaveta os 130 pedidos de impeachment contra ele. E também por que, em diferentes sondagens, não haveria votos suficientes de deputados para autorizar a abertura de um processo de impeachment.

Juridicamente, não faltam motivos para o afastamento de Jair Bolsonaro. O presidente cometeu crimes de responsabilidade em sua gestão desastrosa da pandemia, como demonstram as evidências colhidas pela I da Covid no Senado, e nas ameaças à ordem institucional que sustenta a democracia brasileira, como bem explicou o jurista Miguel Reale Júnior, coautor do pedido de impeachment de Dilma Rousseff, em entrevista ao UOL.

Politicamente, porém, não há condições para o impeachment. A oposição faria melhor se concentrasse as energias em desenvolver estratégias para vencer Bolsonaro nas urnas e evitar que ele e seus apoiadores consigam empastelar o resultado das eleições.