Инженер в области защиты информации, Fullstack
0,0
рейтинг
21 марта 2012 в 00:01

Обучаем HID устройство (читай BT-клавиатуру) работать правильно

Приветствую, хабралюди!
На ДР, мне друзья подарили BT-клавиатуру. Маленькая, беленькая, симпатичная, Удобная!
Подключил ее к своему Android 2.3.5 (SGSII), стал с ее помощью лазить по меню, запускать программы, дошел до Вконтакте и решил написать сообщение… а вот переключить на русский язык не смог, но как оказалось позже, это еще были только цветочки! Но кое-что мне удалось. Интересно как?

Сейчас я уже многое понял, и не знаю с чего начать свой рассказ. Поэтому будет долго и скучно, но игра стоит свеч!

Имеем:

Клавиатура RAPOO E6300
Андроидофон Samsung Galaxy S II

Первые шаги

Начал я с того, что написал письмо в техподдержку клавиатуры, с вопросом: а не могли бы вы посодействовать с настройкой клавиатуры для Андроида? Получил, как и ожидалось, ласковый отказ: «Эта клавиатура сделана специально для iPad».

Пока ждал от них ответа, стал «прогугливать» тему взаимодействия HID устройств и Android. И среди массы хлама нашел две полезнейшие статьи:


Изучение этих статей дало понимание, что для правильной работы устройства, нужно отредактировать как минимум .kl-файл, содержащий назначения клавиш.

Кому лень было читать статьи, кратко поясню:
На Вашем Android устройстве есть папка (кстати зависит от устройства, подробности есть в статье выше)
/system/usr
где расположены нужные нам каталоги
keylayout и keychars
в них размещаются файлы типа имя_клавиатуры.kl и имя_клавиатуры.kcm.bin соответственно.

Первый (обычный текстовый) отвечает за соответствие сигналов клавиатуры (Linux key code) сигналам Android (Android key code name) и выглядит как список из таких команд:

key 30 A WAKE
Расшифровка:key [scancode] [Android key] [Flags]
По-русски: если на клавиатуре нажали кнопку с кодом 30, то системе будет послана клавиша А, при этом устройство проснется.

Флаг WAKE заставляет устройство проснуться и отреагировать на нажатие буквой А.
А флаг WAKE_DROPPED заставляет только проснуться, т.е. чтобы нажать А, надо будет нажать ее снова.
В статье есть описание и других флагов.

Второй (скомпилированный из исходника бинарник) отвечает за комбинации клавиш вместе с Shift, Alt и т.п. Здесь уже идет таблица из разных вариантов, описывающих действия над Android key. В исходном виде он выглядит как:

key A {
label: 'A'
base: 'a'
shift, capslock: 'A'
ctrl, alt, meta: none
}


А скомпилирован он для ускорения работы и загрузки устройства.

Решаем что делать

Я написал в техподдержку клавиатуры снова, описав свои наблюдения. Но поддержки от них никакой не добился. Им это не интересно. Придется все делать самому.

Что, опять нужен root?

Для доступа в папку /system нужны права root. Значит нужно его получить и не потерять гарантию. Я долго искал способ и для себя один нашел. Ничего не нужно прошивать. Все можно вернуть назад. ИСПОЛЬЗУЙТЕ НА СВОЙ СТРАХ И РИСК! ВСЕ ТОЛЬКО ДЛЯ ОЗНАКОМЛЕНИЯ! НИКАКОЙ ОТВЕТСТВЕННОСТИ! Но для меня все сработало как надо.

Готовим файл

Чтобы туда что-то положить, нужно подготовить наш файл имя_клавиатуры.kl. И начать стоит с того, чтобы скачать исходный образец. В папку /system/usr/keylayout/ можно попасть и без root, скопировав оттуда нужный нам файл при помощи файлового менеджера. Я воспользовался ASTRO. Но можно воспользоваться консольным приложением adb.exe, поставляемом с Samsung KIES.
Команда adb pull remote local - copy file/dir from device

Первые грабли:
Определить имя нужного файла может быть затруднительно. Общий принцип названия файлов, согласно статье — Vendor_XXXX_Product_XXXX_Version_XXXX.kl или DEVICE_NAME.kl

Ну вот, нашли файл, скачали, сделали копию, открыли текстовым редактором типа notepad.
У меня файл назывался Broadcom_Bluetooth_HID.kl

