% \iffalse 
%<*internal>
\iffalse
%</internal>
%<*readme>
____________________
The XePersian package
v25.2.2

The xepersian package provides a convenient interface for 
typesetting Persian and English texts in LaTeX, using XeTeX 
engine.

If you want to report any bugs or typos and corrections in the
documentation, or ask for any new features, or suggest any
improvements, or ask any questions about the package, then 
please use the issue tracker:

  <https://github.com/xepersian/xepersian/issues>
  
In doing so, please always explain your issue well enough, and always
include a minimal working example showing the issue.

You may also have conversations, ask questions and post answers
without opening issues using the Discussions space:

  <https://github.com/xepersian/xepersian/discussions>
  
The announcements for the new releases of the package will
also appear in the Discussions space under the Announcements
category.
  
  
Current version release date: 2025/02/02
___________________________________________
Vafa Khalighi

Copyright (c) Vafa Khalighi 2008--2025
Copyright (c) bidi-tex GitHub Organization 2018--2020

Distributed under the LaTeX Project Public License
It may be distributed and/or modified under the LaTeX Project Public License,
version 1.3c or higher (your choice). The latest version of
this license is at: http://www.latex-project.org/lppl.txt

This work is “author-maintained” (as per LPPL maintenance status) 
by Vafa Khalighi.
%</readme>
%<*internal>
\fi
\begingroup
%</internal>
%<*batchfile>
\input docstrip.tex
\let\MetaPrefix\relax
\keepsilent
\preamble

  __________________________________________________
  Vafa Khalighi

  Copyright (c) 2008--2025  Vafa Khalighi 
  Copyright (c) 2018--2020 bidi-tex GitHub Organization

  It may be distributed and/or modified under the LaTeX Project Public License,
  version 1.3c or higher (your choice). The latest version of
  this license is at: http://www.latex-project.org/lppl.txt

  This work is “author-maintained” (as per LPPL maintenance status) 
  by Vafa Khalighi.


\endpreamble
\askforoverwritefalse
\let\MetaPrefix\DoubleperCent
\generate{\file{algorithmic-xetex-xepersian.def}{\from{\jobname.dtx}{table,algorithmic-xetex-xepersian.def}}}
\generate{\file{algorithm-xetex-xepersian.def}{\from{\jobname.dtx}{table,algorithm-xetex-xepersian.def}}}
\generate{\file{amsart-xetex-xepersian.def}{\from{\jobname.dtx}{table,amsart-xetex-xepersian.def}}}
\generate{\file{amsbook-xetex-xepersian.def}{\from{\jobname.dtx}{table,amsbook-xetex-xepersian.def}}}
\generate{\file{appendix-xetex-xepersian.def}{\from{\jobname.dtx}{table,appendix-xetex-xepersian.def}}}
\generate{\file{article-xetex-xepersian.def}{\from{\jobname.dtx}{table,article-xetex-xepersian.def}}}
\generate{\file{artikel1-xetex-xepersian.def}{\from{\jobname.dtx}{table,artikel1-xetex-xepersian.def}}}
\generate{\file{artikel2-xetex-xepersian.def}{\from{\jobname.dtx}{table,artikel2-xetex-xepersian.def}}}
\generate{\file{artikel3-xetex-xepersian.def}{\from{\jobname.dtx}{table,artikel3-xetex-xepersian.def}}}
\generate{\file{backref-xetex-xepersian.def}{\from{\jobname.dtx}{table,backref-xetex-xepersian.def}}}
\generate{\file{beamer-xetex-xepersian.def}{\from{\jobname.dtx}{table,beamer-xetex-xepersian.def}}}
\generate{\file{beamerbasetranslator-xetex-xepersian.def}{\from{\jobname.dtx}{table,beamerbasetranslator-xetex-xepersian.def}}}
\generate{\file{bidituftesidenote-xetex-xepersian.def}{\from{\jobname.dtx}{table,bidituftesidenote-xetex-xepersian.def}}}
\generate{\file{bidimoderncv-xetex-xepersian.def}{\from{\jobname.dtx}{table,bidimoderncv-xetex-xepersian.def}}}
\generate{\file{boek3-xetex-xepersian.def}{\from{\jobname.dtx}{table,boek3-xetex-xepersian.def}}}
\generate{\file{boek-xetex-xepersian.def}{\from{\jobname.dtx}{table,boek-xetex-xepersian.def}}}
\generate{\file{bookest-xetex-xepersian.def}{\from{\jobname.dtx}{table,bookest-xetex-xepersian.def}}}
\generate{\file{book-xetex-xepersian.def}{\from{\jobname.dtx}{table,book-xetex-xepersian.def}}}
\generate{\file{breqn-xetex-xepersian.def}{\from{\jobname.dtx}{table,breqn-xetex-xepersian.def}}}
\generate{\file{latex-localize-commands-xetex-xepersian.def}{\from{\jobname.dtx}{table,latex-localize-commands-xetex-xepersian.def}}}
\generate{\file{color-localize-xetex-xepersian.def}{\from{\jobname.dtx}{table,color-localize-xetex-xepersian.def}}}
\generate{\file{xepersian-localize-commands-xetex-xepersian.def}{\from{\jobname.dtx}{table,xepersian-localize-commands-xetex-xepersian.def}}}
\generate{\file{enumerate-xetex-xepersian.def}{\from{\jobname.dtx}{table,enumerate-xetex-xepersian.def}}}
\generate{\file{enumitem-xetex-xepersian.def}{\from{\jobname.dtx}{table,enumitem-xetex-xepersian.def}}}
\generate{\file{latex-localize-environments-xetex-xepersian.def}{\from{\jobname.dtx}{table,latex-localize-environments-xetex-xepersian.def}}}
\generate{\file{xepersian-localize-environments-xetex-xepersian.def}{\from{\jobname.dtx}{table,xepersian-localize-environments-xetex-xepersian.def}}}
\generate{\file{extarticle-xetex-xepersian.def}{\from{\jobname.dtx}{table,extarticle-xetex-xepersian.def}}}
\generate{\file{extbook-xetex-xepersian.def}{\from{\jobname.dtx}{table,extbook-xetex-xepersian.def}}}
\generate{\file{extrafootnotefeatures-xetex-bidi-xetex-xepersian.def}{\from{\jobname.dtx}{table,extrafootnotefeatures-xetex-bidi-xetex-xepersian.def}}}
\generate{\file{extreport-xetex-xepersian.def}{\from{\jobname.dtx}{table,extreport-xetex-xepersian.def}}}
\generate{\file{fancyref-xetex-xepersian.def}{\from{\jobname.dtx}{table,fancyref-xetex-xepersian.def}}}
\generate{\file{footnote-xetex-bidi-xetex-xepersian.def}{\from{\jobname.dtx}{table,footnote-xetex-bidi-xetex-xepersian.def}}}
\generate{\file{framed-xetex-xepersian.def}{\from{\jobname.dtx}{table,framed-xetex-xepersian.def}}}
\generate{\file{glossaries-xetex-xepersian.def}{\from{\jobname.dtx}{table,glossaries-xetex-xepersian.def}}}
\generate{\file{hyperref-xetex-xepersian.def}{\from{\jobname.dtx}{table,hyperref-xetex-xepersian.def}}}
\generate{\file{imsproc-xetex-xepersian.def}{\from{\jobname.dtx}{table,imsproc-xetex-xepersian.def}}}
\generate{\file{kashida-xetex-xepersian.def}{\from{\jobname.dtx}{table,kashida-xetex-xepersian.def}}}
\generate{\file{listings-xetex-xepersian.def}{\from{\jobname.dtx}{table,listings-xetex-xepersian.def}}}
\generate{\file{localize-xetex-xepersian.def}{\from{\jobname.dtx}{table,localize-xetex-xepersian.def}}}
\generate{\file{memoir-xetex-xepersian.def}{\from{\jobname.dtx}{table,memoir-xetex-xepersian.def}}}
\generate{\file{latex-localize-messages-xetex-xepersian.def}{\from{\jobname.dtx}{table,latex-localize-messages-xetex-xepersian.def}}}
\generate{\file{minitoc-xetex-xepersian.def}{\from{\jobname.dtx}{table,minitoc-xetex-xepersian.def}}}
\generate{\file{latex-localize-misc-xetex-xepersian.def}{\from{\jobname.dtx}{table,latex-localize-misc-xetex-xepersian.def}}}
\generate{\file{natbib-xetex-xepersian.def}{\from{\jobname.dtx}{table,natbib-xetex-xepersian.def}}}
\generate{\file{packages-localize-xetex-xepersian.def}{\from{\jobname.dtx}{table,packages-localize-xetex-xepersian.def}}}
\generate{\file{url-xetex-xepersian.def}{\from{\jobname.dtx}{table,url-xetex-xepersian.def}}}
\def\MetaPrefix{;;}
\def\mapping@postamble{%
  \MetaPrefix ^^J%
  \MetaPrefix\space End of file `\outFileName'.%
}
\usepostamble\mapping@postamble
\generate{\file{persian-tex-text.map}{\from{\jobname.dtx}{persian-tex-text.map}}}
\generate{\file{persian-tex-text-nonumbers.map}{\from{\jobname.dtx}{persian-tex-text-nonumbers.map}}}
\def\MetaPrefix{--}
\def\mapping@postamble{%
  \MetaPrefix ^^J%
  \MetaPrefix\space End of file `\outFileName'.%
}
\generate{\file{persian-tex-ligs.lua}{\from{\jobname.dtx}{persian-tex-ligs.lua}}}
\let\MetaPrefix\DoubleperCent
\usepostamble\org@postamble
\generate{\file{rapport1-xetex-xepersian.def}{\from{\jobname.dtx}{table,rapport1-xetex-xepersian.def}}}
\generate{\file{rapport3-xetex-xepersian.def}{\from{\jobname.dtx}{table,rapport3-xetex-xepersian.def}}}
\generate{\file{refrep-xetex-xepersian.def}{\from{\jobname.dtx}{table,refrep-xetex-xepersian.def}}}
\generate{\file{report-xetex-xepersian.def}{\from{\jobname.dtx}{table,report-xetex-xepersian.def}}}
\generate{\file{scrartcl-xetex-xepersian.def}{\from{\jobname.dtx}{table,scrartcl-xetex-xepersian.def}}}
\generate{\file{scrbook-xetex-xepersian.def}{\from{\jobname.dtx}{table,scrbook-xetex-xepersian.def}}}
\generate{\file{scrreprt-xetex-xepersian.def}{\from{\jobname.dtx}{table,scrreprt-xetex-xepersian.def}}}
\generate{\file{soul-xetex-xepersian.def}{\from{\jobname.dtx}{table,soul-xetex-xepersian.def}}}
\generate{\file{tkz-linknodes-xetex-xepersian.def}{\from{\jobname.dtx}{table,tkz-linknodes-xetex-xepersian.def}}}
\generate{\file{tocloft-xetex-xepersian.def}{\from{\jobname.dtx}{table,tocloft-xetex-xepersian.def}}}
\generate{\file{varioref-xetex-xepersian.def}{\from{\jobname.dtx}{table,varioref-xetex-xepersian.def}}}
\generate{\file{xepersian.sty}{\from{\jobname.dtx}{table,xepersian.sty}}}
\generate{\file{xepersian-magazine.cls}{\from{\jobname.dtx}{table,xepersian-magazine.cls}}}
\generate{\file{unicode-persianmath.sty}{\from{\jobname.dtx}{table,unicode-persianmath.sty}}}
\generate{\file{xepersian-multiplechoice.sty}{\from{\jobname.dtx}{table,xepersian-multiplechoice.sty}}}
\generate{\file{xepersian-persiancal.sty}{\from{\jobname.dtx}{table,xepersian-persiancal.sty}}}
%</batchfile>
%<batchfile>\endbatchfile
%<*internal>
\generate{\file{\jobname.ins}{\from{\jobname.dtx}{batchfile}}}
\nopreamble\nopostamble
\generate{\file{README.txt}{\from{\jobname.dtx}{readme}}}
\generate{\file{magazine-sample.tex}{\from{\jobname.dtx}{magazine-sample.tex}}}
\generate{\file{test-correction.tex}{\from{\jobname.dtx}{test-correction.tex}}}
\generate{\file{test-empty-form.tex}{\from{\jobname.dtx}{test-empty-form.tex}}}
\generate{\file{test-question-only.tex}{\from{\jobname.dtx}{test-question-only.tex}}}
\generate{\file{test-solution-form.tex}{\from{\jobname.dtx}{test-solution-form.tex}}}
\generate{\file{xepersian-logo.tex}{\from{\jobname.dtx}{xepersian-logo.tex}}}
\endgroup
\immediate\write18{mv README.txt README}
\immediate\write18{makeindex -s gind.ist -o \jobname.ind  \jobname.idx}
\immediate\write18{makeindex -s gglo.ist -o \jobname.gls  \jobname.glo}
%</internal>
%
%<*driver>
\documentclass{ltxdoc}
\input{xepersian-doc-preamble.ltx}
\hypersetup{%
  pdftitle={Source documentation for version 25.2.2 of the XePersian
                package}%
}
\EnableCrossrefs
\CodelineIndex
%\RecordChanges
\begin{document}
  \DocInput{\jobname.dtx}
  \PrintIndex
%  \PrintChanges
\end{document}
%</driver>
%
%
% \fi
%
% \GetFileInfo{\jobname.dtx}
% \title{\textcolor{xepersianblue}{\Huge The \textsf{\XePersian} \textit{Package}}\\
%\LARGE Persian for \LaTeXe, using {\XeTeX} engine\\[5pt]
%\large Source documentation for \textcolor{xepersianblue}{version 25.2.2}}
% \author{Vafa Khalighi\thanks{Thanks to the bidi-tex GitHub organization consisted of David Carlisle and other members of the  {\LaTeX} team for maintaining the package in the period 2018--2020.}}
%\setcounter{page}{0}
%\thispagestyle{empty}
%\includegraphics[width=.3\textwidth]{xepersian-logo}\qquad
%\parindent 0pt
%\vbox{\Huge
%\textcolor{xepersianblue}{\Huge The \textsf{\XePersian} \textit{Package}}
%
%\Large
%Source documentation for \textcolor{xepersianblue}{version 25.2.2}}
%
%\vskip 0pt plus 3fill
%\textit{\large to my Master, \textbf{Ferdowsi The Great}}
%
%\vskip 0pt plus 3fill
%{\color{red!85!black}\fbox{\begin{minipage}{\dimexpr\textwidth-2\fboxsep-2\fboxrule}
%If you want to report any bugs or typos and corrections in the documentation,
%or ask for any new features, or suggest any improvements, or ask any questions about the package, then please use the issue tracker:
%
%\medskip
%  \centerline{\url{https://github.com/xepersian/xepersian/issues}}
%
%\medskip
%In doing so, please always explain your issue well enough, and always include
%a minimal working example showing the issue. 
%
%\bigskip
%You may also have conversations, ask questions and post answers
%without opening issues using the Discussions space:
%
%\medskip
%  \centerline{\url{https://github.com/xepersian/xepersian/discussions}}
%
%\medskip
%The announcements for the new releases of the package will
%also appear in the Discussions space under the Announcements
%category.
%\end{minipage}
%}}
%
%\vskip 0pt plus 3fill
%
%Copyright (c) 2008--2025 Vafa Khalighi
%
%Copyright (c) 2018--2020 bidi-tex GitHub Organization
%
%\medskip
%Permission is granted to distribute and/or modify \emph{both the documentation and the code} under the conditions of the \LaTeX{} Project Public License, either version 1.3c of this license or (at your option) any later version.
%
%\clearpage
%\maketitle
% \tableofcontents
% \StopEventually{}
% \section{File \texttt{algorithmic-xetex-xepersian.def}}
%\iffalse
%<*table>
%\fi
%% \CheckSum{10792}
%% \CharacterTable
%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%%   Digits        \0\1\2\3\4\5\6\7\8\9
%%   Exclamation   \!     Double quote  \"     Hash (number) \#
%%   Dollar        \$     Percent       \%     Ampersand     \&
%%   Acute accent  \'     Left paren    \(     Right paren   \)
%%   Asterisk      \*     Plus          \+     Comma         \,
%%   Minus         \-     Point         \.     Solidus       \/
%%   Colon         \:     Semicolon     \;     Less than     \<
%%   Equals        \=     Greater than  \>     Question mark \?
%%   Commercial at \@     Left bracket  \[     Backslash     \\
%%   Right bracket \]     Circumflex    \^     Underscore    \_
%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%%   Right brace   \}     Tilde         \~}
%%
% \iffalse
%</table>
%<*algorithmic-xetex-xepersian.def>
%\fi
%
%
%
%    \begin{macrocode}
\ProvidesFile{algorithmic-xetex-xepersian.def}[2010/07/25 v0.2 xepersian adaptations for algorithmic package for XeTeX engine]
\def\algorithmicrequire{\if@RTL\textbf{ورودی:}\else\textbf{Require:}\fi}
\def\algorithmicensure{\if@RTL\textbf{خروجی:}\else\textbf{Ensure:}\fi}
%    \end{macrocode}
%
%\iffalse
%</algorithmic-xetex-xepersian.def>
%<*algorithm-xetex-xepersian.def>
%\fi
% \section{File \texttt{algorithm-xetex-xepersian.def}}
%    \begin{macrocode}
\ProvidesFile{algorithm-xetex-xepersian.def}[2010/07/25 v0.2 xepersian adaptations for algorithm package for XeTeX engine]
\def\ALG@name{\if@RTL الگوریتم\else Algorithm\fi}
\def\ALGS@name{الگوریتم‌ها}
\def\listalgorithmname{\if@RTL فهرست \ALGS@name\else List of \ALG@name s\fi}
%    \end{macrocode}
% \iffalse
%</algorithm-xetex-xepersian.def>
%<*amsart-xetex-xepersian.def>
%\fi
% \section{File \texttt{amsart-xetex-xepersian.def}}
%    \begin{macrocode}
\ProvidesFile{amsart-xetex-xepersian.def}[2017/02/04 v0.4 xepersian adaptations for amsart class for XeTeX engine]
\renewcommand \thepart {\@tartibi\c@part}
\def\appendix{\par\c@section\z@ \c@subsection\z@
   \let\sectionname\appendixname
   \def\thesection{\@harfi\c@section}}

%    \end{macrocode}
% \iffalse
%</amsart-xetex-xepersian.def>
%<*amsbook-xetex-xepersian.def>
%\fi
% \section{File \texttt{amsbook-xetex-xepersian.def}}
%    \begin{macrocode}
\ProvidesFile{amsbook-xetex-xepersian.def}[2017/02/04 v0.5 xepersian adaptations for amsbook class for XeTeX engine]
\def\frontmatter{\cleardoublepage\pagenumbering{harfi}}
\renewcommand \thepart {\@tartibi\c@part}
\def\appendix{\par
  \c@chapter\z@ \c@section\z@
  \let\chaptername\appendixname
  \def\thechapter{\@harfi\c@chapter}}

      
%    \end{macrocode}
% \iffalse
%</amsbook-xetex-xepersian.def>
%<*appendix-xetex-xepersian.def>
%\fi
% \section{File \texttt{appendix-xetex-xepersian.def}}
%    \begin{macrocode}
\ProvidesFile{appendix-xetex-xepersian.def}[2015/02/01 v0.1 xepersian adaptations for appendix package for XeTeX engine]
\renewcommand{\@resets@pp}{\par
  \@ppsavesec
  \stepcounter{@pps}
  \setcounter{section}{0}%
  \if@chapter@pp
    \setcounter{chapter}{0}%
    \renewcommand\@chapapp{\appendixname}%
    \renewcommand\thechapter{\@harfi\c@chapter}%
  \else
    \setcounter{subsection}{0}%
    \renewcommand\thesection{\@harfi\c@section}%
  \fi
  \restoreapp
}
%    \end{macrocode}
% \iffalse
%</appendix-xetex-xepersian.def>
%<*article-xetex-xepersian.def>
%\fi
% \section{File \texttt{article-xetex-xepersian.def}}
%    \begin{macrocode}
\ProvidesFile{article-xetex-xepersian.def}[2010/07/25 v0.2 xepersian adaptations for standard article class for XeTeX engine]
\renewcommand \thepart {\@tartibi\c@part}
\renewcommand\appendix{\par
  \setcounter{section}{0}%
  \setcounter{subsection}{0}%
  \gdef\thesection{\@harfi\c@section}}
%    \end{macrocode}
% \iffalse
%</article-xetex-xepersian.def>
%<*artikel1-xetex-xepersian.def>
%\fi
% \section{File \texttt{artikel1-xetex-xepersian.def}}
%    \begin{macrocode}
\ProvidesFile{artikel1-xetex-xepersian.def}[2010/07/25 v0.1 xepersian adaptations for artikel1 class for XeTeX engine]
\renewcommand*\thepart{\@tartibi\c@part}
\renewcommand*\appendix{\par
  \setcounter{section}{0}%
  \setcounter{subsection}{0}%
  \gdef\thesection{\@harfi\c@section}}
%    \end{macrocode}
% \iffalse
%</artikel1-xetex-xepersian.def>
%<*artikel2-xetex-xepersian.def>
%\fi
% \section{File \texttt{artikel2-xetex-xepersian.def}}
%    \begin{macrocode}
\ProvidesFile{artikel2-xetex-xepersian.def}[2010/07/25 v0.1 xepersian adaptations for artikel2 class for XeTeX engine]
\renewcommand*\thepart{\@tartibi\c@part}
\renewcommand*\appendix{\par
  \setcounter{section}{0}%
  \setcounter{subsection}{0}%
  \gdef\thesection{\@harfi\c@section}}
%    \end{macrocode}
% \iffalse
%</artikel2-xetex-xepersian.def>
%<*artikel3-xetex-xepersian.def>
%\fi
% \section{File \texttt{artikel3-xetex-xepersian.def}}
%    \begin{macrocode}
\ProvidesFile{artikel3-xetex-xepersian.def}[2010/07/25 v0.1 xepersian adaptations for artikel3 class for XeTeX engine]
\renewcommand*\thepart{\@tartibi\c@part}
\renewcommand*\appendix{\par
  \setcounter{section}{0}%
  \setcounter{subsection}{0}%
  \gdef\thesection{\@harfi\c@section}}
%    \end{macrocode}
% \iffalse
%</artikel3-xetex-xepersian.def>
%<*backref-xetex-xepersian.def>
%\fi
% \section{File \texttt{backref-xetex-xepersian.def}}
%    \begin{macrocode}
\ProvidesFile{backref-xetex-xepersian.def}[2010/07/25 v0.1 xepersian adaptations for backref package for XeTeX engine]
\def\backrefpagesname{\if@RTL صفحات\else pages\fi}
\def\BR@Latincitex[#1]#2{%
  \BRorg@Latincitex[{#1}]{#2}%
  \ifBR@verbose
    \PackageInfo{backref}{back Latin cite \string`#2\string'}%
  \fi
  \Hy@backout{#2}%
}
\AtBeginDocument{%
  \@ifundefined{NAT@parse}{%
    \global\let\BRorg@Latincitex\@Latincitex
    \global\let\@Latincitex\BR@Latincitex
  }{%
    \@ifpackageloaded{hyperref}{}{%
      \def\hyper@natlinkstart#1{\Hy@backout{#1}}%
    }%
    \PackageInfo{backref}{** backref set up for natbib **}%
  }%
}%
%    \end{macrocode}
% \iffalse
%</backref-xetex-xepersian.def>
%<*beamer-xetex-xepersian.def>
%\fi
% \section{File \texttt{beamer-xetex-xepersian.def}}
%    \begin{macrocode}
\ProvidesFile{beamer-xetex-xepersian.def}[2022/06/27 v0.2 xepersian adaptations for beamer class for XeTeX engine]
\usefonttheme[stillsansserifmath]{serif}

\renewcommand*{\bidi@beamer@today}{%
\the\persianyear-\ifnum\persianmonth<10\relax0\fi\the\persianmonth-\ifnum\persianday<10\relax0\fi\the\persianday}


%    \end{macrocode}
% \iffalse
%</beamer-xetex-xepersian.def>
%<*beamerbasetranslator-xetex-xepersian.def>
%\fi
% \section{File \texttt{beamerbasetranslator-xetex-xepersian.def}}
%    \begin{macrocode}
\ProvidesFile{beamerbasetranslator-xetex-xepersian.def}[2022/06/27 v0.3 xepersian adaptations for beamerbasetranslator package for XeTeX engine]
\newcommand*{\ProvidePersianTranslation}[2]{%
  \providetranslation{#1}{\ifRtoL{#2}{#1}}%
}

\ProvidePersianTranslation{Corollary}{نتیجه}
\ProvidePersianTranslation{Definition}{تعریف}
\ProvidePersianTranslation{Definitions}{تعریف‌ها}
\ProvidePersianTranslation{Example}{مثال}
\ProvidePersianTranslation{Examples}{مثال‌ها}
\ProvidePersianTranslation{Fact}{حقیقت}
\ProvidePersianTranslation{From?}{از}
\ProvidePersianTranslation{Lemma}{لما}
\ProvidePersianTranslation{Problem}{مساله}
\ProvidePersianTranslation{Section}{قسمت}
\ProvidePersianTranslation{Solution}{راه‌حل}
\ProvidePersianTranslation{Subsection}{زیرقسمت}
\ProvidePersianTranslation{Theorem}{قضیه}
\ProvidePersianTranslation{When?}{زمان}
\ProvidePersianTranslation{Who?}{ارایه‌دهنده}


%    \end{macrocode}
% \iffalse
%</beamerbasetranslator-xetex-xepersian.def>
%<*bidituftesidenote-xetex-xepersian.def>
%\fi
% \section{File \texttt{bidituftesidenote-xetex-xepersian.def}}
%    \begin{macrocode}
\ProvidesFile{bidituftesidenote-xetex-xepersian.def}[2017/02/04 v0.3 xepersian adaptations for bidituftesidenote package for XeTeX engine]

\setLTRcitationfont{\resetlatinfont\footnotesize}

\renewcommand*{\@bidituftesidenote@LTRmarginfont}{\resetlatinfont\footnotesize}

\renewcommand*{\@bidituftesidenote@RTLmarginfont}{\setpersianfont\footnotesize}


%    \end{macrocode}
% \iffalse
%</bidituftesidenote-xetex-xepersian.def>
%<*bidimoderncv-xetex-xepersian.def>
%\fi
% \section{File \texttt{bidimoderncv-xetex-xepersian.def}}
%    \begin{macrocode}
\ProvidesFile{bidimoderncv-xetex-xepersian.def}[2010/07/25 v0.1 xepersian adaptations for bidimoderncv class for XeTeX engine]
\def\refname{\if@RTL تألیفات\else Publications\fi}
%    \end{macrocode}
% \iffalse
%</bidimoderncv-xetex-xepersian.def>
%<*boek3-xetex-xepersian.def>
%\fi
% \section{File \texttt{boek3-xetex-xepersian.def}}
%    \begin{macrocode}
\ProvidesFile{boek3-xetex-xepersian.def}[2010/07/25 v0.1 xepersian adaptations for boek3 class for XeTeX engine]
\renewcommand*\thepart{\@tartibi\c@part}
\renewcommand*\frontmatter{%
  \cleardoublepage
  \@mainmatterfalse
  \pagenumbering{harfi}}
\renewcommand*\appendix{\par
  \setcounter{chapter}{0}%
  \setcounter{section}{0}%
  \gdef\@chapapp{\appendixname}%
  \gdef\thechapter{\@harfi\c@chapter}}
%    \end{macrocode}
% \iffalse
%</boek3-xetex-xepersian.def>
%<*boek-xetex-xepersian.def>
%\fi
% \section{File \texttt{boek-xetex-xepersian.def}}
%    \begin{macrocode}
\ProvidesFile{boek-xetex-xepersian.def}[2010/07/25 v0.1 xepersian adaptations for boek class for XeTeX engine]
\renewcommand*\thepart{\@tartibi\c@part}
\renewcommand*\frontmatter{%
  \cleardoublepage
  \@mainmatterfalse
  \pagenumbering{harfi}}
\renewcommand*\appendix{\par
  \setcounter{chapter}{0}%
  \setcounter{section}{0}%
  \gdef\@chapapp{\appendixname}%
  \gdef\thechapter{\@harfi\c@chapter}}
%    \end{macrocode}
% \iffalse
%</boek-xetex-xepersian.def>
%<*bookest-xetex-xepersian.def>
%\fi
% \section{File \texttt{bookest-xetex-xepersian.def}}
%    \begin{macrocode}
\ProvidesFile{bookest-xetex-xepersian.def}[2010/07/25 v0.1 xepersian adaptations for bookest class for XeTeX engine]
\renewcommand \thepart {\@tartibi\c@part}
\renewcommand\appendix{\par
  \setcounter{chapter}{0}%
  \setcounter{section}{0}%
  \gdef\@chapapp{\appendixname}%
  \gdef\thechapter{\@harfi\c@chapter}
}%end appendix
%    \end{macrocode}
% \iffalse
%</bookest-xetex-xepersian.def>
%<*book-xetex-xepersian.def>
%\fi
% \section{File \texttt{book-xetex-xepersian.def}}
%    \begin{macrocode}
\ProvidesFile{book-xetex-xepersian.def}[2010/07/25 v0.2 xepersian adaptations for book class for XeTeX engine]
\renewcommand\frontmatter{%
    \cleardoublepage
  \@mainmatterfalse
  \pagenumbering{harfi}}
\renewcommand \thepart {\@tartibi\c@part}
\renewcommand\appendix{\par
  \setcounter{chapter}{0}%
  \setcounter{section}{0}%
  \gdef\@chapapp{\appendixname}%
  \gdef\thechapter{\@harfi\c@chapter}
}%end appendix
%    \end{macrocode}
% \iffalse
%</book-xetex-xepersian.def>
%<*breqn-xetex-xepersian.def>
%\fi
% \section{File \texttt{breqn-xetex-xepersian.def}}
%    \begin{macrocode}
\ProvidesFile{breqn-xetex-xepersian.def}[2010/07/25 v0.1 xepersian adaptations for breqn package for XeTeX engine]
\def\@dmath[#1]{\if@RTL\@RTLfalse\addfontfeatures{Mapping=farsidigits}\fi%
  \everydisplay\expandafter{\the\everydisplay \display@setup}%
  \if@noskipsec \leavevmode \fi
  \if@inlabel \leavevmode \global\@inlabelfalse \fi
  \if\eq@group\else\eq@prelim\fi
  \setkeys{breqn}{#1}%
  \the\eqstyle
  \eq@setnumber
  \begingroup
  \eq@setup@a
  \eq@startup
}
\def\@dgroup[#1]{\if@RTL\@RTLfalse\addfontfeatures{Mapping=farsidigits}\fi%
  \let\eq@group\@True \global\let\eq@GRP@first@dmath\@True
  \global\GRP@queue\@emptytoks \global\setbox\GRP@box\box\voidb@x
  \global\let\GRP@label\@empty
  \global\grp@wdL\z@\global\grp@wdR\z@\global\grp@wdT\z@
  \global\grp@linewidth\z@\global\grp@wdNum\z@
  \global\let\grp@eqs@numbered\@False
  \global\let\grp@aligned\@True
  \global\let\grp@shiftnumber\@False
  \eq@prelim
  \setkeys{breqn}{#1}%
  \if\grp@hasNumber \grp@setnumber \fi
}
\def\@dseries[#1]{\if@RTL\@RTLfalse\addfontfeatures{Mapping=farsidigits}\fi%
  \let\display@setup\dseries@display@setup
  % Question: should this be the default for dseries???
  \global\eq@wdCond\z@
  \@dmath[layout={M},#1]%
  \mathsurround\z@\@@math \penalty\@Mi
  \let\endmath\ends@math
  \def\premath{%
    \ifdim\lastskip<.3em \unskip
    \else\ifnum\lastpenalty<\@M \dquad\fi\fi
}%
  \def\postmath{\unpenalty\eq@addpunct \penalty\intermath@penalty \dquad \@ignoretrue}%
\ignorespaces
}
%    \end{macrocode}
% \iffalse
%</breqn-xetex-xepersian.def>
%<*latex-localize-commands-xetex-xepersian.def>
%\fi
% \section{File \texttt{latex-localize-commands-xetex-xepersian.def}}
%    \begin{macrocode}
\ProvidesFile{latex-localize-commands-xetex-xepersian.def}[2014/02/05 v0.3 Persian localization of LaTeX2e commands for XeTeX engine]
\eqcommand{شمع‌جدول}{@arstrut}
\eqcommand{فوق}{above}
\eqcommand{فاصله‌کوتاه‌بالای‌نمایش}{abovedisplayshortskip}
\eqcommand{فاصله‌بالای‌نمایش}{abovedisplayskip}
\eqcommand{عنوان‌چکیده}{abstractname}
\eqcommand{اکسنت}{accent}
\eqcommand{فعال}{active}
\eqcommand{بیفزاسطرفهرست}{addcontentsline}
\eqcommand{اضافه‌برجریمه}{addpenalty}
\eqcommand{نشانی}{address}
\eqcommand{بیفزابه‌فهرست}{addtocontents}
\eqcommand{اضافه‌برشمارنده}{addtocounter}
\eqcommand{اضافه‌بربعد}{addtolength}
\eqcommand{بیفزافضای‌و}{addvspace}
\eqcommand{تنظیم‌بدنمایی}{adjdemerits}
\eqcommand{بیفزابر}{advance}
\eqcommand{بعدازانتساب}{afterassignment}
\eqcommand{بعدازگروه}{aftergroup}
\eqcommand{الف}{aleph}
\eqcommand{خصیصه‌مستعارقلم}{aliasfontfeature}
\eqcommand{انتخاب‌خصیصه‌مستعارقلم}{aliasfontfeatureoption}
\eqcommand{شکستنی}{allowbreak}
\eqcommand{تخصی@}{alloc@}
\eqcommand{تخصیص‌یافته}{allocationnumber}
\eqcommand{شکست‌نمایش‌مجاز}{allowdisplaybreaks}
\eqcommand{حروف‌بزرگ}{Alph}
\eqcommand{حروف‌کوچک}{alph}
\eqcommand{نام‌همچنین}{alsoname}
\eqcommand{و}{and}
\eqcommand{زاویه}{angle}
\eqcommand{عنوان‌پیوست}{appendixname}
\eqcommand{تقریب}{approx}
\eqcommand{عربی}{arabic}
\eqcommand{آرگ}{arg}
\eqcommand{رنگ‌خط‌جدول}{arrayrulecolor}
\eqcommand{فاصله‌ستونهای‌آرایه}{arraycolsep}
\eqcommand{ضخامت‌خط‌جدول}{arrayrulewidth}
\eqcommand{کشیدگی‌آرایه}{arraystretch}
\eqcommand{درآغازنوشتار}{AtBeginDocument}
\eqcommand{درپایان‌نوشتار}{AtEndDocument}
\eqcommand{درانتهای‌طبقه}{AtEndOfClass}
\eqcommand{درانتهای‌سبک}{AtEndOfPackage}
\eqcommand{نویسنده}{author}
\eqcommand{مطلب‌پشت}{backmatter}
\eqcommand{شکاف‌پشت}{backslash}
\eqcommand{بدنمایی}{badness}
\eqcommand{میله}{bar}
\eqcommand{فاصله‌کرسی}{baselineskip}
\eqcommand{کشش‌فاصله‌کرسی}{baselinestretch}
\eqcommand{پردازش‌دسته‌ای}{batchmode}
\eqcommand{شروع}{begin}
\eqcommand{شروع‌چپ}{beginL}
\eqcommand{شروع‌راست}{beginR}
\eqcommand{شروع‌گروه}{begingroup}
\eqcommand{فاصله‌کوتاه‌پایین‌نمایش}{belowdisplayshortskip}
\eqcommand{فاصله‌پایین‌نمایش}{belowdisplayskip}
\eqcommand{سیاه}{bf}
\eqcommand{پیش‌فرض‌سیاه}{bfdefault}
\eqcommand{شمایل‌سیاه}{bfseries}
\eqcommand{شرگروه}{bgroup}
\eqcommand{مرجوع}{bibitem}
\eqcommand{کتاب‌نامه}{bibliography}
\eqcommand{سبک‌کتاب‌نامه}{bibliographystyle}
\eqcommand{عنوان‌کتاب‌نامه}{bibname}
\eqcommand{پرش‌بلند}{bigskip}
\eqcommand{مقدارپرش‌بلند}{bigskipamount}
\eqcommand{خط‌پایین‌شناور}{botfigrule}
\eqcommand{علامت‌پایین}{botmark}
\eqcommand{کادرتاپایین}{bottompageskip}
\eqcommand{نسبت‌پایین}{bottomfraction}
\eqcommand{کادر}{box}
\eqcommand{حداکثرعمق‌کادر}{boxmaxdepth}
\eqcommand{بشکن}{break}
\eqcommand{گلوله}{bullet}
\eqcommand{دوپن@پنج}{@cclv}
\eqcommand{دوپن@شش}{@cclvi}
\eqcommand{شرح}{caption}
\eqcommand{کدرده}{catcode}
\eqcommand{رونوشت}{cc}
\eqcommand{نام‌رونوشت}{ccname}
\eqcommand{نقطه‌وسط}{cdot}
\eqcommand{نقاط‌وسط}{cdots}
\eqcommand{تنظیم‌ازوسط}{centering}
\eqcommand{خط‌وسط}{centerline}
\eqcommand{چک@ن}{ch@ck}
\eqcommand{فصل}{chapter}
\eqcommand{عنوان‌فصل}{chaptername}
\eqcommand{نویسه}{char}
\eqcommand{تعریف‌نویسه}{chardef}
\eqcommand{برسی‌فرمان}{CheckCommand}
\eqcommand{مرجع}{cite}
\eqcommand{خطای‌طبقه}{ClassError}
\eqcommand{اطلاع‌طبقه}{ClassInfo}
\eqcommand{هشدارطبقه}{ClassWarning}
\eqcommand{هشدارطبقه‌بی‌سطر}{ClassWarningNoLine}
\eqcommand{نشانگرمرکزی}{cleaders}
\eqcommand{دوصفحه‌پاک}{cleardoublepage}
\eqcommand{صفحه‌پاک}{clearpage}
\eqcommand{خط‌ناپر}{cline}
\eqcommand{ببندورودی}{closein}
\eqcommand{ببندخروجی}{closeout}
\eqcommand{بستن}{closing}
\eqcommand{جریمه‌سربند}{clubpenalty}
\eqcommand{خاج}{clubsuit}
\eqcommand{علامت‌پایین‌ستون‌اول}{colbotmark}
\eqcommand{علامت‌اول‌ستون‌اول}{colfirstmark}
\eqcommand{رنگ}{color}
\eqcommand{کادررنگ}{colorbox}
\eqcommand{علامت‌بالای‌ستون‌اول}{coltopmark}
\eqcommand{رنگ‌ستون}{columncolor}
\eqcommand{بین‌ستون}{columnsep}
\eqcommand{پهنای‌ستون}{columnwidth}
\eqcommand{خط‌بین‌ستون}{columnseprule}
\eqcommand{سطرفهرست}{contentsline}
\eqcommand{عنوان‌فهرست‌مطالب}{contentsname}
\eqcommand{کپی}{copy}
\eqcommand{حق‌تالیف}{copyright}
\eqcommand{شمار}{count}
\eqcommand{شمار@}{count@}
\eqcommand{تعریف‌شمار}{countdef}
\eqcommand{سخ}{cr}
\eqcommand{سخ‌سخ}{crcr}
\eqcommand{نام‌فرمان}{csname}
\eqcommand{گزینه‌جاری}{CurrentOption}
\eqcommand{کادربینابین}{dashbox}
\eqcommand{بینابین‌ع}{dashv}
\eqcommand{@تاریخ}{@date}
\eqcommand{تاریخ}{date}
\eqcommand{روز}{day}
\eqcommand{خط‌پایین‌شناورپهن}{dblbotfigrule}
\eqcommand{نسبت‌پهن‌پایین}{dblbottomfraction}
\eqcommand{خط‌بالای‌شناورپهن}{dblfigrule}
\eqcommand{نسبت‌صفحه‌شناورپهن}{dblfloatpagefraction}
\eqcommand{فاصله‌بین‌شناورپهن}{dblfloatsep}
\eqcommand{کدمکان‌غیرهمانطور}{dblfntlocatecode}
\eqcommand{فاصله‌متن‌وشناورپهن}{dbltextfloatsep}
\eqcommand{نسبت‌پهن‌بالا}{dbltopfraction}
\eqcommand{اعلان‌قلم‌ثابت}{DeclareFixedFont}
\eqcommand{اعلان‌پسوندگرافیک}{DeclareGraphicsExtensions}
\eqcommand{اعلان‌دستورگرافیک}{DeclareGraphicsRule}
\eqcommand{اعلان‌فرمان‌قلم‌قدیمی}{DeclareOldFontCommand}
\eqcommand{اعلان‌گزینه}{DeclareOption}
\eqcommand{اعلان‌فرمان‌قوی}{DeclareRobustCommand}
\eqcommand{اعلان‌قلم‌علائم}{DeclareSymbolFont}
\eqcommand{دوربسته}{deadcycles}
\eqcommand{تر}{def}
\eqcommand{تعریف@کلید}{define@key}
\eqcommand{تعریف‌رنگ}{definecolor}
\eqcommand{درجه}{deg}
\eqcommand{کدجداساز}{delcode}
\eqcommand{جداساز}{delimiter}
\eqcommand{ضریب‌جداساز}{delimiterfactor}
\eqcommand{گودی}{depth}
\eqcommand{خشت}{diamondsuit}
\eqcommand{ابعاد}{dim}
\eqcommand{بعد}{dimen}
\eqcommand{بعد@}{dimen@}
\eqcommand{بعد@یک}{dimen@i}
\eqcommand{بعد@دو}{dimen@ii}
\eqcommand{تعریف‌بعد}{dimendef}
\eqcommand{تیره‌گذاری}{discretionary}
\eqcommand{شکست‌نمایش}{displaybreak}
\eqcommand{تورفتگی‌نمایش}{displayindent}
\eqcommand{سبک‌نمایش}{displaystyle}
\eqcommand{عرض‌نمایش}{displaywidth}
\eqcommand{تقسیم}{divide}
\eqcommand{طبقه‌نوشتار}{documentclass}
\eqcommand{کن}{do}
\eqcommand{تعویض‌کدها}{dospecials}
\eqcommand{نقطه}{dot}
\eqcommand{نقطه‌مساوی}{doteq}
\eqcommand{پرنقطه‌ا}{dotfill}
\eqcommand{نقاط}{dots}
\eqcommand{کادردولا}{doublebox}
\eqcommand{رنگ‌فاصله‌دوخط‌جدول}{doublerulesepcolor}
\eqcommand{فاصله‌بین‌دوخط}{doublerulesep}
\eqcommand{فلش‌پایین}{downarrow}
\eqcommand{عمق}{dp}
\eqcommand{تخلیه}{dump}
\eqcommand{ترگ}{edef}
\eqcommand{پاگروه}{egroup}
\eqcommand{انتهای‌فاصله}{eject}
\eqcommand{گرنه}{else}
\eqcommand{تاکید}{em}
\eqcommand{کشش‌لاجرم}{emergencystretch}
\eqcommand{موکد}{emph}
\eqcommand{@پوچ}{@empty}
\eqcommand{پوچ}{empty}
\eqcommand{مجموعه‌پوچ}{emptyset}
\eqcommand{پایان}{end}
\eqcommand{پایان‌چپ}{endL}
\eqcommand{پایان‌راست}{endR}
\eqcommand{پایان‌نام‌فرمان}{endcsname}
\eqcommand{پایان‌اولین‌سر}{endfirsthead}
\eqcommand{پایان‌پا}{endfoot}
\eqcommand{ته‌بند}{endgraf}
\eqcommand{پایان‌گروه}{endgroup}
\eqcommand{پایان‌سر}{endhead}
\eqcommand{پایان‌ورودی}{endinput}
\eqcommand{پایان‌آخرین‌پا}{endlastfoot}
\eqcommand{گسترش‌این‌صفحه}{enlargethispage}
\eqcommand{ته‌سطر}{endline}
\eqcommand{نویسه‌ته‌سطر}{endlinechar}
\eqcommand{ان‌دوری}{enspace}
\eqcommand{ان‌فاصله}{enskip}
\eqcommand{فرمان‌جانشین}{eqcommand}
\eqcommand{محیط‌جانشین}{eqenvironment}
\eqcommand{ارجاع‌فر}{eqref}
\eqcommand{کمک‌خطا}{errhelp}
\eqcommand{پیام‌خطا}{errmessage}
\eqcommand{سطرمتن‌خطا}{errorcontextlines}
\eqcommand{پردازش‌توقف‌خطا}{errorstopmode}
\eqcommand{نویسه‌ویژه}{escapechar}
\eqcommand{یورو}{euro}
\eqcommand{حاشیه‌زوج}{evensidemargin}
\eqcommand{هرسخ}{everycr}
\eqcommand{هرنمایش}{everydisplay}
\eqcommand{هرکادرا}{everyhbox}
\eqcommand{هرکار}{everyjob}
\eqcommand{هرریاضی}{everymath}
\eqcommand{هربند}{everypar}
\eqcommand{هرکادرو}{everyvbox}
\eqcommand{اجرای‌گزینه‌ها}{ExecuteOptions}
\eqcommand{جریمه‌اضافی‌تیره‌بندی}{exhyphenpenalty}
\eqcommand{بگسترپس‌از}{expandafter}
\eqcommand{فاصله‌اضافی‌بین‌ستونها}{extracolsep}
\eqcommand{@اولی‌ازیک}{@firstofone}
\eqcommand{@اولی‌ازدو}{@firstoftwo}
\eqcommand{چ@ار}{f@ur}
\eqcommand{خانواده}{fam}
\eqcommand{صفحه‌تجملی}{fancypage}
\eqcommand{کادربا}{fbox}
\eqcommand{ضخامت‌کادربا}{fboxrule}
\eqcommand{حاشیه‌کادربا}{fboxsep}
\eqcommand{کادربارنگ}{fcolorbox}
\eqcommand{رگ}{fi}
\eqcommand{عنوان‌شکل}{figurename}
\eqcommand{پرشکن}{filbreak}
\eqcommand{پر}{fill}
\eqcommand{علامت‌اول}{firstmark}
\eqcommand{پهن}{flat}
\eqcommand{نسبت‌صفحه‌شناور}{floatpagefraction}
\eqcommand{جریمه‌شناور}{floatingpenalty}
\eqcommand{فاصله‌بین‌شناور}{floatsep}
\eqcommand{تنظیم‌ازپایین}{flushbottom}
\eqcommand{شکلبندی}{fmtname}
\eqcommand{رده‌شکلبندی}{fmtversion}
\eqcommand{نشانه}{fnsymbol}
\eqcommand{قلم}{font}
\eqcommand{بعدقلم}{fontdimen}
\eqcommand{رمزینه‌قلم}{fontencoding}
\eqcommand{فامیل‌قلم}{fontfamily}
\eqcommand{نام‌قلم}{fontname}
\eqcommand{شمایل‌قلم}{fontseries}
\eqcommand{شکل‌قلم}{fontshape}
\eqcommand{اندازه‌قلم}{fontsize}
\eqcommand{بلندای‌پایین‌صفحه}{footheight}
\eqcommand{درج‌زیرنویس}{footins}
\eqcommand{زیرنویس}{footnote}
\eqcommand{علامت‌زیرنویس}{footnotemark}
\eqcommand{خط‌زیرنویس}{footnoterule}
\eqcommand{فاصله‌تازیرنویس}{footnotesep}
\eqcommand{اندازه‌زیرنویس}{footnotesize}
\eqcommand{متن‌زیرنویس}{footnotetext}
\eqcommand{فاصله‌تاپایین‌صفحه}{footskip}
\eqcommand{فریم}{frame}
\eqcommand{کادرباخط}{framebox}
\eqcommand{فواصل‌یکنواخت‌لاتین}{frenchspacing}
\eqcommand{مطلب‌پیش}{frontmatter}
\eqcommand{بعدبگذار}{futurelet}
\eqcommand{@خورحریصانه}{@gobble}
\eqcommand{@خورحریصانه‌دو}{@gobbletwo}
\eqcommand{@خورحریصانه‌چهار}{@gobblefour}
\eqcommand{@عاقت‌آ}{@gtempa}
\eqcommand{@عاقت‌ب}{@gtempb}
\eqcommand{ترع}{gdef}
\eqcommand{الگوی‌اطلاع}{GenericInfo}
\eqcommand{الگوی‌هشدار}{GenericWarning}
\eqcommand{الگوی‌خطا}{GenericError}
\eqcommand{عام}{global}
\eqcommand{تعاریف‌عام}{globaldefs}
\eqcommand{لغت‌نامه}{glossary}
\eqcommand{فقره‌فرهنگ}{glossaryentry}
\eqcommand{خوش‌شکن}{goodbreak}
\eqcommand{کاغذگراف}{graphpaper}
\eqcommand{گیومه‌چپ}{guillemotleft}
\eqcommand{گیومه‌راست}{guillemotright}
\eqcommand{گیومه‌تکی‌چپ}{guilsinglleft}
\eqcommand{گیومه‌تکی‌راست}{guilsinglright}
\eqcommand{ردیف‌ا}{halign}
\eqcommand{بروتو}{hang}
\eqcommand{بعدازسطر}{hangafter}
\eqcommand{تورفتگی‌ثابت}{hangindent}
\eqcommand{بدنمایی‌ا}{hbadness}
\eqcommand{کادرا}{hbox}
\eqcommand{بلندای‌سرصفحه}{headheight}
\eqcommand{فاصله‌ازسرصفحه}{headsep}
\eqcommand{سربه‌نام}{headtoname}
\eqcommand{دل}{heartsuit}
\eqcommand{بلندا}{height}
\eqcommand{پرا}{hfil}
\eqcommand{پررا}{hfill}
\eqcommand{رفع‌پرا}{hfilneg}
\eqcommand{پرزافقی}{hfuzz}
\eqcommand{فاصله‌مخفی}{hideskip}
\eqcommand{عرض‌پنهان}{hidewidth}
\bidi@csletcs{خط‌پر}{hline}% this is an exception
\eqcommand{حاشیه‌ا}{hoffset}
\eqcommand{حفظ‌درج}{holdinginserts}
\eqcommand{فاصله‌اگرد}{hrboxsep}
\eqcommand{خط‌ا}{hrule}
\eqcommand{پرخط‌ا}{hrulefill}
\eqcommand{طول‌سطر}{hsize}
\eqcommand{فاصله‌ا}{hskip}
\eqcommand{فضای‌ا}{hspace}
\eqcommand{هردوا}{hss}
\eqcommand{ارتفاع}{ht}
\eqcommand{بزرگ}{huge}
\eqcommand{بزرگ‌تر}{Huge}
\eqcommand{ابرپیوند}{hyperlink}
\eqcommand{بارگذاری‌ابر}{hypersetup}
\eqcommand{هدف‌ابر}{hypertarget}
\eqcommand{تیره‌بندی}{hyphenation}
\eqcommand{نویسه‌تیره}{hyphenchar}
\eqcommand{جریمه‌تیره‌بندی}{hyphenpenalty}
\eqcommand{@گرکلاس‌فراخوانی‌شده}{@ifclassloaded}
\eqcommand{@گرترشدنی}{@ifdefinable}
\eqcommand{@گرنویسه‌بعدی}{@ifnextchar}
\eqcommand{@گرسبک‌فراخوانی‌شده}{@ifpackageloaded}
\eqcommand{@گرستاره}{@ifstar}
\eqcommand{@گرتعریف‌نشده}{@ifundefined}
\eqcommand{گر}{if}
\eqcommand{گر@سواقت‌آ}{if@tempswa}
\eqcommand{گرانواع}{ifcase}
\eqcommand{گررده}{ifcat}
\eqcommand{گرتعریف‌شده}{ifdefined}
\eqcommand{گربعد}{ifdim}
\eqcommand{گرته‌پرونده}{ifeof}
\eqcommand{گرر}{iff}
\eqcommand{گرنادرست}{iffalse}
\eqcommand{گرپرونده‌موجود}{IfFileExists}
\eqcommand{گرکادرا}{ifhbox}
\eqcommand{گرحالت‌ا}{ifhmode}
\eqcommand{گردرونی}{ifinner}
\eqcommand{گرحالت‌ریاضی}{ifmmode}
\eqcommand{گرعدد}{ifnum}
\eqcommand{گرفرد}{ifodd}
\eqcommand{گرآنگاه‌دیگر}{ifthenelse}
\eqcommand{گردرست}{iftrue}
\eqcommand{گرکادرو}{ifvbox}
\eqcommand{گرحالت‌و}{ifvmode}
\eqcommand{گرتهی}{ifvoid}
\eqcommand{گرتام}{ifx}
\eqcommand{فاصله‌خالی‌راندیده‌بگیر}{ignorespaces}
\eqcommand{فوری}{immediate}
\eqcommand{شامل}{include}
\eqcommand{درج‌تصویر}{includegraphics}
\eqcommand{مشمولین}{includeonly}
\eqcommand{تورفتگی}{indent}
\eqcommand{درنمایه}{index}
\eqcommand{استعلام}{indexentry}
\eqcommand{عنوان‌نمایه}{indexname}
\eqcommand{فاصله‌رهنما}{indexspace}
\eqcommand{ورودی}{input}
\eqcommand{ورودپرونده‌گرموجود}{InputIfFileExists}
\eqcommand{شماره‌سطرورودی}{inputlineno}
\eqcommand{درج}{insert}
\eqcommand{جریمه‌درج}{insertpenalties}
\eqcommand{جریمه‌بین‌سطرهای‌زیرنویس}{interfootnotelinepenalty}
\eqcommand{جریمه‌بین‌سطرهای‌نمایش}{interdisplaylinepenalty}
\eqcommand{جریمه‌بین‌سطرها}{interlinepenalty}
\eqcommand{متن‌داخلی}{intertext}
\eqcommand{فاصله‌شناوردرمتن}{intertextsep}
\eqcommand{مخفی}{invisible}
\eqcommand{پیش‌فرض‌ای}{itdefault}
\eqcommand{شکل‌ایتالیک}{itshape}
\eqcommand{فقره}{item}
\eqcommand{تورفتگی‌فقره}{itemindent}
\eqcommand{فاصله‌فقره}{itemsep}
\eqcommand{تکرارکن}{iterate}
\eqcommand{شکل‌ای}{itshape}
\eqcommand{نام‌کار}{jobname}
\eqcommand{قلپ}{jot}
\eqcommand{دوری}{kern}
\eqcommand{الگو}{kill}
\eqcommand{برچسب}{label}
\eqcommand{برچسب‌شمارش‌یک}{labelenumi}
\eqcommand{برچسب‌شمارش‌دو}{labelenumii}
\eqcommand{برچسب‌شمارش‌سه}{labelenumiii}
\eqcommand{برچسب‌شمارش‌چهار}{labelenumiv}
\eqcommand{برچسب‌فقره‌یک}{labelitemi}
\eqcommand{برچسب‌فقره‌دو}{labelitemii}
\eqcommand{برچسب‌فقره‌سه}{labelitemiii}
\eqcommand{برچسب‌فقره‌چهار}{labelitemiv}
\eqcommand{فاصله‌ازبرچسب}{labelsep}
\eqcommand{پهنای‌برچسب}{labelwidth}
\eqcommand{زبان}{language}
\eqcommand{درشت}{large}
\eqcommand{درشت‌تر}{Large}
\eqcommand{درشت‌درشت}{LARGE}
\eqcommand{آخرین‌کادر}{lastbox}
\eqcommand{آخرین‌دوری}{lastkern}
\eqcommand{آخرین‌جریمه}{lastpenalty}
\eqcommand{آخرین‌فاصله}{lastskip}
\eqcommand{لاتک}{LaTeX}
\eqcommand{لاتک‌ای}{LaTeXe}
\eqcommand{کدکوچک}{lccode}
\eqcommand{نقاط‌خ}{ldots}
\eqcommand{نشانگر}{leaders}
\eqcommand{ترک‌و}{leavevmode}
\eqcommand{چپ}{left}
\eqcommand{حاشیه‌چپ}{leftmargin}
\eqcommand{حاشیه‌چپ‌یک}{leftmargini}
\eqcommand{حاشیه‌چپ‌دو}{leftmarginii}
\eqcommand{حاشیه‌چپ‌سه}{leftmarginiii}
\eqcommand{حاشیه‌چپ‌چهار}{leftmarginiv}
\eqcommand{حاشیه‌چپ‌پنج}{leftmarginv}
\eqcommand{حاشیه‌چپ‌شش}{leftmarginvi}
\eqcommand{علامت‌چپ}{leftmark}
\eqcommand{کادرتاچپ}{leftpageskip}
\eqcommand{فاصله‌ابتدای‌سطر}{leftskip}
\eqcommand{بگذار}{let}
\eqcommand{سطر}{line}
\eqcommand{سطرشکن}{linebreak}
\eqcommand{جریمه‌سطر}{linepenalty}
\eqcommand{فاصله‌سطرها}{lineskip}
\eqcommand{حدفاصله‌سطر}{lineskiplimit}
\eqcommand{کشش‌فاصله‌سطر}{linespread}
\eqcommand{ضخامت‌خط}{linethickness}
\eqcommand{پهنای‌سطر}{linewidth}
\eqcommand{عنوان‌فهرست‌اشکال}{listfigurename}
\eqcommand{لیست‌پرونده‌ها}{listfiles}
\eqcommand{فهرست‌اشکال}{listoffigures}
\eqcommand{فهرست‌جداول}{listoftables}
\eqcommand{تورفتگی‌بندلیست}{listparindent}
\eqcommand{عنوان‌فهرست‌جداول}{listtablename}
\eqcommand{بارکن‌طبقه}{LoadClass}
\eqcommand{بارکن‌طبقه‌باگزینه}{LoadClassWithOptions}
\eqcommand{مکان}{location}
\eqcommand{بلند}{long}
\eqcommand{گسیختگی}{looseness}
\eqcommand{انتقال‌بپایین}{lower}
\eqcommand{@دیگر}{@makeother}
\eqcommand{@زار}{@m}
\eqcommand{ده@زار}{@M}
\eqcommand{ده@زاریک}{@Mi}
\eqcommand{ده@زاردو}{@Mii}
\eqcommand{ده@زارسه}{@Miii}
\eqcommand{ده@زارچهار}{@Miv}
\eqcommand{بیس@زار}{@MM}
\eqcommand{من@ا}{m@ne}
\eqcommand{بزرگ‌نمایی}{mag}
\eqcommand{گام}{magstep}
\eqcommand{نیم‌گام}{magstephalf}
\eqcommand{مطلب‌اصلی}{mainmatter}
\eqcommand{ات‌حرف}{makeatletter}
\eqcommand{ات‌دیگر}{makeatother}
\eqcommand{کادربی‌خط}{makebox}
\eqcommand{ساخت‌فرهنگ}{makeglossary}
\eqcommand{تهیه‌نمایه}{makeindex}
\eqcommand{ساخت‌برچسب}{makelabel}
\eqcommand{ساخت‌برچسب‌ها}{makelabels}
\eqcommand{ساخت‌حروف‌کوچک}{MakeLowercase}
\eqcommand{عنوان‌ساز}{maketitle}
\eqcommand{ساخت‌حروف‌بزرگ}{MakeUppercase}
\eqcommand{درحاشیه}{marginpar}
\eqcommand{فاصله‌دوحاشیه}{marginparpush}
\eqcommand{فاصله‌تاحاشیه}{marginparsep}
\eqcommand{پهنای‌حاشیه}{marginparwidth}
\eqcommand{علامت}{mark}
\eqcommand{علامت‌دردوطرف}{markboth}
\eqcommand{علامت‌درراست}{markright}
\eqcommand{اعراب‌ریاضی}{mathaccent}
\eqcommand{نویسه‌ریاضی}{mathchar}
\eqcommand{تعریف‌نویسه‌ریاضی}{mathchardef}
\eqcommand{کدریاضی}{mathcode}
\eqcommand{ریاضی‌رومن}{mathrm}
\eqcommand{حداکثرتکرار}{maxdeadcycles}
\eqcommand{حداکثرعمق‌صفحه}{maxdepth}
\eqcommand{بعدبیشین}{maxdimen}
\eqcommand{کادربی}{mbox}
\eqcommand{شمایل‌نازک}{mdseries}
\eqcommand{معنا}{meaning}
\eqcommand{نازک}{mediumseries}
\eqcommand{فاصله‌متوسط‌ریاضی}{medmuskip}
\eqcommand{پرش‌متوسط}{medskip}
\eqcommand{مقدارپرش‌متوسط}{medskipamount}
\eqcommand{فضای‌متوسط}{medspace}
\eqcommand{پیام}{message}
\eqcommand{پیام‌شکن}{MessageBreak}
\eqcommand{حداقل‌فاصله‌ردیف}{minrowclearance}
\eqcommand{دوری‌ریاضی}{mkern}
\eqcommand{ماه}{month}
\eqcommand{انتقال‌بچپ}{moveleft}
\eqcommand{انتقال‌براست}{moveright}
\eqcommand{فاصله‌ریاضی}{mskip}
\eqcommand{ری@ضی}{m@th}
\eqcommand{چندستونی}{multicolumn}
\eqcommand{ضرب}{multiply}
\eqcommand{چندادغام}{multispan}
\eqcommand{میوفاصله}{muskip}
\eqcommand{تعریف‌میوفاصله}{muskipdef}
\eqcommand{@ترنام}{@namedef}
\eqcommand{@کاربردنام}{@nameuse}
\eqcommand{یک@}{@ne}
\eqcommand{نام}{name}
\eqcommand{طبیعی}{natural}
\eqcommand{باریک}{nearrow}
\eqcommand{باریکتر}{nearrower}
\eqcommand{شکلبندی‌موردنیاز}{NeedsTeXFormat}
\eqcommand{منفی}{neg}
\eqcommand{فضای‌متوسط‌منفی}{negmedspace}
\eqcommand{فضای‌ضخیم‌منفی}{negthickspace}
\eqcommand{دوری‌کوچک‌منفی}{negthinspace}
\eqcommand{بولی‌نو}{newboolean}
\eqcommand{کادرجدید}{newbox}
\eqcommand{فرمان‌نو}{newcommand}
\eqcommand{شمارجدید}{newcount}
\eqcommand{شمارنده‌جدید}{newcounter}
\eqcommand{بعدجدید}{newdimen}
\eqcommand{محیط‌نو}{newenvironment}
\eqcommand{خانواده‌جدید}{newfam}
\eqcommand{قلم‌نو}{newfont}
\eqcommand{کمک‌جدید}{newhelp}
\eqcommand{درج‌جدید}{newinsert}
\eqcommand{برچسب‌جدید}{newlabel}
\eqcommand{تعریف‌بعدجدید}{newlength}
\eqcommand{سطرجدید}{newline}
\eqcommand{نویسه‌سطرجدید}{newlinechar}
\eqcommand{میوفاصله‌جدید}{newmuskip}
\eqcommand{صفحه‌جدید}{newpage}
\eqcommand{بخوان‌جدید}{newread}
\eqcommand{تعریف‌کادرجدید}{newsavebox}
\eqcommand{فاصله‌جدید}{newskip}
\eqcommand{قضیه‌جدید}{newtheorem}
\eqcommand{جزءجدید}{newtoks}
\eqcommand{بنویس‌جدید}{newwrite}
\eqcommand{بی‌ردیف}{noalign}
\eqcommand{نشکن}{nobreak}
\eqcommand{فاصله‌نشکستنی}{nobreakspace}
\eqcommand{بدون‌سند}{nocite}
\eqcommand{نگستر}{noexpand}
\eqcommand{بدون‌پرونده}{nofiles}
\eqcommand{بدون‌تورفتگی}{noindent}
\eqcommand{بی‌فاصله‌سطر}{nointerlineskip}
\eqcommand{بدون‌حد}{nolimits}
\eqcommand{سطرنشکن}{nolinebreak}
\eqcommand{پردازش‌بدون‌توقف}{nonstopmode}
\eqcommand{فواصل‌متعارف‌لاتین}{nonfrenchspacing}
\eqcommand{بدون‌شماره}{nonumber}
\eqcommand{صفحه‌نشکن}{nopagebreak}
\eqcommand{کرسیهای‌متعارف}{normalbaselines}
\eqcommand{فاصله‌کرسی‌متعارف}{normalbaselineskip}
\eqcommand{رنگ‌عادی}{normalcolor}
\eqcommand{قلم‌عادی}{normalfont}
\eqcommand{فاصله‌سطرمتعارف}{normallineskip}
\eqcommand{حدفاصله‌سطرمتعارف}{normallineskiplimit}
\eqcommand{درحاشیه‌عادی}{normalmarginpar}
\eqcommand{اندازه‌عادی}{normalsize}
\eqcommand{بدون‌اتیکت}{notag}
\eqcommand{نول}{null}
\eqcommand{قلم‌تهی}{nullfont}
\eqcommand{عدد}{number}
\eqcommand{سطرعددی}{numberline}
\eqcommand{شماره‌مطابق}{numberwithin}
\eqcommand{پایین‌صفحه‌زوج}{@evenfoot}
\eqcommand{بالای‌صفحه‌زوج}{@evenhead}
\eqcommand{پایین‌صفحه‌فرد}{@oddfoot}
\eqcommand{بالای‌صفحه‌فرد}{@oddhead}
\eqcommand{شماره‌بیرون‌درست}{@outeqntrue}
\eqcommand{شماره‌بیرون‌نادرست}{@outeqnfalse}
\eqcommand{سطربه‌سطر}{obeylines}
\eqcommand{فضافعال}{obeyspaces}
\eqcommand{حاشیه‌فرد}{oddsidemargin}
\eqcommand{سطوربی‌فاصله}{offinterlineskip}
\eqcommand{حذف}{omit}
\eqcommand{@تنهادرپیش‌درآمد}{@onlypreamble}
\eqcommand{یک‌ستون}{onecolumn}
\eqcommand{تنها‌یادداشت‌ها}{onlynotes}
\eqcommand{تنهااسلایدها}{onlyslides}
\eqcommand{بازکن‌ورودی}{openin}
\eqcommand{بازکن‌خروجی}{openout}
\eqcommand{گزینه‌مصرف‌نشده}{OptionNotUsed}
\eqcommand{یا}{or}
\eqcommand{برونی}{outer}
\eqcommand{صفحه‌بندی}{output}
\eqcommand{جریمه‌صفحه‌بندی}{outputpenalty}
\eqcommand{علامت‌سرریز}{overfullrule}
\eqcommand{@فرمان‌های‌پیش‌درآمد}{@preamblecmds}
\eqcommand{@پو}{p@}
\eqcommand{خطای‌سبک}{PackageError}
\eqcommand{اطلاع‌سبک}{PackageInfo}
\eqcommand{هشدارسبک}{PackageWarning}
\eqcommand{هشدارسبک‌بی‌سطر}{PackageWarningNoLine}
\eqcommand{صفحه‌شکن}{pagebreak}
\eqcommand{رنگ‌صفحه}{pagecolor}
\eqcommand{عمق‌صفحه}{pagedepth}
\eqcommand{کشش‌پرررصفحه}{pagefilllstretch}
\eqcommand{کشش‌پررصفحه}{pagefillstretch}
\eqcommand{کشش‌پرصفحه}{pagefilstretch}
\eqcommand{غایت‌صفحه}{pagegoal}
\eqcommand{نام‌صفحه}{pagename}
\eqcommand{شماره‌گذاری‌صفحه}{pagenumbering}
\eqcommand{رجوع‌صفحه}{pageref}
\eqcommand{ضخامت‌خط‌صفحه}{pagerulewidth}
\eqcommand{فشردگی‌صفحه}{pageshrink}
\eqcommand{کشش‌صفحه}{pagestretch}
\eqcommand{سبک‌صفحه}{pagestyle}
\eqcommand{جمع‌صفحه}{pagetotal}
\eqcommand{بلندای‌کاغذ}{paperheight}
\eqcommand{پهنای‌کاغذ}{paperwidth}
\bidi@csdefcs{بند}{par}% this is an exception since \par is redefined only in some circumstances
\eqcommand{پاراگراف}{paragraph}
\eqcommand{موازی}{parallel}
\eqcommand{کادرپار}{parbox}
\eqcommand{فاصله‌ته‌بند}{parfillskip}
\eqcommand{تورفتگی‌سربند}{parindent}
\eqcommand{فاصله‌بندلیست}{parsep}
\eqcommand{شکل‌بند}{parshape}
\eqcommand{فاصله‌بند}{parskip}
\eqcommand{بخش}{part}
\eqcommand{عنوان‌بخش}{partname}
\eqcommand{فاصله‌بالای‌لیست‌بند}{partopsep}
\eqcommand{ارسال‌گزینه‌به‌کلاس}{PassOptionToClass}
\eqcommand{ارسال‌گزینه‌به‌پکیج}{PassOptionToPackage}
\eqcommand{مسیر}{path}
\eqcommand{الگوها}{patterns}
\eqcommand{مکث}{pausing}
\eqcommand{جریمه}{penalty}
\eqcommand{غیب}{phantom}
\eqcommand{الگوی‌قبلی}{poptabs}
\eqcommand{جریمه‌پس‌نمایش}{postdisplaypenalty}
\eqcommand{جهت‌پیش‌نمایش}{predisplaydirection}
\eqcommand{جریمه‌پیش‌نمایش}{predisplaypenalty}
\eqcommand{اندازه‌پیش‌نمایش}{predisplaysize}
\eqcommand{پیش‌حدبدنمایی}{pretolerance}
\eqcommand{عمق‌قبلی}{prevdepth}
\eqcommand{بندقبلی}{prevgraf}
\eqcommand{نمایه‌دراینجا}{printindex}
\eqcommand{پردازش‌گزینه‌ها}{ProcessOptions}
\eqcommand{تامین}{protect}
\eqcommand{تهیه‌فرمان}{providecommand}
\eqcommand{آماده‌سازی‌طبقه}{ProvidesClass}
\eqcommand{آماده‌سازی‌پرونده}{ProvidesFile}
\eqcommand{آماده‌سازی‌سبک}{ProvidesPackage}
\eqcommand{ثبت‌الگو}{pushtabs}
\eqcommand{کواد}{quad}
\eqcommand{کوکواد}{qquad}
\eqcommand{@بازآیی‌خروج‌صفحه}{@outputpagerestore}
\eqcommand{رادیکال}{radical}
\eqcommand{پایین‌بی‌تنظیم}{raggedbottom}
\eqcommand{تنظیم‌ازراست}{raggedleft}
\eqcommand{تنظیم‌ازچپ}{raggedright}
\eqcommand{انتقال‌ببالا}{raise}
\eqcommand{بالابر}{raisebox}
\eqcommand{ترفیع‌اتیکت}{raisetag}
\eqcommand{زاویه‌ر}{rangle}
\eqcommand{سقف‌ر}{rceil}
\eqcommand{بخوان}{read}
\eqcommand{رجوع}{ref}
\eqcommand{کادرقرینه}{reflectbox}
\eqcommand{عنوان‌مراجع}{refname}
\eqcommand{گام‌شمارنده‌مرجع}{refstepcounter}
\eqcommand{راحت}{relax}
\eqcommand{رفع‌آخرین‌فاصله}{removelastskip}
\eqcommand{فرمان‌ازنو}{renewcommand}
\eqcommand{محیط‌ازنو}{renewenvironment}
\eqcommand{سبک‌موردنیاز}{RequirePackage}
\eqcommand{سبک‌موردنیازباگزینه}{RequirePackageWithOptions}
\eqcommand{کادرکشیده}{resizebox}
\eqcommand{درحاشیه‌معکوس}{reversemarginpar}
\eqcommand{کف‌ر}{rfloor}
\eqcommand{راست}{right}
\eqcommand{حاشیه‌راست}{rightmargin}
\eqcommand{علامت‌راست}{rightmark}
\eqcommand{کادرتاراست}{rightpageskip}
\eqcommand{فاصله‌انتهای‌سطر}{rightskip}
\eqcommand{رومن‌عادی}{rmdefault}
\eqcommand{فامیل‌رومن}{rmfamily}
\eqcommand{رومن‌بزرگ}{Roman}
\eqcommand{رومن‌کوچک}{roman}
\eqcommand{عددرومی}{romannumeral}
\eqcommand{کادرچرخان}{rotatebox}
\eqcommand{رنگ‌ردیف}{rowcolor}
\eqcommand{خط}{rule}
\eqcommand{@دومی‌ازدو}{@secondoftwo}
\eqcommand{@فضاها}{@spaces}
\eqcommand{همین‌صفحه}{samepage}
\eqcommand{مقدارکادر}{savebox}
\eqcommand{مقکادر}{sbox}
\eqcommand{کادراندازه}{scalebox}
\eqcommand{پیش‌فرض‌تمام‌بزرگ}{scdefault}
\eqcommand{شکل‌تمام‌بزرگ}{scshape}
\eqcommand{مقدارکلیدها}{setkeys}
\eqcommand{قلم‌توان}{scriptfont}
\eqcommand{قلم‌توان‌توان}{scriptscriptfont}
\eqcommand{سبک‌ته‌نوشت‌ته‌نوشت}{scriptscriptstyle}
\eqcommand{اندازه‌پانویس}{scriptsize}
\eqcommand{سبک‌ته‌نوشت}{scripstyle}
\eqcommand{پردازش‌گذری}{scrollmode}
\eqcommand{قسمت}{section}
\eqcommand{تعریف‌قسمت}{secdef}
\eqcommand{ببینید}{see}
\eqcommand{نیزببینید}{seealso}
\eqcommand{نام‌ببینید}{seename}
\eqcommand{قلم‌بردار}{selectfont}
\eqcommand{تنظیم‌بولی}{setboolean}
\eqcommand{درکادر}{setbox}
\eqcommand{مقدارشمارنده}{setcounter}
\eqcommand{مقداربعد}{setlength}
\eqcommand{تنظیم‌منها}{setminus}
\eqcommand{تعریف‌قلم‌علائم}{SetSymbolFont}
\eqcommand{تنظیم‌به‌عمق}{settodepth}
\eqcommand{تنظیم‌به‌ارتفاع}{settoheight}
\eqcommand{مقداربعدبه‌اندازه}{settowidth}
\eqcommand{کدضریب‌فاصله}{sfcode}
\eqcommand{پیش‌فرض‌س‌ف}{sfdefault}
\eqcommand{فامیل‌سن‌سریف}{sffamily}
\eqcommand{کادرسایه‌دار}{shadowbox}
\eqcommand{تیز}{sharp}
\eqcommand{بفرست}{shipout}
\eqcommand{پشته‌کوتاه}{shortstack}
\eqcommand{نمایش‌بده}{show}
\eqcommand{نمایش‌بده‌کادر}{showbox}
\eqcommand{میزان‌نمایش‌کادر}{showboxbreadth}
\eqcommand{عمق‌نمایش‌کادر}{showboxdepth}
\eqcommand{نمایش‌بده‌لیستها}{showlists}
\eqcommand{نمایش‌بده‌محتوای}{showthe}
\eqcommand{حالت‌ساده‌قلم}{simplefontmode}
\eqcommand{شانزد@}{sixt@@n}
\eqcommand{نویسه‌اریب}{skewchar}
\eqcommand{فاصله}{skip}
\eqcommand{فاصل@}{skip@}
\eqcommand{تعریف‌فاصله}{skipdef}
\eqcommand{خوابیده}{sl}
\eqcommand{پیش‌فرض‌خو}{sldefault}
\eqcommand{شکل‌خوابیده}{slshape}
\eqcommand{راحت‌چین}{sloppy}
\eqcommand{شمایل‌خو}{slshape}
\eqcommand{کوچک}{small}
\eqcommand{پرش‌کوتاه}{smallskip}
\eqcommand{مقدارپرش‌کوتاه}{smallskipamount}
\eqcommand{کوب}{smash}
\eqcommand{لبخند}{smile}
\eqcommand{کدمکان‌همانطور}{snglfntlocatecode}
\eqcommand{فضا}{space}
\eqcommand{ضریب‌فاصله}{spacefactor}
\eqcommand{فاصله‌کلمات}{spaceskip}
\eqcommand{پیک}{spadesuit}
\eqcommand{ادغام}{span}
\eqcommand{ویژه}{special}
\eqcommand{حداکثرعمق‌ستون}{splitmaxdepth}
\eqcommand{فاصله‌بالای‌ستون}{splittopskip}
\eqcommand{ستاره}{star}
\eqcommand{گام‌شمارنده}{stepcounter}
\eqcommand{کشی}{stretch}
\eqcommand{رشته}{string}
\eqcommand{شمع}{strut}
\eqcommand{کادرشمع}{strutbox}
\eqcommand{زیربند}{subitem}
\eqcommand{زیرپاراگراف}{subparagraph}
\eqcommand{زیرقسمت}{subsection}
\eqcommand{زیرپشته}{substack}
\eqcommand{زیرزیربند}{subsubitem}
\eqcommand{زیرزیرقسمت}{subsubsection}
\eqcommand{زیرمجموعه}{subset}
\eqcommand{زیرمجموعه‌مس}{subseteq}
\eqcommand{منتهای‌صفحه}{supereject}
\eqcommand{حذف‌مکان‌شناور}{suppressfloats}
\eqcommand{@موقت‌آ}{@tempa}
\eqcommand{@موقت‌ب}{@tempb}
\eqcommand{@موقت‌پ}{@tempc}
\eqcommand{@موقت‌ت}{@tempd}
\eqcommand{@موقت‌ث}{@tempe}
\eqcommand{@کادرقت‌آ}{@tempboxa}
\eqcommand{@شماقت‌آ}{@tempcnta}
\eqcommand{@شماقت‌ب}{@tempcntb}
\eqcommand{@بعدقت‌آ}{@tempdima}
\eqcommand{@بعدقت‌ب}{@tempdimb}
\eqcommand{@بعدقت‌پ}{@tempdimc}
\eqcommand{@فاقت‌آ}{@tempskipa}
\eqcommand{@فاقت‌ب}{@tempskipb}
\eqcommand{@سواقت‌آنادرست}{@tempswafalse}
\eqcommand{@سواقت‌آدرست}{@tempswatrue}
\eqcommand{@جزقت‌آ}{@temptokena}
\eqcommand{انگ‌زیرنویس}{@thefnmark}
\eqcommand{@سومی‌ازسه}{@thirdofthree}
\eqcommand{فاصله‌جاگذاری}{tabbingsep}
\eqcommand{فاصله‌بین‌ستونها}{tabcolsep}
\eqcommand{فهرست‌مطالب}{tableofcontents}
\eqcommand{عنوان‌جدول}{tablename}
\eqcommand{فاصله‌ستونها}{tabskip}
\eqcommand{ته‌سطرجدول}{tabularnewline}
\eqcommand{اتیکت}{tag}
\eqcommand{تلفن}{telephone}
\eqcommand{تک}{TeX}
\eqcommand{متن}{text}
\eqcommand{گلوله‌متنی}{textbullet}
\eqcommand{قلم‌متن}{textfont}
\eqcommand{ام‌دش‌متنی}{textemdash}
\eqcommand{ان‌دش‌متنی}{textendash}
\eqcommand{تعجب‌وارونه‌متنی}{textexclamdown}
\eqcommand{نقطه‌وسط‌متنی}{textperiodcentered}
\eqcommand{سوال‌وارونه‌متنی}{textquestiondown}
\eqcommand{نقل‌چپ‌متنی‌دولا}{textquotedblleft}
\eqcommand{نقل‌راست‌متنی‌دولا}{textquotedblright}
\eqcommand{نقل‌متنی‌چپ}{textquoteleft}
\eqcommand{نقل‌متنی‌راست}{textquoteright}
\eqcommand{فضای‌نمایان‌متنی‌}{textvisiblespace}
\eqcommand{شکافت‌پشت‌متنی}{textbackslash}
\eqcommand{میله‌متنی}{textbar}
\eqcommand{بزرگ‌تر‌متنی}{textgreater}
\eqcommand{کمتر‌متنی}{textless}
\eqcommand{متن‌سیاه}{textbf}
\eqcommand{مدور‌متنی}{textcircled}
\eqcommand{رنگ‌متن}{textcolor}
\eqcommand{نشان‌کلمه‌مرکب‌متن}{textcompwordmark}
\eqcommand{فاصله‌متن‌وشناور}{textfloatsep}
\eqcommand{نسبت‌متن}{textfraction}
\eqcommand{بلندای‌متن}{textheight}
\eqcommand{متن‌تورفته}{textindent}
\eqcommand{متن‌ایتالیک}{textit}
\eqcommand{متن‌نازک}{textmd}
\eqcommand{متن‌نرمال}{textnormal}
\eqcommand{ثبتی‌متنی}{textregistered}
\eqcommand{متن‌رومن}{textrm}
\eqcommand{متن‌تمام‌بزرگ}{textsc}
\eqcommand{متن‌سن‌سریف}{textsf}
\eqcommand{متن‌خوابیده}{textsl}
\eqcommand{سبک‌متنی}{textstyle}
\eqcommand{بالانویس‌متنی}{textsuperscript}
\eqcommand{علامت‌تجاری‌متنی}{texttrademark}
\eqcommand{متن‌تایپ}{texttt}
\eqcommand{متن‌ایستاده}{textup}
\eqcommand{پهنای‌متن}{textwidth}
\eqcommand{زیر‌نویس‌عنوان}{thanks}
\eqcommand{محتوای}{the}
\eqcommand{این‌زیرنویس}{thempfn}
\eqcommand{خط‌هاضخیم}{thicklines}
\eqcommand{فاصله‌زیادریاضی}{thickmuskip}
\eqcommand{فاصله‌کم‌ریاضی}{thinmuskip}
\eqcommand{فضاضخیم}{thickspace}
\eqcommand{خط‌هانازک}{thinlines}
\eqcommand{دوری‌کوچک}{thinspace}
\eqcommand{این‌صفحه‌تجملی}{thisfancypage}
\eqcommand{سبک‌این‌صفحه}{thispagestyle}
\eqcommand{سه@}{thr@@}
\eqcommand{مد}{tilde}
\eqcommand{ظریف}{tiny}
\eqcommand{زمان}{time}
\eqcommand{ضرب‌در}{times}
\eqcommand{عنوان}{title}
\eqcommand{به}{to}
\eqcommand{امروز}{today}
\eqcommand{جزء}{toks}
\eqcommand{تعریف‌جزء}{toksdef}
\eqcommand{حدبدنمایی}{tolerance}
\eqcommand{بالا}{top}
\eqcommand{خط‌بالای‌شناور}{topfigrule}
\eqcommand{نسبت‌بالا}{topfraction}
\eqcommand{حاشیه‌بالا}{topmargin}
\eqcommand{علامت‌بالا}{topmark}
\eqcommand{کادرتابالا}{toppageskip}
\eqcommand{فاصله‌بالای‌لیست}{topsep}
\eqcommand{فاصله‌بالا}{topskip}
\eqcommand{بلندای‌کل}{totalheight}
\eqcommand{ردگیری‌کل}{tracingall}
\eqcommand{ردگیری‌فرامین}{tracingcommands}
\eqcommand{ردگیری‌حروف}{tracinglostchars}
\eqcommand{ردگیری‌ماکروها}{tracingmacros}
\eqcommand{ردگیری‌نمایشی}{tracingonline}
\eqcommand{ردگیری‌صفحه‌بندی}{tracingoutput}
\eqcommand{ردگیری‌صفحات}{tracingpages}
\eqcommand{ردگیری‌بندها}{tracingparagraphs}
\eqcommand{ردگیری‌بازگردانی}{tracingrestores}
\eqcommand{ردگیری‌آمارها}{tracingstats}
\eqcommand{مثلث}{triangle}
\eqcommand{پیش‌فرض‌تایپ}{ttdefault}
\eqcommand{فامیل‌تایپ}{ttfamily}
\eqcommand{دو@}{tw@}
\eqcommand{دوستون}{twocolumn}
\eqcommand{درنویس}{typein}
\eqcommand{برنویس}{typeout}
\eqcommand{کدبزرگ}{uccode}
\eqcommand{تیره‌بندی‌بزرگ}{uchyph}
\eqcommand{زیرخط}{underline}
\eqcommand{بی‌کادرا}{unhbox}
\eqcommand{بی‌کپی‌ا}{unhcopy}
\eqcommand{واحدطول}{unitlength}
\eqcommand{برگشت‌دوری}{unkern}
\eqcommand{برگشت‌جریمه}{unpenalty}
\eqcommand{برگشت‌فاصله}{unskip}
\eqcommand{بی‌کادرو}{unvbox}
\eqcommand{بی‌کپی‌و}{unvcopy}
\eqcommand{پیش‌فرض‌ایستاده}{updefault}
\eqcommand{شکل‌ایستاده}{upshape}
\eqcommand{ازکادر}{usebox}
\eqcommand{باشمارشگر}{usecounter}
\eqcommand{گزینش‌قلم}{usefont}
\eqcommand{سبک‌لازم}{usepackage}
\eqcommand{@فضاهای‌فعال}{@vobeyspaces}
\eqcommand{@تهی}{@void}
\eqcommand{تنظیم‌و}{vadjust}
\eqcommand{ردیف‌و}{valign}
\eqcommand{محتوای‌شمارنده}{value}
\eqcommand{بدنمایی‌و}{vbadness}
\eqcommand{کادرو}{vbox}
\eqcommand{کادروسط}{vcenter}
\eqcommand{همانطور}{verb}
\eqcommand{پرو}{vfil}
\eqcommand{پررو}{vfill}
\eqcommand{رفع‌پرو}{vfilneg}
\eqcommand{پرزعمودی}{vfuzz}
\eqcommand{نمایان}{visible}
\eqcommand{خط‌عمود}{vline}
\eqcommand{حاشیه‌و}{voffset}
\eqcommand{ک@درتهی}{voidb@x}
\eqcommand{ارجاع‌صفحه‌ع}{vpageref}
\eqcommand{فاصله‌وگرد}{vrboxsep}
\eqcommand{ارجاع‌ع}{vref}
\eqcommand{خط‌و}{vrule}
\eqcommand{طول‌صفحه}{vsize}
\eqcommand{فاصله‌و}{vskip}
\eqcommand{فضای‌و}{vspace}
\eqcommand{شکست‌و}{vsplit}
\eqcommand{هردوو}{vss}
\eqcommand{کادرگود}{vtop}
\eqcommand{عرض}{wd}
\eqcommand{مادام‌بکن}{whiledo}
\eqcommand{کلاه‌پهن}{widehat}
\eqcommand{مدپهن}{widetilde}
\eqcommand{جریمه‌ته‌بند}{widowpenalty}
\eqcommand{پهنا}{width}
\eqcommand{درکارنامه}{wlog}
\eqcommand{بنویس}{write}
\eqcommand{@فضای‌لاتین}{@xobeysp}
\eqcommand{سی@دو}{@xxxii}
\eqcommand{ترگع}{xdef}
\eqcommand{نشانگرگسترشی}{xleaders}
\eqcommand{فاصله‌اضافی‌کلمات}{xspaceskip}
\eqcommand{سال}{year}
\eqcommand{@فر}{z@}
\eqcommand{@فرفاصله}{z@skip}
%    \end{macrocode}
% \iffalse
%</latex-localize-commands-xetex-xepersian.def>
%<*color-localize-xetex-xepersian.def>
%\fi
% \section{File \texttt{color-localize-xetex-xepersian.def}}
%    \begin{macrocode}
\آماده‌سازی‌پرونده{color-localize-xetex-xepersian.def}[2011/03/01 v0.1 localizing color package for XeTeX engine]
\تعریف‌رنگ{سیاه}{rgb}{0,0,0}
\تعریف‌رنگ{سفید}{rgb}{1,1,1}
\تعریف‌رنگ{قرمز}{rgb}{1,0,0}
\تعریف‌رنگ{سبز}{rgb}{0,1,0}
\تعریف‌رنگ{آبی}{rgb}{0,0,1}
\تعریف‌رنگ{آسمانی}{cmyk}{1,0,0,0}
\تعریف‌رنگ{بنفش}{cmyk}{0,1,0,0}
\تعریف‌رنگ{زرد}{cmyk}{0,0,1,0}
%    \end{macrocode}
% \iffalse
%</color-localize-xetex-xepersian.def>
%<*xepersian-localize-commands-xetex-xepersian.def>
%\fi
% \section{File \texttt{xepersian-localize-commands-xetex-xepersian.def}}
%    \begin{macrocode}
\ProvidesFile{xepersian-localize-commands-xetex-xepersian.def}[2012/07/25 v0.2 Persian localization of XePersian commands for XeTeX engine]
\eqcommand{خط‌زیرنویس‌خودکار}{autofootnoterule}
\eqcommand{اعدادفرمولهاخودکار}{AutoMathDigits}
\eqcommand{اعدادفرمولهالاتین}{DefaultMathDigits}
\eqcommand{معادل@کلید}{keyval@eq@alias@key}
\eqcommand{تعریف‌قلم‌لاتین}{deflatinfont}
\eqcommand{تعریف‌قلم‌پارسی}{defpersianfont}
\eqcommand{کادراچپ}{hboxL}
\eqcommand{کادراست}{hboxR}
\eqcommand{مرجع‌لاتین}{Latincite}
\eqcommand{قلم‌لاتین}{latinfont}
\eqcommand{امروزلاتین}{latintoday}
\eqcommand{خط‌زیرنویس‌چپ}{leftfootnoterule}
\eqcommand{متن‌لاتین}{lr}
\eqcommand{چپ‌براست}{LRE}
\eqcommand{دوستونی‌چپ}{LTRdblcol}
\eqcommand{پانویس}{LTRfootnote}
\eqcommand{متن‌پانویس}{LTRfootnotetext}
\eqcommand{پانویس‌عنوان}{LTRthanks}
\eqcommand{روزپارسی}{persianday}
\eqcommand{قلم‌پارسی}{persianfont}
\eqcommand{اعدادفرمولهاپارسی}{PersianMathDigits}
\eqcommand{ماه‌پارسی}{persianmonth}
\eqcommand{سال‌پارسی}{persianyear}
\eqcommand{علامت‌چپ‌نقل‌قول‌پارسی}{plq}
\eqcommand{علامت‌راست‌نقل‌قول‌پارسی}{prq}
\eqcommand{خط‌زیرنویس‌راست}{rightfootnoterule}
\eqcommand{متن‌پارسی}{rl}
\eqcommand{راست‌بچپ}{RLE}
\eqcommand{دوستونی‌راست}{RTLdblcol}
\eqcommand{پانوشت}{RTLfootnote}
\eqcommand{متن‌پانوشت}{RTLfootnotetext}
\eqcommand{پانوشت‌عنوان}{RTLthanks}
\eqcommand{@علامت‌بین}{@SepMark}
\eqcommand{علامت‌بین}{SepMark}
\eqcommand{بگذارمرجوعات‌عادی}{setdefaultbibitems}
\eqcommand{بگذاردرحاشیه‌عادی}{setdefaultmarginpar}
\eqcommand{گزینش‌قلم‌اعدادفرمولها}{setmathdigitfont}
\eqcommand{بگذارزیرنویس‌چپ}{setfootnoteLR}
\eqcommand{بگذارزیرنویس‌راست}{setfootnoteRL}
\eqcommand{گزینش‌قلم‌لاتین‌متن}{setlatintextfont}
\eqcommand{بگذارمتن‌چپ}{setLTR}
\eqcommand{بگذارمرجوعات‌چپ}{setLTRbibitems}
\eqcommand{بگذاردرحاشیه‌چپ}{setLTRmarginpar}
\eqcommand{بگذارمتن‌راست}{setRTL}
\eqcommand{بگذارمرجوعات‌راست}{setRTLbibitems}
\eqcommand{بگذاردرحاشیه‌راست}{setRTLmarginpar}
\eqcommand{گزینش‌قلم‌متن}{settextfont}
\eqcommand{خط‌زیرنویس‌پهنای‌متن}{textwidthfootnoterule}
\eqcommand{فهرست‌مطالب‌دوستونی}{twocolumnstableofcontents}
\eqcommand{نگذارزیرنویس‌راست}{unsetfootnoteRL}
\eqcommand{نگذارمتن‌چپ}{unsetLTR}
\eqcommand{نگذارمتن‌راست}{unsetRTL}
\eqcommand{کادروازچپ}{vboxL}
\eqcommand{کادروازراست}{vboxR}
\eqcommand{زی‌لاتک}{XeLaTeX}
\eqcommand{زی‌پرشین}{XePersian}
\eqcommand{گونه‌زی‌پرشین}{xepersianversion}
\eqcommand{تاریخ‌گونه‌زی‌پرشین}{xepersiandate}
\eqcommand{زی‌تک}{XeTeX}
%    \end{macrocode}
% \iffalse
%</xepersian-localize-commands-xetex-xepersian.def>
%<*enumerate-xetex-xepersian.def>
%\fi
% \section{File \texttt{enumerate-xetex-xepersian.def}}
%    \begin{macrocode}
\ProvidesFile{enumerate-xetex-xepersian.def}[2010/07/25 v0.1 xepersian adaptations for enumerate package for XeTeX engine]
\def\@enloop@{%
  \ifx ا\@entemp         \def\@tempa{\@enLabel\harfi  }\else
  \ifx ی\@entemp         \def\@tempa{\@enLabel\adadi  }\else
  \ifx ت\@entemp         \def\@tempa{\@enLabel\tartibi  }\else
  \ifx A\@entemp         \def\@tempa{\@enLabel\Alph  }\else
  \ifx a\@entemp         \def\@tempa{\@enLabel\alph  }\else
  \ifx i\@entemp         \def\@tempa{\@enLabel\roman }\else
  \ifx I\@entemp         \def\@tempa{\@enLabel\Roman }\else
  \ifx 1\@entemp         \def\@tempa{\@enLabel\arabic}\else
  \ifx \@sptoken\@entemp \let\@tempa\@enSpace         \else
  \ifx \bgroup\@entemp   \let\@tempa\@enGroup         \else
  \ifx \@enum@\@entemp   \let\@tempa\@gobble          \else
                         \let\@tempa\@enOther
                         \@enhook
             \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
  \@tempa}
%    \end{macrocode}
% \iffalse
%</enumerate-xetex-xepersian.def>
%<*enumitem-xetex-xepersian.def>
%\fi
% \section{File \texttt{enumitem-xetex-xepersian.def}}
%    \begin{macrocode}
\ProvidesFile{enumitem-xetex-xepersian.def}[2017/09/06 v0.1 xepersian adaptations for enumitem package for XeTeX engine]
\AddEnumerateCounter*\tartibi\@tartibi{999999999}
\AddEnumerateCounter*\adadi\@adadi{999999999}
\AddEnumerateCounter\harfi\@harfi{گ}
\AddEnumerateCounter\Abjad\@Abjad{ک}
\AddEnumerateCounter\abjad\@abjad{غثکب}
\SetEnumerateShortLabel{اول}{\tartibi*}
\SetEnumerateShortLabel{یک}{\adadi*}
\SetEnumerateShortLabel{آ}{\harfi*}
\SetEnumerateShortLabel{ب}{\Abjad*}
\SetEnumerateShortLabel{ج}{\abjad*}
%    \end{macrocode}
% \iffalse
%</enumitem-xetex-xepersian.def>
%<*latex-localize-environments-xetex-xepersian.def>
%\fi
% \section{File \texttt{latex-localize-environments-xetex-xepersian.def}}
%    \begin{macrocode}
\ProvidesFile{latex-localize-environments-xetex-xepersian.def}[2022/06/06 v0.3 Persian localization of LaTeX2e environments for XeTeX engine]
\eqenvironment{چکیده}{abstract}
\eqenvironment{پیوست}{appendix}
\eqenvironment{آرایه}{array}
\eqenvironment{وسط‌چین}{center}
\eqenvironment{توضیح}{description}
\eqenvironment{ریاضی‌نمایشی}{displaymath}
\EqEnvironment{نوشتار}{document}
\eqenvironment{شمارش}{enumerate}
\eqenvironment{شکل}{figure}
\eqenvironment{شکل*}{figure*}
\eqenvironment{محتوای‌پرونده}{filecontents}
\eqenvironment{محتوای‌پرونده*}{filecontents*}
\eqenvironment{چپ‌چین}{flushleft}
\eqenvironment{راست‌چین}{flushright}
\eqenvironment{فقرات}{itemize}
\eqenvironment{نامه}{letter}
\eqenvironment{لیست}{list}
\eqenvironment{جدول‌دراز}{longtable}
\eqenvironment{کادررچ}{lrbox}
\eqenvironment{ریاضی}{math}
\eqenvironment{ماتریس}{matrix}
\eqenvironment{صفحه‌کوچک}{minipage}
\eqenvironment{چندخطی}{multline}
\eqenvironment{یادداشت}{note}
\eqenvironment{انباشتن}{overlay}
\eqenvironment{تصویر}{picture}
\eqenvironment{اقتباس}{quotation}
\eqenvironment{نقل}{quote}
\eqenvironment{اسلاید}{slide}
\eqenvironment{پارنامرتب}{sloppypar}
\eqenvironment{شکافتن}{split}
\eqenvironment{زیرآرایه}{subarray}
\eqenvironment{جاگذاری}{tabbing}
\eqenvironment{لوح}{table}
\eqenvironment{لوح*}{table*}
\eqenvironment{جدول}{tabular}
\eqenvironment{جدول*}{tabular*}
\eqenvironment{مراجع}{thebibliography}
\eqenvironment{محتوای‌نمایه}{theindex}
\eqenvironment{صفحه‌عنوان}{titlepage}
\eqenvironment{لیست‌بدوی}{trivlist}
\eqenvironment{شعر}{verse}
%    \end{macrocode}
% \iffalse
%</latex-localize-environments-xetex-xepersian.def>
%<*xepersian-localize-environments-xetex-xepersian.def>
%\fi
% \section{File \texttt{xepersian-localize-environments-xetex-xepersian.def}}
%    \begin{macrocode}
\ProvidesFile{xepersian-localize-environments-xetex-xepersian.def}[2010/07/25 v0.1 Persian localization of XePersian and bidi environments for XeTeX engine]
\eqenvironment{لاتین}{latin}
\eqenvironment{متن‌چپ}{LTR}
\eqenvironment{دسته‌بندی‌چپ}{LTRitems}
\eqenvironment{شعرنو}{modernpoem}
\eqenvironment{شعرنو*}{modernpoem*}
\eqenvironment{پارسی}{persian}
\eqenvironment{متن‌راست}{RTL}
\eqenvironment{دسته‌بندی‌راست}{RTLitems}
\eqenvironment{شعرسنتی}{traditionalpoem}
\eqenvironment{شعرسنتی*}{traditionalpoem*}
%    \end{macrocode}
% \iffalse
%</xepersian-localize-environments-xetex-xepersian.def>
%<*extarticle-xetex-xepersian.def>
%\fi
% \section{File \texttt{extarticle-xetex-xepersian.def}}
%    \begin{macrocode}
\ProvidesFile{extarticle-xetex-xepersian.def}[2010/07/25 v0.1 xepersian adaptations for extarticle class for XeTeX engine]
\renewcommand\thepart         {\@tartibi\c@part}
\renewcommand\appendix{\par
  \setcounter{section}{0}%
  \setcounter{subsection}{0}%
  \gdef\thesection{\@harfi\c@section}}
%    \end{macrocode}
% \iffalse
%</extarticle-xetex-xepersian.def>
%<*extbook-xetex-xepersian.def>
%\fi
% \section{File \texttt{extbook-xetex-xepersian.def}}
%    \begin{macrocode}
\ProvidesFile{extbook-xetex-xepersian.def}[2010/07/25 v0.1 xepersian adaptations for extbook class for XeTeX engine]
\renewcommand\frontmatter{%
    \cleardoublepage
  \@mainmatterfalse
  \pagenumbering{harfi}}
\renewcommand \thepart {\@tartibi\c@part}
\renewcommand\appendix{\par
  \setcounter{chapter}{0}%
  \setcounter{section}{0}%
  \gdef\@chapapp{\appendixname}%
  \gdef\thechapter{\@harfi\c@chapter}
}%end appendix
%    \end{macrocode}
% \iffalse
%</extbook-xetex-xepersian.def>
%<*extrafootnotefeatures-xetex-bidi-xetex-xepersian.def>
%\fi
% \section{File \texttt{extrafootnotefeatures-xetex-bidi-xetex-xepersian.def}}
%    \begin{macrocode}
\ProvidesFile{extrafootnotefeatures-xetex-bidi-xetex-xepersian.def}[2012/01/01 v0.2 xepersian adaptations for extrafootnotefeatures option for XeTeX engine]
\renewcommand{\foottextfont}{\footnotesize\if@RTL@footnote\else\resetlatinfont\fi}
\renewcommand{\LTRfoottextfont}{\footnotesize\resetlatinfont}
\renewcommand{\RTLfoottextfont}{\footnotesize\setpersianfont}
%    \end{macrocode}
% \iffalse
%</extrafootnotefeatures-xetex-bidi-xetex-xepersian.def>
%<*extreport-xetex-xepersian.def>
%\fi
% \section{File \texttt{extreport-xetex-xepersian.def}}
%    \begin{macrocode}
\ProvidesFile{extreport-xetex-xepersian.def}[2010/07/25 v0.1 xepersian adaptations for extreport class for XeTeX engine]
\renewcommand\thepart         {\@tartibi\c@part}
\renewcommand\appendix{\par
  \setcounter{chapter}{0}%
  \setcounter{section}{0}%
  \gdef\@chapapp{\appendixname}%
  \gdef\thechapter{\@harfi\c@chapter}}
%    \end{macrocode}
% \iffalse
%</extreport-xetex-xepersian.def>
%<*fancyref-xetex-xepersian.def>
%\fi
% \section{File \texttt{fancyref-xetex-xepersian.def}}
%    \begin{macrocode}
\ProvidesFile{fancyref-xetex-xepersian.def}[2018/09/29 v0.1 xepersian adaptations for fancyref package for XeTeX engine]
\renewcommand*{\Frefchapname}{\chaptername}
\renewcommand*{\Frefenumname}{%
  \if@RTL
فقره%
  \else
    Item%
  \fi
}
\renewcommand*{\Frefeqname}{%
  \if@RTL
معادله%
  \else
    Equation%
  \fi
}
\renewcommand*{\Freffigname}{\figurename}
\renewcommand*{\Freffnname}{%
  \if@RTL
زیرنویس%
  \else
    Footnote%
  \fi
}
\renewcommand*{\Frefonname}{%
  \if@RTL
در%
  \else
    On%
  \fi
}
\renewcommand*{\Frefpgname}{\pagename}
\renewcommand*{\Frefsecname}{%
  \if@RTL
قسمت%
  \else
    Section%
  \fi
}
\renewcommand*{\Frefseename}{%
  \if@RTL
ببینید%
  \else
    See%
  \fi
}
\renewcommand*{\Freftabname}{\tablename}
\renewcommand*{\Freffigshortname}{%
  \if@RTL
    \Freffigname
  \else
    Fig.%
  \fi
}
\renewcommand*{\Frefpgshortname}{%
  \if@RTL
    \Frefpgname
  \else
    P.%
  \fi
}
\renewcommand*{\Freftabshortname}{%
  \if@RTL
    \tablename
  \else
    Tab.%
  \fi
}
\renewcommand*{\frefchapname}{%
  \if@RTL
    \Frefchapname
  \else
    \MakeLowercase{\Frefchapname}%
\fi
}
\renewcommand*{\frefenumname}{%
  \if@RTL
    \Frefenumname
  \else
    \MakeLowercase{\Frefenumname}%
  \fi
}
\renewcommand*{\frefeqname}{%
  \if@RTL
    \Frefeqname
  \else
    \MakeLowercase{\Frefeqname}%
  \fi
}
\renewcommand*{\freffigname}{%
  \if@RTL
    \Freffigname
  \else
    \MakeLowercase{\Freffigname}%
  \fi
}
\renewcommand*{\freffnname}{%
  \if@RTL
    \Freffnname
  \else
    \MakeLowercase{\Freffnname}%
  \fi
}
\renewcommand*{\frefonname}{%
  \if@RTL
    \Frefonname
  \else
    \MakeLowercase{\Frefonname}%
  \fi
}
\renewcommand*{\frefpgname}{%
  \if@RTL
    \Frefpgname
  \else
    \MakeLowercase{\Frefpgname}%
  \fi
} 
\renewcommand*{\frefsecname}{%
  \if@RTL
    \Frefsecname
  \else
    \MakeLowercase{\Frefsecname}%
  \fi
}
\renewcommand*{\frefseename}{%
  \if@RTL
    \Frefseename
  \else
    \MakeLowercase{\Frefseename}%
  \fi
}
\renewcommand*{\freftabname}{%
  \if@RTL
    \Freftabname
  \else
    \MakeLowercase{\Freftabname}%
  \fi
}
\renewcommand*{\freffigshortname}{%
  \if@RTL
    \Freffigshortname
  \else
    \MakeLowercase{\Freffigshortname}%
  \fi
}
\renewcommand*{\frefpgshortname}{%
  \if@RTL
    \Frefpgshortname
  \else
    \MakeLowercase{\Frefpgshortname}%
  \fi
}
\renewcommand*{\freftabshortname}{%
  \if@RTL
    \Freftabshortname
  \else
    \MakeLowercase{\Freftabshortname}%
  \fi
}
%    \end{macrocode}
% \iffalse
%</fancyref-xetex-xepersian.def>
%<*footnote-xetex-bidi-xetex-xepersian.def>
%\fi
% \section{File \texttt{footnote-xetex-bidi-xetex-xepersian.def}}
%    \begin{macrocode}
\ProvidesFile{footnote-xetex-bidi-xetex-xepersian.def}[2017/08/09 v0.6 xepersian adaptations for footnotes for XeTeX engine]

\renewcommand*{\bidi@@footnotetext@font}{\footnotesize\if@RTL@footnote\else\resetlatinfont\fi} 

\renewcommand*{\bidi@@LTRfootnotetext@font}{\footnotesize\resetlatinfont} 

\renewcommand*{\bidi@@RTLfootnotetext@font}{\footnotesize\setpersianfont}  
    
%    \end{macrocode}
% \iffalse
%</footnote-xetex-bidi-xetex-xepersian.def>
%<*framed-xetex-xepersian.def>
%\fi
% \section{File \texttt{framed-xetex-xepersian.def}}
%    \begin{macrocode}
\ProvidesFile{framed-xetex-xepersian.def}[2012/06/05 v0.1 xepersian adaptations for framed package for XeTeX engine]
\renewenvironment{titled-frame}[1]{%
  \def\FrameCommand{\fboxsep8pt\fboxrule2pt
     \TitleBarFrame{\textbf{#1}}}%
  \def\FirstFrameCommand{\fboxsep8pt\fboxrule2pt
     \TitleBarFrame[$\if@RTL\blacktriangleleft\else\blacktriangleright\fi$]{\textbf{#1}}}%
  \def\MidFrameCommand{\fboxsep8pt\fboxrule2pt
     \TitleBarFrame[$\if@RTL\blacktriangleleft\else\blacktriangleright\fi$]{\textbf{#1\ (\if@RTL ادامه\else cont\fi)}}}%
  \def\LastFrameCommand{\fboxsep8pt\fboxrule2pt
     \TitleBarFrame{\textbf{#1\ (\if@RTL ادامه\else cont\fi)}}}%
  \MakeFramed{\advance\hsize-20pt \FrameRestore}}%
%  note: 8 + 2 + 8 + 2 = 20.  Don't use \width because the frame title
%  could interfere with the width measurement.
 {\endMakeFramed}
%    \end{macrocode}
% \iffalse
%</framed-xetex-xepersian.def>
%<*glossaries-xetex-xepersian.def>
%\fi
% \section{File \texttt{glossaries-xetex-xepersian.def}}
%    \begin{macrocode}
\ProvidesFile{glossaries-xetex-xepersian.def}[2014/09/04 v0.4 xepersian adaptations for glossaries package for XeTeX engine]
\glsaddprotectedpagefmt{@harfi}
\glsaddprotectedpagefmt{@tartibi}
\glsaddprotectedpagefmt{@adadi}
%    \end{macrocode}
% \iffalse
%</glossaries-xetex-xepersian.def>
%<*hyperref-xetex-xepersian.def>
%\fi
% \section{File \texttt{hyperref-xetex-xepersian.def}}
%    \begin{macrocode}
\ProvidesFile{hyperref-xetex-xepersian.def}[2022/10/30 v0.8 xepersian adaptations for hyperref package for XeTeX engine]
  \def\equationautorefname{\if@RTL معادله\else Equation\fi}%
  \def\footnoteautorefname{\if@RTL زیرنویس\else footnote\fi}%
  \def\itemautorefname{\if@RTL فقره\else item\fi}%
  \def\figureautorefname{\if@RTL شکل\else Figure\fi}%
  \def\tableautorefname{\if@RTL جدول\else Table\fi}%
  \def\partautorefname{\if@RTL بخش\else Part\fi}%
  \def\appendixautorefname{\if@RTL ضمیمه\else Appendix\fi}%
  \def\chapterautorefname{\if@RTL فصل\else chapter\fi}%
  \def\sectionautorefname{\if@RTL قسمت\else section\fi}%
  \def\subsectionautorefname{\if@RTL زیرقسمت\else subsection\fi}%
  \def\subsubsectionautorefname{\if@RTL زیرزیرقسمت\else subsubsection\fi}%
  \def\paragraphautorefname{\if@RTL پاراگراف\else paragraph\fi}%
  \def\subparagraphautorefname{\if@RTL زیرپاراگراف\else subparagraph\fi}%
  \def\FancyVerbLineautorefname{\if@RTL سطر\else line\fi}%
  \def\theoremautorefname{\if@RTL قضیه\else Theorem\fi}%
  \def\pageautorefname{\if@RTL صفحه\else page\fi}%
\ifHy@implicit
  \AtBeginDocument{%
    \let\HyOrg@appendix\appendix
      \def\appendix{%
        \ltx@IfUndefined{chapter}%
          {\gdef\theHsection{\Alph{section}}}%
          {\gdef\theHchapter{\Alph{chapter}}}%
        \xdef\Hy@chapapp{\Hy@appendixstring}%
        \HyOrg@appendix
      }%
    }%
\fi
\pdfstringdefDisableCommands{%
  \let\lr\@firstofone
  \let\rl\@firstofone
  \def\XePersian{XePersian}%
}
\ltx@IfUndefined{@resets@pp}{%
}{%
  \let\HyOrg@resets@pp\@resets@pp
  \def\@resets@pp{%
    \ltx@IfUndefined{chapter}{%
      \gdef\theHsection{\Hy@AlphNoErr{section}}%
    }{%
      \gdef\theHchapter{\Hy@AlphNoErr{chapter}}%
    }%
    \xdef\Hy@chapapp{\Hy@appendixstring}%
    \HyOrg@resets@pp
  }%
}
%    \end{macrocode}
% \iffalse
%</hyperref-xetex-xepersian.def>
%<*imsproc-xetex-xepersian.def>
%\fi
% \section{File \texttt{imsproc-xetex-xepersian.def}}
%    \begin{macrocode}
\ProvidesFile{imsproc-xetex-xepersian.def}[2017/06/09 v0.5 xepersian adaptations for imsproc class for XeTeX engine]

\renewcommand \thepart {\@tartibi\c@part}
\def\appendix{\par\c@section\z@ \c@subsection\z@
   \let\sectionname\appendixname
   \def\thesection{\@harfi\c@section}}

%    \end{macrocode}
% \iffalse
%</imsproc-xetex-xepersian.def>
%<*kashida-xetex-xepersian.def>
%\fi
% \section{File \texttt{kashida-xetex-xepersian.def}}
%    \begin{macrocode}
\ProvidesFile{kashida-xetex-xepersian.def}[2024/12/20 v1.0 implementation of Kashida for XeTeX engine]
\chardef\xepersian@zwj="200D % zero-width joiner
\chardef\xepersian@kashidachar="0640 % kashida

\chardef\xepersian@dualjoiner=10 % dual-joiner class
\chardef\xepersian@lam=11 % lam
\chardef\xepersian@rightjoiner=12 % right-joiner
\chardef\xepersian@alef=13 % alef
\chardef\xepersian@vowel=4096 % vowel or other combining mark (to be ignored)
\newif\if@Kashida@on
\def\xepersian@kashida{%
  \if@Kashida@on
    \xepersian@zwj
    \nobreak
    \leaders\hrule height \XeTeXglyphbounds\tw@
    \the\XeTeXcharglyph\xepersian@kashidachar  
    depth \XeTeXglyphbounds\f@ur
    \the\XeTeXcharglyph\xepersian@kashidachar 
    \hskip0pt plus 0.5em
    \xepersian@zwj
  \fi
}

\def\setclass#1#2{\def\theclass{#1}\def\charlist{#2}%
  \expandafter\dosetclass\charlist,\end}
\def\dosetclass#1,#2\end{%
  \def\test{#1}\def\charlist{#2}%
  \ifx\test\empty\let\next\finishsetclass
  \else \XeTeXcharclass "\test = \theclass
     \let\next\dosetclass \fi
  \expandafter\next\charlist,,\end}
\def\finishsetclass#1,,\end{}

\setclass \xepersian@alef {0622,0623,0625,0627}
\setclass \xepersian@rightjoiner {0624,0629,062F,0630,0631,0632,0648,0698}
\setclass \xepersian@dualjoiner {0626,0628,062A,062B,062C,062D,062E}
\setclass \xepersian@dualjoiner {0633,0634,0635,0636,0637,0638,0639,063A}
\setclass \xepersian@dualjoiner {0640,0641,0642,0643,0645,0646,0647,0649,064A}
\setclass \xepersian@dualjoiner {067E,0686,06A9,06AF,06CC}
\setclass \xepersian@lam {0644}
\setclass \xepersian@vowel {064B,064C,064D,064E,064F,0650,0651,0652}

\XeTeXinterchartoks \xepersian@dualjoiner \xepersian@dualjoiner = {\xepersian@kashida}
\XeTeXinterchartoks \xepersian@lam \xepersian@dualjoiner = {\xepersian@kashida}
\XeTeXinterchartoks \xepersian@dualjoiner \xepersian@lam = {\xepersian@kashida}
\XeTeXinterchartoks \xepersian@lam \xepersian@lam = {\xepersian@kashida}
\XeTeXinterchartoks \xepersian@dualjoiner \xepersian@rightjoiner = {\xepersian@kashida}
\XeTeXinterchartoks \xepersian@dualjoiner \xepersian@alef = {\xepersian@kashida}
\XeTeXinterchartoks \xepersian@lam \xepersian@rightjoiner = {\xepersian@kashida}
\XeTeXinterchartoks \xepersian@lam \xepersian@alef = {}

\newcommand{\KashidaOn}{\@Kashida@ontrue}
\newcommand{\KashidaOff}{\@Kashida@onfalse}

\KashidaOn
%    \end{macrocode}
% \iffalse
%</kashida-xetex-xepersian.def>
%<*listings-xetex-xepersian.def>
%\fi
% \section{File \texttt{listings-xetex-xepersian.def}}
%    \begin{macrocode}
\ProvidesFile{listings-xetex-xepersian.def}[2014/07/17 v0.3 xepersian adaptations for listings package for XeTeX engine]
\def\lstlistingname{\if@RTL برنامهٔ\else Listing\fi}
\def\lstlistlistingname{\if@RTL فهرست برنامه‌ها\else Listings\fi}
%    \end{macrocode}
% \iffalse
%</listings-xetex-xepersian.def>
%<*localize-xetex-xepersian.def>
%\fi
% \section{File \texttt{localize-xetex-xepersian.def}}
%    \begin{macrocode}
\ProvidesFile{localize-xetex-xepersian.def}[2025/01/06 v0.2e Persian localization of LaTeX2e for XeTeX engine]
\newcommand{\makezwnjletter}{\catcode`‌=11\relax}
\makezwnjletter
\newcommand*{\eqcommand}[2]{\if@bidi@csprimitive{#2}{\bidi@csletcs{#1}{#2}}{\bidi@csdefcs{#1}{#2}}}
\newcommand*{\eqenvironment}[2]{\newenvironment{#1}{%
\if@bidi@csdef{verbatim@}{\let\verbatim@\xepersian@localize@verbatim@}{}\csname#2\endcsname}{\csname end#2\endcsname}}
\newcommand*{\EqEnvironment}[2]{%
  \expandafter\let\csname #1\expandafter\endcsname\csname #2\endcsname
  \expandafter\let\csname end#1\expandafter\endcsname\csname end#2\endcsname
}
\newcommand*\keyval@eq@alias@key[4][KV]{%
  \bidi@csletcs{#1@#2@#3}{#1@#2@#4}%
  \bidi@csletcs{#1@#2@#3@default}{#1@#2@#4@default}%
}
\input{latex-localize-commands-xetex-xepersian.def}
\input{xepersian-localize-commands-xetex-xepersian.def}
\input{latex-localize-environments-xetex-xepersian.def}
\input{xepersian-localize-environments-xetex-xepersian.def}
\input{latex-localize-messages-xetex-xepersian.def}
\input{latex-localize-misc-xetex-xepersian.def}
\input{packages-localize-xetex-xepersian.def}
\aliasfontfeature{ExternalLocation}{مکان‌خارجی}
\aliasfontfeature{Path}{مسیر}
\aliasfontfeature{Renderer}{تحویل‌دهنده}
\aliasfontfeature{BoldFont}{قلم‌سیاه}
\aliasfontfeature{Language}{زبان}
\aliasfontfeature{Script}{خط}
\aliasfontfeature{UprightFont}{قلم‌عمودی}
\aliasfontfeature{ItalicFont}{قلم‌ایتالیک}
\aliasfontfeature{BoldItalicFont}{قلم‌ایتالیک‌سیاه}
\aliasfontfeature{SlantedFont}{قلم‌خوابیده}
\aliasfontfeature{BoldSlantedFont}{قلم‌خوابیده‌سیاه}
\aliasfontfeature{SmallCapsFont}{قلم‌کلاه‌کوچک}
\aliasfontfeature{UprightFeatures}{ویژگی‌های‌قلم‌عمودی}
\aliasfontfeature{BoldFeatures}{ویژگی‌های‌قلم‌سیاه}
\aliasfontfeature{ItalicFeatures}{ویژگی‌های‌قلم‌ایتالیک}
\aliasfontfeature{BoldItalicFeatures}{ویژگی‌های‌قلم‌ایتالیک‌سیاه}
\aliasfontfeature{SlantedFeatures}{ویژگی‌های‌قلم‌خوابیده}
\aliasfontfeature{BoldSlantedFeatures}{ویژگی‌های‌قلم‌خوابیده‌سیاه}
\aliasfontfeature{SmallCapsFeatures}{ویژگی‌های‌قلم‌کلاه‌کوچک}
\aliasfontfeature{SizeFeatures}{ویژگی‌های‌اندازه}
\aliasfontfeature{Scale}{ضریب}
\aliasfontfeature{WordSpace}{فضای‌کلمه}
\aliasfontfeature{PunctuationSpace}{فضای‌نقطه‌گذاری}
\aliasfontfeature{FontAdjustment}{تنظیم‌قلم}
\aliasfontfeature{LetterSpace}{فضای‌حرف}
\aliasfontfeature{HyphenChar}{نویسه‌تیره}
\aliasfontfeature{Color}{رنگ}
\aliasfontfeature{Opacity}{کدری}
\aliasfontfeature{Mapping}{نگاشت}
\aliasfontfeature{Weight}{سنگینی}
\aliasfontfeature{Width}{پهنا}
\aliasfontfeature{OpticalSize}{اندازه‌چشمی}
\aliasfontfeature{FakeSlant}{خوابیده‌تقلبی}
\aliasfontfeature{FakeStretch}{کشش‌تقلبی}
\aliasfontfeature{FakeBold}{سیاه‌تقلبی}
\aliasfontfeature{AutoFakeSlant}{خوابیده‌تقلبی‌خودکار}
\aliasfontfeature{AutoFakeBold}{سیاه‌تقلبی‌خودکار}
\aliasfontfeature{Ligatures}{دویاچندحرف‌متصل‌به‌هم}
\aliasfontfeature{Alternate}{متناوب}
\aliasfontfeature{Variant}{گوناگون}
\aliasfontfeature{Variant}{مجموعه‌سبکی}
\aliasfontfeature{CharacterVariant}{گوناگونی‌نویسه}
\aliasfontfeature{Style}{سبک}
\aliasfontfeature{Annotation}{یادداشت}
\aliasfontfeature{RawFeature}{ویژگی‌های‌کال}
\aliasfontfeature{CharacterWidth}{پهنای‌نویسه}
\aliasfontfeature{Numbers}{ارقام}
\aliasfontfeature{Contextuals}{متنی}
\aliasfontfeature{Diacritics}{تفکیک‌کننده‌ها}
\aliasfontfeature{Letters}{حروف}
\aliasfontfeature{Kerning}{دوری}
\aliasfontfeature{VerticalPosition}{موقعیت‌عمودی}
\aliasfontfeature{Fractions}{کسر}
\aliasfontfeatureoption{Language}{Default}{پیش‌فرض}
\aliasfontfeatureoption{Language}{Persian}{پارسی}
\aliasfontfeatureoption{Script}{Persian}{پارسی}
\aliasfontfeatureoption{Script}{Latin}{لاتین}
\aliasfontfeatureoption{Style}{MathScript}{اسکریپت‌ریاضی}
\aliasfontfeatureoption{Style}{MathScriptScript}{اسکریپت‌اسکریپت‌ریاضی}
%    \end{macrocode}
% \iffalse
%</localize-xetex-xepersian.def>
%<*memoir-xetex-xepersian.def>
%\fi
% \section{File \texttt{memoir-xetex-xepersian.def}}
%    \begin{macrocode}
\ProvidesFile{memoir-xetex-xepersian.def}[2010/07/25 v0.1 xepersian adaptations for memoir class for XeTeX engine]
\renewcommand{\@memfront}{%
  \@smemfront\pagenumbering{harfi}}
\renewcommand{\setthesection}{\thechapter\@SepMark\harfi{section}}
\renewcommand*{\thebook}{\@tartibi\c@book}
\renewcommand*{\thepart}{\@tartibi\c@part}
\renewcommand{\appendix}{\par
  \setcounter{chapter}{0}%
  \setcounter{section}{0}%
  \gdef\@chapapp{\appendixname}%
  \gdef\thechapter{\@harfi\c@chapter}%
  \anappendixtrue}
%    \end{macrocode}
% \iffalse
%</memoir-xetex-xepersian.def>
%<*latex-localize-messages-xetex-xepersian.def>
%\fi
% \section{File \texttt{latex-localize-messages-xetex-xepersian.def}}
%    \begin{macrocode}
\آماده‌سازی‌پرونده{latex-localize-messages-xetex-xepersian.def}[2011/03/01 v0.1 localizing LaTeX2e messages for XeTeX engine]
%    \end{macrocode}
% \iffalse
%</latex-localize-messages-xetex-xepersian.def>
%<*minitoc-xetex-xepersian.def>
%\fi
% \section{File \texttt{minitoc-xetex-xepersian.def}}
%    \begin{macrocode}
\ProvidesFile{minitoc-xetex-xepersian.def}[2010/07/25 v0.1 xepersian adaptations for minitoc package for XeTeX engine]
\def\ptctitle{\if@RTL فهرست مطالب\else Table of Contents\fi}%
\def\plftitle{\if@RTL فهرست تصاویر\else List of Figures\fi}%
\def\plttitle{\if@RTL فهرست جداول\else List of Tables\fi}%
\def\mtctitle{\if@RTL عناوین\else Contents\fi}%
\def\mlftitle{\if@RTL اشکال\else Figures\fi}%
\def\mlttitle{\if@RTL جداول\else Tables\fi}%
\def\stctitle{\if@RTL عناوین\else Contents\fi}%
\def\slftitle{\if@RTL اشکال\else Figures\fi}%
\def\slttitle{\if@RTL جداول\else Tables\fi}%
%    \end{macrocode}
% \iffalse
%</minitoc-xetex-xepersian.def>
%<*latex-localize-misc-xetex-xepersian.def>
%\fi
% \section{File \texttt{latex-localize-misc-xetex-xepersian.def}}
%    \begin{macrocode}
\ProvidesFile{latex-localize-misc-xetex-xepersian.def}[2025/01/03 v0.3 miscellaneous Persian localization of LaTeX2e for XeTeX engine]
\تر\گرجدید#1{%
\شمار@\نویسه‌ویژه     \نویسه‌ویژه\من@ا
 \بگذار#1\گرنادرست
\@گر#1\گردرست
\@گر#1\گرنادرست
\نویسه‌ویژه\شمار@}
\تر\@گر#1#2{%
\بگسترپس‌از\تر\نام‌فرمان\بگسترپس‌از\@خورحریصانه‌دو\رشته#1%
\بگسترپس‌از\@خورحریصانه‌دو\رشته#2\پایان‌نام‌فرمان
{\بگذار#1#2}}
\بگذار\تعریف‌نشده\undefined

\تر\حلقه#1\ازنو{\تر\تکرارکن{#1\راحت\بگسترپس‌از\تکرارکن\رگ}%
  \تکرارکن \بگذار\تکرارکن\راحت}
\بگذار\ازنو\رگ


\بلند\تر \حلقه #1\ازنو{%
  \تر\تکرارکن{#1\راحت  % \راحت اضافی
               \بگسترپس‌از\تکرارکن\رگ
               }%
  \تکرارکن
  \بگذار\تکرارکن\راحت
}
\بگذار\ازنو=\رگ


\ApplyPatchCodeToFile{latex-xetex-bidi}{%
\def\@xfloat #1[#2]{%
  \@nodocument
  \def \@captype {#1}%
   \def \@fps {#2}%
   \@onelevel@sanitize \@fps
   \def \reserved@b {!}%
   \ifx \reserved@b \@fps
     \@fpsadddefault
   \else
     \ifx \@fps \@empty
       \@fpsadddefault
     \fi
   \fi
   \ifhmode
     \@bsphack
     \@floatpenalty -\@Mii
   \else
     \@floatpenalty-\@Miii
   \fi
  \ifinner
     \@parmoderr\@floatpenalty\z@
  \else
    \@next\@currbox\@freelist
      {%
       \@tempcnta \sixt@@n
       \expandafter \@tfor \expandafter \reserved@a
         \expandafter :\expandafter =\@fps
         \do
          {%
           \if \reserved@a h%
             \ifodd \@tempcnta
             \else
               \advance \@tempcnta \@ne
             \fi
           \fi
           \if \reserved@a ا%
             \ifodd \@tempcnta
             \else
               \advance \@tempcnta \@ne
             \fi
           \fi
           \if \reserved@a t%
             \@setfpsbit \tw@
           \fi
           \if \reserved@a ب%
             \@setfpsbit \tw@
           \fi
           \if \reserved@a b%
             \@setfpsbit 4%
           \fi
           \if \reserved@a ز%
             \@setfpsbit 4%
           \fi
           \if \reserved@a p%
             \@setfpsbit 8%
           \fi
           \if \reserved@a ص%
             \@setfpsbit 8%
           \fi
           \if \reserved@a !%
             \ifnum \@tempcnta>15
               \advance\@tempcnta -\sixt@@n\relax
             \fi
           \fi
           }%
       \@tempcntb \csname ftype@\@captype \endcsname
       \multiply \@tempcntb \@xxxii
       \advance \@tempcnta \@tempcntb
       \global \count\@currbox \@tempcnta
       }%
    \@fltovf
  \fi
  \global \setbox\@currbox
    \color@vbox
      \normalcolor
      \vbox \bgroup
        \hsize\columnwidth
        \@parboxrestore
        \@floatboxreset
}
\let\bm@و\bm@c
\let\bm@چ\bm@l
\let\bm@ر\bm@r
\let\bm@ز\bm@b
\let\bm@ب\bm@t
\let\bm@ک\bm@s
\long\def\@iiiparbox#1#2[#3]#4#5{%
  \leavevmode
  \@pboxswfalse
  \if@hboxRconstruct\@bidi@list@minipage@parbox@not@nobtrue\fi
  \if@RTL\if#1t\@bidi@list@minipage@parboxtrue\else\if#1b\@bidi@list@minipage@parboxtrue\else\if#1ز\@bidi@list@minipage@parboxtrue\else\if#1ب\@bidi@list@minipage@parboxtrue\fi\fi\fi\fi\fi
  \setlength\@tempdima{#4}%
  \@begin@tempboxa\vbox{\hsize\@tempdima\@parboxrestore#5\@@par}%
    \ifx\relax#2\else
      \setlength\@tempdimb{#2}%
      \edef\@parboxto{to\the\@tempdimb}%
    \fi
    \if#1b\vbox
    \else\if#1ز\vbox
    \else\if #1t\vtop
    \else\if #1ب\vtop
    \else\ifmmode\vcenter
    \else\@pboxswtrue $\vcenter
    \fi\fi\fi\fi\fi
    \@parboxto{\let\hss\vss\let\unhbox\unvbox
       \csname bm@#3\endcsname}%
    \if@pboxsw \m@th$\fi
  \@end@tempboxa}
\def\@iiiminipage#1#2[#3]#4{%
  \leavevmode
  \@pboxswfalse
    \if@hboxRconstruct\@bidi@list@minipage@parbox@not@nobtrue\fi
    \if@RTL\if#1t\@bidi@list@minipage@parboxtrue\else\if#1b\@bidi@list@minipage@parboxtrue\else\if#1ز\@bidi@list@minipage@parboxtrue\else\if#1ب\@bidi@list@minipage@parboxtrue\fi\fi\fi\fi\fi
  \setlength\@tempdima{#4}%
  \def\@mpargs{{#1}{#2}[#3]{#4}}%
  \setbox\@tempboxa\vbox\bgroup
    \color@begingroup
      \hsize\@tempdima
      \textwidth\hsize \columnwidth\hsize
      \@parboxrestore
      \def\@mpfn{mpfootnote}\def\thempfn{\thempfootnote}\c@mpfootnote\z@
      \let\@footnotetext\@mpfootnotetext
      \let\@LTRfootnotetext\@mpLTRfootnotetext
      \let\@RTLfootnotetext\@mpRTLfootnotetext
      \let\@listdepth\@mplistdepth \@mplistdepth\z@
      \@minipagerestore
      \@setminipage}
\def\@testpach#1{\@chclass \ifnum \@lastchclass=\tw@ 4 \else
    \ifnum \@lastchclass=3 5 \else
     \z@ \if #1c\@chnum \z@ \else
               \if #1و\@chnum \z@ \else
                              \if \if@RTLtab#1r\else#1l\fi\@chnum \@ne \else
                              \if \if@RTLtab#1ر\else#1چ\fi\@chnum \@ne \else
                              \if \if@RTLtab#1l\else#1r\fi\@chnum \tw@ \else
                              \if \if@RTLtab#1چ\else#1ر\fi\@chnum \tw@ \else
          \@chclass \if #1|\@ne \else
                    \if #1@\tw@ \else
                    \if #1p3    \else 
                    \if #1پ3    \else          \z@ \@preamerr 0\fi
  \fi  \fi  \fi  \fi  \fi  \fi \fi \fi \fi \fi
\fi}%
}
\ApplyPatchCodeToFile{array-xetex-bidi}{%
\def\@testpach{\@chclass
 \ifnum \@lastchclass=6 \@ne \@chnum \@ne \else
  \ifnum \@lastchclass=7 5 \else
   \ifnum \@lastchclass=8 \tw@ \else
    \ifnum \@lastchclass=9 \thr@@
   \else \z@
   \ifnum \@lastchclass = 10 \else
   \edef\@nextchar{\expandafter\string\@nextchar}%
   \@chnum
   \if \@nextchar c\z@ \else
   \if \@nextchar و\z@ \else
    \if \@nextchar \if@RTLtab r\else l\fi\@ne \else
    \if \@nextchar \if@RTLtab ر\else چ\fi\@ne \else
     \if \@nextchar \if@RTLtab l\else r\fi\tw@ \else
     \if \@nextchar \if@RTLtab چ\else ر\fi\tw@ \else
   \z@ \@chclass
   \if\@nextchar |\@ne \else
    \if \@nextchar !6 \else
     \if \@nextchar @7 \else
      \if \@nextchar <8 \else
       \if \@nextchar >9 \else
  10
  \@chnum
  \if \@nextchar m\thr@@\else
  \if \@nextchar م\thr@@\else
   \if \@nextchar p4 \else
  \if \@nextchar پ4 \else
    \if \@nextchar b5 \else
    \if \@nextchar ز5 \else
   \z@ \@chclass \z@ \@preamerr \z@ \fi \fi \fi \fi \fi \fi \fi
   \fi \fi  \fi  \fi  \fi  \fi  \fi \fi \fi \fi \fi \fi \fi \fi \fi}%
}
\ApplyPatchCodeToFile{arydshln-xetex-bidi}{
\ifadl@usingarypkg
\def\@testpach{\@chclass
 \ifnum \@lastchclass=6 \@ne \@chnum \@ne \else
  \ifnum \@lastchclass=7 5 \else
   \ifnum \@lastchclass=8 \tw@ \else
    \ifnum \@lastchclass=9 \thr@@
   \else \z@
   \ifnum \@lastchclass = 10 \else
   \edef\@nextchar{\expandafter\string\@nextchar}%
   \@chnum
   \if \@nextchar c\z@ \else
    \if \@nextchar و\z@ \else
    \if \@nextchar \if@RTLtab r\else l\fi\@ne \else
    \if \@nextchar \if@RTLtab ر\else چ\fi\@ne \else
     \if \@nextchar \if@RTLtab l\else r\fi\tw@ \else
    \if \@nextchar \if@RTLtab چ\else ر\fi\tw@ \else
   \z@ \@chclass
   \if\@nextchar |\@ne \let\@arrayrule\adl@arrayrule \else
   \if\@nextchar :\@ne \let\@arrayrule\adl@arraydashrule \else
   \if\@nextchar ;\@ne \let\@arrayrule\adl@argarraydashrule \else
    \if \@nextchar !6 \else
     \if \@nextchar @7 \else
      \if \@nextchar <8 \else
       \if \@nextchar >9 \else
  10
  \@chnum
  \if \@nextchar m\thr@@\else
   \if \@nextchar م\thr@@\else
   \if \@nextchar p4 \else
    \if \@nextchar پ4 \else
    \if \@nextchar b5 \else
   \if \@nextchar ز5 \else
   \z@ \@chclass \z@ \@preamerr \z@ \fi \fi \fi \fi \fi \fi \fi \fi \fi
   \fi \fi  \fi  \fi  \fi  \fi  \fi \fi \fi \fi \fi \fi \fi \fi \fi}

\def\@classz{\@classx
   \@tempcnta \count@
   \prepnext@tok
   \@addtopreamble{\ifcase \@chnum
      \hfil
      \adl@putlrc{\d@llarbegin \insert@column \d@llarend}\hfil \or
      \hskip1sp\adl@putlrc{\d@llarbegin \insert@column \d@llarend}\hfil \or
      \hfil\hskip1sp\adl@putlrc{\d@llarbegin \insert@column \d@llarend}\or
   \setbox\adl@box\hbox \adl@startmbox{\@nextchar}\insert@column
        \adl@endmbox\or
   \setbox\adl@box\vtop \@startpbox{\@nextchar}\insert@column \@endpbox \or
   \setbox\adl@box\vbox \@startpbox{\@nextchar}\insert@column \@endpbox
  \fi}\prepnext@tok}
\def\adl@class@start{4}
\def\adl@class@iiiorvii{7}

\else
\def\@testpach#1{\@chclass \ifnum \@lastchclass=\tw@ 4\relax \else
        \ifnum \@lastchclass=\thr@@ 5\relax \else
                \z@ \if #1c\@chnum \z@ \else
                    \if #1و\@chnum\z@ \else
                    \if \if@RTLtab#1r\else#1l\fi\@chnum \@ne \else
                   \if \if@RTLtab#1ر\else#1چ\fi\@chnum \@ne \else
                    \if \if@RTLtab#1l\else#1r\fi\@chnum \tw@ \else
                     \if \if@RTLtab#1چ\else#1ر\fi\@chnum \tw@ \else
                \@chclass
                    \if #1|\@ne \let\@arrayrule\adl@arrayrule \else
                    \if #1:\@ne \let\@arrayrule\adl@arraydashrule \else
                    \if #1;\@ne \let\@arrayrule\adl@argarraydashrule \else
                    \if #1@\tw@ \else
                    \if #1p\thr@@ \else 
                   \if #1پ\thr@@ \else\z@ \@preamerr 0\fi
        \fi  \fi  \fi  \fi  \fi  \fi  \fi  \fi  \fi \fi \fi \fi \fi}

\def\@arrayclassz{\ifcase \@lastchclass \@acolampacol \or \@ampacol \or
                \or \or \@addamp \or
                \@acolampacol \or \@firstampfalse \@acol \fi
        \edef\@preamble{\@preamble
                \ifcase \@chnum
                    \hfil\adl@putlrc{$\relax\@sharp$}\hfil
                \or \adl@putlrc{$\relax\@sharp$}\hfil
                \or \hfil\adl@putlrc{$\relax\@sharp$}\fi}}
\def\@tabclassz{\ifcase \@lastchclass \@acolampacol \or \@ampacol \or
                \or \or \@addamp \or
                \@acolampacol \or \@firstampfalse \@acol \fi
        \edef\@preamble{\@preamble
        \ifcase \@chnum
                    \hfil\adl@putlrc{\@sharp\unskip}\hfil
                \or \adl@putlrc{\@sharp\unskip}\hfil
                \or \hfil\hskip\z@ \adl@putlrc{\@sharp\unskip}\fi}}
\def\adl@class@start{6}
\def\adl@class@iiiorvii{3}
\fi
}
\ApplyPatchCodeToFile{tabulary-xetex-bidi}{%
\def\@testpach{\@chclass
 \ifnum \@lastchclass=6 \@ne \@chnum \@ne \else
  \ifnum \@lastchclass=7 5 \else
   \ifnum \@lastchclass=8 \tw@ \else
    \ifnum \@lastchclass=9 \thr@@
   \else \z@
   \ifnum \@lastchclass = 10 \else
   \edef\@nextchar{\expandafter\string\@nextchar}%
   \@chnum
   \if \@nextchar c\z@ \else
    \if \@nextchar و\z@ \else
    \if \@nextchar \if@RTLtab r\else l\fi\@ne \else
     \if \@nextchar \if@RTLtab ر\else چ\fi\@ne \else
     \if \@nextchar \if@RTLtab l\else r\fi\tw@ \else
     \if \@nextchar \if@RTLtab چ\else ر\fi\tw@ \else
   \if \@nextchar C7 \else
   \if \@nextchar س7 \else
    \if \@nextchar L8 \else
    \if \@nextchar ف8 \else
     \if \@nextchar R9 \else
     \if \@nextchar ا9 \else
     \if \@nextchar J10 \else
     \if \@nextchar ت10 \else
   \z@ \@chclass
   \if\@nextchar |\@ne \else
    \if \@nextchar !6 \else
     \if \@nextchar @7 \else
      \if \@nextchar <8 \else
       \if \@nextchar >9 \else
  10
  \@chnum
  \if \@nextchar m\thr@@\else
  \if \@nextchar م\thr@@\else
   \if \@nextchar p4 \else
  \if \@nextcharپ4 \else
    \if \@nextchar b5 \else
  \if \@nextchar ز5 \else
   \z@ \@chclass \z@ \@preamerr \z@ \fi \fi \fi \fi\fi \fi \fi\fi \fi \fi \fi \fi \fi \fi \fi \fi
     \fi  \fi  \fi  \fi  \fi  \fi \fi \fi \fi \fi \fi \fi \fi \fi}%
}
\ApplyPatchCodeToFile{float-xetex-bidi}{%
\let\@float@Hx\@xfloat
\def\@xfloat#1[{\@ifnextchar{H}{\@float@HH{#1}[}{\@ifnextchar{آ}{\@float@آآ{#1}[}{\@float@Hx{#1}[}}}
\def\@float@HH#1[H]{%
  \expandafter\let\csname end#1\endcsname\float@endH
  \let\@currbox\float@box
  \def\@captype{#1}\setbox\@floatcapt=\vbox{}%
  \expandafter\ifx\csname fst@#1\endcsname\relax
    \@flstylefalse\else\@flstyletrue\fi
  \setbox\@currbox\color@vbox\normalcolor
    \vbox\bgroup \hsize\columnwidth \@parboxrestore
      \@floatboxreset \@setnobreak
  \ignorespaces}
\def\@float@آآ#1[آ]{%
  \expandafter\let\csname end#1\endcsname\float@endH
  \let\@currbox\float@box
  \def\@captype{#1}\setbox\@floatcapt=\vbox{}%
  \expandafter\ifx\csname fst@#1\endcsname\relax
    \@flstylefalse\else\@flstyletrue\fi
  \setbox\@currbox\color@vbox\normalcolor
    \vbox\bgroup \hsize\columnwidth \@parboxrestore
      \@floatboxreset \@setnobreak
  \ignorespaces}
}
\begingroup \catcode `|=0 \catcode `[= 1
\catcode`]=2 \catcode `\{=12 \catcode `\}=12
\catcode`\\=12 |gdef|@x@xepersian@localize@verbatim#1\پایان{همانطورکه‌هست}[#1|پایان[همانطورکه‌هست]]
|gdef|@sx@xepersian@localize@verbatim#1\پایان{همانطورکه‌هست*}[#1|پایان[همانطورکه‌هست*]]
|endgroup
\def\همانطورکه‌هست{\@verbatim \frenchspacing\@vobeyspaces \@x@xepersian@localize@verbatim}
\def\endهمانطورکه‌هست{\if@newlist \leavevmode\fi\endtrivlist}
\ExplSyntaxOn
\AtBeginDocument{\@namedef{همانطورکه‌هست*}{\@verbatim \fontspec_print_visible_spaces: \@sx@xepersian@localize@verbatim}}
\ExplSyntaxOff
\expandafter\let\csname endهمانطورکه‌هست*\endcsname =\endهمانطورکه‌هست
%    \end{macrocode}
% \iffalse
%</latex-localize-misc-xetex-xepersian.def>
%<*natbib-xetex-xepersian.def>
%\fi
% \section{File \texttt{natbib-xetex-xepersian.def}}
%    \begin{macrocode}
\ProvidesFile{natbib-xetex-xepersian.def}[2011/08/01 v0.1 xepersian adaptations for natbib package for XeTeX engine]
\renewcommand\NAT@set@cites{%
  \ifNAT@numbers
    \ifNAT@super \let\@cite\NAT@citesuper
       \def\NAT@mbox##1{\unskip\nobreak\textsuperscript{##1}}%
       \let\citeyearpar=\citeyear
       \let\NAT@space\relax
       \def\NAT@super@kern{\kern\p@}%
    \else
       \let\NAT@mbox=\mbox
       \let\@cite\NAT@citenum
       \let\NAT@space\NAT@spacechar
       \let\NAT@super@kern\relax
    \fi
    \let\@citex\NAT@citexnum
   \let\@Latincitex\NAT@Latin@citexnum
    \let\@biblabel\NAT@biblabelnum
    \let\@bibsetup\NAT@bibsetnum
    \renewcommand\NAT@idxtxt{\NAT@name\NAT@spacechar\NAT@open\NAT@num\NAT@close}%
    \def\natexlab##1{}%
    \def\NAT@penalty{\penalty\@m}%
  \else
    \let\@cite\NAT@cite
    \let\@citex\NAT@citex
     \let\@Latincitex\NAT@Latin@citex
    \let\@biblabel\NAT@biblabel
    \let\@bibsetup\NAT@bibsetup
    \let\NAT@space\NAT@spacechar
    \let\NAT@penalty\@empty
    \renewcommand\NAT@idxtxt{\NAT@name\NAT@spacechar\NAT@open\NAT@date\NAT@close}%
    \def\natexlab##1{##1}%
  \fi}
\newcommand\NAT@Latin@citex{}
\def\NAT@Latin@citex%
  [#1][#2]#3{%
  \NAT@reset@parser
  \NAT@sort@cites{#3}%
  \NAT@reset@citea
  \@cite{\lr{\let\NAT@nm\@empty\let\NAT@year\@empty
    \@for\@citeb:=\NAT@cite@list\do
    {\@safe@activestrue
     \edef\@citeb{\expandafter\@firstofone\@citeb\@empty}%
     \@safe@activesfalse
     \@ifundefined{b@\@citeb\@extra@b@citeb}{\@citea%
       {\reset@font\bfseries ?}\NAT@citeundefined
                 \PackageWarning{natbib}%
       {Citation `\@citeb' on page \thepage \space undefined}\def\NAT@date{}}%
     {\let\NAT@last@nm=\NAT@nm\let\NAT@last@yr=\NAT@year
      \NAT@parse{\@citeb}%
      \ifNAT@longnames\@ifundefined{bv@\@citeb\@extra@b@citeb}{%
        \let\NAT@name=\NAT@all@names
        \global\@namedef{bv@\@citeb\@extra@b@citeb}{}}{}%
      \fi
     \ifNAT@full\let\NAT@nm\NAT@all@names\else
       \let\NAT@nm\NAT@name\fi
     \ifNAT@swa\ifcase\NAT@ctype
       \if\relax\NAT@date\relax
         \@citea\NAT@hyper@{\NAT@nmfmt{\NAT@nm}\NAT@date}%
       \else
         \ifx\NAT@last@nm\NAT@nm\NAT@yrsep
            \ifx\NAT@last@yr\NAT@year
              \def\NAT@temp{{?}}%
              \ifx\NAT@temp\NAT@exlab\PackageWarningNoLine{natbib}%
               {Multiple citation on page \thepage: same authors and
               year\MessageBreak without distinguishing extra
               letter,\MessageBreak appears as question mark}\fi
              \NAT@hyper@{\NAT@exlab}%
            \else\unskip\NAT@spacechar
              \NAT@hyper@{\NAT@date}%
            \fi
         \else
           \@citea\NAT@hyper@{%
             \NAT@nmfmt{\NAT@nm}%
             \hyper@natlinkbreak{%
               \NAT@aysep\NAT@spacechar}{\@citeb\@extra@b@citeb
             }%
             \NAT@date
           }%
         \fi
       \fi
     \or\@citea\NAT@hyper@{\NAT@nmfmt{\NAT@nm}}%
     \or\@citea\NAT@hyper@{\NAT@date}%
     \or\@citea\NAT@hyper@{\NAT@alias}%
     \fi \NAT@def@citea
     \else
       \ifcase\NAT@ctype
        \if\relax\NAT@date\relax
          \@citea\NAT@hyper@{\NAT@nmfmt{\NAT@nm}}%
        \else
         \ifx\NAT@last@nm\NAT@nm\NAT@yrsep
            \ifx\NAT@last@yr\NAT@year
              \def\NAT@temp{{?}}%
              \ifx\NAT@temp\NAT@exlab\PackageWarningNoLine{natbib}%
               {Multiple citation on page \thepage: same authors and
               year\MessageBreak without distinguishing extra
               letter,\MessageBreak appears as question mark}\fi
              \NAT@hyper@{\NAT@exlab}%
            \else
              \unskip\NAT@spacechar
              \NAT@hyper@{\NAT@date}%
            \fi
         \else
           \@citea\NAT@hyper@{%
             \NAT@nmfmt{\NAT@nm}%
             \hyper@natlinkbreak{\NAT@spacechar\NAT@@open\if*#1*\else#1\NAT@spacechar\fi}%
               {\@citeb\@extra@b@citeb}%
             \NAT@date
           }%
         \fi
        \fi
       \or\@citea\NAT@hyper@{\NAT@nmfmt{\NAT@nm}}%
       \or\@citea\NAT@hyper@{\NAT@date}%
       \or\@citea\NAT@hyper@{\NAT@alias}%
       \fi
       \if\relax\NAT@date\relax
         \NAT@def@citea
       \else
         \NAT@def@citea@close
       \fi
     \fi
     }}\ifNAT@swa\else\if*#2*\else\NAT@cmt#2\fi
     \if\relax\NAT@date\relax\else\NAT@@close\fi\fi}}{#1}{#2}}
\newcommand\NAT@Latin@citexnum{}
\def\NAT@Latin@citexnum[#1][#2]#3{%
  \NAT@reset@parser
  \NAT@sort@cites{#3}%
  \NAT@reset@citea
  \@cite{\lr{\def\NAT@num{-1}\let\NAT@last@yr\relax\let\NAT@nm\@empty
    \@for\@citeb:=\NAT@cite@list\do
    {\@safe@activestrue
     \edef\@citeb{\expandafter\@firstofone\@citeb\@empty}%
     \@safe@activesfalse
     \@ifundefined{b@\@citeb\@extra@b@citeb}{%
       {\reset@font\bfseries?}
        \NAT@citeundefined\PackageWarning{natbib}%
       {Citation `\@citeb' on page \thepage \space undefined}}%
     {\let\NAT@last@num\NAT@num\let\NAT@last@nm\NAT@nm
      \NAT@parse{\@citeb}%
      \ifNAT@longnames\@ifundefined{bv@\@citeb\@extra@b@citeb}{%
        \let\NAT@name=\NAT@all@names
        \global\@namedef{bv@\@citeb\@extra@b@citeb}{}}{}%
      \fi
      \ifNAT@full\let\NAT@nm\NAT@all@names\else
        \let\NAT@nm\NAT@name\fi
      \ifNAT@swa
       \@ifnum{\NAT@ctype>\@ne}{%
        \@citea
        \NAT@hyper@{\@ifnum{\NAT@ctype=\tw@}{\NAT@test{\NAT@ctype}}{\NAT@alias}}%
       }{%
        \@ifnum{\NAT@cmprs>\z@}{%
         \NAT@ifcat@num\NAT@num
          {\let\NAT@nm=\NAT@num}%
          {\def\NAT@nm{-2}}%
         \NAT@ifcat@num\NAT@last@num
          {\@tempcnta=\NAT@last@num\relax}%
          {\@tempcnta\m@ne}%
         \@ifnum{\NAT@nm=\@tempcnta}{%
          \@ifnum{\NAT@merge>\@ne}{}{\NAT@last@yr@mbox}%
         }{%
           \advance\@tempcnta by\@ne
           \@ifnum{\NAT@nm=\@tempcnta}{%
             \ifx\NAT@last@yr\relax
               \def@NAT@last@yr{\@citea}%
             \else
               \def@NAT@last@yr{--\NAT@penalty}%
             \fi
           }{%
             \NAT@last@yr@mbox
           }%
         }%
        }{%
         \@tempswatrue
         \@ifnum{\NAT@merge>\@ne}{\@ifnum{\NAT@last@num=\NAT@num\relax}{\@tempswafalse}{}}{}%
         \if@tempswa\NAT@citea@mbox\fi
        }%
       }%
       \NAT@def@citea
      \else
        \ifcase\NAT@ctype
          \ifx\NAT@last@nm\NAT@nm \NAT@yrsep\NAT@penalty\NAT@space\else
            \@citea \NAT@test{\@ne}\NAT@spacechar\NAT@mbox{\NAT@super@kern\NAT@@open}%
          \fi
          \if*#1*\else#1\NAT@spacechar\fi
          \NAT@mbox{\NAT@hyper@{{\citenumfont{\NAT@num}}}}%
          \NAT@def@citea@box
        \or
          \NAT@hyper@citea@space{\NAT@test{\NAT@ctype}}%
        \or
          \NAT@hyper@citea@space{\NAT@test{\NAT@ctype}}%
        \or
          \NAT@hyper@citea@space\NAT@alias
        \fi
      \fi
     }%
    }%
      \@ifnum{\NAT@cmprs>\z@}{\NAT@last@yr}{}%
      \ifNAT@swa\else
        \@ifnum{\NAT@ctype=\z@}{%
          \if*#2*\else\NAT@cmt#2\fi
        }{}%
        \NAT@mbox{\NAT@@close}%
      \fi
  }}{#1}{#2}%
}%
\AtBeginDocument{\NAT@set@cites}
\DeclareRobustCommand\Latincite
    {\begingroup\let\NAT@ctype\z@\NAT@partrue\NAT@swatrue
      \@ifstar{\NAT@fulltrue\NAT@Latin@cites}{\NAT@fullfalse\NAT@Latin@cites}}
\newcommand\NAT@Latin@cites{\@ifnextchar [{\NAT@@Latin@@citetp}{%
     \ifNAT@numbers\else
     \NAT@swafalse
     \fi
    \NAT@@Latin@@citetp[]}}
\newcommand\NAT@@Latin@@citetp{}
\def\NAT@@Latin@@citetp[#1]{\@ifnextchar[{\@Latincitex[#1]}{\@Latincitex[][#1]}}
%    \end{macrocode}
% \iffalse
%</natbib-xetex-xepersian.def>
%<*packages-localize-xetex-xepersian.def>
%\fi
% \section{File \texttt{packages-localize-xetex-xepersian.def}}
%    \begin{macrocode}
\آماده‌سازی‌پرونده{packages-localize-xetex-xepersian.def}[2025/01/03 v0.3 localizing LaTeX2e Packages for XeTeX engine]
\@گرسبک‌فراخوانی‌شده{color}{\ورودی{color-localize-xetex-xepersian.def}}{}
\ApplyPatchCodeToPackage{multicol}{%
\newenvironment{چندستونی‌ها}{\begin{multicols}}{\end{multicols}}%
\newenvironment{چندستونی‌ها*}{\begin{multicols*}}{\end{multicols*}}%
}
\ApplyPatchCodeToPackage{verbatim}{%
\begingroup
 \vrb@catcodes
 \lccode`\!=`\\ \lccode`\[=`\{ \lccode`\]=`\}
 \catcode`\~=\active \lccode`\~=`\^^M
 \lccode`\C=`\C
 \lowercase{\endgroup
    \def\xepersian@localize@verbatim@start#1{%
      \verbatim@startline
      \if\noexpand#1\noexpand~%
        \let\next\xepersian@localize@verbatim@
      \else \def\next{\xepersian@localize@verbatim@#1}\fi
      \next}%
    \def\xepersian@localize@verbatim@#1~{\xepersian@localize@verbatim@@#1!پایان\@nil}%
    \def\xepersian@localize@verbatim@@#1!پایان{%
       \verbatim@addtoline{#1}%
       \futurelet\next\xepersian@localize@verbatim@@@}%
    \def\xepersian@localize@verbatim@@@#1\@nil{%
       \ifx\next\@nil
         \verbatim@processline
         \verbatim@startline
         \let\next\xepersian@localize@verbatim@
       \else
         \def\@tempa##1!پایان\@nil{##1}%
         \@temptokena{!پایان}%
         \def\next{\expandafter\xepersian@localize@verbatim@test\@tempa#1\@nil~}%
       \fi \next}%
    \def\xepersian@localize@verbatim@test#1{%
           \let\next\xepersian@localize@verbatim@test
           \if\noexpand#1\noexpand~%
             \expandafter\verbatim@addtoline
               \expandafter{\the\@temptokena}%
             \verbatim@processline
             \verbatim@startline
             \let\next\xepersian@localize@verbatim@
           \else \if\noexpand#1
             \@temptokena\expandafter{\the\@temptokena#1}%
           \else \if\noexpand#1\noexpand[%
             \let\@tempc\@empty
             \let\next\xepersian@localize@verbatim@testend
           \else
             \expandafter\verbatim@addtoline
               \expandafter{\the\@temptokena}%
             \def\next{\xepersian@localize@verbatim@#1}%
           \fi\fi\fi
           \next}%
    \def\xepersian@localize@verbatim@testend#1{%
         \if\noexpand#1\noexpand~%
           \expandafter\verbatim@addtoline
             \expandafter{\the\@temptokena[}%
           \expandafter\verbatim@addtoline
             \expandafter{\@tempc}%
           \verbatim@processline
           \verbatim@startline
           \let\next\xepersian@localize@verbatim@
         \else\if\noexpand#1\noexpand]%
           \let\next\xepersian@localize@verbatim@@testend
         \else\if\noexpand#1\noexpand!%
           \expandafter\verbatim@addtoline
             \expandafter{\the\@temptokena[}%
           \expandafter\verbatim@addtoline
             \expandafter{\@tempc}%
           \def\next{\xepersian@localize@verbatim@!}%
         \else \expandafter\def\expandafter\@tempc\expandafter
           {\@tempc#1}\fi\fi\fi
         \next}%
    \def\xepersian@localize@verbatim@@testend{%
       \ifx\@tempc\@currenvir
         \verbatim@finish
         \edef\next{\noexpand\end{\@currenvir}%
                    \noexpand\xepersian@localize@verbatim@rescan{\@currenvir}}%
       \else
         \expandafter\verbatim@addtoline
           \expandafter{\the\@temptokena[}%
           \expandafter\verbatim@addtoline
             \expandafter{\@tempc]}%
         \let\next\xepersian@localize@verbatim@
       \fi
       \next}%
    \def\xepersian@localize@verbatim@rescan#1#2~{\if\noexpand~\noexpand#2~\else
        \@warning{Characters dropped after `\string\end{#1}'}\fi}}%
\def\همانطورکه‌هست{\begingroup\@verbatim \frenchspacing\@vobeyspaces
              \xepersian@localize@verbatim@start}
\@namedef{همانطورکه‌هست*}{\begingroup\@verbatim\xepersian@localize@verbatim@start}
\def\endهمانطورکه‌هست{\endtrivlist\endgroup\@doendpe}
\expandafter\let\csname endهمانطورکه‌هست*\endcsname =\endهمانطورکه‌هست
}
\ExplSyntaxOn
\AtBeginDocument{
  \xepersian_localize_patch_verbatim:
}
\cs_set:Npn \xepersian_localize_patch_verbatim: {
  \ApplyPatchCodeToPackage{verbatim}{
    \cs_set:cpn {همانطورکه‌هست*} {
      \group_begin: \@verbatim \fontspec_print_visible_spaces: \xepersian@localize@verbatim@start
    }
  }
}
\ExplSyntaxOff
\ApplyPatchCodeToPackage{graphicx}{%
\def\Gin@boolkey#1#2{%
\expandafter\@ifdefinable  \csname Gin@#2درست\endcsname{%
\expandafter\let\csname Gin@#2درست\expandafter\endcsname\csname Gin@#2true\endcsname}%
\expandafter\@ifdefinable  \csname Gin@#2نادرست\endcsname{%
\expandafter\let\csname Gin@#2نادرست\expandafter\endcsname\csname Gin@#2false\endcsname}%
  \csname Gin@#2\ifx\relax#1\relax true\else#1\fi\endcsname}
\define@key{Grot}{origin}[c]{%
 \@tfor\@tempa:=#1\do{%
    \if l\@tempa \Grot@x\z@\else
    \if چ\@tempa \Grot@x\z@\else
    \if r\@tempa \Grot@x\width\else
    \if ر\@tempa \Grot@x\width\else
    \if t\@tempa \Grot@y\height\else
    \if ب\@tempa \Grot@y\height\else
    \if b\@tempa \Grot@y-\depth\else
    \if ز\@tempa \Grot@y-\depth\else
    \if B\@tempa \Grot@y\z@\else
    \if ک\@tempa \Grot@y\z@\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}}
\معادل@کلید{Gin}{پیش‌نویس}{draft}
\معادل@کلید{Gin}{مبدا}{origin}
\معادل@کلید{Grot}{مبدا}{origin}
\معادل@کلید{Gin}{بی‌اضافه}{clip}
\معادل@کلید{Gin}{حفظ‌تناسب}{keepaspectratio}
\معادل@کلید{Gin}{پهنای‌طبیعی}{natwidth}
\معادل@کلید{Gin}{بلندای‌طبیعی}{natheight}
\معادل@کلید{Gin}{مختصات}{bb}
\معادل@کلید{Gin}{محدوده‌نمایش}{viewport}
\معادل@کلید{Gin}{حذف‌اطراف}{trim}
\معادل@کلید{Gin}{زاویه}{angle}
\معادل@کلید{Gin}{پهنا}{width}
\معادل@کلید{Gin}{بلندا}{height}
\معادل@کلید{Gin}{بلندای‌کل}{totalheight}
\معادل@کلید{Gin}{ضریب}{scale}
\معادل@کلید{Gin}{نوع}{type}
\معادل@کلید{Gin}{پسوند}{ext}
\معادل@کلید{Gin}{خواندنی}{read}
\معادل@کلید{Gin}{فرمان}{command}
\معادل@کلید{Grot}{طول}{x}
\معادل@کلید{Grot}{عرض}{y}
\معادل@کلید{Grot}{واحد}{units}
}
%    \end{macrocode}
% \iffalse
%</packages-localize-xetex-xepersian.def>
%<*url-xetex-xepersian.def>
%\fi
% \section{File \texttt{url-xetex-xepersian.def}}
%    \begin{macrocode}
\ProvidesFile{url-xetex-xepersian.def}[2022/02/18 v0.1 xepersian adaptations for url package for XeTeX engine]
\begingroup
 \lccode`+=`\% \lccode`\~=`\%
  \lowercase {\long\gdef\Url@actpercent{\Url@Edit\Url@String{+}{~}%
    \ifnum\Umathcodenum`\%<32768 \def~{\%}\fi}}%
\endgroup%
%    \end{macrocode}
% \iffalse
%</url-xetex-xepersian.def>
%<*persian-tex-text.map>
%\fi
% \section{File \texttt{persian-tex-text.map}}
%    \begin{macrocode}
LHSName "persian-TeX-text"
RHSName "Unicode"

pass(Unicode)
U+0030 <> U+06F0 ;
U+0031 <> U+06F1 ;
U+0032 <> U+06F2 ;
U+0033 <> U+06F3 ;
U+0034 <> U+06F4 ;
U+0035 <> U+06F5 ;
U+0036 <> U+06F6 ;
U+0037 <> U+06F7 ;
U+0038 <> U+06F8 ;
U+0039 <> U+06F9 ;


U+002C <> U+060C ; comma ­> arabic comma
U+003F <> U+061F ; question mark -> arabic qm
U+003B <> U+061B ; semicolon -> arabic semicolon

; ligatures from Knuth's original CMR fonts
U+002D U+002D <> U+2013 ; -- -> en dash
U+002D U+002D U+002D <> U+2014 ; --- -> em dash

U+0027 <> U+2019 ; ' -> right single quote
U+0027 U+0027 <> U+201D ; '' -> right double quote
U+0022  > U+201D ; " -> right double quote

U+0060 <> U+2018 ; ` -> left single quote
U+0060 U+0060 <> U+201C ; `` -> left double quote

U+0021 U+0060 <> U+00A1 ; !` -> inverted exclam
U+003F U+0060 <> U+00BF ; ?` -> inverted question

; additions supported in T1 encoding
U+002C U+002C <> U+201E ; ,, -> DOUBLE LOW-9 QUOTATION MARK
U+003C U+003C <> U+00AB ; << -> LEFT POINTING GUILLEMET
U+003E U+003E <> U+00BB ; >> -> RIGHT POINTING GUILLEMET
%    \end{macrocode}
% \iffalse
%</persian-tex-text.map>
%<*persian-tex-text-nonumbers.map>
%\fi
% \section{File \texttt{persian-tex-text-nonumbers.map}}
%    \begin{macrocode}
LHSName "persian-TeX-text-nonumbers"
RHSName "Unicode"

pass(Unicode)
U+002C <> U+060C ; comma ­> arabic comma
U+003F <> U+061F ; question mark -> arabic qm
U+003B <> U+061B ; semicolon -> arabic semicolon

; ligatures from Knuth's original CMR fonts
U+002D U+002D <> U+2013 ; -- -> en dash
U+002D U+002D U+002D <> U+2014 ; --- -> em dash

U+0027 <> U+2019 ; ' -> right single quote
U+0027 U+0027 <> U+201D ; '' -> right double quote
U+0022  > U+201D ; " -> right double quote

U+0060 <> U+2018 ; ` -> left single quote
U+0060 U+0060 <> U+201C ; `` -> left double quote

U+0021 U+0060 <> U+00A1 ; !` -> inverted exclam
U+003F U+0060 <> U+00BF ; ?` -> inverted question

; additions supported in T1 encoding
U+002C U+002C <> U+201E ; ,, -> DOUBLE LOW-9 QUOTATION MARK
U+003C U+003C <> U+00AB ; << -> LEFT POINTING GUILLEMET
U+003E U+003E <> U+00BB ; >> -> RIGHT POINTING GUILLEMET
%    \end{macrocode}
% \iffalse
%</persian-tex-text-nonumbers.map>
%<*persian-tex-ligs.lua>
%\fi
% \section{File \texttt{persian-tex-ligs.lua}}
%    \begin{macrocode}
local otf = fonts.handlers.otf
local registerotffeature = otf.features.register
local addotffeature = otf.addfeature

local persiantexlig = {
  {
    type = "substitution",
    order = {"persiantexlig"},
    prepend = true,
    data = {
      [0x0030] = 0x06F0,
      [0x0031] = 0x06F1,
      [0x0032] = 0x06F2,
      [0x0033] = 0x06F3,
      [0x0034] = 0x06F4,
      [0x0035] = 0x06F5,
      [0x0036] = 0x06F6,
      [0x0037] = 0x06F7,
      [0x0038] = 0x06F8,
      [0x0039] = 0x06F9,
      [0x002C] = 0x060C, -- comma ­> arabic comma
      [0x003F] = 0x061F, -- question mark -> arabic qm
      [0x003B] = 0x061B, -- semicolon -> arabic semicolon
      [0x0027] = 0x2019, -- ' -> right single quote
      [0x0022] = 0x201D, -- " -> right double quote
      [0x0060] = 0x2018 -- ` -> left single quote
  }
  },
  {
    type = "ligature",
    order = {"persiantexlig"},
    prepend = true,
    data = {
      -- ligatures from Knuth's original CMR fonts
      [0x2013] = {0x002D, 0x002D}, -- -- -> en dash
      [0x2014] = {0x002D, 0x002D, 0x002D}, -- --- -> em dash
      [0x201D] = {0x0027, 0x0027}, -- '' -> right double quote
      [0x201C] = {0x0060, 0x0060}, -- `` -> left double quote
      [0x00A1] = {0x0021, 0x0060}, -- !` -> inverted exclam
      [0x00BF] = {0x003F, 0x0060}, -- ?` -> inverted question
      -- additions supported in T1 encoding
      [0x201E] = {0x002C, 0x002C}, -- ,, -> DOUBLE LOW-9 QUOTATION MARK
      [0x00AB] = {0x003C, 0x003C}, -- << -> LEFT POINTING GUILLEMET
      [0x00BB] = {0x003E, 0x003E} -- >> -> RIGHT POINTING GUILLEMET
  }
  }
}

local persiantexlignonum = {
  {
    type = "substitution",
    order = {"persiantexlignonum"},
    prepend = true,
    data = {
      [0x002C] = 0x060C, -- comma ­> arabic comma
      [0x003F] = 0x061F, -- question mark -> arabic qm
      [0x003B] = 0x061B, -- semicolon -> arabic semicolon
      [0x0027] = 0x2019, -- ' -> right single quote
      [0x0022] = 0x201D, -- " -> right double quote
      [0x0060] = 0x2018 -- ` -> left single quote
  }
  },
  {
    type = "ligature",
    order = {"persiantexlignonum"},
    prepend = true,
    data = {
      -- ligatures from Knuth's original CMR fonts
      [0x2013] = {0x002D, 0x002D}, -- -- -> en dash
      [0x2014] = {0x002D, 0x002D, 0x002D}, -- --- -> em dash
      [0x201D] = {0x0027, 0x0027}, -- '' -> right double quote
      [0x201C] = {0x0060, 0x0060}, -- `` -> left double quote
      [0x00A1] = {0x0021, 0x0060}, -- !` -> inverted exclam
      [0x00BF] = {0x003F, 0x0060}, -- ?` -> inverted question
      -- additions supported in T1 encoding
      [0x201E] = {0x002C, 0x002C}, -- ,, -> DOUBLE LOW-9 QUOTATION MARK
      [0x00AB] = {0x003C, 0x003C}, -- << -> LEFT POINTING GUILLEMET
      [0x00BB] = {0x003E, 0x003E} -- >> -> RIGHT POINTING GUILLEMET
  }
  }
}

addotffeature("persiantexlignonum", persiantexlignonum)
addotffeature("persiantexlig", persiantexlig)

registerotffeature {name = "persiantexlig", description = "Persian TeX ligatures"}
registerotffeature {name = "persiantexlignonum", description = "Persian TeX ligatures without numbers"}

-- We implement persiantexlig and persiantexlignonum for HarfBuzz too
local direct = node.direct
local otfregister = fonts.constructors.features.otf.register

local getdisc = direct.getdisc
local getnext = direct.getnext
local is_char = direct.is_char
local setchar = direct.setchar

local persiandigits = {
  [0x0030] = 0x06F0,
  [0x0031] = 0x06F1,
  [0x0032] = 0x06F2,
  [0x0033] = 0x06F3,
  [0x0034] = 0x06F4,
  [0x0035] = 0x06F5,
  [0x0036] = 0x06F6,
  [0x0037] = 0x06F7,
  [0x0038] = 0x06F8,
  [0x0039] = 0x06F9
}

local persianpuncts = {
  [0x002C] = 0x060C, -- comma ­> arabic comma
  [0x003F] = 0x061F, -- question mark -> arabic qm
  [0x003B] = 0x061B, -- semicolon -> arabic semicolon
  [0x0027] = 0x2019, -- ' -> right single quote
  [0x0022] = 0x201D, -- " -> right double quote
  [0x0060] = 0x2018 -- ` -> left single quote
}

local persiantexlig = {
  [0x002D] = {[0x002D] = {char = 0x2013}}, -- -- -> en dash
  [0x2013] = {[0x002D] = {char = 0x2014}}, -- --- -> em dash
  [0x0027] = {[0x0027] = {char = 0x201D}}, -- '' -> right double quote
  [0x0060] = {[0x0060] = {char = 0x201C}}, -- `` -> left double quote
  [0x0021] = {[0x0060] = {char = 0x00A1}}, -- !` -> inverted exclam
  [0x003F] = {[0x0060] = {char = 0x00BF}}, -- ?` -> inverted question
  -- additions supported in T1 encoding
  [0x002C] = {[0x002C] = {char = 0x201E}}, -- ,, -> DOUBLE LOW-9 QUOTATION MARK
  [0x003C] = {[0x003C] = {char = 0x00AB}}, -- << -> LEFT POINTING GUILLEMET
  [0x003E] = {[0x003E] = {char = 0x00BB}} -- >> -> RIGHT POINTING GUILLEMET
}

local function persiantexligprocessor(head, font)
  local n = head
  while n do
    local c, id = is_char(n, font)
    local persiannum = persiandigits[c]
    local persianpunct = persianpuncts[c]
    if persiannum then
      setchar(n, persiannum)
    elseif persianpunct then
      setchar(n, persianpunct)
    elseif id == disc_t then
      local pre, post, replace = getdisc(n)
      persiantexligprocessor(pre, font)
      persiantexligprocessor(post, font)
      persiantexligprocessor(replace, font)
    end
    n = getnext(n)
  end
end

otfregister {
  name = 'persiantexlig',
  description = 'Persian TeX ligatures',
  default = false,
  manipulators = {
    plug = function(tfmdata, _, value)
      local characters = tfmdata.characters
      for codepoint, ligatures in next, persiantexlig do
        local char = characters[codepoint]
        if char then
          char.ligatures = ligatures
        end
      end
    end,
  },
  processors = {
    position=1,
    plug = persiantexligprocessor,
  },
}

local function persiantexlignonumprocessor(head, font)
  local n = head
  while n do
    local c, id = is_char(n, font)
    local persianpunct = persianpuncts[c]
    if persianpunct then
      setchar(n, persianpunct)
    elseif id == disc_t then
      local pre, post, replace = getdisc(n)
      persiantexlignonumprocessor(pre, font)
      persiantexlignonumprocessor(post, font)
      persiantexlignonumprocessor(replace, font)
    end
    n = getnext(n)
  end
end

otfregister {
  name = 'persiantexlignonum',
  description = 'Persian TeX ligatures without numbers',
  default = false,
  manipulators = {
    plug = function(tfmdata, _, value)
      local characters = tfmdata.characters
      for codepoint, ligatures in next, persiantexlig do
        local char = characters[codepoint]
        if char then
          char.ligatures = ligatures
        end
      end
    end,
  },
  processors = {
    position=1,
    plug = persiantexlignonumprocessor,
  },
}
%    \end{macrocode}
% \iffalse
%</persian-tex-ligs.lua>
%<*rapport1-xetex-xepersian.def>
%\fi
% \section{File \texttt{rapport1-xetex-xepersian.def}}
%    \begin{macrocode}
\ProvidesFile{rapport1-xetex-xepersian.def}[2010/07/25 v0.1 xepersian adaptations for rapport1 class for XeTeX engine]
\renewcommand*\thepart{\@tartibi\c@part}
\renewcommand*\appendix{\par
  \setcounter{chapter}{0}%
  \setcounter{section}{0}%
  \gdef\@chapapp{\appendixname}%
  \gdef\thechapter{\@harfi\c@chapter}}
%    \end{macrocode}
% \iffalse
%</rapport1-xetex-xepersian.def>
%<*rapport3-xetex-xepersian.def>
%\fi
% \section{File \texttt{rapport3-xetex-xepersian.def}}
%    \begin{macrocode}
\ProvidesFile{rapport3-xetex-xepersian.def}[2010/07/25 v0.2 xepersian adaptations for rapport3 class for XeTeX engine]
\renewcommand*\thepart{\@tartibi\c@part}
\renewcommand*\appendix{\par
  \setcounter{chapter}{0}%
  \setcounter{section}{0}%
  \gdef\@chapapp{\appendixname}%
  \gdef\thechapter{\@harfi\c@chapter}}
%    \end{macrocode}
% \iffalse
%</rapport3-xetex-xepersian.def>
%<*refrep-xetex-xepersian.def>
%\fi
% \section{File \texttt{refrep-xetex-xepersian.def}}
%    \begin{macrocode}
\ProvidesFile{refrep-xetex-xepersian.def}[2010/07/25 v0.2 xepersian adaptations for refrep class for XeTeX engine]
\renewcommand \thepart {\@tartibi\c@part}
\renewcommand\appendix{\par
  \setcounter{chapter}{0}%
  \setcounter{section}{0}%
  \gdef\@chapapp{\appendixname}%
  \gdef\thechapter{\@harfi\c@chapter}
}%end appendix
%    \end{macrocode}
% \iffalse
%</refrep-xetex-xepersian.def>
%<*report-xetex-xepersian.def>
%\fi
% \section{File \texttt{report-xetex-xepersian.def}}
%    \begin{macrocode}
\ProvidesFile{report-xetex-xepersian.def}[2010/07/25 v0.2 xepersian adaptations for report class for XeTeX engine]
\renewcommand \thepart {\@tartibi\c@part}
\renewcommand\appendix{\par
  \setcounter{chapter}{0}%
  \setcounter{section}{0}%
  \gdef\@chapapp{\appendixname}%
  \gdef\thechapter{\@harfi\c@chapter}
}%end appendix
%    \end{macrocode}
% \iffalse
%</report-xetex-xepersian.def>
%<*scrartcl-xetex-xepersian.def>
%\fi
% \section{File \texttt{scrartcl-xetex-xepersian.def}}
%    \begin{macrocode}
\ProvidesFile{scrartcl-xetex-xepersian.def}[2022/05/22 v0.3 xepersian adaptations for scrartcl class for XeTeX engine]
\renewcommand*{\thepart}{\@tartibi\c@part}
\renewcommand*\appendix{%
  \Ifstr{\@currenvir}{appendix}{%
    \ClassWarning{\KOMAClassName}{%
      You are using
      `\string\begin{appendix}...\string\end{appendix}'.\MessageBreak
      You should note, that `\string\appendix' is a mostly
      globally\MessageBreak
      working command not an enviroment with only local\MessageBreak
      effects. Therefore `\string\end{appendix}' will neither\MessageBreak
      switch back to normal section numbering nor finish\MessageBreak
      every other effect of `\string\begin{appendix}'.\MessageBreak
      Nevertheless, some effects may end with\MessageBreak
      `\string\end{appendix}' and the document may become\MessageBreak
      inconsistent.\MessageBreak
      Because of this, you should remove `\string\end{appendix}'\MessageBreak
      and replace `\string\begin{appendix}' by command\MessageBreak
      `\string\appendix'%
    }%
  }{}%
  \par
  \setcounter{section}{0}%
  \setcounter{subsection}{0}%
  \gdef\thesection{\@harfi\c@section}%
}
\IfLTXAtLeastTF{2020/10/01}{%
  \g@addto@macro{\appendix}{\UseOneTimeHook{\KOMAClassName/appendix}}%
}{}
\g@addto@macro{\appendix}{\csname appendixmore\endcsname}
\renewcommand*{\@@maybeautodot}[1]{%
  \ifx #1\@stop\let\@@maybeautodot\relax
  \else
    \ifx #1\harfi \@autodottrue\fi
    \ifx #1\adadi \@autodottrue\fi
    \ifx #1\tartibi \@autodottrue\fi
    \ifx #1\Alph \@autodottrue\fi
    \ifx #1\alph \@autodottrue\fi
    \ifx #1\Roman \@autodottrue\fi
    \ifx #1\roman \@autodottrue\fi
    \ifx #1\@harfi \@autodottrue\fi
    \ifx #1\@adadi \@autodottrue\fi
    \ifx #1\@tartibi \@autodottrue\fi
    \ifx #1\@Alph \@autodottrue\fi
    \ifx #1\@alph \@autodottrue\fi
    \ifx #1\@Roman \@autodottrue\fi
    \ifx #1\@roman \@autodottrue\fi
    \ifx #1\romannumeral \@autodottrue\fi
  \fi
  \@@maybeautodot
}
%    \end{macrocode}
% \iffalse
%</scrartcl-xetex-xepersian.def>
%<*scrbook-xetex-xepersian.def>
%\fi
% \section{File \texttt{scrbook-xetex-xepersian.def}}
%    \begin{macrocode}
\ProvidesFile{scrbook-xetex-xepersian.def}[2022/05/22 v0.3 xepersian adaptations for scrbook class for XeTeX engine]
\renewcommand*\frontmatter{%
  \if@twoside\cleardoubleoddpage\else\clearpage\fi
  \@mainmatterfalse\pagenumbering{harfi}%
}
\renewcommand*{\thepart}{\@tartibi\c@part}
\renewcommand*\appendix{%
  \Ifstr{\@currenvir}{appendix}{%
    \ClassWarning{\KOMAClassName}{%
      You are using
      `\string\begin{appendix}...\string\end{appendix}'.\MessageBreak
      You should note, that `\string\appendix' is a mostly
      globally\MessageBreak
      working command not an enviroment with only local\MessageBreak
      effects. Therefore `\string\end{appendix}' will neither\MessageBreak
      switch back to normal section numbering nor finish\MessageBreak
      every other effect of `\string\begin{appendix}'.\MessageBreak
      Nevertheless, some effects may end with\MessageBreak
      `\string\end{appendix}' and the document may become\MessageBreak
      inconsistent.\MessageBreak
      Because of this, you should remove `\string\end{appendix}'\MessageBreak
      and replace `\string\begin{appendix}' by command\MessageBreak
      `\string\appendix'%
    }%
  }{}%
  \par
  \setcounter{chapter}{0}%
  \setcounter{section}{0}%
  \gdef\@chapapp{\appendixname}%
  \gdef\thechapter{\@harfi\c@chapter}%
}
\IfLTXAtLeastTF{2020/10/01}{%
  \g@addto@macro{\appendix}{\UseOneTimeHook{\KOMAClassName/appendix}}%
}{}
\g@addto@macro{\appendix}{\csname appendixmore\endcsname}
\renewcommand*{\@@maybeautodot}[1]{%
  \ifx #1\@stop\let\@@maybeautodot\relax
  \else
    \ifx #1\harfi \@autodottrue\fi
    \ifx #1\adadi \@autodottrue\fi
    \ifx #1\tartibi \@autodottrue\fi
    \ifx #1\Alph \@autodottrue\fi
    \ifx #1\alph \@autodottrue\fi
    \ifx #1\Roman \@autodottrue\fi
    \ifx #1\roman \@autodottrue\fi
    \ifx #1\@harfi \@autodottrue\fi
    \ifx #1\@adadi \@autodottrue\fi
    \ifx #1\@tartibi \@autodottrue\fi
    \ifx #1\@Alph \@autodottrue\fi
    \ifx #1\@alph \@autodottrue\fi
    \ifx #1\@Roman \@autodottrue\fi
    \ifx #1\@roman \@autodottrue\fi
    \ifx #1\romannumeral \@autodottrue\fi
  \fi
  \@@maybeautodot
}
%    \end{macrocode}
% \iffalse
%</scrbook-xetex-xepersian.def>
%<*scrreprt-xetex-xepersian.def>
%\fi
% \section{File \texttt{scrreprt-xetex-xepersian.def}}
%    \begin{macrocode}
\ProvidesFile{scrreprt-xetex-xepersian.def}[2022/05/22 v0.3 xepersian adaptations for scrreprt class for XeTeX engine]
\renewcommand*{\thepart}{\@tartibi\c@part}
\renewcommand*\appendix{%
  \Ifstr{\@currenvir}{appendix}{%
    \ClassWarning{\KOMAClassName}{%
      You are using
      `\string\begin{appendix}...\string\end{appendix}'.\MessageBreak
      You should note, that `\string\appendix' is a mostly
      globally\MessageBreak
      working command not an enviroment with only local\MessageBreak
      effects. Therefore `\string\end{appendix}' will neither\MessageBreak
      switch back to normal section numbering nor finish\MessageBreak
      every other effect of `\string\begin{appendix}'.\MessageBreak
      Nevertheless, some effects may end with\MessageBreak
      `\string\end{appendix}' and the document may become\MessageBreak
      inconsistent.\MessageBreak
      Because of this, you should remove `\string\end{appendix}'\MessageBreak
      and replace `\string\begin{appendix}' by command\MessageBreak
      `\string\appendix'%
    }%
  }{}%
  \par
  \setcounter{chapter}{0}%
  \setcounter{section}{0}%
  \gdef\@chapapp{\appendixname}%
  \gdef\thechapter{\@harfi\c@chapter}%
}
\IfLTXAtLeastTF{2020/10/01}{%
  \g@addto@macro{\appendix}{\UseOneTimeHook{\KOMAClassName/appendix}}%
}{}
\g@addto@macro{\appendix}{\csname appendixmore\endcsname}
\renewcommand*{\@@maybeautodot}[1]{%
  \ifx #1\@stop\let\@@maybeautodot\relax
  \else
    \ifx #1\harfi \@autodottrue\fi
    \ifx #1\adadi \@autodottrue\fi
    \ifx #1\tartibi \@autodottrue\fi
    \ifx #1\Alph \@autodottrue\fi
    \ifx #1\alph \@autodottrue\fi
    \ifx #1\Roman \@autodottrue\fi
    \ifx #1\roman \@autodottrue\fi
    \ifx #1\@harfi \@autodottrue\fi
    \ifx #1\@adadi \@autodottrue\fi
    \ifx #1\@tartibi \@autodottrue\fi
    \ifx #1\@Alph \@autodottrue\fi
    \ifx #1\@alph \@autodottrue\fi
    \ifx #1\@Roman \@autodottrue\fi
    \ifx #1\@roman \@autodottrue\fi
    \ifx #1\romannumeral \@autodottrue\fi
  \fi
  \@@maybeautodot
}
%    \end{macrocode}
% \iffalse
%</scrreprt-xetex-xepersian.def>
%<*soul-xetex-xepersian.def>
%\fi
% \section{File \texttt{soul-xetex-xepersian.def}}
%    \begin{macrocode}
\ProvidesFile{soul-xetex-xepersian.def}[2018/12/12 v0.2 xepersian adaptations for soul package for XeTeX engine]
\let\SOUL@tt@latin\SOUL@tt
\newfontface{\SOUL@tt@nonlatin}{Times New Roman}
\def\SOUL@tt{%
  \if@nonlatin
    \SOUL@tt@nonlatin
  \else
    \SOUL@tt@latin
  \fi
}
\bidi@appto\resetlatinfont{%
  \setbox\z@\hbox{\SOUL@tt-}%
  \SOUL@ttwidth\wd\z@
}
\bidi@appto\setpersianfont{%
  \setbox\z@\hbox{\SOUL@tt-}%
  \SOUL@ttwidth\wd\z@
}
%    \end{macrocode}
% \iffalse
%</soul-xetex-xepersian.def>
%<*tkz-linknodes-xetex-xepersian.def>
%\fi
% \section{File \texttt{tkz-linknodes-xetex-xepersian.def}}
%    \begin{macrocode}
\ProvidesFile{tkz-linknodes-xetex-xepersian.def}[2012/06/13 v0.1 xepersian adaptations for tkz-linknodes package for XeTeX engine]
\renewcommand*{\@SetTab}{%
 \let\@alph\@latinalph%
  \ifnum \value{C@NumTab}>25\relax%
     \setcounter{C@NumTab}{1}%
  \else%
     \stepcounter{C@NumTab}%
  \fi%
    \setcounter{C@NumGroup}{0}%
 \newcommand*{\PrefixCurrentTab}{\alph{C@NumTab}}
  \setboolean{B@FirstLink}{true}
  \setboolean{B@NewGroup}{false}
  \setcounter{C@NumGroup}{0}
  \setcounter{C@CurrentGroup}{0}
  \setcounter{NumC@Node}{0}
  \setcounter{NumC@Stop}{0}
  \setcounter{C@NextNode}{0}
  \setcounter{C@CurrentStop}{0}
  \setcounter{C@CurrentNode}{0}
}%
%    \end{macrocode}
% \iffalse
%</tkz-linknodes-xetex-xepersian.def>
%<*tocloft-xetex-xepersian.def>
%\fi
% \section{File \texttt{tocloft-xetex-xepersian.def}}
%    \begin{macrocode}
\ProvidesFile{tocloft-xetex-xepersian.def}[2025/01/03 v0.2 xepersian adaptations for tocloft package for XeTeX engine]
\IfClassLoadedT{memoir}{\endinput}
\renewcommand*{\cftchapname}{\if@RTL فصل\else chapter\fi}
\renewcommand*{\cftsecname}{\if@RTL قسمت\else section\fi}
\renewcommand*{\cftsubsecname}{\if@RTL زیرقسمت\else subsection\fi}
\renewcommand*{\cftsubsubsecname}{\if@RTL زیرزیرقسمت\else subsubsection\fi}
\renewcommand*{\cftparaname}{\if@RTL پاراگراف\else paragraph\fi}
\renewcommand*{\cftsubparaname}{\if@RTL زیرپاراگراف\else subparagraph\fi}
\renewcommand*{\cftfigname}{\if@RTL شکل\else figure\fi}
\renewcommand*{\cftsubfigname}{\if@RTL زیرشکل\else subfigure\fi}
\renewcommand*{\cfttabname}{\if@RTL جدول\else table\fi}
\renewcommand*{\cftsubtabname}{\if@RTL زیرجدول\else subtable\fi}
%    \end{macrocode}
% \iffalse
%</tocloft-xetex-xepersian.def>
%<*varioref-xetex-xepersian.def>
%\fi
% \section{File \texttt{varioref-xetex-xepersian.def}}
%    \begin{macrocode}
\ProvidesFile{varioref-xetex-xepersian.def}[2018/09/29 v0.1 xepersian adaptations for varioref package for XeTeX engine]
\def\reftextfaceafter{%
  \if@RTL
در صفحه
\reftextvario{مقابل}{بعد}%
  \else
    on the \reftextvario{facing}{next} page%
  \fi
}
\def\reftextfacebefore{%
  \if@RTL
در صفحه
\reftextvario{مقابل}{قبل}%
  \else
    on the \reftextvario{facing}{preceding} page%
  \fi
}
\def\reftextafter{%
  \if@RTL
در صفحه
\reftextvario{بعد}{بعد}%
  \else
    on the \reftextvario{following}{next} page%
  \fi
}
\def\reftextbefore{%
  \if@RTL
در صفحه
\reftextvario{قبل}{قبل}%
  \else
    on the \reftextvario{preceding}{previous} page%
  \fi
}
\def\reftextcurrent{%
  \if@RTL
در 
\reftextvario{همین صفحه}{صفحه جاری}%
  \else
    on \reftextvario{this}{the current} page%
  \fi
}
\def\reftextfaraway#1{%
  \if@RTL
در صفحه%
~\pageref{#1}%
  \else
    on page~\pageref{#1}%
  \fi
}
\def\reftextpagerange#1#2{%
  \if@RTL
در صفحه‌های%
~\pageref{#1}--\pageref{#2}%
  \else
    on pages~\pageref{#1}--\pageref{#2}%
  \fi
}
\def\reftextlabelrange#1#2{%
  \if@RTL
    \ref{#1} تا~\ref{#2}%
  \else
    \ref{#1} to~\ref{#2}%
  \fi
}
%    \end{macrocode}
% \iffalse
%</varioref-xetex-xepersian.def>
%<*xepersian.sty>
%\fi
% \section{File \texttt{xepersian.sty}}
%    \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
\def\xepersian@version{25.2.2}
\def\xepersiandate{2025/02/02}
\def\xepersian@releasename{Persian Gate}
\def\xepersian@persian@@releasename{دربند پارس}
\newcommand*{\xepersianreleasename}{\if@RTL\xepersian@persian@@releasename\else\xepersian@releasename\fi}
\ProvidesPackage{xepersian}[\xepersiandate\space v\xepersian@version\space (Release \xepersian@releasename)\space
Persian typesetting in XeLaTeX]
\newif\if@xepersian@banner
\newif\if@xepersian@@computeautoilg  
\DeclareUnknownKeyHandler{%
  \PassOptionsToPackage{\CurrentOption}{bidi}%
}
\ExplSyntaxOn
\msg_new:nnn {xepersian} {cannot-use-engine}
  {
    Oops!~can~not~use~\c_sys_engine_str.\\\\
    The~xepersian~package~requires~XeTeX.
  }
 \sys_if_engine_xetex:F
  {
    \msg_fatal:nn {xepersian} {cannot-use-engine}
  } 

\keys_define:nn { xepersian }
  {
    banner .choice: ,
    banner / on .code:n = 
      \@xepersian@bannertrue
      \PassOptionsToPackage{banner=on}{bidi} ,
    banner / off .code:n = 
      \@xepersian@bannerfalse
      \PassOptionsToPackage{banner=off}{bidi} ,
    banner .default:n = on
  }
\keys_define:nn { xepersian }
  {
    mathdigits .choice: ,
    mathdigits / automatic .code:n = \AtEndOfPackage{\AutoMathDigits} ,
    mathdigits / default .code:n = \AtEndOfPackage{\DefaultMathDigits} ,
    mathdigits / persian .code:n = \AtEndOfPackage{\PersianMathDigits}
  }
\keys_define:nn { xepersian }
  {
    inlinemathdigits .choice: ,
    inlinemathdigits / automatic .code:n = \AtEndOfPackage{\AutoInlineMathDigits} ,
    inlinemathdigits / default .code:n = \AtEndOfPackage{\DefaultInlineMathDigits} ,
    inlinemathdigits / persian .code:n = \AtEndOfPackage{\PersianInlineMathDigits}
  }
\keys_define:nn { xepersian }
  {
    displaymathdigits .choice: ,
    displaymathdigits / automatic .code:n = \AtEndOfPackage{\AutoDisplayMathDigits} ,
    displaymathdigits / default .code:n = \AtEndOfPackage{\DefaultDisplayMathDigits} ,
    displaymathdigits / persian .code:n = \AtEndOfPackage{\PersianDisplayMathDigits}
  }
\keys_define:nn { xepersian }
  {
    Kashida .choice: ,
    Kashida / on .code:n = \AtEndOfPackage{\input{kashida-xetex-xepersian.def}} ,
    Kashida / off .code:n = \relax ,
    Kashida .default:n = on
  }
\keys_define:nn { xepersian }
  {
    localize .choice: ,
    localize / on .code:n = \AtEndOfPackage{\input{localize-xetex-xepersian.def}} ,
    localize / off .code:n = \relax ,
    localize .default:n = on
  }
\cs_new_protected:Npn \__xepersian_quickindex_variant:n #1
{
  \AtEndOfPackage{%
      \ifwritexviii
        \@ifclassloaded{memoir}{%
          \PackageError{xepersian}{%
            This~feature~does~not~yet~work~with~the~memoir~class}{}%
        }{%
          \renewcommand\printindex{\newpage%
            \immediate\closeout\@indexfile
            \immediate\write18{%
              xindy~-L~persian-variant#1~-C~utf8~-M~texindy~-M~page-ranges~\jobname.idx}
               \@input@{\jobname.ind}}%
        }
      \else
        \PackageError{xepersian}{%
          “shell~escape”~(or~“write18”)~is~not~enabled.~You~need~to~run~“xelatex~--shell-escape”~on~your~TeX~document~for~this~feature~to~work}{}
      \fi
    }
}
\keys_define:nn { xepersian }
  {
    quickindex-variant .choice: ,
    quickindex-variant / one .code:n = \__xepersian_quickindex_variant:n { 1 } ,
    quickindex-variant / two .code:n = \__xepersian_quickindex_variant:n { 2 } ,
    quickindex-variant / three .code:n = \__xepersian_quickindex_variant:n { 3 }
  }
\keys_define:nn { xepersian }
  {
    abjad-variant .choice: ,
    abjad-variant / one .code:n = 
      \def\PersianAlphs{%
        \let\@alph\@abjad
        \let\@Alph\@abjad
      } ,
    abjad-variant / two .code:n = 
     \def\PersianAlphs{%
       \let\@alph\@Abjad
       \let\@Alph\@Abjad
     }
  }
\keys_define:nn { xepersian }
  {
    defaultlatinfontfeatures .code:n = \AtEndOfPackage{\defaultfontfeatures[\latinfont]{#1}}
  }
\keys_define:nn { xepersian }
  {
    mathfontsizescale .code:n = \def\xepersian@@math@fontsize@scale{#1}
  }
\keys_define:nn { xepersian }
  {
    fontsizescale .code:n = \def\xepersian@@fontsize@scale{#1}
  }
\keys_define:nn { xepersian }
  {
    fontsize .code:n = \AtEndOfPackage{\xepersian@@fontsize@branch{#1}}
  }
\keys_define:nn { xepersian }
  {
    latinfontsizescale .code:n = \def\xepersian@@latin@fontsize@scale{#1}
  } 
 \keys_define:nn { xepersian }
  {
    baselineskipscale .code:n = \def\xepersian@@baselineskip@scale{#1}
  } 
 \keys_define:nn { xepersian }
  {
    latinbaselineskipscale .code:n = \def\xepersian@@latin@baselineskip@scale{#1}
  }   
\keys_define:nn { xepersian }
  {
    computeautoilg .choice: ,
    computeautoilg / on .code:n = \@xepersian@@computeautoilgtrue ,
    computeautoilg / off .code:n = \@xepersian@@computeautoilgfalse ,
    computeautoilg .default:n = on
  }  
\keys_define:nn { xepersian }
  {
    debugtextdigitfont .choice: ,
    debugtextdigitfont / on .code:n = \AtEndOfPackage{%
      \bidi@AtEndPreamble{%
        \bidi@patchcmd\xepersian@@start@switch@textdigitfont\xepersian@textdigitfont{%
          \addfontfeature{Color=C71585}
        }{}{}
      }
    } ,
    debugtextdigitfont / off .code:n = \relax ,
    debugtextdigitfont .default:n = on
  }     
\keys_set:nn { xepersian }
  {
    banner = on ,
    abjad-variant = two ,
    fontsizescale = \@ne ,
    latinfontsizescale = \@ne ,
    mathfontsizescale = \@ne ,
    baselineskipscale = \@ne ,
    latinbaselineskipscale = \@ne
  }
\ExplSyntaxOff
\ProcessKeyOptions
\edef\@xepersian@info{****************************************************^^J%
* ^^J%
* xepersian package (Persian for LaTeX, using XeTeX engine)^^J%
* ^^J%
* Description: The package supports Persian^^J%
* typesetting, using fonts provided in the^^J%
* distribution.^^J%
* ^^J%
* Copyright (c) 2008--2025 Vafa Khalighi^^J%
* Copyright (c) 2018--2020 bidi-tex GitHub Organization^^J%
* ^^J%
* v\xepersian@version\space (Release \xepersian@releasename), \xepersiandate^^J%
* ^^J%
* License: LaTeX Project Public License, version^^J% 
* 1.3c or higher (your choice)^^J%
* ^^J%
* Location on CTAN: /macros/xetex/latex/xepersian^^J%
* ^^J%
* Issue tracker: https://github.com/xepersian/xepersian/issues^^J%
* ^^J%
* Discussions: https://github.com/xepersian/xepersian/discussions^^J%
* ^^J%
* Primary author of xepersian package: Vafa Khalighi.^^J%
* ^^J%
****************************************************}
\edef\xepersian@everyjob{\the\everyjob}
\if@xepersian@banner
  \typeout{\@xepersian@info}
  \everyjob{\xepersian@everyjob\typeout{\@xepersian@info}}
\fi
\RequirePackage{fontspec}
\RequirePackage{xepersian-persiancal}
\RequirePackage{unicode-persianmath}
\RequirePackage[%
  documentdirection=righttoleft,%
  tabledirection=righttoleft,%
  script=nonlatin,%
  footnotedirection=righttoleft,%
  footnoterule=automatic%
]{bidi}
\newcommand*{\xepersianversion}
  {\ensuremath\xepersian@version}
\def\prq{«}
\def\plq{»}
\def\xepersian@cmds@temp#1{%
  \begingroup\expandafter\expandafter\expandafter\endgroup
  \expandafter\ifx\csname xepersian@#1\endcsname\relax
    \begingroup
      \escapechar=-1 %
      \edef\x{\expandafter\meaning\csname#1\endcsname}%
      \def\y{#1}%
      \def\z##1->{}%
      \edef\y{\expandafter\z\meaning\y}%
    \expandafter\endgroup
    \ifx\x\y
      \expandafter\def\csname xepersian@#1\expandafter\endcsname
      \expandafter{%
        \csname#1\endcsname
      }%
    \fi
  \fi
}%
\xepersian@cmds@temp{shellescape}
\newif\ifwritexviii
\ifnum\xepersian@shellescape=1\relax
  \writexviiitrue
\else
\writexviiifalse
\fi
\newfontscript{Persian}{arab}
\newfontlanguage{Persian}{FAR}
\ExplSyntaxOn

\keys_define:nn {fontspec-opentype}
  {
    Ligatures / PersianTeX .code:n = { \tl_set:Nn \l__fontspec_mapping_tl {persian-tex-text} },
    Ligatures / PersianTeXOff .code:n = { \tl_clear:N \l__fontspec_mapping_tl },
    Ligatures / PersianTeXReset .code:n = { \tl_clear:N \l__fontspec_mapping_tl },
  }

\keys_define:nn {fontspec-aat}
 {
  Ligatures / PersianTeX .code:n =
   {
     \tl_set:Nn \l__fontspec_mapping_tl { persian-tex-text }
   }
 }
 
\keys_define:nn {fontspec-opentype}
  {
    Ligatures / PersianTeXNoNumbers .code:n = { \tl_set:Nn \l__fontspec_mapping_tl {persian-tex-text-nonumbers} },
    Ligatures / PersianTeXNoNumbersOff .code:n = { \tl_clear:N \l__fontspec_mapping_tl },
    Ligatures / PersianTeXNoNumbersReset .code:n = { \tl_clear:N \l__fontspec_mapping_tl },
  }

\keys_define:nn {fontspec-aat}
 {
  Ligatures / PersianTeXNoNumbers .code:n =
   {
     \tl_set:Nn \l__fontspec_mapping_tl { persian-tex-text-nonumbers }
   }
 }

\DeclareDocumentCommand \settextfont { O{} m O{} }
  {
    \__xepersian_main_settextfont:nn {#1,#3} {#2}
    \ignorespaces
  }
\cs_new:Nn \__xepersian_main_settextfont:nn
 {
  \fontspec_set_family:Nnn \l__fontspec_persianfont_family_tl {RawFeature={script=arab},Ligatures=PersianTeX,#1} {#2}
  \tl_set_eq:NN \rmdefault \l__fontspec_persianfont_family_tl
  \use:x { \exp_not:n { \DeclareRobustCommand \persianfont }
   {
    \exp_not:N \fontencoding { \g__fontspec_nfss_enc_tl }
    \exp_not:N \fontfamily { \l__fontspec_persianfont_family_tl }
    \exp_not:N \selectfont
   }
  }
  \str_if_eq:eeT {\familydefault} {\rmdefault}
    { \tl_set_eq:NN \encodingdefault \g__fontspec_nfss_enc_tl }
  \__xepersian_settextfont_hook:nn {#1} {#2}
  \normalfont
 }
 
\cs_set_eq:NN \__xepersian_settextfont_hook:nn   \use_none:nn
 
\DeclareDocumentCommand \settextdigitfont { O{} m O{} }
  {
    \__xepersian_main_settextdigitfont:nn {#1,#3} {#2} 
    \ignorespaces
  }
\cs_new:Nn \__xepersian_main_settextdigitfont:nn
 {
  \fontspec_set_family:Nnn \l__fontspec_textdigitfont_family_tl {Ligatures=PersianTeX,#1} {#2}
  \use:x
   {
    \exp_not:n { \DeclareRobustCommand \xepersian@textdigitfont }
     {
      \exp_not:N \fontfamily { \l__fontspec_textdigitfont_family_tl }
      \exp_not:N \fontencoding { \g__fontspec_nfss_enc_tl }
      \exp_not:N \selectfont
     }
   }
   \__xepersian_settextdigitfont_hook:nn {#1} {#2}
   \XeTeXinterchartoks \e@alloc@intercharclass@top \bidi@digits@charclass = {\xepersian@@start@switch@textdigitfont}
   \XeTeXinterchartoks \bidi@digits@charclass \e@alloc@intercharclass@top = {\xepersian@@stop@switch@textdigitfont}
   \XeTeXinterchartoks \z@ \bidi@digits@charclass = {\xepersian@@start@switch@textdigitfont}
   \XeTeXinterchartoks \bidi@digits@charclass \z@ = {\xepersian@@stop@switch@textdigitfont}
   \XeTeXinterchartoks \bidi@digits@charclass  \bidi@sepmark@charclass = {\xepersian@@stop@switch@textdigitfont}
   \XeTeXinterchartoks \bidi@sepmark@charclass  \bidi@digits@charclass = {\DigitsDotDashInterCharToks\xepersian@@start@switch@textdigitfont}
   \if@bidi@csundef{xepersian@dualjoiner}{}{%
     \XeTeXinterchartoks \xepersian@dualjoiner  \bidi@digits@charclass = {\xepersian@@start@switch@textdigitfont}
     \XeTeXinterchartoks \bidi@digits@charclass  \xepersian@dualjoiner = {\xepersian@@stop@switch@textdigitfont}
     \XeTeXinterchartoks \xepersian@lam  \bidi@digits@charclass = {\xepersian@@start@switch@textdigitfont}
     \XeTeXinterchartoks \bidi@digits@charclass  \xepersian@lam = {\xepersian@@stop@switch@textdigitfont}
     \XeTeXinterchartoks \xepersian@alef  \bidi@digits@charclass = {\xepersian@@start@switch@textdigitfont}
     \XeTeXinterchartoks \bidi@digits@charclass  \xepersian@alef = {\xepersian@@stop@switch@textdigitfont}
     \XeTeXinterchartoks \xepersian@rightjoiner  \bidi@digits@charclass = {\xepersian@@start@switch@textdigitfont}
     \XeTeXinterchartoks \bidi@digits@charclass  \xepersian@rightjoiner = {\xepersian@@stop@switch@textdigitfont}
   }
 }
 
\newcommand*{\xepersian@@start@switch@textdigitfont}{\ifx\f@family\ttdefault\else\if@nonlatin\if@@textdigitfont@on\let\xepersian@save@@f@family\f@family\xepersian@textdigitfont\else\fi\fi\fi}
\newcommand*{\xepersian@@stop@switch@textdigitfont}{\ifx\f@family\ttdefault\else\if@nonlatin\if@@textdigitfont@on\let\f@family\xepersian@save@@f@family\selectfont\else\fi\fi\fi} 
 
\cs_set_eq:NN \__xepersian_settextdigitfont_hook:nn   \use_none:nn
 
\DeclareDocumentCommand \setdigitfont { O{} m O{} }
  {
    \__xepersian_main_settextdigitfont:nn {#1,#3} {#2} 
    \__xepersian_main_setmathdigitfont:nn {#1,#3} {#2} 
    \ignorespaces
  } 


\DeclareDocumentCommand \setlatintextfont { O{} m O{} }
  {
    \__xepersian_main_setlatintextfont:nn {#1,#3} {#2} 
    \ignorespaces
  }
\cs_new:Nn \__xepersian_main_setlatintextfont:nn
 {
  \fontspec_set_family:Nnn \l__fontspec_latinfont_family_tl {Ligatures=TeX,#1} {#2}
  \use:x { \exp_not:n { \DeclareRobustCommand \latinfont }
   {
    \exp_not:N \fontencoding { \g__fontspec_nfss_enc_tl }
    \exp_not:N \fontfamily { \l__fontspec_latinfont_family_tl }
    \exp_not:N \selectfont
   }
  }
  \str_if_eq:eeT {\familydefault} {\rmdefault}
    { \tl_set_eq:NN \encodingdefault \g__fontspec_nfss_enc_tl }
  \__xepersian_setlatintextfont_hook:nn {#1} {#2}
  \normalfont
 }
 
\cs_set_eq:NN \__xepersian_setlatintextfont_hook:nn   \use_none:nn

\tl_set_eq:NN \setlatinsansfont \setsansfont
\tl_set_eq:NN \setlatinmonofont \setmonofont

\DeclareDocumentCommand \defpersianfont { m O{} m O{} }
  {
    \__xepersian_main_defpersianfont:NnnN #1 {#2,#4} {#3} 
    \NewDocumentCommand
  }
\DeclareDocumentCommand \redefpersianfont { m O{} m O{} }
  {
    \__xepersian_main_defpersianfont:NnnN #1 {#2,#4} {#3} 
    \RenewDocumentCommand
  }
\cs_new:Nn \__xepersian_main_defpersianfont:NnnN
 {
  \fontspec_set_family:cnn { l__fontspec_ \cs_to_str:N #1 _family_tl } {RawFeature={script=arab},Ligatures=PersianTeX,#2} {#3}
  \use:x
   {
    \exp_not:N #4 \exp_not:N #1 {}
     {
      \exp_not:N \fontfamily { \use:c {l__fontspec_ \cs_to_str:N #1 _family_tl } }
      \exp_not:N \fontencoding { \g__fontspec_nfss_enc_tl }
      \exp_not:N \selectfont
     }
   }
 }

\DeclareDocumentCommand \deflatinfont { m O{} m O{} }
  {
    \__xepersian_main_deflatinfont:NnnN #1 {#2,#4} {#3} 
    \NewDocumentCommand
  }
\DeclareDocumentCommand \redeflatinfont { m O{} m O{} }
  {
    \__xepersian_main_deflatinfont:NnnN #1 {#2,#4} {#3} 
    \RenewDocumentCommand
  }
\cs_new:Nn \__xepersian_main_deflatinfont:NnnN
 {
  \fontspec_set_family:cnn { l__fontspec_ \cs_to_str:N #1 _family_tl } {Ligatures=TeX,#2} {#3}
  \use:x
   {
    \exp_not:N #4 \exp_not:N #1 {}
     {
      \exp_not:N \fontfamily { \use:c {l__fontspec_ \cs_to_str:N #1 _family_tl } }
      \exp_not:N \fontencoding { \g__fontspec_nfss_enc_tl }
      \exp_not:N \selectfont
     }
   }
 }

\newcommand\persiansfdefault{}
\newcommand\persianttdefault{}
\newcommand\iranicdefault{}
\newcommand\navardefault{}
\newcommand\pookdefault{}
\newcommand\sayehdefault{}
\DeclareRobustCommand\persiansffamily
        {\not@math@alphabet\persiansffamily\mathpersiansf
         \fontfamily\persiansfdefault\selectfont}
\DeclareRobustCommand\persianttfamily
        {\not@math@alphabet\persianttfamily\mathpersiantt
         \fontfamily\persianttdefault\selectfont}
\DeclareRobustCommand\iranicfamily
        {\not@math@alphabet\iranicfamily\mathiranic
         \fontfamily\iranicdefault\selectfont}
\DeclareRobustCommand\navarfamily
        {\not@math@alphabet\navarfamily\mathnavar
         \fontfamily\navardefault\selectfont}
\DeclareRobustCommand\pookfamily
        {\not@math@alphabet\pookfamily\mathpook
         \fontfamily\pookdefault\selectfont}
\DeclareRobustCommand\sayehfamily
        {\not@math@alphabet\sayehfamily\mathsayeh
         \fontfamily\sayehdefault\selectfont}
\DeclareTextFontCommand{\textpersiansf}{\persiansffamily}
\DeclareTextFontCommand{\textpersiantt}{\persianttfamily}
\DeclareTextFontCommand{\textiranic}{\iranicfamily}
\DeclareTextFontCommand{\textnavar}{\navarfamily}
\DeclareTextFontCommand{\textpook}{\pookfamily}
\DeclareTextFontCommand{\textsayeh}{\sayehfamily}

\DeclareDocumentCommand \setpersiansansfont { O{} m O{} }
  {
    \__xepersian_main_setpersiansansfont:nn {#1,#3} {#2} 
    \ignorespaces
  }
\cs_new:Nn \__xepersian_main_setpersiansansfont:nn
 {
  \fontspec_set_family:Nnn \l__fontspec_persiansffamily_family_tl {RawFeature={script=arab},Ligatures=PersianTeX,#1} {#2}
  \tl_set_eq:NN \persiansfdefault \l__fontspec_persiansffamily_family_tl
  \use:x { \exp_not:n { \DeclareRobustCommand \persiansffamily }
   {
    \exp_not:N \fontencoding { \g__fontspec_nfss_enc_tl }
    \exp_not:N \fontfamily { \l__fontspec_persiansffamily_family_tl }
    \exp_not:N \selectfont
   }
  }
  \str_if_eq:eeT {\familydefault} {\persiansfdefault}
    { \tl_set_eq:NN \encodingdefault \g__fontspec_nfss_enc_tl }
  \__xepersian_setpersiansansfont_hook:nn {#1} {#2}
  \normalfont
 }

\cs_set_eq:NN \__xepersian_setpersiansansfont_hook:nn   \use_none:nn

\DeclareDocumentCommand \setpersianmonofont { O{} m O{} }
  {
    \__xepersian_main_setpersianmonofont:nn {#1,#3} {#2} 
    \ignorespaces
  }
\cs_new:Nn \__xepersian_main_setpersianmonofont:nn
 {
  \fontspec_set_family:Nnn \l__fontspec_persianttfamily_family_tl {RawFeature={script=arab},Ligatures=PersianTeX,#1} {#2}
  \tl_set_eq:NN \persianttdefault \l__fontspec_persianttfamily_family_tl
  \use:x { \exp_not:n { \DeclareRobustCommand \persianttfamily }
   {
    \exp_not:N \fontencoding { \g__fontspec_nfss_enc_tl }
    \exp_not:N \fontfamily { \l__fontspec_persianttfamily_family_tl }
    \exp_not:N \selectfont
   }
  }
  \str_if_eq:eeT {\familydefault} {\persianttdefault}
    { \tl_set_eq:NN \encodingdefault \g__fontspec_nfss_enc_tl }
  \__xepersian_setpersianmonofont_hook:nn {#1} {#2}
  \normalfont
 }
 
\cs_set_eq:NN \__xepersian_setpersianmonofont_hook:nn   \use_none:nn

\DeclareDocumentCommand \setnavarfont { O{} m O{} }
  {
    \__xepersian_main_setnavarfont:nn {#1,#3} {#2} 
    \ignorespaces
  }
\cs_new:Nn \__xepersian_main_setnavarfont:nn
 {
  \fontspec_set_family:Nnn \l__fontspec_navarfamily_family_tl {RawFeature={script=arab},Ligatures=PersianTeX,#1} {#2}
  \tl_set_eq:NN \navardefault \l__fontspec_navarfamily_family_tl
  \use:x { \exp_not:n { \DeclareRobustCommand \navarfamily }
   {
    \exp_not:N \fontencoding { \g__fontspec_nfss_enc_tl }
    \exp_not:N \fontfamily { \l__fontspec_navarfamily_family_tl }
    \exp_not:N \selectfont
   }
  }
  \str_if_eq:eeT {\familydefault} {\navardefault}
    { \tl_set_eq:NN \encodingdefault \g__fontspec_nfss_enc_tl }
  \__xepersian_setnavarfont_hook:nn {#1} {#2}
  \normalfont
 }
 
\cs_set_eq:NN \__xepersian_setnavarfont_hook:nn   \use_none:nn

\DeclareDocumentCommand \setpookfont { O{} m O{} }
  {
    \__xepersian_main_setpookfont:nn {#1,#3} {#2} 
    \ignorespaces
  }
\cs_new:Nn \__xepersian_main_setpookfont:nn
 {
  \fontspec_set_family:Nnn \l__fontspec_pookfamily_family_tl {RawFeature={script=arab},Ligatures=PersianTeX,#1} {#2}
  \tl_set_eq:NN \pookdefault \l__fontspec_pookfamily_family_tl
  \use:x { \exp_not:n { \DeclareRobustCommand \pookfamily }
   {
    \exp_not:N \fontencoding { \g__fontspec_nfss_enc_tl }
    \exp_not:N \fontfamily { \l__fontspec_pookfamily_family_tl }
    \exp_not:N \selectfont
   }
  }
  \str_if_eq:eeT {\familydefault} {\pookdefault}
    { \tl_set_eq:NN \encodingdefault \g__fontspec_nfss_enc_tl }
  \__xepersian_setpookfont_hook:nn {#1} {#2}
  \normalfont
 }

\cs_set_eq:NN \__xepersian_setpookfont_hook:nn   \use_none:nn

\DeclareDocumentCommand \setsayehfont { O{} m O{} }
  {
    \__xepersian_main_setsayehfont:nn {#1,#3} {#2} 
    \ignorespaces
  }
\cs_new:Nn \__xepersian_main_setsayehfont:nn
 {
  \fontspec_set_family:Nnn \l__fontspec_sayehfamily_family_tl {RawFeature={script=arab},Ligatures=PersianTeX,#1} {#2}
  \tl_set_eq:NN \sayehdefault \l__fontspec_sayehfamily_family_tl
  \use:x { \exp_not:n { \DeclareRobustCommand \sayehfamily }
   {
    \exp_not:N \fontencoding { \g__fontspec_nfss_enc_tl }
    \exp_not:N \fontfamily { \l__fontspec_sayehfamily_family_tl }
    \exp_not:N \selectfont
   }
  }
  \str_if_eq:eeT {\familydefault} {\sayehdefault}
    { \tl_set_eq:NN \encodingdefault \g__fontspec_nfss_enc_tl }
  \__xepersian_setsayehfont_hook:nn {#1} {#2}
  \normalfont
 }
 
\cs_set_eq:NN \__xepersian_setsayehfont_hook:nn   \use_none:nn

\DeclareDocumentCommand \setiranicfont { O{} m O{} }
  {
    \__xepersian_main_setiranicfont:nn {#1,#3} {#2} 
    \ignorespaces
  }
\cs_new:Nn \__xepersian_main_setiranicfont:nn
 {
  \fontspec_set_family:Nnn \l__fontspec_iranicfamily_family_tl {RawFeature={script=arab},Ligatures=PersianTeX,#1} {#2}
  \tl_set_eq:NN \iranicdefault \l__fontspec_iranicfamily_family_tl
  \use:x { \exp_not:n { \DeclareRobustCommand \iranicfamily }
   {
    \exp_not:N \fontencoding { \g__fontspec_nfss_enc_tl }
    \exp_not:N \fontfamily { \l__fontspec_iranicfamily_family_tl }
    \exp_not:N \selectfont
   }
  }
  \str_if_eq:eeT {\familydefault} {\iranicdefault}
    { \tl_set_eq:NN \encodingdefault \g__fontspec_nfss_enc_tl }
  \__xepersian_setiranicfont_hook:nn {#1} {#2}
  \normalfont
 }

\cs_set_eq:NN \__xepersian_setiranicfont_hook:nn   \use_none:nn

\ExplSyntaxOff
\def\resetlatinfont{%
\let\@xepersian@@fontsize@scale\xepersian@@fontsize@scale%
\let\@xepersian@@baselineskip@scale\xepersian@@baselineskip@scale%
\def\xepersian@@fontsize@scale{%
  \strip@pt\dimexpr 1pt * \dimexpr
  \xepersian@@latin@fontsize@scale pt\relax
  /  \dimexpr \@xepersian@@fontsize@scale pt\relax\relax
}%
\def\xepersian@@baselineskip@scale{%
  \strip@pt\dimexpr 1pt * \dimexpr
  \xepersian@@latin@baselineskip@scale pt\relax
  /  \dimexpr \@xepersian@@baselineskip@scale pt\relax\relax
}%
\@nonlatinfalse%
\let\normalfont\latinfont%
\let\reset@font\normalfont%
\latinfont%
\fontsize\f@size\f@baselineskip%
\selectfont%
\let\xepersian@@fontsize@scale\xepersian@@latin@fontsize@scale%
\let\xepersian@@baselineskip@scale\xepersian@@latin@baselineskip@scale%
}
\def\setpersianfont{%
\let\@xepersian@@fontsize@scale\xepersian@@fontsize@scale%
\let\@xepersian@@baselineskip@scale\xepersian@@baselineskip@scale%
\let\xepersian@@fontsize@scale\@ne%
\let\xepersian@@baselineskip@scale\@ne%
\@nonlatintrue%
\let\normalfont\persianfont%
\let\reset@font\normalfont%
\persianfont%
\fontsize\f@size\f@baselineskip%
\selectfont%
\let\xepersian@@fontsize@scale\@xepersian@@fontsize@scale%
\let\xepersian@@baselineskip@scale\@xepersian@@baselineskip@scale%
}
\bidi@newrobustcmd*{\lr}[1]{\LRE{\resetlatinfont#1}}
\bidi@newrobustcmd*{\rl}[1]{\RLE{\setpersianfont#1}}
\def\latin{\LTR\LatinAlphs\@RTL@footnotefalse\resetlatinfont}
\def\endlatin{\endLTR}
\newenvironment{latin*}{\latin
  \everypar{%
    {\setbox\z@\lastbox
      \ifvoid\z@
        \kern-\parindent
    \fi}%
  }%
}{\endlatin\@endpetrue}
\def\persian{\RTL\PersianAlphs\@RTL@footnotetrue\setpersianfont}
\def\endpersian{\endRTL}
\newenvironment{persian*}{\persian
  \everypar{%
    {\setbox\z@\lastbox
      \ifvoid\z@
        \kern-\parindent
    \fi}%
  }%
}{\endpersian\@endpetrue}
\newenvironment{latinitems}{\begin{LTRitems}\LatinAlphs\@RTL@footnotefalse\resetlatinfont}{\end{LTRitems}}
\newenvironment{persianitems}{\begin{RTLitems}\PersianAlphs\@RTL@footnotetrue\setpersianfont}{\end{RTLitems}}
\let\originaltoday=\today
\def\latintoday{\lr{\originaltoday}}
\def\today{\rl{\persiantoday}}
\def \@LTRmarginparreset {%
        \reset@font
        \resetlatinfont
        \normalsize
        \@minipagetrue
        \everypar{\@minipagefalse\everypar{}\beginL}%
}
\DeclareRobustCommand\Latincite{%
  \@ifnextchar [{\@tempswatrue\@Latincitex}{\@tempswafalse\@Latincitex[]}}
\def\@Latincitex[#1]#2{\leavevmode
  \let\@citea\@empty
  \@cite{\lr{\@for\@citeb:=#2\do
    {\@citea\def\@citea{,\penalty\@m\ }%
     \edef\@citeb{\expandafter\@firstofone\@citeb\@empty}%
     \if@filesw\immediate\write\@auxout{\string\citation{\@citeb}}\fi
     \@ifundefined{b@\@citeb}{\hbox{\reset@font\bfseries ?}%
       \G@refundefinedtrue
       \@latex@warning
         {Citation `\@citeb' on page \thepage \space undefined}}%
       {\@cite@ofmt{\csname b@\@citeb\endcsname}}}}}{#1}}
       
\renewcommand*{\bidi@font@@outputpage}{\if@RTLmain\setpersianfont\else\resetlatinfont\fi}
     
\newcount\xepersian@tcl
\newdimen\xepersian@ilg
\newdimen\xepersian@strutilg
\chardef\f@ur=4
\newcommand*{\xepersian@computeautoilg}{% compute the interline glue
 \xepersian@tcl=1536\xepersian@ilg\z@\xepersian@strutilg\z@
 \loop
 \iffontchar\font\xepersian@tcl
 \ifdim\XeTeXglyphbounds\tw@ \the\XeTeXcharglyph\xepersian@tcl>\z@
 \ifdim\XeTeXglyphbounds\tw@ \the\XeTeXcharglyph\xepersian@tcl>\xepersian@ilg
   \xepersian@ilg=\XeTeXglyphbounds\tw@ \the\XeTeXcharglyph\xepersian@tcl
 \fi
 \else
 \ifdim\XeTeXglyphbounds\tw@ \the\XeTeXcharglyph\xepersian@tcl<\z@
  \ifdim-\XeTeXglyphbounds\tw@ \the\XeTeXcharglyph\xepersian@tcl>\xepersian@ilg
   \xepersian@ilg=-\XeTeXglyphbounds\tw@ \the\XeTeXcharglyph\xepersian@tcl
 \fi
 \fi
 \fi
 \ifdim\XeTeXglyphbounds\f@ur \the\XeTeXcharglyph\xepersian@tcl>\z@
 \ifdim\XeTeXglyphbounds\f@ur \the\XeTeXcharglyph\xepersian@tcl>\xepersian@strutilg
   \xepersian@strutilg=\XeTeXglyphbounds\f@ur \the\XeTeXcharglyph\xepersian@tcl
 \fi
 \else
 \ifdim\XeTeXglyphbounds\f@ur \the\XeTeXcharglyph\xepersian@tcl<\z@
  \ifdim-\XeTeXglyphbounds\f@ur \the\XeTeXcharglyph\xepersian@tcl>\xepersian@strutilg
   \xepersian@strutilg=-\XeTeXglyphbounds\f@ur \the\XeTeXcharglyph\xepersian@tcl
 \fi
 \fi
 \fi
 \fi
 \advance\xepersian@tcl\@ne
 \ifnum\xepersian@tcl<1792\repeat
 \advance\xepersian@strutilg\xepersian@ilg
% \ifdim\xepersian@strutilg>\baselineskip
%  \PackageInfo{xepersian}{character with height+depth greater than current baselineskip found in font}
%  \PackageInfo{xepersian}{baselineskip changed to that height+depth!}
%  \linespread{\strip@pt\dimexpr 1pt * \xepersian@strutilg / \baselineskip\relax}
%  \selectfont
% \fi
}

\newif\if@@textdigitfont@on

\newcommand{\TextDigitFontOn}{\@@textdigitfont@ontrue}
\newcommand{\TextDigitFontOff}{\@@textdigitfont@onfalse}

\TextDigitFontOn

\newcommand*\xepersian@setlength[4]{%
    \ifdim #2<\ifdim #2=\z@ \z@ \else \p@\fi
      \ifdim #3<\ifdim #3=\z@ \z@ \else \p@\fi
        \ifdim #4<\ifdim #4=\z@ \z@ \else \p@\fi
          \setlength{#1}{\p@ \@plus\p@ \@minus\p@}%
        \else
          \setlength{#1}{\p@ \@plus\p@ \@minus#4}%
        \fi
      \else
        \ifdim #4<\ifdim #4=\z@ \z@ \else \p@\fi
          \setlength{#1}{\p@ \@plus#3 \@minus\p@}%
        \else
          \setlength{#1}{\p@ \@plus#3 \@minus#4}%
        \fi
      \fi
    \else
      \ifdim #3<\ifdim #3=\z@ \z@ \else \p@\fi
        \ifdim #4<\ifdim #4=\z@ \z@ \else \p@\fi
          \setlength{#1}{#2 \@plus\p@ \@minus\p@}%
        \else
          \setlength{#1}{#2 \@plus\p@ \@minus#4}%
        \fi
      \else
        \ifdim #4<\ifdim #4=\z@ \z@ \else \p@\fi
          \setlength{#1}{#2 \@plus#3 \@minus\p@}%
        \else
          \setlength{#1}{#2 \@plus#3 \@minus#4}%
        \fi
      \fi
    \fi
}

\newcommand*{\setfontsize}[2][1.2\@tempdima]{%
  \@defaultunits\@tempdima#2pt\relax\@nnil
  \setlength{\@tempdimc}{\@tempdima}%
  \addtolength{\@tempdimc}{-10\p@}%
  \edef\@ptsize{\strip@pt\@tempdimc}%
  \@defaultunits\@tempdimb#1pt\relax\@nnil
  \setlength{\@tempdimc}{\dimexpr (100\@tempdimb / \@tempdima * \p@)}%
  \edef\@tempb{\the\@tempdimc}%
  \setlength{\@tempdimc}{\@tempdima}%
  \def\@tempa##1##2##3##4##5\@nnil{\def##1{##2.##3##4}}%
  \expandafter\@tempa\expandafter\@tempb\@tempb\@nnil%
    \xepersian@setlength{\abovedisplayskip}%
                  {.8333\@tempdimb}{.1667\@tempdimb}{.5\@tempdimb}%
    \xepersian@setlength{\abovedisplayshortskip}{\z@}{.25\@tempdimb}{\z@}%
    \xepersian@setlength{\belowdisplayshortskip}%
                  {.5\@tempdimb}{.25\@tempdimb}{.25\@tempdimb}%
  \setlength{\belowdisplayskip}{\abovedisplayskip}%
  \edef\normalsize{%
    \noexpand\@setfontsize\noexpand\normalsize
    {\the\@tempdima}{\the\@tempdimb}%
    \abovedisplayskip \the\abovedisplayskip
    \abovedisplayshortskip \the\abovedisplayshortskip
    \belowdisplayskip \the\belowdisplayskip
    \belowdisplayshortskip \the\belowdisplayshortskip
    \let\noexpand\@listi\noexpand\@listI
  }%
  \setlength{\@tempdima}{0.9125\@tempdimc}%
  \setlength{\@tempdimb}{\@tempb\@tempdima}%
    \xepersian@setlength{\abovedisplayskip}%
                  {.8333\@tempdimb}{.1667\@tempdimb}{.5\@tempdimb}%
    \xepersian@setlength{\abovedisplayshortskip}{\z@}{.25\@tempdimb}{\z@}%
    \xepersian@setlength{\belowdisplayshortskip}%
                  {.5\@tempdimb}{.25\@tempdimb}{.25\@tempdimb}%
  \setlength{\belowdisplayskip}{\abovedisplayskip}%
  \edef\small{%
    \noexpand\@setfontsize\noexpand\small
    {\the\@tempdima}{\the\@tempdimb}%
    \abovedisplayskip \the\abovedisplayskip
    \abovedisplayshortskip \the\abovedisplayshortskip
    \belowdisplayskip \the\belowdisplayskip
    \belowdisplayshortskip \the\belowdisplayshortskip
    \let\noexpand\@listi\noexpand\@listi@small
  }%
  \setlength{\@tempdima}{.83334\@tempdimc}%
  \setlength{\@tempdimb}{\@tempb\@tempdima}%
    \xepersian@setlength{\abovedisplayskip}%
                  {.8333\@tempdimb}{.1667\@tempdimb}{.5\@tempdimb}%
    \xepersian@setlength{\abovedisplayshortskip}{\z@}{.25\@tempdimb}{\z@}%
    \xepersian@setlength{\belowdisplayshortskip}%
                  {.5\@tempdimb}{.25\@tempdimb}{.25\@tempdimb}%
  \setlength{\belowdisplayskip}{\abovedisplayskip}%
  \edef\footnotesize{%
    \noexpand\@setfontsize\noexpand\footnotesize
    {\the\@tempdima}{\the\@tempdimb}%
    \abovedisplayskip \the\abovedisplayskip
    \abovedisplayshortskip \the\abovedisplayshortskip
    \belowdisplayskip \the\belowdisplayskip
    \belowdisplayshortskip \the\belowdisplayshortskip
    \let\noexpand\@listi\noexpand\@listi@footnotesize
  }%
  \setlength{\@tempdima}{.66667\@tempdimc}%
  \setlength{\@tempdimb}{\@tempb\@tempdima}%
  \edef\scriptsize{%
    \noexpand\@setfontsize\noexpand\scriptsize
    {\the\@tempdima}{\the\@tempdimb}%
  }%
  \setlength{\@tempdima}{.5\@tempdimc}%
  \setlength{\@tempdimb}{\@tempb\@tempdima}%
  \edef\tiny{%
    \noexpand\@setfontsize\noexpand\tiny
    {\the\@tempdima}{\the\@tempdimb}%
  }%
  \setlength{\@tempdima}{1.2\@tempdimc}%
  \setlength{\@tempdimb}{\@tempb\@tempdima}%
  \edef\large{%
    \noexpand\@setfontsize\noexpand\large
    {\the\@tempdima}{\the\@tempdimb}%
  }%
  \setlength{\@tempdima}{1.44\@tempdimc}%
  \setlength{\@tempdimb}{\@tempb\@tempdima}%
  \edef\Large{%
    \noexpand\@setfontsize\noexpand\Large
    {\the\@tempdima}{\the\@tempdimb}%
  }%
  \setlength{\@tempdima}{1.728\@tempdimc}%
  \setlength{\@tempdimb}{\@tempb\@tempdima}%
  \edef\LARGE{%
    \noexpand\@setfontsize\noexpand\LARGE
    {\the\@tempdima}{\the\@tempdimb}%
  }%
  \setlength{\@tempdima}{2.074\@tempdimc}%
  \setlength{\@tempdimb}{\@tempb\@tempdima}%
  \edef\huge{%
    \noexpand\@setfontsize\noexpand\huge
    {\the\@tempdima}{\the\@tempdimb}%
  }%
  \setlength{\@tempdima}{2.488\@tempdimc}%
  \setlength{\@tempdimb}{\@tempb\@tempdima}%
  \edef\Huge{%
    \noexpand\@setfontsize\noexpand\Huge
    {\the\@tempdima}{\the\@tempdimb}%
  }%
  \normalsize
    \setlength{\@tempdimb}{\f@baselineskip}%
    \xepersian@setlength{\parsep}%
                  {.3333\@tempdimb}{.1667\@tempdimb}{.0833\@tempdimb}%
    \xepersian@setlength{\topsep}%
                  {.6667\@tempdimb}{.1667\@tempdimb}{.3333\@tempdimb}%
  \@tempswafalse
  \begingroup
    \def\@list@extra{\aftergroup\@tempswatrue}%
    \csname @listi\endcsname
  \endgroup
  \edef\@listi{\leftmargin\leftmargini
    \topsep \the\topsep
    \parsep \the\parsep
    \itemsep \parsep
    \if@tempswa\noexpand\@list@extra\fi
  }%
  \let\@listI\@listi
    \xepersian@setlength{\parsep}%
                  {.1667\@tempdimb}{.0833\@tempdimb}{.0833\@tempdimb}%
    \xepersian@setlength{\topsep}%
                  {.3333\@tempdimb}{.1667\@tempdimb}{.1667\@tempdimb}%
  \@tempswafalse
  \begingroup
    \def\@list@extra{\aftergroup\@tempswatrue}%
    \csname @listi\endcsname
  \endgroup
  \edef\@listi@small{\leftmargin\leftmargini
    \topsep \the\topsep
    \parsep \the\parsep
    \itemsep \parsep
    \if@tempswa\noexpand\@list@extra\fi
  }%
    \xepersian@setlength{\parsep}%
                  {.125\@tempdimb}{.0625\@tempdimb}{.0625\@tempdimb}%
    \xepersian@setlength{\topsep}%
                  {.25\@tempdimb}{.125\@tempdimb}{.125\@tempdimb}
  \@tempswafalse
  \begingroup
    \def\@list@extra{\aftergroup\@tempswatrue}%
    \csname @listi\endcsname
  \endgroup
  \edef\@listi@footnotesize{\leftmargin\leftmargini
    \topsep \the\topsep
    \parsep \the\parsep
    \itemsep \parsep
    \if@tempswa\noexpand\@list@extra\fi
  }%
    \xepersian@setlength{\parsep}%
                  {.1667\@tempdimb}{.0833\@tempdimb}{.0833\@tempdimb}%
    \xepersian@setlength{\topsep}%
                  {.3333\@tempdimb}{.1667\@tempdimb}{.0833\@tempdimb}%
  \@tempswafalse
  \begingroup
    \def\@list@extra{\aftergroup\@tempswatrue}%
    \csname @listii\endcsname
  \endgroup
  \edef\@listii{\leftmargin\leftmarginii
    \labelwidth=\dimexpr \leftmargin-\labelsep
    \topsep \the\topsep
    \parsep \the\parsep
    \itemsep \parsep
    \if@tempswa\noexpand\@list@extra\fi
  }%
    \xepersian@setlength{\topsep}%
                  {.1667\@tempdimb}{.0833\@tempdimb}{.0833\@tempdimb}%
  \setlength{\partopsep}{\z@ \@plus\z@ \@minus\p@}%
  \@tempswafalse
  \begingroup
    \def\@list@extra{\aftergroup\@tempswatrue}%
    \csname @listiii\endcsname
  \endgroup
  \edef\@listiii{\leftmargin\leftmarginiii
    \labelwidth=\dimexpr \leftmargin-\labelsep
    \topsep \the\topsep
    \parsep \z@
    \partopsep \the\partopsep
    \itemsep \topsep
    \if@tempswa\noexpand\@list@extra\fi
  }%
  \@tempswafalse
  \begingroup
    \def\@list@extra{\aftergroup\@tempswatrue}%
    \csname @listiv\endcsname
  \endgroup
  \edef\@listiv{\leftmargin\leftmarginiv
    \labelwidth=\dimexpr \leftmargin-\labelsep\relax
    \if@tempswa\noexpand\@list@extra\fi
  }%
  \@tempswafalse
  \begingroup
    \def\@list@extra{\aftergroup\@tempswatrue}%
    \csname @listv\endcsname
  \endgroup
  \edef\@listv{\leftmargin\leftmarginv
    \labelwidth=\dimexpr \leftmargin-\labelsep\relax
    \if@tempswa\noexpand\@list@extra\fi
  }%
  \@tempswafalse
  \begingroup
    \def\@list@extra{\aftergroup\@tempswatrue}%
    \csname @listvi\endcsname
  \endgroup
  \edef\@listvi{\leftmargin\leftmarginvi
    \labelwidth=\dimexpr \leftmargin-\labelsep\relax
    \if@tempswa\noexpand\@list@extra\fi
  }%
  \@listi
    \setlength{\@tempdimb}{\f@baselineskip}%
    \setlength{\footnotesep}{.555\@tempdimb}%
    \xepersian@setlength{\skip\footins}%
                  {.75\@tempdimb}{.3333\@tempdimb}{.1667\@tempdimb}%
    \xepersian@setlength{\floatsep}%
                  {\@tempdimb}{.1667\@tempdimb}{.1667\@tempdimb}%
    \xepersian@setlength{\textfloatsep}%
                  {1.6667\@tempdimb}{.1667\@tempdimb}{.3333\@tempdimb}%
    \setlength{\intextsep}{\floatsep}%
    \setlength{\dblfloatsep}{\floatsep}%
    \setlength{\dbltextfloatsep}{\textfloatsep}%
    \setlength{\@fptop}{\z@ \@plus 1fil}%
    \setlength{\@fpsep}{.6667\@tempdimb \@plus 2fil}%
    \setlength{\@fpbot}{\@fptop}%
    \setlength{\@dblfptop}{\@fptop}%
    \setlength{\@dblfpsep}{\@fpsep}%
    \setlength{\@dblfpbot}{\@fptop}%
    \xepersian@setlength{\partopsep}{.2\@tempdimb}{.1\@tempdimb}{.1\@tempdimb}%
}

\renewcommand*{\@bidi@logo@}{%
  \@bidi@logo@hb@xt@columnwidth
  {\hss\bfseries 
حروف‌چینی شده {\today} در {\TypesetTime} با
  \textsf{\XePersian}\quad\@bidi@logo{xepersian-logo.pdf}}}

\renewcommand*{\@bidi@pdfcreator}{%
  The xepersian package, v\xepersian@version\space (Release \xepersian@releasename), \xepersiandate
}

\newcommand*{\@xepersian@pdfcustomproperties}{%
  This is the xepersian package, Version \xepersian@version\space (Release \xepersian@releasename),
  Released February 2, 2025. 
}

\newcommand\twocolumnstableofcontents{%
\if@bidi@csundef{multi@column@out}{%
\PackageError{xepersian}{Oops! you should load multicol package before xepersian package for being able to use this command}{}}{%
  \begin{multicols}{2}[\section*{\contentsname}]%
    \small
    \@starttoc{toc}%
  \end{multicols}}}
\bidi@newrobustcmd*{\XePersian}{\leavevmode$\smash{\hbox{X\lower.5ex
  \hbox{\kern-.125em\bidi@reflect@box{E}}Persian}}$}
\AtBeginDocument{%
  \def\figurename{\if@RTL شکل\else Figure\fi}%
  \def\tablename{\if@RTL جدول\else Table\fi}%
  \def\contentsname{\if@RTL فهرست مطالب\else Contents\fi}%
  \def\listfigurename{\if@RTL فهرست تصاویر\else List of Figures\fi}%
  \def\listtablename{\if@RTL فهرست جداول\else List of Tables\fi}%
  \def\appendixname{\if@RTL پیوست\else Appendix\fi}%
  \def\indexname{\if@RTL نمایه\else Index\fi}%
  \def\refname{\if@RTL مراجع\else References\fi}%
  \def\abstractname{\if@RTL چکیده\else Abstract\fi}%
  \def\partname{\if@RTL بخش\else Part\fi}%
  \def\datename{\if@RTL تاریخ:\else Date:\fi}%
  \def\@@and{\if@RTL و\else and\fi}%
  \def\bibname{\if@RTL کتاب‌نامه\else Bibliography\fi}%
  \def\chaptername{\if@RTL فصل\else Chapter\fi}%
  \def\ccname{\if@RTL رونوشت\else cc\fi}%
  \def\enclname{\if@RTL پیوست\else encl\fi}%
  \def\pagename{\if@RTL صفحه\else Page\fi}%
  \def\headtoname{\if@RTL به\else To\fi}%
  \def\proofname{\if@RTL اثبات\else Proof\fi}%
}
\def\@Abjad#1{%
  \ifcase#1\or آ\or ب\or ج\or د%
           \or ه\or و\or ز\or ح\or ط%
           \or ی\or ک\or ل\or م\or ن%
           \or س\or ع\or ف\or ص%
           \or ق\or ر\or ش\or ت\or ث%
            \or خ\or ذ\or ض\or ظ\or غ%
            \else\@ctrerr\fi}
\def\Abjad#1{\expandafter\@Abjad\csname c@#1\endcsname}
\let\Abjadnumeral\@Abjad   
\def\@harfi#1{\ifcase#1\or آ\or ب\or پ\or ت\or ث\or
ج\or چ\or ح\or خ\or د\or ذ\or ر\or ز\or ژ\or س\or ش\or ص\or ض\or ط\or ظ\or ع\or غ\or
ف\or ق\or ک\or گ\or ل\or م\or ن\or و\or ه\or ی\else\@ctrerr\fi}
\def\harfi#1{\expandafter\@harfi\csname c@#1\endcsname}
\let\harfinumeral\@harfi
\newcommand{\adadi}[1]{%
\expandafter\@adadi\csname c@#1\endcsname%
}
\newcommand{\@adadi}[1]{%
\xepersian@numberstring{#1}\xepersian@yekanii{صفر}{}%
}
\let\adadinumeral\@adadi%
\def\xepersian@numberoutofrange#1#2{%
\PackageError{xepersian}{The number `#1' is too large %
to be formatted using xepersian}{The largest possible %
number is 999,999,999.}%
}
\def\xepersian@numberstring#1#2#3#4{%
\ifnum\number#1<\@ne%
#3%
\else\ifnum\number#1<1000000000 %
\expandafter\xepersian@adadi\expandafter{\number#1}#2%
\else%
\xepersian@numberoutofrange{#1}{#4}%
\fi\fi%
}
\def\xepersian@adadi#1#2{%
\expandafter\xepersian@@adadi%
\ifcase%
\ifnum#1<10 1%
\else\ifnum#1<100 2%
\else\ifnum#1<\@m 3%
\else\ifnum#1<\@M 4%
\else\ifnum#1<100000 5%
\else\ifnum#1<1000000 6%
\else\ifnum#1<10000000 7%
\else\ifnum#1<100000000 8%
\else9%
\fi\fi\fi\fi\fi\fi\fi\fi %
\or00000000#1% case 1: Add 8 leading zeros
\or0000000#1%  case 2: Add 7 leading zeros
\or000000#1%   case 3: Add 6 leading zeros
\or00000#1%    case 4: Add 5 leading zeros
\or0000#1%     case 5: Add 4 leading zeros
\or000#1%      case 6: Add 3 leading zeros
\or00#1%       case 7: Add 2 leading zeros
\or0#1%        case 8: Add 1 leading zero
\or#1%         case 9: Add no leading zeros
\or%
\@nil#2%
\fi%
}
\def\xepersian@@adadi#1#2#3#4#5#6#7\or#8\@nil#9{%
\ifnum#1#2#3>\z@
\xepersian@milyoongan#1#2#3%
\ifnum#7>\z@\ifnum#4#5#6>\z@\ و \else\ و \fi\else\ifnum#4#5#6>\z@\ و \fi\fi%
\fi%
\ifnum#4#5#6>\z@%
\xepersian@sadgan#4#5#6{#1#2#3}{#4#5}\xepersian@yekani%
\ifnum#4#5#6>\@ne‌\fi%
هزار%
\ifnum#7>\z@\ و \fi%
\fi%
\xepersian@sadgan#7{#4#5#6}1#9%
}
\def\xepersian@milyoongan#1#2#3{%
\ifnum#1#2#3=\@ne%
\xepersian@sadgan#1#2#301\xepersian@yekaniii%
‌%
میلیون%
\else%
\xepersian@sadgan#1#2#301\xepersian@yekanii%
‌%
میلیون%
\fi%
}
\def\xepersian@sadgan#1#2#3#4#5#6{%
\ifnum#1>\z@%
\ifnum#4#1>\@ne\xepersian@yekaniv#1\fi%
صد%
\ifnum#2#3>\z@\ و \fi%
\fi%
\ifnum#2#3<20%
\ifnum#5#2#3>\@ne#6{#2#3}\fi%
\else%
\xepersian@dahgan#2%
\ifnum#3>\z@\ و \xepersian@yekani#3\fi%
#60%
\fi%
}
\def\xepersian@yekani#1{%
\ifcase#1\@empty\or یک\or دو\or سه\or چهار\or پنج\or شش%
\or هفت\or هشت\or نه\or ده\or یازده\or دوازده\or سیزده%
\or چهارده\or پانزده\or شانزده\or هفده%
\or هجده\or نوزده\fi%
}
\def\xepersian@yekanii#1{%
\ifcase#1\@empty\or یک\else\xepersian@yekani{#1}\fi%
}
\def\xepersian@yekaniii#1{%
\ifcase#1\@empty\or یک\else\xepersian@yekani{#1}\fi%
}
\def\xepersian@yekaniv#1{%
\ifcase#1\@empty\or\or دوی\or سی\or چهار\or پان\or شش%
\or هفت\or هشت\or نه\fi%
}
\def\xepersian@dahgan#1{%
\ifcase#1\or\or بیست\or سی\or چهل%
\or پنجاه\or شصت\or هفتاد\or هشتاد%
\or نود\fi%
}
\newcommand{\tartibi}[1]{%
\expandafter\@tartibi\csname c@#1\endcsname%
}
\newcommand{\@tartibi}[1]{%
\xepersian@numberstring@tartibi{#1}\xepersian@tartibi{صفرم}{م}%
}
\let\tartibinumeral\@tartibi%
\def\xepersian@numberstring@tartibi#1#2#3#4{%
\ifnum\number#1<\@ne%
#3%
\else\ifnum\number#1<1000000000 %
\expandafter\xepersian@adadi@tartibi\expandafter{\number#1}#2%
\else%
\xepersian@numberoutofrange{#1}{#4}%
\fi\fi%
}
\def\xepersian@adadi@tartibi#1#2{%
\expandafter\xepersian@@adadi@tartibi%
\ifcase%
\ifnum#1<10 1%
\else\ifnum#1<100 2%
\else\ifnum#1<\@m 3%
\else\ifnum#1<\@M 4%
\else\ifnum#1<100000 5%
\else\ifnum#1<1000000 6%
\else\ifnum#1<10000000 7%
\else\ifnum#1<100000000 8%
\else9%
\fi\fi\fi\fi\fi\fi\fi\fi %
\or00000000#1% case 1: Add 8 leading zeros
\or0000000#1%  case 2: Add 7 leading zeros
\or000000#1%   case 3: Add 6 leading zeros
\or00000#1%    case 4: Add 5 leading zeros
\or0000#1%     case 5: Add 4 leading zeros
\or000#1%      case 6: Add 3 leading zeros
\or00#1%       case 7: Add 2 leading zeros
\or0#1%        case 8: Add 1 leading zero
\or#1%         case 9: Add no leading zeros
\or%
\@nil#2%
\fi%
}
\def\xepersian@@adadi@tartibi#1#2#3#4#5#6#7\or#8\@nil#9{%
\ifnum#1#2#3>\z@
\xepersian@milyoongan@tartibi#1#2#3%
\ifnum#7>\z@\ifnum#4#5#6>\z@\ و \else\ و \fi\else\ifnum#4#5#6>\z@\ و \fi\fi%
\fi%
\ifnum#4#5#6>\z@%
\xepersian@sadgan#4#5#6{#1#2#3}{#4#5}\xepersian@yekani%
\ifnum#4#5#6>\@ne ‌\fi%
هزار%
\ifnum#7>\z@\ و \fi%
\fi%
\xepersian@sadgan@tartibi#7{#4#5#6}1#9%
}
\def\xepersian@milyoongan@tartibi#1#2#3{%
\ifnum#1#2#3=\@ne%
\xepersian@sadgan@tartibi#1#2#301\xepersian@yekaniii%
‌%
میلیون%
\else%
\xepersian@sadgan#1#2#301\xepersian@yekanii%
‌%
میلیون%
\fi%
}
\def\xepersian@sadgan@tartibi#1#2#3#4#5#6{%
\ifnum#1>\z@%
\ifnum#4#1>\@ne\xepersian@yekaniv#1\fi%
صد%
\ifnum#2#3>\z@\ و \fi%
\fi%
\ifnum#2#3<20%
\ifnum#5#2#3>\@ne\ifnum#1#2#3#4#5=10001 اول\else#6{#2#3}\fi\fi%
\else%
\ifnum#2#3=30%
\xepersian@dahgan@tartibi#2%
\else%
\xepersian@dahgan#2%
\fi%
\ifnum#3>\z@\ و \xepersian@yekanv#3\fi%
#60%
\fi%
}
\def\xepersian@dahgan@tartibi#1{%
\ifcase#1\or\or بیست\or سی‌ا\or چهل%
\or پنجاه\or شصت\or هفتاد\or هشتاد%
\or نود\fi%
}
\def\xepersian@tartibi#1{%
\ifcase#1م\or یکم\or دوم\or سوم\or چهارم%
\or پنجم\or ششم\or هفتم\or هشتم\or نهم%
\or دهم\or یازدهم\or دوازدهم\or سیزدهم%
\or چهاردهم\or پانزدهم\or شانزدهم%
\or هفدهم\or هجدهم\or نوزدهم\fi%
}
\def\xepersian@yekanv#1{%
\ifcase#1\@empty\or یک\or دو\or سو\or چهار\or پنج\or شش%
\or هفت\or هشت\or نه\or ده\or یازده\or دوازده\or سیزده%
\or چهارده\or پانزده\or شانزده\or هفده%
\or هجده\or نوزده\fi%
}
\providecommand*{\xpg@warning}[1]{%
   \PackageWarning{XePersian}%
   {#1}}
\if@bidi@csundef{@abjad}{%
\def\@abjad#1{%
\ifnum#1>1999 \xpg@warning{Illegal value (#1) for abjad numeral} {#1}
\else
  \ifnum#1<\z@\space\xpg@warning{Illegal value (#1) for abjad numeral}%
  \else
    \ifnum#1<10\expandafter\abj@num@i\number#1%
    \else
      \ifnum#1<100\expandafter\abj@num@ii\number#1%
      \else
        \ifnum#1<\@m\expandafter\abj@num@iii\number#1%
        \else
          \ifnum#1<\@M\expandafter\abj@num@iv\number#1%since #1<2000, we must have 1000
          \fi
        \fi
      \fi
    \fi
  \fi
\fi
}
\def\abjad#1{\expandafter\@abjad\csname c@#1\endcsname}
\let\abjadnumeral\@abjad
\def\abjad@zero{}
\def\abj@num@i#1{%
  \ifcase#1\or آ\or ب\or ج\or د%
           \or ه\or و\or ز\or ح\or ط\fi
  \ifnum#1=\z@\abjad@zero\fi}
\def\abj@num@ii#1{%
  \ifcase#1\or ی\or ک\or ل\or م\or ن%
           \or س\or ع\or ف\or ص\fi
  \ifnum#1=\z@\fi\abj@num@i}
\def\abj@num@iii#1{%
  \ifcase#1\or ق\or ر\or ش\or ت\or ث%
            \or خ\or ذ\or ض\or ظ\fi
  \ifnum#1=\z@\fi\abj@num@ii}
\def\abj@num@iv#1{%
  \ifcase#1\or غ\fi
  \ifnum#1=\z@\fi\abj@num@iii}
}{}
\let\@latinalph\@alph%
\let\@latinAlph\@Alph%
\def\LatinAlphs{%
   \let\@alph\@latinalph%
   \let\@Alph\@latinAlph%
}
\def\thempfootnote{{\itshape\@latinalph\c@mpfootnote}}
\renewcommand*{\bidi@@thebibliography@font@hook}{%
\if@LTRbibitems 
  \resetlatinfont
\fi}
\bidi@AfterEndPreamble{%
\if@bidi@csundef{persianfont}{%
\PackageError{xepersian}{You have not specified any font\MessageBreak
 for the main Persian text}{Use `\settextfont' to load a font.}%
}{}}

\ApplyPatchToFiles{%
  footnote-xetex-bidi, %
  extrafootnotefeatures-xetex-bidi %
}[def][xepersian]

\ApplyPatchToClasses{%
  article, %
  amsart, %
  amsbook, %
  artikel1, %
  artikel2, %
  artikel3, %
  beamer, %
  bidimoderncv, %
  boek, %
  boek3, %
  book, %
  bookest, %
  extbook, %
  extarticle, %
  extreport, %
  imsproc, %
  memoir, %
  rapport1, %
  rapport3, %
  refrep, %
  report, %
  scrartcl, %
  scrbook, %
  scrreprt %
}[xepersian]

\ApplyPatchToPackages{%
  algorithm, %
  algorithmic, %
  appendix, %
  backref, %
  beamerbasetranslator, %
  bidituftesidenote, %
  breqn, %
  enumerate, %
  enumitem, %
  fancyref, %
  framed, %
  glossaries, %
  hyperref, %
  listings, %
  minitoc, %
  natbib, %
  soul, %
  tkz-linknodes, %
  tocloft, %
  url, %
  varioref %
}[xepersian]

\newtoks\xepersian@toks
\def\xepersian@tempa#1{%
\long\def\xepersian@@sp@def##1##2{%
  \futurelet\xepersian@resa\xepersian@@sp@d##2\@nil\@nil#1\@nil\relax##1}%
\long\def\xepersian@@sp@d{%
  \ifx\xepersian@resa\@sptoken
    \expandafter\xepersian@@sp@b
  \else
    \expandafter\xepersian@@sp@b\expandafter#1%
  \fi}%
\long\def\xepersian@@sp@b#1##1 \@nil{\xepersian@@sp@c##1}%
  }
\xepersian@tempa{ }
\long\def\xepersian@@sp@c#1\@nil#2\relax#3{\xepersian@toks{#1}\edef#3{\the\xepersian@toks}}
\def\xepersian@@fontsize@branch#1{%
  \@tempcnta\z@
  \@for\xepersian@tmp:=#1\do{%
    \xepersian@@sp@def\xepersian@frag{\xepersian@tmp}%
    \ifcase\@tempcnta\relax% cnta == 0
      \edef\xepersian@value{\xepersian@frag}%
      \setfontsize{\xepersian@frag}%
    \or% cnta == 1
      \setfontsize[\xepersian@frag]{\xepersian@value}%
    \else\fi
    \advance\@tempcnta\@ne}%
}

\bidi@patchcmd{\set@fontsize}{\@tempdimb#2pt}{%
  \@tempdimb\xepersian@@fontsize@scale\dimexpr#2pt\relax
}{}{}

\bidi@patchcmd{\set@fontsize}{\@tempskipa#3pt}{%
  \@tempskipa\xepersian@@baselineskip@scale\dimexpr#3pt\relax
}{}{}


\newcommand*{\xepersian@@update@math@fontsize}[1]{%
  \strip@pt\dimexpr\xepersian@@math@fontsize@scale
  \dimexpr 1pt * \dimexpr #1 pt\relax /
  \dimexpr \xepersian@@fontsize@scale pt\relax
  \relax\relax
}

\bidi@patchcmd{\getanddefine@fonts}{%
  \xdef\font@name{\csname \string#2/\tf@size\endcsname}%
}{%
  \xdef\font@name{\csname \string#2/\xepersian@@update@math@fontsize\tf@size\endcsname}%
}{}{}

\bidi@patchcmd{\getanddefine@fonts}{%
  \xdef\font@name{\csname \string#2/\sf@size\endcsname}%
}{%
  \xdef\font@name{\csname \string#2/\xepersian@@update@math@fontsize\sf@size\endcsname}%
}{}{}

\bidi@patchcmd{\getanddefine@fonts}{%
  \xdef\font@name{\csname \string#2/\ssf@size\endcsname}%
}{%
  \xdef\font@name{\csname \string#2/\xepersian@@update@math@fontsize\ssf@size\endcsname}%
}{}{}


\if@xepersian@@computeautoilg
\bidi@patchcmd{\set@fontsize}{%
\baselineskip\f@baselineskip\relax
}{%
\baselineskip\f@baselineskip\relax
\xepersian@computeautoilg
 \ifdim\xepersian@strutilg>\baselineskip
  \PackageInfo{xepersian}{character with height+depth greater than current baselineskip found in font}%
  \PackageInfo{xepersian}{baselineskip changed to that height+depth!}%
  \baselineskip\xepersian@strutilg
  \ifdim\footnotesep=.7\baselineskip
  \else
    \footnotesep.7\baselineskip
  \fi
 \fi
}{}{}
\fi

\AtEndOfPackage{%
  \setlatintextfont[%
    Path,%
    BoldFont={lmroman10-bold},%
    BoldItalicFont={lmroman10-bolditalic},%
    ItalicFont={lmroman10-italic},%
    SmallCapsFont={lmromancaps10-regular},%
    SlantedFont={lmromanslant10-regular},%
    BoldSlantedFont={lmromanslant10-bold}%
  ]{lmroman10-regular}
}
\PersianAlphs
%    \end{macrocode}
% \iffalse
%</xepersian.sty>
%<*xepersian-magazine.cls>
%\fi
% \section{File \texttt{xepersian-magazine.cls}}
%    \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{xepersian-magazine}[2010/07/25 v0.2 Typesetting Persian magazines in XeLaTeX]
\RequirePackage{ifthen}
\newlength{\xepersian@imgsize}
\newlength{\xepersian@coltitsize}
\newlength{\xepersian@pageneed}
\newlength{\xepersian@pageleft}
\newlength{\xepersian@indexwidth}
\newcommand{\xepersian@ncolumns}{0}
\newlength{\columnlines}
\setlength{\columnlines}{0 pt} % no lines by default
\newboolean{xepersian@hyphenatedtitles}
\setboolean{xepersian@hyphenatedtitles}{true}
\newboolean{xepersian@ninepoints}
\setboolean{xepersian@ninepoints}{false}
\newboolean{xepersian@showgrid}
\setboolean{xepersian@showgrid}{false}
\newboolean{xepersian@a3paper}
\setboolean{xepersian@a3paper}{false}
\newboolean{xepersian@insidefrontpage}
\setboolean{xepersian@insidefrontpage}{false}
\newboolean{xepersian@insideweather}
\setboolean{xepersian@insideweather}{false}
\newboolean{xepersian@insideindex}
\setboolean{xepersian@insideindex}{false}
\newcount\xepersian@gridrows
\newcount\xepersian@gridcolumns
\xepersian@gridrows=40
\xepersian@gridcolumns=50
\newcount\minraggedcols
\minraggedcols=5
\DeclareOption{10pt}{\PassOptionsToClass{10pt}{article}}
\DeclareOption{11pt}{\PassOptionsToClass{11pt}{article}}
\DeclareOption{12pt}{\PassOptionsToClass{12pt}{article}}
\DeclareOption{twocolumn}%
{\ClassWarning{xepersian-magazine}{Option 'twocolumn' not available for xepersian-magazine.}}
\DeclareOption{notitlepage}%
{\ClassWarning{xepersian-magazine}{Option 'notitlepage' not available for xepersian-magazine.}}
\DeclareOption{twoside}%
{\ClassWarning{xepersian-magazine}{Option 'twoside' not available for xepersian-magazine.}}
\DeclareOption{9pt}{\setboolean{xepersian@ninepoints}{true}}
\DeclareOption{hyphenatedtitles}{\setboolean{xepersian@hyphenatedtitles}{false}}
\DeclareOption{columnlines}{\setlength{\columnlines}{0.1 pt}}
\DeclareOption{showgrid}{\setboolean{xepersian@showgrid}{true}}
\DeclareOption{a3paper}{\setboolean{xepersian@a3paper}{true}}
\ProcessOptions\relax
\LoadClass[10pt, onecolumn, titlepage, a4paper]{article}
\RequirePackage{ifxetex}
\RequirePackage{multido}
\RequirePackage{datetime}
\RequirePackage{multicol}
\RequirePackage{fancyhdr}
\RequirePackage{fancybox}
\ifthenelse{\boolean{xepersian@a3paper}}{%
\RequirePackage[a3paper,headsep=0.5cm,vmargin={2cm,2cm},hmargin={1.5cm,1.5cm}]{geometry}
}{
\RequirePackage[headsep=0.5cm,vmargin={2cm,2cm},hmargin={1.5cm,1.5cm}]{geometry}
}
\RequirePackage[absolute]{textpos} % absoulte positioning
\RequirePackage{hyphenat} % when hyphenate
\RequirePackage{lastpage} % to know the last page number
\RequirePackage{setspace} % set space between lines
\RequirePackage{ragged2e}
\newcommand{\raggedFormat}{\RaggedLeft}
\AtEndOfClass{\xepersianInit}
\ifthenelse{\boolean{xepersian@showgrid}}{%
\AtBeginDocument{
\grid[show]{\xepersian@gridrows}{\xepersian@gridcolumns}}
\advance\minraggedcols by -1
}{%
\AtBeginDocument{
\grid[]{\xepersian@gridrows}{\xepersian@gridcolumns}}
\advance\minraggedcols by -1
}
\ifthenelse{\boolean{xepersian@ninepoints}}{
\renewcommand{\normalsize}{%
  \@setfontsize{\normalsize}{9pt}{10pt}%
  \setlength{\abovedisplayskip}{5pt plus 1pt minus .5pt}%
  \setlength{\belowdisplayskip}{\abovedisplayskip}%
  \setlength{\abovedisplayshortskip}{3pt plus 1pt minus 2pt}%
  \setlength{\belowdisplayshortskip}{\abovedisplayshortskip}}

\renewcommand{\tiny}{\@setfontsize{\tiny}{5pt}{6pt}}

\renewcommand{\scriptsize}{\@setfontsize{\scriptsize}{7pt}{8pt}}

\renewcommand{\small}{%
  \@setfontsize{\small}{8pt}{9pt}%
  \setlength{\abovedisplayskip}{4pt plus 1pt minus 1pt}%
  \setlength{\belowdisplayskip}{\abovedisplayskip}%
  \setlength{\abovedisplayshortskip}{2pt plus 1pt}%
  \setlength{\belowdisplayshortskip}{\abovedisplayshortskip}}

\renewcommand{\footnotesize}{%
  \@setfontsize{\footnotesize}{8pt}{9pt}%
  \setlength{\abovedisplayskip}{4pt plus 1pt minus .5pt}%
  \setlength{\belowdisplayskip}{\abovedisplayskip}%
  \setlength{\abovedisplayshortskip}{2pt plus 1pt}%
  \setlength{\belowdisplayshortskip}{\abovedisplayshortskip}}

\renewcommand{\large}{\@setfontsize{\large}{11pt}{13pt}}
\renewcommand{\Large}{\@setfontsize{\Large}{14pt}{18pt}}
\renewcommand{\LARGE}{\@setfontsize{\LARGE}{18pt}{20pt}}
\renewcommand{\huge}{\@setfontsize{\huge}{20pt}{25pt}}
\renewcommand{\Huge}{\@setfontsize{\Huge}{25pt}{30pt}}
}{}
\def\customwwwTxt#1{\gdef\@customwwwTxt{\lr{#1}}}
\newcommand{\xepersian@wwwFormat}{\sffamily}
\newcommand{\xepersian@www}{%
\raisebox{-3pt}{{\xepersian@wwwFormat\@customwwwTxt}}
}
\newcommand{\xepersian@edition}{ویرایش من}
\newcommand{\editionFormat}{\large\bfseries\texttt}
\newcommand{\xepersian@editionLogo}{%
\raisebox{-3pt}{%
{\editionFormat\xepersian@edition}%
}%
}
\newcommand{\indexFormat}{\large\bfseries}
\newcommand{\xepersian@indexFrameTitle}[1]
{\begin{flushright}{{\indexFormat #1}}\end{flushright}}

\newcommand{\indexEntryFormat}{\normalsize}
\newcommand{\xepersian@indexEntry}[1]{\begin{minipage}{13\TPHorizModule}%
{\indexEntryFormat\noindent\ignorespaces{#1}}%
\end{minipage}}
\newcommand{\indexEntrySeparator}{\rule{\xepersian@indexwidth}{.1pt}}
\newcommand{\indexEntryPageTxt}{صفحهٔ}
\newcommand{\indexEntryPageFormat}{\footnotesize}
\newcommand{\xepersian@indexEntryPage}[1]{%
{\indexEntryPageFormat{\indexEntryPageTxt{}~#1}}%
}
\newcommand{\headDateTimeFormat}{}
\newcommand{\xepersian@headDateTime}{%
\headDateTimeFormat\date\hspace{5pt}$\parallel$\hspace{5pt}%
\currenttime %
}
\newcommand{\weatherFormat}{\bfseries}
\newcommand{\xepersian@weather}[1]{%
\noindent{\weatherFormat #1}%
}
\newcommand{\weatherTempFormat}{\small}
\newcommand{\weatherUnits}{\textdegree{}C}
\newcommand{\xepersian@section}[0]{صفحهٔ جلو}
\newcommand{\xepersian@headleft}{%
{\small\bfseries \@custommagazinename}، \date
}
\newcommand{\xepersian@headcenter}{%
\xepersian@section{}
}
\newcommand{\xepersian@headright}{%
\small\xepersian@edition%
\hspace*{5pt}\beginL\thepage\ / \pageref{LastPage}\endL
}

\newcommand{\heading}[3]{%
\renewcommand{\xepersian@headleft}{\beginR#1\endR}%
\renewcommand{\xepersian@headcenter}{\beginR#2\endR}%
\renewcommand{\xepersian@headright}{\beginR#3\endR}%
}
\newcommand{\xepersian@footright}{%
{\footnotesize\lr{\copyright\ \@customwwwTxt{}}---تهیه‌شده توسط \lr{\XePersian}}%
}
\newcommand{\xepersian@footcenter}{%
}
\newcommand{\xepersian@footleft}{%
}

\newcommand{\foot}[3]{%
\renewcommand{\xepersian@footleft}{\beginR#1\endR}%
\renewcommand{\xepersian@footcenter}{\beginR#2\endR}%
\renewcommand{\xepersian@footright}{\beginR#3\endR}%
}
\newcommand{\firstTitleFormat}{\Huge\bfseries\flushright}
\newcommand{\xepersian@firstTitle}[1]{%
{%
\begin{spacing}{2.0}{%
\noindent\ignorespaces
\ifthenelse{\boolean{xepersian@hyphenatedtitles}}%
{\nohyphens{\firstTitleFormat #1}}%
{{\firstTitleFormat #1}}%
}%
\end{spacing}%
}%
}
\newcommand{\firstTextFormat}{}
\newcommand{\xepersian@firstText}[1]{%
{\noindent\ignorespaces\firstTextFormat #1}%
}
\newcommand{\secondTitleFormat}{\LARGE\bfseries}
\newcommand{\xepersian@secondTitle}[1]{%
\begin{spacing}{1.5}{%
\noindent\ignorespaces\flushright
\ifthenelse{\boolean{xepersian@hyphenatedtitles}}%
{\nohyphens{\secondTitleFormat #1}}%
{{\secondTitleFormat #1}}%
}\end{spacing}%
}
\newcommand{\secondSubtitleFormat}{\large}
\newcommand{\xepersian@secondSubtitle}[1]{%
{\noindent\ignorespaces{\secondSubtitleFormat #1}}%
}
\newcommand{\secondTextFormat}{}
\newcommand{\xepersian@secondText}[1]{%
\begin{multicols}{2}
{\noindent\ignorespaces\secondTextFormat #1}
\end{multicols}
}
\newcommand{\thirdTitleFormat}{\Large\bfseries}
\newcommand{\xepersian@thirdTitle}[1]{%
\begin{spacing}{1.5}{%
\noindent\ignorespaces\flushright
\ifthenelse{\boolean{xepersian@hyphenatedtitles}}%
{\nohyphens{\thirdTitleFormat #1}}%
{{\thirdTitleFormat #1}}%
}\end{spacing}%
}
\newcommand{\thirdSubtitleFormat}{\large}
\newcommand{\xepersian@thirdSubtitle}[1]%
{{\noindent\ignorespaces\thirdSubtitleFormat #1}}
\newcommand{\thirdTextFormat}{}
\newcommand{\xepersian@thirdText}[1]{{\thirdTextFormat #1}}
\newcommand{\pictureCaptionFormat}{\small\bfseries}
\newcommand{\xepersian@pictureCaption}[1]{%
{\noindent\pictureCaptionFormat #1}%
}
\newcommand{\pagesFormat}{\bfseries\footnotesize}
\newcommand{\xepersian@pages}[1]%
{\noindent{\pagesFormat\MakeUppercase{#1}}}
\newcommand{\innerTitleFormat}{\Huge}
\newcommand{\xepersian@innerTitle}[1]{%
\begin{flushright}{%
\noindent
\ifthenelse{\boolean{xepersian@hyphenatedtitles}}%
{\nohyphens{\innerTitleFormat #1}}%
{{\innerTitleFormat #1}}%
}%
\\%
\end{flushright}%
}
\newcommand{\innerSubtitleFormat}{\large}
\newcommand{\xepersian@innerSubtitle}[1]{{\innerSubtitleFormat #1}}
\newcommand{\timestampTxt}{}
\newcommand{\timestampSeparator}{|}
\newcommand{\timestampFormat}{\small}
\newcommand{\timestamp}[1]{%
{\timestampFormat%
#1~\timestampTxt{}%
}~\timestampSeparator{}%
}
\newcommand{\innerAuthorFormat}{\footnotesize}
\newcommand{\innerPlaceFormat}{\footnotesize\bfseries}
\newcommand{\innerTextFinalMark}{\rule{0.65em}{0.65em}}
\newcommand{\editorialTitleFormat}{\LARGE\textit}
\newcommand{\xepersian@editorialTitle}[1]{\editorialTitleFormat{#1}}
\newcommand{\editorialAuthorFormat}{\textsc}
\newcommand{\shortarticleTitleFormat}{\LARGE\bfseries}
\newcommand{\xepersian@shortarticleTitle}[1]{{\shortarticleTitleFormat #1}}
\newcommand{\shortarticleSubtitleFormat}{\Large}
\newcommand{\xepersian@shortarticleSubtitle}[1]{{\shortarticleSubtitleFormat #1}}
\newcommand{\shortarticleItemTitleFormat}{\large\bfseries}
\newcommand{\xepersian@shortarticleItemTitle}[1]{{\shortarticleItemTitleFormat #1}}
\renewcommand{\maketitle}{\begin{titlepage}%
  \let\footnotesize\small
  \let\footnoterule\relax
  \let \footnote \thanks
  \null\vfil
  \vskip 60\p@
  \begin{center}%
    {\LARGE \@title \par}%
    \vskip 1em%
    {\LARGE «\xepersian@edition» \par}%
    \vskip 3em%
    {\large
     \lineskip .75em%
      \begin{tabular}[t]{c}%
        \@author
      \end{tabular}\par}%
      \vskip 1.5em%
    {\large \@date \par}%
  \end{center}\par
  \@thanks
  \vfil\null
  \end{titlepage}%
  \setcounter{footnote}{0}%
  \global\let\thanks\relax
  \global\let\maketitle\relax
  \global\let\@thanks\@empty
  \global\let\@author\@empty
  \global\let\@date\@empty
  \global\let\@title\@empty
  \global\let\title\relax
  \global\let\author\relax
  \global\let\date\relax
  \global\let\and\relax
}
\newcommand{\xepersian@say}[1]{\typeout{#1}}
\newsavebox{\xepersian@fmbox}
\newenvironment{xepersian@fmpage}[1]
 {\begin{lrbox}{\xepersian@fmbox}\begin{minipage}{#1}}
 {\end{minipage}\end{lrbox}\fbox{\usebox{\xepersian@fmbox}}}
\newcommand{\image}[2]{
\vspace{5pt}
\setlength{\fboxsep}{1pt}
\addtolength{\xepersian@imgsize}{\columnwidth}
\addtolength{\xepersian@imgsize}{-1\columnsep}
\ifxetex
\setlength{\xepersian@pageneed}{1.5\xepersian@imgsize}
\addtolength{\xepersian@pageneed}{50pt}
\ClassWarning{xepersian-magazine}{%
Image #1 needs: \the\xepersian@pageneed \space %
and there is left: \the\page@free\space%
}
\ifdim \xepersian@pageneed < \page@free

{\centering\fbox{%
\includegraphics[width = \xepersian@imgsize,
height = \xepersian@imgsize,
keepaspectratio ]{#1}}}
\xepersian@pictureCaption{#2}

\vspace{5pt}
\else
\ClassWarning{Image #1 needs more space!%
  It was not inserted!}
\fi
\fi
}
\textblockorigin{1cm}{1cm}
\newdimen\xepersian@dx
\newdimen\xepersian@dy
\newcount\xepersian@cx
\newcount\xepersian@cy
\newcommand{\grid}[3][]{
\xepersian@dx=\textwidth%
\xepersian@dy=\textheight%
\xepersian@cx=#3% %columns
\xepersian@cy=#2% %rows

\count1=#3%
\advance\count1 by 1

\count2=#2%
\advance\count2 by 1

\divide\xepersian@dx by #3
\divide\xepersian@dy by #2

\setlength{\TPHorizModule}{\xepersian@dx}
\setlength{\TPVertModule}{\xepersian@dy}

\ifthenelse{\equal{#1}{show}}{
\multido{\xepersian@nrow=0+1}{\count2}{
\begin{textblock}{\xepersian@cx}(0,\xepersian@nrow)
\rule[0pt]{\textwidth}{.1pt}
\end{textblock}
}

\multido{\xepersian@ncol=0+1}{\count1}{
\begin{textblock}{\xepersian@cy}(\xepersian@ncol,0)
\rule[0pt]{.1pt}{\textheight}
\end{textblock}
}
}{}
}
\newcommand{\xepersianInit}{
\setlength{\headheight}{14pt}
\renewcommand{\headrulewidth}{0.4pt}

\pagestyle{fancy}

\setlength{\columnseprule}{\columnlines}
\setlength{\fboxrule}{0.1 pt}

}

\def\customlogo#1{\gdef\@customlogo{\beginR#1\endR}}
\def\customminilogo#1{\gdef\@customminilogo{\beginR#1\endR}}
\def\custommagazinename#1{\gdef\@custommagazinename{\beginR#1\endR}}
\newcommand{\logo}[0]{
%% Heading %%
\noindent\hrulefill\hspace{10pt}\xepersian@editionLogo\hspace{5pt}\xepersian@www

\vspace*{-3pt}

{\Large\bfseries \@customlogo}
\hrulefill
\hspace{10pt}\xepersian@headDateTime

}
\newcommand{\minilogo}[0]{
{\large\bfseries \@customminilogo}

\vspace*{5pt}
}
\newcommand{\mylogo}[1]{
{\beginR#1\endR}

\noindent
\xepersian@editionLogo\hspace{5pt}
\hrulefill
\hspace{5pt}\xepersian@headDateTime
}
\newcommand{\edition}[1]{\renewcommand{\xepersian@edition}{#1}}
\newenvironment{frontpage}[0]
{
\setboolean{xepersian@insidefrontpage}{true}
\thispagestyle{empty}
\logo

}%
{
\thispagestyle{empty}
\clearpage
\newpage
\fancyhead{}
 \fancyfoot{}
\fancyhead[RO,LE]{\beginR\xepersian@headright\endR}
\fancyhead[LO,RE]{\beginR\xepersian@headleft\endR}
    \fancyhead[C]{\beginR\xepersian@headcenter\endR}
    \fancyfoot[RO,LE]{\beginR\xepersian@footright\endR}
    \fancyfoot[LO,RE]{\beginR\xepersian@footleft\endR}
\fancyfoot[C]{\beginR\xepersian@footcenter\endR}
\renewcommand{\headrulewidth}{0.4pt}
\setboolean{xepersian@insidefrontpage}{false}

}
\newcommand{\firstarticle}[3]
{
\ifthenelse{\boolean{xepersian@insidefrontpage}}{%
\ifthenelse{\boolean{xepersian@hyphenatedtitles}}{%
\begin{textblock}{24}(22,5)
}
{
\begin{textblock}{28}(22,5)
}
\vspace{-7pt}
\xepersian@firstTitle{#1}
\end{textblock}
\begin{textblock}{29}(22,10)
\vspace{5pt plus 2pt minus 2pt}

\xepersian@firstText{\timestamp{#3}~#2}

\end{textblock}

\begin{textblock}{50}(0,15)
\rule{50\TPHorizModule}{.3pt}
\end{textblock}
}{%else
\ClassError{xepersian-magazine}{%
\protect\firstarticle\space in a wrong place.\MessageBreak
\protect\firstarticle\space may only appear inside frontpage environment.
}{%
\protect\firstarticle\space may only appear inside frontpage environment.
}%
}
}
\newcommand{\secondarticle}[5]
{
\ifthenelse{\boolean{xepersian@insidefrontpage}}{%
\begin{textblock}{33}(2,16)
\xepersian@pages{#4}
\vspace{-5pt}
\xepersian@secondTitle{#1}

\vspace*{5pt}

\xepersian@secondSubtitle{#2}

\vspace*{-7pt}

\xepersian@secondText{\timestamp{#5}~#3}

\end{textblock}

\begin{textblock}{33}(2,25)
\vspace{5pt plus 2pt minus 2pt}

\noindent\ignorespaces\rule{33\TPHorizModule}{.3pt}
\end{textblock}
}{%else
\ClassError{xepersian-magazine}{%
\protect\secondarticle\space in a wrong place.\MessageBreak
\protect\secondarticle\space may only appear inside frontpage environment.
}{%
\protect\secondarticle\space may only appear inside frontpage environment.
}%
}
}
\newcommand{\thirdarticle}[6]
{
\ifthenelse{\boolean{xepersian@insidefrontpage}}{%
\begin{textblock}{32}(2,26)
\xepersian@pages{#5}
\vspace{-5pt}
\setlength{\fboxsep}{1pt}
\xepersian@thirdTitle{#1}

\vspace*{5pt}

\xepersian@thirdSubtitle{#2}

\vspace*{5pt}

{\noindent\ignorespaces %
\ifthenelse{\equal{#4}{}}{}

\xepersian@thirdText{\timestamp{#6}~#3}

}

\vspace*{5pt}

\end{textblock}
}{%else
\ClassError{xepersian-magazine}{%
\protect\thirdarticle\space in a wrong place.\MessageBreak
\protect\thirdarticle\space may only appear inside frontpage environment.
}{%
\protect\thirdarticle\space may only appear inside frontpage environment.
}%
}
}
\newcommand{\firstimage}[2]
{
\ifthenelse{\boolean{xepersian@insidefrontpage}}{%
\begin{textblock}{18}(2,5)
\setlength{\fboxsep}{1pt}
\ifxetex % only in PDF
\noindent\fbox{\includegraphics[width = 18\TPHorizModule ]{#1}}
\fi

\xepersian@pictureCaption{#2}
\end{textblock}%
}
{\ClassError{xepersian-magazine}{%
\protect\firstimage\space in a wrong place.\MessageBreak
\protect\firstimage\space may only appear inside frontpage environment.
}{%
\protect\firstimage\space may only appear inside frontpage environment.
}}
}%
\newcommand{\weatheritem}[5]{%
\ifthenelse{\boolean{xepersian@insideweather}}{
\begin{minipage}{45pt}
\ifxetex
\includegraphics[width=40pt]{#1}
\fi
\end{minipage}
\begin{minipage}{50pt}
\weatherTempFormat
#2\\
\beginL#3 $\|$ #4 \lr{\weatherUnits{}}\endL\\
#5
\end{minipage}
}{%else
\ClassError{xepersian-magazine}{%
\protect\weatheritem\space in a wrong place.\MessageBreak
\protect\weatheritem\space may only appear inside weatherblock environment.
}{%
\protect\weatheritem\space may only appear inside weatherblock environment.\MessageBreak
weatherblock environment may only appear inside frontpage environment.
}%
}
}
\newenvironment{weatherblock}[1]
{
\ifthenelse{\boolean{xepersian@insidefrontpage}}{%
\setboolean{xepersian@insideweather}{true}
\begin{textblock}{32}(2,38)
\vspace*{-15pt}

\xepersian@weather{\beginR#1\endR}

\vspace*{5pt}

\noindent\begin{xepersian@fmpage}{32\TPHorizModule}
\begin{minipage}{32\TPHorizModule}
\hspace{5pt}

}{%
\ClassError{xepersian-magazine}{%
weatherblock in a wrong place.\MessageBreak
weatherblock may only appear inside frontpage environment.
}{%
weatherblock may only appear inside frontpage environment.
}
}
}%
{
\end{minipage}
\end{xepersian@fmpage}
\end{textblock}
\setboolean{xepersian@insideweather}{false}
}
\newenvironment{authorblock}[0]
{
\ifthenelse{\boolean{xepersian@insidefrontpage}}{%
\begin{textblock}{15}(36,35)
\setlength{\fboxsep}{5pt}
\begin{xepersian@fmpage}{13\TPHorizModule}
\begin{minipage}{13\TPHorizModule}
\centering
\minilogo

}{%else
\ClassError{xepersian-magazine}{%
authorblock in a wrong place.\MessageBreak
authorblock may only appear inside frontpage environment.
}{%
authorblock may only appear inside frontpage environment.
}
}
}
{
\end{minipage}
\end{xepersian@fmpage}
\end{textblock}
}
\newenvironment{indexblock}[1]
{
\ifthenelse{\boolean{xepersian@insidefrontpage}}{%
\setboolean{xepersian@insideindex}{true}%let's in
\begin{textblock}{15}(36,16)
\setlength{\xepersian@indexwidth}{13\TPHorizModule}
\xepersian@indexFrameTitle{#1}

\setlength{\fboxsep}{5pt} %espacio entre el frame y la imagen
\begin{xepersian@fmpage}{\xepersian@indexwidth}
\begin{minipage}{\xepersian@indexwidth}
\vspace*{10pt}
}{%else
\ClassError{xepersian-magazine}{%
indexblock in a wrong place.\MessageBreak
indexblock may only appear inside frontpage environment.
}{%
indexblock may only appear inside frontpage environment.
}
}
}%
{
\end{minipage}
\end{xepersian@fmpage}
\end{textblock}
\setboolean{xepersian@insideindex}{false}%let's out
}
\newcommand{\indexitem}[2]
{
\ifthenelse{\boolean{xepersian@insideindex}}{
\xepersian@indexEntry{#1، \xepersian@indexEntryPage{\pageref{#2}}}

\vspace{0.5cm}

\noindent\ignorespaces\indexEntrySeparator{}
}{%else
\ClassError{xepersian-magazine}{%
\protect\indexitem\space in a wrong place.\MessageBreak
\protect\indexitem\space may only appear inside indexblock environment.
}{%
\protect\indexitem\space may only appear inside indexblock environment.\MessageBreak
indexblock environment may only appear inside frontpage environment.
}%
}
}
\newcommand{\xepersian@inexpandedtitle}[1]{
\begin{minipage}{.95\textwidth}
\begin{center}
\noindent\Large\textbf{\beginR#1\endR}
\end{center}
\end{minipage}
}
\newcommand{\expandedtitle}[2]{
\end{multicols}

\begin{center}
\setlength{\fboxsep}{5pt}
\setlength{\shadowsize}{2pt}
\ifthenelse{\equal{#1}{shadowbox}}{%
\shadowbox{%
\xepersian@inexpandedtitle{#2}%
}%
}{}
\ifthenelse{\equal{#1}{doublebox}}{%
\doublebox{%
\xepersian@inexpandedtitle{#2}%
}%
}{}
\ifthenelse{\equal{#1}{ovalbox}}{%
\ovalbox{%
\xepersian@inexpandedtitle{#2}%
}%
}{}
\ifthenelse{\equal{#1}{Ovalbox}}{%
\Ovalbox{%
\xepersian@inexpandedtitle{#2}%
}%
}{}
\ifthenelse{\equal{#1}{lines}}{
\hrule
\vspace*{8pt}
\begin{center}
\noindent\Large\textbf{#2}
\end{center}
\vspace*{8pt}
\hrule
}{}
\end{center}

\begin{multicols}{\xepersian@ncolumns{}}
\ifnum \xepersian@ncolumns > \minraggedcols
\raggedFormat
\fi
}
\newcommand{\xepersian@incolumntitle}[2]{
\begin{minipage}{#1}
\begin{center}
\noindent\normalsize\textbf{#2}
\end{center}
\end{minipage}
}

\newcommand{\columntitle}[2]{
\vspace*{5pt}
\begin{center}
\setlength{\fboxsep}{5pt}
\setlength{\shadowsize}{2pt}
\addtolength{\xepersian@coltitsize}{\columnwidth}
\addtolength{\xepersian@coltitsize}{-1\columnsep}
\addtolength{\xepersian@coltitsize}{-5pt}
\addtolength{\xepersian@coltitsize}{-1\shadowsize}
\ifthenelse{\equal{#1}{shadowbox}}{%
\shadowbox{%
\xepersian@incolumntitle{\xepersian@coltitsize}{#2}%
}%
}{}
\ifthenelse{\equal{#1}{doublebox}}{%
\doublebox{%
\xepersian@incolumntitle{\xepersian@coltitsize}{#2}%
}%
}{}
\ifthenelse{\equal{#1}{ovalbox}}{%
\ovalbox{%
\xepersian@incolumntitle{\xepersian@coltitsize}{#2}%
}%
}{}
\ifthenelse{\equal{#1}{Ovalbox}}{%
\Ovalbox{%
\xepersian@incolumntitle{\xepersian@coltitsize}{#2}%
}%
}{}
\ifthenelse{\equal{#1}{lines}}{
\hrule
\vspace*{5pt}
\begin{center}
\noindent\normalsize\textbf{#2}
\end{center}
\vspace*{5pt}
\hrule
}{}
\end{center}
}
\renewcommand{\date}{%
\longdate{\today}%
}
\newcommand{\authorandplace}[2]{%
\rightline{%
{\innerAuthorFormat #1},\space{}{\innerPlaceFormat #2}%
}%
\par %
}
\newcommand{\newsection}[1]{
\renewcommand{\xepersian@section}{#1}
}
\newenvironment{article}[5]
{
\xepersian@say{Adding a new piece of article}
\renewcommand{\xepersian@ncolumns}{#1}
\begin{multicols}{#1}[
\xepersian@pages{#4}
\xepersian@innerTitle{#2}%
\xepersian@innerSubtitle{#3}%
][4cm]%
\label{#5}
\ifnum #1 > \minraggedcols
\raggedFormat
\fi
}
{~\innerTextFinalMark{}
\end{multicols}
}
\newcommand{\articlesep}{%
\setlength{\xepersian@pageneed}{16000pt}
\setlength\xepersian@pageleft{\pagegoal}
\addtolength\xepersian@pageleft{-\pagetotal}

\xepersian@say{How much left \the\xepersian@pageleft}

\ifdim \xepersian@pageneed < \xepersian@pageleft
\xepersian@say{Not enough space}
\else
\xepersian@say{Adding sep line between articles}
\vspace*{10pt plus 10pt minus 5pt}
\hrule
\vspace*{10pt plus 5pt minus 5pt}
\fi

}
\newcommand{\xepersian@editorialTit}[2]{
\setlength{\arrayrulewidth}{.1pt}
\begin{center}
\begin{tabular}{c}
\noindent
\xepersian@editorialTitle{#1}
\vspace{2pt plus 1pt minus 1pt}
\\
\hline
\vspace{2pt plus 1pt minus 1pt}
\\
\editorialAuthorFormat{#2}
\end{tabular}
\end{center}
}
\newenvironment{editorial}[4]
{
\xepersian@say{Adding a new editorial}
\begin{multicols}{#1}[%
\xepersian@editorialTit{#2}{#3}%
][4cm]
\label{#4}
\ifnum #1 > \minraggedcols
\raggedFormat
\fi
}
{
\end{multicols}
}
\newcommand{\xepersian@shortarticleTit}[2]{
\begin{center}
\vbox{%
\noindent
\xepersian@shortarticleTitle{#1}
\vspace{4pt plus 2pt minus 2pt}
\hrule
\vspace{4pt plus 2pt minus 2pt}
\xepersian@shortarticleSubtitle{#2}
}
\end{center}
}
\newenvironment{shortarticle}[4]
{
\xepersian@say{Adding a short article block}
\begin{multicols}{#1}[\xepersian@shortarticleTit{#2}{#3}][4cm] %
    \label{#4}
\par %
\ifnum #1 > \minraggedcols
\raggedFormat
\fi
}
{
\end{multicols}
}
\newcommand{\shortarticleitem}[2]{
\goodbreak
\vspace{5pt plus 3pt minus 3pt}
{\vbox{\noindent\xepersian@shortarticleItemTitle{#1}}}
\vspace{5pt plus 3pt minus 3pt}
{\noindent #2}\\
}
%    \end{macrocode}
% \iffalse
%</xepersian-magazine.cls>
%<*unicode-persianmath.sty>
%\fi
% \section{File \texttt{unicode-persianmath.sty}}
%    \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{unicode-persianmath}
  [2025/02/02 v1.2.3 Unicode Persian math]
\def\new@mathgroup{\alloc@8\mathgroup\chardef\@cclvi}
\let\newfam\new@mathgroup
\def\select@group#1#2#3#4{%
 \ifx\math@bgroup\bgroup\else\relax\expandafter\@firstofone\fi
 {%
 \ifmmode
  \ifnum\csname c@mv@\math@version\endcsname<\@cclvi
     \begingroup
       \escapechar\m@ne
       \getanddefine@fonts{\csname c@mv@\math@version\endcsname}#3%
       \globaldefs\@ne  \math@fonts
     \endgroup
     \init@restore@version
     \xdef#1{\noexpand\use@mathgroup\noexpand#2%
             {\number\csname c@mv@\math@version\endcsname}}%
     \global\advance\csname c@mv@\math@version\endcsname\@ne
   \else
     \let#1\relax
     \@latex@error{Too many math alphabets used in
                   version \math@version}%
        \@eha
   \fi
 \else \expandafter\non@alpherr\fi
 #1{#4}%
 }%
}
\def\document@select@group#1#2#3#4{%
 \ifx\math@bgroup\bgroup\else\relax\expandafter\@firstofone\fi
 {%
 \ifmmode
   \ifnum\csname c@mv@\math@version\endcsname<\@cclvi
     \begingroup
       \escapechar\m@ne
       \getanddefine@fonts{\csname c@mv@\math@version\endcsname}#3%
       \globaldefs\@ne  \math@fonts
     \endgroup
     \expandafter\extract@alph@from@version
         \csname mv@\math@version\expandafter\endcsname
         \expandafter{\number\csname
                       c@mv@\math@version\endcsname}%
          #1%
     \global\advance\csname c@mv@\math@version\endcsname\@ne
   \else
     \let#1\relax
     \@latex@error{Too many math alphabets used
                   in version \math@version}%
        \@eha
  \fi
 \else \expandafter\non@alpherr\fi
 #1{#4}%
 }%
}
\ExplSyntaxOn
\bool_set_false:N \g__fontspec_math_bool
\tl_map_inline:nn
 {
  \new@mathgroup\cdp@list\cdp@elt\DeclareMathSizes
  \@DeclareMathSizes\newmathalphabet\newmathalphabet@@\newmathalphabet@@@
  \DeclareMathVersion\define@mathalphabet\define@mathgroup\addtoversion
  \version@list\version@elt\alpha@list\alpha@elt
  \restore@mathversion\init@restore@version\dorestore@version\process@table
  \new@mathversion\DeclareSymbolFont\group@list\group@elt
  \new@symbolfont\SetSymbolFont\SetSymbolFont@\get@cdp
  \DeclareMathAlphabet\new@mathalphabet\SetMathAlphabet\SetMathAlphabet@
  \DeclareMathAccent\set@mathaccent\DeclareMathSymbol\set@mathchar
  \set@mathsymbol\DeclareMathDelimiter\@xxDeclareMathDelimiter
  \@DeclareMathDelimiter\@xDeclareMathDelimiter\set@mathdelimiter
  \set@@mathdelimiter\DeclareMathRadical\mathchar@type
  \DeclareSymbolFontAlphabet\DeclareSymbolFontAlphabet@
 }
 {
  \tl_remove_once:Nn \@preamblecmds {\do#1}
 }
\ExplSyntaxOff
\newcommand\xepersian@PackageInfo[1]{\PackageInfo{unicode-persianmath}{#1}}
\newcommand\SetMathCode[4]{%
  \Umathcode#1="\mathchar@type#2 \csname sym#3\endcsname #4\relax}
\newcommand\SetMathCharDef[4]{%
  \Umathchardef#1="\mathchar@type#2 \csname sym#3\endcsname #4\relax}
\ExplSyntaxOn
\cs_new_eq:NN \orig_mathbf:n \mathbf
\cs_new_eq:NN \orig_mathit:n \mathit
\cs_new_eq:NN \orig_mathrm:n \mathrm
\cs_new_eq:NN \orig_mathsf:n \mathsf
\cs_new_eq:NN \orig_mathtt:n \mathtt
%\int_const:Nn \c_one_int { 1 }
\NewDocumentCommand \new@mathbf { m } {
 \orig_mathbf:n {
   \SetPersianMathDigitsCode{\mathord}{persianoperatorsbf}
   #1
 }
}
\NewDocumentCommand \new@mathit { m } {
 \orig_mathit:n {
   \SetPersianMathDigitsCode{\mathord}{persianoperatorsit}
   #1
 }
}
\NewDocumentCommand \new@mathrm { m } {
 \orig_mathrm:n {
   \SetPersianMathDigitsCode{\mathord}{persianoperators}
   #1
 }
}
\NewDocumentCommand \new@mathsf{ m } {
 \orig_mathsf:n {
   \SetPersianMathDigitsCode{\mathord}{persianoperatorssf}
   #1
 }
}
\NewDocumentCommand \new@mathtt{ m } {
 \orig_mathtt:n {
   \SetPersianMathDigitsCode{\mathord}{persianoperatorstt}
   #1
 }
}

\cs_new:Npn \__xepersian_mathdigitspec_error:nxx    { \msg_error:nnxx    {unicode-persianmath} }
\cs_new:Nn \__xepersian_mathdigitspec_msg_new:nnnn
  { \msg_new:nnxx {#1} {#2} { \tl_trim_spaces:n {#3} } { \tl_trim_spaces:n {#4} } }
\char_set_catcode_space:n {32}
\__xepersian_mathdigitspec_msg_new:nnnn {unicode-persianmath} {char-not-exist}
 {
  The font "#1" does not contain U+#2.
 }
 {
  Select another font and rerun xelatex.
 }
\char_set_catcode_ignore:n {32}

%\__kernel_primitive:NN \iffontchar            \tex_iffontchar:D
\prg_new_conditional:Nnn \__xepersian_mathdigitspec_primitive_font_char_if_exist:n {p,TF,T,F}
  {
    \tex_iffontchar:D \l_fontspec_font "#1 \scan_stop:
      \prg_return_true:
    \else:
      \prg_return_false:
    \fi:
  }
  
\clist_new:N \l_xepersian_mathdigitspec_char_clist

\cs_new:Nn \__xepersian_mathdigitspec_char_set_not_exist_error:nn
 {
    \clist_set:Nn \l_xepersian_mathdigitspec_char_clist { #1 }
    \clist_map_inline:Nn \l_xepersian_mathdigitspec_char_clist {
      \__xepersian_mathdigitspec_primitive_font_char_if_exist:nF { ##1 }{ \__xepersian_mathdigitspec_error:nxx {char-not-exist} { #2 } { ##1 } }
    }
 }
 
\cs_new:Nn \__xepersian_mathdigitspec_char_prepend_not_exist_error:nn
 {
    \clist_put_left:Nn \l_xepersian_mathdigitspec_char_clist { #1 }
    \clist_map_inline:Nn \l_xepersian_mathdigitspec_char_clist {
      \__xepersian_mathdigitspec_primitive_font_char_if_exist:nF { ##1 }{ \__xepersian_mathdigitspec_error:nxx {char-not-exist} { #2 } { ##1 } }
    }
 }
 
\cs_new:Nn \__xepersian_mathdigitspec_char_append_not_exist_error:nn
 {
    \clist_put_right:Nn \l_xepersian_mathdigitspec_char_clist { #1 }
    \clist_map_inline:Nn \l_xepersian_mathdigitspec_char_clist {
      \__xepersian_mathdigitspec_primitive_font_char_if_exist:nF { ##1 }{ \__xepersian_mathdigitspec_error:nxx {char-not-exist} { #2 } { ##1 } }
    }
 } 
  
\cs_new:Nn \__xepersian_mathdigitspec_char_not_exist_error:n
 {
    \__xepersian_mathdigitspec_char_set_not_exist_error:nn { 
      06F0 , 06F1 , 06F2 , 06F3 , 06F4 , 06F5 , 06F6 , 06F7 , 06F8 ,
      06F9 , 066A , 066B
    } { #1 }                         
 }
 
\NewDocumentCommand \SetPersianMathDigitsCode { m m }
  {
    \SetMathCode{`0}{#1}{#2}{`۰}
    \SetMathCode{`1}{#1}{#2}{`۱}
    \SetMathCode{`2}{#1}{#2}{`۲}
    \SetMathCode{`3}{#1}{#2}{`۳}
    \SetMathCode{`4}{#1}{#2}{`۴}
    \SetMathCode{`5}{#1}{#2}{`۵}
    \SetMathCode{`6}{#1}{#2}{`۶}
    \SetMathCode{`7}{#1}{#2}{`۷}
    \SetMathCode{`8}{#1}{#2}{`۸}
    \SetMathCode{`9}{#1}{#2}{`۹}
  }

\DeclareDocumentCommand \setmathdigitfont { O{} m O{} }
  {
    \__xepersian_main_setmathdigitfont:nn {#1,#3} {#2} 
  }
\cs_new:Nn \__xepersian_main_setmathdigitfont:nn
 {
  \let\glb@currsize\relax
  \fontspec_set_family:Nnn \g__xepersian_mathdigitsfamily_tl {#1} {#2}
  \__xepersian_setmathdigitfont_hook:nn {#1} {#2}
    \xepersian@PackageInfo{Defining the default Persian math digits font as '#2'}
  \DeclareSymbolFont{persianoperators}   {\g_fontspec_encoding_tl}{\g__xepersian_mathdigitsfamily_tl} {m}{n}
  \DeclareSymbolFont{persianoperatorsbf}{\g_fontspec_encoding_tl}{\g__xepersian_mathdigitsfamily_tl}{bx}{n}
  \DeclareSymbolFont{persianoperatorsit}{\g_fontspec_encoding_tl}{\g__xepersian_mathdigitsfamily_tl}{m}{it}
  \__xepersian_mathdigitspec_char_not_exist_error:n { #2 }
  \def\persianmathdigits{%
    \SetPersianMathDigitsCode{\mathalpha}{persianoperators}
    \SetMathCode{`\%}{\mathord}{persianoperators}{`٪}
    \SetMathCharDef{\persiandecimalseparator}{\mathord}{persianoperators}{`٫}
    \tl_set_eq:NN \mathbf \new@mathbf
    \tl_set_eq:NN \mathit \new@mathit
    \tl_set_eq:NN \mathrm \new@mathrm
  }
 }

\cs_set_eq:NN \__xepersian_setmathdigitfont_hook:nn     \use_none:nn

\DeclareDocumentCommand \setmathsfdigitfont { O{} m O{} }
  {
    \__xepersian_main_setmathsfdigitfont:nn {#1,#3} {#2} 
  }
\cs_new:Nn \__xepersian_main_setmathsfdigitfont:nn
 {
  \fontspec_set_family:Nnn \g__xepersian_mathsfdigitfamily_tl {#1} {#2}
  \__xepersian_setmathsfdigitfont_hook:nn {#1} {#2}
      \DeclareSymbolFont{persianoperatorssf}{\g_fontspec_encoding_tl}{\g__xepersian_mathsfdigitfamily_tl}{m}{n}
      \__xepersian_mathdigitspec_char_not_exist_error:n { #2 }
    \def\persianmathsfdigits{\tl_set_eq:NN \mathsf \new@mathsf}
 }

\cs_set_eq:NN \__xepersian_setmathsfdigitfont_hook:nn     \use_none:nn

\DeclareDocumentCommand \setmathttdigitfont { O{} m O{} }
  {
    \__xepersian_main_setmathttdigitfont:nn {#1,#3} {#2} 
  }
\cs_new:Nn \__xepersian_main_setmathttdigitfont:nn
 {
  \fontspec_set_family:Nnn \g__xepersian_mathttdigitfamily_tl {#1} {#2}
  \__xepersian_setmathttdigitfont_hook:nn {#1} {#2}
      \DeclareSymbolFont{persianoperatorstt}{\g_fontspec_encoding_tl}{\g__xepersian_mathttdigitfamily_tl}{m}{n}
      \__xepersian_mathdigitspec_char_not_exist_error:n { #2 }
    \def\persianmathttdigits{\tl_set_eq:NN \mathtt \new@mathtt}
 }

\cs_set_eq:NN \__xepersian_setmathttdigitfont_hook:nn     \use_none:nn

\ExplSyntaxOff
\mathchardef\decimalseparator@point="013A
%{%
% \catcode`\.=\active
% \gdef.{\begingroup\obeyspaces\futurelet\@let@decimalsep@token\decimalseparator@pointcheck}}
\bgroup
  \uccode`\~`\.%
  \uppercase{%
\egroup
  \def~}{\begingroup\obeyspaces\futurelet\@let@decimalsep@token\decimalseparator@pointcheck}
\def\decimalseparator@pointcheck{\decimalseparator@check\MathDecimalSeparator\decimalseparator@point}
\def\decimalseparator@check#1#2{%
  \ifx\@let@decimalsep@token1\endgroup#1\else
    \ifx\@let@decimalsep@token2\endgroup#1\else
      \ifx\@let@decimalsep@token3\endgroup#1\else
        \ifx\@let@decimalsep@token4\endgroup#1\else
          \ifx\@let@decimalsep@token5\endgroup#1\else
            \ifx\@let@decimalsep@token6\endgroup#1\else
              \ifx\@let@decimalsep@token7\endgroup#1\else
                \ifx\@let@decimalsep@token8\endgroup#1\else
                  \ifx\@let@decimalsep@token9\endgroup#1\else
                    \ifx\@let@decimalsep@token0\endgroup#1\else
                     \ifx\@let@decimalsep@token\dot\endgroup#1\else
                       \ifx\@let@decimalsep@token\overline\endgroup#1\else
                         \endgroup#2%
                       \fi
                    \fi
                  \fi
                \fi
              \fi
            \fi
          \fi
        \fi
      \fi
    \fi
   \fi
 \fi}
\AtBeginDocument{\mathcode`.="8000\relax}
\def\MathDecimalSeparator{\ifx\persiandecimalseparator\undefined .\else \persiandecimalseparator\fi}
\def\DefaultMathDecimalSeparator{.}
\def\DefaultInlineMathDigits{\def\SetInlineMathDigits{}}
\def\DefaultDisplayMathDigits{\def\SetDisplayMathDigits{}}
\def\DefaultMathDigits{%
  \DefaultInlineMathDigits%
  \DefaultDisplayMathDigits%
}
\def\PersianInlineMathDigits{\def\SetInlineMathDigits{%
\ifx\persianmathdigits\undefined\else\persianmathdigits\fi%
\ifx\persianmathsfdigits\undefined\else\persianmathsfdigits\fi%
\ifx\persianmathttdigits\undefined\else\persianmathttdigits\fi}}
\def\PersianDisplayMathDigits{\def\SetDisplayMathDigits{%
\ifx\persianmathdigits\undefined\else\persianmathdigits\fi%
\ifx\persianmathsfdigits\undefined\else\persianmathsfdigits\fi%
\ifx\persianmathttdigits\undefined\else\persianmathttdigits\fi}}
\def\PersianMathDigits{%
  \PersianInlineMathDigits%
  \PersianDisplayMathDigits%
}
\def\AutoInlineMathDigits{\def\SetInlineMathDigits{%
\ifx\persianmathdigits\undefined\else\if@nonlatin\persianmathdigits\fi\fi%
\ifx\persianmathsfdigits\undefined\else\if@nonlatin\persianmathsfdigits\fi\fi%
\ifx\persianmathttdigits\undefined\else\if@nonlatin\persianmathttdigits\fi\fi}}
\def\AutoDisplayMathDigits{\def\SetDisplayMathDigits{%
\ifx\persianmathdigits\undefined\else\if@nonlatin\persianmathdigits\fi\fi%
\ifx\persianmathsfdigits\undefined\else\if@nonlatin\persianmathsfdigits\fi\fi%
\ifx\persianmathttdigits\undefined\else\if@nonlatin\persianmathttdigits\fi\fi}}
\def\AutoMathDigits{%
  \AutoInlineMathDigits%
  \AutoDisplayMathDigits%
}
\AutoMathDigits
\everymath\expandafter{\the\everymath\SetInlineMathDigits%
  \let\SetDisplayMathDigits\relax%
}
\everydisplay\expandafter{%
  \the\everydisplay\SetDisplayMathDigits%
  \let\SetInlineMathDigits\relax%
}

\ExplSyntaxOn
\cs_new_eq:NN \orig_MathDecimalSeparator \MathDecimalSeparator

\NewDocumentCommand \SwitchToDefaultMathDigits {  } {
  \int_step_inline:nnnn { `0 } { \c_one_int } { `9 } {
    \SetMathCode{##1}{\mathalpha}{operators}{##1}
  }
  \SetMathCode{`\%}{\mathord}{operators}{`\%}
  \tl_set_eq:NN \MathDecimalSeparator \DefaultMathDecimalSeparator
  \tl_set_eq:NN \mathbf \orig_mathbf:n
  \tl_set_eq:NN \mathit \orig_mathit:n
  \tl_set_eq:NN \mathrm \orig_mathrm:n
  \tl_set_eq:NN \mathsf \orig_mathsf:n
  \tl_set_eq:NN \mathtt \orig_mathtt:n
}

\NewDocumentCommand \SwitchToPersianMathDigits {  } {
  \SetPersianMathDigitsCode{\mathalpha}{persianoperators}
  \SetMathCode{`\%}{\mathord}{persianoperators}{`٪}
  \tl_set_eq:NN \MathDecimalSeparator \orig_MathDecimalSeparator
  \tl_set_eq:NN \mathbf \new@mathbf
  \tl_set_eq:NN \mathit \new@mathit
  \tl_set_eq:NN \mathrm \new@mathrm
  \tl_set_eq:NN \mathsf \new@mathsf
  \tl_set_eq:NN \mathtt \new@mathtt
}
\ExplSyntaxOff
%    \end{macrocode}
% \iffalse
%</unicode-persianmath.sty>
%<*xepersian-multiplechoice.sty>
%\fi
% \section{File \texttt{xepersian-multiplechoice.sty}}
%    \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{xepersian-multiplechoice}[2010/07/25 v0.2
                    Multiple Choice Questionnaire class for Persian in XeLaTeX]
\RequirePackage{pifont}
\RequirePackage{fullpage}
\RequirePackage{ifthen}
\RequirePackage{calc}
\RequirePackage{verbatim}
\RequirePackage{tabularx}
\def\@headerfont{\bfseries}
\newcommand\headerfont[1]{\gdef\@headerfont{#1}}
\def\@X{X}
\newcommand\X[1]{\gdef\@X{#1}}
\def\pbs#1{\let\tmp=\\#1\let\\=\tmp}
\newcolumntype{D}{>{\pbs\centering}X}
\newcolumntype{Q}{>{\@headerfont}X}

\renewcommand\tabularxcolumn[1]{m{#1}}
\newcommand\makeform@nocorrection{%
  \addtocontents{frm}{\protect\end{tabularx}}
  \@starttoc{frm}}
\newcommand\makeform@correction{%
  \addtocontents{frm}{\protect\end{tabularx}}}
\newcommand\makemask@nocorrection{%
  \addtocontents{msk}{\protect\end{tabularx}}
  \@starttoc{msk}}
\newcommand\makemask@correction{%
  \addtocontents{msk}{\protect\end{tabularx}}}
\newlength\questionspace
\setlength\questionspace{0pt}
\newcommand\answerstitle[1]{\gdef\@answerstitle{#1}}
\def\@answerstitlefont{\bfseries}
\newcommand\answerstitlefont[1]{\gdef\@answerstitlefont{#1}}
\def\@answernumberfont{\bfseries}
\newcommand\answernumberfont[1]{\gdef\@answernumberfont{#1}}
\newcounter{question}\stepcounter{question}
\newcounter{@choice}
\def\@initorcheck{%
  \xdef\@choices{\the@choice}%
  \setcounter{@choice}{1}%
  \gdef\@arraydesc{|Q||}%
  \gdef\@headerline{}%
  \whiledo{\not{\value{@choice}>\@choices}}{
    \xdef\@arraydesc{\@arraydesc D|}
    \def\@appendheader{\g@addto@macro\@headerline}
    \@appendheader{&\protect\@headerfont}
    \edef\@the@choice{{\alph{@choice}}}
    \expandafter\@appendheader\@the@choice
    \stepcounter{@choice}}%
  \addtocontents{frm}{%
    \protect\begin{tabularx}{\protect\linewidth}{\@arraydesc}
    \protect\hline
    \@headerline\protect\\\protect\hline\protect\hline}%
  \addtocontents{msk}{%
    \protect\begin{tabularx}{\protect\linewidth}{\@arraydesc}
    \protect\hline
    \@headerline\protect\\\protect\hline\protect\hline}%
  \gdef\@initorcheck{%
    \ifthenelse{\value{@choice} = \@choices}{}{%
      \ClassError{xepersian-multiplechoice}{Question \thequestion: wrong number of choices
        (\the@choice\space instead of \@choices)}{%
        Questions must all have the same number of proposed answers.%
        \MessageBreak
        Type X <return> to quit, fix your MCQ (multiple choice question) and rerun XeLaTeX.}}}}
\newenvironment{question}[1]{%
  %% \begin{question}
  \begin{minipage}{\textwidth}
    \xdef\@formanswerline{\@questionheader}%
    \xdef\@maskanswerline{\@questionheader}%
    \fbox{\parbox[c]{\linewidth}{#1}}
    \vspace\questionspace\par
    {\@answerstitlefont\@answerstitle}
    \begin{list}{\@answernumberfont\alph{@choice})~}{\usecounter{@choice}}}{%
  %% \end{question}
    \end{list}
    \@initorcheck%
    \addtocontents{frm}{\@formanswerline\protect\\\protect\hline}%
    \addtocontents{msk}{\@maskanswerline\protect\\\protect\hline}%
  \end{minipage}
  \stepcounter{question}}
\def\@truesymbol{\ding{52}~}
\def\@falsesymbol{\ding{56}~}
\newcommand\truesymbol[1]{\gdef\@truesymbol{#1}}
\newcommand\falsesymbol[1]{\gdef\@falsesymbol{#1}}
\def\@true@nocorrection{\item}
\def\@false@nocorrection{\item}
\def\@true@correction{\item[\@truesymbol\refstepcounter{@choice}]}
\def\@false@correction{\item[\@falsesymbol\refstepcounter{@choice}]}
\newcommand\true{%
  \xdef\@formanswerline{\@formanswerline&}%
  \xdef\@maskanswerline{\@maskanswerline&\@X}%
  \@true}%
\newcommand\false{%
  \xdef\@formanswerline{\@formanswerline&}%
  \xdef\@maskanswerline{\@maskanswerline&}%
  \@false}%
\def\@correctionstyle{\itshape}
\newcommand\correctionstyle[1]{\gdef\@correctionstyle{#1}}
\newenvironment{@correction}{\@correctionstyle}{}
 \def\@questionheader{سؤال \thequestion}
  \answerstitle{جوابهای ممکن:}
\DeclareOption{nocorrection}{%
  \let\@true\@true@nocorrection
  \let\@false\@false@nocorrection
  \let\correction\comment
  \let\endcorrection\endcomment
  \def\makeform{\makeform@nocorrection}
  \def\makemask{\makemask@nocorrection}}
\DeclareOption{correction}{%
  \let\@true\@true@correction
  \let\@false\@false@correction
  \let\correction\@correction
  \let\endcorrection\end@correction
  \def\makeform{\makeform@correction}
  \def\makemask{\makemask@correction}}
\ExecuteOptions{nocorrection}
\newcommand\questiontitle[1]{\gdef\@questiontitle{#1}}
\def\@questiontitlefont{\bfseries}
\newcommand\questiontitlefont[1]{\gdef\@questiontitlefont{#1}}
\newlength\questiontitlespace
\setlength\questiontitlespace{5pt}
\newlength\questionsepspace
\setlength\questionsepspace{20pt}
\gdef\@questionsepspace{0pt}
\let\old@question\question
\let\old@endquestion\endquestion
\renewenvironment{question}[1]{%
  %% \begin{question}
  \vspace\@questionsepspace
  \fbox{\parbox[c]{0.25\linewidth}{\@questiontitlefont\@questiontitle}}
  \nopagebreak\vspace\questiontitlespace\par
  \old@question{#1}}{%
  %% \end{question}
  \old@endquestion
  \gdef\@questionsepspace{\questionsepspace}}
 \questiontitle{سؤال \thequestion:}
\ProcessOptions
%    \end{macrocode}
% \iffalse
%</xepersian-multiplechoice.sty>
%<*xepersian-persiancal.sty>
%\fi
% \section{File \texttt{xepersian-persiancal.sty}}
%    \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{xepersian-persiancal}[2025/01/01 v0.3 provides Persian calendar]

\newif\ifXePersian@leap \newif\ifXePersian@kabiseh
\newcount\XePersian@i  \newcount\XePersian@y  \newcount\XePersian@m  \newcount\XePersian@d
\newcount\XePersian@latini    \newcount\XePersian@persiani
\newcount\XePersian@latinii   \newcount\XePersian@persianii
\newcount\XePersian@latiniii  \newcount\XePersian@persianiii
\newcount\XePersian@latiniv   \newcount\XePersian@persianiv
\newcount\XePersian@latinv    \newcount\XePersian@persianv
\newcount\XePersian@latinvi   \newcount\XePersian@persianvi
\newcount\XePersian@latinvii  \newcount\XePersian@persianvii
\newcount\XePersian@latinviii \newcount\XePersian@persianviii
\newcount\XePersian@latinix   \newcount\XePersian@persianix
\newcount\XePersian@latinx    \newcount\XePersian@persianx
\newcount\XePersian@latinxi   \newcount\XePersian@persianxi
\newcount\XePersian@latinxii  \newcount\XePersian@persianxii
                       \newcount\XePersian@persianxiii

\newcount\XePersian@temp
\newcount\XePersian@temptwo
\newcount\XePersian@tempthree
\newcount\XePersian@yModHundred
\newcount\XePersian@thirtytwo
\newcount\XePersian@dn
\newcount\XePersian@sn
\newcount\XePersian@mminusone


\XePersian@y=\year \XePersian@m=\month \XePersian@d=\day
\XePersian@temp=\XePersian@y
\divide\XePersian@temp by 100\relax
\multiply\XePersian@temp by 100\relax
\XePersian@yModHundred=\XePersian@y
\advance\XePersian@yModHundred by -\XePersian@temp\relax
\ifodd\XePersian@yModHundred
   \XePersian@leapfalse
\else
   \XePersian@temp=\XePersian@yModHundred
   \divide\XePersian@temp by 2\relax
   \ifodd\XePersian@temp\XePersian@leapfalse
   \else
      \ifnum\XePersian@yModHundred=0%
         \XePersian@temp=\XePersian@y
         \divide\XePersian@temp by 400\relax
         \multiply\XePersian@temp by 400\relax
         \ifnum\XePersian@y=\XePersian@temp\XePersian@leaptrue\else\XePersian@leapfalse\fi
      \else\XePersian@leaptrue
      \fi
   \fi
\fi
\XePersian@latini=31\relax
\ifXePersian@leap
  \XePersian@latinii = 29\relax
\else
  \XePersian@latinii = 28\relax
\fi
\XePersian@latiniii = 31\relax
\XePersian@latiniv  = 30\relax
\XePersian@latinv = 31\relax
\XePersian@latinvi = 30\relax
\XePersian@latinvii = 31\relax
\XePersian@latinviii = 31\relax
\XePersian@latinix = 30\relax
\XePersian@latinx = 31\relax
\XePersian@latinxi = 30\relax
\XePersian@latinxii = 31\relax
\XePersian@thirtytwo=32\relax
\XePersian@temp=\XePersian@y
\advance\XePersian@temp by -17\relax
\XePersian@temptwo=\XePersian@temp
\divide\XePersian@temptwo by 33\relax
\multiply\XePersian@temptwo by 33\relax
\advance\XePersian@temp by -\XePersian@temptwo
\ifnum\XePersian@temp=\XePersian@thirtytwo\XePersian@kabisehfalse
\else
   \XePersian@temptwo=\XePersian@temp
   \divide\XePersian@temptwo by 4\relax
   \multiply\XePersian@temptwo by 4\relax
   \advance\XePersian@temp by -\XePersian@temptwo
   \ifnum\XePersian@temp=\z@\XePersian@kabisehtrue\else\XePersian@kabisehfalse\fi
\fi
\XePersian@tempthree=\XePersian@y                 % Number of Leap years
\advance\XePersian@tempthree by -1
\XePersian@temp=\XePersian@tempthree              % T := (MY-1) div 4
\divide\XePersian@temp by 4\relax
\XePersian@temptwo=\XePersian@tempthree           % T := T - ((MY-1) div 100)
\divide\XePersian@temptwo by 100\relax
\advance\XePersian@temp by -\XePersian@temptwo
\XePersian@temptwo=\XePersian@tempthree           % T := T + ((MY-1) div 400)
\divide\XePersian@temptwo by 400\relax
\advance\XePersian@temp by \XePersian@temptwo
\advance\XePersian@tempthree by -611       % Number of Kabise years
\XePersian@temptwo=\XePersian@tempthree           % T := T - ((SY+10) div 33) * 8
\divide\XePersian@temptwo by 33\relax
\multiply\XePersian@temptwo by 8\relax
\advance\XePersian@temp by -\XePersian@temptwo
\XePersian@temptwo=\XePersian@tempthree           %
\divide\XePersian@temptwo by 33\relax
\multiply\XePersian@temptwo by 33\relax
\advance\XePersian@tempthree by -\XePersian@temptwo
\ifnum\XePersian@tempthree=32\advance\XePersian@temp by 1\fi % if (SY+10) mod 33=32 then Inc(T);
\divide\XePersian@tempthree by 4\relax     % T := T - ((SY+10) mod 33) div 4
\advance\XePersian@temp by -\XePersian@tempthree
\advance\XePersian@temp by -137            % T := T - 137  Adjust the value
\XePersian@persiani=31
\advance\XePersian@persiani by -\XePersian@temp                 % now 31 - T is the persiani
\XePersian@persianii = 30\relax
\ifXePersian@kabiseh
  \XePersian@persianiii = 30\relax
\else
  \XePersian@persianiii = 29\relax
\fi
\XePersian@persianiv  = 31\relax
\XePersian@persianv   = 31\relax
\XePersian@persianvi  = 31\relax
\XePersian@persianvii = 31\relax
\XePersian@persianviii= 31\relax
\XePersian@persianix  = 31\relax
\XePersian@persianx   = 30\relax
\XePersian@persianxi  = 30\relax
\XePersian@persianxii = 30\relax
\XePersian@persianxiii= 30\relax
\XePersian@dn= 0\relax
\XePersian@sn= 0\relax
\XePersian@mminusone=\XePersian@m
\advance\XePersian@mminusone by -1\relax
\XePersian@i=0\relax
\ifnum\XePersian@i < \XePersian@mminusone
\loop
\advance \XePersian@i by 1\relax
\advance\XePersian@dn by \csname XePersian@latin\romannumeral\the\XePersian@i\endcsname
\ifnum\XePersian@i<\XePersian@mminusone \repeat
\fi
\advance \XePersian@dn by \XePersian@d
\XePersian@i=1\relax
\XePersian@sn = \XePersian@persiani
\ifnum \XePersian@sn<\XePersian@dn
\loop
\advance \XePersian@i by 1\relax
\advance\XePersian@sn by \csname XePersian@persian\romannumeral\the\XePersian@i\endcsname
\ifnum \XePersian@sn<\XePersian@dn \repeat
\fi
\ifnum \XePersian@i < 4
   \XePersian@m = 9 \advance\XePersian@m by \XePersian@i
   \advance \XePersian@y by -622\relax
\else
   \XePersian@m = \XePersian@i \advance \XePersian@m by -3\relax
   \advance \XePersian@y by -621\relax
\fi
\advance\XePersian@sn by -\csname XePersian@persian\romannumeral\the\XePersian@i%
\endcsname
\ifnum\XePersian@i = 1
  \XePersian@d = \XePersian@dn \advance \XePersian@d by 30 \advance\XePersian@d by -\XePersian@persiani
\else
  \XePersian@d = \XePersian@dn \advance \XePersian@d by -\XePersian@sn
\fi
\newcommand*{\persiantoday}{%
\number\XePersian@d\space%
\XePersian@persian@month{\XePersian@m}\space\number\XePersian@y%
}
\let\persianyear\XePersian@y
\let\persianmonth\XePersian@m
\let\persianday\XePersian@d
\def\XePersian@persian@month#1{\ifcase#1\or فروردین\or
اردیبهشت\or
خرداد\or تیر\or
مرداد\or
شهریور\or مهر\or
آبان\or آذر\or
دی\or بهمن\or
اسفند\fi}

\newcommand*{\persianseason}{%
  \ifcase\persianmonth\or
  بهار\or بهار\or بهار\or تابستان\or تابستان\or تابستان\or
  پاییز\or پاییز\or پاییز\or زمستان\or زمستان\or زمستان\fi
}
%    \end{macrocode}
% \iffalse
%</xepersian-persiancal.sty>
%\fi
%
% \Finale
%
%
%\iffalse
%<*magazine-sample.tex>
\documentclass[12pt,twoside]{xepersian-magazine}
\usepackage{graphicx}
\usepackage{xltxtra}
\usepackage{amsmath}
\usepackage{xepersian}
\settextfont[Scale=1]{XB Zar}
\setlatintextfont[Scale=1]{Junicode}
\setmathdigitfont{XB Zar}
\pagestyle{fancy}
\title{مجلهٔ زی‌پرشین}
\author{وفا خلیقی}
\edition{جلد اول}
\customlogo{مجلهٔ زی‌پرشین}
\customminilogo{مجلهٔ زی‌پرشین}
\custommagazinename{مجلهٔ زی‌پرشین}
\customwwwTxt{http://google.com}
\begin{document}
\begin{frontpage}
\firstimage{img/ireland.jpg}{این زیرنویس تصویر اصلی در صفحهٔ اول است.}
\firstarticle{این تیتر مقالهٔ اول است.}
{خوب این قسمت کوچکی از مقالهٔ اول است که ما در حال نوشتن آن هستم. باید یک مقدار بنویسیم تا مقداری این قسمت پر شود تا بتوانیم چیز قشنگی داشته باشیم. دقت کنیم که بصورت انتخابی حتی می‌توانیم زمان را هم درج کنیم که در سمت راست قرار می‌گیرد.}%
{۱۲:۳۴}
\secondarticle{این هم سر تیتر مقالهٔ دوم است.}%
{این هم زیر تیتر مقالهٔ دوم است که آن را در اینجا می‌نویسیم.}%
{خوب این قسمت کوچکی از مقالهٔ اول است که ما در حال نوشتن آن هستم. باید یک مقدار بنویسیم تا مقداری این قسمت پر شود تا بتوانیم چیز قشنگی داشته باشیم. دقت کنیم که بصورت انتخابی حتی می‌توانیم زمان را هم درج کنیم که در سمت راست قرار می‌گیرد.}%
{قسمت الف}%
{۱۰:۲۳}

\thirdarticle{این سرتیتر مقالهٔ سوم است.}%
{این هم زیرتیتر مقالهٔ سوم است که ما آن را در اینجا قرار می‌دهیم.}%
{خوب این قسمت کوچکی از مقالهٔ اول است که ما در حال نوشتن آن هستم. باید یک مقدار بنویسیم تا مقداری این قسمت پر شود تا بتوانیم چیز قشنگی داشته باشیم. دقت کنیم که بصورت انتخابی حتی می‌توانیم زمان را هم درج کنیم که در سمت راست قرار می‌گیرد. و همانطور که می‌بینید من مطلبی برای گفتن ندارم فقط متن علکی می‌نویسم تا کمی صفحه را پر کرده باشم. اما در قسمتهای بعدی مقداری از سهراب سپهری خواهم نوشت.}%

{قسمت ب}%
{۱۰:۰۲}

\begin{indexblock}{نمایه (فهرست مطالب) اصلی}
\indexitem{۱- مقاله اول}{1}

\indexitem{۲- مقاله دوم}{3}

\indexitem{۳- مقاله سوم}{3}

\indexitem{۴- مقاله چهارم}{5}
\end{indexblock}

\begin{weatherblock}{وضع آب و هوا}
\weatheritem{img/weather/rain.jpg}{امروز}{13}{9}{}
\weatheritem{img/weather/sun.jpg}{فردا}{15}{1}{}
\weatheritem{img/weather/clouds.jpg}{جمعه}{12}{6}{}
\end{weatherblock}

\begin{authorblock}
\textbf{ویرایشگران}

وفا خلیقی، مهدی امیدعلی و مصطفی واحدی

\texttt{me@somedomain.com\\[5pt]
http://google.com}\\
\end{authorblock}
\end{frontpage}
\newsection{قسمت الف}
\begin{article}{2}
{این تیتر این مقاله است.}
{این هم زیرتیتر این مقاله هست.}
{قسمت الف}
{1}
\authorandplace{نام نویسنده}{مکان}

\noindent\timestamp{۸:۲۵}
ويژگی اصلی که اين معماری را متمايز کرده و در دنيای اينترنت آن‌ها در مقابل معماری قبلی شبكه‌ها قرار داده است، امكان ايجاد ارتباط مستقيم  بين كامپيوترهای مختلف بدون نياز به دخالت سرورهای قدرتمند در بين راه است.  نام‌ اين نوع معماری هم در واقع بر گرفته شده از همین  ارتباط مستقیم بين گره‌ها است.  در واقع در اين نوع شبكه‌ها اثری از سرورها نيست و تمامی گره‌های معمولی موجود در شبكه، بايد وظايفی را که قبلا بر عهده‌ی سرورها بود، خود انجام دهند. بنابراين در اين نوع معماری گره‌های معمولی در ضمن اين‌که از خدمات شبکه بهره‌مند می‌شود بايد نقش خدمت‌گزار را هم ايفا کنند . در اين نوع شبکه‌ها گره‌های معمولی به كمك روش‌ها و پروتكل‌های توزيع شده، تمامی وظايف  مسير يابی در شبكه، جستجوی منابع، امنيت شبكه و شناسايی هويت استفاده كننده‌ها و هم‌چنين مقابله با حملات احتمالی مهاجمان را بر عهده دارند.
\footnote{این یک زیرنویس فارسی است.}\LTRfootnote{This is an English footnote.}
\begin{equation}
(a+b)^3=a^3+3a^2b+3ab^2+b^3\label{eq-1}
\end{equation}
این معادلهٔ \eqref{eq-1} است.
\columntitle{lines}{این را برای مهم یا نشان دادن حرفی مهم در این مجله انجام می‌دهیم.}

ويژگی اصلی که اين معماری را متمايز کرده و در دنيای اينترنت آن‌ها در مقابل معماری قبلی شبكه‌ها قرار داده است، امكان ايجاد ارتباط مستقيم  بين كامپيوترهای مختلف بدون نياز به دخالت سرورهای قدرتمند در بين راه است.  نام‌ اين نوع معماری هم در واقع بر گرفته شده از همین  ارتباط مستقیم بين گره‌ها است.  در واقع در اين نوع شبكه‌ها اثری از سرورها نيست و تمامی گره‌های معمولی موجود در شبكه، بايد وظايفی را که قبلا بر عهده‌ی سرورها بود، خود انجام دهند. بنابراين در اين نوع معماری گره‌های معمولی در ضمن اين‌که از خدمات شبکه بهره‌مند می‌شود بايد نقش خدمت‌گزار را هم ايفا کنند . در اين نوع شبکه‌ها گره‌های معمولی به كمك روش‌ها و پروتكل‌های توزيع شده، تمامی وظايف  مسير يابی در شبكه، جستجوی منابع، امنيت شبكه و شناسايی هويت استفاده كننده‌ها و هم‌چنين مقابله با حملات احتمالی مهاجمان را بر عهده دارند.

اما معماری همتابه‌همتا ويژگی‌های ديگری نيز دارد که آن را هم برای فراهم‌کنندگان کاربردها و هم برای استفاده‌کنندگان جذاب‌تر می‌کند.  از آن‌جا که شبکه‌های همتابه‌همتا از همان زيرساخت‌های اينترنت استفاده می‌کنند ونيازی به راه‌اندازی سرورها ندارند، ساخت اين شبكه‌ها بسيار ارزان‌تر از ايجاد زير ساخت‌های لازم برای راه‌اندازی شبكه‌های مشتری/خدمت‌گزار است.  هم‌چنين با زياد شدن تعداد کاربران چون درعمل تعداد گره‌های ارائه کننده‌ی خدمات هم بالا می‌رود، نه تنها عملكرد شبكه افت پيدا نمی‌كند بلكه انتظار بهبود عملکرد نيز می‌رود. گذشته از اين موارد، مالكيت اين شبكه‌ها به صورت اشتراكی بين تمام کاربران پخش شده و هيچ شخص يا شركتی نمی‌تواند سياست‌های دلخواه خود را در اين نوع شبكه‌ها اعمال کند.

اماهيچ چيزی بی‌ بها به دست نمی‌آید. نبود سرور مرکزی اگر چه  ويژگی‌های جذابی به شبکه‌های همتابه‌همتا می‌بخشد اما از طرف ديگر آن‌ها را با دشواری‌هايی نيز روبه‌رو می‌کند.  عدم وجود يك هماهنگ كننده مركزی در شبكه، انجام بسياری از امور و ارائه خدمات را  دچار مشكل می‌کند.  از يک طرف، تغيير و رفت‌وآمد زیاد کاربران از ويژگی‌های ذاتی اين شبکه‌ها است و از طرف ديگر در اين شبكه‌ها، ديگر اين گره‌های معمولی  هستند كه  عهده‌دار تمامی وظايف هستند. به همين دلیل يکی از مشکلات اصلی فراروی اين شبكه‌ها، مقابله با  تغييرات لحظه‌ای و فراهم آوردن ثبات در ارائه  خدمات در بستری از بی‌ثباتی است.
\end{article}

\articlesep

\begin{article}{2}
{این تیتر این مقاله است.}
{این هم زیرتیتر این مقاله هست.}
{قسمت الف}
{1}
\authorandplace{نام نویسنده}{مکان}

\noindent\timestamp{08:25}
ويژگی اصلی که اين معماری را متمايز کرده و در دنيای اينترنت آن‌ها در مقابل معماری قبلی شبكه‌ها قرار داده است، امكان ايجاد ارتباط مستقيم  بين كامپيوترهای مختلف بدون نياز به دخالت سرورهای قدرتمند در بين راه است.  نام‌ اين نوع معماری هم در واقع بر گرفته شده از همین  ارتباط مستقیم بين گره‌ها است.  در واقع در اين نوع شبكه‌ها اثری از سرورها نيست و تمامی گره‌های معمولی موجود در شبكه، بايد وظايفی را که قبلا بر عهده‌ی سرورها بود، خود انجام دهند. بنابراين در اين نوع معماری گره‌های معمولی در ضمن اين‌که از خدمات شبکه بهره‌مند می‌شود بايد نقش خدمت‌گزار را هم ايفا کنند . در اين نوع شبکه‌ها گره‌های معمولی به كمك روش‌ها و پروتكل‌های توزيع شده، تمامی وظايف  مسير يابی در شبكه، جستجوی منابع، امنيت شبكه و شناسايی هويت استفاده كننده‌ها و هم‌چنين مقابله با حملات احتمالی مهاجمان را بر عهده دارند.
\LTRfootnote{This is an English footnote.}\footnote{این یک زیرنویس فارسی است.}
اما معماری همتابه‌همتا ويژگی‌های ديگری نيز دارد که آن را هم برای فراهم‌کنندگان کاربردها و هم برای استفاده‌کنندگان جذاب‌تر می‌کند.  از آن‌جا که شبکه‌های همتابه‌همتا از همان زيرساخت‌های اينترنت استفاده می‌کنند ونيازی به راه‌اندازی سرورها ندارند، ساخت اين شبكه‌ها بسيار ارزان‌تر از ايجاد زير ساخت‌های لازم برای راه‌اندازی شبكه‌های مشتری/خدمت‌گزار است.  هم‌چنين با زياد شدن تعداد کاربران چون درعمل تعداد گره‌های ارائه کننده‌ی خدمات هم بالا می‌رود، نه تنها عملكرد شبكه افت پيدا نمی‌كند بلكه انتظار بهبود عملکرد نيز می‌رود. گذشته از اين موارد، مالكيت اين شبكه‌ها به صورت اشتراكی بين تمام کاربران پخش شده و هيچ شخص يا شركتی نمی‌تواند سياست‌های دلخواه خود را در اين نوع شبكه‌ها اعمال کند.

اماهيچ چيزی بی‌ بها به دست نمی‌آید. نبود سرور مرکزی اگر چه  ويژگی‌های جذابی به شبکه‌های همتابه‌همتا می‌بخشد اما از طرف ديگر آن‌ها را با دشواری‌هايی نيز روبه‌رو می‌کند.  عدم وجود يك هماهنگ كننده مركزی در شبكه، انجام بسياری از امور و ارائه خدمات را  دچار مشكل می‌کند.  از يک طرف، تغيير و رفت‌وآمد زیاد کاربران از ويژگی‌های ذاتی اين شبکه‌ها است و از طرف ديگر در اين شبكه‌ها، ديگر اين گره‌های معمولی  هستند كه  عهده‌دار تمامی وظايف هستند. به همين دلیل يکی از مشکلات اصلی فراروی اين شبكه‌ها، مقابله با  تغييرات لحظه‌ای و فراهم آوردن ثبات در ارائه  خدمات در بستری از بی‌ثباتی است.

ويژگی اصلی که اين معماری را متمايز کرده و در دنيای اينترنت آن‌ها در مقابل معماری قبلی شبكه‌ها قرار داده است، امكان ايجاد ارتباط مستقيم  بين كامپيوترهای مختلف بدون نياز به دخالت سرورهای قدرتمند در بين راه است.  نام‌ اين نوع معماری هم در واقع بر گرفته شده از همین  ارتباط مستقیم بين گره‌ها است.  در واقع در اين نوع شبكه‌ها اثری از سرورها نيست و تمامی گره‌های معمولی موجود در شبكه، بايد وظايفی را که قبلا بر عهده‌ی سرورها بود، خود انجام دهند. بنابراين در اين نوع معماری گره‌های معمولی در ضمن اين‌که از خدمات شبکه بهره‌مند می‌شود بايد نقش خدمت‌گزار را هم ايفا کنند . در اين نوع شبکه‌ها گره‌های معمولی به كمك روش‌ها و پروتكل‌های توزيع شده، تمامی وظايف  مسير يابی در شبكه، جستجوی منابع، امنيت شبكه و شناسايی هويت استفاده كننده‌ها و هم‌چنين مقابله با حملات احتمالی مهاجمان را بر عهده دارند.

اما معماری همتابه‌همتا ويژگی‌های ديگری نيز دارد که آن را هم برای فراهم‌کنندگان کاربردها و هم برای استفاده‌کنندگان جذاب‌تر می‌کند.  از آن‌جا که شبکه‌های همتابه‌همتا از همان زيرساخت‌های اينترنت استفاده می‌کنند ونيازی به راه‌اندازی سرورها ندارند، ساخت اين شبكه‌ها بسيار ارزان‌تر از ايجاد زير ساخت‌های لازم برای راه‌اندازی شبكه‌های مشتری/خدمت‌گزار است.  هم‌چنين با زياد شدن تعداد کاربران چون درعمل تعداد گره‌های ارائه کننده‌ی خدمات هم بالا می‌رود، نه تنها عملكرد شبكه افت پيدا نمی‌كند بلكه انتظار بهبود عملکرد نيز می‌رود. گذشته از اين موارد، مالكيت اين شبكه‌ها به صورت اشتراكی بين تمام کاربران پخش شده و هيچ شخص يا شركتی نمی‌تواند سياست‌های دلخواه خود را در اين نوع شبكه‌ها اعمال کند.

اماهيچ چيزی بی‌ بها به دست نمی‌آید. نبود سرور مرکزی اگر چه  ويژگی‌های جذابی به شبکه‌های همتابه‌همتا می‌بخشد اما از طرف ديگر آن‌ها را با دشواری‌هايی نيز روبه‌رو می‌کند.  عدم وجود يك هماهنگ كننده مركزی در شبكه، انجام بسياری از امور و ارائه خدمات را  دچار مشكل می‌کند.  از يک طرف، تغيير و رفت‌وآمد زیاد کاربران از ويژگی‌های ذاتی اين شبکه‌ها است و از طرف ديگر در اين شبكه‌ها، ديگر اين گره‌های معمولی  هستند كه  عهده‌دار تمامی وظايف هستند. به همين دلیل يکی از مشکلات اصلی فراروی اين شبكه‌ها، مقابله با  تغييرات لحظه‌ای و فراهم آوردن ثبات در ارائه  خدمات در بستری از بی‌ثباتی است.

\expandedtitle{doublebox}{این هم مطلی است مهم یا چیزی که از خلاصهٔ این مقاله ما متوجه شده‌ایم و این برای ما و خوانندگان خیلی مهم است.}

ويژگی اصلی که اين معماری را متمايز کرده و در دنيای اينترنت آن‌ها در مقابل معماری قبلی شبكه‌ها قرار داده است، امكان ايجاد ارتباط مستقيم  بين كامپيوترهای مختلف بدون نياز به دخالت سرورهای قدرتمند در بين راه است.  نام‌ اين نوع معماری هم در واقع بر گرفته شده از همین  ارتباط مستقیم بين گره‌ها است.  در واقع در اين نوع شبكه‌ها اثری از سرورها نيست و تمامی گره‌های معمولی موجود در شبكه، بايد وظايفی را که قبلا بر عهده‌ی سرورها بود، خود انجام دهند. بنابراين در اين نوع معماری گره‌های معمولی در ضمن اين‌که از خدمات شبکه بهره‌مند می‌شود بايد نقش خدمت‌گزار را هم ايفا کنند . در اين نوع شبکه‌ها گره‌های معمولی به كمك روش‌ها و پروتكل‌های توزيع شده، تمامی وظايف  مسير يابی در شبكه، جستجوی منابع، امنيت شبكه و شناسايی هويت استفاده كننده‌ها و هم‌چنين مقابله با حملات احتمالی مهاجمان را بر عهده دارند.

اما معماری همتابه‌همتا ويژگی‌های ديگری نيز دارد که آن را هم برای فراهم‌کنندگان کاربردها و هم برای استفاده‌کنندگان جذاب‌تر می‌کند.  از آن‌جا که شبکه‌های همتابه‌همتا از همان زيرساخت‌های اينترنت استفاده می‌کنند ونيازی به راه‌اندازی سرورها ندارند، ساخت اين شبكه‌ها بسيار ارزان‌تر از ايجاد زير ساخت‌های لازم برای راه‌اندازی شبكه‌های مشتری/خدمت‌گزار است.  هم‌چنين با زياد شدن تعداد کاربران چون درعمل تعداد گره‌های ارائه کننده‌ی خدمات هم بالا می‌رود، نه تنها عملكرد شبكه افت پيدا نمی‌كند بلكه انتظار بهبود عملکرد نيز می‌رود. گذشته از اين موارد، مالكيت اين شبكه‌ها به صورت اشتراكی بين تمام کاربران پخش شده و هيچ شخص يا شركتی نمی‌تواند سياست‌های دلخواه خود را در اين نوع شبكه‌ها اعمال کند.

اماهيچ چيزی بی‌ بها به دست نمی‌آید. نبود سرور مرکزی اگر چه  ويژگی‌های جذابی به شبکه‌های همتابه‌همتا می‌بخشد اما از طرف ديگر آن‌ها را با دشواری‌هايی نيز روبه‌رو می‌کند.  عدم وجود يك هماهنگ كننده مركزی در شبكه، انجام بسياری از امور و ارائه خدمات را  دچار مشكل می‌کند.  از يک طرف، تغيير و رفت‌وآمد زیاد کاربران از ويژگی‌های ذاتی اين شبکه‌ها است و از طرف ديگر در اين شبكه‌ها، ديگر اين گره‌های معمولی  هستند كه  عهده‌دار تمامی وظايف هستند. به همين دلیل يکی از مشکلات اصلی فراروی اين شبكه‌ها، مقابله با  تغييرات لحظه‌ای و فراهم آوردن ثبات در ارائه  خدمات در بستری از بی‌ثباتی است.
\end{article}

\articlesep

\newsection{قسمت ب}

\begin{article}{2}
{این یک تیتر کوتاه است.وفا خلیقی}
{این هم مثل همیشه زیرتیتر است که ما آن را در اینجا قرار می‌دهیم.}
{قسمت ب}
{3}

\authorandplace{نام نویسنده}{مکان}

\noindent\timestamp{08:25}  et ويژگی اصلی که اين معماری را متمايز کرده و در دنيای اينترنت آن‌ها در مقابل معماری قبلی شبكه‌ها قرار داده است، امكان ايجاد ارتباط مستقيم  بين كامپيوترهای مختلف بدون نياز به دخالت سرورهای قدرتمند در بين راه است.  نام‌ اين نوع معماری هم در واقع بر گرفته شده از همین  ارتباط مستقیم بين گره‌ها است.  در واقع در اين نوع شبكه‌ها اثری از سرورها نيست و تمامی گره‌های معمولی موجود در شبكه، بايد وظايفی را که قبلا بر عهده‌ی سرورها بود، خود انجام دهند. بنابراين در اين نوع معماری گره‌های معمولی در ضمن اين‌که از خدمات شبکه بهره‌مند می‌شود بايد نقش خدمت‌گزار را هم ايفا کنند . در اين نوع شبکه‌ها گره‌های معمولی به كمك روش‌ها و پروتكل‌های توزيع شده، تمامی وظايف  مسير يابی در شبكه، جستجوی منابع، امنيت شبكه و شناسايی هويت استفاده كننده‌ها و هم‌چنين مقابله با حملات احتمالی مهاجمان را بر عهده دارند.

اما معماری همتابه‌همتا ويژگی‌های ديگری نيز دارد که آن را هم برای فراهم‌کنندگان کاربردها و هم برای استفاده‌کنندگان جذاب‌تر می‌کند.  از آن‌جا که شبکه‌های همتابه‌همتا از همان زيرساخت‌های اينترنت استفاده می‌کنند ونيازی به راه‌اندازی سرورها ندارند، ساخت اين شبكه‌ها بسيار ارزان‌تر از ايجاد زير ساخت‌های لازم برای راه‌اندازی شبكه‌های مشتری/خدمت‌گزار است.  هم‌چنين با زياد شدن تعداد کاربران چون درعمل تعداد گره‌های ارائه کننده‌ی خدمات هم بالا می‌رود، نه تنها عملكرد شبكه افت پيدا نمی‌كند بلكه انتظار بهبود عملکرد نيز می‌رود. گذشته از اين موارد، مالكيت اين شبكه‌ها به صورت اشتراكی بين تمام کاربران پخش شده و هيچ شخص يا شركتی نمی‌تواند سياست‌های دلخواه خود را در اين نوع شبكه‌ها اعمال کند.

اماهيچ چيزی بی‌ بها به دست نمی‌آید. نبود سرور مرکزی اگر چه  ويژگی‌های جذابی به شبکه‌های همتابه‌همتا می‌بخشد اما از طرف ديگر آن‌ها را با دشواری‌هايی نيز روبه‌رو می‌کند.  عدم وجود يك هماهنگ كننده مركزی در شبكه، انجام بسياری از امور و ارائه خدمات را  دچار مشكل می‌کند.  از يک طرف، تغيير و رفت‌وآمد زیاد کاربران از ويژگی‌های ذاتی اين شبکه‌ها است و از طرف ديگر در اين شبكه‌ها، ديگر اين گره‌های معمولی  هستند كه  عهده‌دار تمامی وظايف هستند. به همين دلیل يکی از مشکلات اصلی فراروی اين شبكه‌ها، مقابله با  تغييرات لحظه‌ای و فراهم آوردن ثبات در ارائه  خدمات در بستری از بی‌ثباتی است.

ويژگی اصلی که اين معماری را متمايز کرده و در دنيای اينترنت آن‌ها در مقابل معماری قبلی شبكه‌ها قرار داده است، امكان ايجاد ارتباط مستقيم  بين كامپيوترهای مختلف بدون نياز به دخالت سرورهای قدرتمند در بين راه است.  نام‌ اين نوع معماری هم در واقع بر گرفته شده از همین  ارتباط مستقیم بين گره‌ها است.  در واقع در اين نوع شبكه‌ها اثری از سرورها نيست و تمامی گره‌های معمولی موجود در شبكه، بايد وظايفی را که قبلا بر عهده‌ی سرورها بود، خود انجام دهند. بنابراين در اين نوع معماری گره‌های معمولی در ضمن اين‌که از خدمات شبکه بهره‌مند می‌شود بايد نقش خدمت‌گزار را هم ايفا کنند . در اين نوع شبکه‌ها گره‌های معمولی به كمك روش‌ها و پروتكل‌های توزيع شده، تمامی وظايف  مسير يابی در شبكه، جستجوی منابع، امنيت شبكه و شناسايی هويت استفاده كننده‌ها و هم‌چنين مقابله با حملات احتمالی مهاجمان را بر عهده دارند.

اما معماری همتابه‌همتا ويژگی‌های ديگری نيز دارد که آن را هم برای فراهم‌کنندگان کاربردها و هم برای استفاده‌کنندگان جذاب‌تر می‌کند.  از آن‌جا که شبکه‌های همتابه‌همتا از همان زيرساخت‌های اينترنت استفاده می‌کنند ونيازی به راه‌اندازی سرورها ندارند، ساخت اين شبكه‌ها بسيار ارزان‌تر از ايجاد زير ساخت‌های لازم برای راه‌اندازی شبكه‌های مشتری/خدمت‌گزار است.  هم‌چنين با زياد شدن تعداد کاربران چون درعمل تعداد گره‌های ارائه کننده‌ی خدمات هم بالا می‌رود، نه تنها عملكرد شبكه افت پيدا نمی‌كند بلكه انتظار بهبود عملکرد نيز می‌رود. گذشته از اين موارد، مالكيت اين شبكه‌ها به صورت اشتراكی بين تمام کاربران پخش شده و هيچ شخص يا شركتی نمی‌تواند سياست‌های دلخواه خود را در اين نوع شبكه‌ها اعمال کند.

اماهيچ چيزی بی‌ بها به دست نمی‌آید. نبود سرور مرکزی اگر چه  ويژگی‌های جذابی به شبکه‌های همتابه‌همتا می‌بخشد اما از طرف ديگر آن‌ها را با دشواری‌هايی نيز روبه‌رو می‌کند.  عدم وجود يك هماهنگ كننده مركزی در شبكه، انجام بسياری از امور و ارائه خدمات را  دچار مشكل می‌کند.  از يک طرف، تغيير و رفت‌وآمد زیاد کاربران از ويژگی‌های ذاتی اين شبکه‌ها است و از طرف ديگر در اين شبكه‌ها، ديگر اين گره‌های معمولی  هستند كه  عهده‌دار تمامی وظايف هستند. به همين دلیل يکی از مشکلات اصلی فراروی اين شبكه‌ها، مقابله با  تغييرات لحظه‌ای و فراهم آوردن ثبات در ارائه  خدمات در بستری از بی‌ثباتی است.

\expandedtitle{lines}{این هم دوباره مطلب مهمی است که ما آن را از لابلای این مقاله برای خواننده درست کرده‌ایم.}

ويژگی اصلی که اين معماری را متمايز کرده و در دنيای اينترنت آن‌ها در مقابل معماری قبلی شبكه‌ها قرار داده است، امكان ايجاد ارتباط مستقيم  بين كامپيوترهای مختلف بدون نياز به دخالت سرورهای قدرتمند در بين راه است.  نام‌ اين نوع معماری هم در واقع بر گرفته شده از همین  ارتباط مستقیم بين گره‌ها است.  در واقع در اين نوع شبكه‌ها اثری از سرورها نيست و تمامی گره‌های معمولی موجود در شبكه، بايد وظايفی را که قبلا بر عهده‌ی سرورها بود، خود انجام دهند. بنابراين در اين نوع معماری گره‌های معمولی در ضمن اين‌که از خدمات شبکه بهره‌مند می‌شود بايد نقش خدمت‌گزار را هم ايفا کنند . در اين نوع شبکه‌ها گره‌های معمولی به كمك روش‌ها و پروتكل‌های توزيع شده، تمامی وظايف  مسير يابی در شبكه، جستجوی منابع، امنيت شبكه و شناسايی هويت استفاده كننده‌ها و هم‌چنين مقابله با حملات احتمالی مهاجمان را بر عهده دارند.

اما معماری همتابه‌همتا ويژگی‌های ديگری نيز دارد که آن را هم برای فراهم‌کنندگان کاربردها و هم برای استفاده‌کنندگان جذاب‌تر می‌کند.  از آن‌جا که شبکه‌های همتابه‌همتا از همان زيرساخت‌های اينترنت استفاده می‌کنند ونيازی به راه‌اندازی سرورها ندارند، ساخت اين شبكه‌ها بسيار ارزان‌تر از ايجاد زير ساخت‌های لازم برای راه‌اندازی شبكه‌های مشتری/خدمت‌گزار است.  هم‌چنين با زياد شدن تعداد کاربران چون درعمل تعداد گره‌های ارائه کننده‌ی خدمات هم بالا می‌رود، نه تنها عملكرد شبكه افت پيدا نمی‌كند بلكه انتظار بهبود عملکرد نيز می‌رود. گذشته از اين موارد، مالكيت اين شبكه‌ها به صورت اشتراكی بين تمام کاربران پخش شده و هيچ شخص يا شركتی نمی‌تواند سياست‌های دلخواه خود را در اين نوع شبكه‌ها اعمال کند.

اماهيچ چيزی بی‌ بها به دست نمی‌آید. نبود سرور مرکزی اگر چه  ويژگی‌های جذابی به شبکه‌های همتابه‌همتا می‌بخشد اما از طرف ديگر آن‌ها را با دشواری‌هايی نيز روبه‌رو می‌کند.  عدم وجود يك هماهنگ كننده مركزی در شبكه، انجام بسياری از امور و ارائه خدمات را  دچار مشكل می‌کند.  از يک طرف، تغيير و رفت‌وآمد زیاد کاربران از ويژگی‌های ذاتی اين شبکه‌ها است و از طرف ديگر در اين شبكه‌ها، ديگر اين گره‌های معمولی  هستند كه  عهده‌دار تمامی وظايف هستند. به همين دلیل يکی از مشکلات اصلی فراروی اين شبكه‌ها، مقابله با  تغييرات لحظه‌ای و فراهم آوردن ثبات در ارائه  خدمات در بستری از بی‌ثباتی است.
\end{article}

\articlesep

\begin{editorial}{1}{این یک مثال از مقاله‌ای از طرف ویرایشگر است.}{نام و نام خانوادگی}{4}
يژگی اصلی که اين معماری را متمايز کرده و در دنيای اينترنت آن‌ها در مقابل معماری قبلی شبكه‌ها قرار داده است، امكان ايجاد ارتباط مستقيم  بين كامپيوترهای مختلف بدون نياز به دخالت سرورهای قدرتمند در بين راه است.  نام‌ اين نوع معماری هم در واقع بر گرفته شده از همین  ارتباط مستقیم بين گره‌ها است.  در واقع در اين نوع شبكه‌ها اثری از سرورها نيست و تمامی گره‌های معمولی موجود در شبكه، بايد وظايفی را که قبلا بر عهده‌ی سرورها بود، خود انجام دهند. بنابراين در اين نوع معماری گره‌های معمولی در ضمن اين‌که از خدمات شبکه بهره‌مند می‌شود بايد نقش خدمت‌گزار را هم ايفا کنند . در اين نوع شبکه‌ها گره‌های معمولی به كمك روش‌ها و پروتكل‌های توزيع شده، تمامی وظايف  مسير يابی در شبكه، جستجوی منابع، امنيت شبكه و شناسايی هويت استفاده كننده‌ها و هم‌چنين مقابله با حملات احتمالی مهاجمان را بر عهده دارند.

اما معماری همتابه‌همتا ويژگی‌های ديگری نيز دارد که آن را هم برای فراهم‌کنندگان کاربردها و هم برای استفاده‌کنندگان جذاب‌تر می‌کند.  از آن‌جا که شبکه‌های همتابه‌همتا از همان زيرساخت‌های اينترنت استفاده می‌کنند ونيازی به راه‌اندازی سرورها ندارند، ساخت اين شبكه‌ها بسيار ارزان‌تر از ايجاد زير ساخت‌های لازم برای راه‌اندازی شبكه‌های مشتری/خدمت‌گزار است.  هم‌چنين با زياد شدن تعداد کاربران چون درعمل تعداد گره‌های ارائه کننده‌ی خدمات هم بالا می‌رود، نه تنها عملكرد شبكه افت پيدا نمی‌كند بلكه انتظار بهبود عملکرد نيز می‌رود. گذشته از اين موارد، مالكيت اين شبكه‌ها به صورت اشتراكی بين تمام کاربران پخش شده و هيچ شخص يا شركتی نمی‌تواند سياست‌های دلخواه خود را در اين نوع شبكه‌ها اعمال کند.

اماهيچ چيزی بی‌ بها به دست نمی‌آید. نبود سرور مرکزی اگر چه  ويژگی‌های جذابی به شبکه‌های همتابه‌همتا می‌بخشد اما از طرف ديگر آن‌ها را با دشواری‌هايی نيز روبه‌رو می‌کند.  عدم وجود يك هماهنگ كننده مركزی در شبكه، انجام بسياری از امور و ارائه خدمات را  دچار مشكل می‌کند.  از يک طرف، تغيير و رفت‌وآمد زیاد کاربران از ويژگی‌های ذاتی اين شبکه‌ها است و از طرف ديگر در اين شبكه‌ها، ديگر اين گره‌های معمولی  هستند كه  عهده‌دار تمامی وظايف هستند. به همين دلیل يکی از مشکلات اصلی فراروی اين شبكه‌ها، مقابله با  تغييرات لحظه‌ای و فراهم آوردن ثبات در ارائه  خدمات در بستری از بی‌ثباتی است.
\end{editorial}

\articlesep

\begin{shortarticle}{4}{محیط مقالهٔ کوتاه}{محیط مقالهٔ کوتاه داخل مجلهٔ زی‌پرشین}{5}
\shortarticleitem{این یک تیتر کوتاه است}{ويژگی اصلی که اين معماری را متمايز کرده و در دنيای اينترنت آن‌ها در مقابل معماری قبلی شبكه‌ها قرار داده است، امكان ايجاد ارتباط مستقيم  بين كامپيوترهای مختلف بدون نياز به دخالت سرورهای قدرتمند در بين راه است.  نام‌ اين نوع معماری هم در واقع بر گرفته شده از همین  ارتباط مستقیم بين گره‌ها است.  در واقع در اين نوع شبكه‌ها اثری از سرورها نيست و تمامی گره‌های معمولی موجود در شبكه، بايد وظايفی را که قبلا بر عهده‌ی سرورها بود، خود انجام دهند. بنابراين در اين نوع معماری گره‌های معمولی در ضمن اين‌که از خدمات شبکه بهره‌مند می‌شود بايد نقش خدمت‌گزار را هم ايفا کنند . در اين نوع شبکه‌ها گره‌های معمولی به كمك روش‌ها و پروتكل‌های توزيع شده، تمامی وظايف  مسير يابی در شبكه، جستجوی منابع، امنيت شبكه و شناسايی هويت استفاده كننده‌ها و هم‌چنين مقابله با حملات احتمالی مهاجمان را بر عهده دارند.}
\shortarticleitem{یک تیتر کوتاه دیگر}{ويژگی اصلی که اين معماری را متمايز کرده و در دنيای اينترنت آن‌ها در مقابل معماری قبلی شبكه‌ها قرار داده است، امكان ايجاد ارتباط مستقيم  بين كامپيوترهای مختلف بدون نياز به دخالت سرورهای قدرتمند در بين راه است.  نام‌ اين نوع معماری هم در واقع بر گرفته شده از همین  ارتباط مستقیم بين گره‌ها است.  در واقع در اين نوع شبكه‌ها اثری از سرورها نيست و تمامی گره‌های معمولی موجود در شبكه، بايد وظايفی را که قبلا بر عهده‌ی سرورها بود، خود انجام دهند. بنابراين در اين نوع معماری گره‌های معمولی در ضمن اين‌که از خدمات شبکه بهره‌مند می‌شود بايد نقش خدمت‌گزار را هم ايفا کنند . در اين نوع شبکه‌ها گره‌های معمولی به كمك روش‌ها و پروتكل‌های توزيع شده، تمامی وظايف  مسير يابی در شبكه، جستجوی منابع، امنيت شبكه و شناسايی هويت استفاده كننده‌ها و هم‌چنين مقابله با حملات احتمالی مهاجمان را بر عهده دارند.}
\shortarticleitem{یک تیتر کوتاه دیگر}{ويژگی اصلی که اين معماری را متمايز کرده و در دنيای اينترنت آن‌ها در مقابل معماری قبلی شبكه‌ها قرار داده است، امكان ايجاد ارتباط مستقيم  بين كامپيوترهای مختلف بدون نياز به دخالت سرورهای قدرتمند در بين راه است.  نام‌ اين نوع معماری هم در واقع بر گرفته شده از همین  ارتباط مستقیم بين گره‌ها است.  در واقع در اين نوع شبكه‌ها اثری از سرورها نيست و تمامی گره‌های معمولی موجود در شبكه، بايد وظايفی را که قبلا بر عهده‌ی سرورها بود، خود انجام دهند. بنابراين در اين نوع معماری گره‌های معمولی در ضمن اين‌که از خدمات شبکه بهره‌مند می‌شود بايد نقش خدمت‌گزار را هم ايفا کنند . در اين نوع شبکه‌ها گره‌های معمولی به كمك روش‌ها و پروتكل‌های توزيع شده، تمامی وظايف  مسير يابی در شبكه، جستجوی منابع، امنيت شبكه و شناسايی هويت استفاده كننده‌ها و هم‌چنين مقابله با حملات احتمالی مهاجمان را بر عهده دارند.}
\shortarticleitem{یک تیتر کوتاه دیگر}{ويژگی اصلی که اين معماری را متمايز کرده و در دنيای اينترنت آن‌ها در مقابل معماری قبلی شبكه‌ها قرار داده است، امكان ايجاد ارتباط مستقيم  بين كامپيوترهای مختلف بدون نياز به دخالت سرورهای قدرتمند در بين راه است.  نام‌ اين نوع معماری هم در واقع بر گرفته شده از همین  ارتباط مستقیم بين گره‌ها است.  در واقع در اين نوع شبكه‌ها اثری از سرورها نيست و تمامی گره‌های معمولی موجود در شبكه، بايد وظايفی را که قبلا بر عهده‌ی سرورها بود، خود انجام دهند. بنابراين در اين نوع معماری گره‌های معمولی در ضمن اين‌که از خدمات شبکه بهره‌مند می‌شود بايد نقش خدمت‌گزار را هم ايفا کنند . در اين نوع شبکه‌ها گره‌های معمولی به كمك روش‌ها و پروتكل‌های توزيع شده، تمامی وظايف  مسير يابی در شبكه، جستجوی منابع، امنيت شبكه و شناسايی هويت استفاده كننده‌ها و هم‌چنين مقابله با حملات احتمالی مهاجمان را بر عهده دارند.}
\shortarticleitem{یک تیتر کوتاه دیگر}{ويژگی اصلی که اين معماری را متمايز کرده و در دنيای اينترنت آن‌ها در مقابل معماری قبلی شبكه‌ها قرار داده است، امكان ايجاد ارتباط مستقيم  بين كامپيوترهای مختلف بدون نياز به دخالت سرورهای قدرتمند در بين راه است.  نام‌ اين نوع معماری هم در واقع بر گرفته شده از همین  ارتباط مستقیم بين گره‌ها است.  در واقع در اين نوع شبكه‌ها اثری از سرورها نيست و تمامی گره‌های معمولی موجود در شبكه، بايد وظايفی را که قبلا بر عهده‌ی سرورها بود، خود انجام دهند. بنابراين در اين نوع معماری گره‌های معمولی در ضمن اين‌که از خدمات شبکه بهره‌مند می‌شود بايد نقش خدمت‌گزار را هم ايفا کنند . در اين نوع شبکه‌ها گره‌های معمولی به كمك روش‌ها و پروتكل‌های توزيع شده، تمامی وظايف  مسير يابی در شبكه، جستجوی منابع، امنيت شبكه و شناسايی هويت استفاده كننده‌ها و هم‌چنين مقابله با حملات احتمالی مهاجمان را بر عهده دارند.}
\shortarticleitem{یک تیتر کوتاه دیگر}{ويژگی اصلی که اين معماری را متمايز کرده و در دنيای اينترنت آن‌ها در مقابل معماری قبلی شبكه‌ها قرار داده است، امكان ايجاد ارتباط مستقيم  بين كامپيوترهای مختلف بدون نياز به دخالت سرورهای قدرتمند در بين راه است.  نام‌ اين نوع معماری هم در واقع بر گرفته شده از همین  ارتباط مستقیم بين گره‌ها است.  در واقع در اين نوع شبكه‌ها اثری از سرورها نيست و تمامی گره‌های معمولی موجود در شبكه، بايد وظايفی را که قبلا بر عهده‌ی سرورها بود، خود انجام دهند. بنابراين در اين نوع معماری گره‌های معمولی در ضمن اين‌که از خدمات شبکه بهره‌مند می‌شود بايد نقش خدمت‌گزار را هم ايفا کنند . در اين نوع شبکه‌ها گره‌های معمولی به كمك روش‌ها و پروتكل‌های توزيع شده، تمامی وظايف  مسير يابی در شبكه، جستجوی منابع، امنيت شبكه و شناسايی هويت استفاده كننده‌ها و هم‌چنين مقابله با حملات احتمالی مهاجمان را بر عهده دارند.}
\end{shortarticle}

\articlesep

\end{document}
%</magazine-sample.tex>
%<*test-correction.tex>
\documentclass{article}
\usepackage[correction]{xepersian-multiplechoice}
\usepackage{xepersian}
\settextfont[Scale=1]{XB Zar}
\setmathdigitfont[Scale=1]{XB Zar}
\begin{document}
\begin{question}{اگر ‎$A=\{ 1,2\} $‎ و ‎$B=\{ 2,3\} $‎ آنگاه حاصل $B^2-A\times B$ کدام است.}
\false $\{(3,2),(3,3)\} $
\true $\{(2,2),(2,3)\} $
\false $\{(2,3),(3,3)\} $
\false $\{(2,2),(3,2)\} $
\end{question}

\begin{question}{اگر ‎$A=\{ 1,2\} $‎ و ‎$B=\{ 2,3\} $‎ آنگاه حاصل $B^2-A\times B$ کدام است.}
\true $x$
\false $y$
\false $z$
\false $t$
\end{question}

\begin{question}{مجموعه‎ $(B-A^{'})^{'}$ ‎برابر است با:}
\false $B^{'}\bigcap A$
\false $B'\bigcup A' $
\true $A$
\false هیچکدام.
\end{question}

\begin{question}{صورت متعارفی عدد مختلط ‎$\frac{7+i}{1-i}$‎ کدام است.}
\false $4+4i$
\false $4-3i$
\false $3+4i$
\true $3-3i$
\end{question}
\begin{correction}
جواب درست یکی از اینها است.
\end{correction}

\end{document}
%</test-correction.tex>
%<*test-empty-form.tex>
\documentclass{article}
\usepackage{xepersian-multiplechoice}
\usepackage{xepersian}
\settextfont[Scale=1]{XB Zar}
\setmathdigitfont[Scale=1]{XB Zar}
\begin{document}
\begin{question}{اگر ‎$A=\{ 1,2\} $‎ و ‎$B=\{ 2,3\} $‎ آنگاه حاصل $B^2-A\times B$ کدام است.}
\false $\{(3,2),(3,3)\} $
\true $\{(2,2),(2,3)\} $
\false $\{(2,3),(3,3)\} $
\false $\{(2,2),(3,2)\} $
\end{question}

\begin{question}{اگر ‎$A=\{ 1,2\} $‎ و ‎$B=\{ 2,3\} $‎ آنگاه حاصل $B^2-A\times B$ کدام است.}
\true $x$
\false $y$
\false $z$
\false $t$
\end{question}

\begin{question}{مجموعه‎ $(B-A^{'})^{'}$ ‎برابر است با:}
\false $B^{'}\bigcap A$
\false $B'\bigcup A' $
\true $A$
\false هیچکدام.
\end{question}

\begin{question}{صورت متعارفی عدد مختلط ‎$\frac{7+i}{1-i}$‎ کدام است.}
\false $4+4i$
\false $4-3i$
\false $3+4i$
\true $3-3i$
\end{question}
\begin{correction}
جواب درست یکی از اینها است.
\end{correction}
\bigskip

\begin{center}
\makeform
\end{center}
\end{document}
%</test-empty-form.tex>
%<*test-question-only.tex>
\documentclass{article}
\usepackage{xepersian-multiplechoice}
\usepackage{xepersian}
\settextfont[Scale=1]{XB Zar}
\setmathdigitfont[Scale=1]{XB Zar}
\begin{document}
\begin{question}{اگر ‎$A=\{ 1,2\} $‎ و ‎$B=\{ 2,3\} $‎ آنگاه حاصل $B^2-A\times B$ کدام است.}
\false $\{(3,2),(3,3)\} $
\true $\{(2,2),(2,3)\} $
\false $\{(2,3),(3,3)\} $
\false $\{(2,2),(3,2)\} $
\end{question}

\begin{question}{اگر ‎$A=\{ 1,2\} $‎ و ‎$B=\{ 2,3\} $‎ آنگاه حاصل $B^2-A\times B$ کدام است.}
\true $x$
\false $y$
\false $z$
\false $t$
\end{question}

\begin{question}{مجموعه‎ $(B-A^{'})^{'}$ ‎برابر است با:}
\false $B^{'}\bigcap A$
\false $B'\bigcup A' $
\true $A$
\false هیچکدام.
\end{question}

\begin{question}{صورت متعارفی عدد مختلط ‎$\frac{7+i}{1-i}$‎ کدام است.}
\false $4+4i$
\false $4-3i$
\false $3+4i$
\true $3-3i$
\end{question}
\begin{correction}
جواب درست یکی از اینها است.
\end{correction}

\end{document}
%</test-question-only.tex>
%<*test-solution-form.tex>
\documentclass{article}
\usepackage{xepersian-multiplechoice}
\usepackage{xepersian}
\settextfont[Scale=1]{XB Zar}
\setmathdigitfont[Scale=1]{XB Zar}
\begin{document}
\begin{question}{اگر ‎$A=\{ 1,2\} $‎ و ‎$B=\{ 2,3\} $‎ آنگاه حاصل $B^2-A\times B$ کدام است.}
\false $\{(3,2),(3,3)\} $
\true $\{(2,2),(2,3)\} $
\false $\{(2,3),(3,3)\} $
\false $\{(2,2),(3,2)\} $
\end{question}

\begin{question}{اگر ‎$A=\{ 1,2\} $‎ و ‎$B=\{ 2,3\} $‎ آنگاه حاصل $B^2-A\times B$ کدام است.}
\true $x$
\false $y$
\false $z$
\false $t$
\end{question}

\begin{question}{مجموعه‎ $(B-A^{'})^{'}$ ‎برابر است با:}
\false $B^{'}\bigcap A$
\false $B'\bigcup A' $
\true $A$
\false هیچکدام.
\end{question}

\begin{question}{صورت متعارفی عدد مختلط ‎$\frac{7+i}{1-i}$‎ کدام است.}
\false $4+4i$
\false $4-3i$
\false $3+4i$
\true $3-3i$
\end{question}
\begin{correction}
جواب درست یکی از اینها است.
\end{correction}

\bigskip
\begin{center}
\makemask
\end{center}
\end{document}
%</test-solution-form.tex>
%<*xepersian-logo.tex>
\documentclass{minimal}
\usepackage{pstricks}
\begin{document}
\psset{xunit=.5pt,yunit=.5pt,runit=.5pt}
\begin{pspicture}(644,645)
{
\newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(336.4,15.6)
\curveto(336.4,7.6)(329.9,1.201)(322,1.201)
\curveto(314,1.201)(307.6,7.701)(307.6,15.6)
\curveto(307.6,23.5)(314.1,30)(322,30)
\curveto(329.9,30)(336.4,23.6)(336.4,15.6)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(368.4,18.8)
\curveto(369.2,10.901)(363.5,3.8)(355.599,2.901)
\curveto(347.7,2.1)(340.599,7.8)(339.7,15.701)
\curveto(338.9,23.6)(344.599,30.701)(352.5,31.6)
\curveto(360.5,32.5)(367.6,26.7)(368.4,18.8)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(400,25.3)
\curveto(401.7,17.5)(396.7,9.8)(388.9,8.2)
\curveto(381.099,6.5)(373.4,11.5)(371.799,19.3)
\curveto(370.099,27.1)(375.099,34.8)(382.9,36.401)
\curveto(390.6,38.1)(398.3,33.1)(400,25.3)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(430.7,35.1)
\curveto(433.2,27.5)(429,19.401)(421.4,16.901)
\curveto(413.799,14.401)(405.7,18.6)(403.2,26.201)
\curveto(400.7,33.801)(404.9,41.901)(412.5,44.401)
\curveto(420.1,46.901)(428.2,42.7)(430.7,35.1)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(460.2,48.1)
\curveto(463.4,40.8)(460.2,32.3)(452.9,29)
\curveto(445.599,25.8)(437.099,29)(433.799,36.3)
\curveto(430.599,43.6)(433.799,52.1)(441.099,55.3)
\curveto(448.4,58.6)(456.9,55.3)(460.2,48.1)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(488.2,64)
\curveto(492.2,57.1)(489.8,48.3)(482.9,44.3)
\curveto(476,40.3)(467.2,42.7)(463.2,49.6)
\curveto(459.2,56.5)(461.599,65.3)(468.5,69.3)
\curveto(475.401,73.3)(484.2,70.9)(488.2,64)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(514.3,82.8)
\curveto(519,76.401)(517.6,67.3)(511.1,62.6)
\curveto(504.6,57.901)(495.6,59.3)(490.901,65.8)
\curveto(486.201,72.3)(487.701,81.3)(494.1,86)
\curveto(500.6,90.7)(509.6,89.3)(514.3,82.8)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(538.4,104.2)
\curveto(543.7,98.3)(543.299,89.099)(537.299,83.8)
\curveto(531.4,78.5)(522.199,79)(516.9,84.901)
\curveto(511.6,90.8)(512.1,100)(518,105.3)
\curveto(523.9,110.7)(533.1,110.2)(538.4,104.2)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(560.1,128.1)
\curveto(566,122.8)(566.5,113.6)(561.201,107.701)
\curveto(555.901,101.801)(546.701,101.301)(540.801,106.6)
\curveto(534.902,111.901)(534.402,121.1)(539.701,127)
\curveto(545,132.9)(554.2,133.4)(560.1,128.1)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(579.2,154)
\curveto(585.7,149.3)(587.099,140.3)(582.4,133.8)
\curveto(577.7,127.3)(568.7,125.901)(562.2,130.6)
\curveto(555.7,135.3)(554.3,144.3)(559,150.8)
\curveto(563.7,157.3)(572.7,158.7)(579.2,154)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(595.4,181.8)
\curveto(602.299,177.8)(604.7,169)(600.7,162.1)
\curveto(596.7,155.201)(587.9,152.8)(581,156.8)
\curveto(574.1,160.8)(571.7,169.6)(575.7,176.5)
\curveto(579.7,183.5)(588.5,185.8)(595.4,181.8)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(608.7,211.2)
\curveto(616,208)(619.3,199.4)(616,192.099)
\curveto(612.8,184.799)(604.2,181.599)(596.9,184.799)
\curveto(589.6,188)(586.3,196.6)(589.6,203.9)
\curveto(592.9,211.2)(601.4,214.5)(608.7,211.2)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(618.8,241.8)
\curveto(626.401,239.3)(630.5,231.2)(628.1,223.6)
\curveto(625.6,216)(617.5,211.901)(609.901,214.3)
\curveto(602.3,216.8)(598.201,224.901)(600.6,232.5)
\curveto(603.1,240.1)(611.2,244.3)(618.8,241.8)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(625.7,273.3)
\curveto(633.5,271.7)(638.5,264)(636.8,256.2)
\curveto(635.2,248.4)(627.5,243.4)(619.7,245.099)
\curveto(611.9,246.799)(606.9,254.4)(608.599,262.2)
\curveto(610.2,270)(617.9,274.9)(625.7,273.3)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(629.2,305.3)
\curveto(637.099,304.5)(642.9,297.401)(642,289.401)
\curveto(641.2,281.501)(634.1,275.701)(626.1,276.6)
\curveto(618.201,277.401)(612.401,284.5)(613.3,292.5)
\curveto(614.2,300.4)(621.3,306.1)(629.2,305.3)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(629.4,337.5)
\curveto(637.4,337.5)(643.9,331)(643.799,323.1)
\curveto(643.799,315.1)(637.299,308.7)(629.4,308.7)
\curveto(621.4,308.7)(615,315.2)(615,323.1)
\curveto(615,331.1)(621.4,337.5)(629.4,337.5)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(626.2,369.6)
\curveto(634.099,370.4)(641.2,364.7)(642.099,356.8)
\curveto(642.9,348.9)(637.2,341.8)(629.299,340.9)
\curveto(621.4,340.1)(614.299,345.8)(613.499,353.8)
\curveto(612.5,361.7)(618.3,368.8)(626.2,369.6)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(619.7,401.1)
\curveto(627.5,402.8)(635.2,397.8)(636.8,390)
\curveto(638.5,382.2)(633.5,374.5)(625.7,372.9)
\curveto(617.9,371.2)(610.2,376.2)(608.599,384)
\curveto(606.9,391.8)(611.9,399.5)(619.7,401.1)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(609.9,431.8)
\curveto(617.5,434.3)(625.599,430.1)(628.099,422.5)
\curveto(630.599,414.9)(626.4,406.8)(618.799,404.3)
\curveto(611.199,401.8)(603.099,406)(600.599,413.6)
\curveto(598.099,421.2)(602.3,429.4)(609.9,431.8)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(596.9,461.4)
\curveto(604.2,464.7)(612.7,461.4)(615.9,454.1)
\curveto(619.2,446.8)(615.9,438.3)(608.599,435)
\curveto(601.299,431.8)(592.799,435)(589.499,442.3)
\curveto(586.4,449.6)(589.6,458.1)(596.9,461.4)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(581,489.3)
\curveto(587.9,493.3)(596.7,490.9)(600.7,484)
\curveto(604.7,477.1)(602.3,468.3)(595.4,464.3)
\curveto(588.5,460.3)(579.7,462.7)(575.7,469.6)
\curveto(571.7,476.5)(574.1,485.3)(581,489.3)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(562.2,515.5)
\curveto(568.599,520.2)(577.7,518.8)(582.4,512.3)
\curveto(587.099,505.9)(585.7,496.8)(579.2,492.1)
\curveto(572.7,487.4)(563.7,488.9)(559,495.3)
\curveto(554.3,501.8)(555.7,510.8)(562.2,515.5)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(540.8,539.6)
\curveto(546.7,544.9)(555.901,544.5)(561.2,538.5)
\curveto(566.5,532.6)(566.099,523.5)(560.099,518.1)
\curveto(554.2,512.8)(544.999,513.3)(539.7,519.2)
\curveto(534.3,525.1)(534.8,534.2)(540.8,539.6)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(516.9,561.3)
\curveto(522.2,567.2)(531.4,567.7)(537.299,562.4)
\curveto(543.199,557.1)(543.699,547.9)(538.4,542)
\curveto(533.099,536.1)(523.9,535.6)(518,540.9)
\curveto(512.1,546.2)(511.6,555.3)(516.9,561.3)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(491,580.3)
\curveto(495.7,586.8)(504.7,588.2)(511.2,583.5)
\curveto(517.7,578.8)(519.099,569.8)(514.4,563.3)
\curveto(509.7,556.9)(500.7,555.4)(494.2,560.1)
\curveto(487.7,564.9)(486.3,573.9)(491,580.3)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(463.1,596.6)
\curveto(467.1,603.5)(475.901,605.9)(482.8,601.9)
\curveto(489.7,597.9)(492.1,589.1)(488.1,582.2)
\curveto(484.1,575.3)(475.3,572.9)(468.401,576.9)
\curveto(461.5,580.9)(459.2,589.7)(463.1,596.6)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(433.8,609.9)
\curveto(437,617.2)(445.6,620.5)(452.901,617.2)
\curveto(460.201,614)(463.501,605.4)(460.201,598.1)
\curveto(457.001,590.8)(448.401,587.6)(441.1,590.8)
\curveto(433.8,594)(430.5,602.6)(433.8,609.9)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(403.2,620)
\curveto(405.7,627.6)(413.8,631.7)(421.4,629.3)
\curveto(429,626.8)(433.099,618.7)(430.7,611.1)
\curveto(428.2,603.5)(420.099,599.4)(412.5,601.8)
\curveto(404.9,604.3)(400.7,612.4)(403.2,620)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(371.7,626.9)
\curveto(373.3,634.7)(381,639.7)(388.8,638)
\curveto(396.6,636.3)(401.6,628.7)(399.901,620.9)
\curveto(398.201,613.1)(390.6,608.1)(382.8,609.8)
\curveto(375,611.4)(370.1,619)(371.7,626.9)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(339.7,630.4)
\curveto(340.5,638.3)(347.6,644.1)(355.6,643.2)
\curveto(363.5,642.4)(369.3,635.3)(368.5,627.3)
\curveto(367.7,619.4)(360.5,613.6)(352.6,614.5)
\curveto(344.6,615.4)(338.8,622.5)(339.7,630.4)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(307.5,630.6)
\curveto(307.5,638.6)(314,645)(321.9,645)
\curveto(329.9,645)(336.299,638.5)(336.299,630.6)
\curveto(336.299,622.6)(329.799,616.2)(321.9,616.2)
\curveto(313.9,616.1)(307.5,622.6)(307.5,630.6)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(275.4,627.4)
\curveto(274.5,635.3)(280.3,642.4)(288.2,643.3)
\curveto(296.1,644.1)(303.2,638.4)(304.1,630.5)
\curveto(304.9,622.6)(299.2,615.5)(291.2,614.7)
\curveto(283.3,613.7)(276.2,619.4)(275.4,627.4)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(243.9,620.8)
\curveto(242.2,628.7)(247.2,636.3)(255,638)
\curveto(262.8,639.7)(270.5,634.7)(272.1,626.9)
\curveto(273.8,619.1)(268.8,611.4)(261,609.8)
\curveto(253.2,608.1)(245.5,613)(243.9,620.8)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(213.2,611.1)
\curveto(210.7,618.7)(214.9,626.8)(222.5,629.3)
\curveto(230.1,631.8)(238.2,627.6)(240.7,620)
\curveto(243.2,612.4)(239,604.3)(231.4,601.8)
\curveto(223.8,599.3)(215.6,603.5)(213.2,611.1)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(183.6,598.1)
\curveto(180.3,605.4)(183.6,613.9)(190.9,617.2)
\curveto(198.2,620.4)(206.7,617.2)(210,609.9)
\curveto(213.2,602.6)(209.9,594.1)(202.7,590.9)
\curveto(195.4,587.5)(186.9,590.8)(183.6,598.1)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(155.7,582.2)
\curveto(151.7,589.1)(154.1,597.9)(161,601.9)
\curveto(167.9,605.9)(176.7,603.5)(180.7,596.6)
\curveto(184.7,589.7)(182.3,580.9)(175.4,576.9)
\curveto(168.5,572.9)(159.7,575.2)(155.7,582.2)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(129.5,563.4)
\curveto(124.8,569.8)(126.3,578.9)(132.7,583.6)
\curveto(139.2,588.3)(148.2,586.9)(152.9,580.4)
\curveto(157.6,574)(156.1,564.9)(149.7,560.2)
\curveto(143.2,555.5)(134.2,556.9)(129.5,563.4)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(105.4,541.9)
\curveto(100,547.8)(100.6,557)(106.5,562.3)
\curveto(112.4,567.6)(121.5,567.2)(126.9,561.2)
\curveto(132.2,555.3)(131.7,546.1)(125.8,540.8)
\curveto(119.9,535.5)(110.8,536)(105.4,541.9)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(83.7,518.1)
\curveto(77.7,523.4)(77.3,532.6)(82.6,538.5)
\curveto(87.9,544.4)(97,544.9)(103,539.6)
\curveto(108.9,534.3)(109.4,525.1)(104,519.2)
\curveto(98.8,513.2)(89.7,512.8)(83.7,518.1)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(64.7,492.1)
\curveto(58.2,496.8)(56.8,505.8)(61.5,512.3)
\curveto(66.2,518.8)(75.2,520.2)(81.7,515.5)
\curveto(88.1,510.8)(89.6,501.8)(84.9,495.3)
\curveto(80.1,488.9)(71.1,487.4)(64.7,492.1)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(48.4,464.3)
\curveto(41.5,468.3)(39.1,477.1)(43.1,484)
\curveto(47.1,490.9)(55.9,493.3)(62.8,489.3)
\curveto(69.7,485.3)(72.1,476.5)(68,469.6)
\curveto(64.1,462.7)(55.3,460.3)(48.4,464.3)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(35.1,435)
\curveto(27.8,438.2)(24.5,446.8)(27.8,454.1)
\curveto(31,461.4)(39.6,464.7)(46.9,461.4)
\curveto(54.2,458.2)(57.4,449.6)(54.2,442.3)
\curveto(51,435)(42.4,431.7)(35.1,435)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(25,404.4)
\curveto(17.4,406.8)(13.3,415)(15.8,422.6)
\curveto(18.3,430.2)(26.4,434.3)(34,431.9)
\curveto(41.6,429.4)(45.7,421.3)(43.2,413.7)
\curveto(40.8,406.1)(32.6,401.9)(25,404.4)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(18.1,372.9)
\curveto(10.3,374.5)(5.4,382.2)(7,390)
\curveto(8.6,397.8)(16.3,402.8)(24.1,401.1)
\curveto(31.9,399.4)(36.9,391.8)(35.2,384)
\curveto(33.6,376.2)(26,371.2)(18.1,372.9)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(14.6,340.9)
\curveto(6.7,341.7)(0.9,348.8)(1.8,356.8)
\curveto(2.6,364.7)(9.7,370.5)(17.7,369.7)
\curveto(25.6,368.9)(31.4,361.7)(30.5,353.8)
\curveto(29.6,345.8)(22.5,340)(14.6,340.9)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(14.4,308.6)
\curveto(6.4,308.6)(0,315.1)(0,323)
\curveto(0,331)(6.5,337.4)(14.5,337.4)
\curveto(22.4,337.4)(28.9,330.9)(28.9,322.9)
\curveto(28.9,315.1)(22.4,308.6)(14.4,308.6)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(17.6,276.6)
\curveto(9.7,275.701)(2.6,281.5)(1.7,289.401)
\curveto(0.9,297.3)(6.6,304.401)(14.6,305.3)
\curveto(22.5,306.1)(29.6,300.401)(30.4,292.401)
\curveto(31.3,284.5)(25.6,277.4)(17.6,276.6)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(24.1,245)
\curveto(16.3,243.3)(8.6,248.3)(7,256.1)
\curveto(5.3,263.901)(10.3,271.5)(18.1,273.201)
\curveto(25.9,274.801)(33.6,269.901)(35.2,262.1)
\curveto(36.9,254.4)(32,246.7)(24.1,245)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(33.9,214.3)
\curveto(26.3,211.8)(18.2,216)(15.7,223.6)
\curveto(13.2,231.201)(17.4,239.3)(25,241.8)
\curveto(32.6,244.3)(40.7,240.1)(43.2,232.5)
\curveto(45.7,224.9)(41.5,216.8)(33.9,214.3)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(46.9,184.8)
\curveto(39.6,181.5)(31.1,184.8)(27.8,192.1)
\curveto(24.5,199.401)(27.8,207.901)(35.1,211.201)
\curveto(42.4,214.401)(50.9,211.1)(54.1,203.801)
\curveto(57.5,196.6)(54.2,188.1)(46.9,184.8)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(62.8,156.8)
\curveto(55.9,152.8)(47.1,155.2)(43.1,162.1)
\curveto(39.1,169)(41.5,177.8)(48.4,181.8)
\curveto(55.3,185.8)(64.1,183.401)(68.1,176.5)
\curveto(72.1,169.7)(69.8,160.8)(62.8,156.8)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(81.6,130.7)
\curveto(75.2,126)(66.1,127.4)(61.5,133.9)
\curveto(56.8,140.299)(58.2,149.4)(64.7,154.099)
\curveto(71.1,158.799)(80.2,157.299)(84.8,150.9)
\curveto(89.5,144.4)(88.1,135.4)(81.6,130.7)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(103.1,106.6)
\curveto(97.2,101.2)(88,101.7)(82.7,107.7)
\curveto(77.4,113.599)(77.8,122.7)(83.8,128.099)
\curveto(89.7,133.4)(98.9,132.9)(104.2,126.999)
\curveto(109.5,121.1)(109,111.9)(103.1,106.6)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(126.9,84.9)
\curveto(121.6,79)(112.4,78.5)(106.5,83.799)
\curveto(100.6,89.098)(100.1,98.199)(105.4,104.199)
\curveto(110.7,110.098)(119.9,110.598)(125.8,105.199)
\curveto(131.8,100)(132.2,90.8)(126.9,84.9)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(152.9,65.8)
\curveto(148.2,59.3)(139.2,57.901)(132.7,62.6)
\curveto(126.2,67.3)(124.8,76.3)(129.5,82.8)
\curveto(134.2,89.2)(143.2,90.7)(149.7,86)
\curveto(156.1,81.3)(157.6,72.3)(152.9,65.8)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(180.7,49.6)
\curveto(176.7,42.701)(167.9,40.3)(161,44.3)
\curveto(154.1,48.3)(151.7,57.1)(155.7,64)
\curveto(159.7,70.9)(168.5,73.2)(175.4,69.2)
\curveto(182.3,65.3)(184.7,56.5)(180.7,49.6)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(210,36.3)
\curveto(206.8,29)(198.2,25.7)(190.9,29)
\curveto(183.6,32.2)(180.3,40.8)(183.6,48.1)
\curveto(186.8,55.401)(195.4,58.6)(202.7,55.401)
\curveto(210,52.1)(213.3,43.6)(210,36.3)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(240.6,26.2)
\curveto(238.2,18.599)(230,14.5)(222.4,16.9)
\curveto(214.8,19.4)(210.7,27.5)(213.1,35.099)
\curveto(215.6,42.7)(223.7,46.799)(231.3,44.299)
\curveto(238.9,41.9)(243.1,33.8)(240.6,26.2)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(272.1,19.3)
\curveto(270.5,11.5)(262.8,6.5)(255,8.2)
\curveto(247.2,9.8)(242.2,17.5)(243.9,25.3)
\curveto(245.6,33.1)(253.2,38.1)(261,36.401)
\curveto(268.8,34.8)(273.8,27.1)(272.1,19.3)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.7764706 0.78431374 0.79215688}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(304.1,15.8)
\curveto(303.3,7.901)(296.2,2.1)(288.2,3)
\curveto(280.3,3.8)(274.5,10.9)(275.3,18.9)
\curveto(276.1,26.799)(283.3,32.599)(291.2,31.7)
\curveto(299.2,30.8)(305,23.7)(304.1,15.8)
\closepath
}
}
{
\newrgbcolor{curcolor}{0.60784316 0.50588238 0.34117648}
\pscustom[linestyle=none,fillstyle=solid,fillcolor=curcolor]
{
\newpath
\moveto(291.4,500.2)
\curveto(301.1,484.1)(307,462.5)(307,439.8)
\curveto(307,435.5)(306.8,431.2)(306.3,426.9)
\curveto(314.6,418.4)(321.3,409.1)(326,401.8)
\curveto(327.6,410.1)(328.4,418.8)(328.4,427.4)
\curveto(328.4,463.9)(314.9,501.1)(293.6,519.1)
\curveto(284,522)(276.8,520.1)(274.4,519.3)
\curveto(280.9,514.7)(286.6,508.1)(291.4,500.2)
\closepath
\moveto(302.4,527.6)
\curveto(319.6,526.4)(337.6,516.9)(351.3,499.5)
\curveto(365,482.1)(374.5,457.9)(374.5,430.5)
\curveto(374.5,400.5)(363.1,368.7)(333.6,336.2)
\curveto(340,335.8)(346.1,333.4)(350.5,329.8)
\curveto(351.6,330)(352.7,330.1)(353.8,330.1)
\lineto(354.5,330.1)
\curveto(383.3,356.7)(394.6,389.2)(394.6,420.6)
\curveto(394.6,450)(384.6,478.3)(369.5,499.2)
\curveto(354.5,520.1)(334.6,533.4)(315.1,533.3)
\curveto(308.3,533.3)(295.201,530)(288.6,526.5)
\curveto(289.1,526.4)(294.5,528.1)(302.4,527.6)
\closepath
\moveto(372.7,501.3)
\curveto(388.2,479.8)(398.4,450.8)(398.5,420.6)
\curveto(398.5,389.2)(387.4,356.4)(359.4,329.5)
\curveto(365.4,328.2)(370.7,325)(373.9,320.8)
\curveto(374.299,320.2)(374.7,319.6)(375,319)
\curveto(407,346.7)(419.5,380.5)(419.5,413.6)
\curveto(419.5,446.6)(406.9,478.8)(388.4,502.7)
\curveto(370,526.6)(345.8,542)(323,541.9)
\curveto(312.4,541.9)(301.9,538.6)(292.3,531.1)
\curveto(299.7,535.1)(307.401,537)(315.1,537)
\curveto(336.4,536.9)(357.2,522.7)(372.7,501.3)
\closepath
\moveto(282.7,533.4)
\curveto(277,534)(271.1,533.9)(265.2,533)
\curveto(270.2,533)(275,532.1)(279.6,530.4)
\curveto(280.5,531.4)(281.5,532.5)(282.7,533.4)
\closepath
\moveto(258.7,497.6)
\curveto(264.6,487.7)(268.1,475)(268.1,463)
\curveto(268.1,459.9)(267.9,456.8)(267.4,453.9)
\curveto(272.3,451.7)(277.8,448.9)(283.8,445.1)
\curveto(284,447.5)(284.1,449.9)(284.1,452.4)
\curveto(284.1,468)(279.8,484.7)(272.5,497.4)
\curveto(265.2,510.2)(255.1,518.7)(243.7,518.7)
\curveto(238.8,518.7)(233.6,517.1)(228.1,513.6)
\curveto(230.3,514.3)(232.5,514.6)(234.6,514.6)
\curveto(244.5,514.6)(252.9,507.5)(258.7,497.6)
\closepath
\moveto(274.7,498.6)
\curveto(282.2,485.4)(286.6,468.4)(286.6,452.4)
\curveto(286.6,449.4)(286.4,446.5)(286.1,443.6)
\curveto(289.6,441.3)(293.3,438.6)(297.1,435.6)
\curveto(299.6,433.6)(301.9,431.5)(304.1,429.3)
\curveto(304.4,432.8)(304.6,436.4)(304.6,439.9)
\curveto(304.6,462.1)(298.8,483.4)(289.3,499)
\curveto(279.8,514.6)(266.9,524.5)(252.7,524.5)
\curveto(247.3,524.5)(241.6,523.1)(235.8,519.9)
\curveto(238.5,520.7)(241.2,521.1)(243.8,521.1)
\curveto(256.5,521.1)(267.2,511.7)(274.7,498.6)
\closepath
\moveto(247.5,460.9)
\curveto(251.3,459.7)(257.4,458.1)(265,454.9)
\curveto(265.4,457.5)(265.6,460.2)(265.6,463)
\curveto(265.6,474.5)(262.2,486.9)(256.6,496.4)
\curveto(251,505.9)(243.2,512.2)(234.6,512.1)
\curveto(229.7,512.1)(224.3,510.1)(218.6,505.1)
\curveto(235.7,512.7)(255.7,492)(247.5,460.9)
\closepath
\moveto(273.9,519.8)
\curveto(274.4,521.3)(275.6,524.8)(278,528.3)
\curveto(273.9,529.7)(269.6,530.5)(265.1,530.5)
\curveto(259.2,530.5)(253,529.2)(246.5,526.3)
\curveto(248.6,526.7)(250.7,526.9)(252.7,526.9)
\curveto(260.3,526.9)(267.4,524.3)(273.9,519.8)
\closepath
\moveto(428.7,500)
\curveto(430.9,497.5)(432.599,495.4)(434.599,492.7)
\curveto(435.499,495.7)(437.499,498.8)(437.499,501.7)
\curveto(441.499,499.1)(448.099,497.9)(451.699,493.7)
\lineto(451.899,493.7)
\curveto(458.999,503.7)(476.699,494.6)(472.899,484.5)
\lineto(471.699,482.3)
\curveto(469.699,479.4)(467.199,478.3)(464.899,478.2)
\curveto(461.798,478.3)(459.298,480.2)(459.298,483.7)
\curveto(459.298,485.2)(459.798,486.5)(460.399,487.5)
\curveto(461.098,488.4)(461.899,488.9)(462.598,488.9)
\curveto(463.199,488.9)(463.798,488.7)(464.498,487.9)
\curveto(465.298,487.1)(465.498,486.5)(465.498,486.1)
\curveto(465.498,485.7)(465.298,485.2)(464.898,484.9)
\curveto(464.498,484.6)(463.998,484.4)(463.797,484.4)
\lineto(463.697,484.4)
\curveto(463.096,484.2)(462.297,484.5)(461.997,483.9)
\curveto(461.697,483.3)(461.897,482.5)(462.497,482.2)
\lineto(462.497,482.2)
\curveto(462.897,482)(463.297,481.9)(463.697,481.9)
\curveto(465.596,482)(467.797,483.5)(467.897,486.1)
\curveto(467.897,487.3)(467.296,488.5)(466.197,489.6)
\curveto(465.096,490.7)(463.797,491.3)(462.497,491.3)
\curveto(458.997,491.2)(456.697,487.6)(456.697,483.7)
\curveto(456.697,481.3)(457.596,479.2)(459.197,477.8)
\curveto(460.697,476.4)(462.697,475.7)(464.897,475.7)
\lineto(464.897,475.7)
\curveto(467.596,475.7)(470.497,477)(472.796,479.6)
\curveto(484.496,464.8)(484.096,446.4)(479.897,438.1)
\curveto(527.7,488.7)(462.8,525.4)(428.7,500)
\closepath
\moveto(422.2,266.6)
\curveto(441,286.901)(460.2,314.6)(465.5,356.201)
\curveto(466.4,363.401)(466.8,370.401)(466.8,377.401)
\curveto(466.8,386.501)(466.1,395.401)(464.7,404.101)
\lineto(464.7,401.101)
\curveto(464.7,354.901)(443.599,311.801)(407.599,284.101)
\lineto(407.599,282.902)
\curveto(407.599,282.202)(407.599,281.502)(407.499,280.902)
\curveto(412.299,276.601)(415.799,269.801)(415.799,261.702)
\curveto(415.799,261.101)(415.799,260.502)(415.699,259.902)
\curveto(417.9,262)(420,264.2)(422.2,266.6)
\closepath
\moveto(442.8,496)
\curveto(441.7,496.6)(440.5,497)(439.3,497.6)
\curveto(439,496.1)(438.6,495.6)(438.1,494.1)
\curveto(437.6,492.8)(437.201,491.3)(436.901,490.1)
\curveto(439.8,486.5)(441.701,483.8)(443.3,481.3)
\curveto(444,480)(446.7,474.8)(449.8,468.9)
\curveto(453.3,462.1)(457.3,454.3)(458.901,450.6)
\curveto(459.1,450.1)(459.6,449.9)(460.001,449.9)
\curveto(460.201,449.9)(460.301,449.9)(460.501,450)
\curveto(461.101,450.3)(461.401,451)(461.101,451.6)
\curveto(458.501,457.6)(450.402,473.1)(446.902,479.7)
\curveto(447.002,484.2)(448.002,488.2)(449.601,491.4)
\curveto(447.7,493.3)(445.3,494.8)(442.8,496)
\closepath
\moveto(412.1,505.1)
\curveto(432.1,480.1)(446.5,447.4)(446.5,412)
\curveto(446.5,376.4)(431.8,338.2)(393.9,302.9)
\curveto(394.099,302.4)(394.2,302)(394.4,301.5)
\curveto(399,299.8)(402.299,296.9)(404.4,293.8)
\curveto(405.7,291.901)(406.5,289.901)(407,288.1)
\curveto(443,314.8)(461.1,355.3)(461.1,401.201)
\curveto(461.1,411.501)(460,421.901)(457.8,432.301)
\curveto(449.3,457.501)(435.5,479.901)(419,498.101)
\curveto(416.7,500.5)(414.4,502.8)(412.1,505.1)
\closepath
\moveto(468.7,321.6)
\curveto(467.9,321.6)(467.099,321.6)(466.3,321.701)
\curveto(463.8,314.401)(460.8,307.501)(457.5,301.201)
\curveto(473.7,307.1)(489.7,314.001)(500.3,327.301)
\curveto(520.2,352.201)(520.8,405.201)(472.901,407.401)
\curveto(473.6,403.401)(474.1,399.401)(474.501,395.301)
\lineto(474.501,395.301)
\curveto(474.501,395.301)(475.101,390.601)(475.201,387.201)
\curveto(476.701,384.301)(477.301,381.701)(477.301,379.301)
\curveto(477.301,376.301)(476.301,373.501)(474.701,370.901)
\lineto(474.701,366.701)
\curveto(477.6,370.301)(479.801,374.401)(479.801,379.301)
\curveto(479.801,382.401)(478.501,386.201)(476.402,389.801)
\curveto(476.402,389.801)(476.301,390.101)(476.502,390.401)
\curveto(481.202,396.101)(486.302,398.301)(494.002,398.001)
\curveto(495.902,394.801)(496.002,387.401)(495.902,382.801)
\curveto(486.301,379.201)(483.702,371.901)(483.801,364.601)
\curveto(483.801,357.801)(485.701,350.701)(485.701,344.901)
\curveto(485.701,341.301)(485.001,338.401)(483.001,336.401)
\curveto(482.501,335.901)(482.501,335.101)(483.001,334.701)
\curveto(483.201,334.501)(483.601,334.301)(483.901,334.301)
\curveto(484.201,334.301)(484.501,334.401)(484.8,334.701)
\curveto(487.5,337.401)(488.3,341.101)(488.3,344.901)
\curveto(488.3,351.101)(486.401,358.201)(486.401,364.601)
\curveto(486.501,371.801)(487.501,377.901)(497.1,381.201)
\curveto(497.3,381.301)(498.701,381.301)(499.1,381.301)
\curveto(505.6,381.101)(510.901,374.201)(510.901,374.201)
\curveto(492.2,375.9)(515.8,321.6)(468.7,321.6)
\closepath
\moveto(200.6,450.7)
\lineto(200.6,448.7)
\lineto(200.6,448.5)
\lineto(200.6,448.3)
\curveto(200.6,448.2)(200.5,447.7)(200.3,446.9)
\curveto(205.2,447.9)(210.7,448.4)(216.8,448.4)
\curveto(249.8,448.4)(297.4,431.9)(320.5,377.2)
\curveto(323.1,380.4)(325.6,383.6)(327.9,387)
\curveto(327.799,387.1)(327.7,387.2)(327.599,387.3)
\curveto(323.7,394.3)(310.9,416.4)(293.299,430.6)
\curveto(283.399,438.6)(274.399,443.8)(266.799,447.3)
\curveto(244.899,456.8)(221.599,459.5)(200.099,458.5)
\curveto(200.6,456)(200.6,453.5)(200.6,450.7)
\closepath
\moveto(391.4,504.8)
\curveto(410.299,480.3)(423.2,447.4)(423.2,413.5)
\curveto(423.2,380)(410.5,345.4)(378.7,317.2)
\curveto(382.3,316)(385.5,313.8)(388,311.4)
\curveto(389.6,309.799)(391,308.099)(392.1,306.299)
\curveto(428.8,340.799)(442.701,377.599)(442.701,411.899)
\curveto(442.701,449.199)(426.201,483.599)(404.001,508.799)
\curveto(397.901,515.699)(391.401,521.899)(384.701,527.199)
\curveto(365.401,539.699)(345.301,546.699)(327.901,546.699)
\curveto(320.501,546.699)(313.701,545.499)(307.401,542.999)
\curveto(312.501,544.599)(317.8,545.399)(323.1,545.399)
\curveto(347.6,545.5)(372.5,529.3)(391.4,504.8)
\closepath
\moveto(287.4,329.7)
\curveto(289.7,330.4)(291.9,330.8)(294.1,330.8)
\curveto(295,330.8)(295.9,330.7)(296.7,330.6)
\curveto(298.3,332.3)(300.4,333.5)(302.5,334.4)
\curveto(305.8,335.7)(309.5,336.4)(313.2,336.4)
\curveto(316.7,336.3)(320.099,335.9)(323.099,334.3)
\curveto(325.599,335.5)(328.299,336.1)(330.999,336.3)
\curveto(359.999,368.6)(370.899,401.5)(370.899,430.6)
\curveto(370.899,457.2)(361.699,480.6)(348.499,497.3)
\curveto(337.699,511)(318.899,524)(301.599,524.2)
\curveto(309.899,521.3)(319.799,519.9)(333.699,500.8)
\curveto(345.598,484.3)(354.699,460.9)(354.699,438.2)
\curveto(354.699,428.8)(353.098,419.2)(349.598,409.8)
\curveto(339.699,383.7)(322.899,365.9)(305.898,348.7)
\curveto(299.6,342.4)(293.4,336.2)(287.4,329.7)
\closepath
\moveto(343.5,419.6)
\curveto(352.3,470.2)(320.7,503.9)(303.8,514.5)
\curveto(302.5,515.3)(301.2,516)(299.9,516.7)
\curveto(319.2,496.8)(330.8,461.9)(330.9,427.5)
\curveto(330.9,417.8)(330,408.1)(328,398.8)
\curveto(329.4,396.5)(330.6,394.5)(331.5,392.9)
\curveto(335.3,399)(338.6,405.6)(341.3,412.8)
\curveto(342.2,415)(342.9,417.3)(343.5,419.6)
\closepath
\moveto(259.7,291.3)
\lineto(259.7,291.3)
\lineto(259.7,291.3)
\lineto(259.7,291.3)
\closepath
\moveto(396,240.9)
\curveto(398.4,243.2)(399.1,244.5)(401.9,247.599)
\lineto(403.799,250.4)
\lineto(404.299,251.4)
\curveto(406.4,255.099)(407.099,258.5)(407.099,261.7)
\curveto(407.2,268.099)(403.599,273.4)(400.299,275.5)
\lineto(397.199,277.5)
\lineto(398.699,280.9)
\lineto(398.699,281)
\curveto(398.699,281.1)(398.799,281.2)(398.799,281.4)
\curveto(398.9,281.799)(398.9,282.299)(398.9,282.9)
\curveto(398.9,284.7)(398.4,287)(397.099,289)
\curveto(395.7,291)(393.599,292.9)(389.4,294)
\lineto(386.2,294.8)
\lineto(386.2,298.1)
\curveto(386.3,299.1)(384.9,302.6)(382.099,305.1)
\curveto(379.299,307.8)(375.7,309.6)(372.099,309.6)
\lineto(367.799,309.6)
\lineto(367.799,314)
\curveto(367.799,314)(367.699,314.6)(367.099,315.4)
\curveto(366.499,316.2)(365.4,317.299)(363.999,318.2)
\curveto(361.199,320)(357.299,321.4)(353.999,321.4)
\curveto(352.799,321.4)(351.699,321.2)(350.699,320.9)
\lineto(348.199,320.099)
\lineto(346.399,321.9)
\curveto(343.598,324.799)(337.598,327.5)(332.399,327.5)
\curveto(329.699,327.5)(327.298,326.9)(325.399,325.5)
\lineto(322.399,323.4)
\lineto(319.8,326)
\curveto(319.3,326.7)(316.5,327.7)(313.2,327.7)
\curveto(310.599,327.7)(307.8,327.2)(305.8,326.4)
\curveto(303.7,325.6)(302.7,324.4)(302.7,324.2)
\lineto(301.1,320.099)
\lineto(297,321.7)
\curveto(296.3,322)(295.3,322.2)(294.1,322.2)
\curveto(290.2,322.2)(285.1,320.2)(282.4,315.2)
\lineto(281.2,313)
\lineto(273.4,313)
\curveto(268.4,306.4)(263.8,299.2)(259.8,291.3)
\lineto(259.8,291.3)
\lineto(259.8,291.3)
\curveto(259.8,291.3)(258,288.8)(255.8,283.901)
\curveto(266.3,301.001)(284,315.201)(311.6,315.3)
\curveto(320.401,315.3)(330.1,313.901)(340.901,310.6)
\curveto(374.8,300.5)(383.501,280.8)(383.501,262)
\curveto(383.501,244.3)(376.001,227.3)(375.201,219.6)
\curveto(375.1,218.6)(375.001,217.701)(375.001,216.8)
\curveto(375.001,206.401)(381.601,201.6)(387.701,201.6)
\curveto(391.701,201.6)(395.401,203.6)(397.301,207.5)
\curveto(397.101,207.3)(396.902,207.2)(396.701,207)
\curveto(395.1,205.9)(393.201,205.4)(391.201,205.4)
\curveto(389.001,205.4)(386.501,206.099)(384.6,207.9)
\curveto(382.6,209.7)(379.401,213.799)(380.701,220.599)
\curveto(382,227.3)(388.6,233.7)(396,240.9)
\closepath
\moveto(214.3,227)
\curveto(219.4,223.4)(225.2,220.3)(230.1,219.2)
\curveto(223.6,228.599)(218.3,240.2)(215.7,254.3)
\curveto(213.2,255)(210.9,255.5)(208.9,255.901)
\curveto(208.8,256.001)(208.6,256.201)(208.5,256.3)
\curveto(208.6,255.7)(208.6,255.1)(208.6,254.5)
\curveto(208.6,250.2)(207,243.5)(201.1,239.5)
\curveto(202.8,236.7)(208.1,231.4)(214.3,227)
\closepath
\moveto(261.2,156.2)
\curveto(269.1,159.8)(269.7,169.599)(269.7,174)
\curveto(269.7,175.7)(268.6,178.1)(266.6,180)
\curveto(265.3,181.3)(263.6,182.4)(261.8,183)
\curveto(260,183.2)(258.2,183.5)(256.5,183.9)
\curveto(254.4,184.4)(252.5,184.599)(250.7,184.599)
\curveto(242.7,184.599)(238.1,179.7)(233.1,174.999)
\curveto(232.6,173.399)(232.2,171.399)(232.2,169.199)
\curveto(232.2,165.098)(233.3,160.499)(236,156.999)
\curveto(238.1,154.399)(241,152.299)(245.2,151.399)
\curveto(248.8,150.999)(255.6,152.699)(261.2,155.899)
\lineto(261.2,156.2)
\closepath
\moveto(234.1,155.6)
\curveto(230.9,159.701)(229.7,164.8)(229.7,169.3)
\curveto(229.7,170.3)(229.8,171.3)(229.9,172.2)
\curveto(226.3,169.099)(222.2,166.5)(216.3,166)
\curveto(213.3,165.8)(210.2,165.7)(207.1,165.7)
\curveto(204.5,165.7)(201.9,165.7)(199.3,165.8)
\curveto(196.7,165.8)(194.2,165.901)(191.7,165.901)
\curveto(178.1,165.901)(166.8,164.401)(166.7,153.501)
\curveto(166.8,148.501)(169.1,141.601)(174.5,132.101)
\curveto(174.5,132.101)(175.3,130.801)(176.8,128.902)
\curveto(175.4,132.301)(174.6,135.801)(174.6,139.402)
\curveto(174.6,142.902)(175.4,146.402)(177.2,149.502)
\curveto(178.7,152.102)(181.1,153.702)(183.8,154.502)
\curveto(186.5,155.302)(189.4,155.502)(192.5,155.502)
\curveto(196.5,155.502)(200.7,155.202)(204.7,155.202)
\curveto(210.8,155.202)(216.2,156.002)(219.5,159.402)
\lineto(219.5,159.402)
\curveto(220.2,160.101)(221.4,160.101)(222.1,159.402)
\curveto(222.8,158.702)(222.8,157.502)(222.1,156.801)
\curveto(217.5,152.201)(211,151.501)(204.6,151.501)
\curveto(200.4,151.501)(196.2,151.901)(192.4,151.801)
\curveto(189.5,151.801)(186.8,151.601)(184.8,150.902)
\curveto(182.7,150.202)(181.3,149.301)(180.3,147.601)
\curveto(178.9,145.202)(178.2,142.402)(178.2,139.402)
\curveto(178.2,134.402)(180.1,129.002)(183.2,124.702)
\curveto(186.3,120.402)(190.4,117.502)(194.7,116.902)
\curveto(195.6,116.801)(196.5,116.702)(197.2,116.702)
\curveto(201.8,116.802)(204,118.502)(205.7,121.402)
\curveto(207.4,124.301)(208.1,128.601)(208.7,132.702)
\curveto(208.8,133.202)(209.1,133.702)(209.6,134.002)
\curveto(220.6,140.802)(221.6,145.802)(224.9,149.102)
\curveto(225.6,149.802)(226.8,149.802)(227.5,149.102)
\curveto(228.2,148.403)(228.2,147.203)(227.5,146.502)
\curveto(225.4,144.502)(223.2,138.202)(212.3,131.302)
\curveto(211.7,127.302)(211,123.102)(209,119.502)
\curveto(207.2,116.202)(204.1,113.602)(199.5,113.002)
\curveto(203.2,112.102)(207.2,111.902)(211.5,112.602)
\curveto(228.1,120.302)(238.5,140.002)(242.8,149.403)
\curveto(239.1,150.8)(236.1,153)(234.1,155.6)
\closepath
\moveto(178.4,227)
\curveto(182.2,223.2)(191.4,221.9)(195.9,226.3)
\curveto(198,221.1)(212,186.6)(270.9,187.401)
\curveto(264.4,189.401)(255.1,193.6)(245.2,202.201)
\curveto(241,205.901)(236.9,210.1)(233.1,215.1)
\curveto(226.3,215.401)(218.7,219.401)(212.1,224)
\curveto(206,228.4)(200.9,233.2)(198.4,236.8)
\curveto(195.7,236.1)(193.2,235.8)(191,235.8)
\curveto(185.4,235.8)(181,237.8)(178.1,240.901)
\curveto(175.2,244.001)(173.9,248.001)(173.9,251.8)
\curveto(173.9,254)(174.3,256.1)(175.2,258)
\curveto(171.3,255.5)(168.2,252.6)(166.7,250.6)
\curveto(133.8,254.701)(116.2,252.3)(109.6,246.8)
\curveto(104.4,236.3)(100,215.901)(133.4,206.2)
\curveto(132.1,207.5)(132.3,208.8)(133.1,210)
\curveto(129,211)(125.4,212.6)(122.4,214.7)
\curveto(116.7,218.7)(113.4,224.599)(113.4,231.599)
\curveto(113.4,232.099)(113.4,232.599)(113.5,233.099)
\curveto(113.7,236.9)(115.5,239.7)(118.2,241.2)
\curveto(120.9,242.7)(124.2,243.099)(127.8,243.099)
\curveto(134.7,243.099)(143.1,241.599)(150.6,241.599)
\curveto(158.5,241.599)(165,243.099)(168.6,248.7)
\lineto(168.6,248.7)
\curveto(169.2,249.599)(170.3,249.8)(171.2,249.2)
\curveto(172.1,248.599)(172.3,247.5)(171.7,246.599)
\curveto(167,239.4)(158.8,237.799)(150.6,237.799)
\curveto(142.6,237.799)(134.2,239.299)(127.8,239.299)
\curveto(124.5,239.299)(121.7,238.9)(120,237.9)
\curveto(118.3,236.9)(117.4,235.7)(117.2,232.799)
\lineto(117.2,231.499)
\curveto(117.2,225.699)(119.7,221.099)(124.6,217.599)
\curveto(129.3,214.299)(136.3,212.299)(145.2,212.2)
\curveto(148.4,215.599)(149.9,219.099)(149.8,221.5)
\curveto(149.8,222.1)(149.7,222.6)(149.6,223)
\curveto(149.4,223.7)(149.6,224.4)(150.1,224.9)
\curveto(151.3,226.099)(152.8,226.5)(154.2,226.799)
\curveto(155.7,227.099)(157.3,227.4)(159,227.9)
\curveto(162.4,228.9)(166.2,230.599)(170.1,235.7)
\curveto(170.7,236.5)(171.9,236.7)(172.7,236.099)
\curveto(173.5,235.499)(173.7,234.299)(173.1,233.499)
\curveto(166.6,224.799)(159,224.099)(155.1,223.199)
\curveto(154.4,223.098)(153.9,222.899)(153.5,222.699)
\curveto(153.6,222.299)(153.6,221.899)(153.6,221.499)
\curveto(153.6,217.499)(151.4,213.099)(147.3,209.099)
\curveto(147.1,208.9)(146.8,208.7)(146.5,208.599)
\curveto(146.5,207.9)(146.2,207.2)(145.4,206.4)
\curveto(153.2,205.7)(163.5,203.299)(168.5,208.299)
\curveto(173.4,213.3)(174.9,223.5)(178.4,227)
\closepath
\moveto(137.5,369.6)
\curveto(138.8,371.1)(150.4,383.1)(157.7,388.3)
\curveto(150.7,386.6)(139.4,380.6)(129.8,372.9)
\curveto(131.7,371.5)(135.2,369.9)(137.5,369.6)
\closepath
\moveto(139.8,354.8)
\curveto(144.9,360)(162.2,379.5)(161.1,383.3)
\curveto(155.1,377.5)(150.2,373.2)(147.6,370.2)
\curveto(143.7,365.7)(141,361.9)(139.8,354.8)
\closepath
\moveto(112.4,270.4)
\curveto(112.4,281.4)(130.8,280)(133.9,291.9)
\curveto(137.4,305.2)(123.1,305.799)(129.8,316.2)
\curveto(120.1,322.7)(110.1,319.099)(110.1,327.2)
\curveto(110.1,335.4)(128.6,339.3)(135.6,363.3)
\curveto(135.6,363.3)(133.7,358.2)(128.3,353.7)
\curveto(113.3,341.3)(96,340.4)(95.4,324)
\curveto(94.7,306.2)(114.8,294.5)(107.6,287.3)
\curveto(100.6,280.3)(108.9,273.9)(112.4,270.4)
\closepath
\moveto(191.5,437.6)
\curveto(197.2,430.6)(211.2,411.6)(211.2,392.9)
\curveto(211.2,385.5)(208.9,378)(202.9,371.7)
\curveto(245.8,352.7)(214.3,317.599)(219.2,256.099)
\curveto(223.3,232.4)(235.3,215.9)(247.7,204.999)
\curveto(259.6,194.499)(270.3,187.999)(279.2,187.999)
\curveto(279.4,187.999)(280.4,188.199)(280.6,188.299)
\curveto(267.1,193.199)(254.7,205.299)(248.9,216.799)
\curveto(246.1,222.4)(243.7,229.299)(242.6,235.099)
\curveto(241.6,240.599)(241.5,243.299)(241.5,249.999)
\curveto(241.5,277.999)(252,295.099)(252,295.099)
\curveto(264.7,320.299)(282.8,337.599)(299.7,354.7)
\curveto(306,361)(312.099,367.4)(317.7,374)
\curveto(295.5,428.5)(248.9,444.7)(216.7,444.7)
\curveto(210.1,444.7)(204.2,444)(199.2,442.9)
\lineto(199.2,442.9)
\curveto(198.9,442.8)(198.6,442.8)(198.3,442.9)
\curveto(196.9,441.1)(194.8,439.1)(191.5,437.6)
\closepath
\moveto(351.3,167.9)
\curveto(347.7,163.4)(341.1,158.9)(329.7,155.5)
\curveto(316.8,151.7)(304.7,149.7)(294,149.7)
\curveto(283.8,149.7)(274.7,151.5)(267,155)
\curveto(266.1,154.3)(265.1,153.6)(264,153)
\curveto(261.7,148.3)(258.3,145.3)(253.8,143.4)
\curveto(294.6,128)(363.6,139.299)(381.7,155.2)
\lineto(381.7,156.4)
\curveto(381.7,159.099)(381.8,161.5)(382,163.7)
\lineto(381,163.7)
\curveto(368.4,163.7)(358.6,165.7)(351.3,167.9)
\closepath
\moveto(396,161.5)
\curveto(399.4,161.5)(402.8,162.1)(405.9,163.2)
\curveto(413.9,164.8)(421.4,168.099)(427.099,171)
\curveto(409.599,165.8)(394.999,163.9)(382.9,163.7)
\curveto(386.4,162.4)(390.7,161.5)(396,161.5)
\closepath
\moveto(414.5,154.1)
\curveto(410.6,140.5)(433.7,139.6)(443.2,141.701)
\curveto(441.5,142.701)(440.099,144.301)(439.3,146.801)
\curveto(438.2,150.201)(439.401,153.402)(441.401,155.601)
\curveto(435,158.9)(418.3,167.3)(414.5,154.1)
\closepath
\moveto(553,374.7)
\curveto(550.8,446.1)(503.9,525.6)(428.7,533.7)
\curveto(423.099,527.5)(418.2,521.4)(413.9,515.4)
\curveto(417.799,511.7)(421.599,507.9)(425.299,503.8)
\curveto(425.499,503.6)(425.699,503.3)(425.9,503.1)
\curveto(426.5,503.6)(427.2,504.1)(427.799,504.6)
\curveto(445.999,517.4)(483.099,519.7)(498.699,487.7)
\curveto(514.098,456.1)(484.899,432.1)(484.899,432.1)
\curveto(481.598,429.2)(475.699,426.3)(468.798,424.9)
\curveto(469.998,420.5)(470.998,416.1)(471.899,411.6)
\lineto(472.098,411.6)
\curveto(491.598,413.1)(513.498,401.4)(517.498,373.2)
\curveto(525.298,318)(470.098,296.3)(452.198,290.099)
\curveto(449.597,288.9)(448.798,287.099)(448.798,287.099)
\curveto(453.498,286.4)(457.598,282.7)(460.098,277.7)
\curveto(461.298,275.2)(461.798,273)(461.798,271)
\curveto(461.798,266.2)(458.698,262.6)(454.399,260.1)
\curveto(450.098,257.6)(444.499,256.401)(440.499,256.401)
\curveto(438.699,256.401)(437.099,256.701)(436.199,257.1)
\curveto(435.699,257.3)(435.399,257.5)(435.299,257.701)
\curveto(435.4,258.1)(435.499,258.6)(435.699,259.001)
\curveto(439.199,266.801)(458.199,258.001)(454.799,275.301)
\curveto(453.699,280.701)(450.699,283.101)(446.599,283.501)
\curveto(431.499,261.501)(413.599,246.301)(401.7,234.801)
\curveto(394.4,227.902)(388.8,223.301)(387.599,219.701)
\curveto(387.2,218.501)(386.2,214.901)(388.499,212.501)
\curveto(389.099,211.901)(389.999,211.101)(390.899,211.001)
\curveto(396.999,210.001)(397.699,216.801)(397.699,216.801)
\curveto(398.699,215.501)(399.299,214.001)(399.299,212.402)
\curveto(399.299,212.002)(399.199,211.601)(399.199,211.202)
\lineto(399.199,210.902)
\curveto(398.199,204.002)(392.899,200.402)(387.399,200.402)
\lineto(387.3,200.402)
\curveto(383.901,200.402)(380.401,201.801)(377.7,204.502)
\curveto(375,207.302)(373.3,211.402)(373.3,216.902)
\curveto(373.3,217.801)(373.401,218.801)(373.5,219.801)
\curveto(374.4,227.902)(381.8,244.701)(381.8,262.101)
\curveto(381.8,280.501)(373.6,299.402)(340.1,309.501)
\curveto(329.401,312.701)(319.8,314.101)(311.1,314.101)
\curveto(279.5,314.101)(261.1,295.101)(251.8,274.702)
\curveto(249.7,268.002)(247.8,259.402)(247.3,248.902)
\curveto(247.1,244.502)(247.5,239.202)(248,235.301)
\curveto(248.6,231.301)(251.1,222.902)(253.8,217.301)
\curveto(259.6,205.701)(268.2,194.601)(279.7,189.801)
\lineto(281.5,189.101)
\curveto(287.4,190.402)(290.8,191.601)(297.2,193.902)
\lineto(298.7,194.402)
\curveto(308.9,198.101)(318.5,201.601)(327.8,201.601)
\curveto(333.8,201.601)(339,200.301)(343.7,197.301)
\curveto(344.3,197.001)(344.8,196.601)(345.3,196.201)
\lineto(348.2,193.901)
\lineto(348.2,193.901)
\lineto(348.9,193.201)
\curveto(352.5,189.401)(355.2,183.901)(354.799,178.1)
\curveto(354.599,175.701)(353.9,172.901)(352.199,170.1)
\curveto(359.199,168)(368.499,166.201)(380.499,166.201)
\curveto(394.799,166.201)(413.099,168.801)(435.899,176.701)
\lineto(435.999,176.701)
\curveto(436.099,176.701)(436.099,176.801)(436.099,176.801)
\curveto(474.299,176.801)(459.099,152.101)(454.9,157.001)
\curveto(450.299,162.201)(439.4,154.801)(442.5,146.301)
\curveto(447.2,133.101)(468.7,144.801)(471,153.501)
\curveto(466.6,124.701)(421.8,137.001)(411.5,138.401)
\curveto(399.4,140.1)(394.5,128.901)(396.2,118.6)
\curveto(397.599,110.1)(392.3,102.3)(389.9,100)
\curveto(407,96.7)(415.099,111.2)(421.799,115.8)
\curveto(428.599,120.5)(453.199,118.2)(467.099,128.901)
\curveto(481,139.5)(479.2,165.1)(479.2,168.1)
\curveto(482.4,169.401)(493.2,173.8)(493.2,186.201)
\curveto(493.2,197.001)(485.2,202.401)(477,201.401)
\curveto(467.9,200.3)(465.2,189.1)(475.5,188.901)
\curveto(473.2,191.201)(475.9,194.701)(479,193.001)
\curveto(483.7,190.401)(478.4,182.601)(468.7,184.201)
\curveto(465.3,184.801)(457.599,185.901)(450.3,186.901)
\curveto(505.7,215.9)(556.1,275.2)(553,374.7)
\closepath
\moveto(435.5,254.8)
\curveto(436.9,254.2)(438.7,254)(440.8,254)
\curveto(445.401,254)(451.2,255.3)(456,258)
\curveto(460.8,260.7)(464.7,265.1)(464.7,271)
\curveto(464.7,273.4)(464.099,276)(462.7,278.8)
\curveto(462,280.2)(461.3,281.3)(460.4,282.3)
\curveto(465.2,278.6)(467.599,275)(468.599,271.8)
\curveto(468.799,271)(468.999,270.2)(469.2,269.5)
\curveto(469.3,268.7)(469.4,268)(469.4,267.3)
\curveto(469.4,264.8)(468.799,262.6)(468.099,260.901)
\curveto(464.7,251.5)(455.8,247.1)(445.9,247)
\curveto(444.299,247)(442.599,247.1)(441,247.4)
\curveto(438.3,248.9)(435.9,251.7)(435.4,255)
\curveto(435.4,254.8)(435.4,254.8)(435.5,254.8)
\closepath
\moveto(436.1,245.8)
\curveto(439.3,244.901)(442.6,244.5)(445.8,244.5)
\lineto(445.901,244.5)
\curveto(456.401,244.5)(466.401,249.4)(470.3,259.8)
\curveto(470,250.5)(465.3,246.401)(458.901,243.1)
\curveto(452.3,239.701)(444.001,237.6)(438.001,232.6)
\curveto(433.201,228.6)(431.201,223.701)(431.201,218.8)
\curveto(431.201,211.8)(435.1,204.8)(440.1,199)
\curveto(405,220.5)(420.6,241.6)(436.1,245.8)
\closepath
\moveto(452.6,224.5)
\curveto(439.8,220.2)(441.8,205.1)(443.201,199.1)
\curveto(437.801,204.901)(433.701,212.1)(433.701,218.701)
\curveto(433.701,222.901)(435.301,227.001)(439.6,230.6)
\curveto(445,235.201)(453.1,237.3)(460,240.8)
\curveto(466.9,244.3)(472.8,249.7)(472.8,260.401)
\curveto(472.8,263.201)(472.401,266.3)(471.6,269.8)
\curveto(470.701,275.8)(466.201,282.8)(453.8,289.401)
\curveto(463.901,288.701)(482.7,284.201)(486,265.001)
\curveto(489.7,243.8)(468.7,229.9)(452.6,224.5)
\closepath
\moveto(281.2,184.7)
\curveto(276.6,183.599)(272,182.9)(267.3,182.8)
\curveto(267.7,182.5)(268,182.2)(268.4,181.901)
\curveto(270.7,179.6)(272.2,176.901)(272.3,174.1)
\curveto(272.3,170.8)(272.1,164.1)(268.3,159)
\curveto(270.5,156.8)(281.7,154.5)(281.7,154.5)
\curveto(283.1,154.3)(284,154.4)(285,154.4)
\curveto(288.3,154.4)(290.7,156.2)(292.5,159.099)
\curveto(294.2,161.999)(295.1,165.999)(295.1,169.799)
\curveto(295.1,170.799)(295,171.9)(294.9,172.9)
\curveto(293.8,180.5)(289.1,184.9)(281.9,184.9)
\curveto(281.6,184.7)(281.4,184.7)(281.2,184.7)
\closepath
\moveto(298.9,190.4)
\curveto(295.1,189)(291.3,187.599)(287.4,186.4)
\curveto(292.9,184.5)(296.6,179.599)(297.4,173)
\curveto(297.5,171.9)(297.6,170.8)(297.6,169.6)
\curveto(297.6,165.401)(296.6,161)(294.6,157.6)
\curveto(293.7,156.1)(292.6,154.8)(291.3,153.8)
\curveto(298.5,153.6)(305.7,154.3)(312.5,155.5)
\lineto(312.5,155.5)
\curveto(320.6,156.6)(325.2,166.3)(325.2,174.5)
\curveto(325.2,175.6)(325.099,176.7)(324.9,177.7)
\curveto(323.7,185.099)(316.599,193.3)(307.4,193.3)
\curveto(304.7,192.5)(301.8,191.4)(298.9,190.4)
\closepath
\moveto(342.3,194)
\curveto(337.901,196.9)(333.2,198)(328.3,198)
\curveto(323.401,198)(318.2,196.9)(312.8,195.2)
\curveto(320.8,192.7)(326.3,185.3)(327.5,178.3)
\curveto(327.7,177.1)(327.8,175.901)(327.8,174.6)
\curveto(327.8,168.701)(325.6,161.8)(321.3,157.5)
\curveto(323.901,158.1)(326.3,158.8)(328.7,159.5)
\curveto(337.9,162.2)(351.099,169)(351.8,178.4)
\lineto(351.8,178.299)
\curveto(351.8,178.699)(351.901,178.999)(351.901,179.4)
\curveto(351.7,186.1)(346.1,191.3)(342.3,194)
\closepath
\moveto(124.6,372.3)
\curveto(139.1,383.8)(159.7,393.3)(163.6,389.4)
\curveto(167.5,385.5)(151.7,361.4)(135,344.7)
\curveto(148.8,344.7)(163.4,347.4)(194.7,374.5)
\curveto(198.5,380.2)(200,386.1)(200,392)
\curveto(200.1,410.6)(184.6,429)(178.3,435.6)
\curveto(170.3,436.8)(167.6,442.5)(167.5,442.8)
\lineto(167.4,443.1)
\lineto(167.3,443.4)
\curveto(167.3,443.6)(166.4,448.1)(166.9,454.1)
\curveto(145,449.2)(128.2,441.5)(121.7,436.1)
\curveto(121.7,436.1)(123.6,433.7)(122.8,428.8)
\curveto(126.4,427.3)(132.4,435.8)(140.9,432.2)
\curveto(148.2,429)(154.9,422.4)(162.3,423.4)
\lineto(163,420.3)
\curveto(155,418)(147.7,426)(140.2,428.8)
\curveto(132.4,431.8)(126.3,423.4)(122.1,425.9)
\curveto(121.8,424.9)(121.3,423.7)(120.7,422.5)
\curveto(121.3,418.1)(124.1,412.6)(128.3,409.3)
\curveto(128.4,409.2)(128.5,409)(128.5,408.8)
\curveto(128.5,408.6)(128.4,408.4)(128.3,408.3)
\curveto(125.1,405.7)(106.6,392.3)(101.8,387.6)
\curveto(102.1,387.4)(102.4,387.2)(102.8,387)
\curveto(109.4,382.9)(117.4,378.9)(122.4,378.9)
\lineto(123.3,378.9)
\curveto(125.9,381)(147.7,395.5)(160.4,395.6)
\curveto(164.4,395.6)(167.7,394)(168.7,389.9)
\curveto(168.8,389.6)(168.6,389.2)(168.3,389.1)
\curveto(168,389)(167.6,389.2)(167.5,389.5)
\curveto(166.6,392.9)(164.1,394.2)(160.4,394.2)
\curveto(148.2,394.3)(124.9,378.7)(124,377.7)
\curveto(123.9,377.6)(123.8,377.5)(123.6,377.5)
\curveto(123.2,377.5)(122.8,377.4)(122.4,377.4)
\curveto(112.4,377.5)(94.5,390.6)(90.8,393.4)
\curveto(93.6,385.4)(108,374.8)(124.6,372.3)
\closepath
\moveto(136,408.7)
\curveto(126.6,410.2)(125.5,420.7)(125.5,420.7)
\curveto(127.8,426.2)(141.1,427.3)(148.8,416.8)
\curveto(148.8,416.8)(143.4,407.5)(136,408.7)
\closepath
\moveto(184.9,262.5)
\curveto(180.7,260.4)(177.7,256.6)(177.7,251.9)
\curveto(177.8,245.9)(181.7,239.599)(191.1,239.5)
\curveto(193.1,239.5)(195.4,239.8)(198,240.5)
\curveto(204.4,243.5)(206.2,250.2)(206.2,254.4)
\curveto(206.2,255.2)(206.1,255.9)(206,256.4)
\curveto(205.8,257.299)(205.6,258.2)(205.3,258.9)
\curveto(198.4,263.9)(191.2,264.2)(184.9,262.5)
\closepath
\moveto(100.7,388.4)
\curveto(105.3,392.9)(122.3,405.4)(126.8,408.8)
\curveto(122.9,412.1)(120.4,416.5)(119.7,420.8)
\curveto(119.4,420.2)(119,419.5)(118.5,418.9)
\curveto(112.3,409.2)(98.6,401.4)(90.8,395)
\curveto(91.5,394.5)(95.5,391.5)(100.6,388.2)
\curveto(100.7,388.3)(100.7,388.4)(100.7,388.4)
\closepath
\moveto(208.7,392.9)
\curveto(208.8,410.9)(194.2,430.5)(189,436.7)
\curveto(188.5,436.6)(188.1,436.4)(187.6,436.3)
\curveto(185.6,435.8)(183.7,435.6)(181.9,435.5)
\curveto(189,427.6)(202.4,410.4)(202.5,392.1)
\curveto(202.5,386)(201,379.9)(197.2,374)
\curveto(198.3,373.6)(199.4,373.2)(200.4,372.8)
\lineto(200.4,372.8)
\curveto(206.5,378.7)(208.7,385.7)(208.7,392.9)
\closepath
\moveto(159.6,456.1)
\curveto(157.3,460.5)(152.9,464.6)(140.5,471)
\curveto(133.4,463.1)(132.9,454)(134.1,447)
\curveto(141.3,450.6)(149.9,453.7)(159.6,456.1)
\closepath
\moveto(186.9,439.3)
\curveto(196.7,441.7)(197.5,448.8)(197.5,448.8)
\curveto(197.5,457.5)(198.9,461.8)(183.6,477.1)
\curveto(165.7,466.7)(170.3,444.2)(170.3,444.2)
\curveto(170.3,444.2)(174,436.1)(186.9,439.3)
\closepath
}
}
\end{pspicture}
\end{document}
%</xepersian-logo.tex>
%\fi
%
% \typeout{*************************************************************}
% \typeout{*}
% \typeout{* To finish the installation you have to move the following}
% \typeout{* file into a directory searched by TeX:}
% \typeout{*}
% \typeout{* \space\space\space all *.cls, *.sty and *.def  files}
% \typeout{*}
% \typeout{* You also need to compile the *.map files with teckit_compile}
% \typeout{* and place the resulting *.tec files under}
% \typeout{* .../fonts/misc/xetex/fontmapping}
% \typeout{*}
% \typeout{*************************************************************}
%
\endinput
