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

Sérgio Vieira de Mello Embaixador brasileiro

15/03/1948, Rio de Janeiro

19/08/2003, Bagdá

Da Redação<br>Em São Paulo

25/04/2005 19h01

Atualizada em 17/07/2013, às 11h10

Embaixador brasileiro e Alto Comissário de Direitos Humanos da ONU (Organização das Nações Unidas), Sérgio Vieira de Mello consternou o mundo ao ser morto tragicamente em 19 de agosto de 2003, durante um ataque terrorista contra a sede das Nações Unidas em Bagdá, local a que foi enviado como representante especial do secretário-geral da entidade, Kofi Annan.

Nascido em 15 de março de 1948, no Rio de Janeiro, Sérgio Vieira de Mello ingressou cedo na carreira diplomática, seguindo a profissão de seu pai, que trabalhou na Argentina durante muitos anos. Aos 21 anos, começou a atuar na ONU, conciliando o seu trabalho com os estudos de filosofia na Universidade de Paris, onde morava.

Na entidade, o brasileiro atuou no setor da ONU para refugiados, em Genebra, e serviu em operações humanitárias e de paz por regiões submetidas a conflitos e guerras como em Bangladesh, Sudão, Chipre, Moçambique e Peru.

Conhecido como hábil negociador, Mello se destacou na área humanitária e, em 1981, foi nomeado para o cargo de Conselheiro Político Sênior das forças da ONU, no Líbano. Depois disso, ocupou diversas funções importantes na instituição, como a de diretor de departamento regional para Ásia e Oceania, enviado especial do Alto Comissário ao Camboja e coordenador humanitário da ONU na região dos Grandes Lagos, na África.

Em 1996, Mello foi nomeado Assistente do Alto Comissário da ONU para refugiados e, dois anos depois, assumiu em Nova Iorque o cargo de subsecretário geral para casos humanitários e coordenador de Emergência.

Em Kosovo, assumiu temporariamente a função de representante geral do secretário-geral da entidade. Já no Timor Leste, serviu como transitório da ONU, levando o país à independência e à realização de eleições livres.

Em 12 de setembro de 2002, foi nomeado para o cargo de Alto Comissário de Direitos Humanos da ONU, o mais alto posto da instituição em Direitos Humanos, onde ficaria até 2003. Em junho do mesmo ano, afastou-se da função para assumir como representante especial do secretário-geral, Kofi Annan, para o Iraque. No país, onde aria quatro meses, Mello tinha a missão de trabalhar para restabelecer a tranqüilidade e ajudar o país a construir um governo democrático no pós-guerra.

A sua missão foi interrompida após a explosão de um carro-bomba estacionado em frente ao hotel que servia de sede provisória da ONU no país. Aos 55 anos, o diplomata e outros 21 funcionários foram mortos e cerca de 150 pessoas ficaram feridas no mais violento ataque realizado contra uma missão civil da ONU até aquela época. Atribuído pelos Estados Unidos à rede Al Qaeda, o ataque provocou a retirada dos funcionários estrangeiros do órgão do território iraquiano.

Após o velório no Brasil, o corpo do diplomata foi enterrado no cemitério de Plainpalais, em Genebra. Alguns meses após o atentado, a ONU realizou uma homenagem póstuma, entregando o Prêmio de Direitos Humanos das Nações Unidas àquele que foi um dos mais importantes diplomatas do Brasil e da entidade. Separado, Mello teve dois filhos com sua esposa sa: Laurent e Adrian.

Veja errata