Полезная информация

Будьте в курсе последних изменений в мире Mozilla, следя за нашим микроблогом в Twitter.

№292623-02-2011 15:12:30

Йцукен
  
 
Группа: Extensions
Зарегистрирован: 05-06-2008
Сообщений: 4773
UA: Firefox 3.6

Re: Adblock Plus для Firefox (автор Владимир Палант)

Lain_13
Уже сделал.

Добавлено 23-02-2011 15:21:52
Размер антипорно-подписки сократился с 212.1 КБ до 193.4 КБ. Правда, это отчасти за счёт создания общих правил, но обобщил я на этот раз мало что.

Отсутствует

 

№292723-02-2011 18:14:52

Small_Z
Участник
 
Группа: Members
Зарегистрирован: 18-02-2011
Сообщений: 11
UA: Opera 11.0

Re: Adblock Plus для Firefox (автор Владимир Палант)

С какой версии абп не различает строч. и заглавные буквы?
Нет ли способа включить это в конфиге принудительно как то?

Отсутствует

 

№292823-02-2011 18:48:57

Lain_13
Забанен
 
Группа: Members
Откуда: Волшебная Страна
Зарегистрирован: 26-04-2006
Сообщений: 10320
UA: Firefox 4.0

Re: Adblock Plus для Firefox (автор Владимир Палант)

Small_Z
Да изначально. Есть $match-case если нужно такое поведение.

Отсутствует

 

№292923-02-2011 20:06:45

Йцукен
  
 
Группа: Extensions
Зарегистрирован: 05-06-2008
Сообщений: 4773
UA: Firefox 3.6

Re: Adblock Plus для Firefox (автор Владимир Палант)

Small_Z
В правилах блокировки всегда так было.
Есть или нет в конфиге, не знаю (неохота на оф. сайте читать), но даже если есть, включать не советую, потому что подписки на это не рассчитаны. Просто добавляйте $match-case (это опция «учитывать регистр букв» в мастере составления правил) в конце тех правил, для которых это важно. Вообще за всё немалое время, сколько я пользуюсь Adblock Plus и участвую в составлении подписок, я использовал эту опцию всего в одном исключении и то только для подстраховки. В нашей подписке есть одно правило с $match-case ,  но кажется, само это правило уже давно не нужно и не знаю, зачем там нужен был учёт регистра.
В правилах скрытия не различается регистр в названиях тегов и атрибутов, но различается в значениях атрибутов, и это изменить нельзя.

Отредактировано Радик245 (24-02-2011 12:01:50)

Отсутствует

 

№293024-02-2011 11:47:33

Владимиp Палант
Участник
 
Группа: Extensions
Зарегистрирован: 06-11-2004
Сообщений: 906
UA: Firefox 3.6
Веб-сайт

Re: Adblock Plus для Firefox (автор Владимир Палант)

Радик245
Люди не читают предупреждения. И не знают, зачем щелкают на кнопку "Block" видео, которое смотрят. Увидев диалог они случайным образом выбирают одну из трех кнопок, чтобы от него избавиться - то есть шансы, что они добавять правило, в районе 30%. Сообщения лишь еще раз указали на то, что это серьезная проблема. Для большинства пользователей вполне достаточно возможности отключить Adblock Plus на сайте и отправить сообщение - подписки не идеальны, но мало у кого выйдет лучше.

example.com,example.org,site.org##foo по быстродействию не отличается от отдельных правил по доменам, но по крайней мере стили будут более компактными - а это в теории меньший расход памяти и более быстрый запуск. То же самое касается ##A[href*="foo"],A[href*="something"].

В случае неоптимируемых правил одна регулярка как правило будет быстрее - но и существенно запутанней. Поэтому заменять десяток правил одной регуляркой я все-таки не рекомендую. Adblock Plus преобразует || в ^[\w\-]+:\/+(?!\/)(?:[^\/]+\.)?

Радик245 пишет

В правилах скрытия не различается регистр в названиях тегов, но различается в атрибутах, и это изменить нельзя.

