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

Musk inclui denúncias de ex-executivo em processo sobre compra do Twitter

Empresário sul-africano Elon Musk, CEO da SpaceX, em cena do documentário "De volta ao espaço" - Cortesia Netflix
Empresário sul-africano Elon Musk, CEO da SpaceX, em cena do documentário "De volta ao espaço" Imagem: Cortesia Netflix

Em Nova York

31/08/2022 09h47

Os advogados de Elon Musk enviaram documento nesta segunda-feira ao Twitter para notificar novamente sobre o cancelamento do acordo de compra da rede social, desta vez, incluindo as denúncias feitas por um antigo executivo da empresa tecnológica, que foram divulgadas na semana ada.

As informações constam na carta que foi tornada pública hoje ela imprensa dos Estados Unidos.

Musk comunicou inicialmente que considerava encerradas as negociações em 8 de julho deste ano, mas o Twitter rejeitou os argumentos e entrou com ação judicial para obrigar o fundador da Tesla a cumprir com o acordo feito e pagar US$ 44 milhões (R$ 221,8 milhões) pela companhia.

Agora, o milionário considera que as informações divulgadas por Peiter Zatko, que até janeiro ado era chefe de cibersegurança do Twitter, representam motivos adicionais para que seja possível romper o acordo.

O ex-executivo, conhecido também pelo apelido "Mudge", entregou às autoridades americanas um informe em que garante que o Twitter tem graves problemas de segurança tecnológica, que mentiu sobre isso aos órgãos reguladores e que não tem nem capacidade, nem interesse para determinar o número de contas falsas na plataforma.

Na carta enviada ontem e que foi tornada pública em uma notificação ao regulador da Bolsa de Valores, a equipe de Musk aponta que o Twitter conhecia os feitos denunciados pelo ex-chefe de cibersegurança, mas não os comunicou quando a venda foi negociada, o que violaria os termos acordados.

Musk classifica o documento como uma "notificação adicional" de cancelamento, que pode ser utilizado caso a justiça determine que a primeira, que entregou em 8 de julho, não é válida.

As duas partes irão a julgamento em outubro deste ano, em um tribunal especializado no estado americano de Delaware.

Os advogados de Musk já incluíram Zatko entre as testemunhas do processo e pediram documentos e comunicações dele. EFE