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

Juliana Dal Piva

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.

Bolsonaristas querem culpar centrão por mudanças no Ministério da Defesa

General Walter Braga Neto quando era interventor na Segurança Pública do Rio de Janeiro (RJ) - Fátima Meira/Estadão Conteúdo
General Walter Braga Neto quando era interventor na Segurança Pública do Rio de Janeiro (RJ) Imagem: Fátima Meira/Estadão Conteúdo

Colunista do UOL

30/03/2021 17h29

Aliados do presidente Jair Bolsonaro já possuem uma versão para tentar amenizar a crise gerada pelas mudanças no Ministério da Defesa e pela inédita entrega dos cargos dos três comandantes das Forças Armadas nesta terça-feira (30). Militares bolsonaristas estão tentando acalmar os ânimos dos colegas dizendo que as trocas ocorreram somente porque os partidos do centrão teriam cobrado espaço no ministério.

Nessa versão, a história é de que, para atender o pedido, já que Bolsonaro não teria aceitado o nome apontado para o Ministério da Saúde, foi pedida a Secretaria de Governo da Presidência da República (Segov). Com a saída do general Luiz Eduardo Ramos da Segov, chegou a deputada federal Flávia Arruda (PL-DF), com indicação do presidente da Câmara, Arthur Lira.

A história está sendo difundida em diferentes círculos de militares e a coluna viu algumas mensagens nesse sentido no grupo de Whatsapp da turma de 1980 da Aman (Academia Militar das Agulhas Negras). É dessa turma o general Marco Antônio Freire Gomes, o nome mais bem quisto por Bolsonaro para ocupar o comando do Exército no lugar do general Pujol.

"Para eles tirarem o Ramos de lá, eles tinham que fazer um jogo político. Tirar o ministro da Defesa, para colocar um novo ministro e abrir a vaga do Ramos. Isso foi um jogo político"
"Eles (centrão) estão para apoiar Bolsonaro, mas tem um preço caro. Mas vai ficar na chantagem eternamente, até o fim do governo. Então é um erro de Bolsonaro", disse um coronel dessa turma aos colegas.

O general Marco Antônio Freire Gomes, atualmente no Comando Militar do Nordeste, também possui o problema de ser um dos mais "modernos" no Exército e ter outros seis generais mais antigos na Força do que ele. Uma nomeação dele para o comando do Exército representaria uma quebra da hierarquia, que é uma base importante para todos os militares, como a disciplina.

Para um colega dele na turma de 1980, a possibilidade de nomear o general Freire Gomes é muito complexa. "Torrar seis (generais) na frigideira é muito arriscado", escreveu. Alguns acreditam que o nome do general José Luiz Freitas, Comandante de Operações Terrestres, pode prevalecer, ele é da turma de 1979.

Já no grupo, porém, alguns colegas ensaiaram mensagens de apoio a uma eventual nomeação de Freire Gomes. "No posto de general, mais que isso, o critério é de escolha. De modo que são incertos, tanto o alcance, como a permanência e o momento da saída do posto, sendo esta a maior certeza. Muito mais se houver escolha pelo Presidente da República para ministro da Defesa. Se alguns serão preteridos, é bom lembrar que a maioria de nós o foi; e não estamos cuspindo marimbondo por aí: é a regra do jogo; sempre foi", escreveu outro coronel. "Nas Forças Armadas, ninguém tem qualquer razão para se rebelar contra um general que eventualmente ocupe o posto de Ministro da Defesa", emendou.

Mais adiante, outro coronel lembrou o fato de o general Braga Neto, novo ministro da Defesa, ser mais novo no Exército do que os comandantes que entregaram os cargos hoje. "Diriam que militares não aceitam isso de outro militar, mas já aceitaram se submeter a ministros sabidamente corruptos, ladrões, ideologicamente contrários aos nossos princípios e a democracia, pessoas sem qualificações mínimas para o cargo", afirmou aos colegas. "Acho que o respeito a lei e humildade, nesse momento, acredito seria muito mais adequado do que interesses contrariados ou a não aceitação de alguém da casa", completou.