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

Greca diz que não há manual para pandemia e compara Curitiba à Europa

Colaboração para o UOL, em São Paulo

16/10/2020 10h48

O prefeito de Curitiba e candidato à reeleição, Rafael Greca (DEM), disse que o "vai e volta" de decretos liberando e fechando o comércio durante a pandemia do novo coronavírus na capital paranaense é algo que aconteceu em todo o mundo.

"Não pretendo ser melhor do que o resto do mundo", disse durante sabatina do UOL, em parceria com a Folha de S.Paulo, transmitida hoje. "A pandemia não tem manual, nós vamos calibrando e ajustando as coisas dentro das necessidades."

"Não troco votos por vidas, o vaivém [da reabertura] afligiu a senhora [Angela] Merkel, na Alemanha, o primeiro-ministro da Inglaterra, sua santidade o papa Francisco e o primeiro-ministro da Itália, ou da Espanha ou de Portugal", disse Greca às repórteres Ana Carla Bermúdez, do UOL, e Katna Baran, da Folha.

Educação pós-pandemia

Sobre o acréscimo de alunos da rede particular de ensino para rede pública de Curitiba, o prefeito afirmou "não ter problema com isso".

"Nós não temos medo dos alunos que vêm da rede particular, temos 145 mil alunos, agora 147 [mil], 150 mil, não temos problema, temos vagas na educação infantil e na educação regular sobrando", disse o atual prefeito. "A pandemia não é o caos, do ponto de vista educacional", disse.

Ele afirma que a secretária de educação já montou um programa pedagógico para recuperação deste ano, que chamou de "singular".

Segundo o candidato, no próximo ano, as aulas até o 9º ano terão conteúdo do ano letivo, com acréscimo do conteúdo do ano anterior, para recuperar o ensino do aluno que condizia com o ano de 2020.

"Recapitulação do ano da pandemia, e o ano novo que vai nascer", disse.

Sobre a volta às aulas, ele afirma não ter ansiedade, mas não foi claro se a retomada das aulas presenciais estaria condicionada à vacina.

"Não tenho pressa de abrir as escolas, não tenho cara de Herodes, não vou matar inocentes", disse

Já ganhou?

Líder da última pesquisa Ibope com 47% das intenções de voto, Greca disse que está trabalhando para não haver segundo turno.

Questionado se já considera que ganhou, disse que, aos 64 anos, ninguém faz oba-oba. "Mas, a cada dia que a, o tempo dos meus adversário é menor."

Transporte público e subsídio

Uma das propostas do atual prefeito, para seu governo em curso, era o fim do subsídio à agem de ônibus.

Sobre o assunto, Greca afirmou que "se teve uma ilusão sobre viver sem subsídio, hoje já não tem".

"Nós vamos continuar com crença no BRT, no transporte coletivo", disse. "Eu fujo da tentação de satanizar as empresas de ônibus", completou.

Questionado sobre reclamação do setor de transporte público sobre fuga de ageiros, Greca afirmou: "A pandemia, de fato, diminuiu o número de ageiros por dia e criou um desequilíbrio nos contratos de transporte coletivo".

Para 2021, Greca falou sobre a implementação de ônibus elétricos e terminais integrados a aplicativo que informará os melhores modais e rotas.