1.1, Жироватт (ok), 10:43, 11/04/2025 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
> As this can cause problems when using scripts, this feature is supported only for --rsyncable, --synchronous, and options like -9 that set the compression level; any other options or operands in GZIP are silently ignored.
Ну такое
| |
|
2.90, Аноним (90), 16:18, 12/04/2025 [^] [^^] [^^^] [ответить]
| +/– |
А ведь правда какая-то дичь, но имя переменной не особо удачное. Ну вот есть ZSTD_CLEVEL для задания пресета сжатия, а есть XZ_OPT и XZ_DEFAULTS, где это сделано нормально.
| |
|
1.2, xsignal (ok), 11:31, 11/04/2025 [ответить] [﹢﹢﹢] [ · · · ]
| +5 +/– |
Написаны на Си, и ничего - эти утилиты просто работают, делают своё дело на миллиардах серверов в режиме 24/7/365. Надёжность - 99.999%!
| |
|
2.3, n00by (ok), 11:35, 11/04/2025 [^] [^^] [^^^] [ответить]
| –3 +/– |
А что эти утилиты делают на серверах, есть примеры? Что и зачем надо искать grep-ом в сотне тысяч файлов? И почему для этого не использовать подходящий инструмент?
| |
|
3.4, zk (?), 11:47, 11/04/2025 [^] [^^] [^^^] [ответить]
| +8 +/– |
они и есть подходящий инструмент под свои задачи. Можешь лучше, делай.
| |
|
4.48, Аноним (48), 18:14, 11/04/2025 [^] [^^] [^^^] [ответить]
| +3 +/– |
Так он и просит конкретизировать задачу, а то неясно, может лучше и нельзя уже.
| |
|
|
6.75, n00by (ok), 07:43, 12/04/2025 [^] [^^] [^^^] [ответить]
| –1 +/– |
>> Еще раз: какие задачи они решают "в режиме 24/7/365"?
> ровно те для которых они предназначены :)
> А что конкретно - по ссылкам ниже:
> https://www.gnu.org/software/grep/manual/grep.html
Ещё раз исходный вопрос: "...есть примеры?"
Что, например, приходится искать grep-ом "в режиме 24/7/365"?
Вопрос не к теоретиками, а к практикам. Если кому-то действительно приходится, очень любопытно узнать подробности.
| |
|
7.88, Аноним (62), 14:47, 12/04/2025 [^] [^^] [^^^] [ответить]
| +/– |
> Что, например, приходится искать grep-ом "в режиме 24/7/365"?
Вот писал ниже, удалили :)
он делает акцент на "в режиме 24/7/365", ему надо просто сказать, что это означает доступность инструментов. А задачи про которые он спрашивает, надо просто сказать - каждый час каждого дня недели месяца года поищи в сырых логах с помощью греп то-то, потом сырые логи загзипуй и т.д. куча корутилсов на все случаи жизни.
| |
|
8.91, n00by (ok), 16:50, 12/04/2025 [^] [^^] [^^^] [ответить] | +/– |  Да, надо признать, что изначально сформулировано неверно Приложения ничего не д... текст свёрнут, показать | |
|
9.93, Аноним (62), 17:04, 12/04/2025 [^] [^^] [^^^] [ответить] | +/– | они же в base system, необходимы всегда, на все случаи жизни Ну эт как мизинец ... текст свёрнут, показать | |
|
|
|
|
|
|
3.5, xsignal (ok), 11:51, 11/04/2025 [^] [^^] [^^^] [ответить]
| +1 +/– |
В смысле, что? Ты спрашиваешь, что делают базовые утилиты, "строительные кирпичики" на серверах?)
| |
|
4.52, n00by (ok), 18:18, 11/04/2025 [^] [^^] [^^^] [ответить]
| –1 +/– |
> В смысле, что? Ты спрашиваешь, что делают базовые утилиты, "строительные кирпичики" на
> серверах?)
Да, я спрашиваю, что делают базовые утилиты "в режиме 24/7/365"
| |
|
|
4.55, Аноним (48), 18:24, 11/04/2025 [^] [^^] [^^^] [ответить]
| +/– |
Может и наоборот, видел и дошёл до того уровня, когда стало ясно, что консоль — последнее средство спасения, когда всё остальное отказало.
| |
|
|
4.50, Аноним (48), 18:15, 11/04/2025 [^] [^^] [^^^] [ответить]
| +/– |
Не. На локалхостах под кроватью если только. В проде логи на сервере грепать так себе занятие.
| |
|
5.78, Аноним (78), 10:12, 12/04/2025 [^] [^^] [^^^] [ответить]
| +/– |
Летом под кроватью сервер держать - так себе занятие. И без него жарко.
А вот на серверах предприятий по профилю не IT, админы ещё как в логи заглядывают. Это не про хостинговые компании.
| |
|
|
3.8, Аноним (8), 12:52, 11/04/2025 [^] [^^] [^^^] [ответить]
| +/– |
> А что эти утилиты делают на серверах, есть примеры? Что и зачем
> надо искать grep-ом в сотне тысяч файлов? И почему для этого
> не использовать подходящий инструмент?
Так много вопросов и так мало ответов! Но ничего, скоро пойдешь в школу и там умные педагоги всё расскажут.
| |
3.9, Аноним (9), 13:21, 11/04/2025 [^] [^^] [^^^] [ответить]
| –4 +/– |
Сколько налетело фанатов СПО и сишки! А по существу никто не ответил! А всё потому что юноши оценивают СПО именно по этим хэловордам, и потом кичатся этим! А то что, в СПО нет ни одного нормального видео редактора например, и нет альтернативы simatic step7 и другого очень нужного для ПЛК софта для линукса, и то что много чего ещё нет в СПО, так это они предпочитают не замечать.
| |
|
4.11, Аноним (-), 13:29, 11/04/2025 [^] [^^] [^^^] [ответить]
| –1 +/– |
Потому что хелловорл или утилитку в 10к строк может написать почти каждый.
А сложный проект, а да еще и требующий понимания предметной области - нет.
Тут нужна команда, тут нужны ресурсы.
Сообщество не может/хочет предоставлять их.
Поэтому почти все крупные СПО проекты это детище корпораций.
Достаточно сравнить линукс и хурд.
Вот такая грустная правда((
| |
|
5.14, xsignal (ok), 13:48, 11/04/2025 [^] [^^] [^^^] [ответить]
| +/– |
> Потому что хелловорл или утилитку в 10к строк может написать почти каждый
Ну конечно..) Это только на вид эти утилиты простые, а за кажущейся простотой скрывается далеко нетривиальная математическая база.
> Поэтому почти все крупные СПО проекты это детище корпораций
Не правда, существует много больших и сложных безкорпоративных проетов.
| |
|
6.16, Аноним (-), 14:00, 11/04/2025 [^] [^^] [^^^] [ответить]
| –1 +/– |
И какая нетривиальная математическая база скрывается по подобными утилитами?
Греп умудряется тормозить даже на простых задачах.
И вместо приходится использовать ugrep, написанный на нормальном языке и руками, который обгоняет его в разы.
> существует много больших и сложных безкорпоративных проетов.
Примеры в студию.
В защиту своей точки зрения:
linux kernel, blender, firefox, chrome, ASOP, X11 и вейланд.
| |
|
7.65, _ (??), 21:59, 11/04/2025 [^] [^^] [^^^] [ответить]
| +/– |
> И вместо приходится использовать ugrep, написанный на нормальном языке
C++ то? :) Ну лана ... пусть будет :)
А теперь следи за руками: grep на любом хосте гарантированно _будет_...
А твой ugrep, хоть и не плох! - но надо озаботится его наличием в нужное время в нужном месте САМОМУ :( ...
Если ты понял о чём я - ТЫ ПОНЯЛ! :) А нет ... ну значит ты - на яббле %-))))
> и руками, который обгоняет его в разы.
И чо? ... там у них на хомяке есть строчка:
>>>See also: gnu grep, bsd grep, git grep, pcre grep, agrep, ack, ag, rg, sift
Я вот лично, кроме sift - всё попробовал, даже ripgrep ... лично мне больше всего зашёл ag (тоже зааза - плюсовый ;) ... но то - на моем компе, где я работу работаю и не-работу не-работаю ;-)
А ещё хочу отметить что тему "grep-но-луДше" начал ack 20 лет назад ещё и оно вообще на Perl-е :)
Ну и да: на вкус и цвет - все фломастеры разные :)
| |
|
6.18, Аноним (-), 14:05, 11/04/2025 [^] [^^] [^^^] [ответить]
| +/– |
> Не правда, существует много больших и сложных безкорпоративных проетов.
Это интересно какие?
Вот чтобы прям и большие, и сложные! Чтобы сразу было видно преимущество базара васянов над базаром корпов. Ну и неплохо было бы, чтобы списочек был не на пару пунктов, а тоже большой))
Осилишь такой запрос?
| |
|
|
4.79, Аноним (78), 10:36, 12/04/2025 [^] [^^] [^^^] [ответить]
| +1 +/– |
Выбирай ПЛК, которые можно программировать на языках общего назначения и будет тебе счастье. А поскольку, в их недрах, чаще всего, используются ARM-микроконтроллеры, то чем скомпилировать для них, легко найдёшь в опенсорсе.
| |
|
3.13, Аноним (62), 13:42, 11/04/2025 [^] [^^] [^^^] [ответить]
| +/– |
> И почему для этого не использовать подходящий инструмент?
у вас КМП в грепе и в "подходящем инструменте" отличается?
| |
|
4.45, n00by (ok), 18:08, 11/04/2025 [^] [^^] [^^^] [ответить]
| +/– |
>> И почему для этого не использовать подходящий инструмент?
> у вас КМП в грепе и в "подходящем инструменте" отличается?
У нас есть понимание, сколько времени занимает чтение с накопителя, как последовательное, так и при случайном доступе.
| |
|
|
6.76, n00by (ok), 07:48, 12/04/2025 [^] [^^] [^^^] [ответить]
| +/– |
Это утверждение. Чтение несоизмеримо дольше поиска в ОЗУ. Что бы "в сотне тысяч файлов" начал играть заметную роль КМП, данные сначала надо "закешировать".
| |
|
7.87, Аноним (62), 14:43, 12/04/2025 [^] [^^] [^^^] [ответить]
| +/– |
> данные сначала надо "закешировать"
Ну этим к примеру занимается ФС при чтении файла, и вообще если у меня "в сотне тысяч файлов" надо что-либо искать, разве не последовательно файл за файлом я буду читать и искать в нем? Есть польза от кеша?
пс: а начинать надо было с того, что никакого КМП в том же самом грепе нету :Р, но это условно, вопрос в другом был, чем же условный КМП должен был отличаться в грепе и в "подходящем инструменте".
| |
|
8.92, n00by (ok), 16:58, 12/04/2025 [^] [^^] [^^^] [ответить] | +/– |  Нет, ФС занимается кешированием в прямом смысле -- без кавычек -- то есть не очи... текст свёрнут, показать | |
|
9.97, Аноним (62), 17:18, 12/04/2025 [^] [^^] [^^^] [ответить] | +/– | А как мы будет отличать блоки Выделены они под файл или нет без информации из Ф... текст свёрнут, показать | |
|
|
|
|
|
|
3.84, Фрол (?), 13:51, 12/04/2025 [^] [^^] [^^^] [ответить]
| +/– |
hacmp состоит из ksh, grep, cat и echo чуть более, чем на половину, если что.
| |
|
4.95, n00by (ok), 17:05, 12/04/2025 [^] [^^] [^^^] [ответить]
| +/– |
А хорошая программа наполовину состоит из комментариев и сообщений сообщений об ошибках.
| |
|
5.98, Фрол (?), 17:27, 12/04/2025 [^] [^^] [^^^] [ответить]
| +/– |
Дядя, ты спросил, где эти тулзы крутятся 24/7
Я ответил. Таким примером, штоб понятнее было.
Хочешь повилять тухесом -твое дело, никто за язык не тянет.
| |
|
6.99, n00by (ok), 17:40, 12/04/2025 [^] [^^] [^^^] [ответить]
| +/– |
Ну я и понял, что hacmp - хорошая программа, много пишет сообщений посредством echo. Не очень понял, 24/7 она занята этим, или чем-то другим?
| |
|
7.101, Фрол (?), 17:55, 12/04/2025 [^] [^^] [^^^] [ответить]
| +/– |
> Ну я и понял, что hacmp - хорошая программа, много пишет сообщений
> посредством echo. Не очень понял, 24/7 она занята этим, или чем-то
> другим?
wiki://hacmp
| |
|
|
|
|
|
2.10, Аноним (-), 13:26, 11/04/2025 [^] [^^] [^^^] [ответить]
| –1 +/– |
Ты не прав! Там надежность OVER 9000!!!!
Была бы.
Если бы их писали на не кривыми ногами на ЯП из прошлого тысячелетия.
Уязвимость в утилите GNU split, приводящая к переполнению буфер
opennet.ru/opennews/art.shtml?num=60490
Уязвимость в утилите GNU sort
opennet.ru/opennews/art.shtml?num=42235
Опасные уязвимости в утилитах beep и patch
opennet.ru/opennews/art.shtml?num=48427
| |
|
3.12, xsignal (ok), 13:30, 11/04/2025 [^] [^^] [^^^] [ответить]
| –1 +/– |
Эти уязвимости как-то проявились, к каким-либо последствиям привели? Нет. Поэтому это просто обнаруженные ошибки, которые есть в любой программе на любом языке. Нашли - исправили, делов - на копейку, а шуму - на миллион!
| |
|
4.15, Аноним (-), 13:50, 11/04/2025 [^] [^^] [^^^] [ответить]
| +/– |
> Эти уязвимости как-то проявились, к каким-либо последствиям привели?
О, надеюсь твой водитель, проежая на красный свет, или врач отвечают точно так же "ну в же не умерли"))?
Вот тебе еще "Написаны на Си, и ничего - эти утилиты просто работают"
Критическая уязвимость в sudo, позволяющая получить привилегии root
opennet.ru/opennews/art.shtml?num=60490
Уязвимость проявляется с июля 2011 года и вызвана переполнением буфера.
Десять лет дырявости, однако.
| |
|
5.17, xsignal (ok), 14:02, 11/04/2025 [^] [^^] [^^^] [ответить]
| –1 +/– |
> проежая на красный свет
Проезд на красный свет - это грубое нарушение правил, а эти утилиты никаких правил не нарушали, так что аналогия неверна. Скорее так: в двигателе автомобиля обнаружен дефект, который в очень экзотических условиях и при особом стечении обстоятельств может привести к тому, что мотор заглохнет. О дефекте сообщено инженерам, они внесли изменения в конструкцию и двигатель больше не глохнет.
> Критическая уязвимость в sudo
sudo вообще не нужно, не знаю, кто им пользуется.
| |
|
6.53, Аноним (48), 18:19, 11/04/2025 [^] [^^] [^^^] [ответить]
| +/– |
> sudo вообще не нужно, не знаю, кто им пользуется.
А список того, что не нужно и чем никто не пользуется можно где-то посмотреть? Или это снова фантазии админа высоконагруженного локалхоста с LA 0.0?
| |
|
|
|
3.42, _ (??), 16:54, 11/04/2025 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Ты не прав! Там надежность OVER 9000!!!!
> Была бы. Если бы их писали на не кривыми ногами на ЯП из прошлого тысячелетия.
межушная ржавчина детектед(С)
Ваша безопасТность - нет программы - нет уязвимости. раст-вЭй(С)
PS: Ваши пишут замену кор-утилям ... но даже сами _это_ не пользуют :)))
:-р
| |
3.85, Фрол (?), 14:05, 12/04/2025 [^] [^^] [^^^] [ответить]
| +/– |
> Опасные уязвимости в утилитах beep и patch
товарищ, вы забыли про опасную уязвимость в утилите saltshaker
| |
|
2.20, Аноним (-), 14:12, 11/04/2025 [^] [^^] [^^^] [ответить]
| +/– |
Не только Си, этот ряд можно продолжать - GNU, Столлман и копилефт вот за что мы должны держаться, и на что молиться.
В ядре никакого Раста быть не должно, и точка.
| |
|
3.21, Аноним (-), 14:23, 11/04/2025 [^] [^^] [^^^] [ответить]
| +/– |
> GNU, Столлман и копилефт вот за что мы должны держаться
А за какую часть Столлмана ты хочешь держаться?
Кстати вопрос - когда он помрет (а все люди смертные), вы будете его мощи возить по городам, целовать, окроплять, читать Манифест и тк.?
Мне просто интересно насколько далеко зайдет ваша секта.
> В ядре никакого Раста быть не должно, и точка.
Поздно, аноним, уже поздно.
Сишка уже проиграла с++ (да, именно плюсам, а не расту, и произошло это лет 10-15 назад).
Популярность GNU упала очень сильно.
| |
|
4.28, Аноним (7), 15:35, 11/04/2025 [^] [^^] [^^^] [ответить]
| +/– |
За его душу.
Зачем какие-то мощи? Нужно преемника ему искать. Жаль, что он об этом сам не позаботился.
| |
|
5.34, Аноним (-), 15:54, 11/04/2025 [^] [^^] [^^^] [ответить]
| +/– |
> За его душу
Бог мёртв. Души нет.
> Зачем какие-то мощи?
Ну хз, вот у некоторых такое практикуется.
Только представьте - в ваше город приехал палец левой руки самого Столлмана!
Вот его череп в молодости. А это его череп в старости)))
| |
|
6.82, Аноним (78), 11:09, 12/04/2025 [^] [^^] [^^^] [ответить]
| +/– |
И кто пойдёт преклоняться этому? Разве что, старушки, которое готовы целовать что угодно, что объявлено святым? Айтишники точно не пойдут.
| |
|
|
4.54, Аноним (48), 18:20, 11/04/2025 [^] [^^] [^^^] [ответить]
| +1 +/– |
> когда он помрет (а все люди смертные)
Столлман — бог опенсорса, он бессмертен!
| |
|
|
2.22, morphe (?), 14:51, 11/04/2025 [^] [^^] [^^^] [ответить]
| +1 +/– |
> эти утилиты просто работают, делают своё дело на миллиардах серверов в режиме 24/7/365. Надёжность - 99.999%!
Сервера в режиме 24/7/365 работают сами по себе, а эти утилиты работают раз в месяц когда туда зачем-то входит администратор
| |
|
3.23, xsignal (ok), 15:02, 11/04/2025 [^] [^^] [^^^] [ответить]
| –1 +/– |
Они в скриптах работают и по cron'у. Например, gzip жмёт суточные логи.
| |
|
4.44, _ (??), 16:59, 11/04/2025 [^] [^^] [^^^] [ответить]
| +/– |
Да по exec[velxКЛМН]( ..bin/proga ...) - тоже.
Но откуда Ынженерам опеннета об этом знать? Ты их ещё спроси зачем контуперу байты? :)))
| |
|
5.56, n00by (ok), 19:03, 11/04/2025 [^] [^^] [^^^] [ответить]
| +/– |
То есть exec() выполнятся 24/7/365? А что мешает исключить непрерывное порождение процессов?
| |
|
6.66, _ (??), 22:06, 11/04/2025 [^] [^^] [^^^] [ответить]
| +2 +/– |
Ну и как ты предлагаешь мне обЪяснить "Основы: как работает контупер для самых маленьких." в одном посте да ещё походу - продавцу помидоров?!?!
Нееее мужчино - я пас! :-р
| |
|
7.77, n00by (ok), 07:55, 12/04/2025 [^] [^^] [^^^] [ответить]
| +/– |
Что надо объяснять? exec() довольно много всего делает, всё это занимает время. Если это необходимо часто, значит следует исключить накладные расходы, встроить нужную функциональность в вызывающую программу, либо держать процесс постоянно в памяти и общаться с ним через разделяемую память или сокет, например.
| |
|
8.81, Аноним (78), 11:02, 12/04/2025 [^] [^^] [^^^] [ответить] | +/– | Кто позволит программе, от обычного пользователя, создавать отдельное адресное п... текст свёрнут, показать | |
|
9.96, n00by (ok), 17:11, 12/04/2025 [^] [^^] [^^^] [ответить] | +/– |  Написавший своими руками exec А это откуда взялось Создание АП и прочего и ес... текст свёрнут, показать | |
|
|
|
|
5.70, morphe (?), 03:02, 12/04/2025 [^] [^^] [^^^] [ответить]
| +/– |
Делать shell-out для вызова coreutils вместо того чтобы просто дёргать libc? Мсье знает толк в извращениях
| |
|
4.69, morphe (?), 03:00, 12/04/2025 [^] [^^] [^^^] [ответить]
| +1 +/– |
У нормальных людей локальным сбором логов занимается journald, а не непонятные скрипты по крону
| |
|
5.80, Аноним (78), 10:39, 12/04/2025 [^] [^^] [^^^] [ответить]
| –1 +/– |
О, да, очень приятны, а гавное, понятны человеку бинарные логи.
| |
|
6.103, morphe (?), 19:21, 12/04/2025 [^] [^^] [^^^] [ответить]
| +1 +/– |
> О, да, очень приятны, а гавное, понятны человеку бинарные логи.
Есть программа для чтения этих бинарных логов, которая позволяет задавать нормальные фильтры
Удачи grepом выбирать временные промежутки, особенно в уже ротировавшихся логах (Которые, как уже было сказано выше, при этом сжаты).
| |
|
|
|
|
2.25, Математик (-), 15:09, 11/04/2025 [^] [^^] [^^^] [ответить]
| –2 +/– |
>99.999%
1 процент - это сотая часть чего-либо. Не тысяная и не десятитысячная. Предел дробления 100 частей, не более. Не бывает половины процента или треть из одного процента. Так-что выбирай, или 99%, или 100%.
| |
|
3.27, xsignal (ok), 15:19, 11/04/2025 [^] [^^] [^^^] [ответить]
| +/– |
Процент - это мнемоническая запись часто используемой в быту дроби 1/100. Десятая доля процента это 1/100/10 = 1/1000, сотая - 1/10000 и т.д. Так что всё делится, всё бывает, фиговый из тебя математик.
| |
|
4.36, Математик (-), 16:03, 11/04/2025 [^] [^^] [^^^] [ответить]
| –2 +/– |
У процента (%) нет дробей. У дробей есть дроби, мнемоник ты наш. Всё делится, но не один процент.
| |
4.57, n00by (ok), 19:05, 11/04/2025 [^] [^^] [^^^] [ответить]
| +/– |
> Процент - это мнемоническая запись часто используемой в быту дроби 1/100. Десятая
> доля процента это 1/100/10 = 1/1000, сотая - 1/10000 и т.д.
> Так что всё делится, всё бывает, фиговый из тебя математик.
Очень хорошо, что есть способность к арифметике, в отличие от того "Математика".
Теперь считаем:
"на миллиардах серверов в режиме 24/7/365. Надёжность - 99.999%!"
99,999% * 1 000 000 000
;)
| |
|
3.29, Аноним (7), 15:38, 11/04/2025 [^] [^^] [^^^] [ответить]
| +2 +/– |
Это с каого перепуга проценты стали измерять только целыми числами, горе-математик?
| |
|
4.37, Математик (-), 16:06, 11/04/2025 [^] [^^] [^^^] [ответить]
| –1 +/– |
Проценты "не измеряют" целыми числами. 1% - это просто сотая часть чего либо (целостного). Например, сейчас твой мозк работает на 1%. :)
| |
|
|
4.39, Математик (-), 16:12, 11/04/2025 [^] [^^] [^^^] [ответить]
| +/– |
Чувак, я знаю ещё круче примеры. Например у экономистов читал "прибыли" в 200%, 900% :)
P.S.
А вы знаете, что есть такое ошибочное определение энергетических потребностей человека, "килокалория" называется. Придумано в XIX века, и до сих пор в научных журналах и книгах публикуется. Круто да?
| |
|
3.89, Фрол (?), 15:29, 12/04/2025 [^] [^^] [^^^] [ответить]
| +/– |
> Предел дробления 100 частей, не более
Чуров смотрит на тебя, как на двоечника.
| |
|
2.26, Аноним (26), 15:14, 11/04/2025 [^] [^^] [^^^] [ответить]
| +2 +/– |
>Написаны на Си
>и ничего - эти утилиты просто работают, делают своё дело на миллиардах серверов в режиме 24/7/365. Надёжность - 99.999%!
Хотел было сначала написать что тонко, но почитал другие твои комментарии в ветке и понял что умысла на тонкость не было, просто бессознательное вышло в такой по истине гениальной форме.
| |
|
1.46, Аноним (46), 18:09, 11/04/2025 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Отличненько, осенью после выхода нового релиза LFS, посмотрим. Пока не до этого, текущий релиз нужно допилить. Не смотря на то какие бы тарифные и прочие воины не велись.
| |
|