Uma investigação matemática de como falsas eleições para governador em Primorye em 16 de setembro de 2018

No segundo turno das eleições do governador de Primorsky Krai, em 16 de setembro de 2018, a pessoa em exercício se reuniu O governador Andrei Tarasenko e o comunista Andrei Ishchenko, vice-campeão no primeiro turno. Durante a contagem de votos, um painel de informações com um número crescente de protocolos processados ​​e votos para os candidatos foi exibido no site da CEC RF.

A publicação de dados detalhados das parcelas no site oficial da CEC www.izbirkom.ru congelou após a inserção de 1484 (95,74%) protocolos e não foi retomada até o final. Portanto, quando na transmissão o líder da votação mudou repentinamente de Ishchenko para Tarasenko, não ficou claro exatamente como isso poderia acontecer. A mídia simplesmente escreveu "depois de processar 99,03% dos protocolos, o líder mudou ".

No entanto, com os dados resumidos intermediários do painel, usando matemática e programação simples, você pode determinar em detalhes o que exatamente aconteceu com os protocolos na noite após a eleição. Usamos Python, Colab, do Google, e o provador de teoremas Z3, da Microsoft Research. Bem, terminaremos tudo com dedução comum.



Antecedentes da investigação e estimativas preliminares


O número de protocolos é um parâmetro inteiro


Muitas vezes você pode ver na mídia "Estes são os dados da CEC após o processamento de 90% dos votos, informa a Interfax " ou " 0,45% dos votos processados ​​no Primorye: Tarasenko lidera ". É claro que os jornalistas ficam confusos com a representação do progresso do parâmetro inteiro na forma de porcentagens e, em vez de " processar 0,45% das cédulas " (ninguém sabe quantas cédulas estão até o final do cálculo), você precisa escrever de forma simples e clara - 7 protocolos de 1550 foram inseridos no sistema.

Dados abertos disponíveis


  1. Várias dezenas de assembleias de voto mostraram comparecimento inadequado nas últimas 2 horas da eleição, o que é estatisticamente improvável, imediatamente chamou a atenção e um site foi criado com uma lista dessas comissões suspeitas.

    Distribuição do número de eleitores por hora, fonte - Eleições GAS
  2. Sabe-se como o número de votos para candidatos e a porcentagem de protocolos processados ​​mudaram, inclusive no período em que o site do CEC com dados detalhados parou de ser atualizado, ou seja, de 95,74% para os 99,16% finais, os dados foram publicados na transmissão do CEC e reimpressos na mídia
  3. Pelo menos 29 protocolos em papel de observadores foram publicados com dados diferentes dos dados finais no site de eleições do GAS .
  4. No sistema GAS Eleição por links do formulário ... & version = 1 , as versões iniciais dos protocolos para 19 seções estão disponíveis. Esta lista se sobrepõe parcialmente à lista acima de 29 protocolos em papel: 13 sites diferem, que foram alterados no CEO. Ou seja, todos envolvidos nas mudanças - 29 + 19 - 13 = 35 sites
  5. O GAS também encontrou 13 protocolos ocultos nas assembleias de voto, onde as eleições foram canceladas devido à visita de bombeiros à comissão territorial de eleições do distrito de Sovetsky, em Vladivostok.
  6. Antes do cancelamento da eleição, os links para os resultados primários eram cobertos no nível do servidor, agora o link que contém o parâmetro version sempre mostra um erro do servidor (exemplo) para todas as seleções, mas os protocolos ainda estão disponíveis por meio de um link ligeiramente modificado com v substituído por % 76 (exemplo )
  7. Às 07:46 da manhã de segunda-feira 17 de setembro (horário local está em todo lugar no artigo, GMT + 10), um especialista em estatística eleitoral S. Shpilkin começou a salvar dados do site do CEC a cada 5 minutos , e esses dados mostram como os últimos foram carregados às 13:45 53 protocolos

O que pode ser visto em dados abertos


