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

Flamengo

Luz, câmera e ação: os agitados dias da diretoria do Flamengo em Portugal

Braz e Spindel na porta de um hotel em Lisboa - Reprodução
Braz e Spindel na porta de um hotel em Lisboa Imagem: Reprodução

Leo Burlá

Do UOL, no Rio de Janeiro

24/12/2021 04h00

Em busca de um técnico em Portugal, o Flamengo montou base em Lisboa e vive dias agitados na capital. O Rubro-negro está representado pelo vice de futebol Marcos Braz e pelo diretor Bruno Spindel, que viram sua agem pela cidade se transformar em um autêntico reality show.

Hospedados no luxuoso Hotel Tivoli, a dupla tem seus os acompanhados por veículos de imprensa locais e também do Brasil. Da hora do café da manhã ao momento de saírem para reuniões, a dupla é vigiada de perto e não há um dia sequer sem que haja fotógrafos e cinegrafistas na porta do estabelecimento.

Uma emissora de TV de Portugal colocou uma equipe no encalço da dupla e segue os os dos rubro-negros o tempo todo. O assédio assustou um pouco e há relatos de que alguns deslocamentos já foram escoltados por motos pilotadas por profissionais da imprensa.

Como o hotel não é vedado apenas para os hóspedes, jornalistas e curiosos circulam pelo saguão e acompanham os movimentos dos dirigentes, que tem contado com a companhia frequente de Bruno Macedo, agente de Jorge Jesus.

Na hora de um descanso, mais assédio. Como há um grande contingente de brasileiros em Lisboa, os dois são abordados nas ruas e ouvem pedidos pela contratação de Jorge Jesus.

Braz e Spindel têm os restaurantes Seen e o JNcQUOI como paradas obrigatórias quando estão na capital. As duas casas são conhecidas pela cozinha contemporânea e estão entre os mais badaladas da cidade.

Braz e Spindel concedem entrevista em Lisboa - Reprodução - Reprodução
Braz e Spindel concedem entrevista em Lisboa
Imagem: Reprodução

Ontem (23), no entanto, o roteiro do mochilão foi pelo Norte do país. Após uma reunião com o presidente do Braga, clube de Carlos Carvalhal, a dupla, que segue de olho aberto em Jorge Jesus, foi ver Porto x Benfica, jogo válido pela Taça de Portugal.

Com a eliminação benfiquista, os rumores de um retorno do Mister para a Gávea só crescem. O Fla segue na Europa até o dia 30 de dezembro e só volta ao Rio de Janeiro com um treinador na bagagem.

Flamengo