vak: (Знайка)
[personal profile] vak
Поиграем в генетику как в кубики. Сколько нужно генов, чтобы вышло что-нибудь размножающееся?

Рекорд простоты известен в природе: всего из двух генов получается цирковирус. И там их целое семейство. Вот как выглядят цирковирусы BFDV и PCV2.



PCV2 заражает свиней, а BFDV птиц. Вирус состоит из кольцевой одноцепочечной ДНК, уложенной между несколькими экземплярами белка Cap.



Второй белок Rep занимается размножением вирусной ДНК в клетке хозяина. Он расщепляет кольцо ДНК цирковируса и даёт полимеразе хозяина начать репликацию. По окончании склеивает результат обратно в кольцо. Вот подробное объяснение от ИИ.



Подробности в статье: Replication of porcine circoviruses

Структуру белков Cap и Rep вируса PCV2 нетрудно добыть скриптом get_protein_sequence.py:
результат )
vak: (Default)
[personal profile] vak
В советском союзе пытались повторить такую ЭВМ. Называлась ССБИС или "машина Мельникова". Не вышел каменный цветок.

Горе от LLM ума

Aug. 23rd, 2025 11:23 am
spamsink: (Default)
[personal profile] spamsink
Понадобилось мне в качестве хобби иметь в хозяйстве программу, которая должна уметь следующее:
по данным двум текстовым файлам, одному длиннее, другому короче, она должна находить такое смещение в первом файле, начиная с которого его строки наиболее точно совпадают со строками второго файла, причем строки последнего, состоящие из одной звёздочки, считаются совпадающими с любой строкой.

В моём случае более длинный файл - от силы десяток тысяч строк, более короткий - редко когда более тысячи строк, поэтому наивный O(n*m) алгоритм мне бы годился, просто писать было лень. Но я в промпте это не сказал, и получил от Cerebras программу на Питоне, которая пользовалась этим алгоритмом только в качестве крайнего случая, если не был доступен NumPy.

А если NumPy был доступен, то программа каждой уникальной строке, встретившейся в обоих файлах, ставила в соответствие случайное комплексное число длины 1, кроме *, для которой брался 0. Потом она строила соответствующие массивы чисел, удлиняя при необходимости до степени 2, причем для второго массива числа брались сопряжённые, и делала всему этому делу FFT со всеми возможными смещениями от 0 до разницы длин файлов.
В конкретных деталях алгоритма я не разбирался, но мотивировалось это тем, что для совпадающих строк произведение чисел будет равно в точности вещественному 1, а для несовпадающих - произвольным комплексным числам со случайным Re, в среднем равным нулю. Так как нас интересуют только нетривиальные совпадения, то совпадения со звёздочкой, сиречь умножения на 0, общий результат не изменяют.
Потом в массиве полученных результатов находился максимум, и его индекс объявлялся искомым смещением.

Этим всем делом Cerebras был очень горд, потому что вычислительная сложность получалась меньше, типа O((n+m)*log(nm)) или что-то в таком духе.

Ну и, короче, в тех случаях, когда реальное совпадение было стопроцентным, этот алгоритм с хорошей вероятностью выдавал правильное смещение, хотя и с рейтингом заметно меньше 1 (обычно около 0.8-0.9), а для совпадения с погрешностями результат был произвольным и непохожим на реальность. Пришлось подавить это безобразие, закомментировав "import math", и всё заработало ровно так, как я хотел.
kampfflieger: (Default)
[personal profile] kampfflieger
Слухайте, а вся ця турбоатомна галузь це ж просто виробництво мега-кип'ятильників.

Чи є якийсь інший спосіб переганяти атомну енергію в електрику?

Time for Europe to Get Off Its Ass

Aug. 22nd, 2025 11:47 am
vak: (U.S.A.)
[personal profile] vak
(перепощу целиком, оно того стоит)

It's August 2025. Biden is history. Trump is back. And after three years of war, one thing is beyond obvious: Europe still has no plan.

Billions have been spent. Headlines have been written. Security "guarantees" have been announced and re-announced. But on the ground in Ukraine, what we have is a war of attrition — and a continent still improvising its way toward defeat.

The U.S. Is Out — By Choice

