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

Programa para morar em Dubai inclui direito à vacina; saiba os requisitos

Turista observa Dubai - Getty Images
Turista observa Dubai Imagem: Getty Images

De Nossa

19/05/2021 16h54

Em 2020, Dubai lançou um programa de intercâmbio personalizado para atrair nômades digitais para residir no emirado. Agora, um novo atrativo somou-se à série de benefícios já previstos na iniciativa: o direito à vacina contra a covid-19.

O programa permite que nômades digitais e suas famílias tenham a oportunidade de morar por um ano em Dubai enquanto trabalham para empresas de seu país de origem.

Entre os atrativos listados pelo órgão de divulgação da iniciativa estão as vantagens da infraestrutura digital (classificada como a melhor do mundo na última pesquisa Digital Quality of Life — DQL) e conectividade do emirado, do estilo de vida seguro e das oportunidades de networking global. Também faz brilhar os olhos dos candidatos a possibilidade de imposto de renda zero.

Durante a pandemia, Dubai e os Emirados Árabes Unidos foram reconhecidos por estabelecer um modelo global para lidar com a covid-19. E isso virou um novo chamariz para o programa. Como todas as pessoas com cartão de residente automaticamente têm direito à vacina, os nômades digitais aprovados na seleção também entram nesse grupo.

O programa custa US$ 287 (cerca de R$ 1.525), além do seguro médico com cobertura válida nos Emirados Árabes Unidos e taxa de processamento por pessoa. Para se inscrever, os candidatos precisam ter:

  • aporte com validade mínima de 6 meses;
  • Plano de saúde com cobertura nos Emirados Árabes Unidos;
  • Comprovante de emprego com validade de contrato de um ano. O salário mensal mínimo exigido para a inscrição é de US$ 5.000. É necessário apresentar o contracheque do mês anterior e dos três meses seguintes;
  • Se o inscrito for proprietário de uma empresa, é necessário apresentar um comprovante de propriedade da empresa por um ano ou mais, com uma renda média mensal de US$ 5.000 por mês, e extratos bancários dos três meses anteriores.

A inscrição on-line está disponível no site da Visit Dubai.