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

'Eu amo Hitler': Kanye West intensifica sua retórica antissemita

De Splash, em São Paulo

01/12/2022 19h35

O rapper americano Kanye West declarou, nesta quinta-feira (1º), seu "amor" pelos nazistas e sua iração por Adolf Hitler durante uma transmissão ao vivo de várias horas com o teórico da conspiração Alex Jones.

"Eu amo Hitler", disse o artista, que atende pelo nome de Ye, em uma longa e em alguns momentos confusa entrevista da qual também participou o supremacista branco Nick Fuentes e transmitida pelo portal infowars.com.

"Eu amo os judeus, mas também amo os nazistas", disse o músico. "Não gosto de ver a palavra 'maldade' ao lado de nazistas", insistiu.

O cantor, que planeja se candidatar à Presidência dos Estados Unidos em 2024, apareceu com o rosto coberto por uma máscara preta, uma jaqueta de couro e luvas pretas.

"Eu enxergo coisas boas sobre Hitler também", disse Ye, que há meses tem ganhado manchetes por seus comentários antissemitas.

"Amo todo mundo", continuou. "Não posso dizer que essa pessoa [Hitler] que inventou as estradas e os microfones que uso como músico não fez nada de bom".

"Cada ser humano tem algo valioso que trouxe para a mesa, especialmente Hitler", acrescentou.

Os repetidos elogios de Ye causaram atrito com Jones, que, conhecido por suas posições extremas, preferiu se distanciar dizendo que "os nazistas fizeram coisas realmente ruins".

"Eu sou um nazista", chegou a afirmar o cantor para Jones, que respondeu: "você está dobrando sua aposta".

Ye e Fuentes se encontraram recentemente com o ex-presidente Donald Trump para um jantar que foi questionado por alguns líderes do Partido Republicano.

Poucos dias antes, Trump foi aplaudido de pé pela Coalizão Republicana Judaica, que realizou seu encontro anual em Las Vegas.

Mas, nesta quinta-feira, a Coalizão emitiu um comunicado que, sem mencionar diretamente Trump, condenou Ye e instou aqueles que ainda o apoiam a se distanciarem do artista.

"Devido aos seus elogios a Hitler, não é exagero que Kanye West seja um intolerante vil e repulsivo que atacou a comunidade judaica com ameaças e difamações no estilo nazista", disse o comunicado.

"Os conservadores que erroneamente apoiaram Kanye West devem deixar claro que ele é um pária. Já chega", acrescentou o texto.

Os comentários antissemitas e racistas custaram a Ye negócios lucrativos este ano com marcas como Adidas e GAP.