Substituímos as porcentagens confusas por um número inteiro de protocolos e examinamos a tabela de dados conhecidos publicada no site e na transmissão de vídeo do CEC.


Dados oficiais (com falsificações)

A coisa mais simples que pode ser vista é em que estágios o que aconteceu com os protocolos, cujas versões em papel diferem das oficiais.


Como os números dos diferentes protocolos são conhecidos, analisando os dados em 95,74% e 99,16%, você pode entender o que aconteceu com cada um dos 29 protocolos diferentes do CEO. Acontece que 16 protocolos foram inseridos no CEO imediatamente com os números errados e, em seguida, não foram tocados, e 13 foram inseridos corretamente e somente depois editados. Dos 19 protocolos corrigidos pelo CEO para 13, há varreduras de versões em papel no público, por isso temos duas provas de edição dos resultados. As 6 edições restantes estão presentes apenas no CEO.

Veja quem venceu a eleição

Oficialmente derrotou Tarasenko. No CEO e nos protocolos - Ishchenko. plot.ly

Ischenko venceu com uma pontuação de 249.845 (51,1%) contra 226.637 (46,4%). Reescrevendo os protocolos, os votos de Ishchenko foram reduzidos em 402, os votos de Tarasenko aumentaram em 15.077. Com as correções dos protocolos no CEO, os votos de I. foram reduzidos em 954, T. - foram aumentados em 14.894. O efeito total dos dois tipos de falsificações na diferença de votos foi de 31 327. O efeito de ocultar 13 seções Vladivostok, a quantidade de votos é muito pequena, nesses protocolos seus resultados totais são próximos - 2 939 para o comunista contra 3 408 para o Rússia Unida.

Se você contar com as parcelas, o comunista venceu inicialmente em 908 parcelas, a Rússia Unida em 628 e um empate em 14 parcelas. Ou seja, em termos de número de sites, é claro, o comunista venceu significativamente. Das 35 edições reescritas em 9 seções, a edição levou ao fato de que o vencedor foi substituído pelo Rússia Unida, nos 26 restantes, a Rússia Unida venceu. Ou seja, a falsa vitória do Rússia Unida foi conquistada em 637 assembleias de voto contra 899 para o comunista.

Também é interessante notar que os protocolos editados pelo CEO foram introduzidos inicialmente de acordo com o protocolo do artigo. No entanto, a julgar pelos números anômalos (especialmente para as seções 2812 e 2863 ), quase todas as comissões da Ussuriysk, cujos resultados foram regidos pelo CEO, também emitiram inicialmente um protocolo falsificado, que simplesmente não foi corrigido. Isso é lógico, o segundo crime costuma ser para quem lidou com o primeiro. Mas a contabilização desses sites e a tentativa de avaliar estatisticamente com mais precisão o resultado não são fornecidas neste artigo, pois mesmo métodos rigorosos permitem ver a vitória do comunista, e as estatísticas, embora aumentem a separação do comunista, são menos convincentes devido à sua natureza probabilística.

Como o protocolo o reescreve e edita no CEO
A reescrita do protocolo é detectada pela diferença entre o protocolo do observador e o do CEO.



E a edição é visível simplesmente como duas versões no CEO com números diferentes.

Curiosamente, a porcentagem do candidato é calculada a partir do número de eleitores na versão mais recente do protocolo

Sites com 100% de candidatos
Também é visto pelos dados finais que existem 8 pequenas parcelas com um resultado de 100% para Ishchenko e 45 com 100% para Tarasenko, 42 das quais são navios e 3 são aldeias próximas a Ussuriysk.

Sites com resultado 100% candidato: 122 votos para o comunista e 1874 para o partido Rússia Unida. "Jogo de um gol"

