LINUX.ORG.RU

Начата работа над новым диспетчером очереди печати printerd

 ,


1

3

Автор утилиты system-config-printer Тим Воу (Tim Waugh) объявил о начале работы над новым диспетчером очереди печати printerd. В отличие от CUPS, printerd предоставляет единственный интерфейс через систему D-Bus. Такой интерфейс упростит интеграцию с десктопными приложениям. Поддержку протокола IPP планируется реализовать с помощью промежуточного демона, работающего в отдельном процессе.

Было принято решение, что единственным входным форматом печатаемых файлов будет PDF. Также заявлено, что будут поддерживаться все существующие драйверы и бекенды системы CUPS.

Уже реализован базовый каркас приложения и простая консольная утилита для управления демоном. Исходный код доступен здесь.

>>> Подробности

anonymous

Проверено: DoctorSinus ()

Ответ на: комментарий от AEP

Не надо путать весь язык и набор графических операторов. Набор графических операторов действительно похож, и в спецификации PDF даже есть таблица перевода. По поводу конструкций самого языка - в PDF нет циклов (которые, собственно, и представляют опасность зацикливания), в PostScript есть.

Разве нельзя ввести проверку на зацикливание? Тем более что большинство сетевых принтеров поддерживает именно PS на вход - конвертация «документ->ps->pdf->ps->printer» выглядит идиотизмом.

Censo ()
Ответ на: комментарий от LamerOk

Собираются. За копроративный.

Айай, как тонко. :)

cruxish ★★★★ ()
Ответ на: комментарий от VoDA

а чем обоснован самостоятельный старт без init-а?

Ничем. Кроме того, нарушение юникс-вея. Но другого ничего нет. И не будет. Вот и все обоснование.

Зато, по уже устоявшейся традиции, меры по обеспечению безопасности будут прикручивать где-то сбоку, вместо того чтобы позволять каждой подсистеме заниматься своим собственным делом. Хотя может быть с приходом systemd положение может быть как-то исправится. Т.е. D-Bus, вместо того чтобы стартовать сервисы самостоятельно, будет говорить systemd (через D-Bus) что именно и как стартовать.

Macil ★★★★★ ()
Ответ на: комментарий от Macil

Ничем. Кроме того, нарушение юникс-вея.

Тогда у тебя вообще всё, что стартует, не будучи прописанным в /etc/inittab, нарушает юникс-вей: все скрипты, запускающие 100500 демонов при старте системы (ситуация практически один-в-один с dbus'ом: некий процесс берет и самостоятельно, без init'а, запускает на выполнение файлы, лежащие в некоторой директории); автозапуск приложений всех DE туда же и тд и тп.

kss ★★★★★ ()
Ответ на: комментарий от Censo

И что же конкретно мешает?

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

RedPossum ★★★★★ ()
Ответ на: комментарий от AVL2

PS скорее язык программирования, чем язык описания бумажной копии.

Это не «скорее», это и есть полноценный язык программирования, специализированный на формировании векторных изображений в асболютных единицах измерения. Т.е. инструмент предназначенный для описания сложных графических объектов в т.ч. и на твёрдой копии не зависимо от технических возможностей конечного вычислителя - растеризатора.

LamerOk ★★★★★ ()
Ответ на: комментарий от kss

Тогда у тебя вообще всё, что стартует, не будучи прописанным в /etc/inittab, нарушает юникс-вей

Не нарушает. Юникс-вей не запрещает дублирование функционала.

Macil ★★★★★ ()
Ответ на: комментарий от Censo

Разве нельзя ввести проверку на зацикливание?

На практике угроза зацикливания сильно преувеличена. Интерпретатор пострипта прошивают в принтеры последние 30 лет, где он прекрасно себя чувствует, а проблема ухода в вечный цикл решается временнЫм ограничением на выполнение.

LamerOk ★★★★★ ()
Ответ на: комментарий от Macil

Тогда не понимаю суть твоей претензии к dbus: он делает ровно тоже самое, что делают все остальные и что общепринято.

kss ★★★★★ ()
Ответ на: комментарий от Quasar

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

Ну и кроме того, продавцам-консультантам и прочим менеджерам по продажам тоже нужны десктопы...

