;(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 vence, mas Flu se classifica com gol aos 51 e pega Fla na final

Do UOL, no Rio de Janeiro

27/03/2022 18h04

O Botafogo venceu, mas quem saiu classificado de forma emocionante para a final do Carioca foi o Fluminense. Em campo, o Alvinegro levava a melhor até os acréscimos com um placar de 2 a 0 com dois gols de Erison, mas Germán Cano, aos 51 minutos do segundo tempo, diminuiu para o Tricolor e garantiu a vaga na final contra o Flamengo. A vantagem foi conquistada após o clube das Laranjeiras ser campeão da Taça Guanabara, no turno disputado em pontos corridos.

Os jogos decisivos do Estadual acontecerão nos próximos dias 30 (quarta-feira) e 2 (sábado). As datas foram antecipadas por causa do jogo do Rubro-Negro na Copa Libertadores.

Botafogo parte para cima da arbitragem

Tumulto entre jogadores do Botafogo e o árbitro Paulo Renato Moreira da Silva - Jorge Rodrigues/AGIF - Jorge Rodrigues/AGIF
Imagem: Jorge Rodrigues/AGIF

Após o apito final, jogadores e integrantes da comissão técnica do Botafogo partiram para cima da arbitragem e a Polícia Militar precisou entrar no gramado para proteger os profissionais. Furiosos, os alvinegros reclamaram efusivamente pelo fato deles não terem deixado o time bater uma falta nos acréscimos após o gol de Germán Cano aos 51.

Abel vaiado

O técnico Abel Braga foi muito vaiado pelos torcedores do Fluminense, principalmente no segundo tempo, quando o Tricolor estava atrás do placar e sofria pressão do Botafogo. Esta não é a primeira vez que o treinador sofre cobranças dos tricolores.

O melhor - Erison

"El Toro", como é chamado pelos torcedores do Botafogo, deu muito trabalho para a defesa do Fluminense. Utilizando-se de seu porte físico, ele dividiu bolas com os zagueiros, arriscou a todo o momento e fez um golaço.

O pior - Pineida

O lateral esquerdo equatoriano do Fluminense foi tímido no apoio e deu espaços na defesa.

Atuação do Botafogo

Precisando vencer por pelo menos dois gols de diferença para chegar à final, o Botafogo lançou-se ao ataque e foi mais perigoso, principalmente com o jovem Rikelmi e o atacante Erison.

Atuação do Fluminense

O técnico Abel Braga optou por uma formação com três zagueiros, mas mesmo prezando pela defesa, cedeu espaços. No golaço de Erison, a zaga estava totalmente desarrumada.

Luís Castro e Textor no Maracanã

Após desembarcar no Rio logo pela manhã cedo, o técnico português Luís Castro, contratado pelo Botafogo, marcou presença no Maracanã na companhia do americano John Textor, dono da SAF alvinegra, e do ex-presidente botafoguense Carlos Augusto Montenegro.

Castro e Textor posaram para fotos com o ex-goleiro Manga, ídolo alvinegro:

A corrente alvinegra

A chegada do Fluminense

FICHA TÉCNICA

BOTAFOGO 2 X 1 FLUMINENSE
Local: Maracanã, no Rio de Janeiro (RJ)
Hora: 16h
Competição: Campeonato Carioca
Árbitro: Paulo Renaro Moreira da Silva Coelho
Assistentes: Rodrigo Figueiredo Henrique Corrêa e Thiago Henrique Neto Corrêa Farinha
VAR: Rodrigo Nunes de Sá
Cartões amarelos: Luiz Fernando, Rikelmi, Vinícius Lopes, Erison, Kayque (BOT); Nonato, André, Yago Felipe (FLU)
Cartões vermelhos: Fred (FLU)
Gols: Erison, aos 47 minutos do primeiro tempo (BOT); Erison aos 43 minutos do segundo tempo (BOT); Germán Cano, aos 51 minutos do segundo tempo (FLU)

Fluminense: Marcos Felipe, Luccas Claro, Manoel (Nonato) e David Braz; Calegari, André, Martinelli (Yago Felipe) e Pineida (Cristiano); Jhon Arias (Paulo Henrique Ganso), Willian Bigode (Fred) e Germán Cano. Técnico: Abel Braga

Botafogo: Douglas Borges, Daniel Borges, Sampaio, Kanu e Jonathan Silva (Hugo); Barreto (Romildo) e Kayque (Juninho); Luiz Fernando (Gabriel Conceição), Chay e Rikelmi (Vinícius Lopes); Erison.Técnico: Lucio Flávio

Errata: este conteúdo foi atualizado
Ao contrário do informado anteriormente, as finais serão nos dias 30 e 2.