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

Entendendo Bolsonaro

OPINIÃO

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

Continuidade da democracia depende de punição a terrorismo bolsonarista

Bolsonaristas incendiaram carros e vandalizaram ônibus em Brasília - Ueslei Marcelino
Bolsonaristas incendiaram carros e vandalizaram ônibus em Brasília Imagem: Ueslei Marcelino

Colunista do UOL

13/12/2022 10h17

* Vinícius Rodrigues Vieira

Atentados terroristas. Chamemos pelo nome correto os ataques ocorridos em Brasília na noite de ontem (12), dia da diplomação do presidente eleito Luiz Inácio Lula da Silva (PT) e seu companheiro de chapa Geraldo Alckmin (PSB), que marcam o início do "Capitólio à Brasileira".

Executadas por partidários do presidente e candidato derrotado à reeleição Jair Bolsonaro (PL), as ações precisam ser punidas caso o Brasil não queira oficializar o status de simulacro de democracia, uma possibilidade cada vez mais real desde que o atual inquilino do Planalto chegou ao poder e almeja perpetuar-se nele.

Nada mais adequado para um projeto de ditador que, às vésperas do prazo de deixar o poder, haja uma série de distúrbios civis para que uma operação de garantia da lei e da ordem (GLO) seja decretada e, assim, as ruas da capital federal sejam tomadas por militares. Seria a antessala de um golpe tão desejado pela extrema direita.

Houvesse forças militares leais à democracia, Bolsonaro já teria sido preso ou forçado a renunciar numa reedição do golpe da legalidade que assegurou a posse de Juscelino Kubitschek e João Goulart em 1956, como presidente e vice-presidente da República respectivamente. Em 11 de novembro do ano anterior, o ministro do Exército, general Henrique Lott, depôs o então presidente interino Carlos Luz, que teve seu impeachment aprovado a toque de caixa pelo Congresso Nacional. Luz havia se aliado às forças da direita supostamente liberal, porém golpista, da União Democrática Nacional, então capitaneada por Carlos Lacerda.

Lula e Alckmin não dispõem de um general Lott disposto a debelar o golpismo. Sem divisões e armas, por quanto tempo o ministro Alexandre de Moraes, presidente do Tribunal Superior Eleitoral (TSE), conseguirá conter o avanço do terrorismo bolsonarista? Os ataques em Brasília foram iniciados por partidários do presidente da República sob o pretexto de protestarem contra a prisão temporária do cacique indígena Serere, que liderou ações golpistas contra o presidente eleito. A prisão foi deferida por Moraes após pedido da Procuradoria-Geral da República.

Até a noite dos ataques, ninguém havia sido detido apesar de os terroristas terem até mesmo tentado invadir a sede da Polícia Federal e ateado fogo a carros. Não se trata de meros atos de vandalismo, mas de um movimento golpista orquestrado desde o Palácio da Alvorada, onde Bolsonaro tem recebido seus partidários fascistas.

As duas semanas e meia que nos separam da posse de Lula e Alckmin serão as mais tensas desde o fim da ditadura militar. Derrotado aos olhos do mainstream político, Bolsonaro sugeriu aos apoiadores que montaram guarda em frente ao Alvorada que pode resistir ao fim de sua presidência dependendo do alcance do movimento golpista. "Nada está perdido", disse o presidente.

O sangue de brasileiros que jorrar pelas mãos de outros compatriotas daqui por diante será não apenas responsabilidade de Jair Messias, mas daqueles que, contra todas as evidências de golpismo, nele votaram nos dois turnos da última eleição. Não há inocentes nessa história. Depois de quatro anos de desgoverno e bravatas autoritárias, o caráter golpista de Bolsonaro não deveria ser segredo para mais ninguém.

Enquanto nada estiver perdido para o filhote da ditadura, todos os riscos estarão à mercê da democracia e, portanto, das nossas vidas. Ou o Brasil se livra do bolsonarismo ou seus terroristas acabam de vez com qualquer projeto viável de nação.

* Vinícius Rodrigues Vieira é doutor em relações internacionais por Oxford e leciona na Faap e em cursos MBA da FGV.