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

Bolsonaro sobe o tom, ataca Moraes e xinga Lula de 'pinguço'

Do UOL, em São Paulo

07/10/2022 16h04Atualizada em 07/10/2022 20h06

O presidente Jair Bolsonaro (PL) se exaltou e atacou adversários em pronunciamento à imprensa hoje no Palácio da Alvorada, em Brasília. O mandatário criticou uma decisão do ministro Alexandre de Moraes, presidente do TSE (Tribunal Superior Eleitoral), e chamou de "pinguço" o ex-presidente Luiz Inácio Lula da Silva (PT), seu adversário na disputa pelo Planalto.

As declarações de Bolsonaro foram dadas após um encontro do presidente com aliados na capital federal. Com as falas irritadas, o candidato à reeleição contraria a estratégia da própria equipe de campanha, que vinha insistindo que o chefe do Executivo seja "menos Bolsonaro e mais estadista".

Bolsonaro perdeu a calma ao comentar uma decisão de Moraes em que quebrou o sigilo de mensagens de Mauro César Barbosa Cid, um assessor da Presidência, no âmbito do inquérito das milícias digitais, do STF (Supremo Tribunal Federal).

A quebra de sigilo bancário do assessor de Bolsonaro foi autorizada por Moraes a pedido da PF (Polícia Federal) no final de setembro, antes do primeiro turno. O material coletado pelos investigadores indica que dinheiro do gabinete presidencial foi movimentado para pagar contas pessoais de pessoas próximas a Bolsonaro, inclusive a primeira-dama Michelle.

O tempo todo usando a caneta para fazer maldade, tentar me tirar de combate, para desgastar. Já desafiei o Alexandre de Moraes, que vazou a quebra de sigilo telemático do meu ajudante de ordens, que é um crime o que esse cara fez. Esse cara fez um crime
Jair Bolsonaro, em fala à imprensa em Brasília

Em outro trecho da fala, mais adiante, Bolsonaro desferiu uma série de ataques a Lula. "Se vocês botarem um pinguço para dirigir o Brasil... Um cara sem qualquer responsabilidade, que tem um rastro de corrupção. Um rastro de deboche para com a família brasileira, de ataques a padres, a pastores, de ataque às Forças Armadas, de ataque aos policiais. Vocês acham que vai dar certo?", questionou.

"Queria estar na praia". "Não estou lutando por mim! Queria estar na praia uma hora dessas, tomando caldo de cana com a minha Laura de 11 anos de idade, tem semanas que eu não a vejo", exclamou.

Durante a coletiva, Bolsonaro também disse que não aproveitou "nem a piscina do Planalto", pois não podia se expor sob risco de "ser assassinado por um drone".

O presidente também disse não sentir nenhum prazer de estar comandando o Brasil, a não ser pelo fato de que "não se senta um comunista na minha cadeira".