Тааааак, и что тут у нас?

Все понятно, какие-то коды, какие-то кнопки, что к чему не особо понятно, но мы уже готовы к этому, потому что внимательно читали эту статью с начала и до сюда. А как же определить коды клавиш?

Вторые грабли:
Чтобы определить коды клавиш понадобится средство отладки или...
Просто заходим на маркет и находим то что нужно, не с первой попытки конечно. Я перепробовал 3-4 программы. Не все могли похвастаться нужной функцией — многие отображали только Android коды, которые уже прописаны в нашем файле. А нам нужны scancod'ы!

Получаем scancod'ы

Я «отксерил» свою клавиатуру на копире и ручкой стал подписывать коды, которые мне давала программа KeyEvent Display. Так я получил набор кодов, осталось переписать их в файл и назначить им правильные функции.


Редактируем файл

Открываем первую статью по клавиатурам и методично назначаем новые значения нашим кнопкам.
Получается что-то вроде этого:
# RAPOO E6300 keylayout file
# (c) Nix Pro Soft - Nikita Tratorov, 2012

key 172   HOME   WAKE_DROPPED
key 217   SEARCH   WAKE_DROPPED
key 165   MEDIA_PREVIOUS
key 164   MEDIA_PLAY_PAUSE
key 163   MEDIA_NEXT

key 114   VOLUME_DOWN
key 115   VOLUME_UP

key 1   BACK   WAKE_DROPPED
# key 183

key 41   GRAVE
key 2   1
key 3   2
key 4   3
key 5   4
key 6   5
key 7   6
key 8   7
key 9   8
key 10   9
key 11   0
key 12   MINUS
key 14   DEL

key 15   TAB
key 16   Q
key 17   W
key 18   E
key 19   R
key 20   T
key 21   Y
key 22   U
key 23   I
key 24   O
key 25   P
key 13   EQUALS
key 43   BACKSLASH

key 58   SHIFT_LEFT
key 30   A
key 31   S
key 32   D
key 33   F
key 34   G
key 35   H
key 36   J
key 37   K
key 38   L
key 39   SEMICOLON
key 28   ENTER   WAKE_DROPPED

key 42   SHIFT_LEFT
key 86   GRAVE
key 44   Z
key 45   X
key 46   C
key 47   V
key 48   B
key 49   N
key 50   M
key 51   COMMA
key 52   PERIOD
key 53   SLASH
key 103   DPAD_UP
key 54   SHIFT_RIGHT

key 56   ALT_LEFT
# key 125
# key 161
key 57   SPACE   WAKE_DROPPED
# key 126
key 26   LEFT_BRACKET
key 27   RIGHT_BRACKET
key 40   APOSTROPHE
key 105   DPAD_LEFT
key 108   DPAD_DOWN
key 106   DPAD_RIGHT

# keys for Android >=3.0

key 113   VOLUME_MUTE
key 111   FORWARD_DEL
key 1   ESCAPE   WAKE_DROPPED
key 59   F1
key 60   F2
key 61   F3
key 62   F4
key 63   F5
key 64   F6
key 65   F7
key 66   F8
key 67   F9
key 68   F10
key 87   F11
key 88   F12
key 58   CAPS_LOCK
key 29   CTRL_LEFT
key 104   PAGE_UP
key 93   PAGE_DOWN


Третьи грабли:
Не все кнопки будут работать с Вашей версией Android OS! Обратите внимание на колонку Version в первой статье про клавиатуры. Если вы используете те коду, которые предназначены для версий больше вашей, тогда с этого места клавиатура не будет работать.
Все кнопки, указанные после неправильной не будут функционировать.

Поэтому, для будущей совместимости, я в своем файле, клавиши предназначенные не для моей версии Android OS, перенес в конец. Как показала практика, в этом случае все работает и файл готов к переносу на другие версии ОС.

Закидываем файл в систему

