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

Líder de grupo de apostadores, Bruno Lopez mentia sobre clubes em currículo

Bruno Lopez é apontado como líder da quadrilha de apostas que atingiu jogos da Série A - Reprodução Instagram
Bruno Lopez é apontado como líder da quadrilha de apostas que atingiu jogos da Série A Imagem: Reprodução Instagram
Eder Traskini e Alexandre Araújo

Do UOL, em São Paulo (SP) e Rio de Janeiro (RJ)

10/05/2023 17h38

Bruno Lopez, descrito pelo Ministério Público como líder do grupo de apostadores nos documentos da operação Penalidade Máxima, alega ser jogador e empresário em suas redes sociais, porém mentia os clubes pelos quais teria ado como jogador.

O que aconteceu

O currículo de Bruno Lopez como jogador pode ser encontrado na página de sua empresa, a BC Sports Management. Ele contém agens por seis clubes brasileiros, além de equipes alemãs.

Lopez alega ter atuado no Palmeiras em 2010, mas o clube nega. Nascido em 1994, Lopez teria atuado pelo sub-17, porém o Verdão afirmou, em contato com o UOL, que "não consta nenhum registro nem no Palmeiras, nem inscrição nas entidades esportivas".

Depois, Lopez teria ido para a Alemanha ainda nas categorias de base. Retornou ao Brasil apenas em 2018. Em solo europeu, alega ter ado por Tus Leopoldshöhe (ALE), Fsg Waddenhausen (ALE) e Spvgg Bad Pyrmont (ALE).

De volta ao Brasil, teria jogado pelo Operário AC-MS, mas seu contrato no clube durou apenas uma semana, entre 9/02 e 15/02/2018, e não teve jogos. O presidente do clube, Giovanni Jolando, afirmou ao UOL que Lopez não tinha condições de atuar nem no futebol amador.

"Ele chegou por meio do Felipe Ramos, da F10 Assessoria Esportiva, que me disse que ele teria feito a base na Alemanha e nunca tinha jogado no Brasil. Quando chegou, estava fora de forma e sua qualidade técnica era abaixo de zero. O treinador o dispensou pois não tinha condições de jogar nem no futebol amador". Giovanni Jolando.

Lopez novamente deixou o Brasil e afirma ter atuado na Alemanha e na China, mas não há registro de jogos.

O EC São Bernardo teria sido o destino quando retornou ao país, mas novamente Lopez nunca entrou em campo. Seu contrato com o clube começou em 10/10/2019 e foi até 09/01/2020. No currículo, Lopez escreve que atuou pelo clube em 2019 e 2020.

"O rapaz nunca atuou pelo clube. Apenas ou um período curto treinando e não foi aprovado". Fabiano Fernando, executivo de futebol do clube.