закрыть X

### Опции скрытого текста

%field должно быть только числовым
%field необходимо
По меньшей мере, один параметр требуется

Следующие ошибки возникли при попытке отправки сообщения:

Скрыть по количеству сообщений
Требуется сообщений
Скрыть от гостей
Скрыть от всех групп, кроме выбранных
Группы
Глобальный модератор
Модератор раздела
Новичок
Начинаю писать
Постоялец
Знающий
Старожил
Модератор
ВИП
Ветеран
Неприкасаемый
Проходил мимо
Прохожий
Друзья
Новичок
Ветераны форума
Новичок
Скрыть по количеству Спасибо поставленных пользователю
Кол-во сказанных пользователю Спасибо
Скрыть пока не скажут Спасибо
« предыдущая тема следующая тема »
Страницы: « 1 ... 29 30 31 32 33 ... 44 » Вниз

# Иформация о Eurocrypt (помните такое?)

- 436 Ответов
- 32853 Просмотров

#### Ethereal

- ВИП
- Старожил
- 1.581
- 8.611 раз

##### Иформация о Eurocrypt (помните такое?)

« Ответ #300: Суббота 13 Ноября 2021, 11:12:46 »
Дай мне тогда, позязя, пару примерчиков CA88 из лога для этой карты с которыми работает. Буду у своем эмуле ошибку искать с этими образцами. Найду - эмуль тебе подарю
Сказали Спасибо: balton, Andro, skad163, lift-man
« Последнее редактирование: Суббота 13 Ноября 2021, 11:31:37 от Ethereal »
Жалоба 178.19.253.189

#### Shurik406

- Начинаю писать
- 232
- 488 раз
- 58W |-----| 55E
  Много чего
  UK

##### Иформация о Eurocrypt (помните такое?)

« Ответ #301: Суббота 13 Ноября 2021, 12:36:23 »
Через пару часов сниму лог и выложу.
DES у Еврика-S2 отличается от М. Там дополнительно производится initial и final permutations. Так же как и в М, в ключе отсутствуют паритетные биты - поэтому ключи 7 байтов, а не 8.
В пакете шлются сразу два слова, так называемые even and odd control words. Дешишруются они отдельно от друг друга и карта отвечает с обеими словами... Even и odd. Какой используется декодер ом зависит от счётчика кадров, который транслируется отдельно в пакете MAC.
Хэшь берёт весь пакет, кроме самого хэша, для вычисления. Об этом подробно описал Макдональд.
7 - Hashing algorithm for the 88 command
The same algorithm is used for hashing the 88 command (IP, left shift, DES, no swap, IP-1) but it operates on different data to EC-M hashing. This time we zeroise the 8 byte hash buffer and move the 3 byte PPUID into the 1st 3 bytes followed by the 4 bytes of the e1 04 packet and ea. We then perform a hash on these 8 bytes then XOR the 1st 8 byte control word into the buffer and hash again. Finally we XOR the 2nd control word into the buffer and hash once more. The hash buffer should equal the contents of the f0 08 packet in the 88 command. If they do the card sends 90 00 otherwise 90 40.
webzone.ee...uroS2.html
Короче сниму лог и покажу. У меня есть где то программка в Си для вычисления хэша и слов для Евро-S2, только надо найти,если понадобится.
- Спасибо
Сказали Спасибо: balton, Andro, lift-man
Жалоба Записан

#### Shurik406

- Начинаю писать
- 232
- 488 раз
- 58W |-----| 55E
  Много чего
  UK

##### Иформация о Eurocrypt (помните такое?)