LamerOk ★★★★★ ()
Ответ на: комментарий от Quasar

Сам по себе вяленд не нужен. Вяленд нужен как средство минимизации оверхеда для софта, который будет работать напрямую с ним.

LamerOk ★★★★★ ()
Ответ на: комментарий от tailgunner

а внутри пс (третьего) - пдф. это рекурсия или цикл получается?

xsektorx ★★★ ()

Подброшу дровишек в срач: http://cyberelk.net/tim/2012/05/10/announcing-printerd/comment-page-1/#commen... Вот здесь какой-то чувак, видимо с лора, спрашивает насчёт «почему только ПДФ». Суть сводится к тому, что в пдф'ке уже всё описано, её не надо просчитывать.

В остальном а) printrd использует d-bus, б) также он использует полисикит, в) у капс'а есть свой механизм безопасности г) капс написали не в редхате (ко-ко-ко).

anonymous ()
Ответ на: комментарий от anonymous

А, ещё, он хочет отделить ipp сервер от спулера. Правда тогда возможны 2 варианта: либо они будут писать ещё и ipp-сервер, либо мы лишимся удалённой печати в ближайшие год-два, до тех пор пока сообщество не раздуплится и не напишет его само.

anonymous ()
Ответ на: комментарий от LamerOk

Это не «скорее», это и есть полноценный язык программирования, специализированный на формировании векторных изображений в асболютных единицах измерения.

ну и зачем использовать оный в качестве формата описания страницы?

AVL2 ★★★★★ ()

А принтеры после этого не поотваливаются?

В общем-то и сейчас многие работают не так, как надо...

jackill ★★★★★ ()
Ответ на: комментарий от Deleted

У PS - свои преимущества. Как минимум то, что его жрут многие принтеры как есть. Да и стандарт на него открыт насколько я помню.

Dark_SavanT ★★★★★ ()
Ответ на: комментарий от Dark_SavanT

У PS - свои преимущества. Как минимум то, что его жрут многие принтеры как есть. Да и стандарт на него открыт насколько я помню.

Если на принтере написано, что принимает PS, то из этого никак не вытекает, что он принимает его «как есть». Все равно его фильтровать надо.

Сделать из pdf -> ps как два пальца об асфальт.

AVL2 ★★★★★ ()
Ответ на: комментарий от AVL2

ну и зачем использовать оный в качестве формата описания страницы?

Выше уже написали - это «нативный» формат для любых не вендо-принтеров. И для всех сетевых. Плюс к этому с постскриптом работает море софта.

Если на принтере написано, что принимает PS, то из этого никак не вытекает, что он принимает его «как есть». Все равно его фильтровать надо.

Не надо его «фильтровать». Это иллюзия, что можно как-то что-то «фильтровать» в печати. Любой, кто имеет доступ к принтеру, может зафигарить на него документ в 100500 страниц со словом из трёх букв на каждой 72-ым кеглем, и это значительно хуже, чем «вечный цикл», который будет прибит прошивкой принтера, который уже менее чем через минуту будет обрабатывать следующее задание.

LamerOk ★★★★★ ()
Ответ на: комментарий от LamerOk

Выше уже написали - это «нативный» формат для любых не вендо-принтеров. И для всех сетевых. Плюс к этому с постскриптом работает море софта.

и это море софта периодически выдает вместо ожидаемого листочка page error@ в количестве 200 штук А4.

Не надо его «фильтровать». Это иллюзия, что можно как-то что-то «фильтровать» в печати.

ps2ps, стало быть иллюзия. Но ведь есть. ppd тоже иллюзия. и тоже есть. ps разных уровней тоже, вероятно, фантазия.

Любой, кто имеет доступ к принтеру, может зафигарить на него документ в 100500 страниц со словом из трёх букв на каждой 72-ым кеглем, и это значительно хуже,

А в чем тут криминал? Если человеку надо печатать именно это? Содержимое задания и его необходимость не обсуждается.

AVL2 ★★★★★ ()
Ответ на: комментарий от LamerOk

Если ты хотел высказать какую-то мысль, то, прости, я не смог её обнаружить.