Let's stop pretending. Whatever comfort Europeans took from the idea of "unshakable American support" is gone. Trump has made that crystal clear. He drags his feet on every shipment. He treats Ukraine like a bargaining chip. And when he isn't stalling, he's running interference for Moscow — signaling weakness and chaos that Putin reads as opportunity.

Europe has to understand this: the United States is no longer a partner to be counted on. Any plan that assumes Washington will lead is worse than naïve — it's dangerous. From here forward, U.S. help, when it comes, is a bonus, not a backbone. The future of Ukraine is Europe's responsibility now, or there is no future at all.

Diplomacy Is Not a Strategy

The second illusion is that clever diplomacy will somehow end this war. That if we talk long enough, Putin will blink, or that "security guarantees" without actual firepower will change anything.

That fantasy needs to die.

Putin isn't negotiating for peace. He's buying time — to rebuild his army, to fortify occupied territory, and to wait out Western fatigue. Every delay, every soft promise, every meaningless communiqué hands him that time. And every day without a plan costs Ukrainian lives.

Europe Needs a Real Plan — Now

The blueprint already exists. In The Shield and Denial Strategy and The Ukraine Decision, I've laid out the industrial framework Europe needs: mass air defense production, sustained artillery supply chains, co-production facilities in Ukraine, and enforcement mechanisms that actually work. The details are there.

The cost is modest: €200 per European per year — less than half a percent of GDP.

The deliverables are clear:

Air defense at scale, so Russia's missile and drone terror campaigns fail.

Artillery and drone parity, so Russian offensives collapse by default.

Co-production in Ukraine, to shorten logistics lines and political cycles.

The only thing missing is the political will to execute.

Physics Doesn't Negotiate

Moscow doesn't care about rhetoric. It doesn't care about communiqués or hashtags. What Moscow fears is industrial reality:

Interceptor stockpiles measured in months, not days.

Two million shells delivered on schedule, month after month.

Drones at scale, integrated with precision targeting.

Energy resilience that keeps Ukraine's grid above 95% uptime, even under winter barrages.

When those numbers start moving in the right direction, the Kremlin will notice. Not because Putin suddenly grows reasonable, but because physics doesn't negotiate. When every offensive fails, when the cost of holding territory rises every quarter, when Western fatigue is off the table — that's when Russia's strategy collapses.

Stop Throwing Money — Start Building Discipline

Europe's problem isn't resources. It's discipline. The continent has thrown billions at Ukraine — but in scattershot bursts, without coherent timelines, without enforceable milestones, without accountability.

Take Germany's delayed Leopard tank deliveries in early 2024, or France's stop-start CAESAR howitzer shipments. Each delay sends the same message to Moscow: Europe talks tough but delivers weak.

Drift isn't neutral. Drift is surrender by installments.

Decision Time

This is the moment for Europe to decide whether it wants to win this war or pretend to try. The steps are painfully obvious:

Pass three-year funding laws that auto-disburse, removing politics from logistics.

Establish a European Defense Production Board with teeth to enforce contracts and delivery schedules.

Build and maintain a public delivery dashboard that voters — and Moscow — can see, tracking air-defense systems, shells, drones, and production capacity in real time.

No More Illusions

This war will not be won by speeches, hashtags, or diplomatic fantasies. It will be won by a plan: measurable, predictable, industrial.

Europe has the money. Europe has the factories. Europe even has the blueprint. The only question remaining is whether Europe can afford not to act.

The day Europe executes a real plan, the day predictable timelines start moving metal and men at industrial scale, is the day Moscow realizes the war it thought it could outlast is the war it can no longer win.

That day cannot come soon enough. The question is: will Europe choose to make it happen?
vak: (Знайка)
[personal profile] vak
Ответ на настоящее время: 20421 штука.

Вот скрипт на Питоне, который извлекает из базы UniProt/SwissProt полный список известных протеинов человеческого организма: extract_human_swissprot_proteins.py

