КОИБ-2017: Исходные данные

Материал из Справочника наблюдателя
Перейти к:навигация, поиск

Загрузка исходных данных[]

Все сведения о проводимых выборах КОИБ-2017 получает из исходных данных, которые в него загружаются. Согласно подпункту 2 пункта 3 инструкции ЦИК РФ по использованию КОИБ-2017 участковая комиссия обеспечивается исходными данными для КОИБ-2017 в двух вариантах

  • распечатанными на листах бумаги с использованием машиночитаемого кода (QR-кода)
  • записанные на USB-флеш-накопитель

По своему смыслу эти данные должны быть полностью идентичны. При этом загрузка исходных данных с помощью распечатанных на листах бумаги QR-кодов является приоритетным вариантом загрузки исходных данных. USB-флеш-накопитель используется только в том случае, если при загрузке данных через QR-код были выявлены ошибки (пункт 3 и подпункт 2 пункта 4.1 инструкции)

Страницы с исходными данными в виде QR-кода выглядят так

После загрузки исходных данных КОИБ-2017 автоматически распечатывает их виде, понятном человеку

Распечатка исходных данных

Расшифровка исходных данных[]

Формат кодирования данных с помощью QR-кода описан на странице 54 системного соглашения[1]. Процедура расшифровки состоит из нескольких шагов

1) Каждый QR-код на странице с исходными данными представляет из себя строку вида n!N;BASE64, где
n — номер листа с QR-кодом
N — общее число листов с QR-кодом
BASE64 — строка, закодированная в формате BASE64

2) Все полученные в результате сканирования QR-кодов BASE64 строки следует объединить в одну длинную строку и декодировать. В результате должен получиться бинарный файл, являющийся ZIP архивом.

3) В ZIP архиве находится файл вида SourceData-<номер УИК>.XML.

Пример исходных данных[]

Если расшифровать исходные данные, приведенные на картинках выше, то на выходе получается XML файл вида

