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

Covid-19: 3 mil pessoas podem ter se infectado na final da Euro 2020

Jogadores da Itália comemoram com torcida o título da Eurocopa sobre a Inglaterra, em Wembley - Christian Charisius/picture alliance via Getty Images
Jogadores da Itália comemoram com torcida o título da Eurocopa sobre a Inglaterra, em Wembley Imagem: Christian Charisius/picture alliance via Getty Images

Reuters

21/08/2021 16h16

A final da Eurocopa 2020, quando a Itália venceu a Inglaterra, foi um evento "super disseminador" de covid-19 no estádio de Wembley, em Londres, em 11 de julho.

Os dados oficiais foram publicados ontem (20) pela autoridade de saúde pública britânica. De acordo com Public Health England, 2.295 pessoas provavelmente estavam infectadas no estádio e outras 3.404 pessoas acabaram "potencialmente infectadas" naquela partida.

O jogo, que reuniu cerca de 67 mil pessoas, foi a primeira final da Inglaterra em um torneio internacional de futebol desde que o país sediou e venceu a Copa do Mundo de 1966.

"A Euro 2020 foi uma ocasião única e é improvável que víssemos um impacto semelhante nos casos covid-19 em eventos futuros", disse em comunicado Jenifer Smith, vice-diretora médica da Public Health England.

"Os dados mostram como o vírus pode se espalhar facilmente quando há contato próximo e isso deve ser um aviso para todos nós, enquanto tentamos retornar à normalidade cautelosa mais uma vez."

Outros eventos de teste ao longo de quatro meses mostraram muito menos resultados positivos. O Grande Prêmio de Fórmula 1 da Grã-Bretanha, por exemplo, atraiu uma multidão de 350 mil pessoas em mais de 18 meses durante três dias em julho, mas registrou 585 casos registrados de covid-19.

Já os campeonatos de tênis de Wimbledon, com cerca de 300 mil participantes nas duas semanas, registraram 881 casos.

"Nós mostramos que podemos reintroduzir esportes de massa e eventos culturais com segurança, mas é importante que as pessoas permaneçam cautelosas ao se misturar em ambientes muito lotados", disse o ministro da Cultura, Oliver Dowden.

"Para que possamos manter a temporada de futebol, teatros e shows seguros com multidões cheias neste inverno, exorto os fãs de esporte, música e cultura a tomar a vacina, pois esta é a maneira mais segura de fazer grandes eventos dispararem em todos os cilindros mais uma vez", conclui.