Результат записывается в файл human_swissprot_proteins.tsv. Для каждого протеина указывается идентификатор, описание и название гена. К примеру, отыщем всё, связанное с инсулином:
$ grep -i insulin human_swissprot_proteins.tsv
F8WCM5 Insulin, isoform 2 INS-IGF2
O00425 Insulin-like growth factor 2 mRNA-binding protein 3 IGF2BP3
O14654 Insulin receptor substrate 4 IRS4
O15503 Insulin-induced gene 1 protein INSIG1
P01308 Insulin INS
P01344 Insulin-like growth factor 2 IGF2
P05019 Insulin-like growth factor 1 IGF1
P06213 Insulin receptor INSR
P08069 Insulin-like growth factor 1 receptor IGF1R
P08833 Insulin-like growth factor-binding protein 1 IGFBP1
P09565 Putative insulin-like growth factor 2-associated protein N/A
P14616 Insulin receptor-related protein INSRR
P14735 Insulin-degrading enzyme IDE
P17936 Insulin-like growth factor-binding protein 3 IGFBP3
P18065 Insulin-like growth factor-binding protein 2 IGFBP2
P22692 Insulin-like growth factor-binding protein 4 IGFBP4
P24592 Insulin-like growth factor-binding protein 6 IGFBP6
P24593 Insulin-like growth factor-binding protein 5 IGFBP5
P35568 Insulin receptor substrate 1 IRS1
P35858 Insulin-like growth factor-binding protein complex acid labile subunit IGFALS
P51460 Insulin-like 3 INSL3
P61371 Insulin gene enhancer protein ISL-1 ISL1
Q01101 Insulinoma-associated protein 1 INSM1
Q14641 Early placenta insulin-like peptide INSL4
Q16270 Insulin-like growth factor-binding protein 7 IGFBP7
Q6B9Z1 Insulin growth factor-like family member 4 IGFL4
Q6U949 Putative insulin-like growth factor 2 antisense gene protein IGF2-AS
Q6UW32 Insulin growth factor-like family member 1 IGFL1
Q6UWQ7 Insulin growth factor-like family member 2 IGFL2
Q6UXB1 Insulin growth factor-like family member 3 IGFL3
Q86XT9 Insulin-like growth factor-binding protein 3 receptor TMEM219
Q8TDV5 Glucose-dependent insulinotropic receptor GPR119
Q8WX77 Insulin-like growth factor-binding protein-like 1 IGFBPL1
Q96A47 Insulin gene enhancer protein ISL-2 ISL2
Q96T92 Insulinoma-associated protein 2 INSM2
Q9NZI8 Insulin-like growth factor 2 mRNA-binding protein 1 IGF2BP1
Q9Y4H2 Insulin receptor substrate 2 IRS2
Q9Y581 Insulin-like peptide INSL6 INSL6
Q9Y5Q6 Insulin-like peptide INSL5 INSL5
Q9Y5U4 Insulin-induced gene 2 protein INSIG2
Q9Y6M1 Insulin-like growth factor 2 mRNA-binding protein 2 IGF2BP2
А вот скрипт, показывающий структуру указанного протеина: get_protein_sequence.py. Опробуем на инсулине:
$ python3 get_protein_sequence.py P01308
Fetching protein sequence for UniProt accession: P01308
UniProt data retrieved for P01308: Insulin
Saved sequence to protein_sequences.fasta

$ cat protein_sequences.fasta
>P01308 | Insulin | UniProt Protein Sequence
MALWMRLLPLLALLALWGPDPAAAFVNQHLCGSHLVEALYLVCGERGFFYTPKTRREAEDLQVGQVELGGGPGAGSLQPLALEGSLQKRGIVEQCCTSICSLYQLENYCN
Каждая буква обозначает аминокислоту:
  • A - Аланин
  • C - Цистеин
  • D - Аспарагиновая кислота
  • E - Глутаминовая кислота
  • F - Фенилаланин
  • G - Глицин
  • H - Гистидин
  • I - Изолейцин
  • K - Лизин
  • L - Лейцин
  • M - Метионин
  • N - Аспарагин
  • P - Пролин
  • Q - Глутамин
  • R - Аргинин
  • S - Серин
  • T - Треонин
  • V - Валин
  • W - Триптофан
  • Y - Тирозин
vak: (Робот 1)
[personal profile] vak
Не заселить ли Луну и Марс роботами вместо людей? Смотрите, роботы уже кое-что нетривиальное могут.

Статья на сайте Boston Dynamics: "Large Behavior Models and Atlas Find New Footing"

Статья на сайте Toyota Research Institute: "A Careful Examination of Large Behavior Models for Multitask Dexterous Manipulation"