« Ответ #302: Суббота 13 Ноября 2021, 15:58:33 »
Короче вот
DES key - E7 19 5B 7C 47 F4 66
ca 88 00 00 24 ; * df 00 e1 04 92 06 ff 00
ea 10 ee 34 c7 04 f2 28 59 15 ae 09 d2 29 cf fe 8d 33 * <<-- Even CW / Odd CW
f0 08 bf 42 82 62 7b 80 23 53 <<-- Хэшь
90 00
ca c0 00 00 12 ; ea 10 14 a1 ea ef b4 9c 71 1a 96 88 9d 5c 40 94 3d 0b <<-- Even DW / Odd DW
90 00
ca 88 00 00 24 ; * df 00 e1 04 92 06 ff 00
ea 10 ed e7 80 d2 7e d0 c7 a7 ae 09 d2 29 cf fe 8d 33 * <<-- Even CW / Odd CW
f0 08 5a 8c 42 06 ab 87 82 ed <<-- Хэшь
90 00
ca c0 00 00 12 ; ea 10 29 4a 54 e8 42 8d a8 c5 96 88 9d 5c 40 94 3d 0b <<-- Even DW / Odd DW
90 00
Данные между * учитываются в вычеслении хэша.
Карта в глитчере если еще что надо проверить. На следующей неделе хочу глитчер доделать что-бы сдампить карту CTV.
Еще одна карта ко мне скоро придет - Visiopass. Вроде-бы Eurocrypt-M, но больше ничего о ней не знаю - какой там проц и т.д.
Сказали Спасибо: balton, Ethereal, lift-man
Жалоба Записан

#### Shurik406

- Начинаю писать
- 232
- 488 раз
- 58W |-----| 55E
  Много чего
  UK

##### Иформация о Eurocrypt (помните такое?)

« Ответ #303: Суббота 13 Ноября 2021, 21:35:07 »
Кстати, я не правильно вам сказал насчет хэша - это только верно для М-версии. Для S2, смотрите текст у Макдональда. В данном случае, PPUID - 47 52 00. Т.е. буффер хэша должен выглядеть вот так.
47 52 00 92 06 FF 00 EA
EE 34 C7 04 F2 28 59 15
AE 09 d2 29 CFFE 8D 33
Сказали Спасибо: balton, Ethereal, skad163
Жалоба Записан

#### Ethereal

- ВИП
- Старожил
- 1.581
- 8.611 раз

##### Иформация о Eurocrypt (помните такое?)

« Ответ #304: Суббота 13 Ноября 2021, 22:11:01 »
Написал ответ, а тут ты дополнил и он стал не совсем актуальный. Но не выкидывать-же его, я так старался, писал. Кину сюда. Типа моя ворчалка
Цитата(Shurik406 от Суббота 13 Ноября 2021, 12:36:23)

> Так же как и в М, в ключе отсутствуют паритетные биты - поэтому ключи 7 байтов, а не 8.

Вот в EEPROM карты NRK SLE44 8-й (он-же 0-й 4-й и C-й)
ключ провайдера 475100 :
Код: [Выделить]

9580 : 20 00 00 00 00 00 00 00 00 00 00 00 00 08 00 47
^^ <- ID прова
9590 : 51 00 81 06 80 00 00 00 00 01 81 08 46 7D 71 6E
^^^^^ <- ID прова ^^^^^^^^^^^ <- key 8
95A0 : D6 E4 B5 4D 81 06 80 00 00 00 00 01 81 08 00 00
^^^^^^^^^^^ <- key 8

А в коде DES карты в самом начале такая хрень
Код: [Выделить]

здесь dptr = 0x9592 где запись с ключами прова в EEPROM
r1 = 0x4B, где в IRAM восьмерка байт для шифрования
X81bf: mov r3,#8 ; цикл будет 8 раз
mov a,#1
movc a,@a+dptr ; прочло 06 - длину нано
add a,#4 ; аккум. стал 0A = смещение в
mov r2,a ; записи начала ключа, его в r2
mov a,#39h ; tmp временный буфер будет тут
xch a,r1 ; адрес tmp в r1
mov r6,a ; адрес восьмерки данных в r6
X81cb: mov r0,#24h ; адрес буфера сжатого ключа, он занулен
mov a,r2 ; смещение в записи ключа в EEPROM
movc a,@a+dptr ; читаем байт ключа
inc r2 ; инкремент смещения в записи ключа
mov r4,#7 ; цикл будет 7 раз
X81d2: rlc a ; выдвинули бит байта ключа в перенос
xch a,@r0 ; взяли байт из буфера сжатого ключа
rlc a ; вогнали бит байта ключа из переноса
xch a,@r0 ; сунули обратно в буфер сжатого ключа
inc r0 ; на следующий байт ключа
djnz r4,X81d2 ; цикл 7 раз
djnz r3,X81cb ; цикл 8 раз

Итого, берется восьмерка байт ключа из EEPROM
Код: [Выделить]

