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

Toffoli: Dados do Coaf podem ser enviados ao MP, mas não servem como prova

Marcelo Oliveira

Do UOL, em São Paulo*

20/11/2019 19h24

O STF (Supremo Tribunal Federal) começou hoje (20) a julgar se é legal que órgãos de controle como a Receita Federal e a UIF (Unidade de Inteligência Financeira), o antigo Coaf, compartilhem, sem autorização judicial, dados fiscais e bancários ao Ministério Público quando identificadas movimentações suspeitas.

Neste primeiro dia de julgamento apenas o ministro Dias Toffoli, relator do caso e presidente da Corte, votou. Ele julgou constitucionais o compartilhamento de dados pela Receita e pelo Coaf com o Ministério Público desde que tais dados sejam usados como informação, mas não como prova pelo MP.

Ou seja, o MP deve, baseado nos dados enviados pelo Coaf ou pela Receita, pedir autorização judicial para quebras de sigilo bancário e fiscal.

Não vale como prova

Segundo Toffoli, como o nome do órgão diz, a UIF é um órgão de inteligência e as informações produzidas pelo órgão não podem ser utilizadas como prova, mas como elementos para fundamentar pedidos de quebra de sigilo bancário e fiscal formulados pelo MP ou pela polícia à Justiça.

De acordo com o voto do presidente da Corte, a UIF pode compartilhar RIFs (relatórios de inteligência financeira) a pedido do MPF.

Segundo o ministro, contudo, os RIFs só podem ser compartilhados por meio do sistema do COAF. "Fica vedada a produção ou disseminação por qualquer outro meio de comunicação, como e-mail", disse o presidente do STF em seu voto.

Para Toffoli, essa garantia é necessária, pois, do contrário, o trabalho da inteligência financeira é exposto. Além disso, uma movimentação atípica detectada pelo órgão não necessariamente é um crime.

O MP não pode usar a UIF para produzir relatórios "contra cidadãos sem investigação aberta contra eles ou com relatório de inteligência apontando movimentação atípica. (Não pode) mandar e-mail pra UIF ou o antigo COAF e perguntar se tem algo contra fulano. Isso não é legal", afirmou Toffoli.

Autodefesa

Durante boa parte do tempo de seu voto de mais de 4 horas de duração, Toffoli defendeu a decisão na qual suspendeu a investigação do "Caso Queiroz", sobre a prática de "rachadinha" no gabinete do então deputado estadual Flávio Bolsonaro, atual senador, na qual o MP do Rio de Janeiro usou dados do Coaf.

Toffoli afirmou que a decisão que deu no caso concreto do senador, não interferiu no funcionamento e independência do antigo Coaf. "É preciso afastar lendas urbanas", disse o ministro.

Toffoli: "atores internos mal intencionados" alimentaram matérias críticas

UOL Notícias

Contudo, segundo Toffoli, o combate à lavagem de dinheiro e ao financiamento do terrorismo não pode desrespeitar os direitos e garantias individuais e que os alvos de fiscalizações não podem ser escolhidos "do nada".

"A UIF tem que saber por que determinada autoridade está requerendo aquela informação", disse.

Julgamento volta amanhã

O julgamento sobre o envio direto de informações da Receita e do Coaf para o MP está previsto para ser retomado nesta quinta-feira (21), às 14h, e será reaberto com o voto do ministro Alexandre de Moraes. Depois, na ordem, votarão os ministros Edson Fachin, Roberto Barroso, Rosa Weber, Luiz Fux, Cármen Lúcia, Ricardo Lewandowski, Gilmar Mendes, Marco Aurélio Mello e Celso de Mello.

Entenda o caso

O caso que começou a ser julgado nesta quarta-feira é o recurso extraordinário 1055941, proposto pelo Ministério Público Federal, em uma ação penal em que proprietários de um posto de combustíveis foram processados pelo MPF após a Receita enviar informações sobre suspeita de sonegação. O TRF da 3ª Região anulou o processo, pois entendeu que houve violação do sigilo bancário dos investigados na informação prestada pela Receita ao MPF, que recorreu.

Apesar de o ministro Dias Toffoli, no início do seu voto, ter negado que esteja em julgamento o caso do senador Flávio Bolsonaro, a decisão que começa a ser tomada hoje pode interferir no caso do filho do presidente, mas, pelo voto de hoje, ainda não ficou claro de que forma se dará esse impacto.

Foi conferido ao julgamento de hoje a chamada repercussão geral e a decisão servirá para orientar juízes em todo o país em casos que envolvam uso de dados do Coaf e da Receita Federal no futuro.

* Colaboraram Felipe Amorim e Alex Tajra, do UOL em Brasília e São Paulo