A cryptic clue

Aug. 20th, 2025 02:37 pm
spamsink: (Default)
[personal profile] spamsink
▯▯RLY   ▯▯▯▯RTY

Clue: News at 11.

(в ответе словосочетание из двух английских слов, 5 букв и 7 букв)

Ген вам

Aug. 20th, 2025 12:01 pm
vak: (Default)
[personal profile] vak
Общепринятого словаря генов пока нет, но существуют базы данных, откуда можно извлечь формулу нужного протеина. Вот к примеру скрипт на Питоне, показывающий структуру инсулина. Не забудьте поставить ваш email.
скрипт )
Запускаем:
результат )
vak: (Default)
[personal profile] vak
Насмотрелись мы всяких ASCII и Unicode, табличками нас не удивишь. Но какая кодировка самая старая? Вы будете удивлены, но возникла она гораздо раньше, чем древние укры вышли из моря на сушу. Благодаря ей все мы живём на этой планете. Она перекодирует "буквы" наших генов в аминокислоты белковых молекул. Так выглядит таблица.



Как эта штука работает? Рассмотрим картинку.



"Буквы" нашей ДНК образованы парами аденинтимин (A-T) и гуанинцитозин (G-C). Каждая пара несёт два бита информации. Сначала ген считывается на промежуточную "перфоленту" - РНК. Такое считывание биологи называют транскрипцией. В процессе транскрипции тимин заменяется на урацил - видимо, для необратимости процесса.

Дальше перфолента (РНК) заряжается в рибосому - специальный станочек по производству белковых молекул. Буквы с РНК последовательно считываются, и для каждой буквы к создаваемому белку приклеивается следующая аминокислота. Это называется трансляцией. Буквы считываются группами по три штуки: биологи их называют кодонами. Три буквы по два бита - в сумме шесть бит - дают 64 комбинации. На выходе имеем 20 различных аминокислот. Кроме того, есть специальный стартовый кодон (AUG, превращающийся в метионин) и стоповые кодоны (три разных).

Отображение 64 кодонов в 20 аминокислот, плюс старт и три стопа - в этом вся суть "главной кодировки жизни". Если/когда мы обнаружим белковую жизнь в других мирах, с большой вероятностью кодировка окажется той же.

Вот та же таблица, но со ссылками на описания аминокислот.

1-е
основание
2-е основание3-е
основание
UCAG
UUUU(Phe) ФенилаланинUCU(Ser) СеринUAU(Tyr) ТирозинUGU(Cys) ЦистеинU
UUCUCCUACUGCC
UUA(Leu) ЛейцинUCAUAAСтопUGAСтопA
UUGUCGUAGСтопUGG(Trp) Триптофан    G
CCUUCCU(Pro) ПролинCAU(His) ГистидинCGU(Arg) АргининU
CUCCCCCACCGCC
CUACCACAA(Gln) ГлутаминCGAA
CUGCCGCAGCGGG
AAUU(Ile) ИзолейцинACU(Thr) Треонин        AAU(Asn) АспарагинAGU(Ser) СеринU
AUCACCAACAGCC
AUAACAAAA(Lys) ЛизинAGA(Arg) АргининA
AUG(Met) МетионинACGAAGAGGG
GGUU(Val) ВалинGCU(Ala) АланинGAU(Asp) Аспарагиновая кислотаGGU(Gly) ГлицинU
GUCGCCGACGGCC
GUAGCAGAA(Glu) Глутаминовая кислотаGGAA
GUGGCGGAGGGGG

І про здоровʼя

Aug. 19th, 2025 11:47 am
kampfflieger: (Default)
[personal profile] kampfflieger


Пампух і Мадам Нельсон.

Імплант у Нельсон не прижився, довелося виймати. Стегно зрослося, таз вроді теж почав зростатися, корочє видно буде, як вона буде ходити.
vak: (Бодхидхарма)
[personal profile] vak
Пять практик от Ивана Бодхидхармы.

1. Прямое проникновение в истинную природу задачи: Доверяйте своим инстинктам и глубоко вникайте в суть проблемы. Вместо того, чтобы чрезмерно полагаться на руководства, медитируйте о предназначении кода — проводите время в тишине, набрасывая решения или занимаясь отладкой, ища элегантные, оригинальные решения.

