;(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
Logo Pagbenk Seu dinheiro rende mais
Topo

Criticado por Guedes, FMI diz que fechará escritório no Brasil em 2022

Criticado pelo ministro da Economia Paulo Guedes, FMI diz que fechará escritório no Brasil em 2022 - Mateus Bonomi/AGIF/Estadão Conteúdo
Criticado pelo ministro da Economia Paulo Guedes, FMI diz que fechará escritório no Brasil em 2022 Imagem: Mateus Bonomi/AGIF/Estadão Conteúdo

Do UOL, em São Paulo*

16/12/2021 09h29Atualizada em 16/12/2021 11h33

O FMI (Fundo Monetário Internacional) informou que fechará o seu escritório em Brasília até 30 de junho de 2022, quando termina o prazo da atual representação. O encerramento das atividades acontece após críticas do ministro da Economia, Paulo Guedes, por divergências em relação a projeções econômicas.

Em nota, o FMI disse esperar que o envolvimento de seu corpo técnico e de autoridades brasileiras continue. Ontem, Guedes assinou a medida para o fechamento da missão do FMI no Brasil.

Durante evento na sede da Fiesp (Federação das Indústrias do Estado de São Paulo), o ministro voltou a criticar a atuação do FMI e do ex-presidente do Banco Central, Ilan Goldfajn, que assumiu o cargo de diretor do FMI para o Hemisfério Ocidental. Segundo Guedes, as previsões "erradas" do FMI sobre a recuperação econômica do Brasil influenciaram a decisão de dispensar a missão.

O ministro acrescentou que o FMI se instalou no Brasil quando o país precisava de assistência para controlar o Orçamento e câmbio. Para Guedes, a permanência não é mais necessária: "Ficaram porque gostam, feijoada, jogo de futebol, conversa boa... E de vez em quando criticar um pouco e fazer previsão errada", disse.

Guedes rebate "críticas" do FMI

Além de comentar o encerramento da missão do FMI no Brasil, Guedes rebateu críticas que, segundo ele, teriam sido feitas à economia brasileira por Ilan Goldfajn. Há algum tempo, o ministro tem se empenhado em desqualificar as previsões do FMI.

Em seu discurso no evento da Fiesp, Guedes criticou a entidade pela previsão de queda de 10% do PIB do Brasil em 2020 e recuo de 4% para a economia inglesa. No fim, segundo ele, a economia brasileira caiu 4% e a inglesa, 9,2%.

"Que eles vão fazer as previsões deles em outro lugar", disparou. "Eu não li a reportagem, mas fiquei sabendo das críticas de um ex-presidente do Banco Central. Eu vou falar, é o Ilan Goldfajn. Ele é um amigo, mas em época de política todo mundo critica e o Ilan também tem o direito de criticar. Mas já que tem um brasileiro que critica o Brasil indo para o FMI, ele não precisa mais ficar aqui".

O ministro reconheceu que o próximo ano será difícil para o Brasil, mas, segundo ele, não é "para jogar a economia brasileira para baixo". Ele citou a renovação dos marcos regulatórios como um dos elementos que vão contrabalançar a desaceleração da economia em 2022.

Segundo ele, a medida assegura investimentos de R$ 700 bilhões em 10 anos, ou R$ 70 bilhões por ano a partir de 2022.

*Com informações da Reuters e Estadão Conteúdo