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

Esse conteúdo é antigo

Santos Cruz vê 'ofensa às Forças Armadas': Não pode ser só por birra

Ex-ministro do governo Bolsonaro reprova ações de Bolsonaro e não acredita que haverá alinhamento maior com o governo - Marcello Casal Jr/Agência Brasil
Ex-ministro do governo Bolsonaro reprova ações de Bolsonaro e não acredita que haverá alinhamento maior com o governo Imagem: Marcello Casal Jr/Agência Brasil

Do UOL, em São Paulo

30/03/2021 18h37

O general Carlos Alberto dos Santos Cruz, ex-ministro da Secretaria de Governo, disse hoje que viu como uma "ofensa às Forças Armadas" a saída dos comandantes do Exército, Marinha e Aeronáutica. As mudanças foram confirmadas hoje, como consequência da troca promovida ontem pelo presidente Jair Bolsonaro (sem partido) no comando do Ministério da Defesa, com a saída de Fernando Azevedo e Silva para a chegada de Walter Braga Netto.

Para Santos Cruz, que permaneceu no governo Bolsonaro até junho de 2019, trocas desse tipo nas Forças Armadas precisam ser justificadas pelo presidente. O ex-ministro chegou a falar em "birra" e "pirraça" como motivos para as mudanças.

Em entrevista à CNN Brasil, Santos Cruz resumiu como vê as decisões recentes de Bolsonaro, que ontem fez trocas em mais cinco pastas além da Defesa — Relações Exteriores, Casa Civil, Ministério da Justiça e Segurança Pública, AGU (Advocacia-Geral da União) e Secretaria de Governo também têm novos titulares.

Esse tipo de saída sem nenhuma informação é uma falta de consideração pessoal, institucional, ao Exército, à Marinha, à Aeronáutica. Falta de consideração funcional, desrespeito e ofensa às Forças Armadas, é assim que vejo essa situação.
General Santos Cruz, ex-ministro da Secretaria de Governo

Santos Cruz itiu que as trocas foram uma "surpresa", mas disse que a situação vinha se apresentando como possível porque as Forças Armadas continuavam sendo citadas dentro do jogo político. O general, porém, mantém a postura que tinha quando estava no governo, de ser contra qualquer intervenção das Forças Armadas na gestão federal.

"Vejo três pessoas honradas que não é normal se afastar de uma função da maneira que a gente está vendo. Não é assim que a gente se despede de pessoas que são de destaque", afirmou o ex-ministro. "Estamos deixando de ver comportamentos normais", acrescentou.

"Birra" e "pirraça"

Santos Cruz comparou a situação atual, com as saídas de Edson Leal Pujol (Exército), Ilques Barbosa (Marinha) e Antônio Carlos Bermudez (Aeronáutica), àquela vivida pelo Brasil em 1977, durante a ditadura militar. À época, o então presidente Ernesto Geisel demitiu o ministro do Exército, Sylvio Frota.

São coisas de 40 anos. Por isso é uma situação que precisa justificada, tem que ter uma justificativa, não pode ser só pela sua mania, pela sua pirraça, pela sua birra, isso não pode existir nesse nível.
Santos Cruz, general e ex-ministro

Apesar de enxergar a situação como de exceção no histórico recente das Forças Armadas, o general não acredita que a troca no comando das instituições pode fazer com que elas tenham um alinhamento maior com o governo Bolsonaro.

"Nas Forças Armadas acredito que não vai mudar absolutamente nada. Os novos comandantes são pessoas que honram sua farda, que têm cultura institucional e constitucional. Se é por causa de alinhamento político isso é uma expectativa descabida. As Forças Armadas são fiéis à sua destinação constitucional", afirmou.