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

Moro: Bolsonaro deve usar Congresso e evitar saídas como a de André do Rap

O ex-ministro da Justiça, Sergio Moro, defende que pacote anticrime seja revisado pelo STF ou pelo Congresso Nacional - Marcos Oliveira/Agência Senado
O ex-ministro da Justiça, Sergio Moro, defende que pacote anticrime seja revisado pelo STF ou pelo Congresso Nacional Imagem: Marcos Oliveira/Agência Senado

Do UOL, em São Paulo

12/10/2020 19h11

O ex-ministro da Justiça, Sergio Moro, declarou hoje que o presidente Jair Bolsonaro (sem partido) deve aproveitar "controle maior" sobre o Congresso Nacional para alterar o pacote anticrime e, assim, evitar solturas como a de André Oliveira Macedo, 43, o André do Rap, acusado de ser um dos chefes do PCC (Primeiro Comando da Capital).

"O presidente hoje tem um contato mais próximo com o Parlamento, tem um controle maior do Parlamento, e penso que poderia, fica aí uma sugestão, utilizar o poder e a popularidade para rever essas pautas", declarou Moro em entrevista à Globonews.

Moro afirmou que o pacote de lei foi criado para "endurecer" combate à criminalidade e que a Câmara dos Deputados retirou uma série de dispositivos que ele considerava essenciais. Após a soltura de André do Rap e a repercussão em torno do tema, o ex-ministro defende que a lei seja revista.

Na pratica tem efeito ruim no enfrentamento à criminalidade. Mais importante que discutir se a culpa é de x ou y é para discutir a revisão da lei pelos tribunais
Sergio Moro

O ex-juiz declarou que evita "colocar responsabilidade aqui e ali" e credita a lei a um processo coletivo, com sanções no legislativo e no executivo. Questionado sobre quais motivos levaram Bolsonaro a não vetar as alterações do Congresso, Moro disse que prefere "olhar para frente".

Eu quero olhar para frente, aqui, em relação a essas questões. Estou na minha fase paz e amor em relação a esses temas
Sergio Moro

"A pessoa que já foi julgada, foi julgada. Para isso ela recorre... A demora a a ser do interesse da defesa, que tem interesse na revisão", declarou.

O caso André do Rap

André deixou a penitenciária de Presidente Venceslau, no interior de São Paulo, na manhã de sábado (10), após o ministro do STF (Supremo Tribunal Federal), Marco Aurélio Mello, acatar dois pedidos de habeas corpus e determinar sua soltura.

Segundo a liminar do ministro, André do Rap estava preso sem uma sentença condenatória definitiva, excedendo o limite de tempo previsto na legislação brasileira.

A decisão foi suspensa pelo presidente da Corte, Luis Fux, na noite de sábado. Fux atendeu pedido da PGR (Procuradoria-Geral da República), que argumentou que a liminar violava a ordem pública. Em despacho, ele disse que André era um preso de "altíssima periculosidade, com dupla condenação em segundo grau por tráfico transnacional de drogas, investigado por participação de alto nível hierárquico em organização criminosa (Primeiro Comando da Capital - PCC) e com histórico de foragido por mais de 5 anos".

O colunista do UOL, Josmar Jozino, apurou que André fugiu para fora do país na noite de sábado. Ele prometeu às autoridades ir para casa, no Guarujá, litoral paulista, após deixar o presídio. No entanto, investigadores afirmaram que ele seguiu de carro para Maringá, no Paraná — a suspeita é que ele tenha embarcado em um avião particular até o Paraguai.