<?xml version="1.0" encoding="windows-1251"?>
<SourceData xmlns="http://localhost/Schemas/SIB2003/SourceData" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  DateTime="2019-09-08" id="e3d2cac7-8741-4a30-8af9-8dc6738e84ab" TrainingFileSuffix="_T" FileSuffix="_R" 
  isGasVrn="true" uikAddress="117216, город Москва, Феодосийская улица, дом 11А" 
  xsi:schemaLocation="http://localhost/Schemas/SIB2003/SourceData SourceData-schema.xsd">
  <Elections>
    <Election name="Выборы депутатов Московской городской Думы седьмого созыва" maxMarks="1" num="27720002327736" voteMarks="1">
      <ParentComittee parentid="27720002327881" name="район Северное Бутово территориальная избирательная комиссия "/>
      <StampCommittees>
        <StampCommittee num="7108"/>
      </StampCommittees>
      <Protocol name="{$CRLF}Одномандатный избирательный округ № 33{$CRLF}{$CRLF}{$CRLF}ПРОТОКОЛ{$CRLF}{$CRLF}{$CRLF}участковой 
        избирательной комиссии об итогах голосования{$CRLF}ИЗБИРАТЕЛЬНЫЙ УЧАСТОК № 2339{$CRLF}город Москва, Феодосийская улица, 
        дом 11А" id="7732912" QRCodeSize="54" numberWidth="3" nameWidth="65" valueWidth="4" textValueWidth="28" doNotReadOut="false">
        <Lines>
          <Line num="1" additionalNum="" ID="1" 
            name="Число избирателей, внесенных в список избирателей на момент окончания голосования" type="Election"/>
          <Line num="2" additionalNum="" ID="2" 
            name="Число избирательных бюллетеней, полученных участковой избирательной комиссией" type="Election"/>
          <Line num="3" additionalNum="" ID="3" 
            name="Число избирательных бюллетеней, выданных избирателям в помещении для голосования в день голосования" type="Election"/>
          <Line num="3" additionalNum="а" ID="4" 
            name="Число избирательных бюллетеней, выданных избирателям, проголосовавшим досрочно в помещении территориальной избирательной комиссии" type="Election"/>
          <Line num="4" additionalNum="" ID="5" 
            name="Число избирательных бюллетеней, выданных избирателям, проголосовавшим вне помещения для голосования в день голосования" type="Election"/>
          <Line num="5" additionalNum="" ID="6" name="Число погашенных избирательных бюллетеней" type="Election"/>
          <Line num="6" additionalNum="" ID="7" 
            name="Число избирательных бюллетеней, содержащихся в переносных ящиках для голосования" type="DontQueryUser" 
            expression="{BlankType=Valid,VotingMode=Portable}+{BlankType=NoMarks,VotingMode=Portable}+{BlankType=TooManyMarks,VotingMode=Portable}"/>
          <Line num="7" additionalNum="" ID="8" 
            name="Число избирательных бюллетеней, содержащихся в стационарных ящиках для голосования" type="DontQueryUser" 
            expression="{BlankType=Valid}+{BlankType=NoMarks}+{BlankType=TooManyMarks}-{BlankType=Valid,VotingMode=Portable}-{BlankType=NoMarks,VotingMode=Portable}-{BlankType=TooManyMarks,VotingMode=Portable}"/>
          <Line num="8" additionalNum="" ID="9" name="Число недействительных избирательных бюллетеней" 
            type="DontQueryUser" expression="{BlankType=NoMarks}+{BlankType=TooManyMarks}"/>
          <Line num="9" additionalNum="" ID="10" name="Число действительных избирательных бюллетеней" 
            type="DontQueryUser" expression="{BlankType=Valid}"/>
          <Line num="9" additionalNum="а" ID="11" name="Число утраченных избирательных бюллетеней" type="Election"/>
          <Line num="9" additionalNum="б" ID="12" name="Число избирательных бюллетеней, не учтенных при получении" type="Election"/>
        </Lines>
        <Checks>
          <Check expression="[4]+[3]+[5]&gt;=[9]+[10]" enabled="true" mild="true" report="true"/>
          <Check expression="[7]+[8]=[9]+[10]" enabled="true" mild="false" report="false"/>
          <Check expression="[3]+[4]+[5]&gt;=[9]+[10]" enabled="true" mild="false" report="false"/>
          <Check expression="[2]=[3]+[5]+[6]+[11]-[12]" enabled="true" mild="false" report="false"/>
          <Check expression="[1]&gt;=[3]+[4]+[5]" enabled="true" mild="false" report="false"/>
          <Check expression="[10]=S" enabled="true" mild="false" report="false"/>
          <Check expression="[5]&gt;=[7]" enabled="true" mild="true" report="false"/>
          <Check expression="[3]+[4]&gt;=[8]" enabled="true" mild="true" report="false"/>
        </Checks>
      </Protocol>
      <Candidates>
        <Candidate lastName="Гринченко" firstName="Владимир" patronymic="Владимирович" registered="true" disabled="false" num="1" 
          id="4774111356481" alternativeid="8462169" biography="" selfRegistered="false" party="" noneAbove="false"/>
        <Candidate lastName="Гусева" firstName="Людмила" patronymic="Ивановна" registered="true" disabled="false" num="2" 
          id="4774111356478" alternativeid="7643836" biography="" selfRegistered="true" party="" noneAbove="false"/>
        <Candidate lastName="Папян" firstName="Гарегин" patronymic="Гришаевич" registered="true" disabled="false" num="3" 
          id="4774111356479" alternativeid="8281957" biography="" selfRegistered="false" party="" noneAbove="false"/>
        <Candidate lastName="Присняк" firstName="Виктор" patronymic="Владимирович" registered="true" disabled="false" num="4" 
          id="4774111356483" alternativeid="6358540" biography="" selfRegistered="false" party="" noneAbove="false"/>
        <Candidate lastName="Смирнов" firstName="Левон" patronymic="Леонидович" registered="true" disabled="false" num="5" 
          id="4774111356480" alternativeid="4504226" biography="" selfRegistered="false" party="" noneAbove="false"/>
        <Candidate lastName="Федоров" firstName="Павел" patronymic="Сергеевич" registered="true" disabled="false" num="6" 
          id="4774111356482" alternativeid="1900153" biography="" selfRegistered="false" party="" noneAbove="false"/>
      </Candidates>
      <Modes>
        <Mode>Main</Mode>
        <Mode>Portable</Mode>
      </Modes>
    </Election>
  </Elections>
  <Blanks>
    <Blank num="27720002327736" marker="3" name=" Одномандатный избирательный округ № 33   ПРОТОКОЛ   участковой избирательной 
      комиссии об итогах голосования ИЗБИРАТЕЛЬНЫЙ УЧАСТОК № 2339 город Москва, Феодосийская улица, дом 11А" width="210" 
      height="297" delta="10" orientation="P" maxPShift="10">
      <model><![CDATA[Code	X	Y	CX	CY	Page	Node
MB	120	140	67	60	1	Picture shape
LH	120	470	1460	8	1	Cell border
LV	120	470	8	2360	1	Cell border
LH	120	800	1860	8	1	Cell border
LH	1580	140	400	8	1	Cell border
LV	1580	140	8	660	1	Cell border
LV	1980	140	8	2690	1	Cell border
LH	120	2830	1860	8	1	Cell border
SQ	1845	924	90	90	1	Auto shape
SQ	1845	1262	90	90	1	Auto shape
SQ	1845	1600	90	90	1	Auto shape
SQ	1845	1938	90	90	1	Auto shape
SQ	1845	2276	90	90	1	Auto shape
SQ	1845	2614	90	90	1	Auto shape
]]></model>
      <Sections>
        <int>27720002327736</int>
      </Sections>
    </Blank>
  </Blanks>
  <CommitteeMembers>
    <Member name="Смирнова Е. С." type="Chairman"/>
    <Member name="Корженкова С. Н." type="ChairmanAssistant"/>
    <Member name="Ларионова Е. В." type="Secretary"/>
    <Member name="Гуляева А. А." type="Ordinary"/>
    <Member name="Гурьянова Д. Н." type="Ordinary"/>
    <Member name="Детушева Ю. В." type="Ordinary"/>
    <Member name="Загуменникова Т. Н." type="Ordinary"/>
    <Member name="Захаров А. И." type="Ordinary"/>
    <Member name="Кожевникова Т. В." type="Ordinary"/>
    <Member name="Платонова Ю. С." type="Ordinary"/>
    <Member name="Русакевич Л. А." type="Ordinary"/>
    <Member name="Шобанова А. О." type="Ordinary"/>
  </CommitteeMembers>
  <Targets>
    <TargetCommittee num="2339" name="УИК №2339"/>
  </Targets>
  <Modes>
    <Mode>Main</Mode>
    <Mode>Portable</Mode>
  </Modes>
  <ModeTimeTable>
    <ModeTime mode="Main" hour="08" minute="00"/>
    <ModeTime mode="Portable" hour="20" minute="00"/>
  </ModeTimeTable>
</SourceData>

Описание формата XML файла содержится в том же системном соглашении.

Декодирование исходных данных (Linux)[]

Декодирование QR-кода и откусывание первых лишних четырех символов под линуксом делается командой

zbarimg -v --raw qr.jpeg | tail -c +5 > out.txt

где qr.jpeg исходный файл с QR-кодом, out.txt - файл куда записывается получаемая BASE64 строка.

Объединение строк, полученных из разных листов с QR-кодом, и декодирование результирующей строки делается командой

cat out1.txt out2.txt out3.txt out4.txt | base64 --decode > data.zip

В полученном ZIP архиве data.zip содержится XML файл с исходными данными.

  1. Системное соглашение является частью конкурсной документации, доступной на сайте госзакупок. Копия конкурсной документации расположена тут.