As preocupações estatísticas estão documentadas
Absolutamente todos os sites suspeitos de estatísticas (números de participação implausíveis nas últimas 2 horas) foram posteriormente documentados; também com a ajuda de documentos, vários sites adicionais foram encontrados. Não houve um único resultado falso positivo na detecção de falsificadores por métodos estatísticos. É verdade que, de acordo com a PEC 2809, o documento não é o protocolo em si, mas uma declaração à polícia sobre a recusa em emitir o protocolo.

Investigação


Eu estava interessado no fato de que cada um dos métodos acima de falsificação - reescrever protocolos e editar no CEO - não era suficiente individualmente para o roubo da vitória. Gostaria de saber como os métodos foram aplicados, simultaneamente ou seqüencialmente . Um texto adicional é dedicado a um estudo detalhado desta questão.

Na verdade, a idéia é essa: existe um conjunto de dados inteiros (o número de votos dos candidatos nas pesquisas) e seus subtotais (dados do painel de informações da CEC). Isso possibilita, através de uma pesquisa combinatória simples de todas as opções, descobrir exatamente quais áreas foram inseridas ou alteradas em que momento. Por exemplo, 1 protocolo foi introduzido, o número de votos comunistas aumentou em X, o número de votos da Rússia Unida - por Y. Classificamos todos os protocolos e procuramos onde temos 1 protocolo com X para o comunista e Y para a Rússia Unida. Obviamente, basta classificar os números finais dos protocolos, não podemos encontrar 4 protocolos que reduziriam os votos para o comunista em 5, então é necessário examinar todas as versões dos protocolos no CEO , porque eles foram editados.

Declaração da tarefa SAT


Temos pontos extremos com dados detalhados, 4 variáveis ​​intermediárias e várias dezenas de variáveis ​​booleanas que precisam ser selecionadas para essas condições. Essa é uma tarefa típica do SAT , sobre a qual Donald Knuth escreveu em uma das melhores monografias do século passado :
O problema do SAT é evidentemente um aplicativo matador, porque é a chave para a solução de muitos outros problemas

Estágios de entrada de protocolo


Farei uma reserva imediatamente que deixaremos temporariamente 13 seções do distrito soviético de Vladivostok, onde as eleições foram posteriormente declaradas inválidas. Essas assembleias de voto não participaram na contagem dos votos, a exibição dos resultados das eleições residiu em 1537 dos 1.550 protocolos introduzidos, e os consideraremos. Assim, às 4 horas da manhã (o ponto de partida de nossa análise), restava entrar 53 seções, e elas eram inseridas em lotes: primeiros 33 protocolos, depois 14, 4, 1 e 1 por último. Por conveniência, apresentaremos esses nomes de pontos de controle. Os mesmos nomes podem ser chamados de estágios após os pontos de controle: silêncio (33 protocolos até às 16h), preparar (14), fantástico (4), matar (1) e final (1).



Condições de contorno: sabe-se que nos pontos 95,74% e 99,16% todas as versões dos protocolos são primeira e última, respectivamente. Sabe-se que dos 19 protocolos alterados, 16 já foram adicionados ao GAS ao ponto de 95,74% ( antigo ) e 3 foram adicionados durante as últimas alterações ( novo ). As somas de votos em pontos intermediários também são conhecidas. Os dados por ponto com uma porcentagem de processamento, por exemplo, 95,74%, serão indicados por r 9574 .

Distribuímos todos os protocolos, que foram introduzidos ou alterados no último estágio, em 3 matrizes: antiga , nova e comum . Os 19 protocolos editados no GAS têm 16 anos (aqueles que foram adicionados antes da fase oculta e depois editados na fase oculta) e 3 novos (que contribuíram com 95,74% após o ponto e editados na fase oculta). Para todos os 19, sabemos o quanto uma mudança no protocolo altera o número de votos para cada candidato, e denotamos esses valores conhecidos como aumento . O número no último protocolo é chamado por último , no primeiro - primeiro , o índice do número de votos para o comunista Ishchenko é com , pois Tarasenko é er . Os 50 protocolos restantes adicionados no último estágio do protocolo formam a matriz comum .

