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

Acusação de Fabio Faria ecoa nas redes bolsonaristas, mas é criticada

Thiago Varella

Colaboração com o UOL

25/10/2022 17h24Atualizada em 25/10/2022 17h24

Em pronunciamento convocado na noite de ontem (24), em frente ao Palácio da Alvorada, em Brasília, o ministro das Comunicações, Fabio Faria, afirmou que a campanha do ex-presidente Lula (PT) foi beneficiada com 154.085 inserções de rádio a mais do que a coligação do presidente Jair Bolsonaro (PL).

Em tom alarmista, o ministro chamou o caso de "grave violação do sistema eleitoral". Apesar de ainda não ter apresentado provas, o que terá que ser feito em um prazo de 24 horas determinado pelo presidente do TSE (Tribunal Superior Eleitoral), Alexandre de Moraes, os perfis bolsonaristas nas redes sociais usaram a acusação feita por Faria para pedir a cassação da candidatura de Lula.

O próprio ministro das Comunicações já havia usado sua conta no Twitter ontem tanto para convocar a coletiva de imprensa como para ecoar sua acusação.

Rapidamente, outros perfis bolsonaristas correram para tentar fazer a denúncia de Fabio Faria viralizar nas redes sociais.

Apesar do esforço bolsonarista, a declaração de Fabio Faria, ao lado de Fabio Wajngarten, coordenador da campanha de Bolsonaro, foi encarada como desespero pela equipe petista e, até mesmo, por analistas políticos, como Joel Pinheiro e o colunista do UOL Reinaldo Azevedo.

No Twitter, a jornalista Juliana dal Piva, também colunista do UOL, afirmou que a campanha de Bolsonaro não apresentou provas de que as inserções de rádio não foram veiculadas.

O deputado federal André Janones (Avante-MG), uma das principais vozes lulistas nas redes sociais, subiu o tom e e xingou Faria de "gigolô da Jequiti", em referência ao fato de o ministro ser casado com Patrícia Abravanel, uma das filhas de Silvio Santos.

Mais espirituoso foi o perfil @Belzebu__666, no Twitter, que disse que, com a decisão de Alexandre de Moraes, Faria já arranjou emprego como consultor da Jequiti.

Bope. Outro episódio que fez sucesso nas redes bolsonaristas hoje (25) foi uma entrevista concedida por Felipe Sommer, major do Bope, ao podcast do lutador de MMA Fabricio Werdum.

Também sem apresentar provas, o policial afirmou que X, sigla estampada no boné usado por Lula durante comício no Complexo do Alemão, no Rio, significa "cupinxa [sic] do crime" e não complexo.

A "teoria" já havia sido apresentada por bolsonaristas logo após a visita de Lula à comunidade carioca e foi rapidamente desmentida por agências de checagem, inclusive com a anuência do TSE que determinou a remoção de posts que relacionavam o ex-presidente ao crime organizado.

As postagens sobre a entrevista do major do Bope foram feitas por perfis que apoiam Bolsonaro, mas não por políticos ou contas oficiais ou da coordenação de campanha.