9590 : 51 00 81 06 80 00 00 00 00 01 81 08 46 7D 71 6E
^^^^^^^^^^^ <- ключ 8 байт
95A0 : D6 E4 B5 4D 81 06 80 00 00 00 00 01 81 08 00 00
^^^^^^^^^^^ <- ключ 8 байт

и сжимается до семерки. И если до исполнения этого кода в IRAM было
Код: [Выделить]

0020: 00 00 00 00 00 00 00 00 00 00 00 00 95 92 24 00 '$

то после стало
Код: [Выделить]

0020: 00 00 00 00 0E FD 76 6A 51 DF 98 00 95 92 24 00 эvjQЯ? '$
^^^^^^^^^^^^^^^^^^^^ <- сжатый до 7 байт ключ

И это сжатие можно наглядно показать так :
Код: [Выделить]

46 7D 71 6E D6 E4 B5 4D
01000110 01111101 01110001 01101110 11010110 11100100 10110101 01001101
0 0 0 0 1 1 1 0 -> 0E
1 1 1 1 1 1 0 1 -> FD
0 1 1 1 0 1 1 0 -> 76
0 1 1 0 1 0 1 0 -> 6A
0 1 0 1 0 0 0 1 -> 51
1 1 0 1 1 1 1 1 -> DF
1 0 0 1 1 0 0 0 -> 98
0 1 1 0 0 0 1 1 -> смыть

Т.е. в EEPROM карты NRK SLE44 ключи DES хранятся именно как 8 байт с битом
паритета в мл.бите каждого байта, битом паритета, который не используется
и поэтому безболезненно проставляется от балды.
<А ВОТ ДАЛЬШЕ ВОРЧАНИЕ ОТРЕЖУ>

Подумал(a) и добавил(a): Суббота 13 Ноября 2021, 22:23:00

Так вот в чем трабл. Для провайдера 47 52 00 ключ 8 (0 4 C) хранится в EEPROM как
Код: [Выделить]

95F0 : 00 00 00 00 00 47 52 00 81 06 80 00 00 00 00 01
9600 : 81 08 E4 BD 9F 65 75 95 BF 82 81 06 80 00 00 00
^^^^^^^^^^^^^^^^^^^^^^^

и сжимается в карте в начале алгоритма DES до
Код: [Выделить]

0020: 00 00 00 00 E7 98 DA 6E 62 FE 23 00 95 F8 24 00 з?Ъnbю# ш$
^^^^^^^^^^^^^^^^^^^^

Вот как это соответствует
Цитата(Shurik406 от Суббота 13 Ноября 2021, 15:58:33)

> DES key - E7 19 5B 7C 47 F4 66

я пока и не ущучил.

Подумал(a) и добавил(a): Суббота 13 Ноября 2021, 22:31:56

Цитата(Shurik406 от Суббота 13 Ноября 2021, 21:35:07)

> Для S2, смотрите текст у Макдональда. В данном случае, PPUID - 47 52 00. Т.е. буффер хэша должен выглядеть вот так.
> 47 52 00 92 06 FF 00 EA
> EE 34 C7 04 F2 28 59 15
> AE 09 d2 29 CFFE 8D 33

Тут не надо Макдональда. Я в эмуле как в досовском DEBUG-отладчике трассирую и вижу, что 3 восьмерки для хеширования готовятся именно так. У меня сам рассчет DES багливый.
--------------------------------------------------------------------------
Там сразу за показанным мною выше кодом стоят еще 3 опкода
Код: [Выделить]

mov a,2ah
xch a,28h
mov 2ah,a

В результате
Код: [Выделить]

0020: 00 00 00 00 E7 98 DA 6E 62 FE 23 00 95 F8 24 00 з?Ъnbю# ш$
^^^^^^^^^^^^^^^^^^^^ <- сжатый ключ

превращается в
Код: [Выделить]

0020: 00 00 00 00 E7 98 DA 6E 23 FE 62 00 95 F8 24 00 з?Ъn#юb ш$
^^^^^^^^^^^^^^^^^^^^ <- сжатый ключ

и в таком виде он идет в дело. Все равно пока яснее не стало.
Сказали Спасибо: balton, skad163, lift-man
Жалоба 178.19.253.189

#### Shurik406

- Начинаю писать
- 232
- 488 раз
- 58W |-----| 55E
  Много чего
  UK