Variáveis ​​booleanas


Para versões de protocolo, definimos 19 variáveis v_% d_% s , em que % d é um número de 0 a 18, os 16 primeiros são para versões de protocolos antigos, os 3 últimos são introduzidos e alterados; % s é o estágio em que estamos considerando a versão e Verdadeiro para a primeira versão e Falso para o substituído.

Para a presença de um protocolo no sistema, definimos as variáveis ​​booleanas a_% d_% s , em que % d é um número de 0 a 52, as 3 primeiras variáveis ​​referem-se aos protocolos que foram adicionados ao HAS na fase oculta e, em seguida, alterados, e os 50 restantes para aqueles que foram simplesmente adicionados na fase oculta, mas não mudaram no CEO (no entanto, dentre eles 14 protocolos reescritos pelas comissões). Essas variáveis ​​são definidas como True se o protocolo estiver no sistema no estágio especificado % s , False - se ainda não estiver.


O esquema de interseção de listas editadas em uma fase oculta e inseridas

Solução de tarefas SAT


Como nos últimos estágios o número de protocolos adicionados é pequeno, é conveniente resolver o problema do SAT desde o final - do estado final ao inicial. Por exemplo, para a última etapa, a condição SAT para o ponto intermediário 99,10% será a seguinte:

$ r_ {9916} ^ {com} = r_ {9910} ^ {com} + \ Sigma_ {i = 0} ^ {18} (v ^ {kill} _i? raise_i ^ {com}: 0) + \ Sigma_ { i = 0} ^ {52} (a ^ {kill} _i? 0: first_i ^ {com}) $


$ r_ {9916} ^ {er} = r_ {9910} ^ {er} + \ Sigma_ {i = 0} ^ {18} (v ^ {kill} _i? aumento_i ^ {er}: 0) + \ Sigma_ { i = 0} ^ {52} (a ^ {kill} _i? 0: first_i ^ {er}) $



A condição em que apenas 1 protocolo foi alterado por estágio é uma condição que, no momento da final, o número de versões falsas = 1.

$ \ Sigma_ {i = 0} ^ {52} (a ^ {final} _i? 0: 1) = 1 $



Também definimos a condição de que o protocolo não pode ser "devolvido", ou seja, para tornar o protocolo introduzido em algum estágio do próximo estágio não introduzido, e a condição de que, se você inserir a segunda versão do protocolo, ele não puder ser excluído da mesma maneira, deixando a primeira. Foi então que eles foram criados na versão GAS para que dados errados pudessem ser alterados de maneira documentada e não excluídos.

$ \ forall i \ em [0; 53) a ^ {final} _i \ geq a ^ {kill} _i $


$ \ forall j \ em [0; 19) v ^ {final} _j \ leq v ^ {kill} _j $



Traduzimos a notação matemática em código python para trabalhar com o z3, acontece algo como:

Parte do código python
# constraints on communist's or zhulik's votes
def findVariants(s, aim, cnt, suffix):
    s.add((r9916['com'] - aim['com'] == \
      Sum([If(Bool('v_%d_%s' % (i, suffix)), rewritten_pecs[i]['increase']['com'], 0) for i in range(19)]) + \
      Sum([If(Bool('a_%d_%s' % (k, suffix)), 0, approved_pecs[k]['first']['com']) for k in range(53)])))

    s.add((r9916['er'] - aim['er'] == \
      Sum([If(Bool('v_%d_%s' % (i, suffix)), rewritten_pecs[i]['increase']['er'], 0) for i in range(19)]) + \
      Sum([If(Bool('a_%d_%s' % (k, suffix)), 0, approved_pecs[k]['first']['er']) for k in range(53)])))



, -, final, kill, fantastic, prepare. - , . , . python- Colab- .

, final


Colab :

 final  get_models final max=10
 final 1. solution found:
 final  enabled: 648 with 0 of fake paper
 final  changed:  delta increased by 0 (0 protocols)

