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

Esse conteúdo é antigo

Mulher recebe presente inusitado de amante do ex-marido: 'Desculpe'

Vídeo viralizou após ser postado nas redes sociais - Reprodução/TikTok
Vídeo viralizou após ser postado nas redes sociais Imagem: Reprodução/TikTok

Colaboração para o UOL, em São Paulo

07/06/2021 15h53

A escocesa Elizabeth Lindsay viu o seu casamento terminar após descobrir que o seu ex-marido estava vivendo uma outra mulher. A história, entretanto, terminou com uma reviravolta surpreendente em seu aniversário de divórcio: a amante decidiu enviar uma caixa de biscoitos pedindo desculpas pelo acontecimento.

Em um vídeo publicado no TikTok, Elizabeth mostra as guloseimas que recebeu da mulher que dormiu com o seu ex-marido com uma série de mensagens arrependidas.

"É o aniversário de minha despedida do meu marido, então a mulher [que estava tendo um caso com ele] não sabia seu nome verdadeiro, estava sendo enganada por ele e me deu um presente", disse a divorciada no Tiktok.

Elizabeth mostra que um dos biscoitos recebidos faz alusão ao pênis do homem, trazendo seu apelido. Outro, em formato de rosas, flor favorita de Elizabeth, vem com os dizeres: "Desculpe por ter transando com o seu marido". O pacote ainda possui um terceiro doce que traz a imagem de duas mulheres de costas com os dedos médios levantados para cima. "Irmãs antes das ciladas dos homens", diz mensagem.

Ela sabe que eu amo rosas, então ela escreveu 'desculpe por ter transado com o seu marido'. Foi absolutamente brilhante."

Há também um quarto biscoito em que aparece a frase: "Você é tão sombria". "Ele me pegou falando com ela e estava me empurrando porta afora, gritando comigo e me chamando de sombria. Bem, quem é o sombrio?", diz Elizabeth.

Ao Daily Records, a empresa Rude Cookies, que preparou a encomenda, disse que os pedidos de clientes devem ser feitos com pelo menos dois meses de antecedência, mas que não se incomodou em "furar a fila" de espera para entregar o presente à Elizabeth na data certa.

"A cliente nos contou a história e nós criamos os designs de biscoitos para ela. Estávamos muito animadas para ajudar as amigas a celebrar este 'aniversário' incomum", contou Agnieszka, sócia da empresa.

Como uma empresa istrada por mulheres, acreditamos fortemente que devemos apoiar umas às outras diariamente. A história dessas meninas é um exemplo maravilhoso de empoderamento feminino."