##### Иформация о Eurocrypt (помните такое?)

« Ответ #305: Суббота 13 Ноября 2021, 22:33:02 »
Это не паритет - или не совсем. Его надо пермутировать через вот такую таблицу, permuted choice 1 (PC1).
Код: [Выделить]

57, 49, 41, 33, 25, 17, 9, 1,
58, 50, 42, 34, 26, 18, 10, 2,
59, 51, 43, 35, 27, 19, 11, 3,
60, 52, 44, 36, 63, 55, 47, 39,
31, 23, 15, 7, 62, 54, 46, 38,
30, 22, 14, 6, 61, 53, 45, 37,
29, 21, 13, 5, 28, 20, 12, 4,
8, 16, 24, 32, 40, 48, 56, 64,

Вот код в С что бы его пермутировать.
Код: [Выделить]

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
static uint8_t _pc1[] =
{
57, 49, 41, 33, 25, 17, 9, 1, //8
58, 50, 42, 34, 26, 18, 10, 2, //16
59, 51, 43, 35, 27, 19, 11, 3, //24
60, 52, 44, 36, 63, 55, 47, 39, //32
31, 23, 15, 7, 62, 54, 46, 38, //40
30, 22, 14, 6, 61, 53, 45, 37, //48
29, 21, 13, 5, 28, 20, 12, 4, //56
8, 16, 24, 32, 40, 48, 56, 64, //64
};
static void _permute_ec(uint8_t *data, const uint8_t *pr, int n)
{
uint8_t pin[8];
int i, j, k, t;
for(i = 0, k = 0; k < n; i++)
{
int p = 0;
for(j = 7; j >= 0; j--, k++)
{
t = pr[k] - 1;
p <<= 1;
p += ((data[t >> 3]) >> (7 - (t & 7)) & 1);
}
pin[i] = p;
}
memcpy(data, pin, 8);
}
int main()
{
uint64_t key64;
uint8_t keys64[8];
key64 = 0xE4BD9F657595BF82;
int i;
printf("Input key: \t");
for(i = 0; i < 8; i++)
{
keys64[i] = (key64 >> 8 * (7 - i)) & 0xFF;
printf("%02X ", keys64[i]);
}
_permute_ec(keys64, _pc1, 56);
printf("\nOutput key: \t");
for(i = 0; i < 8; i++)
{
printf("%02X ", keys64[i]);
}
return 0;
}

Input key: E4 BD 9F 65 75 95 BF 82
Output key: E7 19 5B 7C 47 F4 66 00
Сказали Спасибо: balton, Ethereal, skad163
Жалоба Записан

#### Ethereal

- ВИП
- Старожил
- 1.581
- 8.611 раз

##### Иформация о Eurocrypt (помните такое?)

« Ответ #306: Воскресенье 14 Ноября 2021, 05:56:32 »
С реализацией DES в карте еще не разобрался (это ассемблерный треш), зато
разобрался как проецируется Eurocrypt-S2 на DES-стандарт.
Короче
- в Eurocrypt-S2 реализован DES без примесей, согласно букве стандарта
- ключ хранится согласно букве, только биты паритета (ай, сейчас с ними
разберусь) роль паритета не исполняют. Но лежат согласно букве
- хеш рассчитывается КРИПТОМ DES, а декрипт CW, что логично, ДЕКРИПТОМ
Вот посмотри мою образцовую реализацию DES, алгоритм и таблицы которой
я исп%здил много лет назад из прошивки Vianix 0.32 прикрутив обратно
то, что в Viaccess было опущено - начальную и конечную перестановки и
permuted choice 56-и битов ключа из 64-х, что привело ее к букве стандарта.
Так вот раз она считает верно, значит буква, она, буквой и есть. АПсАлютнА.
З.Ы. Джон Макдональд писал
So, what's the HASH function?
Its the same as the DES function (M or S) which is used for control word decryption except that near the end of each DES round the first and second bytes of the right-hand half of the eight byte word are swapped prior to XORing the right-hand half with the left-hand half.
Это отличие между КРИПТОМ и ДЕКРИПТОМ он так воспринял.
З.З.Ы.
Обсмеешься. В моей реализации после исполнения
KEY_PREPARE(KEY) ;
что в массиве
uint8_t key[7] ;
оказывается ? А вот что :
E7 19 5B 7C 47 F4 66
Тоже самое что и у тебя байт в байт.
Только создатель реализации DES в карте шел каким-то совсем иным путем.
Там такой треш, я даже счетчика цикла раундов пока не увидел в упор.

