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

Brasileiro Guilherme Costa termina em último na final dos 800m livre

Beatriz Cesarini

Do UOL, em Tóquio

28/07/2021 22h43

O Brasil disputou sua quarta final na natação nas Olimpíadas de Tóquio-2020. Na noite desta quarta-feira (28), foi a vez de Guilherme Costa cair na piscina do Centro Aquático de Tóquio. Mas "cachorrão", como é conhecido o nadador, ficou em último nos 800m livre, ao marcar o tempo de 7min53seg31, uma piora de quase sete segundos em relação ao tempo que ele fez na semifinal.

O ouro ficou com o americano Robert Finke, com 7min41seg87, a prata para o italiano o Gregorio Paltrinieri, que fez 7min42seg11, e o bronze foi para o ucraniano Mykhailo Romanchuk, que tinha sido o grande destaque das semifinais, mas só marcou 7min42seg33.

Na primeira virada, "Cachorrão" ou em segundo, só atrás do italiano, que seguiu à frente da prova. Guilherme Costa brigava pela quarta posição. Na virada dos 300m, Costa já tinha deixado os rivais escaparem e caiu para a última posição. Nos 500m, o nadador recuperou uma posição, mas se mantinha longe dos nadadores que almejavam medalha. O italiano, que dominou a prova até os 700m, ou a ser pressionado na reta final e tomou a virada.

"Não foi uma prova boa. Eu tentei fazer exatamente como nas eliminatórias, principalmente nos primeiros 400m, que eu ei muito bem. E a ideia era voltar melhor do que eu voltei na eliminatória, porque eu consegui controlar um pouco na eliminatória. Realmente eu não sei o que aconteceu hoje. Senti cansado desde o início. Tentei até o final, mas realmente não encaixou", disse ao UOL Esporte.

"Eu tentei ar igual, mas nos 200m eu já estava me sentindo muito inchado, muito cansado, não consegui ir além disso. Eu tenho preferência de nadar à tarde. Mas em uma Olimpíada isso não pode ser levado em consideração porque é uma final olímpica. Antes da prova eu estava me sentindo bem, disposto, eu estava no clima da final, mas eu realmente não sei o que aconteceu", completou.

Na semifinal, Guilherme Costa mostrou que poderia dar trabalho aos medalhistas ao avançar para a decisão com um tempo de 7min46s09, que lhe rendeu o novo recorde sul-americano, e a quinta melhor marca entre os finalistas.

A única medalha conquistada pela natação brasileira até aqui em Tóquio segue sendo o bronze de Fernando Scheffer nos 200m livre. Léo de Deus foi o sexto nos 200m borboleta, e o revezamento 4x200m livre ficou na oitava posição.

Esta foi a segunda prova disputada por Guilherme Costa nestes Jogos Olímpicos. No último sábado (24), ele tentou avançar para a final dos 400m livre. Costa estava na raia sete e fez a prova em 3m45s99. Com esse tempo, ele ficou na quinta posição em sua bateria — e na 11ª colocação geral do classificatório.