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

Esse conteúdo é antigo

Corte dos EUA avalia pena de morte contra envolvido em atentado na Maratona de Boston

14.abr.2014 - Cruzes com os nomes das vítimas do ataque à Maratona de Boston são expostos em mostra intitulada "Querida Boston: mensagens do memorial da maratona", na Boston Public Library, em Massachusetts - Andrew Burton/Getty Images/AFP
14.abr.2014 - Cruzes com os nomes das vítimas do ataque à Maratona de Boston são expostos em mostra intitulada "Querida Boston: mensagens do memorial da maratona", na Boston Public Library, em Massachusetts Imagem: Andrew Burton/Getty Images/AFP

Lawrence Hurley e Nate Raymond

13/10/2021 12h06Atualizada em 13/10/2021 12h36

A Suprema Corte dos Estados Unidos deve ouvir nesta quarta-feira um pedido do governo federal para readotar a pena de morte contra Dzhokhar Tsarnaev por seu papel na explosão que matou três pessoas e feriu mais de 260 outras na Maratona de Boston.

Apesar da intenção declarada do presidente Joe Biden de erradicar a pena capital em nível federal, seu governo optou por apresentar uma apelação, lançada inicialmente pelo Departamento de Justiça do antecessor Donald Trump, contra um veredicto de um tribunal inferior que reverteu a pena de morte de Tsarnaev.

Nenhum presidiário federal era executado há 17 anos até Trump liberar 13 execuções em seus últimos seis meses de mandato.

Uma das questões postas aos nove juízes é se a atenção midiática global gerada pelo ataque a bomba pode ter influenciado os jurados, uma questão que a instância inferior acreditou que o juiz distrital George O'Toole, que presidiu o julgamento, não tratou de forma suficiente durante o processo de seleção do júri.

Os juízes também analisarão se O'Toole excluiu indevidamente indícios relacionados a um assassinato triplo de 2011 ligado ao irmão mais velho de Tsarnaev. Advogados de Tsarnaev, que tinha 19 anos na época do ataque, argumentam que ele desempenhou um papel secundário em relação ao irmão Tamerlan, que descrevem como "uma figura autoritária" com "crenças violentas de um extremista islâmico".

As vítimas do atentado estão divididas quanto à execução de Tsarnaev.