Подумал(a) и добавил(a): Воскресенье 14 Ноября 2021, 07:02:18

>Это не паритет - или не совсем. Его надо пермутировать через вот такую таблицу, permuted choice 1 (PC1).
В твоем сишном примере биты паритета никак не пермутируются. Из-за того, что ты вызываешь
_permute_ec(keys64, _pc1, 56);
с последним параметром 56 , вот этот цикл
for(i = 0, k = 0; k < n; i++)
завершается при k = 56 и вот эта строчка таблицы
8, 16, 24, 32, 40, 48, 56, 64,
вообще не идет в дело, а это как раз номера битов паритета.
Нолик на конце
Output key: E7 19 5B 7C 47 F4 66 00
получается из мусора в последнем байте локального массива
uint8_t pin[8];
Инициализируй его так
uint8_t pin[8] = {0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55} ;
ну и получишь
Output key: E7 19 5B 7C 47 F4 66 55
Так-что вывод остается прежний - это биты паритета, которые не используются, но заполнены.
Чем они заполнены - а ХЕЗ. Не тем что дает нечетное число единиц в каждом байте ключа, как
это сказано в стандарте DES. Может они заполняются паритетом в другом смысле, а может от
фонаря - нам врятли установить. Потому-что картой они не используются.
des_ecs.rar
(5 КБ ~ Скачиваний: 9)
Сказали Спасибо: balton, DIverSA.T, Andro, skad163, lift-man, Shurik406
« Последнее редактирование: Воскресенье 14 Ноября 2021, 07:10:40 от Ethereal »
Жалоба 178.19.253.189

#### Shurik406

- Начинаю писать
- 232
- 488 раз
- 58W |-----| 55E
  Много чего
  UK

##### Иформация о Eurocrypt (помните такое?)

« Ответ #307: Воскресенье 14 Ноября 2021, 11:42:56 »
У меня вот такая дилемма была. В HackTV я сначала реализовал ECM в Eurocrypt-M и S2. А вот ЕММ только позже.. Так вот, в пиратских картах и эмуляторах все ключи, M и S2, держались в 56 битном формате - вот и в HackTV я их держал так-же.
Проблема началась тогда когда начал писать рутину для ЕММ для S2. Ведь в официальных картах они держались в 64 битном формате. Что-же делать? Карта S2 ждет 64 битный ключ, а не 56. Варианты были такие.
Брать придуманный ключ в 64 битах и слать его карте в ЕММ.
Или... брать 56 битный ключ и превращать в 64 битный, специально для карт S2.
Так и сделал. Но для этого надо было составить таблицу пермутации которая это делает. Написал мелкую прогу в Си, часть которой я выше выложил и вычислил вот такую таблицу. А что бы его вычислить, надо было использовать все 64 бита оригинальной таблицы. Вот последняя строчка там и осталась.
/* Inverse PC1 table */
static const uint8_t _ipc1[] = {
8, 16, 24, 56, 52, 44, 36, 57,
7, 15, 23, 55, 51, 43, 35, 58,
6, 14, 22, 54, 50, 42, 34, 59,
5, 13, 21, 53, 49, 41, 33, 60,
4, 12, 20, 28, 48, 40, 32, 61,
3, 11, 19, 27, 47, 39, 31, 62,
2, 10, 18, 26, 46, 38, 30, 63,
1, 9, 17, 25, 45, 37, 29, 64
};
А вызывается он вот так - _permute_ec(key56, _ipc1, 64);
Посмотрю как у вас ДЕС реализован - может он более эффективней чем мой!
Сказали Спасибо: balton, Ethereal, lift-man, asdf-52
Жалоба Записан

#### Ethereal

- ВИП
- Старожил
- 1.581
- 8.611 раз

##### Иформация о Eurocrypt (помните такое?)

