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

Menino de 13 anos desobedece a mãe e acaba salvando sua vida em incêndio

Damir Carter - Reprodução/Facebook
Damir Carter Imagem: Reprodução/Facebook

da Universa, em São Paulo

10/01/2019 10h36

Damir Carter, de 13 anos, burlou uma das regras de sua mãe, Angela Marie Borden, no dia de Ano-Novo: ele ficou assistindo tevê depois das 22h, seu horário de dormir.

No entanto, a desobediência do menino acabou salvando a vida dos dois: por volta da 1h da manhã, o garoto de New Castle County, no estado americano de Delaware, acabou notando barulhos estranhos e fumaça do incêndio que começava a se alastrar pelos ambientes.

"Damir disse que quando ele pós os pés no corredor, viu a fumaça. Ele chamou pelo pai, que estava no trabalho. Então ele começou a gritar por mim e dizer que havia fumaça. Eu corri e vi as chamas", contou a mãe à revista "People".

Angela imediatamente começou a procurar o gato e os cinco cães da família, mas o garoto não conseguia encontrá-los. "Eu disse ao Damir para sair, correr ao redor da casa e chamar pelos cães. Esperava poder tirá-los pelas janelas".

No entanto, apenas o cão menor, Trix, pode ser salvo, já que dormia com Angela. Os outros animais de estimação da famíllia acabaram morrendo no incêndio. Richard Lewis, seu marido, voltou para casa pouco antes dos bombeiros chegarem.

Para ela, uma das ideias que eram mais difíceis de aceitar era que ele poderia ter chegado e não encontrado ela ou Damir vivos. Segundo a polícia, um curto-circuito na fiação da casa provocou o fogo.

"Eu atribuo termos conseguido sair da casa ao meu filho ter agido tão rapidamente. Ele ligou para a emergência, me acordou... Realmente usou a cabeça. Estou muito grata. Ele é um menino excepcional, não sei quantas crianças poderiam lidar com uma questão como esta e encontrar uma solução. Ele foi um herói, de certa maneira, lutou por tudo o que amava naquela noite -- seus cachorros, sua mãe, tudo. Ele não está de castigo por ar da hora de dormir desta vez!", concluiu a mãe à publicação.

A família está vivendo no momento em um hotel e os vizinhos criaram vaquinhas virtuais através do Facebook e da plataforma GoFundMe para levantar fundos para que a família se recupere.