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

Botafogo

Loco Abreu joga em Minas: 30º clube na carreira e recorde mundial ampliado

Loco Abreu com a camisa do Boston, clube que defendeu em 2020 antes de fechar com o Athletic, de Minas Gerias - Arquivo pessoal/Instagram
Loco Abreu com a camisa do Boston, clube que defendeu em 2020 antes de fechar com o Athletic, de Minas Gerias Imagem: Arquivo pessoal/Instagram

Bernardo Gentile

Do UOL, no Rio de Janeiro

09/02/2021 04h00

Loco Abreu não para. O carismático e polêmico uruguaio fechou com o Athletic Club, time da cidade de São João del-Rei, do interior de Minas Gerais, e que disputará o Mineirão 2021. Esse é o 30º clube na carreira do centroavante que ampliou ainda mais a marca que o colocou no "Livro dos Recordes", em 2017.

Em junho daquele ano, 'El Loco' assinou com o Puerto Montt, da segunda divisão chilena. Na ocasião, empatou com o ex-goleiro alemão Lutz Pfannenstiel, então recordista isolado como andarilho no futebol com 25 clubes. Desde então, o uruguaio defendeu outras quatro equipes e acabou de fechar com mais uma. Desta forma, ampliou a sua contagem e se isolou na liderança.

Com 44 anos, Loco Abreu é visto, claro, como uma grande jogada de marketing do Athletic. Porém, mesmo com a idade avançada, a expectativa é que o uruguaio seja importante também dentro de campo. A estreia da nova equipe do centroavante será em 28 de fevereiro contra o Patrocinense.

"Eu falo que não subestimo minhas condições mentais e físicas, mas como tem gente que acredita como eu acredito em mim, eu não sei se vou fazer história, mas para mim vai ser um ano histórico por poder participar do Athletic nesse ano especial", disse o uruguaio em sua coletiva de apresentação.

Vale lembrar que Loco Abreu se ofereceu recentemente ao Botafogo para ajudar na reta final de Campeonato Brasileiro, no qual o clube já está rebaixado à Série B. A diretoria agradeceu, mas recusou a oferta. Poucos dias depois, o uruguaio tem tudo acertado com o Athletic.

Desde 2019, ele defendia o Boston Rivers-URU, onde, inclusive, chegou a ser treinador da equipe. Loco Abreu até se escalou como titular em alguns jogos e fez gols quando esteve em campo. Paralelamente a isso, o atacante conduzia um programa de televisão ("Noche de Locura") no Uruguai.

Veja a lista de clubes defendidos por Loco Abreu

Athletic Club-MG (2021)
Boston Rivers-URU (2019 e 2020)
Rio Branco-ES (2019)
Audax Italiano-CHI (2018)
Magallanes-CHI (2018)
Puerto Mont-CHI (2018)
Central Español-URU (2017)
Santa Tecla-SV (2017)
Bangu-RJ (2017)
Sol de América-PAR (2016)
Aucas-EQU (2015)
Rosário Central-ARG (2013, 2014 e 2015)
Figueirense-SC (2012)
Botafogo (20010, 2011, 2012)
Aris-GRE (2009)
Real Sociedad-ESP (2009)
Beitar Jerusalem-ISR (2008)
River Plate-ARG (2008 e 2009)
Tigres-MEX (2008)
San Luís-MEX-2007
Monterrey-MEX (2006)
Dorados-MEX (2005)
América-MEX (2004)
Cruz Azul-MEX (2001 a 2003)
Nacional-URU (2001, 2004, 2005, 2013 e 2016)
Tecos-MEX (1999, 2000, 2004)
Grêmio (1998)
La Coruña-ESP (1998)
San Lorenzo-ARG (1997 e 1998, 2001)
Defensor-URU (1994 a 1996)

Botafogo