« Ответ #308: Воскресенье 14 Ноября 2021, 15:08:25 »
>Или... брать 56 битный ключ и превращать в 64 битный, специально для карт S2.
Ну так правильно ты сделал. Я бы сделал также. Правда, у меня бы вышли матрицы 7*8 и 8*7, но спор был про сущность битов, а не про особенности исходника.
А что до моей реализации DES, она сделана как запись алгоритма для перезаписи ее потом на ассемблерах разных архитектур. Поэтому она такая странная. Я записывал ее на Си, имея ввиду как потом эффективно на ассемблере записывать в точности тоже самое. Например циклов for вообще нету, все цикли do while поскольку на ассемблере это один условный переход назад. А цикл for требует двух переходов. Поэтому с точки зрения записи на ЯВУ она совершенно неэстетичная. Зато ассемблерно-практичная. Комментарий /* Must be aligned to uint32_t boundary */ это самому себе напоминалка именно для ассемблера. Потому-что на ARM, к примеру, доступ к невыровненному двойному слову карается.
Сказали Спасибо: balton, DIverSA.T, skad163, lift-man, Shurik406
Жалоба 178.19.253.189

#### Ethereal

- ВИП
- Старожил
- 1.581
- 8.611 раз

##### Иформация о Eurocrypt (помните такое?)

« Ответ #309: Воскресенье 14 Ноября 2021, 21:27:25 »
Чуть разобрался в реализации DES в карте SLE44.
Вот у тебя (и у меня) такой permuted choice ключа по битам
Код: [Выделить]

57 49 41 33 25 17 9 1
58 50 42 34 26 18 10 2
59 51 43 35 27 19 11 3
60 52 44 36 63 55 47 39
31 23 15 7 62 54 46 38
30 22 14 6 61 53 45 37
29 21 13 5 28 20 12 4

А в карте переставляется так
Код: [Выделить]

19 53 10 46 1 39 57 28
11 45 2 38 58 31 49 20
3 37 59 30 50 23 41 12
60 29 51 22 42 15 33 4
52 21 43 14 34 7 25 63
44 13 35 6 26 62 17 55
36 5 27 61 18 54 9 47

в результате левая и правая половинки ключа выходят соответственно
Код: [Выделить]

Левая половинка :
19 -- 10 -- 1 -- 57 -- начало
11 -- 2 -- 58 -- 49 --
3 -- 59 -- 50 -- 41 --
60 -- 51 -- 42 -- 33 --
52 -- 43 -- 34 -- 25 --
44 -- 35 -- 26 -- 17 --
36 -- 27 -- 18 -- 9 --
конец
Правая половинка :
-- 53 -- 46 -- 39 -- 28
-- 45 -- 38 -- 31 -- 20
-- 37 -- 30 -- 23 -- 12
-- 29 -- 22 -- 15 -- 4 конец
-- 21 -- 14 -- 7 -- 63 начало
-- 13 -- 6 -- 62 -- 55
-- 5 -- 61 -- 54 -- 47

Просматривать начиная с начала, двигаясь сверху-вниз и налево по кругу.
Что приводит к тому, что чтобы провращать две половинки одновременно
надо переставить байты по кругу командами xch @r0 , а потом тот из них,
что перелетал из конца в начало или из начала в конец провернуть два
раза rol @r0 или ror @r0. Просто и эффективно. Никаких-те учетов вылетевшего
за пределы бита и переноса бита 3 в бит 4 и обратно у среднего байта ключа.
Правда, при таком подходе биты данных, чтобы наксоривать на них ключ,
придется тоже переставить в такие-же столбики ? Я до этого места еще не дошел
Программист, который это писал, пытался реализовать DES эффективно на
кривой как ятаган 8-и разрядной системе команд 8051 и похоже у него
шедевер получился. Правда какой-то 8051-ориентированный.
Сказали Спасибо: skad163, lift-man, Shurik406
Жалоба 178.19.253.189

Страницы: « 1 ... 29 30 31 32 33 ... 44 » Вверх
« предыдущая тема следующая тема »
Перейти в:

### Кто онлайн

Просматривают тему:
Ethereal и 1 Гость

### Быстрый ответ

В быстром ответе можно использовать BB-теги и смайлы.

Предупреждение: в данной теме не было сообщений более 120 дней.
Если не уверены, что хотите ответить, то лучше создайте новую тему.

- Базовые
- Дополнительные

[дополнительные смайлы]
Ошибка во время нажатия Спасибо
Спасибо...

Загружается...