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

Amizade de Messi e Neymar tem incentivo e dança 'cachaçado', mostra série

Dupla jogou lado a lado no Barcelona entre 2013 e 2017 e agora no Paris Saint-Germain, desde o ano ado - Reuters
Dupla jogou lado a lado no Barcelona entre 2013 e 2017 e agora no Paris Saint-Germain, desde o ano ado Imagem: Reuters

Gabriel Carneiro

Do UOL, em São Paulo

21/01/2022 04h00

Messi é um dos 26 entrevistados da série documental "Neymar: O Caos Perfeito", que será lançada pela Netflix no próximo dia 25. Companheiro do atacante brasileiro por quatro temporadas no Barcelona e desde agosto do ano ado também no Paris Saint-Germain, o argentino é retratado como amigo de Neymar em várias agens ao longo dos três episódios.

Há momentos delicados, como palavras de incentivo ditas por Messi depois de um jogo do Barça em que Neymar foi mal — ainda em 2013, no começo de sua agem — e outros mais alegres, como uma dança da dupla ao lado do uruguaio Luis Suárez.

Neymar mostra a tal dancinha na tela do seu celular na primeira metade do segundo episódio da série. Ele, Messi e Suárez estão vestidos com roupa social e adereços de festa, como plumas coloridas, chapéus e óculos extravagantes. "Esse vídeo é muito bom", diz Neymar logo que começa a mostrar a dança descoordenada ao lado de Suárez à qual Messi logo se junta com um copo na mão. Eles dão inhos para os lados e se divertem sendo filmados, uma das cenas íntimas mais preciosas da série.

MSN - VI Images via Getty Images - VI Images via Getty Images
Trio MSN fez incríveis 364 gols e foi quase imbatível com 84 vitórias em 110 partidas
Imagem: VI Images via Getty Images

"Eu, Suárez e o Messi. Nós três. Cachaçados (risos)", brinca Neymar, sobre o vídeo que é mostrado no contexto do título da Liga dos Campeões 2014/2015 e do sucesso do trio MSN.

Momento fofo em 2013

Nem só de festa vive a amizade entre Neymar e Messi. Também no segundo episódio, a série exibe depoimentos dos craques sobre um momento fofo em 2013, primeira temporada do brasileiro no futebol espanhol. Vindo do Santos, Neymar não conseguiu emendar boas atuações logo no começo, sofreu críticas e lidou mal com algumas.

Ele diz que "a chave virou" depois de um jogo contra o Athletic Bilbao em 1º de dezembro daquele ano, pela 15ª rodada do Campeonato Espanhol. O Barcelona perdeu por 1 a 0 e Neymar jogou mal, perdeu três chances de gol claras e ficou marcado por uma tentativa de drible em que escorrega e pisa na bola. O brasileiro foi para o vestiário chorando e lá acabou sendo consolado por Messi.

"Ele tinha um peso grande no ombro que não o permitia se soltar", revela Messi, anos depois da conversa reservada com Neymar. A série mostra que na ocasião o argentino tranquilizou o brasileiro, que a partir de então ou a mostrar mais confiança em campo e nos bastidores.

Neymar despediu-se do Barcelona com 105 gols em 185 jogos ao longo de quatro temporadas históricas. Ele venceu Mundial, Liga dos Campeões, Campeonato Espanhol (2), Copa do Rei (3), Supercopa da Espanha e Supercopa da Europa antes de ser negociado com o PSG.

Em agosto de 2021, o clube francês anunciou a contratação de Messi e a reedição da dupla com Neymar.