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

Balaio do Kotscho

OPINIÃO

Texto em que o autor apresenta e defende suas ideias e opiniões, a partir da interpretação de fatos e dados.

Morre mais gente do que nasce no Brasil, e Bolsonaro agora teme protestos

Jair Bolsonaro durante visita a Chapecó (SC) nesta quarta-feira: temor de protestos e acenos às Forças Armadas  - Tarla Wolski/Colaboração para o UOL
Jair Bolsonaro durante visita a Chapecó (SC) nesta quarta-feira: temor de protestos e acenos às Forças Armadas Imagem: Tarla Wolski/Colaboração para o UOL

Colunista do UOL

07/04/2021 19h30

"Temos problemas sociais gravíssimos no Brasil, converso com nossas Forças Armadas. O que podemos fazer para evitar isso aí? Como nos preparar?", pergunta Jair Bolsonaro.

Agora é tarde, mas o capitão poderia ter providenciado a tempo, por exemplo, a compra de vacinas e a adoção de medidas para impedir o alastramento do vírus, que mata mais no Brasil do que em qualquer outra parte do mundo.

Correndo atrás do prejuízo, Bolsonaro resolveu ligar até para Putin, aquele comunista da vacina russa, para pedir a sua ajuda

Após o Brasil ultraar mais de 4 mil mortes diárias na pandemia, Bolsonaro pegou o avião e foi a Chapecó para assustar o país com seus temores de convulsão social, um tema recorrente em seus discursos, assim como os acenos à Forças Armadas, que deram uma enquadrada nele durante a ebulição militar do final do mês ado.

Perguntado sobre o número recorde de mortos, fez como se não tivesse nada com isso, e se queixou da imprensa, claro: "Estão me chamado agora até de, como é o nome?, genocida".

Por que será? Que maldade!

Para quem dorme com um revolver no criado mudo e procura comunistas debaixo da cama e dentro do seu gabinete, tudo é motivo para pensar numa conspiração contra o seu governo, embora não haja no momento nenhum sinal de protestos marcados no país.

"Temos efetivo para conter a quantidade de problemas que vamos ter?", perguntou aos militares, com o temor de quem tem culpa no cartório, só esperando a hora de mandar suas tropas para a rua. Mas quem irá acompanhá-lo nesta insânia? O desaparecido general Heleninho e o assustado general Braga Netto, que está sempre olhando de lado, de baixo para cima?

Com Bolsonaro, o país registrou um fato inédito: pela primeira vez na história, morreram mais brasileiros do que nasceram nos seis primeiros dias de abril.

Estudo da cientista Márcia Castro informa que foram registrados 11.774 nascimentos e 12.181 óbitos no período, um saldo negativo de 407 almas.

A prosseguir neste ritmo, Bolsonaro poderá contabilizar entre seus feitos o despovoamento do país, com o aumento da renda per capita e o fim do deficit da Previdência.

Diante dessa tragédia, o que diz o presidente? "Não vamos aceitar a política do fique em casa".

Tudo bem, e daí? Qual é a política que o capitão tem a oferecer no lugar para impedir a matança de brasileiros pelo vírus, de tiro ou de fome?

Diante da inação e da perplexidade do governo com a sua obra, os números macabros só tendem a aumentar.

Manchete do UOL no final da tarde desta quarta-feira: "7 em cada 10 hospitais de porte dizem que insumos acabam em uma semana".

Logo abaixo, lê-se: 21 capitais estão com 90% das UTIs lotadas".

Enquanto isso, dois advogados do presidente, o procurador-geral da República, Augusto Aras, e o advogado geral da União, André Mendonça, vão ao STF para defender a abertura dos templos, falando como se fossem pastores e citando mais a Bíblia do que a Constituição.

Na teocracia miliciano-militar que está sendo implantada aos poucos por aqui, nos moldes dos velhos aiatolás, o capitão não se contenta em destruir o país, quer humilhá-lo.

Jogando no quanto pior, melhor, perdido por um, perdido por dez, Bolsonaro joga no conflito e na confusão como se quisesse mesmo provocar o caos social para justificar a decretação do estado de exceção. Ele ainda não desistiu disso.

Para fugir dos problemas de Brasília, o presidente continua viajando alegremente pelo país em sua campanha pela reeleição, subindo e descendo de palanques, mas não se arrisca a ir a nenhum país estrangeiro, até porque, as fronteiras foram fechadas para nós.

Motivo de chacota, de pena ou de temor nos outros países, a cada dia que a mais o Brasil se isola no cenário mundial como se fosse uma republiqueta de laranjas.

No Congresso, discutem agora a liberação geral de armas e munições, enquanto o STF perde seu tempo tentando consertar o voto de Kassio Nunes Marques sobre "liberdade religiosa", o grande jurista teológico descoberto por Bolsonaro.

Parece ficção, mas é tudo realidade.

Vida que segue.