да мысль простая. Что ps, что pdf надо преобразовывать, чтобы принтер его гарантированно скушал. Преобразование ps->pdf и обратно делается уже очень давно и с этой точки зрения нет никакой разницы, в каком конкретно формате идет обработка внутри спулера. А вот организовать безглючную работу спулера на основе pdf проще просто потому, что пдф не нужно интерпретировать, чтобы узнать, сколько же в нем страниц и т.п.

AVL2 ★★★★★ ()
Ответ на: комментарий от AVL2

Что ps, что pdf надо преобразовывать, чтобы принтер его гарантированно скушал.

С какого потолка ты берешь такие бредовые тезисы? Я повторяю второй раз, медленно и печально, уже сто лет в обед нормальные принтеры спокойно кушают ps без всяких преобразований.

Преобразование ps->pdf и обратно делается уже очень давно и с этой точки зрения нет никакой разницы, в каком конкретно формате идет обработка внутри спулера.

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

Я уж не говорю о том, что отдельные деятели/софтины любят зафигаривать в пдф стандартные шрифты в виде кривых, тогда как эти же самые шрифты есть в прошивке принтера, так что в итоге можно получить некислую разницу во времени обработки запроса, не говоря уже о печатном результате.

А вот организовать безглючную работу спулера на основе pdf проще просто потому, что пдф не нужно интерпретировать, чтобы узнать, сколько же в нем страниц и т.п.

Спулеру совершенно фиолетово, в каком формате храняться данные. Если это нормально сделанная система, как в венде, когда спулер служит посредником между софтиной и драйвером принтера, спулер в любом случае будет знать количество страниц. Если это lpr, то он количества страниц даже для текстового документа не знает, не говоря уже о ps/pdf.

Ты выдумал несуществующую проблему и очень убедительно её решаешь.

LamerOk ★★★★★ ()
Ответ на: комментарий от Quasar

Тео, где Linux, и где твоя бздя?
Давно в OpenSSH появился IP v6? То-то же.

X10Dead ★★★★★ ()
Ответ на: комментарий от LamerOk

Простите что вмешиваюсь...

... не мог пройти мимо.

Я повторяю второй раз, медленно и печально, уже сто лет в обед нормальные принтеры спокойно кушают ps без всяких преобразований.

Сто лет в обед в нормальные принтеры интегрирован контроллер (интерпретатор) языка PostScript (ps/eps/pcl), которые делают всю работу по преобразованию. Прозрачно для пользователя, но делают.

Ненормальные (домашние дешовки) возлагали всю работу на тот же ghostscript. Хотя, в напши времена такое чудо надо ещё и поискать.

Я уж не говорю о том, что отдельные деятели/софтины любят зафигаривать в пдф стандартные шрифты в виде кривых, тогда как эти же самые шрифты есть в прошивке принтера, так что в итоге можно получить некислую разницу во времени обработки запроса, не говоря уже о печатном результате.

А в PS шрифты сами по себе только векторные. Описанным Вами способом (со шрифтами в прошивке), ЕМНИП, решалась проблема Type 3 (truetype) шрифтов. Т.е., в прошивку заряжалось энное число картинок, потом научили по-моему, рпиводить шрифты Type 3 к шрифтам Type 1, основанных на кривых Безье. Но я не уверен, могу и ошибаться. Можно поискать информацию по данному поводу и проверить мои слова.

И да. Печатный результат битмаппед-шрифтов из прошивки — откровенное говно. Там что-то с глифами было не так, если я не ошибаюсь.

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

Простите, но вот это в лес. Сразу. Посчитать число страниц всё-таки лучше в самом приложении, которое печатает что-то. А не внутри системы печати. Пусть она просто печатает.

anonymous ()
Ответ на: комментарий от AEP

Не надо путать весь язык и набор графических операторов. Набор графических операторов действительно похож, и в спецификации PDF даже есть таблица перевода.

Вот ты сам себе и ответил, «почему не растр».

tailgunner ★★★★★ ()
Ответ на: Как-то один дилетант... от anonymous

Ноев ковчег построил как ни крути, а полный дилетант. Профессионалы запилили «Титаник»

