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

China libera carne brasileira que estava em porto local, mas embargo segue

Viviane Taguchi

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

26/10/2021 19h48

Autoridades do porto de Xangai, na China, liberaram nesta terça-feira (26) um lote de carne bovina brasileira que estava armazenado no local desde o dia 15 de outubro, informou Conrado Beckerman, importador ligado à consultoria Agrifatto, em depoimento ao podcast da empresa.

Segundo ele, o lote era originário de um frigorífico de Tocantins, e havia sido certificado no dia 26 de agosto no Brasil, dias antes do embargo da China à carne brasileira, que aconteceu no dia 4 de setembro. O lote foi embarcado para a Ásia no dia 10 de setembro. A liberação desse lote não significa que o embargo chinês para a carne brasileira tenha terminado. Ele continua valendo. A exportação de carne do Brasil para a China está suspensa desde o início de setembro.

Desde o embargo, a liberação dos lotes de carne bovina nos portos chineses estava totalmente paralisada. Segundo o importador, esse pode ser um sinal de que outros lotes que estão armazenados em portos chineses possam ser liberados nos próximos dias.

"É uma especulação ainda, pode ser um sinal verde no porto de Xangai", disse. "É de um frigorífico em que intermediamos a importação, não sabemos a situação de outros frigoríficos".

Segundo a Agrifatto, três frigoríficos brasileiros já receberam notificações das autoridades chinesas para enviar documentações relacionadas aos lotes que estão parados no porto de Xangai, em torno de 300 mil toneladas.

De acordo com a empresa, essas solicitações são referentes a lotes de carnes que foram certificados para a exportação no Brasil antes do embargo e embarcados em navios para a China após o dia 4 de setembro.

Conrado Beckerman, no podcast, ainda comentou que essas solicitações estão ocorrendo apenas em Xangai e não nos demais portos, como em Tianjin ou Ningbo, os principais para o recebimento de carne. "Até agora, foi o único porto autorizado a liberar os lotes que estavam armazenados".

O Ministério da Agricultura, Pecuária e Abastecimento (Mapa), informou na tarde desta terça-feira, por email, que não tinha informações formais a respeito das liberações de lotes de carnes brasileiras no porto de Xangai.