|
|
0668a4 |
% Part: Distribution
|
|
|
0668a4 |
% Chapter: Anaconda progress - Framework
|
|
|
0668a4 |
% ------------------------------------------------------------
|
|
|
0668a4 |
% $Id: framework.tex 6207 2010-08-05 13:11:13Z al $
|
|
|
0668a4 |
% ------------------------------------------------------------
|
|
|
0668a4 |
\section{Identity}
|
|
|
0668a4 |
\hypertarget{sec:Distribution:Anaconda:Progress:Identity}{}
|
|
|
0668a4 |
\label{sec:Distribution:Anaconda:Progress:Identity}
|
|
|
0668a4 |
|
|
|
0668a4 |
\begin{description}
|
|
|
0668a4 |
\item[framework:] trunk/Identity/Themes/\$THEME/Distro/Anaconda/Progress/
|
|
|
0668a4 |
\end{description}
|
|
|
0668a4 |
|
|
|
0668a4 |
\noindent Anaconda progress identity's framework is stored here.
|
|
|
0668a4 |
Anaconda progress identity's framework is illustrated in
|
|
|
0668a4 |
\autoref{fig:Distribution:Anaconda:Progress:Identity} and described in
|
|
|
0668a4 |
the following sections.
|
|
|
0668a4 |
|
|
|
0668a4 |
\begin{figure}
|
|
|
0668a4 |
\hrulefill
|
|
|
0668a4 |
\begin{verbatim}
|
|
|
0668a4 |
trunk/Identity/Themes/$THEME/Distro/Anaconda/Progress/
|
|
|
0668a4 |
|-- img
|
|
|
0668a4 |
| |-- 3
|
|
|
0668a4 |
| | |-- bn_IN
|
|
|
0668a4 |
| | | |-- 01-welcome.png
|
|
|
0668a4 |
| | | |-- 02-donate.png
|
|
|
0668a4 |
| | | |-- 03-yum.png
|
|
|
0668a4 |
| | | `-- ... (more bn_IN language-specific images)
|
|
|
0668a4 |
| | |-- cs
|
|
|
0668a4 |
| | | |-- 01-welcome.png
|
|
|
0668a4 |
| | | |-- 02-donate.png
|
|
|
0668a4 |
| | | |-- 03-yum.png
|
|
|
0668a4 |
| | | `-- ... (more cs language-specific images)
|
|
|
0668a4 |
| | |-- ... (more languages here)
|
|
|
0668a4 |
| | |-- first-lowres.png
|
|
|
0668a4 |
| | |-- first.png
|
|
|
0668a4 |
| | |-- ... (more language directories)
|
|
|
0668a4 |
| | |-- progress_first-lowres.png
|
|
|
0668a4 |
| | |-- progress_first.png
|
|
|
0668a4 |
| | `-- ... (more language directories)
|
|
|
0668a4 |
| |-- 4
|
|
|
0668a4 |
| |-- 5
|
|
|
0668a4 |
| `-- ... (more release directories)
|
|
|
0668a4 |
|-- render.sh
|
|
|
0668a4 |
`-- tpl
|
|
|
0668a4 |
|-- first-lowres.svg
|
|
|
0668a4 |
|-- first.svg
|
|
|
0668a4 |
|-- list.svg
|
|
|
0668a4 |
`-- paragraph.svg
|
|
|
0668a4 |
\end{verbatim}
|
|
|
0668a4 |
\hrulefill
|
|
|
0668a4 |
\caption{Anaconda progress identity's framework.%
|
|
|
0668a4 |
\label{fig:Distribution:Anaconda:Progress:Identity}}
|
|
|
0668a4 |
\end{figure}
|
|
|
0668a4 |
|
|
|
0668a4 |
% ------------------------------------------------------------
|
|
|
0668a4 |
\subsection{Design Templates}
|
|
|
0668a4 |
\hypertarget{sec:Distribution:Anaconda:Progress:Identity:Templates}{}
|
|
|
0668a4 |
\label{sec:Distribution:Anaconda:Progress:Identity:Templates}
|
|
|
0668a4 |
|
|
|
0668a4 |
\begin{description}
|
|
|
0668a4 |
\item[framework:] trunk/Identity/Themes/\$THEME/Distro/Anaconda/Progress/Tpl/
|
|
|
0668a4 |
\end{description}
|
|
|
0668a4 |
|
|
|
0668a4 |
\noindent Anaconda progress design templates are stored here.
|
|
|
0668a4 |
Anaconda progress design templates are organized in: Anaconda progress
|
|
|
0668a4 |
first slide and Anaconda progress language-specific slides set of
|
|
|
0668a4 |
images.
|
|
|
0668a4 |
|
|
|
0668a4 |
Anaconda progress first slide is the one used to open the package
|
|
|
0668a4 |
installation process. Anaconda progress first slide design has no
|
|
|
0668a4 |
translation. It is used just as it is, no matter what the current
|
|
|
0668a4 |
Anaconda's installation language be. Anaconda progress first slide
|
|
|
0668a4 |
design is controlled by \texttt{first.svg}, and
|
|
|
0668a4 |
\texttt{first-lowres.svg} design templates
|
|
|
0668a4 |
(\autoref{fig:Distribution:Anaconda:Progress:Identity:Models:First}).
|
|
|
0668a4 |
If the screen resolution is less than 800 x 600 pixels, the
|
|
|
0668a4 |
\texttt{first-lowres.svg} design is used. If the screen resolution is
|
|
|
0668a4 |
equal or greater that 800 x 600 pixels, the \texttt{first.svg} design
|
|
|
0668a4 |
is used.
|
|
|
0668a4 |
|
|
|
0668a4 |
Anaconda progress language-specific slides set of images start to
|
|
|
0668a4 |
rotate a few seconds after progress first slide. Anaconda progress
|
|
|
0668a4 |
language-specific slides set of images design is defined by
|
|
|
0668a4 |
\texttt{list.svg}
|
|
|
0668a4 |
(\autoref{fig:Distribution:Anaconda:Progress:Identity:Models:Paragraph})
|
|
|
0668a4 |
and \texttt{paragraph.svg}
|
|
|
0668a4 |
(\autoref{fig:Distribution:Anaconda:Progress:Identity:Models:List})
|
|
|
0668a4 |
design templates.
|
|
|
0668a4 |
|
|
|
0668a4 |
Anaconda progress language-specific slides set of images resumes
|
|
|
0668a4 |
relevant features coming on the CentOS distribution that is being
|
|
|
0668a4 |
installed. As graphic designer, you need not to care very much about
|
|
|
0668a4 |
translating Anaconda progress language-specific slides set of images,
|
|
|
0668a4 |
this is job for translators. As graphic designer, most of your
|
|
|
0668a4 |
attention is focused on how the slides set of images looks like.
|
|
|
0668a4 |
|
|
|
0668a4 |
Anaconda progress language-specific slides set of images are loaded
|
|
|
0668a4 |
based on Anaconda's installation language. By default, Anaconda's
|
|
|
0668a4 |
installation language is English. But you can change Anaconda's
|
|
|
0668a4 |
default language in the screen ``Installation Language'' to whatever
|
|
|
0668a4 |
your preferred language be.
|
|
|
0668a4 |
|
|
|
0668a4 |
If Anaconda's installation language is English, Anaconda progress
|
|
|
0668a4 |
language-specific slides set of images are loaded in English. If
|
|
|
0668a4 |
Anaconda's installation language is different from English, Anaconda
|
|
|
0668a4 |
looks for the language-specific slides set of images that matches the
|
|
|
0668a4 |
current Anaconda's installation language and uses them in the
|
|
|
0668a4 |
rotation, if that slides set of images exists of course. If there is
|
|
|
0668a4 |
no language-specific slides set of images available for the current
|
|
|
0668a4 |
Anaconda's installation language, Anaconda uses the English slides set
|
|
|
0668a4 |
of images.
|
|
|
0668a4 |
|
|
|
0668a4 |
To verify the final look and feel of your Anaconda progress slide
|
|
|
0668a4 |
images, you need to render them. To render Anaconda progress slide
|
|
|
0668a4 |
images you use the \texttt{render.sh} identity script as described in
|
|
|
0668a4 |
``\hyperlink{sec:Distribution:Anaconda:Progress:Identity:Image:Rendering}{Image
|
|
|
0668a4 |
Files Rendering}''
|
|
|
0668a4 |
(\autoref{sec:Distribution:Anaconda:Progress:Identity:Image:Rendering}).
|
|
|
0668a4 |
The \texttt{render.sh} identity script helps you automate the
|
|
|
0668a4 |
rendering process of Anaconda progress slide images.
|
|
|
0668a4 |
|
|
|
0668a4 |
% ------------------------------------------------------------
|
|
|
0668a4 |
\subsection{Design Models}
|
|
|
0668a4 |
\hypertarget{sec:Distribution:Anaconda:Progress:Identity:Models}{}
|
|
|
0668a4 |
\label{sec:Distribution:Anaconda:Progress:Identity:Models}
|
|
|
0668a4 |
|
|
|
0668a4 |
\begin{description}
|
|
|
0668a4 |
\item[framework:] trunk/Identity/Models/Tpl/Distro/Anaconda/Progress/
|
|
|
0668a4 |
\end{description}
|
|
|
0668a4 |
|
|
|
0668a4 |
\noindent Anaconda progress design models are stored here. Anaconda
|
|
|
0668a4 |
progress design models are described in
|
|
|
0668a4 |
\autoref{fig:Distribution:Anaconda:Progress:Identity:Models:Slides},
|
|
|
0668a4 |
\autoref{fig:Distribution:Anaconda:Progress:Identity:Models:Release},
|
|
|
0668a4 |
\autoref{fig:Distribution:Anaconda:Progress:Identity:Models:First},
|
|
|
0668a4 |
\autoref{fig:Distribution:Anaconda:Progress:Identity:Models:Paragraph},
|
|
|
0668a4 |
and \autoref{fig:Distribution:Anaconda:Progress:Identity:Models:List}.
|
|
|
0668a4 |
|
|
|
0668a4 |
\begin{figure}[!hbp]
|
|
|
0668a4 |
\begin{center}
|
|
|
0668a4 |
\fbox{\includegraphics[width=0.8\textwidth]{%
|
|
|
0668a4 |
../Identity/Models/Img/en/Distro/Anaconda/Progress/view-1.pdf}}
|
|
|
0668a4 |
\end{center}
|
|
|
0668a4 |
\caption[Anaconda progress design model]{Anaconda progress design\
|
|
|
0668a4 |
model. A = ``Header'', B = ``Slide rotation'', C =\
|
|
|
0668a4 |
``Action/Navigation''.%
|
|
|
0668a4 |
\label{fig:Distribution:Anaconda:Progress:Identity:Models:Slides}}
|
|
|
0668a4 |
\end{figure}
|
|
|
0668a4 |
|
|
|
0668a4 |
\begin{figure}[!hbp]
|
|
|
0668a4 |
\begin{center}
|
|
|
0668a4 |
\fbox{\includegraphics[width=0.8\textwidth]{%
|
|
|
0668a4 |
../Identity/Models/Img/en/Distro/Anaconda/Progress/view-2.pdf}}
|
|
|
0668a4 |
\end{center}
|
|
|
0668a4 |
\caption[Anaconda progress release notes]{Anaconda progress release\
|
|
|
0668a4 |
notes. A = ``Release notes'', B = ``Action/Navigation''.%
|
|
|
0668a4 |
\label{fig:Distribution:Anaconda:Progress:Identity:Models:Release}}
|
|
|
0668a4 |
\end{figure}
|
|
|
0668a4 |
|
|
|
0668a4 |
|
|
|
0668a4 |
\begin{figure}[!hbp]
|
|
|
0668a4 |
\begin{center}
|
|
|
0668a4 |
\includegraphics[width=0.8\textwidth]{%
|
|
|
0668a4 |
../Identity/Models/Img/en/Distro/Anaconda/Progress/first.pdf}
|
|
|
0668a4 |
\end{center}
|
|
|
0668a4 |
\caption[Anaconda progress first slide template]{Anaconda progress\
|
|
|
0668a4 |
first slide template. A = ``The CentOS Symbol'', B = ``The CentOS\
|
|
|
0668a4 |
Default Artistic Motif'', C = ``The CentOS Release Brand'', D = ``The\
|
|
|
0668a4 |
CentOS Copyright''.%
|
|
|
0668a4 |
\label{fig:Distribution:Anaconda:Progress:Identity:Models:First}}
|
|
|
0668a4 |
\end{figure}
|
|
|
0668a4 |
|
|
|
0668a4 |
\begin{figure}[!hbp]
|
|
|
0668a4 |
\begin{center}
|
|
|
0668a4 |
\includegraphics[width=0.8\textwidth]{%
|
|
|
0668a4 |
../Identity/Models/Img/en/Distro/Anaconda/Progress/list.pdf}
|
|
|
0668a4 |
\end{center}
|
|
|
0668a4 |
\caption{Anaconda progress list template.%
|
|
|
0668a4 |
\label{fig:Distribution:Anaconda:Progress:Identity:Models:Paragraph}}
|
|
|
0668a4 |
\end{figure}
|
|
|
0668a4 |
|
|
|
0668a4 |
\begin{figure}[!hbp]
|
|
|
0668a4 |
\begin{center}
|
|
|
0668a4 |
\includegraphics[width=0.8\textwidth]{%
|
|
|
0668a4 |
../Identity/Models/Img/en/Distro/Anaconda/Progress/paragraph.pdf}
|
|
|
0668a4 |
\end{center}
|
|
|
0668a4 |
\caption{Anaconda progress paragraph template.%
|
|
|
0668a4 |
\label{fig:Distribution:Anaconda:Progress:Identity:Models:List}}
|
|
|
0668a4 |
\end{figure}
|
|
|
0668a4 |
|
|
|
0668a4 |
% ------------------------------------------------------------
|
|
|
0668a4 |
\subsection{Image Files}
|
|
|
0668a4 |
\hypertarget{sec:Distribution:Anaconda:Progress:Identity:Image}{}
|
|
|
0668a4 |
\label{sec:Distribution:Anaconda:Progress:Identity:Image}
|
|
|
0668a4 |
|
|
|
0668a4 |
\begin{description}
|
|
|
0668a4 |
\item[framework:] trunk/Identity/Themes/\$THEME/Distro/Anaconda/Progress/Img/
|
|
|
0668a4 |
\end{description}
|
|
|
0668a4 |
|
|
|
0668a4 |
\noindent Anaconda progress final images are stored here.
|
|
|
0668a4 |
|
|
|
0668a4 |
% ------------------------------------------------------------
|
|
|
0668a4 |
\subsection{Image Files Rendering}
|
|
|
0668a4 |
\hypertarget{sec:Distribution:Anaconda:Progress:Identity:Image:Rendering}{}
|
|
|
0668a4 |
\label{sec:Distribution:Anaconda:Progress:Identity:Image:Rendering}
|
|
|
0668a4 |
|
|
|
0668a4 |
\begin{description}
|
|
|
0668a4 |
\item[framework:] trunk/Identity/Themes/\$THEME/Distro/Anaconda/Progress/
|
|
|
0668a4 |
\end{description}
|
|
|
0668a4 |
|
|
|
0668a4 |
\noindent Here is where you produce Anaconda progress slide images.
|
|
|
0668a4 |
Take a look at the following rendering examples based on the
|
|
|
0668a4 |
translation path shown in
|
|
|
0668a4 |
\autoref{fig:Distribution:Anaconda:Progress:Translations}:\\
|
|
|
0668a4 |
\\
|
|
|
0668a4 |
\fbox{\texttt{./render.sh}}\\
|
|
|
0668a4 |
\\
|
|
|
0668a4 |
\fbox{\texttt{./render.sh '5'}}\\
|
|
|
0668a4 |
\\
|
|
|
0668a4 |
\fbox{\texttt{./render.sh '(3|4|5)'}}\\
|
|
|
0668a4 |
\\
|
|
|
0668a4 |
\fbox{\texttt{./render.sh '5/(progress|first|en)'}}\\
|
|
|
0668a4 |
\\
|
|
|
0668a4 |
\fbox{\texttt{./render.sh '(4|5)/(progress|first|en|es)'}}\\
|
|
|
0668a4 |
\\
|
|
|
0668a4 |
\fbox{\texttt{./render.sh '(4|5)/(en|es)/01-welcome'}}
|
|
|
0668a4 |
|
|
|
0668a4 |
% ------------------------------------------------------------
|
|
|
0668a4 |
\section{Translations}
|
|
|
0668a4 |
\hypertarget{sec:Distribution:Anaconda:Progress:Translations}{}
|
|
|
0668a4 |
\label{sec:Distribution:Anaconda:Progress:Translations}{}
|
|
|
0668a4 |
|
|
|
0668a4 |
\begin{description}
|
|
|
0668a4 |
\item[framework:] trunk/Translations/Identity/Themes/Distro/Anaconda/Progress/
|
|
|
0668a4 |
\end{description}
|
|
|
0668a4 |
|
|
|
0668a4 |
\noindent Here is where translators locale Anaconda progress
|
|
|
0668a4 |
language-specific slide set of images. Anaconda progress translation
|
|
|
0668a4 |
framework is illustrated in
|
|
|
0668a4 |
\autoref{fig:Distribution:Anaconda:Progress:Translations}. Anaconda
|
|
|
0668a4 |
progress translation framework defines the Anaconda progress slide
|
|
|
0668a4 |
images translation path. The translation path shown in
|
|
|
0668a4 |
\autoref{fig:Distribution:Anaconda:Progress:Translations} is an
|
|
|
0668a4 |
incomplet version of the real one. It was cropped in the sake of
|
|
|
0668a4 |
keeping it in just one page. To make yourself a better idea of the
|
|
|
0668a4 |
real Anaconda progress translation path, check the one inside your
|
|
|
0668a4 |
working copy of CentOS Artwork Repository. That is the one you should
|
|
|
0668a4 |
use in order to build your REGEX patterns when rendering Anaconda
|
|
|
0668a4 |
progress slide images.
|
|
|
0668a4 |
|
|
|
0668a4 |
\begin{figure}
|
|
|
0668a4 |
\hrulefill
|
|
|
0668a4 |
\begin{verbatim}
|
|
|
0668a4 |
trunk/Translations/Identity/Themes/Distro/Anaconda/Progress/
|
|
|
0668a4 |
|-- 3
|
|
|
0668a4 |
| |-- bn_IN
|
|
|
0668a4 |
| | |-- 01-welcome.sed
|
|
|
0668a4 |
| | |-- 02-donate.sed
|
|
|
0668a4 |
| | |-- 03-yum.sed
|
|
|
0668a4 |
| | `-- ... (more bn_IN translation files)
|
|
|
0668a4 |
| |-- ... (more language directories)
|
|
|
0668a4 |
| |-- first-lowres.sed
|
|
|
0668a4 |
| |-- first.sed
|
|
|
0668a4 |
| |-- ... (more language directories)
|
|
|
0668a4 |
| |-- progress_first-lowres.sed
|
|
|
0668a4 |
| |-- progress_first.sed
|
|
|
0668a4 |
| `-- ... (more language directories)
|
|
|
0668a4 |
|-- 4
|
|
|
0668a4 |
|-- 5
|
|
|
0668a4 |
|-- ... (more release directories)
|
|
|
0668a4 |
|-- render.sh
|
|
|
0668a4 |
`-- tpl
|
|
|
0668a4 |
|-- bn_IN
|
|
|
0668a4 |
| |-- 01-welcome.sed
|
|
|
0668a4 |
| |-- 02-donate.sed
|
|
|
0668a4 |
| |-- 03-yum.sed
|
|
|
0668a4 |
| `-- ... (more bn_IN translation files)
|
|
|
0668a4 |
|-- ... (more language directories)
|
|
|
0668a4 |
|-- first-lowres.sed
|
|
|
0668a4 |
|-- first.sed
|
|
|
0668a4 |
|-- ... (more language directories)
|
|
|
0668a4 |
|-- progress_first-lowres.sed
|
|
|
0668a4 |
|-- progress_first.sed
|
|
|
0668a4 |
`-- ... (more language directories)
|
|
|
0668a4 |
\end{verbatim}
|
|
|
0668a4 |
\hrulefill
|
|
|
0668a4 |
\caption{Anaconda progress translation framework.%
|
|
|
0668a4 |
\label{fig:Distribution:Anaconda:Progress:Translations}}
|
|
|
0668a4 |
\end{figure}
|
|
|
0668a4 |
|
|
|
0668a4 |
% ------------------------------------------------------------
|
|
|
0668a4 |
\subsection{Translation Markers}
|
|
|
0668a4 |
\hypertarget{sec:Distribution:Anaconda:Progress:Translations:Markers}{}
|
|
|
0668a4 |
\label{sec:Distribution:Anaconda:Progress:Translations:Markers}
|
|
|
0668a4 |
|
|
|
0668a4 |
In Anaconda progress, translation files and design templates use the
|
|
|
0668a4 |
translation markers specified in
|
|
|
0668a4 |
\autoref{tab:Distribution:Identity:Markers}.
|
|
|
0668a4 |
|
|
|
0668a4 |
\begin{table}[!hbp]
|
|
|
0668a4 |
\centering
|
|
|
0668a4 |
\begin{tabular}{ll}
|
|
|
0668a4 |
\hline
|
|
|
0668a4 |
\textbf{Marker}& \textbf{Description}\\
|
|
|
0668a4 |
\hline
|
|
|
0668a4 |
=TITLE= & Slide's title.\\
|
|
|
0668a4 |
=DESCRIPTION= & Slide's list description.\\
|
|
|
0668a4 |
=TEXT1-12= & Slide's content.\\
|
|
|
0668a4 |
=URL= & Slide's URL.\\
|
|
|
0668a4 |
=COPYRIGHT= & Copyright notice.\\
|
|
|
0668a4 |
=RELEASE= & CentOS Distribution full release number.\\
|
|
|
0668a4 |
=MAJOR\_RELEASE= & CentOS Distribution major release number.\\
|
|
|
0668a4 |
=MINOR\_RELEASE= & CentOS Distribution update release number.\\
|
|
|
0668a4 |
\hline
|
|
|
0668a4 |
\end{tabular}
|
|
|
0668a4 |
\caption{Anaconda progress translation markers.%
|
|
|
0668a4 |
\label{tab:Distribution:Identity:Markers}}
|
|
|
0668a4 |
\end{table}
|
|
|
0668a4 |
|
|
|
0668a4 |
% ------------------------------------------------------------
|
|
|
0668a4 |
\section{Manuals}
|
|
|
0668a4 |
\hypertarget{sec:Distribution:Anaconda:Progress:Manuals}{}
|
|
|
0668a4 |
\label{sec:Distribution:Anaconda:Progress:Manuals}
|
|
|
0668a4 |
|
|
|
0668a4 |
\begin{description}
|
|
|
0668a4 |
\item[framework:] trunk/Manuals/Distribution/Anaconda/Progress/
|
|
|
0668a4 |
\end{description}
|
|
|
0668a4 |
|
|
|
0668a4 |
\noindent Anaconda progress documentation files are prepared here. If
|
|
|
0668a4 |
you want to help improving Anaconda progress documentation this is
|
|
|
0668a4 |
where you need to go.
|
|
|
0668a4 |
|
|
|
0668a4 |
% ------------------------------------------------------------
|
|
|
0668a4 |
\section{Scripts}
|
|
|
0668a4 |
\hypertarget{sec:Distribution:Anaconda:Progress:Scripts}{}
|
|
|
0668a4 |
\label{sec:Distribution:Anaconda:Progress:Scripts}
|
|
|
0668a4 |
|
|
|
0668a4 |
\begin{description}
|
|
|
0668a4 |
\item[framework:] trunk/Scripts/Config/Identity/Themes/Distro/Anaconda/Progress/
|
|
|
0668a4 |
\end{description}
|
|
|
0668a4 |
|
|
|
0668a4 |
\noindent Here is stored the Anaconda progress \texttt{render.conf.sh}
|
|
|
0668a4 |
configuration script. To render Anaconda progress slide images
|
|
|
0668a4 |
correctly, the \texttt{ARTCOMP} configuration variable inside Anaconda
|
|
|
0668a4 |
progress configuration script should be defined as illustrated in
|
|
|
0668a4 |
\autoref{fig:Distribution:Anaconda:Progress:Scripts:Config}.
|
|
|
0668a4 |
|
|
|
0668a4 |
\begin{figure}
|
|
|
0668a4 |
\hrulefill
|
|
|
0668a4 |
\begin{verbatim}
|
|
|
0668a4 |
# Define artwork component.
|
|
|
0668a4 |
ARTCOMP='Distro/Anaconda/Progress'
|
|
|
0668a4 |
\end{verbatim}
|
|
|
0668a4 |
\hrulefill
|
|
|
0668a4 |
\caption{Anaconda progress configuration layout.%
|
|
|
0668a4 |
\label{fig:Distribution:Anaconda:Progress:Scripts:Config}}
|
|
|
0668a4 |
\end{figure}
|
|
|
0668a4 |
|