Add midterm presentation motivation and backup slide
This commit is contained in:
parent
b7e394eb32
commit
cea96986eb
3
.gitmodules
vendored
Normal file
3
.gitmodules
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
[submodule "lib/cel-slides-template-2025"]
|
||||||
|
path = lib/cel-slides-template-2025
|
||||||
|
url = git@gitlab.kit.edu:kit/cel/misc/cel-slides-template-2025.git
|
||||||
1
lib/cel-slides-template-2025
Submodule
1
lib/cel-slides-template-2025
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit 3e5094ffdc60e1a0550f7c42be8a720b5e9eb6c5
|
||||||
1249
src/midterm_presentation/MA.bib
Normal file
1249
src/midterm_presentation/MA.bib
Normal file
File diff suppressed because it is too large
Load Diff
501
src/midterm_presentation/main.tex
Normal file
501
src/midterm_presentation/main.tex
Normal file
@ -0,0 +1,501 @@
|
|||||||
|
\documentclass[overviewatsection, showsubsectionsatfirstoverview]{CELbeamer}
|
||||||
|
|
||||||
|
%
|
||||||
|
%
|
||||||
|
% CEL Template
|
||||||
|
%
|
||||||
|
%
|
||||||
|
|
||||||
|
\newcommand{\templates}{preambles}
|
||||||
|
\input{\templates/packages.tex}
|
||||||
|
\input{\templates/macros.tex}
|
||||||
|
|
||||||
|
\grouplogo{CEL_logo.pdf}
|
||||||
|
|
||||||
|
\groupname{Communications Engineering Lab (CEL)}
|
||||||
|
|
||||||
|
\fundinglogos{}
|
||||||
|
|
||||||
|
%
|
||||||
|
%
|
||||||
|
% Document setup
|
||||||
|
%
|
||||||
|
%
|
||||||
|
|
||||||
|
\usepackage{tikz}
|
||||||
|
\usepackage{tikz-3dplot}
|
||||||
|
\usetikzlibrary{spy, external, intersections, positioning}
|
||||||
|
|
||||||
|
% \ifdefined\ishandout\else
|
||||||
|
% \tikzexternalize
|
||||||
|
% \fi
|
||||||
|
|
||||||
|
\usepackage{pgfplots}
|
||||||
|
\pgfplotsset{compat=newest}
|
||||||
|
\usepgfplotslibrary{fillbetween}
|
||||||
|
\usepgfplotslibrary{groupplots}
|
||||||
|
|
||||||
|
\usepackage{enumerate}
|
||||||
|
\usepackage{listings}
|
||||||
|
\usepackage{subcaption}
|
||||||
|
\usepackage{bbm}
|
||||||
|
\usepackage{multirow}
|
||||||
|
\usepackage{xcolor}
|
||||||
|
\usepackage{amsmath}
|
||||||
|
\usepackage{graphicx}
|
||||||
|
\usepackage{calc}
|
||||||
|
\usepackage{amssymb}
|
||||||
|
\usepackage{acro}
|
||||||
|
\usepackage{braket}
|
||||||
|
|
||||||
|
\title{Fault Tolerant Quantum Error Correction}
|
||||||
|
\subtitle{Master's Thesis Midterm Presentation}
|
||||||
|
\author[Tsouchlos]{Andreas Tsouchlos}
|
||||||
|
\date[]{February 5th, 2026}
|
||||||
|
|
||||||
|
\DeclareFieldFormat{note}{}
|
||||||
|
\DeclareFieldFormat{issn}{}
|
||||||
|
\DeclareFieldFormat{url}{}
|
||||||
|
\DeclareFieldFormat{doi}{}
|
||||||
|
\DeclareFieldFormat[article,book,inproceedings]{urldate}{}
|
||||||
|
|
||||||
|
\addbibresource{MA.bib}
|
||||||
|
|
||||||
|
%
|
||||||
|
%
|
||||||
|
% Custom commands
|
||||||
|
%
|
||||||
|
%
|
||||||
|
|
||||||
|
\newcommand{\res}{src/midterm_presentation/res}
|
||||||
|
|
||||||
|
%
|
||||||
|
%
|
||||||
|
% Acronyms
|
||||||
|
%
|
||||||
|
%
|
||||||
|
|
||||||
|
\DeclareAcronym{qec}{
|
||||||
|
short=QEC,
|
||||||
|
long=quantum error correction
|
||||||
|
}
|
||||||
|
|
||||||
|
%
|
||||||
|
%
|
||||||
|
% Document body
|
||||||
|
%
|
||||||
|
%
|
||||||
|
|
||||||
|
\begin{document}
|
||||||
|
|
||||||
|
\begin{frame}[title white vertical, picture=images/IMG_7801-cut]
|
||||||
|
\titlepage
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
\section{Introduction to Quantum Error Correction}
|
||||||
|
\label{sec:Introduction to Quantum Error Correction}
|
||||||
|
|
||||||
|
%%%%%%%%%%%%%%%%
|
||||||
|
\subsection{Motivation}
|
||||||
|
\label{subsec:Motivation}
|
||||||
|
|
||||||
|
\begin{frame}
|
||||||
|
\frametitle{Quantum Computing}
|
||||||
|
|
||||||
|
% Related interesting stuff
|
||||||
|
% - Gidney estimates we need 1399 (?) logical qubits to factor a 2048
|
||||||
|
% bit RSA integer
|
||||||
|
% - He goes on to estimate that to factor such an integer in less
|
||||||
|
% than a week would require around a million physical qubits
|
||||||
|
% [How to factor 2048 bit RSA integers with less than a million
|
||||||
|
% noisy qubits]
|
||||||
|
|
||||||
|
\vspace*{-19mm}
|
||||||
|
|
||||||
|
\begin{itemize}
|
||||||
|
\item Simulating quantum systems on classical hardware
|
||||||
|
is exponentially complex \\
|
||||||
|
$\rightarrow$ Can't we use quantum hardware to simulate
|
||||||
|
quantum systems? \citereference{feynman_simulating_1982}
|
||||||
|
\item Some problems that are ``hard'' to solve on classical
|
||||||
|
computers we can ``easily'' solve on quantum computers
|
||||||
|
\citereference{preskill_quantum_2018}
|
||||||
|
\item We are still in the early days of quantum computing
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
\vspace*{-5mm}
|
||||||
|
|
||||||
|
\begin{figure}[H]
|
||||||
|
\centering
|
||||||
|
|
||||||
|
\includegraphics[scale=0.43]{res/google_roadmap.png}
|
||||||
|
|
||||||
|
\vspace*{-3mm}
|
||||||
|
\caption{
|
||||||
|
Google Quantum AI's quantum computing roadmap
|
||||||
|
\citereference{google_quantum_ai_quantum_nodate}.
|
||||||
|
}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
\addreferences
|
||||||
|
{feynman_simulating_1982}
|
||||||
|
{preskill_quantum_2018}
|
||||||
|
{google_quantum_ai_quantum_nodate}
|
||||||
|
\stopreferences
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
|
% TODO: Where should I quote Preskill? There are multiple bullet
|
||||||
|
% points with info taken from his work
|
||||||
|
\begin{frame}
|
||||||
|
\frametitle{The Need for Quantum Error Correction}
|
||||||
|
|
||||||
|
\vspace*{-10mm}
|
||||||
|
|
||||||
|
% Related interesting stuff
|
||||||
|
% - Qubits differ from bits in that they can be in superpositions
|
||||||
|
% and be entangled with one another
|
||||||
|
% - Quantum computers derive their strenght from the exponential
|
||||||
|
% scaling of the state-space because of the way the information is
|
||||||
|
% encoded
|
||||||
|
% - Note that while a physical error rate of 10^{-3} may seem ok,
|
||||||
|
% we need a couple trillion operations (~ 10^{13}) to factor a
|
||||||
|
% 2048 bit RSA integer
|
||||||
|
% [How to factor 2048 bit RSA integers with less than a million
|
||||||
|
% noisy qubits]
|
||||||
|
% - The backlog problem is the fact that an increasing backlog of
|
||||||
|
% syndrome data will lead to an exponential slowdown during the
|
||||||
|
% computation
|
||||||
|
|
||||||
|
\begin{itemize}
|
||||||
|
\item Quantum computers represent information through
|
||||||
|
correlations of qubits, not their values \\
|
||||||
|
directly \citereference{preskill_quantum_2018}
|
||||||
|
\item We want to not disturb the quantum state but need to
|
||||||
|
interact with the system \\
|
||||||
|
$\rightarrow$ Protect the state with \ac{qec}
|
||||||
|
\item We employ more physical qubits to introduce
|
||||||
|
redundancy and use the resulting \emph{physical} state to
|
||||||
|
represent the \emph{logical} state
|
||||||
|
\citereference{roffe_quantum_2019}
|
||||||
|
\item IBM recently introduced a scheme encoding 12 logical
|
||||||
|
qubits in 288 physical ones
|
||||||
|
\citereference{bravyi_high-threshold_2024}
|
||||||
|
\item The physical error rate is typically assumed to be $10^{-3}$ for
|
||||||
|
simulations (e.g., \citereference{bravyi_high-threshold_2024})
|
||||||
|
\item Decoding has to happen with ultra-low latency to avoid
|
||||||
|
the backlog problem (about $\SI{1}{us}$ per data
|
||||||
|
extraction round) \citereference{caune_demonstrating_2024}
|
||||||
|
% \citereference{terhal_quantum_2015}
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
\vspace*{12mm}
|
||||||
|
|
||||||
|
\addreferences
|
||||||
|
% {terhal_quantum_2015}
|
||||||
|
{caune_demonstrating_2024}
|
||||||
|
{preskill_quantum_2018}
|
||||||
|
{roffe_quantum_2019}
|
||||||
|
{bravyi_high-threshold_2024}
|
||||||
|
\stopreferences
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
|
%%%%%%%%%%%%%%%%
|
||||||
|
\subsection{Fundamentals of Quantum Error Correction}
|
||||||
|
\label{subsec:Fundamentals of Quantum Error Correction}
|
||||||
|
|
||||||
|
% TODO: Is this all of this really necessary?
|
||||||
|
\begin{frame}
|
||||||
|
\frametitle{Peculiarities of the Quantum Setting}
|
||||||
|
|
||||||
|
% Related interesting stuff
|
||||||
|
% - No cloning theorem -> Not replication of state, protection
|
||||||
|
% through further entanglement
|
||||||
|
% - States are superpositions -> We theoretically need to be able
|
||||||
|
% to correct infinitely many different types of errors. Luckily,
|
||||||
|
% it turns out that in actual fact we only really need to correct
|
||||||
|
% two [Gottesman's Thesis]
|
||||||
|
|
||||||
|
\begin{itemize}
|
||||||
|
\item Measuring the system collapses the quantum state
|
||||||
|
$\rightarrow$ Loss of benefit of quantum system \\
|
||||||
|
$\rightarrow$ For BP, we work with the syndrome and not
|
||||||
|
the variable nodes \textcolor{red}{This can't be here,
|
||||||
|
it's before introducing how QEC works}
|
||||||
|
\item X and Z errors
|
||||||
|
\item With QEC we are able to restore the quantum state, not
|
||||||
|
"just the bits"
|
||||||
|
\item We don't care about the specific error, only the coset
|
||||||
|
its in $\rightarrow$ We only really care about the syndrome
|
||||||
|
\end{itemize}
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
|
\begin{frame}
|
||||||
|
\frametitle{Fundamentals of Quantum Error Correction}
|
||||||
|
|
||||||
|
\begin{itemize}
|
||||||
|
\item Stabilizer codes: the quantum equivalent of binary linear codes
|
||||||
|
\item CSS codes: separate corection of X and Z errors
|
||||||
|
$\rightarrow$ simpler circuitry
|
||||||
|
\item Construction of CSS codes from binary linear codes
|
||||||
|
\textcolor{red}{Is this really necessary?}
|
||||||
|
\end{itemize}
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
|
% TODO: Is this really necessary?
|
||||||
|
\begin{frame}
|
||||||
|
\frametitle{The Quantum Error Correction Landscape}
|
||||||
|
|
||||||
|
\begin{itemize}
|
||||||
|
\item Give basic overview of most promising avenues of
|
||||||
|
research (as in ECCentric paper)
|
||||||
|
\end{itemize}
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
|
\begin{frame}
|
||||||
|
\frametitle{An Example: The Steane Code}
|
||||||
|
|
||||||
|
\begin{itemize}
|
||||||
|
\item \textcolor{red}{Give example slides grey background or something?}
|
||||||
|
\item The Steane code is the quantum equivalent of the
|
||||||
|
[7,4]-Hamming code
|
||||||
|
\item Construction from Hamming code
|
||||||
|
\item Syndrome Extraction Circuitry
|
||||||
|
\end{itemize}
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
\section{Fault Tolerance and Detector Error Models}
|
||||||
|
\label{sec:Fault Tolerance and Detector Error Models}
|
||||||
|
|
||||||
|
%%%%%%%%%%%%%%%%
|
||||||
|
\subsection{Fault Tolerance}
|
||||||
|
\label{subsec:Fault Tolerance}
|
||||||
|
|
||||||
|
\begin{frame}
|
||||||
|
\frametitle{Fault Tolerance}
|
||||||
|
|
||||||
|
\begin{itemize}
|
||||||
|
\item Quantum gates are faulty $\rightarrow$ we need QEC \\
|
||||||
|
But we do QEC with faulty gates $\rightarrow$ we need
|
||||||
|
fault tolerant QEC %
|
||||||
|
\footnote{
|
||||||
|
Designing fault-tolerant circuits using detector
|
||||||
|
error models - Gong et al, Section 4.1
|
||||||
|
}
|
||||||
|
\item We generally do multiple rounds of syndrome extraction
|
||||||
|
\item The Threshold theorem
|
||||||
|
\setcounter{footnote}{0}
|
||||||
|
\item Definition of fault tolerance \footnotemark
|
||||||
|
\item \textcolor{red}{Different approaches to fault tolerance?}
|
||||||
|
\end{itemize}
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
|
%%%%%%%%%%%%%%%%
|
||||||
|
\subsection{Detector Error Models}
|
||||||
|
\label{subsec:Detector Error Models}
|
||||||
|
|
||||||
|
\begin{frame}
|
||||||
|
\frametitle{Detector Error Models}
|
||||||
|
|
||||||
|
\begin{itemize}
|
||||||
|
\item Idea: Go "one layer of abstraction higher" \\
|
||||||
|
$\rightarrow$ Redefine syndrome and create new PC matrix from that
|
||||||
|
\end{itemize}
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
|
\begin{frame}
|
||||||
|
\frametitle{An Example: Steane Code Detector Error Model}
|
||||||
|
|
||||||
|
\begin{itemize}
|
||||||
|
\item New Syndrome Extraction Circuitry \textcolor{red}{Is a
|
||||||
|
repetition of the old circuitry needed?}
|
||||||
|
\item New parity check matrix
|
||||||
|
\item Highlighting of the SC-LDPC-code-like structure
|
||||||
|
\end{itemize}
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
|
\begin{frame}
|
||||||
|
\frametitle{Challenges}
|
||||||
|
|
||||||
|
\begin{itemize}
|
||||||
|
\item Multiple different errors are summarized $\rightarrow$
|
||||||
|
short cycles \& degeneracy
|
||||||
|
\footnote{
|
||||||
|
\texttt{
|
||||||
|
https://www.math.cit.tum.de/fileadmin/w00ccg/math/\_my\_direct\_uploads/Dan\_Browne.pdf
|
||||||
|
}
|
||||||
|
}
|
||||||
|
\\
|
||||||
|
$\rightarrow$ We generally don't use "normal BP" (BP +
|
||||||
|
OSD, BPGD, etc.)
|
||||||
|
\end{itemize}
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
\section{State of the Art and Research Gap}
|
||||||
|
\label{sec:State of the Art and Research Gap}
|
||||||
|
|
||||||
|
%%%%%%%%%%%%%%%%
|
||||||
|
\subsection{State of the Art}
|
||||||
|
\label{subsec:State of the Art}
|
||||||
|
|
||||||
|
\begin{frame}
|
||||||
|
\frametitle{Sliding Window Decoding}
|
||||||
|
|
||||||
|
\begin{itemize}
|
||||||
|
\item Give overview of existing research
|
||||||
|
\item Explain exactly what they do in the main paper I am
|
||||||
|
basing my work on
|
||||||
|
\end{itemize}
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
|
\begin{frame}
|
||||||
|
\frametitle{Guided Decimation Guessing Decoding}
|
||||||
|
|
||||||
|
\begin{itemize}
|
||||||
|
\item Update equations
|
||||||
|
\item Key ideas
|
||||||
|
\item Syndrome Based BP
|
||||||
|
\end{itemize}
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
|
\begin{frame}
|
||||||
|
\frametitle{Memory experiments}
|
||||||
|
|
||||||
|
\begin{itemize}
|
||||||
|
\item What is a memory experiment?
|
||||||
|
\item Communications Engineering view (what are my inputs and
|
||||||
|
outpus? What do I expect?)
|
||||||
|
\end{itemize}
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
|
\begin{frame}
|
||||||
|
\frametitle{Systemic overview}
|
||||||
|
|
||||||
|
\begin{itemize}
|
||||||
|
\item Top level overview of entire system: X and Z syndrome
|
||||||
|
extraction, logical operator measurement, where decoding
|
||||||
|
takes place, etc.
|
||||||
|
\end{itemize}
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
|
\begin{frame}
|
||||||
|
\frametitle{Research Gap}
|
||||||
|
|
||||||
|
\begin{itemize}
|
||||||
|
\item Use soft information for sliding window decoding
|
||||||
|
$\rightarrow$ Treat as spacially coupled LDPC code
|
||||||
|
\item Current work considers X and Z errors separately
|
||||||
|
(probably for latency reasons) $\rightarrow$ See how
|
||||||
|
decoding the jointly works out
|
||||||
|
\end{itemize}
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
|
%%%%%%%%%%%%%%%%
|
||||||
|
\subsection{What we simulate}
|
||||||
|
\label{subsec:What we simulate}
|
||||||
|
|
||||||
|
\begin{frame}
|
||||||
|
\frametitle{The lack of a Standard Evaluation System}
|
||||||
|
|
||||||
|
\begin{itemize}
|
||||||
|
\item \textcolor{red}{Look into ECCentric}
|
||||||
|
\item There is not even a standard figure of merit (e.g.,
|
||||||
|
FER/BER over SNR in classical case) $\rightarrow$
|
||||||
|
Multiple different kinds of plots (e.g., footprint)
|
||||||
|
\item Overview of variables
|
||||||
|
\end{itemize}
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
|
\begin{frame}
|
||||||
|
\frametitle{Proposed Evaluation Pipeline}
|
||||||
|
|
||||||
|
\begin{itemize}
|
||||||
|
\item To what values I will fix the parameters and why
|
||||||
|
\item What figure of merit I will use and why
|
||||||
|
\end{itemize}
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
|
\appendix
|
||||||
|
\beginbackup
|
||||||
|
|
||||||
|
\begin{frame}
|
||||||
|
\frametitle{System Level Overview}
|
||||||
|
|
||||||
|
\vspace*{-15mm}
|
||||||
|
|
||||||
|
\begin{figure}[H]
|
||||||
|
\centering
|
||||||
|
\begin{subfigure}[t]{0.5\textwidth}
|
||||||
|
\centering
|
||||||
|
|
||||||
|
\includegraphics[scale=1.1]{res/architecture}
|
||||||
|
|
||||||
|
\vspace*{5mm}
|
||||||
|
|
||||||
|
\caption{Schematic workflow of surface code quantum
|
||||||
|
computation \citereference{zhang_classical_2023}.}
|
||||||
|
\end{subfigure}%
|
||||||
|
\begin{subfigure}[t]{0.5\textwidth}
|
||||||
|
\centering
|
||||||
|
|
||||||
|
\tikzset{
|
||||||
|
block/.style={
|
||||||
|
draw, rectangle,
|
||||||
|
fill = kit-blue!25,
|
||||||
|
minimum width=75mm, minimum height=15mm,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
\scalebox{0.7}{
|
||||||
|
\begin{tikzpicture}[node distance=15mm and 20mm]
|
||||||
|
\node[block] (encoding) {Encoding};
|
||||||
|
\node[block, below=of encoding] (channel) {Quantum Channel};
|
||||||
|
\node[block, below=of channel] (reverse-op)
|
||||||
|
{Reverse Operation};
|
||||||
|
|
||||||
|
\node[block, right=of channel] (syn-extr)
|
||||||
|
{Syndrome Extraction};
|
||||||
|
\node[block, below=of syn-extr] (syn-dec)
|
||||||
|
{Syndrome Decoder};
|
||||||
|
|
||||||
|
\node[above=of encoding] (input) {$\ket{\phi}$};
|
||||||
|
\node[below=of reverse-op] (output)
|
||||||
|
{$\hat{\mathcal{E}}\mathcal{E}\ket{\psi}$};
|
||||||
|
|
||||||
|
\draw [-{Latex}] (encoding) -- (channel) node[midway,
|
||||||
|
right] {$\ket{\psi}$};
|
||||||
|
\draw [-{Latex}] (channel) -- (reverse-op)
|
||||||
|
node[midway, right] {$\mathcal{E}\ket{\psi}$};
|
||||||
|
\draw [-{Latex}] (channel) -- (syn-extr)
|
||||||
|
node[midway, above] {$\mathcal{E}\ket{\psi}$};
|
||||||
|
\draw [-{Latex}] (syn-extr) -- (syn-dec)
|
||||||
|
node[midway, right] {$z$};
|
||||||
|
\draw [-{Latex}] (syn-dec) -- (reverse-op)
|
||||||
|
node[midway, above] {$\hat{\mathcal{E}}$};
|
||||||
|
|
||||||
|
\draw [-{Latex}] (input) -- (encoding);
|
||||||
|
\draw [-{Latex}] (reverse-op) -- (output);
|
||||||
|
\end{tikzpicture}
|
||||||
|
}
|
||||||
|
|
||||||
|
\vspace*{5mm}
|
||||||
|
|
||||||
|
\caption{Block diagram of QEC using stabilizer codes
|
||||||
|
\citereference{miao_quaternary_2025}.}
|
||||||
|
\end{subfigure}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
% \vspace*{-2mm}
|
||||||
|
|
||||||
|
\addreferences
|
||||||
|
{zhang_classical_2023}
|
||||||
|
{miao_quaternary_2025}
|
||||||
|
\stopreferences
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
|
\backupend
|
||||||
|
|
||||||
|
\end{document}
|
||||||
|
|
||||||
BIN
src/midterm_presentation/res/architecture.pdf
Normal file
BIN
src/midterm_presentation/res/architecture.pdf
Normal file
Binary file not shown.
BIN
src/midterm_presentation/res/google_roadmap.png
Normal file
BIN
src/midterm_presentation/res/google_roadmap.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 515 KiB |
Loading…
Reference in New Issue
Block a user