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

'Não vamos esquecer': Talibã responde após Harry afirmar que matou 25

Príncipe Harry serviu ao Exército britânico  - Getty Images
Príncipe Harry serviu ao Exército britânico Imagem: Getty Images

De Splash, em São Paulo

08/01/2023 09h55

Após o príncipe Harry contar em seu livro de memórias que matou 25 pessoas enquanto servia ao Exército britânico no Afeganistão, líderes do Talibã responderam.

  • Harry afirma que os soldados foram instruídos a não ver os membros do Talibã como pessoas, segundo o jornal The Telegraph.
  • Ele diz que "não está orgulhoso nem envergonhado" pelo ocorrido.
  • Harry serviu como controlador aéreo avançado no Exército Real Britânico entre 2007 e 2008
  • Ele pilotou o helicóptero de ataque entre 2012 e 2013, informou a Al Jazeera.

Revelações geraram críticas. Anas Haqqani, um dos líderes do movimento, reforçou que as pessoas que Harry afirma ter matado eram, sim, humanos.

"Eles não eram peças de xadrez, eram humanos; eles tinham famílias que estavam esperando pelo retorno. Entre os assassinos de afegãos, muitos não têm sua decência de confessar seus crimes de guerra."

"O país não vai esquecer". É o que diz o porta-voz do governo Talibã, Bilal Karimi.

"As confissões recentes do príncipe Harry, que matou brutalmente 25 de nossos homens durante sua missão no Afeganistão, mostram que esses crimes não estão limitados a Harry, mas a todos que ocupam nosso país. É triste que os países ocidentais se considerem defensores dos direitos humanos, mas essa é a realidade de seus atos. O Afeganistão, como nação muçulmana, não vai esquecer desses atos e sempre defenderá sua terra."

Britânicos também abrem o jogo. Um ex-membro da Marinha britânica, Ben McBean, que perdeu dois membros na guerra, diz que o príncipe precisa "calar a boca".

"Eu te amo, príncipe Harry, mas você precisa calar a boca. Isso faz a gente questionar com quem ele está andando. Se fossem pessoas boas, alguém já teria dito que ele precisa parar."