Это свойство HTML - регистр в названиях тегов и атрибутов игнорируется, но значений атрибутов это не касается. В интернете редко, но попадается XHTML (к примеру http://planet.mozilla.org/) - тут регистр букв учитывается всегда.

Отсутствует

 

№293124-02-2011 12:43:43

Йцукен
  
 
Группа: Extensions
Зарегистрирован: 05-06-2008
Сообщений: 4773
UA: Firefox 3.6

Re: Adblock Plus для Firefox (автор Владимир Палант)

Владимиp Палант
Большое спасибо!

В случае неоптимируемых правил одна регулярка как правило будет быстрее - но и существенно запутанней.

Скорее всего, распутывать мне придётся лишь собственное творчество, притом эти правила несложные, одного вида — блокируют определённые слова в начале домена, так что регулярка получается не очень сложная. В нескольких регулярках, которые уже есть в антипорнушке, разбираюсь — надеюсь, и с этой не запутаюсь. А скорость для антипорно-подписки важна: хотя сам я не замечаю, чтобы она тормозила, но жалобы есть (возможно, дело не столько в производительности компьютера, сколько в скорости подключения к интернету — на очень высокой разница с подпиской и без должна быть заметнее). Это несмотря на то, что при нынешнем алгоритме почти все правила, о которых я упомянул, оптимизируются.

И не знают, зачем щелкают на кнопку "Block" видео, которое смотрят.

Такое не лечится… Разве что заменить надпись на «Блокировать видео» — длинно, не очень правильно, когда эта кнопка будет показываться для флеш-анимации, зато защитит хотя бы от части таких нажатий, когда блокируют, потому что думают: «Adblock Plus знает, что нужно блокировать, раз предлагает». :)

Увидев диалог они случайным образом выбирают одну из трех кнопок, чтобы от него избавиться

