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

Esse conteúdo é antigo

Rosa Weber é a relatora dos processos da operação que prendeu André do Rap

14.fev.2019 - A ministra Rosa Weber no plenário do Supremo Tribunal Federal  - FÁTIMA MEIRA/FUTURA PRESS/FUTURA PRESS/ESTADÃO CONTEÚDO
14.fev.2019 - A ministra Rosa Weber no plenário do Supremo Tribunal Federal Imagem: FÁTIMA MEIRA/FUTURA PRESS/FUTURA PRESS/ESTADÃO CONTEÚDO

Rayssa Motta, Pepita Ortega e Fausto Macedo

12/10/2020 19h00

Em despacho proferido em junho, o então presidente do Supremo Tribunal Federal (STF), ministro Dias Toffoli, negou pedido para redistribuir ao colega Marco Aurélio Mello um habeas corpus apresentado pela defesa de um dos presos na Operação Oversea.

O argumento usado foi o de que, na Corte, os processos relacionados à operação estão sob relatoria da ministra Rosa Weber.

"A cadeia processual de prevenção a justificar a distribuição deste feito pertence à Ministra Rosa Weber, "relatora dos feitos mais antigos referentes à 'Operação Oversea' em trâmite nesta Corte", escreveu Toffoli.

A operação é a mesma que levou à prisão André do Rap em setembro do ano ado. Por analogia, segundo o princípio da relatoria, é aberta a tese de que a ministra é quem deveria ter decidido sobre a liberdade do suposto líder do Primeiro Comando da Capital (PCC). Isso porque o relator é quem deve se manifestar sobre questões urgentes de um processo, tomar decisões monocráticas e levar ao plenário o julgamento de recursos.

A autorização para André do Rap deixar o sistema prisional veio do ministro Marco Aurélio Mello, que atendeu a um pedido da defesa e determinou a soltura. A distribuição por prevenção ao ministro foi sugerida pelos próprios advogados do suposto traficante no habeas corpus.

Na decisão liminar, o ministro afirmou que o prazo para manutenção da prisão preventiva foi esgotado e que a continuidade da medida cautelar era ilegal uma vez que não houve decisão judicial decretando sua renovação nos últimos 90 dias - conforme prevê a legislação desde que foi aprovado o Pacote Anticrime.

A decisão reacendeu uma série de debates de ordem jurídica e legislativa. Primeiro, a revogação da ordem de soltura pelo atual presidente do Supremo Tribunal Federal, ministro Luiz Fux, foi alvo de críticas contundentes por Marco Aurélio. Após ter a decisão derrubada, o ministro acusou Fux de 'autofagia'.

"É lamentável e gera uma insegurança enorme e acaba por confirmar a máxima popular cada cabeça uma sentença", afirmou ao Estadão.

A discussão sobre a possibilidade da prisão após condenação em segunda instância também dá sinais de retomada no Congresso. À CNN, o deputado Fábio Trad (PSD-MS), relator da proposta, afirmou ter recebido mensagens de colegas parlamentares dizendo ser 'a hora de aprovar' a matéria.

Buscas

Após a decisão de Fux que revogou a liminar concedida por Marco Aurélio, o governador São Paulo, João Doria (PSDB), anunciou a criação de força tarefa da Polícia para tentar recapturar André do Rap. Isso porque, antes da decisão do presidente do STF, o suposto traficante, apontado como homem forte do PCC na Baixada Santista e condenado a penas que somam mais 25 anos, deixou a Penitenciária de Presidente Venceslau, no interior paulista, após ar pouco mais de um ano sob custódia. Ele já é considerado foragido pelos investigadores, que suspeitam de uma fuga do País. Antes de ser preso, André do Rap ou cinco anos sendo procurado pela polícia.