AUDITORIA ELEITORAL — REPRODUÇÃO OFFLINE

1. Descompacte pacote.zip em uma pasta nova.
2. Instale PHP CLI 8.2 ou posterior, com as extensões JSON e hash.
   Não são necessários Composer, CakePHP, banco de dados ou acesso à rede.
3. Nessa pasta execute:

   php reproduzir.php

CONFERÊNCIA NUMÉRICA POR OUTRA IMPLEMENTAÇÃO
Opcionalmente, com Python 3.11 ou posterior, execute:

   python3 conferir_votos.py

Esse programa não importa código PHP: implementa separadamente a leitura
ASN.1, a comparação BU/VSC, as igualdades aritméticas e a soma dos votos.
Exige concordância com a reconstrução publicada. Os checksums do pacote
devem ser conferidos pelo primeiro comando antes dessa segunda análise.

O processo retorna 0 apenas se os hashes do pacote, o inventário, as decisões
por seção e os somatórios forem reproduzidos exatamente. Retorno 1 indica
divergência; retorno 2 indica ambiente incompatível. Preserve toda a saída.
Uma reprodução bem-sucedida pode reproduzir achados reais: consulte as
classificações, não interprete o código 0 como ausência de divergências.

ARQUIVOS
- auditoria.pdf: método, escopo, resultados, conclusões limitadas e referências.
- achados-*.pdf: todos os achados, em volumes de no máximo 50 ocorrências.
- auditoria.json: resumo fixo, versões, escopo e contagens.
- metodologia.json: descrição versionada dos métodos e limites.
- inventario.csv: todas as seções do escopo no corte, inclusive pendentes.
- casos.jsonl: seções com manifesto, índice e histórico preservados no corte.
- observacoes.jsonl: resultados completos da releitura, com trilhas de extração.
- achados.jsonl: todas as divergências, pendências e limitações identificadas.
- bus-analisados.csv: relação COMPLETA dos BUs, URLs originais e de consulta
  no TSE, identificação da seção, hashes, tamanho e indicação de inclusão
  na soma. Os exemplos de fontes no PDF não substituem esta relação completa.
- lacunas.jsonl: ausências de evidências na captura do pacote, se houver.
- runs/: manifestos originais e observações anteriores preservadas.
- objects/: bytes observados dos arquivos, inclusive quando divergentes.
- historico/: relatórios de hash anteriores, quando existentes.
- lib/: cópia exata do código usado para a reprodução.
- referencias/: mapeamento do aplicativo oficial utilizado pelo leitor.
- SHA256SUMS: hashes SHA-256 dos arquivos do pacote; pode ser conferido também
  com sha256sum -c SHA256SUMS em sistemas que ofereçam esse comando.

O nome de objects/ é o digest esperado no descritor da captura. Se a cópia
observada já estava adulterada, seus bytes são preservados nesse caminho para
reproduzir a divergência. O SHA256SUMS contém o digest REAL desses bytes
observados; a diferença para o digest esperado permanece no achado.

Os BUs .dat deste método são decodificados como ASN.1: não são descompactados
como ZIP. A descompactação ZIP desta instrução se refere somente ao pacote
de reprodução preparado pelo nosso aplicativo.

Copie o hash do ZIP apresentado no portal para um meio independente antes
de descompactar. Checksums internos detectam alterações acidentais, mas não
autenticam um pacote cujo conteúdo e lista de hashes foram trocados juntos.
O relatório não possui assinatura de perito nem carimbo de tempo independente.
As assinaturas criptográficas das urnas e a conciliação conclusiva da eleição
permanecem pendentes conforme as limitações indicadas no documento.
