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

Em nova disputa com Doria, Bolsonaro critica ButanVac: 'Mandrake de SP'

Do UOL, em São Paulo

22/04/2021 20h35Atualizada em 23/04/2021 14h23

O presidente Jair Bolsonaro (sem partido) voltou a provocar o governador de São Paulo, João Doria (PSDB), ao atacar a vacina contra a covid-19 que está sendo desenvolvida pelo Instituto Butantan, chamada de ButanVac. Bolsonaro ironizou o fato de o imunizante usar uma tecnologia desenvolvida por um hospital nos Estados Unidos para o vetor viral — e que, por isso, a ButanVac não seria "100% brasileira".

"Vamos lá, Marcão. Como é que está nossa vacina brasileira? Essa é 100% brasileira, não é aquela 'mandrake' de São Paulo, não, que tinha os Estados Unidos no meio. Essa é 100% brasileira. Como ela está, qual o nome dela?", questionou o presidente durante sua live semanal, dirigindo-se ao ministro da Ciência e Tecnologia, Marcos Pontes.

No fim de março, quando veio à tona a notícia de que a ButanVac usaria tecnologia americana, o Butantan explicou que o desenvolvimento da vacina será, sim, "100% nacional", e que a parceria com o Hospital Mount Sinai, de Nova York, é livre do pagamento de royalties e pode ser feita "por qualquer instituição de pesquisa em qualquer parte do mundo".

Já a "vacina brasileira" à que Bolsonaro se referiu é a Versamune MCTI, desenvolvida em Ribeirão Preto (SP) sob coordenação do Ministério de Ciência e Tecnologia. De acordo com Marcos Pontes, o imunizante usará tecnologia nacional, e os testes clínicos de fase 1 e 2 estão próximos de começar.

"Ela [a vacina] já deu entrada na Anvisa [Agência Nacional de Vigilância Sanitária] para os testes clínicos com pacientes. Serão 360 pacientes, para essa primeira fase, fases 1 e 2, onde se testa a segurança da vacina, e logo depois [vem] a fase 3 para testar a eficiência. Nossa ideia é que até o final do ano tenhamos uma abertura dos testes [da fase 3], como foi feito com CoronaVac, por exemplo, e nós possamos ter essa vacina entrando no mercado neste ano", anunciou o ministro.

Pontes disse ainda que o maior desafio agora é o orçamento. Somente para as fases 1 e 2, serão necessários R$ 30 milhões; para a fase 3, que terá 25 mil pacientes, o custo sobe para R$ 310 milhões.

"[Mas] Esse custo é um investimento muito bom para o país", argumentou. "Tenho esperança agora de que isso entre no orçamento. Vamos lembrar que temos o FNDCT [Fundo Nacional de Desenvolvimento Científico e Tecnológico], que foi promulgado, e esse orçamento precisa efetivamente entrar para que possamos usá-lo não só nesse projeto, mas em outros, como remédios nacionais."

Doria vê "obsessão"

Mais cedo, em entrevista publicada no jornal Valor Econômico, Doria disse acreditar que Bolsonaro tem uma "obsessão doentia" por ele e que o Brasil hoje é governado por um "psicopata".

"Os meus planos hoje são de fazer boa gestão como governador, priorizando a saúde. É o bom senso de compreender o que é prioridade. Bolsonaro não me esquece, acorda e dorme pensando em mim, é uma obsessão doentia, essa fixação no João Doria e na calça do João Doria, a 'calça apertada' do João Doria. Vai ver que ele gosta", alfinetou o governador paulista.

Ao ser questionado se o negacionismo de Bolsonaro tem razões políticas, Doria diz que acredita que sejam tanto ideológicas quanto psiquiátricas. O governador voltou a dizer que o Brasil tem um presidente "psicopata" e declarou que gostaria do parecer de uma junta médica para saber qual é o "nível de loucura".

A troca de farpas entre Bolsonaro e Doria se intensificou após a ampliação das medidas de combate da covid-19, como a vacinação e as restrições impostas ao funcionamento do comércio não essencial. Apesar da atual animosidade, o presidente contou com o apoio do governador nas eleições de 2018.