А я думаю, что они нажимают только на ту кнопку, которая и позволяет от него избавиться — «Добавить фильтр». А вот то, что в этом диалоге часто по умолчанию предлагаются страшные правила (особенно тогда, когда адрес короткий), знаю точно, и то, что Вы хотите сделать, эту проблему не решит, так как те, кто включит добавление правил (или у кого они уже есть), в большинстве своём будут выбирать то правило, которое предлагает Adblock Plus (точнее, ничего не будут выбирать, а просто нажимать кнопку «Добавить фильтр»). Поэтому моё предложение по совершенствованию мастера составления фильтров не теряет значимости и в случае, если по умолчанию добавление правил будет отключено.
Вместо полного отключения по умолчанию создания правил можно только убрать кнопку «Блокировать», а блокировку изображений через контекстное меню сделать без диалога, по полному адресу (возможно, с автоматической заменой http:// и http://www. на || ). Естественно, с возможностью включить полноценное добавление правил!
Вообще думаю, что достаточно будет доработать мастер добавления правил и заменить надпись на кнопке «Блокировать» на «Блокировать видео» (можно отключить по умолчанию «Показывать ярлык на Flash и Java», но это хуже, чем полное отключение составления правил, потому что почти никто не догадается включить, даже не заметят этой настройки или не поймут, что она значит).

Отредактировано Радик245 (24-02-2011 13:02:10)

Отсутствует

 

№293224-02-2011 12:55:45

Lain_13
Забанен
 
Группа: Members
Откуда: Волшебная Страна
Зарегистрирован: 26-04-2006
Сообщений: 10320
UA: Firefox 4.0

Re: Adblock Plus для Firefox (автор Владимир Палант)

Владимиp Палант
> Adblock Plus преобразует || в ^[\w\-]+:\/+(?!\/)(?:[^\/]+\.)?

1. Что даёт «(?!\/)» после «\/+»? Если я правильно понимаю, то только время тратит на не нужную проверку отсутствия «/» после серии из символов «/». Это имело бы смысл в случае ленивого квантификатора «+?» (который здесь даром не нужен), но в случае обычного квантификатора жадности «+» он сначала сожрёт всю последовательность символов «//», а потом посмотрит непосредственно на следующий символ и лишь убедится в том, что это не «/». Зачем?

2. Почему «(?:[^\/]+\.)?», а не «(?:[^./]+\.)*?»? Ты же заставляешь интерпретатор сначала доходить до конца имени домена, а потом отдавать строку обратно по 1 символу и сверять его с точкой. Сверка не прошла? -1 символ и снова сверка. Прошла? Пытаемся идти дальше.
В моём варианте интерпретатор будет пытаться откусывать целые блоки до точки + точка, а из-за ленивого квантификатора будет стартовать с нуля таких блоков и пытаться этот участок пропустить вовсе.

3. «/» не нужно эскейпить вовсе, а «-» не нужно эскейпить внутри группы если этот символ стоит последним (он не создаёт открытой с одного края последовательности).

Т.е. я предлагаю использовать:

Выделить код

Код:

^[\w-]+:/+(?:[^./]+\.)*?

Такая регулярка куда более оптимальна по времени исполнения.

Кстати, согласно POSIX «\w» эквивалентно «[A-Za-z0-9_]», но на сколько я знаю на практике это часто оказывается «любая буква любого алфавита и знак подчёркивания». Как оно реализовано конкретно в JS я не знаю. Если я правильно понимаю, то там никогда не бывает ни чего кроме «[A-Za-z-]+» (причём A-Z тут для ситуации с $match-case и без него можно добавлять просто «[a-z-]+»). Может лучше так?

Отредактировано Lain_13 (24-02-2011 12:57:07)

Отсутствует

 

№293324-02-2011 13:13:49

Владимиp Палант
Участник
 
Группа: Extensions
Зарегистрирован: 06-11-2004
Сообщений: 906
UA: Firefox 3.6
Веб-сайт

Re: Adblock Plus для Firefox (автор Владимир Палант)

Lain_13
1. Правило ||/example.com^ - неправильное и не должно срабатывать.

2. Правило ||example.com^ должно срабатывать и для http://foo.bar.example.com/

3. Можно не эскейпить. Но хуже от этого не будет, а сомнения в правильности регулярки отпадут.

POSIX в данном случае роли не играет, \w в JavaScript признает исключительно латинские буквы. Регулярки в JavaScript ввели слишком давно.

Отсутствует

 

№293424-02-2011 13:13:55

Йцукен
  
 
Группа: Extensions
Зарегистрирован: 05-06-2008
Сообщений: 4773
UA: Firefox 3.6

Re: Adblock Plus для Firefox (автор Владимир Палант)

Владимиp Палант пишет

И не знают, зачем щелкают на кнопку "Block" видео, которое смотрят.

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

Добавлено 24-02-2011 13:19:06

Владимиp Палант пишет

Правило ||/example.com^ - неправильное и не должно срабатывать.

А что плохого в том, что оно сработает? Если кто-то ошибся при составлении правила, то зачем его за это наказывать, тем более за счёт снижения (пусть и небольшого) производительности у всех?

Отсутствует

 

№293524-02-2011 13:31:30

Lain_13
Забанен
 
Группа: Members
Откуда: Волшебная Страна
Зарегистрирован: 26-04-2006
Сообщений: 10320
UA: Firefox 4.0

Re: Adblock Plus для Firefox (автор Владимир Палант)

Владимиp Палант
> Правило ||/example.com^ - неправильное и не должно срабатывать.
Вот и добавь проверку на «||/» с сообщением об ошибке, а не вставляй хак в код, который часто выполняется. Не?
Там и «-» будет неправильно, и вообще что угодно кроме буквы или цифры, на сколько я знаю.

> Правило ||example.com^ должно срабатывать и для http://foo.bar.example.com/
Оно и будет.

> Можно не эскейпить. Но хуже от этого не будет, а сомнения в правильности регулярки отпадут.
У меня они от этого только появляются. Эскейпить можно вообще всё, но регулярка становится трудночитаемой, а она и так не сахар.

Добавлено 24-02-2011 13:35:00
Я б «/+» вообще записал бы как «/++» если б сверхжадные квантификаторы в JS работали (кстати, это был бы самый правильный вариант и в случае ||/ не работало бы).

Отредактировано Lain_13 (24-02-2011 13:39:22)

Отсутствует

 

№293624-02-2011 13:38:44

Йцукен
  
 
Группа: Extensions
Зарегистрирован: 05-06-2008
Сообщений: 4773
UA: Firefox 3.6

Re: Adblock Plus для Firefox (автор Владимир Палант)

Lain_13 пишет

Вот и добавь проверку на «||/» с сообщением об ошибке

Да даром никому не нужна вообще такая проверка. Грамотность ради грамотности…

Lain_13 пишет

> Правило ||example.com^ должно срабатывать и для http://foo.bar.example.com/
Оно и будет

Ага, работает.

Выделить код

Код:

/^[\w-]+:/+(?:[^./]+\.)*?org/

отлично блокирует всё оформление на этом форуме.

Добавлено 24-02-2011 13:46:35

Владимир Палант пишет

Можно не эскейпить. Но хуже от этого не будет, а сомнения в правильности регулярки отпадут.

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

Отсутствует

 

№293724-02-2011 13:53:29

Владимиp Палант
Участник
 
Группа: Extensions
Зарегистрирован: 06-11-2004
Сообщений: 906
UA: Firefox 3.6
Веб-сайт

Re: Adblock Plus для Firefox (автор Владимир Палант)

Lain_13 пишет

Вот и добавь проверку на «||/» с сообщением об ошибке, а не вставляй хак в код, который часто выполняется. Не?

То есть, несколько строчек кода и, возможно, дополнительная строка, которую нужно переводить, вместо четырех символов - ради мизерного улучшения производительности?

Lain_13 пишет

> Правило ||example.com^ должно срабатывать и для http://foo.bar.example.com/
Оно и будет

Понял, что имелось в виду. На практике разницы не будет, но исправил: https://hg.adblockplus.org/adblockplus/rev/4035e6528db1

Lain_13 пишет

Эскейпить можно вообще всё, но регулярка становится трудночитаемой, а она и так не сахар.

Если честно, то она не предназначена для того, чтобы ее читать. Если есть сомнения в правильной работе регулярки - на то есть автоматические тесты.

Добавлено 24-02-2011 13:57:11
Радик245
"Странные" правила, которые поддерживаются сейчас, надо будет поддерживать всегда - их поведение должно будет оставаться тем же, даже если в будущем регулярка изменится. Спасибо, я воздержусь.

Отсутствует

 

№293824-02-2011 14:28:55

Йцукен
  
 
Группа: Extensions
Зарегистрирован: 05-06-2008
Сообщений: 4773
UA: Firefox 3.6

Re: Adblock Plus для Firefox (автор Владимир Палант)

Владимиp Палант пишет

То есть, несколько строчек кода и, возможно, дополнительная строка, которую нужно переводить, вместо четырех символов

Да не нужно ни то, ни другое. Думаю, таких правил и пользователей очень мало будет; и это не стóит усложнения регулярок на четыре символа и замедления загрузки страниц даже на миллисекунду. :) Как правильно составлять правила, написано на сайте и мастер составления правил наглядно показывает, как их составлять. Я не представляю, в каком случае пользователь может добавить такое правило — по ошибке разве что. В подписках такие правила, надеюсь, не появятся, а пользователи себе новые правила создадут, если это потребуется.
Lain_13 как-то выразился (по другому поводу), что подписка людям мозги не заменит и не надо пытаться сделать это. От себя добавлю, что расширения это тоже касается.
Если не ошибаюсь, раньше в обычных правилах можно было использовать выражения вроде example.com/[to|eto|voteto] — удалили эту возможность и ничего. Не говоря уже про то, что была удалена очень полезная блокировка картинок по ссылкам (ну это, как я понял, вынужденно).

