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

Carla Araújo

REPORTAGEM

Texto que relata acontecimentos, baseado em fatos e dados observados ou verificados diretamente pelo jornalista ou obtidos pelo o a fontes jornalísticas reconhecidas e confiáveis.

Investigação de ex-assessor de Bolsonaro pesou para Lula demitir comandante

Do UOL, em Brasília

21/01/2023 17h37Atualizada em 21/01/2023 19h23

Receba os novos posts desta coluna no seu e-mail

Email inválido

Por mais que auxiliares dos dois lados digam que querem reconstruir pontes, a situação entre o presidente Lula e os militares ganhou um capítulo importante neste sábado (21).

Pela manhã, o então comandante do Exército, Júlio César de Arruda, convocou uma reunião do Alto Comando para o meio-dia. Por vídeo-conferência, os generais que integram a cúpula do Exército ouviram Arruda relatar "a situação do momento".

Apesar de os generais evitarem falar mais sobre a conversa, no lado do Palácio do Planalto a justificativa para a decisão de Lula neste sábado se dá por uma série de fatores, mas teve uma espécie de gota d'água.

Além da falta de confiança de Lula em relação ao general Arruda, fontes militares do novo governo afirmam que o presidente ficou incomodado com a situação do antigo ajudante de ordens de Bolsonaro, o tenente-coronel Mauro Cesar Barbosa Cid, que assumiria, nos próximos dias, o 1º Batalhão de Ações de Comandos, em Goiânia.

Segundo um auxiliar de Lula, o ex-assessor de Bolsonaro "está subjúdice" por contas das investigações que avançam contra o militar.

A nomeação de Cid para o posto já estava decidida desde maio do ano ado quando foi publicada a designação dele e de todos os outros comandantes nomeados para o biênio 2023-24.

Lula teria pedido para que Arruda não deixasse Cid assumir o batalhão, mas o então comandante teria mostrado resistência. É atribuição do comandante da força fazer as designações internas.

Agora, a expectativa no governo é que o novo comandante do Exército troque o posto do ex-auxiliar de Bolsonaro.

Desgaste com os acampamentos no QG

Outra decisão de Arruda que irritou o presidente Lula foi evitar que o acampamento em frente ao Quartel-General, em Brasília, fosse desmontado na noite do dia 8 de janeiro, após os ataques aos prédios do Planalto, Congresso e Supremo.

Em uma reunião naquela noite, Arruda foi contra a medida e enfrentou uma orientação do ministro da Justiça, Flávio Dino. Um dos argumentos usados por Arruda na ocasião foi de que tentar remover as pessoas as pessoas naquele momento geraria "um banho de sangue".

A decisão de Arruda teve respaldo de outros generais do Alto Comando.