2. Сосредоточенные сеансы кодирования: Проводите длительную медитацию на критические блоки кода. Выделите время, чтобы «созерцать код», не отвлекаясь, чтобы достичь состояния потока. Это могут быть 90-минутные сеансы без отвлечений, способствующие глубокой концентрации для оттачивания алгоритмов или архитектуры.

3. Отказ от догм: Отбросьте приверженность к популярным фреймворкам или лучшим практикам. Экспериментируйте с минималистичными инструментами или индивидуальными решениями, создавая лёгкие приложения, в которых во главу угла ставится функциональность, а не раздутые зависимости.

4. Разум как сущность: Ясный ум — залог качественного кода. Практикуйте техники осознанности — короткие дыхательные упражнения — чтобы справляться со стрессом и избегать поспешных, ошибочных коммитов. Состояние ума определяет надёжность программного обеспечения.

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

Тваринницьке

Aug. 19th, 2025 09:09 am
kampfflieger: (Default)
[personal profile] kampfflieger
Як це у цих мохнатих блядєй виходе? Вночі таке можна я тут тільки скраєчку полежу? Прокидаєшся сам десь скраєчку, а посередині лежить пухнасте гімно.
vak: (Аристипп)
[personal profile] vak
Франсис Пикабиа. Младенец карбюратор. 1919г.

Позорище

Aug. 16th, 2025 12:15 pm
vak: (U.S.A.)
[personal profile] vak
Представляете какая трагедия для этих американских солдатиков.
Они пошли в армию, чтобы родине служить.
А им приказали стелить красную дорожку для хуйла.

(отсюда)

telesyk: (Default)
[personal profile] telesyk
Придётся лечь спать попозже

vak: (Кризис так себе)
[personal profile] vak
Вспомните Трампа, стоящего рядом с Путиным в Хельсинки и публично отмахивающегося от собственных спецслужб. Простое объяснение, которое так любят эксперты, заключается в том, что Путин манипулировал им с помощью какой-то мастерски спланированной шпионской операции. Джон Болтон, бывший советник Трампа по национальной безопасности, неоднократно утверждает, что Путин «знает, как манипулировать» Трампом, и считает его «лёгкой добычей».

Но это наделяет Путина сверхъестественными способностями, которыми он не обладает, и выставляет Трампа дураком. Он не ведёт себя как сумасшедший. Он расплачивается.

Долговая книга

Трамп действует по долговой книге. Представьте себе гигантский баланс в его голове — одна сторона которого подписана «Я ему должен», другая — «Он мне должен». Каждый человек, страна или организация принадлежит к этому балансу, и счета должны быть урегулированы. Для Трампа политика — это личная бухгалтерия. Любые отношения — это текущий счёт, и долги должны быть урегулированы до того, как будет закрыт счёт. Речь идёт не только о России — это фундаментальная операционная система Трампа, его метод работы во всех отношениях и решениях.

Дело не в том, что Путин его обманывает, а в том, что Путин и его «друзья» существенно помогли ему, когда другие отказались. Они одолжили ему денег и купили его недвижимость, когда американские и европейские банки отказали ему. Как признался сын самого Трампа в 2008 году: «Россияне составляют довольно непропорционально большую часть наших активов. Мы видим, как из России поступает много денег».

Когда речь заходит о России, США и Европе, его деловая история ставит их по разные стороны баррикад, и Россия получает преимущество.

Нюансы в бухгалтерской книге

Многие не могут себе представить, чтобы он уклонился от своего долга перед страной, чтобы погасить личные долги, но именно этого требует долговая книга. Совершая такие незначительные поступки, как помощь Стиву Бэннону или Роджеру Стоуну, он сознательно возвращает долги – для него это просто транзакционная очистка.

Но когда дело доходит до поддержки России против США и Европы, ему нужно поддерживать свой собственный образ. Он не способен справиться с таким уровнем подлости. Чем сильнее моральное предательство, тем толще камуфляж ему нужен. Эта ложь адресована не только нам, но и ему самому.

Украинский расчёт