Если ты не знал - Линус профессионал уже почти 20 лет. И к работе над ядром сразу подключились профессионалы (вроде Кокса или того же T'so, участника еще проекта Athena).

tailgunner ★★★★★ ()
Ответ на: Простите что вмешиваюсь... от anonymous

Простите что вмешиваюсь...

Да ничего страшного.

Сто лет в обед в нормальные принтеры интегрирован контроллер (интерпретатор) языка PostScript (ps/eps/pcl)

Спасибо, а то мне надоело это писать одному. Писать одно и тоже вдвоём гораздо легче. Вот только PCL к постскрипту никакого отношения не имеет, а eps - формат файла. А в остальном ты правильно излагаешь мою точку зрения. ;)

которые делают всю работу по преобразованию. Прозрачно для пользователя, но делают.

Какого еще «преобразования»? Мы о линии «компьютер»-«принтер» говорим. Я, во всяком случае. На этой линии прошивка принтера ничего не преобразует, она молча кушает, что дают. В т.ч. и постскрипт.

А в PS шрифты сами по себе только векторные. Описанным Вами способом (со шрифтами в прошивке), ЕМНИП, решалась проблема Type 3 (truetype) шрифтов.

Нет. Описанным мною способом решалось:

1. Наличие интерпретатора постскрипта. Интерпретатор посткрипта обязан иметь что-то около шести стандартных шрифтов. В посткрипте не нужно рисовать каждую букву, достаточно сказать «напечатай в позиции икс, игрек букву «Т» гарнитурой таймс, четырнадцатым кеглем». Остальное - забота интерпретатора.

2. Скорость и качество печати. Поскольку шрифты уже в прошивке, для каждого глифа и каждого размера можно подобрать готовый набор команд для отображения. В противном случае, надо будет для печати _каждого_ документа вычислять по-новой как печатать одни и те же глифы. А если в документе еще и шрифта нет и все буквы переданы как набор кривых, то одну и ту же букву в одном и том же шрифте и одного и того же размера придётся вычислять по тридцать три раза. Интерпретаторы постскрипта умны, но не настолько, чтобы делать по кривым OCR.

Простите, но вот это в лес. Сразу. Посчитать число страниц всё-таки лучше в самом приложении, которое печатает что-то.

Это, если мы НЕ хотим, чтобы система печати знала количество страниц. А если хотим, то другого пути нет.

LamerOk ★★★★★ ()
Ответ на: комментарий от tailgunner

Спасибо что сказал.

Если ты не знал - Линус профессионал уже почти 20 лет.

while( !understood_irony ) {
    read_that_message( tailgunner );
}

Так будет понятнее?

И да, где тут у вас что-нибуть типа тега code=irony? Про отсутствие анимированных смайлов я в курсе... /* это то же ирония, если что. */

anonymous ()
Ответ на: комментарий от D_Lans

смирись у мира нет контроллера и не появится. адаптивный хаос во все поля.

Thero ★★★★★ ()
Ответ на: комментарий от AVL2

Да, как я уже говорил, у нас есть пример Непомнюка ;)

AlexM ★★★★★ ()
Ответ на: комментарий от Macil

умеет самостоятельно стартовать свои сервисы помимо init-системы.

О_о мне хочется знать частный пример в деталях когда дбас так себя ведёт.

ЗЫ разве сервисы стартовать может не любая программа запущенная от рута?

Thero ★★★★★ ()
Ответ на: комментарий от tailgunner

Сделаем из Linux однопользовательский MacOS!

Я догадался: это, типа, ирония, да?

но я подозреваю, что они есть и в CUPS.

В купс они, наверняка, где-то есть, но, тем не менее, штатным механизмом его конфигурирования является localhost:631

а сам dbus, похоже, стараются сделать новым стандартом RPC

На четвёртые сутки Верный Глаз заметил, что в сарае нет одной стены.

непонятно - внутимашииным или межмашинным.

Э-э-э... Надеюсь, через некоторое время и это тайное станет явным ;)

IPP включает в себя управление, заданиями на печать, так что проверять права таки нужно.

Э-э-э, на уровне _internet_ протокола. А так, максимум — dbus'ные полиси. Которые, кстати, _уже_ реализованы вне логики приложений, его использующих.

AlexM ★★★★★ ()
Ответ на: комментарий от kss

он знает как сделать правильнее.. но знает что это не критично.

Thero ★★★★★ ()
Ответ на: комментарий от AlexM

