;(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 reclama de ter nome ligado à morte de petista: 'Briga estúpida'

Rafael Neves

Do UOL, em Brasília

16/07/2022 15h10Atualizada em 16/07/2022 22h31

O presidente Jair Bolsonaro (PL) reclamou hoje, em discurso a evangélicos, de estar sendo associado à morte do petista Marcelo Arruda, assassinado por um bolsonarista no último dia 9 em Foz do Iguaçu (PR). Em pronunciamento de meia hora em uma igreja da Assembleia de Deus em Natal (RN), onde cumpre agenda de compromissos religiosos, Bolsonaro afirmou que a morte foi resultado de "uma briga estúpida e sem razão".

"Sempre um lado quer culpar o chefe do outro lado: olha, o discurso dele levou à morte daquela pessoa lá em Foz do Iguaçu. Ora, meu Deus do céu. O meu discurso levou à morte daquela pessoa? Uma briga estúpida e sem razão?", questionou o presidente. Ontem, a Polícia Civil do Paraná indiciou o policial penal Jorge Guaranho por homicídio duplamente qualificado, mas descartou a hipótese de crime político.

Bolsonaro tocou no assunto depois de fazer uma série de críticas à esquerda brasileira e latinoamericana, além de ataques indiretos ao ex-presidente Luiz Inácio Lula da Silva, sem citar o nome de petista. Após fazer referência à morte de Marcelo Arruda, ele citou a queda de homicídios durante o atual governo para sustentar que não estimula a violência.

"Em 2016, tivemos 61 mil mortes violentas no Brasil, a maioria por arma de fogo. No ano ado, no meu governo, amos para 41 mil, menos 20 mil mortes. Quem está no caminho certo? Quem está mentindo? Quem está tentando falar diferente para chegar ao poder?", disse o presidente, citando dados dos levantamentos realizados pelo Fórum Brasileiro de Segurança Pública.

Nos dias que se seguiram à morte de Marcelo Arruda, Bolsonaro fez uma chamada de vídeo com familiares bolsonaristas da vítima. Na ligação, intermediada pelo deputado Otoni de Paula (MDB-RJ), ele afirmou que "nada justifica" o crime cometido por Guaranho, mas reclamou das notícias que vinham associando a morte aos discursos violentos do presidente.

"A imprensa obviamente, quase toda a esquerda, tá quase que botando no meu colo a ação desse cara", disse Bolsonaro, que, em seguida, convidou os familiares a participar de uma entrevista coletiva em Brasília e falar sobre o caso.

Bolsonaro no Nordeste

A ida de Bolsonaro à Assembleia de Deus foi o segundo compromisso do presidente em Natal. Mais cedo, pela manhã, ele havia ido a uma missa no Santuário dos Mártires, também na capital potiguar.

Aos fiéis católicos, Bolsonaro leu trechos da Bíblia e fez um discurso mais breve, no qual afirmou que reza a Deus para que o Brasil não experimente "as dores do comunismo".

"Toda manhã me levanto e faço algo que me dá forças para vencer: rezo um Pai Nosso e peço a Deus que o nosso povo, vocês, brasileiros, não experimentem as dores do comunismo", disse o presidente, para aplausos do público.

Ainda em Natal, Bolsonaro participa de uma marcha para Jesus pelas ruas da cidade. Em seguida, a previsão é que ele pegue um voo para Fortaleza, onde também deverá participar de uma marcha para Jesus no final da tarde.