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

Bolsonaro vira alvo de protestos em defesa da Amazônia pelo mundo

Ana Carla Bermúdez

Do UOL, em São Paulo

23/08/2019 10h30Atualizada em 23/08/2019 15h56

O presidente Jair Bolsonaro (PSL) é o principal alvo de protestos em defesa da Amazônia que acontecem hoje em pelo menos 15 cidades da Europa, Ásia e América. Os manifestantes pedem que o mandatário brasileiro atue em defesa da floresta, que vem sofrendo um aumento no número de queimadas e de desmatamento. Alguns manifestantes pedem, ainda, a renúncia do presidente.

Convocados por movimentos como Extinction Rebellion e Fridays for Future, os protestos aconteceram em frente às Embaixadas do Brasil em Londres (Reino Unido), Paris (França), Madri (Espanha), Dublin (Irlanda), Berlim (Alemanha) e no Consulado Brasileiro em Genebra (Suíça), em Nápoles (Itália) e em Nova Iorque e Miami (Estados Unidos). Também há registro de protestos em em Mumbai (Índia), Amsterdã (Holanda), Barcelona (Espanha), Turim (Itália), Bogotá e Cali (Colômbia). No Brasil, há protestos convocados para hoje e para o fim de semana em pelo menos 40 cidades.

Em Londres, os manifestantes carregavam faixas e cartazes em defesa da Amazônia e da causa ambiental. Também havia placas contra Bolsonaro: uma delas mostrava uma foto do presidente com pulmões no formato de uma floresta pegando fogo. Nela, é possível ver os dizeres "negligência = genocídio".

Alguns manifestantes também pediram a renúncia de Bolsonaro. Em um vídeo, eles entoavam gritos de "Bolsonaro has got to go" ("Bolsonaro tem de sair").

Em Paris, manifestantes exibiram uma bandeira do Brasil com os dizeres "fora Bolsonaro" e "fora piromaníaco". Outros cartazes pediam o fim da "matança" da floresta. Há também manifestações que pediam a saída de Bolsonaro da presidência, a realização de eleições gerais e a liberdade do ex-presidente Luiz Inácio Lula da Silva (PT).

Em Genebra, além de cartazes contra Bolsonaro, havia manifestações que associam o presidente brasileiro a Donald Trump, presidente dos Estados Unidos, chamando-os de "criminosos". O protesto, que aconteceu em frente ao Consulado do Brasil na cidade, foi acompanhado de segurança reforçada no local. Muitos dos manifestantes eram jovens, que disseram ter "descoberto" Bolsonaro nos últimos dias e se mostraram "assustados" com as declarações do presidente.

Na Espanha, dezenas de manifestantes se reuniram em frente à Embaixada do Brasil em Madri. "Quando não for possível respirar ou beber água, explique aos seus filhos que era 'bom para a economia'", dizia um cartaz em crítica às queimadas e ao desmatamento na região amazônica.

Em Barcelona, manifestantes saíram às ruas com réplicas de folhas e uma faixa para simular as ondas do oceano. Também havia cartazes que chamavam Bolsonaro de "criminoso ambiental".

Na cidade de Cali, na Colômbia, Bolsonaro foi retratado por meio de uma caricatura. No cartaz, o desenho do presidente aparece colocando fogo na região da Amazônia ao mesmo tempo em que faz um sinal da paz com as mãos.

23.ago.2019 - Em Cali, na Colômbia, protesto em defesa da Amazônia tem cartaz com imagem de Bolsonaro com os dizeres "exterminador do futuro" - Luis Robayo/AFP - Luis Robayo/AFP
23.ago.2019 - Protesto em defesa da Amazônia em Cali, na Colômbia
Imagem: Luis Robayo/AFP

Ontem, o presidente da França, Emmanuel Macron, usou o Twitter para classificar as queimadas na Amazônia como uma "crise internacional". Ele cobrou que os líderes do G7 tratem urgentemente do tema. "Nossa casa está queimando", escreveu.

Hoje, foi a vez de a chanceler alemã Angela Merkel dizer que os incêndios na Amazônia constituem uma "situação urgente" que deve ser discutida durante a cúpula do G7.

O G7, grupo formado por líderes dos EUA, Reino Unido, França, Alemanha, Itália, Canadá e Japão, se reúne na cidade de Biarritz (França) neste fim de semana.

Ontem, Bolsonaro rebateu Macron em uma live nas redes sociais, dizendo que o líder francês está interessado em "ter um espaço na região amazônica para ele". Pelo Twitter, o presidente brasileiro afirmou que a sugestão do francês, de discutir assuntos ligados à floresta no encontro do G7, "evoca mentalidade colonialista".

As reações internacionais continuaram hoje, com a França e a Irlanda ameaçando não ratificar o acordo União Europeia-Mercosul se o Brasil não proteger a Amazônia.