а сам dbus, похоже, стараются сделать новым стандартом RPC

На четвёртые сутки Верный Глаз заметил, что в сарае нет одной стены.

Пока что это только слуховое окно, мой бледнолицый друг. По крайней мере, это первая известная мне попытка создать API общего назначения (не специфичный десктопный) на dbus.

IPP включает в себя управление, заданиями на печать, так что проверять права таки нужно.

Э-э-э, на уровне _internet_ протокола. А так, максимум — dbus'ные полиси

Я понимаю, что ты пытаешься что-то сказать, но смысл таоих слов от меня ускользает.

tailgunner ★★★★★ ()
Ответ на: комментарий от Deleted

Да, попутал. Но в любом случае ГПЛ и ГПЛ-владелец-аппле это разные вещи. Так что вторая часть в любом случае остаётся.

mine ()
Ответ на: комментарий от tailgunner

Не я один, походу...

Хорошая отмазка.

Не мне сказано, но всё же:

но смысл таоих слов от меня ускользает.

Что-то мне подсказывает что не я один остаюсь непонятым... :)))

/* Кстати, тут уже надо бы ставить code=sarcasm. */

anonymous ()
Ответ на: комментарий от LamerOk

Вот только PCL к постскрипту никакого отношения не имеет, а eps - формат файла. А в остальном ты правильно излагаешь мою точку зрения. ;)

Тут да... PCL это поделие HP, плюс что-то там от адьюльта с M$ у них. А вот EPS это несколько ограниченный PS, который планировался как да, согласен, чего-то типа «формата файла», но тем не менее это всё-таки PostScript. Это программное описание документа.

С PDF всё проще — это просто формат файла (сразу). Задач не много — обеспечить хранение объектов, описывающих документ, замену шрифтов по необходимости и ни какого программного описания. Ну и отображение на любом устройстве вывода возможно более простыми средствами.

Мы о линии «компьютер»-«принтер» говорим. Я, во всяком случае. На этой линии прошивка принтера ничего не преобразует, она молча кушает, что дают. В т.ч. и постскрипт.

Тут да. На этой линии просто негде. Преобразование либо на компьютере, либо на принтере. :)

Интерпретатор посткрипта обязан иметь что-то около шести стандартных шрифтов. В посткрипте не нужно рисовать каждую букву, достаточно сказать «напечатай в позиции икс, игрек букву «Т» гарнитурой таймс, четырнадцатым кеглем». Остальное - забота интерпретатора.

Во времена тотального unicode и дизайнерских извратов по шрифтам, этот подход не очень. Либо делать прошивку с размером мама не горюй, либо рисовать по кривым. Страдает либо время, либо качество. Стандартными шрифтами тут не обойдёшься, IMHO.

А если в документе еще и шрифта нет и все буквы переданы как набор кривых, то одну и ту же букву в одном и том же шрифте и одного и того же размера придётся вычислять по тридцать три раза

Возможно что и нет. Я не сталкивался с контроллерами принтеров, но наверное там есть что-то типа кеширования описаний символов для данного (печатаемого) документа как минимум...

Это, если мы НЕ хотим, чтобы система печати знала количество страниц. А если хотим, то другого пути нет.

Да. Но я просто не уверен в том, что эта информация для системы печати имеет какой-то смысл... Не более.

anonymous ()
Ответ на: комментарий от anonymous

С PDF всё проще — это просто формат файла (сразу). Задач не много — обеспечить хранение объектов, описывающих документ, замену шрифтов по необходимости и ни какого программного описания. Ну и отображение на любом устройстве вывода возможно более простыми средствами.

Ага. А еще формы для ввода данных, шифрация, защита от копирования или печати, джаваскрипт.. Короче, сама простота. Куда там такому сложному и неповоротливому монстру как постскрипт?! ;))

Во времена тотального unicode и дизайнерских извратов по шрифтам, этот подход не очень.

Тотальный юникод прекрасно трансформируется в имена глифов постскрипта, которому на кодировку совершенно пофиг, а дизайнерские извраты очень далеки от повседневной офисной жизни принтеров. ;)

Либо делать прошивку с размером мама не горюй,