Здесь не обойтись без консольной утилиты. Подключаем девайс по USB в режиме отладки и выполняем последовательно команды в консоли cmd.exe:
d:
cd D:\android-sdks\platform-tools
adb push Broadcom_Bluetooth_HID.kl /data/local/Broadcom_Bluetooth_HID.kl
adb shell
su
mount -o remount,rw -t ext4 /dev/block/mmcblk0p9 /system
rm /system/usr/keylayout/Broadcom_Bluetooth_HID.kl
cp /data/local/Broadcom_Bluetooth_HID.kl /system/usr/keylayout/Broadcom_Bluetooth_HID.kl
chmod 644 /system/usr/keylayout/Broadcom_Bluetooth_HID.kl
exit
exit


Четвертые грабли:
Папка /system находится на файловой системе в режиме только для чтения. Для того, чтобы туда писать, нужно перемонтировать систему в режиме RW. Но для этого, нужно определить точку монтирования и тип файловой системы при помощи простой команды mount.
После перезагрузки устройства, файловая система снова станет «только для чтения».

Пояснения к командам:

D:\android-sdks\platform-tools — это папка, в которой у меня находится adb.exe из SDK (у кого установлен только KIES — ищите в Program Files)
adb push Broadcom_Bluetooth_HID.kl... — это команда закачивает файл в папку. Папка /data/local/ выбрана не случайно. Это одна из немногих папок, в которую можно что-то положить, и из которой можно скопировать файл в другую файловую систему.
mount -o remount,rw -t ext4 /dev/block/mmcblk0p9 /system — перемонтирование системы. В интернете полно примеров как это делать, но там почему-то указаны совсем не те диски и файловая система. Пришлось подкорректировать.
остальное — удаление старого, копирование нашего файла и назначение ему правильных прав. Назначение прав очень важно!

Проверяем

Теперь нужно отсоединить USB (из-за него иногда выключается Bluetooth) и перезапустить соединение с клавиатурой:
  • Если клавиатура не хочет подсоединяться — значит вы забыли установить права, неправильно заполнили файл или положили файл не в ту папку (повторюсь, у каждого устройства они разнятся, читайте первую статью). В общем что-то с файлом.
  • Если клавиатура подключилась, но половина клавиш не работает, значит с того места, где она не работает, вы вставили неподдерживаемый вашей версией код. Переместите его в конец файла.


Заработало!

Поздравляю! По-другому и быть не могло! Вы молодец! Только… как же на русский-то перейти?
Не долго гугля, я нашел простой ответ — нужна софтварная клавиатура, поддерживающая аппаратную. Таких немного. Идеальная, на мой взглад, на сегодня — ruKeybord
Устанавливаем, настраиваем, в раскладках устанавливаем аппаратную клавиатуру вместо qwerty и т.п.
Теперь можно переключать раскладку через Alt+Shift (UPD: или Shift+Space). И флажок показывается.

Кто еще не в курсе, чтобы быстро переключаться между клавиатурами, подержите палец на любом поле ввода и выберите из выпавшего меню «Режим ввода».

Итоги

Как ни старался, но заставить заработать все кнопки, подобно компьютеру, на 2.3.5 невозможно. Но скоро я обновлюсь до Android OS 4 и новые кнопки заработают. На первой фотографии я сижу в putty и редактирую сайт. Очень не хватает кнопки Ctrl. Очень жду обновления ОС. Доволен результатом.

Done!

Спасибо за внимание!
Никита Траторов @NikitaTratorov
карма
17,0
рейтинг 0,0
Инженер в области защиты информации, Fullstack

Самое читаемое

