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

UOL Confere

Uma iniciativa do UOL para checagem e esclarecimento de fatos


É falso que QR Code em título de eleitor transfira voto ou contenha fraude

17.ago.2022 - Códigos de validação são gerados de forma aleatória e sem interferência humana - Arte/UOL sobre Reprodução Facebook
17.ago.2022 - Códigos de validação são gerados de forma aleatória e sem interferência humana Imagem: Arte/UOL sobre Reprodução Facebook

Do UOL, em São Paulo

17/08/2022 18h00

São falsas as publicações nas redes sociais que sugerem que o QR Code dos novos títulos de eleitor venha propositalmente com o número e o nome do candidato do PT à presidência, Luiz Inácio Lula da Silva, ou que sirva para transferir votos ou promover qualquer fraude. As combinações numéricas que acompanham o QR Code são emitidas de forma aleatória.

O que dizem as publicações?

Há várias versões sobre o mesmo tema. Uma delas é um áudio de uma mulher que afirma que está escrito L13 no código de seu título e insinua a possibilidade de transferência de votos:

"É aí que está o golpe. Na hora que for ar lá na hora da votação já sai o número do Lula."

Uma outra versão orienta os eleitores a procurarem a polícia e cita a possibilidade de fraude, sem dizer qual seria.

"A FRAUDE DO TSE COM OS NOVOS TÍTULOS DE ELEITOR. Quem tirou o título de eleitor recentemente, recebeu uma tira de papel com seus dados. Nesta tira há um QR-code. Segundo vários eleitores, neste QR-code vem o nome de Lula e o número 13. São eleitores de várias regiões do Brasil. Verifique seu título e faça um Boletim de Ocorrência contra a quadrilha do TSE".

As publicações confundem o QR Code com o código de validação, que são elementos diferentes, com a mesma função.

Os códigos influenciam o voto? Não. O QR Code e o código de validação do título de eleitor não têm relação nenhuma com a urna eletrônica ou o voto. A apresentação do título nem é obrigatória para votar no dia da eleição. Basta apresentar um documento oficial com foto, que pode ser uma identidade, carteira de motorista, certificado de reservista, carteira de trabalho, aporte ou identidade funcional emitida por órgão de classe.

Para que o QR Code serve? Para comprovar que um título de eleitor é verdadeiro. O código de validação, que também consta no documento, tem a mesma finalidade: provar que não se trata de uma falsificação. Os códigos são gerados de forma randômica e automática, sem interferência humana.

Em nota, o TSE afirma:

"O QR Code no título de eleitor é uma função incorporada em virtude das atualizações tecnológicas, como ocorreu com a carteira nacional de habilitação, por exemplo. Esse código serve apenas para autenticar o documento na Justiça Eleitoral. Ou seja, ao ler o QR Code tanto no aplicativo e-Título como no título impresso, o que vão aparecer são os dados pessoais do eleitor e as informações sobre local de votação".

É possível fazer a comprovação pelo site do TSE, que exige número do título, data e hora da emissão do documento e o código de validação.

Novos títulos. O QR Code começou a ser usado na nova versão dos títulos de eleitor. Impressa em papel comum, ela está disponível desde 2019 nos cartórios eleitorais e cumpre uma resolução aprovada pelo plenário do TSE em dezembro de 2017. Desde março deste ano, os próprios eleitores podem imprimir o documento em casa, pelo autoatendimento no site do TSE.

O UOL Confere é uma iniciativa do UOL para combater e esclarecer as notícias falsas na internet. Se você desconfia de uma notícia ou mensagem que recebeu, envie para [email protected].