Десять лет назад принтеры шли с 4/8/16 мегабайтами памяти и возможностью её нарастить. Для постскрипта хватало.

Стандартными шрифтами тут не обойдёшься, IMHO.

99% напечатанных листов в офисных принтерах состоят исключительно из таймса и ариала. Оставшиеся полпроцента от процента из куриера. На дизайнерские шрефтовые изыски приходится исчезающе малая часть.

А если в документе еще и шрифта нет и все буквы переданы как набор кривых, то одну и ту же букву в одном и том же шрифте и одного и того же размера придётся вычислять по тридцать три раза

Возможно что и нет. Я не сталкивался с контроллерами принтеров, но наверное там есть что-то типа кеширования описаний символов

Читай медленно и внимательно:

все буквы переданы как набор кривых
буквы переданы как набор кривых
переданы как набор кривых
набор кривых
кривых

Нету в таких документах «символов», нечего там кэшировать. Это, собственно, один из главных минусов pdf как формата - очень многие движки преобразуют любые нелатинские символы в векторные изображения на случай, если на целевой платформе не будет глифов нужной кодировки.

Для постскрипта такая практика не принята, там используются корректные имена глифов, а забота об их отображении ложиться на растеризатор.

LamerOk ★★★★★ ()
Ответ на: комментарий от LamerOk

С какого потолка ты берешь такие бредовые тезисы? Я повторяю второй раз, медленно и печально, уже сто лет в обед нормальные принтеры спокойно кушают ps без всяких преобразований.

Не принтеры, а всего один принтер. И стоит этот принтер на одной полке с нормальным приемником, который принимает все радиостанции, а полка эта висит в доме человека, который знает все языки мира.

Жаль, что все это осталось в детстве. А в жизни даже у принтера киосера-мита 8500 ценой под 200000р проблем больше, чем в бесплатном gs.

Я уж не говорю о том, что отдельные деятели/софтины любят зафигаривать в пдф стандартные шрифты в виде кривых, тогда как эти же самые шрифты есть в прошивке принтера,

ага, в том сферическом принтере еще и все шрифты с полной таблицей юникода вшиты. А чего, мечтать, так мечтать...

А в жизни все наши постскриптные киосеры и хп с прямой печатью из пдф, отказались печатать пдф на том основании, что в нем был упомянут отсутствующий шрифт (текста даже не было, это был скан книжки) и только фильтрация позволила распечатать оную книжку.

AVL2 ★★★★★ ()
Ответ на: комментарий от AVL2

Я уж не говорю о том, что отдельные деятели/софтины любят зафигаривать в пдф стандартные шрифты в виде кривых, тогда как эти же самые шрифты есть в прошивке принтера,

ага, в том сферическом принтере еще и все шрифты с полной таблицей юникода вшиты. А чего, мечтать, так мечтать...

А в жизни все наши постскриптные киосеры и хп с прямой печатью из пдф, отказались печатать пдф на том основании, что в нем был упомянут отсутствующий шрифт (текста даже не было, это был скан книжки) и только фильтрация позволила распечатать оную книжку.

Не знаю о каких сферических принтерах идет речь, но массовые принтеры по цене дешевле 12-ти тысяч печатают pdf либо с внутренними шрифтами либо начинают печатать по 1-ой странице в течении 1-5 минут или принтер выдает внутреннюю ошибку, или вместо букв текста оказывается произвольный набор глифов, что явно не относится к нормальной работе. Поэтому почти все pdf сейчас принудительно растеризуются при печати.

anonymous ()

Позитивная новость.

А вот это как понимать

anonymous (22.05.2012 20:31:09)

Анонам же нельзя новости писать, или я слишком долго был в криокамере?

anonymous ()
Ответ на: комментарий от anonymous

ну наши киосеры за исключением одной книжки справляются с печатью пдф и постскрипта очень неплохо. Хотя даже гига памяти им иногда не хватает.

AVL2 ★★★★★ ()
Ответ на: комментарий от AVL2

ну и зачем использовать оный в качестве формата описания страницы?

Потому что он был придуман для описания страниц //К.О.

anonymous ()
Ответ на: комментарий от AVL2

Сделать из pdf -> ps как два пальца об асфальт.

4.2

Ты действительно такой ламер, или недавно переболел чем-то?

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.