Отредактировано Радик245 (24-02-2011 14:46:05)

Отсутствует

 

№293924-02-2011 14:49:14

Lain_13
Забанен
 
Группа: Members
Откуда: Волшебная Страна
Зарегистрирован: 26-04-2006
Сообщений: 10320
UA: Firefox 4.0

Re: Adblock Plus для Firefox (автор Владимир Палант)

Владимиp Палант
> То есть, несколько строчек кода и, возможно, дополнительная строка, которую нужно переводить, вместо четырех символов - ради мизерного улучшения производительности?
Нет. На самом деле эти несколько строк кода объяснять пользователю _почему_ так нельзя делать и почему это сводит на нет преимущества использования «||». Сейчас же оно просто не будет работать без объяснения причины. Либо делать правильно, либо не проверять этот случай вовсе, я так считаю. А сейчас ты специально ломаешь регулярку так, что б в случае этой по-сути не существенной ошибки не работало. Это просто бессмысленно.

Можно вообще как предупреждение добавить в генератор правил блокировки и забить на проверку вовсе.

Отредактировано Lain_13 (24-02-2011 14:54:22)

Отсутствует

 

№294024-02-2011 14:57:50

Йцукен
  
 
Группа: Extensions
Зарегистрирован: 05-06-2008
Сообщений: 4773
UA: Firefox 3.6

