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

DJ suspeito de hackear Moro alega inocência e reclama de policiais

Suspeitos de hackear celular de Moro depõem em Brasília

Band Notí­cias

Felipe Amorim

Do UOL, em Brasília

24/07/2019 13h09

O advogado do DJ preso sob suspeita de envolvimento na tentativa de invasão hacker ao celular do ministro da Justiça e Segurança Pública, Sergio Moro, afirmou na manhã de hoje que seu cliente não tem relação com o caso, mas chegou a ver mensagens que aparentavam ser de Moro, mostradas a ele por outro dos quatro investigados.

Segundo o advogado Ariovaldo Moreira, seu cliente, o DJ Gustavo Henrique Elias Santos, não teve envolvimento com o ataque hacker ao celular do ministro.

O defensor disse ainda que Elias Santos e sua mulher, Suelen Priscila de Oliveira, também presa na operação, reclamaram da postura dos policiais, que teriam algemado as mãos e os pés deles na viagem de São Paulo até Brasília, onde serão interrogados na tarde de hoje.

Ariovaldo afirma que as mensagens suspeitas foram mostradas a seu cliente pelo investigado Walter Delgatti Neto, que também está preso temporariamente. Ele afirma que os dois têm uma relação de amizade e que o DJ teria alertado Delgatti Neto do risco que ele poderia estar correndo.

"Segundo relato do Gustavo, o Vermelho [apelido de Delgatti Neto] mostrou pra ele algumas interceptações de uma autoridade tempos atrás", disse Moreira.

Segundo o advogado, o DJ nega ter qualquer relação com a obtenção das mensagens. "Ele negou pra mim. Disse que não tem envolvimento nenhum com essa interceptação. O que ele me disse foi que ele chegou a ver isso no computador dele, inclusive printou algumas mensagens e inclusive me disse que no aplicativo dele ele devolveu a mensagem ao Walter dizendo: cuidado com isso que você vai ter problema", afirmou o advogado.

O defensor explicou que seus clientes se queixaram do tratamento que receberam na PF. "A Suelen está muito abalada emocionalmente, porque é uma jovem de 24 anos. Está muito abalada em função de tudo que aconteceu, a forma como foi conduzida o cumprimento do mandado de buscas foi muito traumático pra ela", disse Moreira.

"[Segundo] relatos dela e confirmados por ele, foram tratados como bandidos mesmo, vieram algemados as mãos, os pés, vieram amarrados e ela citou inclusive essa frase: eu fui conduzida a Brasília como se eu fosse um animal", afirmou o advogado.

A Polícia Federal prendeu ontem quatro pessoas na Operação Spoofing, que apura a tentativa de ataque hacker ao celular do ministro Sergio Moro e às contas de Telegram de outras quatro autoridades. Segundo o jornal Folha de S.Paulo, o celular de Moro foi invadido em 4 de junho e os supostos invasores chegaram a trocar mensagens por seis horas. Os suspeitos foram presos em três cidades diferentes: São Paulo, Ribeirão Preto (SP) e Araraquara (SP).

As suspeitas de invasão hacker ao celular do procurador Deltan Dallagnol, coordenador da Lava Jato em Curitiba, não constam dessa investigação, mas do inquérito aberto pela PF na capital paranaense.

A reportagem do UOL ainda não conseguiu entrar em contato com a defesa de Walter Delgatti Neto.