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

Bolsonaro: Enviaremos pedido de impeachment de Barroso 'nos próximos dias'

"Não é fácil fazer um pedido [de impeachment]. Tem que ter muito equilíbrio", disse Bolsonaro a jornalistas - Reprodução/SBT
"Não é fácil fazer um pedido [de impeachment]. Tem que ter muito equilíbrio", disse Bolsonaro a jornalistas Imagem: Reprodução/SBT

Do UOL, em São Paulo

20/08/2021 21h21Atualizada em 20/08/2021 21h45

O presidente Jair Bolsonaro (sem partido) anunciou hoje que deve entregar "nos próximos dias" um pedido de impeachment contra o ministro Luís Roberto Barroso, do STF (Supremo Tribunal Federal). No início da noite, Bolsonaro enviou ao Senado um pedido semelhante contra o ministro Alexandre de Moraes.

"Não é fácil fazer um pedido [de impeachment]. Tem que ter muito equilíbrio, tem que buscar materialidade, tem que estudar bastante. Não pode apresentar por apresentar. Priorizamos esse pedido do senhor Alexandre de Moraes e, nos próximos dias, ultimaremos o segundo pedido [contra Barroso]", disse o presidente em entrevista a jornalistas, concedida em frente à casa de sua mãe em Eldorado, no interior de São Paulo.

Sei das consequências internas e externas de uma ruptura [institucional]. Não quero isso, não provoco e não desejo. Agora, essa série de medidas que a pelo Supremo Tribunal Federal por uma pessoa apenas, o senhor Alexandre de Moraes, vem trazendo inquietação para todos nós.
Jair Bolsonaro, a jornalistas

Também presidente do TSE (Tribunal Superior Eleitoral), o ministro Barroso tem sido um dos principais alvos dos ataques de Bolsonaro, que se intensificaram nas últimas semanas em meio à discussão em torno do "voto impresso auditável".

O presidente vinha defendendo a aprovação da PEC (Proposta de Emenda à Constituição) 135/19, de autoria da deputada federal Bia Kicis (PSL-DF), que quer adotar uma espécie de comprovante impresso após votação na urna eletrônica. O projeto, porém, foi derrotado duas vezes: primeiro, na comissão especial da Câmara; depois, no plenário da Casa, onde alcançou apenas 229 dos 308 votos favoráveis necessários.

Ataques reiterados

Os ataques de Bolsonaro a Barroso são frequentes, feitos sempre que o presidente acusa o sistema eleitoral adotado no Brasil de fraude — sem, no entanto, apresentar provas de suas alegações. No início do mês, em viagem a ville (SC), Bolsonaro chegou a xingar Barroso de "filho da p...". (Assista abaixo)

"Aquele filho da p... ainda faz isso. Aquele filho da p... do Barroso", disse Bolsonaro em meio a uma aglomeração de apoiadores. No vídeo, é possível ver que a maioria das pessoas — incluindo Bolsonaro — ou não está de máscara, ou a usa de maneira errada.

Ação contra Moraes

Cumprindo com o anunciado na semana ada, Bolsonaro apresentou hoje ao Senado o pedido de impeachment contra o ministro Alexandre de Moraes. É a primeira vez que um presidente da República pede o impeachment de um ministro da Corte.

Em nota, o STF repudiou a atitude de Bolsonaro, dizendo que a democracia "não tolera que um magistrado seja acusado por suas decisões" e que Moraes irá aguardar a deliberação do Senado.

Já o presidente do Senado, Rodrigo Pacheco (DEM-MG), afirmou que analisará o pedido, mas indicou que não o levará adiante. "Não antevejo fundamentos políticos, técnicos e jurídicos para o impeachment do ministro do STF, como também não antevejo para o impeachment do presidente da República", declarou, em evento em São Paulo.