SAT- , , , 648. , .

, kill


SAT- 4 .

 final  get_models final max=10
 final 1. solution found:
 final  enabled: 648 with 0 of fake paper
 final  changed:  delta increased by 0(0 protocols)
 final  --- dive deeper to kill  --- at 2019-03-13 13:56:40.543990
   kill  get_models kill max=10
   kill 1. solution found:
   kill  enabled: P2829 with 1 of fake paper
   kill  changed: 303, 304, 318, 328, 2812, 2826 delta increased by 3751(6 protocols)
   kill 2. solution found:
   kill  enabled: P2829 with 1 of fake paper
   kill  changed: 303, 304, 318, 328, 347, 354, 2812 delta increased by 3751(7 protocols)
   kill 3. solution found:
   kill  enabled: P2829 with 1 of fake paper
   kill  changed: 304, 318, 328, 347, 2812, 2826 delta increased by 3751(6 protocols)
   kill 4. solution found:
   kill  enabled: P2829 with 1 of fake paper
   kill  changed: 304, 318, 328, 354, 2812, 2826 delta increased by 3751(6 protocols)
   kill  end kill at 2019-03-13 13:56:42.284371
 final  end final at 2019-03-13 13:56:42.415697


, 2829, : 291 , 1184 , 1475 . , 6 . 304, 318, 328, 2812 4 2 3 : (347, 2826) | (303, 2826) | (354, 2826) | (303, 347, 354).

3751 , 5226 . , , … 99.10% . , . , 7 , .

, fantastic four


4 fantastic four , . SAT- . 7 14 ( 4+4+2+4 ).

