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

Banco Mundial: caos do RJ deve se repetir em mais Estados na próxima década

Marina Lang

Colaboração para o UOL, no Rio

11/12/2017 14h40

A situação das contas públicas do Brasil é preocupante, e a situação de calamidade financeira do Rio de Janeiro deve se repetir nos demais Estados na próxima década. O prognóstico foi feito pelo economista Heinz Rudolph, líder do Banco Mundial para o setor financeiro.

Ele participou de evento no Rio de Janeiro, nesta segunda-feira (11), para discutir o relatório "Um Ajuste Justo – Análise da Eficiência e Equidade do Gasto Público no Brasil", lançado há duas semanas pelo Banco Mundial.

Segundo Rudolph, iniciativas como a reforma da Previdência são temas urgentes para mudar essa situação. Ele afirmou que o governo federal deveria encabeçar uma discussão para definir quem ficará responsável pelo rombo nas Previdências estaduais. "Se é um problema de cada Estado ou do governo federal", disse.

Leia também:

Propostas 

O estudo do Banco Mundial afirma que os salários dos servidores estaduais "encontram-se entre os mais altos do mundo".

Como medidas para melhorar a situação, o economista sugeriu desvincular o benefício mínimo pago pela Previdência do valor do salário mínimo. Também defendeu mudanças no piso salarial dos professores, que é estipulado pelo governo federal, mas tem impacto direto nas contas dos Estados.

Rudolph propõe, ainda, mudar a forma como o país lida com a aposentadoria rural e o Benefício de Prestação Continuada (BPC) --que paga um salário mínimo mensal a idosos e pessoas com deficiência carentes. Segundo ele, deveriam ser considerados programas de assistência social, e não benefícios da Previdência.

Segundo o Banco Mundial, com essa mudança, "os benefícios seriam mais dirigidos aos indivíduos que carecem de apoio, e também seria mais fácil reduzir a acumulação de benefícios, inclusive as pensões por morte e o 13º benefício mensal".

Ministro da Fazenda ausente e protestos

O ministro da Fazenda, Henrique Meirelles, era um dos palestrantes previstos na agenda do evento, que ocorreu na FGV (Fundação Getúlio Vargas) do Rio. Entretanto, cancelou sua participação para cumprir agenda com o presidente Michel Temer (PMDB).

Cerca de 40 pessoas protestavam em manifestação contra a Reforma da Previdência na porta da instituição na manhã de hoje.