Re: Adblock Plus для Firefox (автор Владимир Палант)

Lain_13 пишет

Сейчас же оно просто не будет работать без объяснения причины.

Если правило добавлять с помощью мастера, а не клавиши Insert, то сейчас появляется предупреждение: «Введённый шаблон не соответствует адресу, для которого вы создаёте правило, и никак не повлияет на него». В твоём варианте для правил, которые начинаются с ||/ ,  этого предупреждения не будет, потому что такие правила работать будут.

Отсутствует

 

№294124-02-2011 15:34:02

Владимиp Палант
Участник
 
Группа: Extensions
Зарегистрирован: 06-11-2004
Сообщений: 906
UA: Firefox 3.6
Веб-сайт

Re: Adblock Plus для Firefox (автор Владимир Палант)

Радик245
example.com/[to|eto|voteto] ни мы, ни Adblock никогда не поддерживали. На самом деле есть ряд "фич" синтаксиса фильтров, сохранившихся исключительно по историческим причинам - я бы рад от них избавиться, но это достаточно сложно. Нужно перевести фильтры пользователя в "современные" варианты и надеяться, что все списки фильтров со временем обновятся. Тогда когда-нибудь можно будет выкинуть код, который занимается переводом. Но на все это нужно много времени, пока что проще сохранять совместимость.

Отсутствует

 

№294224-02-2011 15:37:02

Lain_13
Забанен
 
Группа: Members
Откуда: Волшебная Страна
Зарегистрирован: 26-04-2006
Сообщений: 10320
UA: Firefox 4.0

Re: Adblock Plus для Firefox (автор Владимир Палант)

Радик245
Причина несоответствия не раскрыта + без проверки и без субдоменов мой вариант работать будет, а с субдоменами выведет вон то самое предупреждение.

Добавлено 24-02-2011 15:39:33
Если кто-то напишет через insert «||/» самостоятельно, то ССЗБ. Всё равно доступ к частным правилам будет только у тех, кто теоретически умеет их создавать.

Отредактировано Lain_13 (24-02-2011 15:40:21)

Отсутствует

 

№294324-02-2011 15:58:23

Йцукен
  
 
Группа: Extensions
Зарегистрирован: 05-06-2008
Сообщений: 4773
UA: Firefox 3.6

Re: Adblock Plus для Firefox (автор Владимир Палант)

Владимиp Палант

example.com/[to|eto|voteto] ни мы, ни Adblock никогда не поддерживали.