: 14 , 4 kill
 final  get_models final max=10
 final 1. solution found:
 final  enabled: 648 with 0 of fake paper
 final  changed:  delta increased by 0(0 protocols)
 final  --- dive deeper to kill  --- at 2019-03-13 13:56:42.669368
   kill  get_models kill max=10
   kill 1. solution found:
   kill  enabled: P2829 with 1 of fake paper
   kill  changed: 303, 304, 318, 328, 347, 354, 2812 delta increased by 3751(7 protocols)
   kill  --- dive deeper to fantastic  --- at 2019-03-13 13:56:43.153626
       fantastic  get_models fantastic max=10
       fantastic 1. solution found:
       fantastic  enabled: 2802, P2828, 2840, 2866 with 1 of fake paper
       fantastic  changed: 2801, 2805, 2818, 2820, 2826, 2834, 2844, 2850, 2854, 2856, 2863, 2867 delta increased by 12097(12 protocols)
       fantastic 2. solution found:
       fantastic  enabled: 1912, 1916, P2838, P2847 with 2 of fake paper
       fantastic  changed: 2801, 2820, 2826, 2834, 2844, 2850, 2854, 2856, 2863, 2867 delta increased by 10707(10 protocols)
       fantastic  end fantastic at 2019-03-13 14:47:16.016131
   kill 2. solution found:
   kill  enabled: P2829 with 1 of fake paper
   kill  changed: 304, 318, 328, 347, 2812, 2826 delta increased by 3751(6 protocols)
   kill  --- dive deeper to fantastic  --- at 2019-03-13 14:47:24.146367
       fantastic  get_models fantastic max=10
       fantastic 1. solution found:
       fantastic  enabled: 1917, 1932, 2812, P2819 with 1 of fake paper
       fantastic  changed: 303, 2801, 2805, 2818, 2820, 2834, 2844, 2850, 2854, 2856, 2863, 2867 delta increased by 11597(12 protocols)
       fantastic 2. solution found:
       fantastic  enabled: 2802, P2828, 2840, 2866 with 1 of fake paper
       fantastic  changed: 303, 354, 2801, 2805, 2818, 2820, 2834, 2844, 2850, 2854, 2856, 2863, 2867 delta increased by 12097(13 protocols)
       fantastic 3. solution found:
       fantastic  enabled: 1912, 1916, P2838, P2847 with 2 of fake paper
       fantastic  changed: 303, 354, 2801, 2820, 2834, 2844, 2850, 2854, 2856, 2863, 2867 delta increased by 10707(11 protocols)
       fantastic 4. solution found:
       fantastic  enabled: 1917, 1932, 2812, P2819 with 1 of fake paper
       fantastic  changed: 354, 2801, 2805, 2818, 2820, 2834, 2844, 2850, 2854, 2856, 2863, 2867 delta increased by 11597(12 protocols)
       fantastic  end fantastic at 2019-03-13 16:06:58.112487
   kill 3. solution found:
   kill  enabled: P2829 with 1 of fake paper
   kill  changed: 303, 304, 318, 328, 2812, 2826 delta increased by 3751(6 protocols)
   kill  --- dive deeper to fantastic  --- at 2019-03-13 16:06:59.007196
       fantastic  get_models fantastic max=10
       fantastic 1. solution found:
       fantastic  enabled: 1912, 1916, P2838, P2847 with 2 of fake paper
       fantastic  changed: 347, 354, 2801, 2820, 2834, 2844, 2850, 2854, 2856, 2863, 2867 delta increased by 10707(11 protocols)
       fantastic 2. solution found:
       fantastic  enabled: 1917, 1932, 2812, P2819 with 1 of fake paper
       fantastic  changed: 354, 2801, 2805, 2818, 2820, 2834, 2844, 2850, 2854, 2856, 2863, 2867 delta increased by 11597(12 protocols)
       fantastic 3. solution found:
       fantastic  enabled: 1917, 1932, 2812, P2819 with 1 of fake paper
       fantastic  changed: 347, 2801, 2805, 2818, 2820, 2834, 2844, 2850, 2854, 2856, 2863, 2867 delta increased by 11597(12 protocols)
       fantastic 4. solution found:
       fantastic  enabled: 2802, P2828, 2840, 2866 with 1 of fake paper
       fantastic  changed: 347, 354, 2801, 2805, 2818, 2820, 2834, 2844, 2850, 2854, 2856, 2863, 2867 delta increased by 12097(13 protocols)
       fantastic  end fantastic at 2019-03-13 16:55:17.161744
   kill 4. solution found:
   kill  enabled: P2829 with 1 of fake paper
   kill  changed: 304, 318, 328, 354, 2812, 2826 delta increased by 3751(6 protocols)
   kill  --- dive deeper to fantastic  --- at 2019-03-13 16:55:18.475100
       fantastic  get_models fantastic max=10
       fantastic 1. solution found:
       fantastic  enabled: 1917, 1932, 2812, P2819 with 1 of fake paper
       fantastic  changed: 303, 2801, 2805, 2818, 2820, 2834, 2844, 2850, 2854, 2856, 2863, 2867 delta increased by 11597(12 protocols)
       fantastic 2. solution found:
       fantastic  enabled: 1912, 1916, P2838, P2847 with 2 of fake paper
       fantastic  changed: 303, 347, 2801, 2820, 2834, 2844, 2850, 2854, 2856, 2863, 2867 delta increased by 10707(11 protocols)
       fantastic 3. solution found:
       fantastic  enabled: 1917, 1932, 2812, P2819 with 1 of fake paper
       fantastic  changed: 347, 2801, 2805, 2818, 2820, 2834, 2844, 2850, 2854, 2856, 2863, 2867 delta increased by 11597(12 protocols)
       fantastic 4. solution found:
       fantastic  enabled: 2802, P2828, 2840, 2866 with 1 of fake paper
       fantastic  changed: 303, 347, 2801, 2805, 2818, 2820, 2834, 2844, 2850, 2854, 2856, 2863, 2867 delta increased by 12097(13 protocols)
       fantastic  end fantastic at 2019-03-13 17:58:13.976612
   kill  end kill at 2019-03-13 17:58:17.370820
 final  end final at 2019-03-13 17:58:17.511852
