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

Vasco

Organizada ameaça atletas com drone: "O Vasco vale mais que suas vidas"

Torcedores do Vasco ameaçam jogadores com drone - Jorge Rodrigues/AGIF
Torcedores do Vasco ameaçam jogadores com drone Imagem: Jorge Rodrigues/AGIF

Bernardo Gentile

Do UOL, no Rio de Janeiro

19/06/2021 17h48

Um drone invadiu o estádio de São Januário neste sábado durante a partida entre Vasco e CRB pela Série B. O veículo trazia uma faixa pendurada e uma ameaça aos jogadores do clube. "O Vasco vale mais que suas vidas. Joguem por elas".

O agem do drone fez com que a partida fosse paralisada por alguns minutos até que ele sumisse de vista. O UOL Esporte entrou em contato com o GEPE (Grupo Especial de Polícias em Estádio), que afirmou que a máquina veio da Barreira, favela que fica em frente ao estádio.

Força Jovem do Vasco posta nas redes sociais a mesma ameaça presente no drone - Reprodução - Reprodução
Força Jovem do Vasco postou nas redes sociais a mesma ameaça presente no drone
Imagem: Reprodução

A faixa não tem nenhuma da Força Jovem do Vasco, mas conta com mensagens subliminares. Uma bandeira da Noruega, que tem sido utilizada nas postagens da torcida nas redes sociais. Além disso "1970" também está escrito, ano em que justamente o grupo foi fundado.

Por fim, a própria Força Jovem postou nas redes sociais a mesma ameaça que aparecia no drone. Portanto, fica clara a participação da organizada, que está banida dos estádios, mesmo que o nome não esteja presente.

Má fase e violência

A má fase do Vasco gerou protesto por parte da torcida. O time iniciou a rodada próximo da zona de rebaixamento para a Série C após ser derrotado em casa para o Avaí. Na oportunidade, jogadores sofreram uma emboscada na saída de São Januário e tiveram seus carros apedrejados por membros de organizada.

O volante Bruno Gomes e o atacante Leo Jabá lamentaram o ataque. Ninguém ficou ferido.

"E se eu estou com o vidro aberto? E se eu perco o controle da direção? E meu prejuízo no carro? Estávamos eu e Matías no carro, e isso podia ter acabando com um acidente grave!", escreveu Bruno Gomes no Twitter, que apagou a postagem logo em seguida.

Bruno Gomes lamenta ataque de torcedores  - Instagram - Instagram
Bruno Gomes lamenta ataque de torcedores do Vasco
Imagem: Instagram

No vídeo, que circula nas redes sociais, os torcedores esperam os veículos se aproximarem e tacam objetos, reclamando da atuação do clube. Bruno, que nem foi titular da partida, estava acompanhado do paraguaio Matías Galarza, que entrou em campo na segunda etapa.

Leo Jabá também se manifestou pelas redes sociais. Em uma publicação no "stories" do Instagram, que fica disponível por um tempo determinado, ele publicou uma foto da parte do veículo que foi atingida e diz que os protestos da torcida são aceitáveis, mas repudia condutas violentas.

"Protestar e criticar é totalmente aceitável. Somos atletas profissionais e estamos acostumados com julgamentos todos os dias. O que não dá para aceitar são condutas violentas, que colocam em risco a integridade física de trabalhadores em perigo. Ninguém fica feliz com um momento ruim. Ninguém trabalha para fazer as coisas de forma errada", escreveu.

Vasco