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

Operação Lava Jato

Aras ignora RJ e compara bancos de dados distintos ao citar Lava Jato do PR

Augusto Aras, procurador-geral da República - Isac Nóbrega/PR
Augusto Aras, procurador-geral da República Imagem: Isac Nóbrega/PR

Vinicius Konchinski

Colaboração para o UOL, em Curitiba

01/08/2020 04h03

Resumo da notícia

  • Procurador-geral afirmou que Lava Jato do PR tem quase dez vezes mais dados armazenados do que o MPF
  • Segundo o cálculo, Lava Jato do Rio também excede o banco do MPF em armazenamento, mas não foi citada
  • Banco de dados a que Aras se referiu mantém apenas arquivos de texto; fotos e outros são guardados a parte
  • PGR afirma ao UOL que o procurador-geral comentou sobre os armazenamentos "a título de exemplo"

Em live na última semana, o procurador-geral da República, Augusto Aras, se apoiou em bases de dados diferentes ao comparar o arquivo da Lava Jato em Curitiba com o total armazenado pelo MPF (Ministério Público Federal). Segundo Aras, enquanto a força-tarefa do Paraná mantém 350 terabytes armazenados, o órgão ao qual ela pertence tem 40 terabytes, medida usada para quantificar o volume de dados guardados.

A afirmação ignora ainda o estoque de informações da equipe do Rio de Janeiro da operação, que afirmou ao UOL manter 60 terabytes em seu poder, também superando o total do MPF, segundo o cálculo de Aras. Fontes consultadas pela reportagem afirmam entretanto que o procurador-geral confundiu modalidades de armazenamento ao fazer comparações.

O sistema único de dados do MPF só armazena arquivos de texto, mais leves. São denúncias, manifestações ou despachos feitos por procuradores. Este sistema contém os 40 terabytes mencionados pelo procurador-geral.

Neste conjunto, porém, não está armazenado o material obtido em investigações. Arquivos retirados de celulares ou computadores apreendidos, por exemplo, geralmente são guardados em discos rígidos nas sedes do MPF, levados aos autos de processos, mas ficam fora do sistema único. Sendo assim, o conjunto de dados de uma força-tarefa, ou mesmo do MPF, abrange o sistema único mais a soma de informações de provas, fotos, áudios e outros, guardados a parte.

Por conta dessa diferença, para membros do MPF ouvidos pelo UOL, a comparação feita por Aras está incorreta. A PGR (Procuradoria-Geral da República) afirmou que o procurador-geral citou os valores "a título de exemplo".

A Lava Jato de São Paulo informou ter mais de 10 terabytes coletados em suas investigações.

Lava Jato de Curitiba nega ter lista com 38 mil cidadãos

Ainda segundo o procurador-geral Aras, o banco de dados de Lava Jato do Paraná contém informações sobre 38 mil pessoas. "Ninguém sabe como foram escolhidos", reclamou ele, na live com o grupo Prerrogativas, que reúne advogados criminalistas.

A PGR informou que a Corregedoria do MPF está apurando dificuldades encontradas por instâncias superiores do órgão para ar informações da força-tarefa de Curitiba.

A Lava Jato paranaense, por sua vez, informou que é "falsa a suposição de que 38 mil pessoas foram escolhidas pela força-tarefa para serem investigadas, pois esse é o número de pessoas físicas e jurídicas mencionadas em relatórios do Coaf [Conselho de Controle de Atividades Financeiras] ao MPF".

A força-tarefa também informou que seus "documentos estão registrados nos sistemas eletrônicos da Justiça Federal ou do Ministério Público Federal e podem ser ados em correições ordinárias e extraordinárias".

Operação Lava Jato