Да?! Почему тогда _Denis_ предлагал подобное правило (когда оно уже не работало)? Он, может быть,имел в виду регулярку (неправильную), но в подписках Хакруса долго наряду с правилами вроде example.com/files/$image были правила вроде example.com/files/*.[jpg|gif|png] .  Помню, я писáл Хакрусу, чтобы он убрал эти правила, потому что уже не работают.

Всё равно доступ к частным правилам будет только у тех, кто теоретически умеет их создавать.

А кто умеет создавать — напишут правильно.

есть ряд "фич" синтаксиса фильтров, сохранившихся исключительно по историческим причинам

Вы о старых правилах скрытия или о чём-то ещё?

Отредактировано Радик245 (24-02-2011 16:01:34)

Отсутствует

 

№294424-02-2011 16:00:36

Владимиp Палант
Участник
 
Группа: Extensions
Зарегистрирован: 06-11-2004
Сообщений: 906
UA: Firefox 3.6
Веб-сайт

Re: Adblock Plus для Firefox (автор Владимир Палант)

Радик245
Потому что _Denis_ и Хакрус путают обычные правила с регулярными выражениями (причем неправильными регулярными выражениями). См. мой ответ там же чуть ниже. Такого синтаксиса никогда не было.

Добавлено 24-02-2011 16:03:26

Радик245 пишет

Вы о старых правилах скрытия или о чём-то ещё?

Да, о них. А также о @@http:// и @@https://, у которых подразумевается $document.

Отредактировано Владимиp Палант (24-02-2011 16:01:46)

Отсутствует

 

№294524-02-2011 16:35:05

Lain_13
Забанен
 
Группа: Members
Откуда: Волшебная Страна
Зарегистрирован: 26-04-2006
Сообщений: 10320
UA: Firefox 4.0

Re: Adblock Plus для Firefox (автор Владимир Палант)

Владимиp Палант
> .replace(/^\\\|\\\|/, "^[\\w\\-]+:\\/+(?!\\/)(?:[^.\\/]+\\.)*?")
Хо-хо! Тебе приходится эскейпить сами слэши в своём собственном коде. Вот уж где несколько лишних точно не добавляет удобочитаемости. ;)
Хотя конечно код расширения мало кому интересен.

Отредактировано Lain_13 (24-02-2011 16:36:42)

Отсутствует

 

№294624-02-2011 17:42:18

Lain_13
Забанен
 
Группа: Members
Откуда: Волшебная Страна
Зарегистрирован: 26-04-2006
Сообщений: 10320
UA: Firefox 4.0

Re: Adblock Plus для Firefox (автор Владимир Палант)

https://reports.adblockplus.org/17be59e … b=requests

Я что-то не могу понять, а что здесь происходит с логом запросов? Посмотри, там в коце больше половины — одни и те-же адреса.
Кстати, забавно, но на этот сайт мне пришло больше сообщений чем на вконтакт и остальные соц-сеточки. :) Хотя подозреваю, что это один и тот же ж человек делал — там везде эта проблема парсинга списка запросов.

Отсутствует

 

№294724-02-2011 17:49:22

Владимиp Палант
Участник
 
Группа: Extensions
Зарегистрирован: 06-11-2004
Сообщений: 906
UA: Firefox 3.6
Веб-сайт

Re: Adblock Plus для Firefox (автор Владимир Палант)

Lain_13
Это он по навигации слева пощелкал, там картинки каждый раз заново загружаются. В сообщении, в отличии от списка элементов, для каждого запроса своя строчка - независимо от того, одинаковый там адрес или нет. "Открыть все" и "закрыть все" - уже 130 дополнительных запросов.

Отсутствует

 

№294824-02-2011 18:07:24

Lain_13
Забанен
 
Группа: Members
Откуда: Волшебная Страна
Зарегистрирован: 26-04-2006
Сообщений: 10320
UA: Firefox 4.0

Re: Adblock Plus для Firefox (автор Владимир Палант)

Владимиp Палант
Может имеет смысл так не делать? Если хочется узнать сколько было таких запросов — добавь колонку со счётчиком и считай на стороне клиента, а то парсеру вон крышу сносит. Я периодически вижу эту ошибку и далеко не только на этом сайте.

Отредактировано Lain_13 (24-02-2011 18:13:01)

Отсутствует

 

№294924-02-2011 19:06:15

Владимиp Палант
Участник
 
Группа: Extensions
Зарегистрирован: 06-11-2004
Сообщений: 906
UA: Firefox 3.6
Веб-сайт

Re: Adblock Plus для Firefox (автор Владимир Палант)

Lain_13
Не знаю, может и имеет. Парсеру на самом деле все равно, просто я не хочу хранить на сервере слишком много данных.

Отсутствует

 

№295024-02-2011 19:22:43

Lain_13
Забанен
 
Группа: Members
Откуда: Волшебная Страна
Зарегистрирован: 26-04-2006
Сообщений: 10320
UA: Firefox 4.0

Re: Adblock Plus для Firefox (автор Владимир Палант)

Владимиp Палант
Вот это-то и позволит тебе не хранить слишком много данных, разве нет? А то оно аж до лимита по размеру доходит. Можно даже без счётчика, в принципе. Тогда только аггрегатор на клиентской стороне поменять нужно.

Хм… ты это так написал будто цифры занимаю больше чем строки, кстати. :)
Для счётчика достаточно 2 байт более чем. Для строки их хватит лишь на 1-2 символа. Экономия на повторах колоссальная и ни какой потери информации (кроме порядка загрузки?).

Отредактировано Lain_13 (24-02-2011 19:51:16)

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia
Язык отображения форума: [Русский] [English]