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

Bolsonaro se reúne com lutadores de MMA e ganha cinturão

Do UOL, em São Paulo e em Brasília

21/10/2022 10h14Atualizada em 21/10/2022 19h42

O presidente e candidato à reeleição, Jair Bolsonaro (PL), participou hoje de um encontro em São Paulo com lutadores de MMA, entre os quais representantes do Brasil no UFC, como José Aldo, Maurício Shogun, Fabrício Werdum, Wanderlei Silva e outros.

Durante a agenda, na academia Alliance, na Vila Olímpia, zona sul da cidade, o chefe do Executivo federal recebeu dos atletas um cinturão personalizado —objeto que simboliza a conquista de um título na modalidade esportiva.

Educação física nas escolas. Todos os lutadores manifestaram apoio a Bolsonaro e fizeram críticas ao PT e à esquerda. Bolsonaro voltou a defender que o país está indo bem na economia.

Também destacou o papel relevante da educação física como disciplina escolar na formação de crianças e adolescentes.

Ironia com 'picanha'. Em dado momento, o candidato do PL ironizou um dos motes de campanha do adversário no segundo turno, o ex-presidente Luiz Inácio Lula da Silva (PT).

"Quem quer picanha aí?", brincou ele, em referência ao fato de que o oponente tem dito que, se for reeleito, a população mais pobre voltará a "comer picanha".

Bolsonaro deixou a academia sob gritos de "mito" e andou alguns metros na rua ao lado dos atletas para cumprimentar seus apoiadores, que aguardavam atrás de grades numa calçada na frente da academia.

"Quem luta de verdade vota 22", disse um dos lutadores, do lado de fora.

Manifestações. Antes de Bolsonaro deixar a academia, um homem dirigindo um carro com adesivos do ex-presidente Lula e do candidato ao governo de São Paulo, Fernando Haddad (PT), foi hostilizado por apoiadores do presidente e xingado de "vagabundo".

Quando Bolsonaro já havia deixado o local e o candidato Tarcísio de Freitas (Republicanos) dava uma declaração a jornalistas, um homem que estava em um prédio em frente à academia onde ocorreu o evento gritou "miliciano filho da p...".

Apoiadores bolsonaristas reagiram, houve gritaria, e Tarcísio deixou o local após interromper a entrevista.