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

Rubens Valente

Governo federal associa eio de Bolsonaro no DF ao "direito de ir e vir"

Bolsonaro caminha em Ceilândia (DF) no último domingo (29) - Foto: Marcos Pereira/ Estadão
Bolsonaro caminha em Ceilândia (DF) no último domingo (29) Imagem: Foto: Marcos Pereira/ Estadão

Colunista do UOL

31/03/2020 17h37

Em ofício encaminhado à Justiça Federal de Duque de Caxias (RJ) nesta terça-feira (31), o governo federal associou o eio do presidente Jair Bolsonaro no último domingo, que provocou a aglomeração de pessoas em cidades-satélites no Distrito Federal, ao "direito de ir e vir do Chefe do Executivo".

O ofício é assinado pelo procurador-regional da União na 2ª Região, Carlos Eduardo Possidente Gomes, e por João Paulo Lawall Valle, ambos advogados da União. Foi direcionado ao juiz federal Márcio Santoro, que havia dado um prazo máximo de 24 horas para que a União se manifestasse a respeito um pedido do Ministério Público Federal.

O procurador da República em São João do Meriti (RJ) José Julio Araujo solicitou na segunda-feira (30) que a União fosse multada em R$ 100 mil depois que Bolsonaro perambulou pelo comércio de várias cidades-satélites neste domingo (29), conversando com pessoas de muito perto e atacando a política de isolamento social preconizada pela OMS (Organização Mundial de Saúde).

Bolsonaro também postou os vídeos na rede social Twitter, que depois exclui dois deles. O procurador citou o item 4 da decisão do juiz federal, que havia determinado que a União e o município se abstivessem "de adotar qualquer estímulo à não observância do isolamento social recomendado pela OMS e o pleno compromisso com o direito à informação e o dever de justificativa de atos normativos e medidas de saúde, sob pena de multa de R$ 100 mil".

Sobre o que chamou de "caminhada" no domingo - na verdade Bolsonaro se deslocou em carro oficial -, os advogados da União argumentaram que ela "não configurou descumprimento da decisão liminar proferida por este juízo federal". "Eventual entendimento no sentido contrário representaria limitação ao direito de ir e vir do Chefe do Poder Executivo em contrariedade com a Constituição Federal."

Os advogados da União nada falaram sobre as publicações de Bolsonaro em rede social e a entrevista concedida na frente do Palácio da Alvorada.

No mesmo ofício, os representantes do governo afirmaram que "não ocorreu qualquer mudança da política pública de isolamento social, conforme explicitado pelo senhor ministro da Saúde [Luiz Mandetta] na coletiva de imprensa realizada no dia 30 de março de 2020". Segundo o ofício, "foi claramente informado alinhamento entre a atuação do Ministério da Saúde e as evidências técnicas-científicas existentes".

"A posição oficial pode ser colhida em breve consulta ao site do referido ministério (https://saude.gov.br/) bem como nas entrevistas coletivas diárias visando manter a sociedade em elevado grau de informação."

A partir da resposta encaminhada pela União, o juiz federal decidirá sobre o pedido de multa de R$ 100 mil feito pelo MPF. A Procuradoria também pediu a majoração do valor para R$ 500 mil na próxima multa.