Но вот в чём психологический барьер Трампа: он искренне верит, что является патриотичным президентом, делающим всё возможное для Америки. Он не может признаться себе, что принимает решения в пользу иностранного противника, России, основываясь на личном погашении долга противника и против США и наших союзников (особенно Европы), потому что их финансовые институты находятся не на той стороне.

Поэтому он целиком и полностью принимает путинские нарративы — не потому, что они особенно умны, а потому, что они предоставляют готовое оправдание тому, что он уже хочет сделать. Когда Путин выставляет расширение НАТО американской агрессией, Трампа не нужно убеждать. Ему нужна история, и Путин удачно предлагает её, которая звучит как законная внешняя политика, а не как личная месть.

Это объясняет, почему сломить пророссийскую позицию Трампа было, и, возможно, будет, чрезвычайно сложно, даже несмотря на продолжающуюся войну в Украине. Я в долгу перед Путиным; Зеленский должен мне, как и США с Европой за то, как их банки обошлись со мной. Долговая книга не может быть яснее.

Трамп в конечном итоге может поступить правильно, но это очень сложно.

Психологические различия

Есть одно отличие логики Трампа, основанной на долгах, от действий главарей мафии: такие главари, как Джон Готти, знали, кем они были. Готти никогда не притворялся кем-то другим.

Трамп не может выносить мысли о себе как о таковом. Его образ патриота, «победителя» и великого морального лидера — он даже мечтает о Нобелевской премии мира. Но он просто защищает свой образ. На самом деле Трамп — главарь мафии. В своём мире фантазий он — великий моральный лидер. В реальности действует долговая книга, а оправдания живут в фантазии.

Трамп не выбирает зло сознательно — он выстраивает сложные оправдания, чтобы считать решения, продиктованные долгами, праведными актами патриотизма.

Поведение Трампа каждый раз следует долговой книге. Истории, которые он рассказывает об этом — будь то борьба с глубинным государством, защита свободы или противостояние НАТО — существуют для того, чтобы он мог продолжать считать себя хорошим парнем, действуя как глава преступного мира. Истинная движущая сила — погашение долга. Всё остальное — лишь показуха.

Как только видишь, как работает долговая книга, противоречия исчезают, и следующий шаг становится очевидным. Всё остальное — опросы, политика, речи — лишь камуфляж.

(отсюда)
vak: (Украина)
[personal profile] vak
  1. First, meaningful negotiations can only take place in the context of a ceasefire or a lasting and significant cessation of hostilities.
  2. Second, sanctions and wider economic measures to put pressure on Russia’s war economy should be strengthened if Russia does not agree to a ceasefire in Alaska.
  3. Third, international borders must not be changed by force.
  4. Fourth, Ukraine must have robust and credible security guarantees to effectively defend its sovereignty and territorial integrity. The Coalition of the Willing is ready to play an active role, including through plans by those willing to deploy a reassurance force once hostilities have ceased. No limitations should be placed on Ukraine’s armed forces or on its cooperation with third countries. Russia could not have a veto against Ukraine‘s pathway to EU and NATO.
Отсюда: gov.uk/government/news/statement-of-the-co-chairs-of-the-coalition-of-the-willing-13-august-2025

Про нас пишут

Aug. 13th, 2025 09:06 pm
vak: (Робот 1)
[personal profile] vak
“The expanded collaboration integrates SiMa.ai’s ML simulators into Synopsys’ design platforms Platform Architect for exploration of architectural options and model ML requirements optimized for automotive OEM specific ADAS/IVI workloads; Virtualizer development kit (VDK), enabling early software development and testing across the automotive ecosystem; and ZeBu emulation, providing pre-silicon power, performance, and efficiency validation, supported by 95-97% accuracy between pre-silicon power emulation estimates and actual silicon.

Machine learning accelerator IP and associated software will be available from SiMa.ai for early access customers by mid-2026, with production release targeted for the end of 2026. A machine-learning IP chiplet, that integrates technologies from both companies, will be available by mid-2027.”

Ровно то, чем я занимаюсь каждый день на работе.

Отсюда: futurride.com/2025/08/12/sima-ais-next-gen-physical-ai-platform-reaches-production/

Profile

ironowl: (Default)
Roman

August 2018

S M T W T F S
   1234
5678 91011
12131415161718
19202122232425
262728293031 

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 25th, 2025 06:19 pm
Powered by Dreamwidth Studios