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

Leonardo Sakamoto

Irã compara EUA ao Estado Islâmico após Trump ameaçar atacar bens culturais

Brendan Smialowski/AFP/Getty Images
Imagem: Brendan Smialowski/AFP/Getty Images

Colunista do UOL

05/01/2020 21h49

Receba os novos posts desta coluna no seu e-mail

Email inválido

O ministro das Relações Exteriores do Irã, Mohammed Javad Zarif, comparou os Estados Unidos ao grupo terrorista Estado Islâmico (ISIS), neste domingo (5), em sua conta no Twitter. Isso foi uma resposta ao presidente Donald Trump - que, ontem, ameaçou bombardear 52 alvos iranianos se o país persa atacar cidadãos ou instalações norte-americanas como retaliação pela morte do general Qassim Suleimani, comandante da Guarda Revolucionária, na sexta (3).

Trump havia tuitado que, entre os 52 alvos, estão "alguns em um nível muito alto e importante para o Irã e a cultura iraniana", que seriam atingindos de forma "muito rápida e muito dura".

O número 52 representa a quantidade de pessoas feitas reféns por 444 dias na Embaixada dos EUA, em Teerã, em 1979.

O ataque a patrimônios culturais e históricos são considerados criminosos pelas Nações Unidas. A coluna conversou com um experiente diplomata do Itamaraty que ressaltou a ilegalidade do ato prometido por Trump do ponto de vista das relações internacionais. E lembrou que alvo cultural é civil, não militar.

Esse tipo de ação vem sendo perpetrada por grupos terroristas ou milícias, como o Estado Islâmico/ISIS e o Talebã. As imagens de explosões de estátuas milenares ou de templos históricos se transformando em praça de treino de tiro têm rodado o mundo e provocado revolta.

"Um lembrete para aqueles que alucinam sobre imitar crimes de guerra do ISIS, alvejando nosso patrimônio cultural: através de milênios de história, os bárbaros chegaram e devastaram nossas cidades, arrasaram nossos monumentos e queimaram nossas bibliotecas. Onde eles estão agora? Ainda estamos aqui, e de pé", afirmou o chanceler Javad Zarif.

Ele também postou que: "tendo cometido graves violações da lei internacional através dos assassinatos covardes de sexta, Donald Trump ameaça novamente cometer novas violações do JUS COGENS. Atingir locais de interesse cultural é um CRIME DE GUERRA. Seja chutando ou gritando, o fim da presença maligna dos EUA no oeste da Ásia já começou".

E afirmou: "Aqueles que se disfarçavam de diplomatas e aqueles que se sentavam descaradamente para identificar alvos culturais e civis iranianos nem deveriam se dar ao trabalho de abrir um dicionário jurídico. "Jus cogens" refere-se a normas peremptórias do direito internacional, isto é, linhas vermelhas internacionais. Ou seja, um grande não".

O Conselho de Segurança já se manifestou de forma contrária à destruição e contrabando de patrimônio cultural por grupos terroristas durante conflitos armados, afirmando que esses ataques podem constituir um crime de guerra e devem ser levados à Justiça. Os 15 membros do conselho adotaram a Resolução 2347, em 2017, condenando a ação desses grupos. Os EUA são um dos seus cinco membros permanentes.

"O Conselho enfatizou que os Estados Membros tinham a responsabilidade primária de proteger seu patrimônio cultural e que os esforços devem estar em conformidade com a Carta das Nações Unidas e respeitar o princípio da soberania", afirmou nota da ONU na época.