Forwarded from Блог*
Народ, Фёдор Логачев — известная личность в Rust gamedev комьюнити, автор macroquad — упал во время параглайдинга на камни и серьёзно пострадал. Сейчас, насколько я понимаю, нет угрозы его жизни, но ему пришлось перенести несколько крайне дорогостоящих операций. Если можете (и хотите, конечно), помогите деньгами на оплату операций и ухода.
Требуется 21 тысяча евро, на момент публикации поста собрано 27%.
gofundme.com/f/urgent-appeal-help-fund-fedors-lifesaving-surgeries
Требуется 21 тысяча евро, на момент публикации поста собрано 27%.
gofundme.com/f/urgent-appeal-help-fund-fedors-lifesaving-surgeries
gofundme.com
Donate to Urgent Appeal: Help Fund Fedor’s Life-Saving Surgeries, organized by Fedor Logachev
Last week, Fedor was involved in a severe paragliding accident. … Fedor Logachev needs your support for Urgent Appeal: Help Fund Fedor’s Life-Saving Surgeries
😱21🖕15🫡7😁4😢3☃1😐1
Forwarded from Loser story
Привет, мы частично заопенсорсили текущий код нашего проекта -- SereneDB. Это оказалось тяжелее чем хотелось бы :) https://github.com/serenedb/serenedb
Большую часть ближайших тасок будем делать в опенсорсе. В целом проект ещё далековат от релизного состояния, но "бета" с первыми публичными бенчмарками планируется к концу февраля.
Пара интересных моментов, которые можно посмотреть уже сейчас, связаны с архитектурой:
=> pg wire protocol (postgres drivers and tools like psql)
=> libpq_query parser (postgres query syntax)
=> axiom query frontend (runner + optimizer)
=> velox query execution
=> rocksdb | search
На мой взгляд, наиболее любопытны два аспекта:
axiom -- библиотека оптимизатора для velox, которую недавно начала делать meta. Мы активно подключились к разработке, примерно половина коммитов за последние 3 месяца наши. Кстати в нашем форке есть пока отсутствующие у них "фичи": window функции, cross джоины, etc. Да, проект пока ещё совсем сырой, но мне кажется библиотека оптимайзера это классная идея, так как если с execution оно более менее устоялось, с оптимайзерами все не так однозначно
Второй аспект, но не по значению, поисковый движок, который изначально был сделан по дизайну lucene, но со временем эволюционировал во что-то ближе к гибриду с колоночным базам данных.
Кстати если вы не особо разработчик баз данных, у нас есть разные прикольных чисто инженерные моментов:
1) build from source (кроме libc, там пока не густо), как следствие например мы можем легко пропатчить libc++ и используем memory sanitizer
2) А ещё именно это позволяет легко получать static binary
3) И да у нас C++26, clang, llvm стек в общем
4) А для concurency юзаем YACLib
5) Да и в целом есть много прикольных решений про которые расскажем немного позже, например, сериализации структур с помощью boost pfr или кастомные локфри iobuf-ы
В любом случае буду рад всем кто поддержит наш пока небольшой проект с помощью PR/issue/звёздочек!
Большую часть ближайших тасок будем делать в опенсорсе. В целом проект ещё далековат от релизного состояния, но "бета" с первыми публичными бенчмарками планируется к концу февраля.
Пара интересных моментов, которые можно посмотреть уже сейчас, связаны с архитектурой:
=> pg wire protocol (postgres drivers and tools like psql)
=> libpq_query parser (postgres query syntax)
=> axiom query frontend (runner + optimizer)
=> velox query execution
=> rocksdb | search
На мой взгляд, наиболее любопытны два аспекта:
axiom -- библиотека оптимизатора для velox, которую недавно начала делать meta. Мы активно подключились к разработке, примерно половина коммитов за последние 3 месяца наши. Кстати в нашем форке есть пока отсутствующие у них "фичи": window функции, cross джоины, etc. Да, проект пока ещё совсем сырой, но мне кажется библиотека оптимайзера это классная идея, так как если с execution оно более менее устоялось, с оптимайзерами все не так однозначно
Второй аспект, но не по значению, поисковый движок, который изначально был сделан по дизайну lucene, но со временем эволюционировал во что-то ближе к гибриду с колоночным базам данных.
Кстати если вы не особо разработчик баз данных, у нас есть разные прикольных чисто инженерные моментов:
1) build from source (кроме libc, там пока не густо), как следствие например мы можем легко пропатчить libc++ и используем memory sanitizer
2) А ещё именно это позволяет легко получать static binary
3) И да у нас C++26, clang, llvm стек в общем
4) А для concurency юзаем YACLib
5) Да и в целом есть много прикольных решений про которые расскажем немного позже, например, сериализации структур с помощью boost pfr или кастомные локфри iobuf-ы
В любом случае буду рад всем кто поддержит наш пока небольшой проект с помощью PR/issue/звёздочек!
GitHub
GitHub - serenedb/serenedb: The First Distributed Real-Time Search Analytics Database
The First Distributed Real-Time Search Analytics Database - serenedb/serenedb
🔥19👍8❤2❤🔥1
Forwarded from Akiba | Hackspace
Выложили доклады с хэллоуинского митапа!
➡ Автоматический реверс-инжиниринг с помощью символьного исполнения
➡ От 5 Вт до 1,2 МВт: эволюция зарядки аккумуляторов от смартфона до электрокара
➡ GPU MATMUL
➡ Поймай меня, если сможешь — способы защиты музеев и галерей, о которых вы не знали
➡ Байки из гроба или как мы таск для ZeroNights писали
➡ Animal Crossing или или или
💬 Мы ищем докладчиков на новогодний митап 28 декабря! Формат выступления — 10-15 минут. Уже знаешь, о чём рассказать? Или хочешь сделать доклад, но не знаешь о чём? Напиши Вове @KillingInTheNameOf.
Akiba Hackspace | Как нас найти? | Чат | YouTube
Akiba Hackspace | Как нас найти? | Чат | YouTube
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥2👏2
Forwarded from Segment@tion fault
OIDC чуть более чем половины современных продуктов почему-то сводится к тому, что все рады раздавать токены и пихать их в JWT Assertion, но когда дело доходит до проверки чужих, то начинаются отмазы в стиле "просто положите юзернейм в заголовок и мы будем ему доверять" с предложением вернуться в 80е с hosts allow, L4-фаерволами и авторизацией по айпи.
Проблема естественно в том, что когда вы раздаете токены - достаточно присобачить первый попавшийся модуль, который умеет что-то там генерить. А вот когда проверяете - поддерживать как минимум 4 самых популярных формата (RSA, EC, OCT и OKP/ED25519), а все хотят быть только писателями.
Графана, например, шла к проверке assertion почему-то аж до 10й своей версии. Причем это до сих пор реализовано у них через жопу. JWK они понимают а JWKS уже нет - извольте сами распарсить oidc configuration и вынять один ключ. Про остальных промолчу. Как промолчу про саму убогость формата, который предложил забить на PKCS и раскладывать кривые на x/y.
Проблема естественно в том, что когда вы раздаете токены - достаточно присобачить первый попавшийся модуль, который умеет что-то там генерить. А вот когда проверяете - поддерживать как минимум 4 самых популярных формата (RSA, EC, OCT и OKP/ED25519), а все хотят быть только писателями.
Графана, например, шла к проверке assertion почему-то аж до 10й своей версии. Причем это до сих пор реализовано у них через жопу. JWK они понимают а JWKS уже нет - извольте сами распарсить oidc configuration и вынять один ключ. Про остальных промолчу. Как промолчу про саму убогость формата, который предложил забить на PKCS и раскладывать кривые на x/y.
👍19😁4❤3🫡1
Банки начали запрашивать родственную связь при переводе денег
https://ria.ru/20251221/perevod-2063608975.html
Банки начали уточнять родственную связь клиентов с людьми, которым они хотят перечислить крупную сумму денег, выяснило РИА Новости.
Так, при желании совершить такой перевод операцию блокируют. Затем с человеком связывается сотрудник кредитной организации и задает вопросы, среди них просьба назвать полные данные получателя и его родственную связь с ним.
Также представитель банка может спросить, куда планируется потратить эти деньги.
Спасибо
https://ria.ru/20251221/perevod-2063608975.html
Банки начали уточнять родственную связь клиентов с людьми, которым они хотят перечислить крупную сумму денег, выяснило РИА Новости.
Так, при желании совершить такой перевод операцию блокируют. Затем с человеком связывается сотрудник кредитной организации и задает вопросы, среди них просьба назвать полные данные получателя и его родственную связь с ним.
Также представитель банка может спросить, куда планируется потратить эти деньги.
Спасибо
🖕32🥰3😁2
Тут Spotify забекапили
We backed up Spotify (metadata and music files). It’s distributed in bulk torrents (~300TB), grouped by popularity.
This release includes the largest publicly available music metadata database with 256 million tracks and 186 million unique ISRCs.
It’s the world’s first “preservation archive” for music which is fully open (meaning it can easily be mirrored by anyone with enough disk space), with 86 million music files, representing around 99.6% of listens.
. . .
Before we dive into the details of this collection, here is a quick overview:
- Spotify has around 256 million tracks. This collection contains metadata for an estimated 99.9% of tracks.
- We archived around 86 million music files, representing around 99.6% of listens. It’s a little under 300TB in total size.
- We primarily used Spotify’s “popularity” metric to prioritize tracks. View the top 10,000 most popular songs in this HTML file (13.8MB gzipped).
- For popularity>0, we got close to all tracks on the platform. The quality is the original OGG Vorbis at 160kbit/s. Metadata was added without reencoding the audio (and an archive of diff files is available to reconstruct the original files from Spotify, as well as a metadata file with original hashes and checksums).
- For popularity=0, we got files representing about half the number of listens (either original or a copy with the same ISRC). The audio is reencoded to OGG Opus at 75kbit/s — sounding the same to most people, but noticeable to an expert.
- The cutoff is 2025-07, anything released after that date may not be present (though in some cases it is).
- This is by far the largest music metadata database that is publicly available. For comparison, we have 256 million tracks, while others have 50-150 million. Our data is well-annotated: MusicBrainz has 5 million unique ISRCs, while our database has 186 million.
- This is the world’s first “preservation archive” for music which is fully open (meaning it can easily be mirrored by anyone with enough disk space).
Top 10,000 Songs by Popularity
https://annas-archive.li/blog/spotify/spotify-top-10k-songs-table.html
We backed up Spotify (metadata and music files). It’s distributed in bulk torrents (~300TB), grouped by popularity.
This release includes the largest publicly available music metadata database with 256 million tracks and 186 million unique ISRCs.
It’s the world’s first “preservation archive” for music which is fully open (meaning it can easily be mirrored by anyone with enough disk space), with 86 million music files, representing around 99.6% of listens.
. . .
Before we dive into the details of this collection, here is a quick overview:
- Spotify has around 256 million tracks. This collection contains metadata for an estimated 99.9% of tracks.
- We archived around 86 million music files, representing around 99.6% of listens. It’s a little under 300TB in total size.
- We primarily used Spotify’s “popularity” metric to prioritize tracks. View the top 10,000 most popular songs in this HTML file (13.8MB gzipped).
- For popularity>0, we got close to all tracks on the platform. The quality is the original OGG Vorbis at 160kbit/s. Metadata was added without reencoding the audio (and an archive of diff files is available to reconstruct the original files from Spotify, as well as a metadata file with original hashes and checksums).
- For popularity=0, we got files representing about half the number of listens (either original or a copy with the same ISRC). The audio is reencoded to OGG Opus at 75kbit/s — sounding the same to most people, but noticeable to an expert.
- The cutoff is 2025-07, anything released after that date may not be present (though in some cases it is).
- This is by far the largest music metadata database that is publicly available. For comparison, we have 256 million tracks, while others have 50-150 million. Our data is well-annotated: MusicBrainz has 5 million unique ISRCs, while our database has 186 million.
- This is the world’s first “preservation archive” for music which is fully open (meaning it can easily be mirrored by anyone with enough disk space).
Top 10,000 Songs by Popularity
https://annas-archive.li/blog/spotify/spotify-top-10k-songs-table.html
🔥52👍10🤯5👌2🗿1
Forwarded from Находки в опенсорсе
PEP-799: Семплирующий профилировщик встроенный в Python 3.15+
Краткий обзор: https://docs.python.org/3.15/whatsnew/3.15.html#whatsnew315-sampling-profiler
Документация: https://docs.python.org/3.15/library/profiling.sampling.html
Кратко:
- В 3.15
- В 3.15
- Добавили новый
- А еще добавили встроенные TUI (на скриншоте) и GUI
Ключевые фичи:
- Almost Zero-overhead: добиваемся такого, за счет того, что переодически получаем готовые стектрейсы работающих процессов, не нужно добавлять инструментацию функций как в
- Не нужно менять существующий код
- Разные режимы работы:
- Разные виды замеров:
- Поддержка тредов
- Поддержка asyncio с флагом
- Разные форматы вывода информации:
-
- Поддержка профилирования до уровня опкодов виртуальной машины, включая специализации
- Гибкая конфигурация буквально всего
Примеры запуска:
-
-
На чем основана работа технически?
- PEP-768 с remote-debugging предоставляет техническую возможность быстро и легко получать семплы из виртуальной машины
- Для asyncio используется новый АПИ для async-aware call-graphs
Личное мнение: очень крутая фича, пока у меня вопросы по TUI / GUI. Не очень понимаю, зачем их затащили в stdlib. Зарепортил пару багов. На маке требуется запускать профилировщик с
Кирилл вот тоже заценил.
Обсуждение: Что вы думаете о данной фиче? Как вы сейчас профилируете ваши приложения в разработке и в проде?
P.S. Последний пост в текущем году. Всех с наступающим! 🎄
| Поддержать | YouTube | GitHub | Чат |
Краткий обзор: https://docs.python.org/3.15/whatsnew/3.15.html#whatsnew315-sampling-profiler
Документация: https://docs.python.org/3.15/library/profiling.sampling.html
Кратко:
- В 3.15
cProfile (написан на C) был перемещен в profiling.tracing- В 3.15
profile (написан на Python) стал deprecated, его уберут в 3.17- Добавили новый
profiling.sampling (кодовое имя `tachyons`), о нем и поговорим- А еще добавили встроенные TUI (на скриншоте) и GUI
Ключевые фичи:
- Almost Zero-overhead: добиваемся такого, за счет того, что переодически получаем готовые стектрейсы работающих процессов, не нужно добавлять инструментацию функций как в
cProfile- Не нужно менять существующий код
- Разные режимы работы:
attach позволяет подключиться к работающему Python процессу, а run позволяет запустить код для профилировки- Разные виды замеров:
--mode wall, --mode cpu, --mode gil, --mode exception- Поддержка тредов
- Поддержка asyncio с флагом
--async-aware, можно смотреть даже suspended tasks с --async-mode=all- Разные форматы вывода информации:
--flamegraph, --pstats, --heatmap, --gecko-
--live вместе с TUI для отображения информации в реальном времени (как в top условном)- Поддержка профилирования до уровня опкодов виртуальной машины, включая специализации
- Гибкая конфигурация буквально всего
Примеры запуска:
-
python -m profiling.sampling run --flamegraph -o profile.html script.py - запускаем скрипты и генерим флеймграф-
python -m profiling.sampling attach --live $YOUR_PID - профилируем работающий процесс и получаем данные в реальном времениНа чем основана работа технически?
- PEP-768 с remote-debugging предоставляет техническую возможность быстро и легко получать семплы из виртуальной машины
- Для asyncio используется новый АПИ для async-aware call-graphs
Личное мнение: очень крутая фича, пока у меня вопросы по TUI / GUI. Не очень понимаю, зачем их затащили в stdlib. Зарепортил пару багов. На маке требуется запускать профилировщик с
sudo -E. Остальное - нравится!Кирилл вот тоже заценил.
Обсуждение: Что вы думаете о данной фиче? Как вы сейчас профилируете ваши приложения в разработке и в проде?
P.S. Последний пост в текущем году. Всех с наступающим! 🎄
| Поддержать | YouTube | GitHub | Чат |
🔥19👍7😁2❤1
Проект Microsoft по использованию AI для перевода кодовой базы с C/C++ на Rust
https://www.opennet.ru/opennews/art.shtml?num=64479
Гален Хант (Galen Hunt), управляющий директор Microsoft Azure Sphere и бывший руководитель группы по развитию операционных систем в подразделении Microsoft Research, представил исследовательский проект по созданию инструментов, комбинирующих AI с традиционными алгоритмами, для автоматизированного переписывания крупнейших кодовых баз Microsoft на языке Rust. Целью проекта заявлено полное исключение языков C и C++ из кодовых баз Microsoft до 2030 года. В качестве миссии упоминается устранение технического долга в масштабных проектах. Отмечается, что разрабатываемая инфраструктура для обработки кода ориентирована на возможность одному инженеру за месяц переводить миллион строк кода. Проект развивается в подразделении Microsoft CoreAI.
Оригинал поста
https://www.linkedin.com/posts/galenh_principal-software-engineer-coreai-microsoft-activity-7407863239289729024-WTzf/
https://www.opennet.ru/opennews/art.shtml?num=64479
Гален Хант (Galen Hunt), управляющий директор Microsoft Azure Sphere и бывший руководитель группы по развитию операционных систем в подразделении Microsoft Research, представил исследовательский проект по созданию инструментов, комбинирующих AI с традиционными алгоритмами, для автоматизированного переписывания крупнейших кодовых баз Microsoft на языке Rust. Целью проекта заявлено полное исключение языков C и C++ из кодовых баз Microsoft до 2030 года. В качестве миссии упоминается устранение технического долга в масштабных проектах. Отмечается, что разрабатываемая инфраструктура для обработки кода ориентирована на возможность одному инженеру за месяц переводить миллион строк кода. Проект развивается в подразделении Microsoft CoreAI.
Оригинал поста
https://www.linkedin.com/posts/galenh_principal-software-engineer-coreai-microsoft-activity-7407863239289729024-WTzf/
🤡49😁19👍5❤2🤬1🖕1👀1
Один ID на все. Зачем Минцифры хочет ввести единый идентификатор пользователя во всех интернет-сервисах
https://rg.ru/2025/12/22/v-rossii-poiavitsia-edinyj-identifikator-polzovatelia-v-internete.html
> Замминистра отметила, что идет работа по улучшению подходов к медиаизмерениям через способы унифицирования данных. По ее словам, сейчас совместно с отраслью идут обсуждения о том, как повысить прозрачность этой информации. Например, к диалогу уже присоединились российские онлайн-кинотеатры.
> Предлагается привязывать ID к номеру телефона, а после этого обезличивать данные зрителя.
Спасибо
https://rg.ru/2025/12/22/v-rossii-poiavitsia-edinyj-identifikator-polzovatelia-v-internete.html
> Замминистра отметила, что идет работа по улучшению подходов к медиаизмерениям через способы унифицирования данных. По ее словам, сейчас совместно с отраслью идут обсуждения о том, как повысить прозрачность этой информации. Например, к диалогу уже присоединились российские онлайн-кинотеатры.
> Предлагается привязывать ID к номеру телефона, а после этого обезличивать данные зрителя.
Спасибо
💊75🖕23🤬16🫡4❤2😁1
Forwarded from disasm.me channel
Разбираясь с тяжеловесными пакетами, нашёл вот такой интересный пакет: quick-logger-js
Занятно видеть разницу в весе релизов:
1.0.5 — 565 KB
1.0.6 — 40.7 KB
1.0.7 — 3.29 GB👀
1.0.8 — 55.6 KB
1.0.9 — 55.6 KB
Что произошло? В релиз попал файл😺
#npm
@disasm_me_ch
Занятно видеть разницу в весе релизов:
1.0.5 — 565 KB
1.0.6 — 40.7 KB
1.0.7 — 3.29 GB
1.0.8 — 55.6 KB
1.0.9 — 55.6 KB
Что произошло? В релиз попал файл
stdout.txt с результатами бенчмарка для библиотеки. Релиз не удалён. Много думал #npm
@disasm_me_ch
Please open Telegram to view this post
VIEW IN TELEGRAM
😁68❤4🤡4🔥2
The issue, which affects all versions including and higher than 0.211.0 and below 1.120.4, has been patched in 1.120.4, 1.121.1, and 1.122.0.
Critical n8n Flaw (CVSS 9.9) Enables Arbitrary Code Execution Across Thousands of Instances
https://thehackernews.com/2025/12/critical-n8n-flaw-cvss-99-enables.html
A critical RCE flaw (CVSS 9.9) was found in the n8n workflow automation platform.
CVE-2025-68613 lets authenticated users execute arbitrary code, enabling full instance takeover, data access, and system-level actions.
More than 103k exposed instances are observed globally.
https://x.com/TheHackersNews/status/2003369435198030215
😁10👍5🔥4
Forwarded from Блог*
#prog #article
Advent of compiler optimizations — сборник декабрьских статей, по одной в день (в обратном хронологическом порядке), демонстрирующих на отдельных небольших примерах различные оптимизации компиляторов. Написано Мэттом Годболтом (да-да, тот самый, который godbolt.org).
Advent of compiler optimizations — сборник декабрьских статей, по одной в день (в обратном хронологическом порядке), демонстрирующих на отдельных небольших примерах различные оптимизации компиляторов. Написано Мэттом Годболтом (да-да, тот самый, который godbolt.org).
🔥5❤1
Наверное, уже многие видели новость
Основатель QEMU и FFmpeg опубликовал JavaScript-движок Micro QuickJS
https://www.opennet.ru/opennews/art.shtml?num=64483
> Движок поддерживает подмножество языка JavaScript, близкое к спецификации ECMAScript 5 (ES2019) и поддерживающее только режим "strict", предъявляющий более строгие требования к коду и не допускающий использования некоторых неэффективных или приводящих к ошибкам JavaScript-конструкций. Например, глобальные переменные обязательно должны объявляться через ключевое слово "var", запрещено использование "with", массивы не могут иметь пустоты, невозможна инициализация при объявлении вида "new Number(1)", из eval невозможен доступ к локальным переменным.
> Другие отличия от QuickJS: не использующая стек виртуальная машина; иное внутреннее представление объектов; хранение строк в кодировке UTF-8; генерация стандартной библиотеки во время компиляции и её хранение в постоянной памяти с созданием в ОЗУ всего нескольких объектов; близкий к QuickJS, но не использующий рекурсию, парсер; совмещение в одном проходе генерации байткода и оптимизации (в QuickJS имеется несколько проходов для оптимизации).
Фабрис крутой, проекты тоже его люблю.
Пишут, что "движок" новый, а проблемы старые (автором сделана отсылка на https://itszn.com/quickjs.html)
New JS engine, old JS vulns :)
Found a bug and wrote an exploit in 8 hours
645da364a8089c43953b345d3004fc76148cb2f136f74e211429ddc8452846d1 exp-shell.js
https://x.com/itszn13/status/2003808443761938602
Основатель QEMU и FFmpeg опубликовал JavaScript-движок Micro QuickJS
https://www.opennet.ru/opennews/art.shtml?num=64483
> Движок поддерживает подмножество языка JavaScript, близкое к спецификации ECMAScript 5 (ES2019) и поддерживающее только режим "strict", предъявляющий более строгие требования к коду и не допускающий использования некоторых неэффективных или приводящих к ошибкам JavaScript-конструкций. Например, глобальные переменные обязательно должны объявляться через ключевое слово "var", запрещено использование "with", массивы не могут иметь пустоты, невозможна инициализация при объявлении вида "new Number(1)", из eval невозможен доступ к локальным переменным.
> Другие отличия от QuickJS: не использующая стек виртуальная машина; иное внутреннее представление объектов; хранение строк в кодировке UTF-8; генерация стандартной библиотеки во время компиляции и её хранение в постоянной памяти с созданием в ОЗУ всего нескольких объектов; близкий к QuickJS, но не использующий рекурсию, парсер; совмещение в одном проходе генерации байткода и оптимизации (в QuickJS имеется несколько проходов для оптимизации).
Фабрис крутой, проекты тоже его люблю.
Пишут, что "движок" новый, а проблемы старые (автором сделана отсылка на https://itszn.com/quickjs.html)
New JS engine, old JS vulns :)
Found a bug and wrote an exploit in 8 hours
645da364a8089c43953b345d3004fc76148cb2f136f74e211429ddc8452846d1 exp-shell.js
./mqjs ./exp-shell.js
LEAKED: 77b6 1c5ff205
LIBC BASE: 77b6 1d600000
STACK PTR: 7ffd 143e1bb8
WROTE ROP CHAIN
$ whoami
nyan
https://x.com/itszn13/status/2003808443761938602
🔥15🗿4❤3🤔1
Российским пользователям я всё же бы рекомендовал менять адрес не внутри контура Gmail, а переезжать на российские почтовые сервисы. В наступающем году это может оказаться важно.
https://xn--r1a.website/webstrangler/4600
Спасибо
https://xn--r1a.website/webstrangler/4600
Спасибо
🤬9🖕4😁3🤡2👍1🤝1