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

'Metade de mim se foi', diz namorada de treinador morto em acidente no PR

Marilia Gabriela fez uma publicação em seu perfil do Facebook se despedindo do namorado - Reprodução/ Facebook
Marilia Gabriela fez uma publicação em seu perfil do Facebook se despedindo do namorado Imagem: Reprodução/ Facebook

Do UOL, em São Paulo

08/07/2021 20h16Atualizada em 08/07/2021 20h16

O acidente envolvendo o time de futsal de Umuarama, no Paraná, vitimou o motorista, Osvaldo da Silva, e o treinador das categorias de base do time, Paulo Vitor Gonzales, conhecido como Vitinho.

Nas redes sociais parentes e amigos se solidarizam com as perdas e com os feridos. "Metade de mim se foi, te amo minha vida! Cuida de mim aí de cima", escreveu em uma rede social Marilia Gabriela Marrique, namorada de Gonzales.

Marilia deu entrevista para o jornal O Globo em que falou sobre os planos que o casal tinha, além da realização profissional do namorado.

"Namorávamos há 4 anos, tínhamos planos para nos casar e construir nossa família! O Vitor sempre foi uma pessoa cheia de sonhos e sempre batalhou por eles, ele estava realizando o sonho dele com a base! Sempre família e apaixonado pela profissão dele", disse ela.

Maycon Simionatto, amigo de Paulo Vitor, disse em uma publicação no Facebook que estava sem acreditar na perda recente e também comentou sobre o atual momento da carreira de Gonzales: "Sabíamos o quanto você estava feliz nessa nova etapa da vida".

Os feridos

Representantes da AFSU (Associação de Futebol de Salão de Umuarama) concederam coletiva de imprensa transmitida pelo perfil do Facebook da prefeitura de Umuarama (PR) às 17h09 dando detalhes do acidente.

De acordo com eles, o ônibus estava com todas as documentações em dia, possuía seguro e fez uma última revisão na semana ada.

Além das mortes do motorista e do coordenador que treinava as categorias de base do time, vários atletas ficaram feridos. 13 atletas já receberam alta médica e estão retornando para Umuarama. Dentre comissão técnica e atletas, sete seguem hospitalizados por precaução médica.

"amos o dia todo correndo dando apoio para as famílias, principalmente as que perderam entes queridos. [...] De modo geral a situação está toda controlada e os atletas estão sendo bem atendidos pelos hospitais", informaram.

O translado dos corpos já está acontecendo para Umuarama, onde serão velados. Paulo Vitor será velado no ginásio de esportes da cidade, assim como Osvaldo da Silva, mas seu corpo vai ser transladado novamente para Perobal (PR), cidade de origem.