Автор | Сообщение |
|
| |
Пост N: 86
Зарегистрирован: 08.07.06
|
|
Отправлено: 11.08.13 18:47. Заголовок: Перехожу с Clipper 5.2e на Harbour, список вопросов от "новичка"
Добрый день, уважаемые коллеги. Большое спасибо за море справочной информации по переходу, но нужно ещё пнуть меня в нужном направлении. Итак, установил Harbour 3.0 + BCC 5.5.1 ==>> 3.2.0 +minGW скомпилировал и запустил традиционный "Hello, world!" Дело перешло к проекту, из-за которого собственно и речь. Компилируется что через hbmk2, что самим харбором - без ошибок, всего с парой предупреждений, что меня немало удивило. Возникли ошибки на этапе линковки: Скрытый текст Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland Error: Unresolved external '_HB_FUN_ENVPARAM' referenced from D:\HB\TRADE100.OBJ Error: Unresolved external '_HB_FUN_INKEYTRAP' referenced from D:\HB\TRADE226.OBJ Error: Unresolved external '_HB_FUN_DISKFREE' referenced from D:\HB\TRADE222.OBJ Error: Unresolved external '_HB_FUN_DISKTOTAL' referenced from D:\HB\TRADE222.OBJ Error: Unresolved external '_HB_FUN_BIOSDATE' referenced from D:\HB\TRADE.OBJ Error: Unresolved external '_HB_FUN_FT_ONTICK' referenced from D:\HB\TRADE.OBJ Error: Unresolved external '_HB_FUN_FT_ONIDLE' referenced from D:\HB\TRADE200.OBJ Error: Unresolved external '_HB_FUN_FT_IAMIDLE' referenced from D:\HB\TRADE200.OBJ Error: Unresolved external '_HB_FUN_TRAPANYKEY' referenced from D:\HB\TRADE200.OBJ Error: Unresolved external '_HB_FUN_KEYSEND' referenced from D:\HB\TRADE200.OBJ 1) Так понимаю, это ошибки из-за того, что не находятся некоторые функции из активно используемых CT3/Nanforum Toolkit ? Что делать с ними ? Отказываться ? Или есть заменители ? Error: Unresolved external '_HB_FUN_STACKFREE' referenced from D:\HB\TRADE200.OBJ Error: Unresolved external '_HB_FUN_BLILOCUSE' referenced from D:\HB\TRADE200.OBJ Error: Unresolved external '_HB_FUN_BLILOCAVL' referenced from D:\HB\TRADE200.OBJ Error: Unresolved external '_HB_FUN_BLILOCTOT' referenced from D:\HB\TRADE200.OBJ Error: Unresolved external '_HB_FUN_BLISTCUSE' referenced from D:\HB\TRADE200.OBJ Error: Unresolved external '_HB_FUN_BLISTCAVL' referenced from D:\HB\TRADE200.OBJ Error: Unresolved external '_HB_FUN_BLISTCTOT' referenced from D:\HB\TRADE200.OBJ 2) Это - ошибки из-за вызовов встроенных в Blinker функций, без них легко обойтись в принципе... Error: Unresolved external '_HB_FUN_STRNUM2ARRAY' referenced from D:\HB\TRADE208.OBJ Error: Unresolved external '_HB_FUN_CMJS_EXTRACTPARAMS' referenced from D:\HB\TRADE206.OBJ Error: Unresolved external '_HB_FUN_SELECTSTOCKS' referenced from D:\HB\TRADE220.OBJ Error: Unresolved external '_HB_FUN_APPLYSERTCHAGES' referenced from D:\HB\TRADE221.OBJ Error: Unresolved external '_HB_FUN_APPLYCARGOCHAGES' referenced from D:\HB\TRADE221.OBJ Error: Unresolved external '_HB_FUN_APPLYPRICECHAGES' referenced from D:\HB\TRADE221.OBJ 3) А вот это - самое странное - это мои функции, причем некоторые из них вызываются многократно из других модулей. Например ApplyCargoChanges является STATIC в самом модуле TRADE221 - почему линковщик ее не видит, наряду с парой Apply... других ? SelectStocks активно используется в других модулях - но там линкер почему-то ошибок не видит...
| Help, please - что делать и куды бечь ?
|
|
|
Ответов - 285
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
All
[только новые]
|
|
|
| постоянный участник
|
Пост N: 388
Зарегистрирован: 13.10.05
|
|
Отправлено: 27.08.13 12:49. Заголовок: От DBFNTX отказался..
От DBFNTX отказался, сразу переделывал под cdx
|
|
|
|
| |
Пост N: 3476
Зарегистрирован: 17.05.05
|
|
Отправлено: 27.08.13 16:57. Заголовок: Sergy я что то проп..
Sergy я что то пропустил а антивирус стоит ? в исключениях числятся у него папки с базами и прогой ?
|
|
|
|
| |
Пост N: 243
Зарегистрирован: 08.07.06
|
|
Отправлено: 27.08.13 16:59. Заголовок: Нашел в коде еще нес..
Нашел в коде еще несколько прямых вызовов DBUSEAREA() и DBSETNDEX() - заменил их на свои NetUse() и NetSetIndex(). Пока конечно рано говорить, но ситуация по ходу стабилизировалась - нет непонятных сообщений о неоткрытых областях, отсутствии индексации и тп... Одна машина пока прислала несколько отчетов о том, что с первого раза не удалось открыть таблицу.
|
|
|
|
| |
Пост N: 244
Зарегистрирован: 08.07.06
|
|
Отправлено: 27.08.13 17:01. Заголовок: Dima пишет: я что т..
Dima пишет: цитата: | я что то пропустил а антивирус стоит ? в исключениях числятся у него папки с базами и прогой ? |
| Стоит официальный лицензионный NOD32 - на сервере серверная версия, у клиентов - клиентские. Разумеется на сервере *.dbf и *.ntx стоят в исключениях. Программу в исключения не ставил никогда - проблем особых не было. Ну проверит один раз при запуске - делов-то... Все-таки EXE - он может быть заражен при определенном стечении обстоятельств... На рабочих машинах - 100% гарантии нет, но админ сети вроде в курсе. Кстати будет повод проверить...
|
|
|
|
| постоянный участник
|
Пост N: 242
Зарегистрирован: 17.02.12
|
|
Отправлено: 27.08.13 17:29. Заголовок: Sergy пишет:res:=DBS..
Sergy пишет: цитата: | res:=DBSETINDEX(cName) IF res; EXIT; ENDIF |
| Clipper ng говорит dbSetIndex() return NIL, в hb dbSetIndex() это вызов hb_func( ORDLISTADD ) и там возвраты разные и написано: /* Clipper clears NETERR flag when index is open */ hb_rddSetNetErr( HB_FALSE ); может лучше из SET INDEX ... функции в команде использовать, ? OrdCount() даст кол-во подключенных index\tag
|
|
|
|
| Администратор
|
Пост N: 2962
Зарегистрирован: 23.05.05
|
|
Отправлено: 27.08.13 17:37. Заголовок: Sergy пишет: Получи..
Sergy пишет: цитата: | Получил одно вот такое сообщение: 27.08.2013 09:45:46 NetUse(caroute) tried to open 1 times and OK |
| Это говорит о том, что менее чем на секунду файл все-таки был открыт каким-то процессом. А вот каким - в этом мы вряд ли поможем. Возможные предположения уже высказаны. Хорошо бы еще в лог писать режим открытия - lShared цитата: | и несколько вот таких: Ошибка DBFNTX/1201 Файл не индексирован В NetSetIndex() поставил проверку успешности открытия индекса ( res:=DBSETINDEX() ), но почему-то она не сработала ? |
| Если dbSetIndex вернул .t. - значит, индекс был открыт успешно, и никак не иначе. А причина ошибки 1201 может быть другой: индекс был закрыт, был вызов set order to 0, или set order на несуществующий индекс, или где-то ошибка в имени индекса, в результате чего текущий индекс оказался не установлен. Сергей, только не говорите, что такого не может быть, иначе мы ничем не сможем помочь. Пересмотрите еще раз свой код, вставьте дополнительные логи в конце концов.
|
|
|
|
| Администратор
|
Пост N: 2963
Зарегистрирован: 23.05.05
|
|
Отправлено: 27.08.13 17:47. Заголовок: SergKis пишет: Clip..
SergKis пишет: цитата: | Clipper ng говорит dbSetIndex() return NIL, в hb dbSetIndex() это вызов hb_func( ORDLISTADD ) и там возвраты разные и написано: /* Clipper clears NETERR flag when index is open */ hb_rddSetNetErr( HB_FALSE ); может лучше из SET INDEX ... функции в команде использовать, ? OrdCount() даст кол-во подключенных index\tag |
| Да, правильно, успешность открытия индекса лучше проверять чем нибудь вроде: IndexOrd() # 0 ! Empty(IndexKey()) ! Empty(ordName())
|
|
|
|
| |
Пост N: 3477
Зарегистрирован: 17.05.05
|
|
Отправлено: 27.08.13 17:52. Заголовок: Sergy Где то есть а..
Sergy Где то есть аналогичная тема от AndreyZh тоже переходил человек с Clipper и тоже были не увязки и споры. Сегодня у него кажется все нормально так что даже редко тут появляется ;) PS А лагов в сети нет ?
|
|
|
|
| |
Пост N: 245
Зарегистрирован: 08.07.06
|
|
Отправлено: 27.08.13 18:11. Заголовок: Pasha пишет: Сергей..
Pasha пишет: цитата: | Сергей, только не говорите, что такого не может быть |
| Хорошо, не буду. Dima пишет: Что имеется в виду и как это выяснить ?
|
|
|
|
| |
Пост N: 3478
Зарегистрирован: 17.05.05
|
|
Отправлено: 27.08.13 19:48. Заголовок: Sergy На "пробл..
Sergy На "проблемных" станциях как вариант дай команду ping ipсервера -n 100 -l 1400 и посмотри результат
|
|
|
|
| постоянный участник
|
Пост N: 915
Зарегистрирован: 27.01.07
|
|
Отправлено: 27.08.13 19:50. Заголовок: Сеть лучше утилитой ..
Сеть лучше утилитой iperf проверить в режиме трансляции udp-пакетов.
|
|
|
|
|
| |
Пост N: 246
Зарегистрирован: 08.07.06
|
|
Отправлено: 27.08.13 21:53. Заголовок: SergKis пишет: Clip..
SergKis пишет: цитата: | Clipper ng говорит dbSetIndex() return NIL, в hb dbSetIndex() это вызов hb_func( ORDLISTADD ) и там возвраты разные и написано: /* Clipper clears NETERR flag when index is open */ hb_rddSetNetErr( HB_FALSE ); может лучше из SET INDEX ... функции в команде использовать, ? OrdCount() даст кол-во подключенных index\tag |
| Почитал Changelog.txt: цитата: | * changed ordListAdd()/dbSetIndex() - now they return logical value with information about success |
| Пока остановился на этом варианте. Несколько предыдущих ошибок "Файл не индексирован" выскочили из-за того, что в паре-тройке мест остались прямые вызовы DBUSEAREA/DBSETINDEX вместо замененных мною USE ... INDEX ... upd: Поймал наконец-то и такие ошибки: 27.08.2013 14:37:33 NetSetIndex(system) tried to open 1 times and OK 27.08.2013 14:47:22 NetSetIndex(F:\WORK\DATA\carjob2.ntx) tried to open 1 times and OK Что самое странное - программа запускается на сервере и управляется через RDP - т.е. диск с базой у нее вообще локальный, а не по сети. И проверил, что Харборовский DBSETINDEX() возвращает корректный результат для обработки в NetSetIndex() ... продолжаю наблюдения. Спасибо коллективному разуму.
|
|
|
|
| постоянный участник
|
Пост N: 243
Зарегистрирован: 17.02.12
|
|
Отправлено: 28.08.13 10:50. Заголовок: Sergy пишет:Почитал ..
Sergy пишет: первоисточник SRC hb 3.2 HB_FUNC( ORDLISTADD ) { ... if( ! HB_ISNIL( 1 ) ) hb_errRT_DBCMD( EG_ARG, EDBCMD_ORDLSTADD_BADPARAMETER, NULL, HB_ERR_FUNCNAME ); return; !!!!!!!!!! } ... if( ! pOrderInfo.itmResult || HB_IS_NIL( pOrderInfo.itmResult ) ) hb_retl( errCode == HB_SUCCESS ); !!!! ... FUNCTION dbSetIndex( cIndexName ) RETURN ordListAdd( cIndexName ) Sergy пишет: цитата: | Что самое странное - программа запускается на сервере и управляется через RDP - т.е. диск с базой у нее вообще локальный, а не по сети |
| SergKis пишет: цитата: | использования clipper, hb показала, даже на локальной базе ... |
| причем полгода может работать, а потом кердык - начнет елозить. Разбор полетов покажет как правило анти\вирус обновили, заменили ...
|
|
|
|
| |
Пост N: 247
Зарегистрирован: 08.07.06
|
|
Отправлено: 29.08.13 23:44. Заголовок: Мужчины, огромная Ва..
Мужчины, огромная вам всем благодарность за помощь и поддержку! Третий день программа работает практически как часы на ежедневной нагрузке. И как работает - летает, как ласточка, все юзеры довольны. Ничего того, что-бы меня удивило в ее поведении - нет. А ведь неделей раньше рвал волосы во всех местах и уже подумывал - бросить все нак*й и вернуться на Clipper. Кое-где выплывают косяки моего программирования, которых не замечал наш старый добрый 5.2e. Потихоньку накапливаются сообщения о том, что таблица/индекс не открылись с первого раза. Пытаюсь понять логику - информации мало, но похоже, что они возникают на "сверхбыстрых" машинах на локальных ресурсах. Например, "разгруженном" от юзеров терминальном сервере (рано утром или поздно вечером). Благодаря Вашим наработкам в этой ветке, научил программу "пипикать" wave-файлами из ресурсов, блокировать крестик, менять заголовок Windows-окошка. Так классно! Спасибо еще раз! На этом не прощаюсь - искренне надеюсь, еще будут интересные вопросы и обсуждения.
|
|
|
|
| Администратор
|
Пост N: 2969
Зарегистрирован: 23.05.05
|
|
Отправлено: 30.08.13 16:26. Заголовок: Запускаю свою харбор..
Запускаю свою харбор-программу, которая открывает файлы через dbfcdx - shared. Запускаю dosbox, а в нем - программу, которая открывает dbf-файл монопольно (свой старый dbview под ms dos). Файл не должен открываться, но он открывается. Если попытаться открыть этот файл монопольно win32-программой, то попытка будет неуспешной, как и должно быть. Выходит, что открытие файлов под ntvdm/dosbox происходит не по правилам. Вот поэтому старая клиппер-программа и всегда открывала файлы, которые не должна была открывать, в отличие от харбор-программы, которая ведет себя, как ей и положено.
|
|
|
|
| |
Пост N: 3494
Зарегистрирован: 17.05.05
|
|
Отправлено: 30.08.13 16:55. Заголовок: Pasha пишет: Запуск..
Pasha пишет: цитата: | Запускаю свою харбор-программу, которая открывает файлы через dbfcdx - shared. Запускаю dosbox, а в нем - программу, которая открывает dbf-файл монопольно (свой старый dbview под ms dos). Файл не должен открываться, но он открывается. |
| Попробовал повторить (без DOSBOX разумеется). Файл не открылся. Первой запустил Harbour прогу proc main use test shared new browse() return Вторая на Clipper use test exclusive new browse() // бровса я не увидел и прога сразу завершила свою работу ЗЫ неисповедимы пути господни NTVDM
|
|
|
|
| |
Пост N: 266
Зарегистрирован: 08.07.06
|
|
Отправлено: 06.09.13 21:41. Заголовок: Возникло подозрение,..
Возникло подозрение, что сохранение длинной CHAR переменной в поле таблицы "портит" символы "нижней" части ASCII с кодом, меньшим CHR(32). Чтобы проверить это, хочу попробовать USE (cTable) CODEPAGE (...) Подскажите плиз, какую страницу нужно указать, чтобы полностью отказаться от перекодировки ? Нужен какой-нить "NULL" или "WESTERN EUROPE". Какие они вообще бывают, кроме "RU866" и "RU1251" - попробую методом перебора...
|
|
|
|
| |
Пост N: 119
Зарегистрирован: 19.05.05
|
|
Отправлено: 07.09.13 10:07. Заголовок: HB_FUNC_EXTERN( HB_C..
HB_FUNC_EXTERN( HB_CODEPAGE_BG866 ); HB_FUNC_EXTERN( HB_CODEPAGE_BGISO ); HB_FUNC_EXTERN( HB_CODEPAGE_BGMIK ); HB_FUNC_EXTERN( HB_CODEPAGE_BGWIN ); HB_FUNC_EXTERN( HB_CODEPAGE_CS852 ); HB_FUNC_EXTERN( HB_CODEPAGE_CS852C ); HB_FUNC_EXTERN( HB_CODEPAGE_CSISO ); HB_FUNC_EXTERN( HB_CODEPAGE_CSKAMC ); HB_FUNC_EXTERN( HB_CODEPAGE_CSWIN ); HB_FUNC_EXTERN( HB_CODEPAGE_DE850 ); HB_FUNC_EXTERN( HB_CODEPAGE_DE850M ); HB_FUNC_EXTERN( HB_CODEPAGE_DEISO ); HB_FUNC_EXTERN( HB_CODEPAGE_DEWIN ); HB_FUNC_EXTERN( HB_CODEPAGE_DK865 ); HB_FUNC_EXTERN( HB_CODEPAGE_EL437 ); HB_FUNC_EXTERN( HB_CODEPAGE_EL737 ); HB_FUNC_EXTERN( HB_CODEPAGE_ELISO ); HB_FUNC_EXTERN( HB_CODEPAGE_ELWIN ); HB_FUNC_EXTERN( HB_CODEPAGE_EN ); HB_FUNC_EXTERN( HB_CODEPAGE_ES850 ); HB_FUNC_EXTERN( HB_CODEPAGE_ES850C ); HB_FUNC_EXTERN( HB_CODEPAGE_ES850M ); HB_FUNC_EXTERN( HB_CODEPAGE_ESISO ); HB_FUNC_EXTERN( HB_CODEPAGE_ESMWIN ); HB_FUNC_EXTERN( HB_CODEPAGE_ESWIN ); HB_FUNC_EXTERN( HB_CODEPAGE_FI850 ); HB_FUNC_EXTERN( HB_CODEPAGE_FR850 ); HB_FUNC_EXTERN( HB_CODEPAGE_FR850M ); HB_FUNC_EXTERN( HB_CODEPAGE_FRISO ); HB_FUNC_EXTERN( HB_CODEPAGE_FRWIN ); HB_FUNC_EXTERN( HB_CODEPAGE_HR646 ); HB_FUNC_EXTERN( HB_CODEPAGE_HR852 ); HB_FUNC_EXTERN( HB_CODEPAGE_HRISO ); HB_FUNC_EXTERN( HB_CODEPAGE_HRWIN ); HB_FUNC_EXTERN( HB_CODEPAGE_HU852 ); HB_FUNC_EXTERN( HB_CODEPAGE_HU852C ); HB_FUNC_EXTERN( HB_CODEPAGE_HUISO ); HB_FUNC_EXTERN( HB_CODEPAGE_HUWIN ); HB_FUNC_EXTERN( HB_CODEPAGE_IS850 ); HB_FUNC_EXTERN( HB_CODEPAGE_IS861 ); HB_FUNC_EXTERN( HB_CODEPAGE_IT437 ); HB_FUNC_EXTERN( HB_CODEPAGE_IT850 ); HB_FUNC_EXTERN( HB_CODEPAGE_IT850M ); HB_FUNC_EXTERN( HB_CODEPAGE_ITISB ); HB_FUNC_EXTERN( HB_CODEPAGE_ITISO ); HB_FUNC_EXTERN( HB_CODEPAGE_ITWIN ); HB_FUNC_EXTERN( HB_CODEPAGE_LT775 ); HB_FUNC_EXTERN( HB_CODEPAGE_LTWIN ); HB_FUNC_EXTERN( HB_CODEPAGE_NL850 ); HB_FUNC_EXTERN( HB_CODEPAGE_NL850M ); HB_FUNC_EXTERN( HB_CODEPAGE_NO865 ); HB_FUNC_EXTERN( HB_CODEPAGE_PL852 ); HB_FUNC_EXTERN( HB_CODEPAGE_PLISO ); HB_FUNC_EXTERN( HB_CODEPAGE_PLMAZ ); HB_FUNC_EXTERN( HB_CODEPAGE_PLWIN ); HB_FUNC_EXTERN( HB_CODEPAGE_PT850 ); HB_FUNC_EXTERN( HB_CODEPAGE_PT860 ); HB_FUNC_EXTERN( HB_CODEPAGE_PTISO ); HB_FUNC_EXTERN( HB_CODEPAGE_RO852 ); HB_FUNC_EXTERN( HB_CODEPAGE_ROISO ); HB_FUNC_EXTERN( HB_CODEPAGE_ROWIN ); HB_FUNC_EXTERN( HB_CODEPAGE_RU1251 ); HB_FUNC_EXTERN( HB_CODEPAGE_RU866 ); HB_FUNC_EXTERN( HB_CODEPAGE_RUISO ); HB_FUNC_EXTERN( HB_CODEPAGE_RUKOI8 ); HB_FUNC_EXTERN( HB_CODEPAGE_SK852 ); HB_FUNC_EXTERN( HB_CODEPAGE_SK852C ); HB_FUNC_EXTERN( HB_CODEPAGE_SKISO ); HB_FUNC_EXTERN( HB_CODEPAGE_SKKAMC ); HB_FUNC_EXTERN( HB_CODEPAGE_SKWIN ); HB_FUNC_EXTERN( HB_CODEPAGE_SL646 ); HB_FUNC_EXTERN( HB_CODEPAGE_SL852 ); HB_FUNC_EXTERN( HB_CODEPAGE_SLISO ); HB_FUNC_EXTERN( HB_CODEPAGE_SLWIN ); HB_FUNC_EXTERN( HB_CODEPAGE_SR646 ); HB_FUNC_EXTERN( HB_CODEPAGE_SR646C ); HB_FUNC_EXTERN( HB_CODEPAGE_SRWIN ); HB_FUNC_EXTERN( HB_CODEPAGE_SV437C ); HB_FUNC_EXTERN( HB_CODEPAGE_SV850 ); HB_FUNC_EXTERN( HB_CODEPAGE_SV850M ); HB_FUNC_EXTERN( HB_CODEPAGE_SVISO ); HB_FUNC_EXTERN( HB_CODEPAGE_SVWIN ); HB_FUNC_EXTERN( HB_CODEPAGE_TR857 ); HB_FUNC_EXTERN( HB_CODEPAGE_TRISO ); HB_FUNC_EXTERN( HB_CODEPAGE_TRWIN ); HB_FUNC_EXTERN( HB_CODEPAGE_UA1125 ); HB_FUNC_EXTERN( HB_CODEPAGE_UA1251 ); HB_FUNC_EXTERN( HB_CODEPAGE_UA866 ); HB_FUNC_EXTERN( HB_CODEPAGE_UAKOI8 );
|
|
|
|
| Администратор
|
Пост N: 2974
Зарегистрирован: 23.05.05
|
|
Отправлено: 07.09.13 22:08. Заголовок: Sergy пишет: Подска..
Sergy пишет: цитата: | Подскажите плиз, какую страницу нужно указать, чтобы полностью отказаться от перекодировки ? |
| Перекодировка не выполняется, если кодовая страница программы совпадает с кодовой страницей, указанной в команде use. Если в use не указана codepage, то она будет такой же, что в hb_cdpSelect, и перекодировки также не будет.
|
|
|
|
| |
Пост N: 267
Зарегистрирован: 08.07.06
|
|
Отправлено: 08.09.13 22:11. Заголовок: Pasha пишет: Переко..
Pasha пишет: цитата: | Перекодировка не выполняется, если кодовая страница программы совпадает с кодовой страницей, указанной в команде use. Если в use не указана codepage, то она будет такой же, что в hb_cdpSelect, и перекодировки также не будет. |
| А может быть какая-нибудь петрушка с SAVESCREEN / RESTSCREEN ? В одном месте программы, среди кучи однотипных вызовов: сохранение экрана - диалог - восстановление наблюдаю такой глюк: символы CHR(16) заменяются на "?" и соотв. выводятся назад уже не в виде треугольников, а в виде знаков вопроса. Сначала думал на запись в файл (экраны складываются локально, чтобы не тратить память Clipper). Поигрался с CODEPAGE, потом переделал на сохранение в memvar-переменных - тоже самое. Косяк совершенно незначительный, но бесит... Не люблю я эту неопределенность...
|
|
|
Ответов - 285
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
All
[только новые]
|
|