Changed before fantastic stage 0 []
Enabled before fantastic stage 39 ['2856', '2863', '201', '202', '204', '205', '206', '207', '208', '209', '211', '212', '213', '214', '216', '217', '218', '219', '220', '221', '222', 'P1904', 'P1915', '1918', '1919', 'P1923', 'P1944', '1947', '1961', 'P1966', 'P1968', '2809', '2813', '2823', 'P2846', '2849', 'P2858', '2859', 'P2862']


:

: (1917, 1932, 2812, P2819) (2802, P2828, 2840, 2866) (1912, 1916, P2838, P2847), 1 2 .
: 2801, 2820, 2834, 2844, 2850, 2854, 2856, 2863, 2867 14 1-4 . 10 ( 10 13). 3 , , 6 17 19 ( 19 ), 3 6 2 3 ( 18 ).

47 , silence prepare


, , , ( ), .

14 47 14 fantastic . ~11 , 3 , . 3 4 , 2 4 . multiprocessing.Pool 1 , 14 14 fantastic 1 prepare, . prepare , silence , 47 14, 33 , silence. , 47 , , .


, , , , . — . — .




1. —


, — 47 0 2 11 12 (.. final+kill+fantastic 2 3, 16). , 07:03 (98.77% ) (13-14 16), , 6 , (17-19 19).




, . , , , .

2.


, , , , , . 13 , 99.16% ( ).


, plot.ly

, 3 . ( fantastic) 3 , 51.22% 51.28%, . , , .



,
19 2 , , , , 53*2^19 , 28 . ( ), , , 52*2^19 , 27. ,

$C^{4}_{51} \cdot (2^{12} + 2^{13} + 2^{13} + 2^{13}) = C^{4}_{51} \cdot 2^{12} \cdot 7 = \frac{51! \cdot 2^{12}}{4! (51-4)!} \cdot 7 \approx 7 \space  $



— 14 47; 14 . , 11 :

$C^{14}_{47} \cdot 32 = \frac{47!}{14! (47-14)!} \cdot 32 \approx 11 \space $




, , , , 19 , , . , 47 . — 19 , . , .

13


13 04:30 , . , , , . . . , . 4:30 13 (, 813), «». , , 13 , .


, , — 13 , . ( ) 13 ( 404). , , .


  1. , 3 . ( , 13 ), ( ), , izbirkom.ru.
  2. 4 , , : 2801, 2820, 2834, 2844, 2850, 2854, 2856, 2863, 2867 1-4 , 4 1 2 . , 4 , 5 ( ).
  3. 2829 .
  4. 6 7 , 304, 318, 328, 2812 2 3 .
  5. 648. .
  6. 98.77% (.. , 6 ) 15 18 2 .
  7. 6 17 , , — . , , .
  8. 51% 46%


  1. ().
  2. , 53 (3.5%) .

— , , - , , 54 (48 , 4 , 1 , 1 ) . .


, , , , . «», 2-3 , , .

, , , , , :) , .

,
kireev.livejournal.com
97.87% 04:10 newdaynews.ru
98.77% 07:03
99.03% 07:07
99.10% 07:14 Meduza, The Insider — 07:20.
99.16% 12:05 , 12:05 99.16%, .
@RuElectionData, , , , 53 , , .
2801 2805 2812 2818 2820 2834 2844 2850 2863 2867 .
318 328 1915 1923 1926 1944 1966 2801 2805 2812 2818 2819 2820 2826 2828 2829 2834 2838 2844 2845 2846 2847 2850 2858 2862 2863 2867 — .


P.S. , , , 3801 540 0 , 2809, 2823, , , .
P.P.S. . , .

UPD. , , , . , , %76ersion- . , version , %76ersion .

UPD2. , 404. , !


, - :

  • , .
  • ( ).
  • , , «» ( ) .

, : |


Source: https://habr.com/ru/post/pt440092/


All Articles