29 lines
23 KiB
HTML
29 lines
23 KiB
HTML
<!doctype html><html lang=en dir=auto data-theme=auto><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=robots content="index, follow"><title>OSDI 2025 Digest | Publish Assistant</title><meta name=keywords content><meta name=description content="13 papers selected.
|
|
|
|
Basilisk: Using Provenance Invariants to Automate Proofs of Undecidable Protocols
|
|
Tony Nuda Zhang, Keshav Singh, Tej Chajed, Manos Kapritsos et al.
|
|
TL;DR — Automates the construction of correctness proofs for distributed protocols that were previously considered undecidable, advancing the state of the art in verified systems.
|
|
|
|
Mako: Speculative Distributed Transactions with Geo-Replication
|
|
Weihai Shen, Yang Cui, Siddhartha Sen 0001, Sebastian Angel et al.
|
|
TL;DR — Combines speculative execution with geo-replication to deliver low-latency distributed transactions without sacrificing consistency, addressing a fundamental tension in wide-area systems."><meta name=author content="Publish Assistant"><link rel=canonical href=https://pub.sqrt.fr/vincent/publish-assistant/cloud-edge/digests/osdi-2025/><link crossorigin=anonymous href=/vincent/publish-assistant/assets/css/stylesheet.d72f07832e13c592b3edba91680bfe70f01daac396179bcace0ac36e8e0494c6.css integrity="sha256-1y8Hgy4TxZKz7bqRaAv+cPAdqsOWF5vKzgrDbo4ElMY=" rel="preload stylesheet" as=style><link rel=icon href=https://pub.sqrt.fr/vincent/publish-assistant/favicon.ico><link rel=icon type=image/png sizes=16x16 href=https://pub.sqrt.fr/vincent/publish-assistant/favicon-16x16.png><link rel=icon type=image/png sizes=32x32 href=https://pub.sqrt.fr/vincent/publish-assistant/favicon-32x32.png><link rel=apple-touch-icon href=https://pub.sqrt.fr/vincent/publish-assistant/apple-touch-icon.png><link rel=mask-icon href=https://pub.sqrt.fr/vincent/publish-assistant/safari-pinned-tab.svg><meta name=theme-color content="#2e2e33"><meta name=msapplication-TileColor content="#2e2e33"><link rel=alternate hreflang=en href=https://pub.sqrt.fr/vincent/publish-assistant/cloud-edge/digests/osdi-2025/><noscript><style>#theme-toggle,.top-link{display:none}</style><style>@media(prefers-color-scheme:dark){:root{--theme:rgb(29, 30, 32);--entry:rgb(46, 46, 51);--primary:rgb(218, 218, 219);--secondary:rgb(155, 156, 157);--tertiary:rgb(65, 66, 68);--content:rgb(196, 196, 197);--code-block-bg:rgb(46, 46, 51);--code-bg:rgb(55, 56, 62);--border:rgb(51, 51, 51);color-scheme:dark}.list{background:var(--theme)}.toc{background:var(--entry)}}</style></noscript><script>localStorage.getItem("pref-theme")==="dark"?document.querySelector("html").dataset.theme="dark":localStorage.getItem("pref-theme")==="light"?document.querySelector("html").dataset.theme="light":window.matchMedia("(prefers-color-scheme: dark)").matches?document.querySelector("html").dataset.theme="dark":document.querySelector("html").dataset.theme="light"</script><meta property="og:url" content="https://pub.sqrt.fr/vincent/publish-assistant/cloud-edge/digests/osdi-2025/"><meta property="og:site_name" content="Publish Assistant"><meta property="og:title" content="OSDI 2025 Digest"><meta property="og:description" content="13 papers selected.
|
|
Basilisk: Using Provenance Invariants to Automate Proofs of Undecidable Protocols Tony Nuda Zhang, Keshav Singh, Tej Chajed, Manos Kapritsos et al.
|
|
TL;DR — Automates the construction of correctness proofs for distributed protocols that were previously considered undecidable, advancing the state of the art in verified systems.
|
|
Mako: Speculative Distributed Transactions with Geo-Replication Weihai Shen, Yang Cui, Siddhartha Sen 0001, Sebastian Angel et al.
|
|
TL;DR — Combines speculative execution with geo-replication to deliver low-latency distributed transactions without sacrificing consistency, addressing a fundamental tension in wide-area systems."><meta property="og:locale" content="en_us"><meta property="og:type" content="article"><meta property="article:section" content="cloud-edge"><meta property="article:published_time" content="2025-01-01T00:00:00+00:00"><meta property="article:modified_time" content="2025-01-01T00:00:00+00:00"><meta name=twitter:card content="summary"><meta name=twitter:title content="OSDI 2025 Digest"><meta name=twitter:description content="13 papers selected.
|
|
Basilisk: Using Provenance Invariants to Automate Proofs of Undecidable Protocols Tony Nuda Zhang, Keshav Singh, Tej Chajed, Manos Kapritsos et al.
|
|
TL;DR — Automates the construction of correctness proofs for distributed protocols that were previously considered undecidable, advancing the state of the art in verified systems.
|
|
Mako: Speculative Distributed Transactions with Geo-Replication Weihai Shen, Yang Cui, Siddhartha Sen 0001, Sebastian Angel et al.
|
|
TL;DR — Combines speculative execution with geo-replication to deliver low-latency distributed transactions without sacrificing consistency, addressing a fundamental tension in wide-area systems."><script type=application/ld+json>{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Edge and Cloud Systems","item":"https://pub.sqrt.fr/vincent/publish-assistant/cloud-edge/"},{"@type":"ListItem","position":2,"name":"Digests","item":"https://pub.sqrt.fr/vincent/publish-assistant/cloud-edge/digests/"},{"@type":"ListItem","position":3,"name":"OSDI 2025 Digest","item":"https://pub.sqrt.fr/vincent/publish-assistant/cloud-edge/digests/osdi-2025/"}]}</script><script type=application/ld+json>{"@context":"https://schema.org","@type":"BlogPosting","headline":"OSDI 2025 Digest","name":"OSDI 2025 Digest","description":"13 papers selected.\nBasilisk: Using Provenance Invariants to Automate Proofs of Undecidable Protocols Tony Nuda Zhang, Keshav Singh, Tej Chajed, Manos Kapritsos et al.\nTL;DR — Automates the construction of correctness proofs for distributed protocols that were previously considered undecidable, advancing the state of the art in verified systems.\nMako: Speculative Distributed Transactions with Geo-Replication Weihai Shen, Yang Cui, Siddhartha Sen 0001, Sebastian Angel et al.\nTL;DR — Combines speculative execution with geo-replication to deliver low-latency distributed transactions without sacrificing consistency, addressing a fundamental tension in wide-area systems.\n","keywords":[],"articleBody":"13 papers selected.\nBasilisk: Using Provenance Invariants to Automate Proofs of Undecidable Protocols Tony Nuda Zhang, Keshav Singh, Tej Chajed, Manos Kapritsos et al.\nTL;DR — Automates the construction of correctness proofs for distributed protocols that were previously considered undecidable, advancing the state of the art in verified systems.\nMako: Speculative Distributed Transactions with Geo-Replication Weihai Shen, Yang Cui, Siddhartha Sen 0001, Sebastian Angel et al.\nTL;DR — Combines speculative execution with geo-replication to deliver low-latency distributed transactions without sacrificing consistency, addressing a fundamental tension in wide-area systems.\nLow End-to-End Latency atop a Speculative Shared Log with Fix-Ante Ordering Shreesha G. Bhat, Tony Hong, Xuhao Luo, Jiyu Hu et al.\nTL;DR — Introduces fix-ante ordering to achieve low latency on a shared log without sacrificing throughput, offering a new design point for log-based distributed storage.\nOkapi: Decoupling Data Striping and Redundancy Grouping in Cluster File Systems Sanjith Athlur, Timothy Kim, Saurabh Kadekodi, Francisco Maturana et al.\nTL;DR — Challenges a long-standing coupling in erasure-coded cluster file systems, enabling independent optimization of striping and redundancy with measurable gains in production workloads.\nPoWER Never Corrupts: Tool-Agnostic Verification of Crash Consistency and Corruption Detection Hayley LeBlanc, Jacob R. Lorch, Chris Hawblitzel, Cheng Huang et al.\nTL;DR — Provides a tool-agnostic framework for formally verifying crash consistency and corruption detection in storage systems, raising the bar for storage software correctness.\nEMT: An OS Framework for New Memory Translation Architectures Siyuan Chai 0001, Jiyuan Zhang 0003, Jongyul Kim 0001, Alan Wang et al.\nTL;DR — Defines an OS abstraction layer that decouples applications from hardware-specific memory translation mechanisms, enabling future memory architectures to be adopted without OS rewrites.\nXSched: Preemptive Scheduling for Diverse XPUs Weihang Shen, Mingcong Han, Jialong Liu, Rong Chen 0001 et al.\nTL;DR — Generalises preemptive scheduling to heterogeneous accelerators (XPUs), providing a unified OS-level mechanism for fair and responsive multi-tenant accelerator sharing.\nExtending Applications Safely and Efficiently Yusheng Zheng, Tong Yu, Yiwei Yang 0002, Yanpeng Hu et al.\nTL;DR — Presents a principled model for safe, efficient application extensibility that generalises beyond eBPF, with implications for the design of future OS extension mechanisms.\nNanoFlow: Towards Optimal Large Language Model Serving Throughput Kan Zhu, Yufei Gao, Yilong Zhao 0002, Liangyu Zhao et al.\nTL;DR — Analytically characterises the throughput ceiling for LLM serving and proposes a system that approaches that bound through fine-grained intra-device parallelism.\nWaferLLM: Large Language Model Inference at Wafer Scale Congjie He, Yeqi Huang, Pei Mu 0003, Ziming Miao et al.\nTL;DR — Demonstrates end-to-end LLM inference on wafer-scale hardware, tackling novel challenges in memory, communication, and fault tolerance at an unprecedented scale of integration.\nMirage: A Multi-Level Superoptimizer for Tensor Programs Mengdi Wu, Xinhao Cheng, Shengyu Liu, Chunan Shi et al.\nTL;DR — Extends tensor program superoptimisation to multiple abstraction levels, discovering non-obvious kernel fusions that outperform hand-tuned implementations for ML workloads.\nTraining with Confidence: Catching Silent Errors in Deep Learning Training with Automated Proactive Checks Yuxuan Jiang 0016, Ziming Zhou, Boyu Xu 0005, Beijie Liu et al.\nTL;DR — Addresses the underappreciated problem of silent hardware and software errors in large-scale DL training, providing automated proactive checks that catch failures before they corrupt long training runs.\nCompass: Encrypted Semantic Search with High Accuracy Jinhao Zhu, Liana Patel, Matei Zaharia, Raluca Ada Popa\nTL;DR — Enables accurate semantic (vector) search over encrypted data, bridging the gap between privacy-preserving computation and modern retrieval workloads in cloud-hosted RAG systems.\n","wordCount":"569","inLanguage":"en","datePublished":"2025-01-01T00:00:00Z","dateModified":"2025-01-01T00:00:00Z","author":{"@type":"Person","name":"Publish Assistant"},"mainEntityOfPage":{"@type":"WebPage","@id":"https://pub.sqrt.fr/vincent/publish-assistant/cloud-edge/digests/osdi-2025/"},"publisher":{"@type":"Organization","name":"Publish Assistant","logo":{"@type":"ImageObject","url":"https://pub.sqrt.fr/vincent/publish-assistant/favicon.ico"}}}</script></head><body id=top><header class=header><nav class=header-nav><div class=logo><a href=https://pub.sqrt.fr/vincent/publish-assistant/ accesskey=h title="Publish Assistant (Alt + H)">Publish Assistant</a>
|
|
<span class=logo-sep>/</span>
|
|
<a class=logo-topic href=/vincent/publish-assistant/cloud-edge/ title="Edge and Cloud Systems">Edge and Cloud Systems</a><div class=logo-switches><button id=theme-toggle class=theme-toggle accesskey=t title="(Alt + T)" aria-label="Toggle theme">
|
|
<svg class="moon" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"/></svg>
|
|
<svg class="sun" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg></button></div></div><ul id=menu class=menu><li><a href=/vincent/publish-assistant/cloud-edge/venues/ title=Venues><span>Venues</span></a></li><li><a href=/vincent/publish-assistant/cloud-edge/calendar/ title=Calendar><span>Calendar</span></a></li><li><a href=/vincent/publish-assistant/cloud-edge/digests/ title=Digests><span class=active>Digests</span></a></li></ul></nav></header><main class=main><article class=post-single><header class=post-header><nav class=breadcrumbs role=navigation aria-label=Breadcrumb><a href=/vincent/publish-assistant/cloud-edge/digests/>Digests</a>
|
|
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevron-right"><polyline points="9 18 15 12 9 6"/></svg></nav><h1 class="post-title entry-hint-parent">OSDI 2025 Digest</h1><div class=post-meta><span title='2025-01-01 00:00:00 +0000 UTC'>January 1, 2025</span> · <span>Publish Assistant</span></div></header><div class="post-content md-content"><p>13 papers selected.</p><hr><h3 id=basilisk-using-provenance-invariants-to-automate-proofs-of-undecidable-protocols>Basilisk: Using Provenance Invariants to Automate Proofs of Undecidable Protocols<a hidden class=anchor aria-hidden=true href=#basilisk-using-provenance-invariants-to-automate-proofs-of-undecidable-protocols>#</a></h3><p><em>Tony Nuda Zhang, Keshav Singh, Tej Chajed, Manos Kapritsos <em>et al.</em></em></p><p><strong>TL;DR</strong> — Automates the construction of correctness proofs for distributed protocols that were previously considered undecidable, advancing the state of the art in verified systems.</p><hr><h3 id=mako-speculative-distributed-transactions-with-geo-replication>Mako: Speculative Distributed Transactions with Geo-Replication<a hidden class=anchor aria-hidden=true href=#mako-speculative-distributed-transactions-with-geo-replication>#</a></h3><p><em>Weihai Shen, Yang Cui, Siddhartha Sen 0001, Sebastian Angel <em>et al.</em></em></p><p><strong>TL;DR</strong> — Combines speculative execution with geo-replication to deliver low-latency distributed transactions without sacrificing consistency, addressing a fundamental tension in wide-area systems.</p><hr><h3 id=low-end-to-end-latency-atop-a-speculative-shared-log-with-fix-ante-ordering>Low End-to-End Latency atop a Speculative Shared Log with Fix-Ante Ordering<a hidden class=anchor aria-hidden=true href=#low-end-to-end-latency-atop-a-speculative-shared-log-with-fix-ante-ordering>#</a></h3><p><em>Shreesha G. Bhat, Tony Hong, Xuhao Luo, Jiyu Hu <em>et al.</em></em></p><p><strong>TL;DR</strong> — Introduces fix-ante ordering to achieve low latency on a shared log without sacrificing throughput, offering a new design point for log-based distributed storage.</p><hr><h3 id=okapi-decoupling-data-striping-and-redundancy-grouping-in-cluster-file-systems>Okapi: Decoupling Data Striping and Redundancy Grouping in Cluster File Systems<a hidden class=anchor aria-hidden=true href=#okapi-decoupling-data-striping-and-redundancy-grouping-in-cluster-file-systems>#</a></h3><p><em>Sanjith Athlur, Timothy Kim, Saurabh Kadekodi, Francisco Maturana <em>et al.</em></em></p><p><strong>TL;DR</strong> — Challenges a long-standing coupling in erasure-coded cluster file systems, enabling independent optimization of striping and redundancy with measurable gains in production workloads.</p><hr><h3 id=power-never-corrupts-tool-agnostic-verification-of-crash-consistency-and-corruption-detection>PoWER Never Corrupts: Tool-Agnostic Verification of Crash Consistency and Corruption Detection<a hidden class=anchor aria-hidden=true href=#power-never-corrupts-tool-agnostic-verification-of-crash-consistency-and-corruption-detection>#</a></h3><p><em>Hayley LeBlanc, Jacob R. Lorch, Chris Hawblitzel, Cheng Huang <em>et al.</em></em></p><p><strong>TL;DR</strong> — Provides a tool-agnostic framework for formally verifying crash consistency and corruption detection in storage systems, raising the bar for storage software correctness.</p><hr><h3 id=emt-an-os-framework-for-new-memory-translation-architectures>EMT: An OS Framework for New Memory Translation Architectures<a hidden class=anchor aria-hidden=true href=#emt-an-os-framework-for-new-memory-translation-architectures>#</a></h3><p><em>Siyuan Chai 0001, Jiyuan Zhang 0003, Jongyul Kim 0001, Alan Wang <em>et al.</em></em></p><p><strong>TL;DR</strong> — Defines an OS abstraction layer that decouples applications from hardware-specific memory translation mechanisms, enabling future memory architectures to be adopted without OS rewrites.</p><hr><h3 id=xsched-preemptive-scheduling-for-diverse-xpus>XSched: Preemptive Scheduling for Diverse XPUs<a hidden class=anchor aria-hidden=true href=#xsched-preemptive-scheduling-for-diverse-xpus>#</a></h3><p><em>Weihang Shen, Mingcong Han, Jialong Liu, Rong Chen 0001 <em>et al.</em></em></p><p><strong>TL;DR</strong> — Generalises preemptive scheduling to heterogeneous accelerators (XPUs), providing a unified OS-level mechanism for fair and responsive multi-tenant accelerator sharing.</p><hr><h3 id=extending-applications-safely-and-efficiently>Extending Applications Safely and Efficiently<a hidden class=anchor aria-hidden=true href=#extending-applications-safely-and-efficiently>#</a></h3><p><em>Yusheng Zheng, Tong Yu, Yiwei Yang 0002, Yanpeng Hu <em>et al.</em></em></p><p><strong>TL;DR</strong> — Presents a principled model for safe, efficient application extensibility that generalises beyond eBPF, with implications for the design of future OS extension mechanisms.</p><hr><h3 id=nanoflow-towards-optimal-large-language-model-serving-throughput>NanoFlow: Towards Optimal Large Language Model Serving Throughput<a hidden class=anchor aria-hidden=true href=#nanoflow-towards-optimal-large-language-model-serving-throughput>#</a></h3><p><em>Kan Zhu, Yufei Gao, Yilong Zhao 0002, Liangyu Zhao <em>et al.</em></em></p><p><strong>TL;DR</strong> — Analytically characterises the throughput ceiling for LLM serving and proposes a system that approaches that bound through fine-grained intra-device parallelism.</p><hr><h3 id=waferllm-large-language-model-inference-at-wafer-scale>WaferLLM: Large Language Model Inference at Wafer Scale<a hidden class=anchor aria-hidden=true href=#waferllm-large-language-model-inference-at-wafer-scale>#</a></h3><p><em>Congjie He, Yeqi Huang, Pei Mu 0003, Ziming Miao <em>et al.</em></em></p><p><strong>TL;DR</strong> — Demonstrates end-to-end LLM inference on wafer-scale hardware, tackling novel challenges in memory, communication, and fault tolerance at an unprecedented scale of integration.</p><hr><h3 id=mirage-a-multi-level-superoptimizer-for-tensor-programs>Mirage: A Multi-Level Superoptimizer for Tensor Programs<a hidden class=anchor aria-hidden=true href=#mirage-a-multi-level-superoptimizer-for-tensor-programs>#</a></h3><p><em>Mengdi Wu, Xinhao Cheng, Shengyu Liu, Chunan Shi <em>et al.</em></em></p><p><strong>TL;DR</strong> — Extends tensor program superoptimisation to multiple abstraction levels, discovering non-obvious kernel fusions that outperform hand-tuned implementations for ML workloads.</p><hr><h3 id=training-with-confidence-catching-silent-errors-in-deep-learning-training-with-automated-proactive-checks>Training with Confidence: Catching Silent Errors in Deep Learning Training with Automated Proactive Checks<a hidden class=anchor aria-hidden=true href=#training-with-confidence-catching-silent-errors-in-deep-learning-training-with-automated-proactive-checks>#</a></h3><p><em>Yuxuan Jiang 0016, Ziming Zhou, Boyu Xu 0005, Beijie Liu <em>et al.</em></em></p><p><strong>TL;DR</strong> — Addresses the underappreciated problem of silent hardware and software errors in large-scale DL training, providing automated proactive checks that catch failures before they corrupt long training runs.</p><hr><h3 id=compass-encrypted-semantic-search-with-high-accuracy>Compass: Encrypted Semantic Search with High Accuracy<a hidden class=anchor aria-hidden=true href=#compass-encrypted-semantic-search-with-high-accuracy>#</a></h3><p><em>Jinhao Zhu, Liana Patel, Matei Zaharia, Raluca Ada Popa</em></p><p><strong>TL;DR</strong> — Enables accurate semantic (vector) search over encrypted data, bridging the gap between privacy-preserving computation and modern retrieval workloads in cloud-hosted RAG systems.</p></div><footer class=post-footer><ul class=post-tags></ul><nav class=paginav><a class=prev href=https://pub.sqrt.fr/vincent/publish-assistant/cloud-edge/digests/middleware-2025/><span class=title>« Prev</span>
|
|
<span>Middleware 2025 Digest</span>
|
|
</a><a class=next href=https://pub.sqrt.fr/vincent/publish-assistant/cloud-edge/digests/sc-2025/><span class=title>Next »</span>
|
|
<span>SC 2025 Digest</span></a></nav></footer></article></main><footer class=footer><span>© 2026 <a href=https://pub.sqrt.fr/vincent/publish-assistant/>Publish Assistant</a></span> ·
|
|
<span>Powered by
|
|
<a href="https://gohugo.io/?utm_source=papermod" rel=noopener target=_blank>Hugo</a> &
|
|
<a href=https://github.com/adityatelange/hugo-PaperMod/ rel=noopener target=_blank>PaperMod</a></span></footer><a href=#top id=top-link class="top-link hidden" aria-label="go to top" title="Go to Top (Alt + G)" accesskey=g><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevrons-up"><polyline points="17 11 12 6 7 11"/><polyline points="17 18 12 13 7 18"/></svg>
|
|
</a><script>let menu=document.getElementById("menu");if(menu){const e=localStorage.getItem("menu-scroll-position");e&&(menu.scrollLeft=parseInt(e,10)),menu.onscroll=function(){localStorage.setItem("menu-scroll-position",menu.scrollLeft)}}document.querySelectorAll('a[href^="#"]').forEach(e=>{e.addEventListener("click",function(e){e.preventDefault();var t=this.getAttribute("href").substr(1);window.matchMedia("(prefers-reduced-motion: reduce)").matches?document.querySelector(`[id='${decodeURIComponent(t)}']`).scrollIntoView():document.querySelector(`[id='${decodeURIComponent(t)}']`).scrollIntoView({behavior:"smooth"}),t==="top"?history.replaceState(null,null," "):history.pushState(null,null,`#${t}`)})})</script><script>var toplink=document.getElementById("top-link");window.onscroll=function(){const e=window.innerHeight;document.body.scrollTop>e||document.documentElement.scrollTop>e?toplink.classList.remove("hidden"):toplink.classList.add("hidden")}</script><script>document.getElementById("theme-toggle").addEventListener("click",()=>{const e=document.querySelector("html");e.dataset.theme==="dark"?(e.dataset.theme="light",localStorage.setItem("pref-theme","light")):(e.dataset.theme="dark",localStorage.setItem("pref-theme","dark"))})</script></body></html> |