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

Glenn diz que investigação contra marido tem propósito de "intimidar"

Do UOL, em São Paulo

03/09/2019 00h49

O jornalista Glenn Greenwald disse que as investigações abertas contra seu marido, o deputado federal David Miranda (PSOL-RJ), para apurar a prática da chamada "rachadinha" - quando funcionários comissionados devolvem dinheiro ao político que os contrata - no período em que ele era vereador no Rio, conforme noticiado pela revista Época na semana ada, são uma estratégia para intimidar a ambos.

"Exatamente como Sergio Moro tentou abusar de seu poder comandando a Polícia Federal, influenciando o Coaf [Conselho de Controle de Atividades Financeiras], para primeiramente me investigar, e o Supremo [Tribunal Federal] impediu isso, porque foi uma violação da liberdade de imprensa, como retaliação, agora estão fazendo contra o meu marido. É só isso. Nunca vai ter evidência", disse Greenwald, ao ser sabatinado no programa "Roda Viva", da TV Cultura, na noite de ontem, transmitido ao vivo pelo UOL.

"Onde estão as evidências no caso do meu marido? Não tem e nunca vai ter, porque ele não fez [a prática da rachadinha]."

O fundador do site The Intercept, que desde 9 de junho vem publicando uma série de reportagens baseadas nos diálogos vazados de procuradores da Lava Jato e do ministro Moro, ex-juiz federal responsável pelos julgamentos da força-tarefa, disse que ele e David já esperavam por esse tipo de reação.

"Nós sabíamos, quando começamos, que o alvo principal de nossa reportagem, Sergio Moro, está comandando a Polícia Federal, Receita Federal, Coaf, e nós sabíamos que ele iria fazer exatamente isso. Estamos totalmente tranquilos, porque é uma mentira, não tem evidência nenhuma, é exatamente esse jogo sujo que eles fazem, e não vamos parar por causa disso", disse.

"Se qualquer político, inclusive meu próprio marido, fizesse esse crime [rachadinha], deveria ser preso, como [o agora senador pelo PSL e filho do presidente Jair Bolsonaro] Flávio Bolsonaro fez. Como eu posso falar que Flávio Bolsonaro fez isso? Porque já tem muita evidência que foi depositado na conta dele, na [conta da] esposa do presidente Bolsonaro, dinheiro pelo miliciano muito além da renda que Flávio Bolsonaro conseguiu ganhar como político", disse.

O "aumento exponencial de patrimônio" de Flávio Bolsonaro é a base para quatro investigações em andamento na Polícia Federal, na Procuradoria da República e no Ministério Público Estadual do Rio de Janeiro. São transações imobiliárias suspeitas e movimentações financeiras do ex-motorista do filho do presidente Bolsonaro, Fabrício Queiroz.

No dia 26, o UOL publicou que uma das apurações está travada na Justiça há cerca de seis meses. A investigação tramita na Polícia Federal do Rio de Janeiro, mas não voltou do Judiciário ainda.