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

Queda em campo e abalo moral: rival festeja 'fim' de polêmica com Neymar

Neymar e Álvaro discutem em partida PSG x Olympique pelo Campeonato Francês - GONZALO FUENTES
Neymar e Álvaro discutem em partida PSG x Olympique pelo Campeonato Francês Imagem: GONZALO FUENTES

João Henrique Marques

Colaboração para o UOL, em Paris (FRA)

01/10/2020 04h00

O zagueiro Álvaro González, do Olympique de Marselha, viveu quase três semanas de transtorno desde que foi acusado de racismo por Neymar. Foram várias as vezes em que o espanhol procurou se defender até o resultado da Liga sa causar alívio, uma vez que a entidade não aplicou nenhuma punição a ele e ao brasileiro. Neste período, o rendimento em campo foi afetado e reuniões com dirigentes e torcedores foram marcadas pelo defensor para garantir inocência.

Neymar acusou Álvaro de ter o chamado de "macaco", enquanto o brasileiro foi julgado por responder o adversário com "bicha de m..." Os dois foram avaliados no mesmo artigo: "suspeita de comentários homofóbicos e/ou racistas durante o jogo", mas a decisão da Comissão de Disciplina foi a de não aplicar punição por falta de provas.

"Após examinar o caso, ouvindo os jogadores e também os representantes dos clubes, a comissão nota que não há evidência suficiente que permita o estabelecimento da materialidade dos fatos de discriminação racial de Álvaro González contra Neymar, ou de Neymar contra Álvaro González. Consequentemente, a comissão decide que não há nenhuma punição", diz o comunicado da Liga sa.

A partida entre PSG e Marselha foi disputada em 13 de setembro. Logo depois do jogo, Neymar usou as redes sociais para denunciar o racismo supostamente cometido por Álvaro, enquanto o zagueiro se defendeu ao postar uma foto ao lado de todos os jogadores do Marselha e um texto garantindo não ser racista.

O brasileiro, então, reagiu: "Você não é homem de assumir teu erro, perder faz parte do esporte. Agora, insultar e trazer o racismo para nossas vidas não. Eu não estou de acordo. EU NÃO TE RESPEITO! VOCÊ NÃO TEM CARÁTER! Assume o que tu fala, mermão ... Seja HOMEM, RAPÁ! RACISTA", escreveu Neymar no post do espanhol.

Em pouco tempo, a conta de Instagram do jogador espanhol foi tomada por xingamentos que o levaram a bloquear a opção de comentários. Enquanto isso, Neymar se engajou em campanhas contra o racismo, mas pediu a "pacificação" do movimento antirracista dizendo também estar arrependido de ter respondido com violência em campo — na partida, o brasileiro foi expulso por dar um tapa na cabeça do zagueiro.

"No nosso esporte, as agressões, insultos, palavrões, são do jogo, da disputa, não dá pra ser carinhoso. Entendo esse cara em parte, faz parte do jogo. Mas o preconceito e intolerância são inaceitáveis", escreveu Neymar.

Após o confronto contra o PSG, o Olympique de Marselha não ganhou nenhum dos seus três jogos seguintes. Todos eles foram realizados em casa, sendo uma derrota para o Saint-Etienne por 2 a 0, e dois empates por 1 a 1, diante de Lille e Metz. Nos confrontos, Álvaro González foi muito criticado por suas atuações por parte da mídia sa, mas sempre defendido pelo treinador do time, o português André Villas-Boas.

"Lógico que ele está abalado psicologicamente. Nós sabemos que ele recebeu ameaças de morte e isso não conseguimos controlar. Mas ele precisa saber que tem o apoio do clube, de todo o elenco, e o meu", disse o técnico.

Em meio ao cenário de queda técnica, o zagueiro espanhol se reuniu no clube com membros da torcida organizada do Olympique de Marselha para conversar sobre o problema com Neymar. Ele garantiu não ter cometido ato de racismo, tendo recebido apoio dos torcedores.

No julgamento do Comitê de Disciplina da França, Neymar teve a defesa dos advogados do Paris Saint-Germain. O clube alegou ter como prova imagens em que Álvaro comete o ato de racismo. O material foi o mesmo exibido pelo Esporte Espetacular, da TV Globo, com especialistas em leitura labial confirmando a ofensa com a palavra "macaco".

Já o Olympique de Marselha também tinha imagens de Neymar retrucando Álvaro com ofensa homofóbica, além de um trecho em que supostamente o brasileiro se refere ao lateral direito do time, o japonês Hiroki Sakai, como "chinês de m..."

No comitê de disciplina, Neymar e Álvaro prestaram depoimento por videoconferência aos juízes sobre o episódio. O julgamento não foi aberto à imprensa e contou apenas com comunicado final de que nenhuma punição foi aplicada.

"Este pesadelo se foi, em parte, recompensado com uma sentença mais que merecida. Nunca fui e nunca serei uma pessoa racista. Muito obrigado ao Olympique de Marselha pela confiança e fidelidade. Também a nossa torcida por tanto carinho. Nos vemos em campo", postou o aliviado Álvaro pouco após o encerramento do caso na França.