Комментарии (82)

  • +1
    Спасибо, тоже имею планшет (с ICS) и собираюсь покупать клавиатуру, кстати такую же только черную, очень пригодится этот способ т.к. планшет собираюсь использовать и для работы.
    • 0
      Пожалуйста! Они говорят, что у них есть девайс спецом для Андроида под названием E6500. Но ни на сайте, ни в сети о нем ничего нет. Ничего симпатичней и удобнее E6300 я не нашел.

      Кстати, хочу еще мышь подключить. Проверял мышь от Apple — работает на ура. На экране появляется курсор и левая кнопка работает как палец.
      • +1
        www.tinydeal.com/shop/products/rapoo-e6500/110750/?language=ru&change_lang=1 а в продаже уже есть…
        Выглядит так же…
        С мышами на роботе проблем нет, и при чем правая кнопка Назад, а средняя-меню.
        • 0
          О, здорово. Можно и подождать, если лень свой файл сделать или в телефоне ковыряться. В общем от Е6300 почти ничем не отличается. Просто разные коды выдает и HID профиль очевидно подготовлен специально под Андроид.

          Наверное, нужно поковырять второй файл kcm, очевидно в нем могут крыться проблемы с несовместимыми клавишами, с которой я столкнулся.
          • 0
            Вот её и планирую взять, правда один минус — нет русских букв на ней, но это не беда.
            • 0
              Мда. Цена вопроса — 150руб. за наклейки.
              • 0
                Наклейка — 150 рублей. Слепой ввод-бесценно.
                Для всего остального есть MasterCard
                • +1
                  Правильно так: «SOLO на клавиатуре» — N руб. Слепой ввод — бесценно!
        • НЛО прилетело и опубликовало эту надпись здесь
      • 0
        >> Ничего симпатичней и удобнее E6300 я не нашел.

        Я себе такую заказал. Должна придти на днях. Вроде тоже симпотичная)

        www.ebay.com/itm/110796023411
        • 0
          Обратите внимание на уточнение «3.0+». Оно как раз и связано с совместимостью клавиш с версиями андроида.
          • 0
            Теперь я думаю, что Вы меня переплюнули.
  • +2
    Всё проще.
    Столкнулся с аналогичной проблемой, спасла программа Russian Keyboard.
    Переключение раскладки в ней по Shift+Space, дружится с любой клавиатурой и раскладкой.
    • 0
      Shift+Space не совсем удобно и привычно… А так да, тоже как вариант.
    • +3
      Вообще-то я о ней и рассказал в статье :)
      Но там не Shift+Space, а то что я сказал в статье — Alt+Shift.
      Но она не может решить проблему с неработающими клавишами. Например, клавишами управления плеером.
    • +2
      До конца не дочитали ;)
      • 0
        Да, действительно, последние пару абзацев проглядел мельком.)
        Но, наксолько я могу судить по устройству в руках и описанию в Маркете — таки Shift+Space;)
        • 0
          Я ж не по описанию сужу, я ее установил… и таки Alt+Shift. Уж поверьте :)
          • +1
            Но Shift+Space тоже работает. Вот попробовал только что.
  • 0
    А никто подобный девайс с ежевичными телефонами не пробовал?
    • 0
      А вы попробуйте. Найдите знакомого с bluetooth девайсами, и потренируйтесь. Я перед покупкой так и сделал. Правда использовал устройства Apple.
  • +1
    прямо дежавю какое-то: тоже Sgs 2, и тоже эта клава, и тоже думал, как на русский язык переключить.
    • +1
      Спасибо.
      • +4
        Неожиданно. Пожалуйста!
  • 0
    то есть, чтобы просто заставить это устройство работать, нужно долго танцевать с бубном?.. ))
    • 0
      Не пугайтесь. Устройство работает из коробки: можно печатать, ходить по меню, играть в игры и т.д. и т.п. Но чтобы получить от него максимум, придется сделать некоторые телодвижения.
  • +1
    А почему SHIFT_LEFT дублируется на 42 (собственно левый шифт) и 58 (капс)?
    • 0
      на андроиде меньше недели, но смею предположить, что из-за особенности включения капса двойным нажатием шифта.
      • 0
        Не совсем. См. мой ответ ниже.
    • 0
      Это из-за проблем с совместимостью. Клавиша CAPS_LOCK появилась только в версии 3.0, и моим девайсом пока не поддерживается, но чтобы пока сохранить ее функционал, я сделал ее SHIFTом. Привычка — сильная вещь.
  • 0
    Давненько тоже пришлось с ней повозиться, вылечил только ruKeybord. Тоже отписывал производителю, ни ответа ни привета… они бы хоть софтину с ремапом клавиш предоставили… В большинстве обзоров написано, что она поддерживается Андроидом, поэтому и взял без всяких тестдрайвов.
  • 0
    Вот почему я выбираю Андроид! Для него нет понятия «не работает». Есть только понятие «кривые руки». Но это уже их проблемы.
    • 0
      Ну прям. Много моментов, которые все равно не обойти без разработчиков, и я не только про клавиатуру говорю.
  • 0
    У меня desire z со встроенной клавиатурой) не подскажите — можно ли переключение языка сделать одной клавишей?
    • 0
      Desire Z или G2 и какой андроид установлен?
      На 4pda гляньте
      Там есть faq по клавам
    • 0
      Думаю, что можно. Вам нужно выяснить что дает нажатие двух, чтобы выдаваемый ими код перенести на другую клавишу. Попробуйте изучить файлы своих раскладок.
    • 0
      эээ… У меня язык переключается одной клавишей, на которой написано «Язык».
      • 0
        Я забыл упомянуть, что при использовании ICS там через rukeyboard идет и там через шифт-space переключение.

        netmaniac уже выложил apk где вроде переключение одной сделано, но я еще не успел попробовать =)
  • 0
    Подскажите, пожалуйста, а редактированием данных файлов можно добиться переключения раскладки без установки сторонней клавиатуры?
    • 0
      В пределах моего понимания — нет. Ведь нужно заставить устройство применить новый файл kcm (kl-файл за это не отвечает), а как Вы это без программного вмешательства сделаете?
      Как вариант: модифицировать kcm-файл и прописать там для букв русские коды, при удерживании, к примеру Alt. Это может сработать.
  • 0
    rapoo доставляющие клавы делают, а за DIY спасибо
  • +1
    На вид прекрасная клавиатура. А есть их модель, которая будет одновременно работать под Win, Android и iPad? А то зоопарк, не покупать же 3 штуки.
    • 0
      Интересуюсь моделью клавиатуры! Подскажите!
      • 0
        Так я сам спрашиваю ))
    • 0
      У меня такая же клавиатура, что и у автора статьи.

      Проверял под iOS (iPAD), MacOS X и Win7 — работает ок.
    • 0
      Эта клавиатура, и многие другие Rapoo, работают и на Windows без указанных в статье проблем. На коробке с клавиатурой об этом указано буквально: Note: Except iPad hotkeys, the keyboard supports Mac or the PC with Bluetooth function.

      Единственное неудобство с которым Вы можете столкнуться, это вовремя отключать BT на одном устройстве и включать на другом :)
      • 0
        но всё-таки русская раскладка и на iPad работает криво: вместо обозначенной «ё» вводится "\", запятая и точка — не там, где нарисовано.

        обман, всюду обман =(
  • +1
    на экране mcedit? )
    • 0
      Да
    • 0
      Судя по значку в уведомлениях это connectBot через который по ssh подрубились на сервак и уже на серваке запустили mc
    • 0
      Все верно. Это первое, куда лезешь проверять клавиатуру рефлекторно.
  • 0
    В качестве держалки устройства — очки? Интересная идея :)
    • 0
      Ничего удобнее под рукой не нашлось. А очки между прочим перфорационные. У них оправа жесткая и «уши» не разъезжаются от тяжести аппарата.
  • +1
    Автору в помощь
    вместо
    mount -o remount,rw -t ext4 /dev/block/mmcblk0p9 /system
    можно использовать
    adb remount - remounts the /system partition on the device read-write

    >А скомпилирован он для ускорения работы и загрузки устройства.
    В ICS от бинарника отказались и теперь редактировать клаву стало легче
    • 0
      Спасибо за уточнение. Это радует.
  • 0
    Спасибо большое за статью. Имеется планшет с HC 3.2 и вот такая клавиатура. Сильно бесить, что вместо Ecs у нее новое окно браузера — теперь это решаемо!)
    • –2
      Идиот, вот как так можно было написать… «Бесит» вместо «бесить» и «Esc» вместо «Ecs», конечно.
      • 0
        Самокритика, как видите, на хабре не всегда приветствуется ;)
        • +1
          Ничего, сам виноват.
  • +2
    Есть еще вот такой способ получения рута, работает через ADB, список поддерживаемых устройств очень обширный.
  • 0
    Я вот тут прохачил ICS клавиатуру для трансформера, русский, английский, переключение ctrl-shift, говорят работает с внешними клавиатурами тоже, если кто хочет, можете попробовать.

    forum.xda-developers.com/showthread.php?t=1528322
    • 0
      Ваша клавиатура вылетает с FC на планшете Galaxy Tab 8.9 с прошивкой CyanogenMod 9.
      • 0
        Обидно, вроде стандартная с небольшими изменениями. Ладна, буду знать что на других моделях андроида не пашет.
        • 0
          Вы можете переделать стандартную клавиатуру из ICS?
          • 0
            Исходный код из samples Android SDK не поможет?
          • 0
            Могу и переделал, а в чем проблема? Берёте исходники андроида, собираете, забираете LatinIME.apk
            Нужно только изменить package name — стандартная клавиатура подписана другим ключем.
            • 0
              Если бы я это умел, я бы у вас не просил :)
  • 0
    Скажите, а по блютус клавы отрабатывают несколько нажатий одновременно?
    • 0
      Конечно. Ничем от проводной не отличается.
      Я даже больше скажу! Одновременно можно еще и мышь подключить, и они вместе будут работать!
      • 0
        Я просто недавно купил BT мини клавиатуру, но два нажатия одновременно нельзя сделать. Думал это проблема всех BT устройств. Спасибо
        • 0
          Возможно ответ надо искать в принципах работы HID. Но ведь раскладка переключается по Alt+Shift, значит как минимум две кнопки одновременно срабатывают.

          Если разобраться или запустить отладчик клавиатуры, который я упомянул с в своей статье, то видно как работает обработка нажатий. На устройство передаются сигналы событий НАЖАТА/ОТПУЩЕНА. Если зажать несколько клавиш, то устройство получит от каждой сигнал НАЖАТА и с определенным в системе перерывом, будет повторять сигналы нажатия (как это происходит, когда вы держите какую-нибудь кнопку), пока не получит от всех клавиш сигнал ОТПУЩЕНА. Т.е. клавиатура не посылает непрерывно сигналы от нажатых кнопок, только события.
          Значит и канал передачи данных не используется сколько бы клавиш Вы ни держали. А значит, разрядить батарейку удерживая кнопки нельзя.

          Вопрос в том, понимает ли Ваше устройство, что означает зажатое вами сочетание. Может ли оно его обработать. Определено ли оно в конфигурации/драйвере.
          • 0
            Но ведь раскладка переключается по Alt+Shift, значит как минимум две кнопки одновременно срабатывают.

            Кстати интересная идея мне тут в голову пришла: а почему никто до сих пор не догадался сделать отдельную клавишу для переключения языков/раскладок? Прецеденты добавления и стандартизации (как минимум де-факто) новых клавиш, гораздо менее нужных (IMHO), но таки повышающих удобство были: клавиши с логотипом Windows и контекстного меню, клавиши управления мультимедиа плеерами, клавиши управления питанием и т.п…
            • +1
              Такая есть практически на всех клавиатурных телефонах, продающихся в России.
              Что же касается компьютерной клавиатуры. то можно просто замапить на не нужную кнопку,
              я обычно переключение раскладки вешаю на Caps Lock
  • 0
    Хочу купить себе такую клавиатуру, интересует один момент. Если долго не печатать, клавиатура впадёт в спячку и придётся подключать её заново? Если да, то через сколько минут простоя это произойдёт?
    • 0
      После прихода ICS проблема «отваливания» клавиатуры встала очень остро. В первую очередь потому, что она сама не переподключается. Долгие бои с техподдержкой Samsung ни к чему не привели. Хотя, на недавнем обновлении 4.0.1, я заметил, что клавиатурой снова можно пользоваться. Пока полет нормальный.
      • 0
        Nexus7, сток 4.1.1/4.2.1 — клавиатурка отваливаеться и не возвращаеться к жизни. помогает только распаровать/спаровать обратно.
        SGS I (AT&T), cyanogen 4.0.4 — симптомы те же.
        брал больше для нексуса, но разочарован. какие нибуть альтернативы есть?
        • 0
          Увы. Стала наблюдаться та же ботва. Только пере-pair-ывание помогает.
          Альтернатива, я думаю, покупка клавиатуры спецом под Android.
  • 0
    Кто обратил внимание, что при подключении BT-клавиатуры телефон запускает софтварную клавиатуру Samsung QWERTY, даже если она была отключена? На 4.0.1 все прекрасно работает, кроме переключения раскладки.
    • 0
      Хотя, при возникновении проблем, следует выполнить ряд простых действий:
      — перезапустить BT на телефоне
      — перезапустить клаву и нажать на ней Connect (всандалить в режим сопряжения)
      — в настройках BT телефона ткнуть пальцем в клавиатуру из списка сопряженных
      — подождать секунд 10-20
      — пользоваться.

      Бывает, если торопиться, то она снова уходит в циклическое переподключение.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.