summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-06-19 08:48:54 +0900
committerNorbert Preining <norbert@preining.info>2020-06-19 08:48:54 +0900
commit0deaceb5e1a46d7063fefc5d145d1814db7d3ea9 (patch)
tree7b9b73270e3797a70a2d5df423b6375abac813f7
parentbd56b5cef174077f41411eaee38364ae6d7b2701 (diff)
acrosort update
-rw-r--r--texmf-dist/doc/latex/acrosort/README17
-rw-r--r--texmf-dist/doc/latex/acrosort/README.md23
-rw-r--r--texmf-dist/doc/latex/acrosort/docs/acrosort-man.pdfbin0 -> 640143 bytes
-rw-r--r--texmf-dist/doc/latex/acrosort/docs/acrosort-man.tex360
-rw-r--r--texmf-dist/doc/latex/acrosort/docs/acrosort.pdfbin0 -> 265324 bytes
-rw-r--r--texmf-dist/doc/latex/acrosort/examples/acrosort_test.pdfbin120400 -> 0 bytes
-rw-r--r--texmf-dist/doc/latex/acrosort/examples/acrosort_test.tex44
-rw-r--r--texmf-dist/doc/latex/acrosort/examples/as1.tex49
-rw-r--r--texmf-dist/doc/latex/acrosort/examples/as2.tex87
-rw-r--r--texmf-dist/doc/latex/acrosort/examples/choo/choo.pdfbin103349 -> 103163 bytes
-rw-r--r--texmf-dist/doc/latex/acrosort/examples/choo/choo_package.pdfbin1947015 -> 126252 bytes
-rw-r--r--texmf-dist/doc/latex/acrosort/examples/choo/tg-choo.tex12
-rw-r--r--texmf-dist/doc/latex/acrosort/examples/emoji/MyEmoji.eps8732
-rw-r--r--texmf-dist/doc/latex/acrosort/examples/emoji/MyEmoji.pdfbin0 -> 30645 bytes
-rw-r--r--texmf-dist/doc/latex/acrosort/examples/emoji/MyEmoji_package.pdfbin0 -> 51309 bytes
-rw-r--r--texmf-dist/doc/latex/acrosort/examples/emoji/tg-emoji.tex13
-rw-r--r--texmf-dist/source/latex/acrosort/acrosort.dtx589
-rw-r--r--texmf-dist/source/latex/acrosort/acrosort.ins2
-rw-r--r--texmf-dist/source/latex/acrosort/aeb_pro/aeb_pro.js106
-rw-r--r--texmf-dist/tex/latex/acrosort/acrosort.sty525
20 files changed, 9846 insertions, 713 deletions
diff --git a/texmf-dist/doc/latex/acrosort/README b/texmf-dist/doc/latex/acrosort/README
deleted file mode 100644
index 419ac8c5..00000000
--- a/texmf-dist/doc/latex/acrosort/README
+++ /dev/null
@@ -1,17 +0,0 @@
-acrosort --- D. P. Story
-Dated: 2011/12/31
-
-This is a package that uses Adobe Distiller as the PDF creator as well as
-Acrobat itself.
-
-The AcroSort is a novelty LaTeX package for importing a series of sliced
-images of a picture. The sliced images are randomly arranged, then
-resorted before the user's eyes using a bubble sort.
-
-Images can be sliced using AcroSlice, also available through CTAN
-
-Now, I simply must get back to my retirement.
-
-D. P. Story
-dpstory@acrotex.net
-2011/12/31
diff --git a/texmf-dist/doc/latex/acrosort/README.md b/texmf-dist/doc/latex/acrosort/README.md
new file mode 100644
index 00000000..7d2533f0
--- /dev/null
+++ b/texmf-dist/doc/latex/acrosort/README.md
@@ -0,0 +1,23 @@
+acrosort --- D. P. Story
+Dated: 2020-06-17
+
+The AcroSort is a novelty LaTeX package for importing a series
+of tiled images of a picture. The tiled images are randomly
+arranged, then resorted before the user's eyes using a bubble
+sort.
+
+Images can be tiled using the tile-graphic package, also
+available through CTAN.
+
+What's New (2020-06-02): Minor suggested changes by CTAN maintainers
+
+What's New (2020-06-02): This is a complete rewrite of the
+package. The package now supports all common PDF creators:
+pdflatex, lualatex, xelatex, dvips->distiller. Multiple bubble
+sort tiles images are now supported.
+
+Now, I simply must get back to my retirement.
+
+D. P. Story
+dpstory@acrotex.net
+2020-06-16
diff --git a/texmf-dist/doc/latex/acrosort/docs/acrosort-man.pdf b/texmf-dist/doc/latex/acrosort/docs/acrosort-man.pdf
new file mode 100644
index 00000000..8a3c63b3
--- /dev/null
+++ b/texmf-dist/doc/latex/acrosort/docs/acrosort-man.pdf
Binary files differ
diff --git a/texmf-dist/doc/latex/acrosort/docs/acrosort-man.tex b/texmf-dist/doc/latex/acrosort/docs/acrosort-man.tex
new file mode 100644
index 00000000..3db8c6f1
--- /dev/null
+++ b/texmf-dist/doc/latex/acrosort/docs/acrosort-man.tex
@@ -0,0 +1,360 @@
+\documentclass{article}
+\usepackage[fleqn]{amsmath}
+\usepackage[%
+ web={centertitlepage,designv,forcolorpaper,latextoc,pro},
+ eforms,
+ uselayers,
+ aebxmp
+]{aeb_pro}
+%\usepackage{aeb_mlink}
+\usepackage{graphicx}
+%\usepackage{myriadpro}
+%\usepackage[usecmtt]{myriadpro}
+\usepackage[altbullet]{lucidbry}
+\usepackage{acrosort}
+\usepackage{fancyvrb}
+\usepackage{wrapfig}
+
+\let\pkg\textsf
+\let\app\textsf
+\let\env\texttt
+\newcommand{\FmtMP}[2][0pt]{\mbox{}\marginpar{\raisebox{#1}{\parbox{\marginparwidth}{\slshape\raggedleft\small#2}}}}
+\addtolength{\marginparwidth}{1in}
+
+
+%\usepackage{acaslonpro}
+%\usepackage{ajensonpro}
+%\usepackage{minionpro}
+%\usepackage{newsgothicstd}
+%\usepackage{lucidbry}
+
+\DeclareDocInfo
+{
+ university={\AcroTeX.Net},
+ title={The \textsf{acrosort} Package},
+ author={D. P. Story},
+ email={dpstory@acrotex.net},
+ subject={Documentation for AcroSort},
+ talksite={\url{www.acrotex.net}},
+ version={1.6.1},
+ versionLabel={Version},
+ copyrightyears={2006-\the\year},
+ prepared={2020/06/17},
+ preparedLabel={Distribution Dated:},
+ keywords={Adobe Acrobat, JavaScript, LaTeX, JavaScript, bubble sort, tiling},
+ copyrightStatus=True,
+ copyrightNotice={Copyright (C) \the\year, D. P. Story},
+ copyrightInfoURL={http://www.acrotex.net}
+}
+\nocopyright
+\usepackage{acroman}
+%\usepackage[active]{srcltx}
+
+
+\def\nhfootnote#1{\begin{NoHyper}\footnote{#1}\end{NoHyper}}
+
+\makeatletter
+\renewcommand{\paragraph}
+ {\@startsection{paragraph}{4}{0pt}{6pt}{-3pt}{\bfseries}}
+\renewcommand*\l@subsection{\@dottedtocline{2}{1.5em}{2.5em}}
+\makeatother
+
+
+\def\scalefactor{.75}
+
+\def\dps{$\hbox{$\mathfrak D$\kern-.3em\hbox{$\mathfrak P$}%
+ \kern-.6em \hbox{$\mathcal S$}}$}
+
+\def\dps{$\hbox{$\mathfrak D$\kern-.3em\hbox{$\mathfrak P$}%
+ \kern-.6em \hbox{$\mathcal S$}}$}
+
+\universityLayout{fontsize=Large}
+\titleLayout{fontsize=LARGE}
+\authorLayout{fontsize=Large}
+\tocLayout{fontsize=Large,color=aeb}
+\sectionLayout{indent=-62.5pt,fontsize=large,color=aeb}
+\subsectionLayout{indent=-31.25pt,color=aeb}
+\subsubsectionLayout{indent=0pt,color=aeb}
+\subsubDefaultDing{\texorpdfstring{$\bullet$}{\textrm\textbullet}}
+
+\def\AcroTeX{Acro\negthinspace\TeX}
+
+\begin{embedding}
+\isPackage
+\asEmbedTiles{choo}{20}{../examples/choo/choo}
+\isPackage
+\asEmbedTiles{emoji}{16}{graphics/myemoji}
+\end{embedding}
+
+\customFinishJS{if(sortName=="emoji") toggleSetThisLayer("retire", true);}
+
+
+\chngDocObjectTo{\newDO}{doc}
+\begin{docassembly}
+var titleOfManual="The acrosort Package";
+var manualfilename="Manual_BG_Print_acrosort.pdf";
+var manualtemplate="Manual_BG_Green.pdf"; // Blue, Green, Brown
+var _pathToBlank="C:/Users/Public/Documents/ManualBGs/"+manualtemplate;
+var doc;
+var buildIt=false;
+if ( buildIt ) {
+ console.println("Creating new " + manualfilename + " file.");
+ doc = \appopenDoc({cPath: _pathToBlank, bHidden: true});
+ var _path=this.path;
+ var pos=_path.lastIndexOf("/");
+ _path=_path.substring(0,pos)+"/"+manualfilename;
+ \docSaveAs\newDO ({ cPath: _path });
+ doc.closeDoc();
+ doc = \appopenDoc({cPath: manualfilename, oDoc:this, bHidden: true});
+ f=doc.getField("ManualTitle");
+ f.value=titleOfManual;
+ doc.flattenPages();
+ \docSaveAs\newDO({ cPath: manualfilename });
+ doc.closeDoc();
+} else {
+ console.println("Using the current "+manualfilename+" file.");
+}
+var _path=this.path;
+var pos=_path.lastIndexOf("/");
+_path=_path.substring(0,pos)+"/"+manualfilename;
+\addWatermarkFromFile({
+ bOnTop:false,
+ bOnPrint:false,
+ cDIPath:_path
+});
+\executeSave();
+\end{docassembly}
+
+
+%\definePath\bgPath{"C:/Users/Public/Documents/ManualBGs/Manual_BG_Print_AeB.pdf"}
+%\begin{docassembly}
+%\addWatermarkFromFile({
+% bOnTop:false,
+% cDIPath:\bgPath
+%});
+%\executeSave();
+%\end{docassembly}
+
+
+%\previewOn\pmpvOn
+
+\begin{document}
+
+\maketitle
+
+\selectColors{linkColor=black}
+\tableofcontents
+\selectColors{linkColor=webgreen}
+
+\section{Introduction}
+
+% \ulCornerHere sets the upper left corner of where the image is to be placed.
+% \reserveSpaceByFile leaves space for the image.
+\begin{wrapfigure}{l}{2in}\vskip-\baselineskip
+\insertTiles{choo}{2in}{4}{5}
+
+
+\smallskip
+
+%
+% Simple controls, there meaning is obvious. You can changes their appearance
+% by using the option argument. See \textsf{eForms} documentation for details
+% on how to change the appearance.
+%
+
+\centering\StartSort{choo}{}{11bp}\quad\ClearSort{choo}{}{11bp}%\quad\StopSort{}{11bp}
+\vskip-\baselineskip
+\end{wrapfigure}%
+\pkg{acrosort} is a novelty {\LaTeX} package for importing a
+series of tiled images of a picture. The tiled images are randomly
+arranged, then resorted before the user's eyes using a bubble sort. We shall refer to the figure to the left
+as a \FmtMP{tiled bubble sort}\textit{tiled bubble sort}.
+
+This new version of \pkg{acrosort}, dated 2020/06/02 or later,
+supports all common workflows: \app{pdflatex}, \app{lualatex}, \app{xelatex},
+and \app{dvips\,->\,distiller}.
+
+The \pkg{graphicx}, \pkg{eforms}, and \pkg{icon-appr} packages are
+automatically input by \textsf{acrosort}. When the workflow
+\app{dvips\,->\,distiller} is used, the package \pkg{aeb\_pro} is required.
+For the first time, \FmtMP{multiple tiled bubble\\sorts supported}multiple tiled bubble sorts can appear in the same
+document,
+though only one can be sorted at a time.
+
+\paragraph*{Demo files.} There are two sample files for this distribution: \texttt{as1.tex} (only one tile bubble sort),
+and \texttt{as2.tex} (two tiled bubble sorts). These are found in the \texttt{examples} folder.
+
+
+\section{The Method}
+
+The creation of the \emph{tiled bubble sort} has two easy steps. \verb~:-{)~
+\begin{enumerate}
+ \item Embed your graphics using the \env{embedding} environment of \pkg{icon-appr} and the special
+ command \cs{asEmbedTiles}.
+\bVerb\takeMeasure{\string\asEmbedTiles[\ameta{ext}]\darg{\ameta{name}}\darg{\ameta{num-tiles}}\darg{\ameta{path}}}
+\begin{dCmd}[commandchars=!()]{\bxSize}
+!color(gray)\begin{embedding}
+\isPackage
+\asEmbedTiles[!ameta(ext)]{!ameta(name)}{!ameta(num-tiles)}{!ameta(path)}
+!color(gray)\end{embedding}
+\end{dCmd}
+\eVerb
+The \cs{asEmbedTiles} is defined by \pkg{acrosort}. The parameters are:
+\ameta{name} is a unique name used by \cs{insertTiles} to refer this tile
+embedding; \ameta{num-tiles} is the number of tiles; \ameta{path} is the
+path to the graphics file,\footnote{a relative or absolute path, relative
+preferred} the graphics file is referenced by its \emph{base name}.
+Usually, PDF files are used for graphics.
+
+\cs{isPackage} is optional and must appear prior to the \cs{asEmbedTiles}
+command to which it refers. \cs{isPackage} means the tiled graphic files
+are ``packaged'' in a single PDF, named
+\texttt{\ameta{base name}\_package.pdf}.
+
+The optional argument \ameta{ext} is ignored when \cs{isPackage} is
+present; otherwise, an extension of \ameta{ext} is affixed to the graphics
+file. If \ameta{ext} is not specified, then an extension of \texttt{pdf}
+(\texttt{.pdf}) is assumed.
+
+\textbf{Base name:} Suppose the base name is \texttt{myPicure}, then
+\ameta{path} might be \texttt{graphics/\allowbreak myPicture}. If
+\cs{isPackage} is expanded prior to \cs{asEmbedTiles}, \pkg{acrosort} looks
+for \texttt{myPicture\_package.pdf} in the \texttt{graphics} folder. If
+\cs{isPackage} does not appear, then \pkg{acrosort} looks for the sequence
+of the tiled graphic files \texttt{myPicture\_01}, \texttt{myPicture\_02},
+\dots \texttt{myPicture\_\ameta{num-tiles}}, numbers less than 10 are
+prefixed with a zero (0). In this case, the graphic file extension is taken
+to be the one specified by \ameta{ext}, or as \texttt{.pdf}, otherwise.
+
+\cs{asEmbedTiles} puts the base graphic file in a box and measures its dimensions;
+the format for the base graphic must be in a format that \cs{includegraphics} supports, for
+whatever PDF creator you are using. In particular, when using straight {\LaTeX}, the base document
+show have an EPS version. Note that in each of the graphics folders (\texttt{choo} and \texttt{emoji})
+both PDF and EPS versions of the base graphic are provided.
+
+\goodbreak
+
+\item In the body of the document, place the \cs{insertTiles} command:
+\bVerb\takeMeasure{\string\insertTiles\darg{\ameta{name}}\darg{\ameta{width}}\darg{\ameta{n-rows}}\darg{\ameta{n-cols}}}
+\begin{dCmd}[commandchars=!()]{\bxSize}
+\insertTiles{!ameta(name)}{!ameta(width)}{!ameta(n-rows)}{!ameta(n-cols)}
+\end{dCmd}
+\eVerb
+where \ameta{name} is the name of an embedding (\cs{asEmbedTiles});
+\ameta{width} is the total width of the picture; \ameta{n-row} is the
+number of rows; \ameta{n-cols} is the number of columns.
+\end{enumerate}
+For the tiled bubble sort figure of this document, the following was used.
+\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()]
+...
+\begin{embedding}
+\isPackage
+\asEmbedTiles{choo}{20}{../examples/choo/choo}
+\end{embedding}
+...
+\begin{document}
+...
+\insertTiles{choo}{2in}{4}{5}
+...
+\end{document}
+\end{Verbatim}
+It's just that simple !
+
+\section{Controlling the bubble sort}
+
+Below are three basic commands for controlling a tile bubble sort by the name
+of \ameta{name}.\normalbaselines
+\bVerb\takeMeasure{\string\StartSort[\ameta{KV-pairs}]\darg{\ameta{name}}\darg{\ameta{wd}}\darg{\ameta{ht}}}
+\begin{dCmd}[commandchars=!()]{\bxSize}
+\StartSort[!ameta(KV-pairs)]{!ameta(name)}{!ameta(wd)}{!ameta(ht)}
+\StopSort[!ameta(KV-pairs)]{!ameta(wd)}{!ameta(ht)}
+\ClearSort[!ameta(KV-pairs)]{!ameta(name)}{!ameta(wd)}{!ameta(ht)}
+\end{dCmd}
+\eVerb
+Use \ameta{KV-pairs} to change the appearance of the fields, where
+\ameta{KV-pairs} are \pkg{eforms} field key-value pairs. The \ameta{name} argument
+(\cs{StartSort} and \cs{ClearSort}) is the name of the graphics to be controlled.
+(\ameta{name} must match up with the \ameta{name} argument of \cs{asEmbedTiles} and
+\cs{insertTiles}.) The \ameta{wd} and \ameta{ht} are the width and height of the push button fields.
+If a caption is provided, set \ameta{wd} to \texttt{\darg{}} and \pkg{eforms} will automatically
+calculate the width based on the value of the \cs{CA} key.
+
+\newtopic\noindent
+There are several other commands of interest, these are,
+\begin{description}
+\item[\cs{customStartJS\darg{\ameta{script}}}] (Field level) Inserts
+ \ameta{script} just prior to the start of the sort (\cs{StartSort}). The default
+ is \cs{customStartJS\darg{}}.
+\item[\cs{customFinishJS\darg{\ameta{script}}}] (Document level) Inserts
+ \ameta{script} just after the finish of the sort. The default is
+ \cs{customFinishJS\darg{}}.
+\item[\cs{appendStartSortJS\darg{\ameta{script}}}] (Field level) Inserts
+ \ameta{script} following the underlying package JavaScript of
+ \cs{StartSort}. The default is \cs{appendStartSortJS\darg{}}.
+\item[\cs{appendStopSortJS\darg{\ameta{script}}}] (Field level) Inserts
+ \ameta{script} following the JavaScript of \cs{StopSort}. The default
+ is \cs{appendStopSortJS\darg{}}.
+\item[\cs{appendClearSortJS\darg{\ameta{script}}}] (Field level) Inserts
+ \ameta{script} following the underlying package JavaScript of
+ \cs{ClearSort}. The default is \cs{appendClearSortJS\darg{}}.
+\end{description}
+Some simple examples; assume there is a text field by the name of
+\texttt{"message"}:
+\begin{Verbatim}[xleftmargin=\parindent]
+\renewcommand{\customStartJS}{%
+ var f=this.getField("message");
+ f.value="Begin sorting choo";
+}
+\renewcommand{\customFinishJS}{%
+ var f=this.getField("message");
+ f.value="Finished sorting choo";
+}
+\end{Verbatim}
+
+\paragraph*{Placement.} It should be noted that the above commands marked as
+``Field level'' may be placed in the body of the document, prior to the
+commands they effect. The other command (\cs{customFinishJS}), which is marked as
+``Document level,'' needs to be placed in the preamble to have any effect.
+
+\newtopic\noindent The sample file \texttt{as2.tex} provides examples of these various commands.
+
+
+\section{Creation of tiles}
+
+Use the package \pkg{tile-graphic}\FmtMP{\pkg{tile-graphic} pkg} to tile a
+graphics file. In the \texttt{examples} folder there are two demo files, \texttt{as1.tex}
+and \texttt{as2.tex}, that use the graphics in the \texttt{emoji} and \texttt{choo} folders.
+These two folders contain files \texttt{tg-emoji.tex} and \texttt{tg-choo.tex} that were used to produce
+the tiled graphics. The one in the \texttt{emoji}
+folder is reproduced
+below.\FmtMP[-3\baselineskip]{\texttt{pdfcreator=\mbox{\hskip20pt}\\pdflatex\string|\\lualatex\string|\\xelatex\string|\\distiller}}
+\begin{Verbatim}[fontsize=\small]
+\documentclass{article}
+\usepackage[!wrttofiles,packagefiles,pdfcreator=pdflatex]{tile-graphic}
+\setTileParams{4}{4}{emoji}
+\begin{document}
+\tileTheGraphic
+\end{document}
+\end{Verbatim}
+Refer to the documentation of \pkg{tile-graphic} for more information. Currently, the options
+are \opt{!wrttofiles} and \opt{packagefiles}, these produce \texttt{emoji\_package.pdf}. If you are using
+\app{xelatex}\FmtMP{for \app{xelatex} users}, you'll need the ``non-packaged'' files. Produce them by changing the options
+to
+\opt{wrttofiles} and \opt{!packagefiles} and compile, the files \texttt{emoji\_01.pdf},
+\texttt{emoji\_02.pdf}, \dots, \texttt{emoji\_12.pdf} should be created. It's just that simple!
+
+
+\section{Applications} %\previewOn\pmpvOn
+
+I've used this package to create birthday, wedding, and anniversary cards for
+friends. You can use it for whatever novel idea your mind can conjure up!
+Enjoy!
+\begin{center}\fboxsep1bp\fboxrule2bp\appendClearSortJS{toggleSetThisLayer("retire", false);}
+\leavevmode\llap{\StartSort{emoji}{}{11bp}\olBdry\ClearSort{emoji}{}{11bp}}\quad\fbox{\insertTiles{emoji}{2in}{4}{4}}\quad\leavevmode
+\xBld[print=true]{retire}\rlap{\parbox{1.5in}{Now, I simply must get back to my retirement, \dps}\eBld}
+
+\end{center}
+
+%\newtopic\noindent
+%Now, I simply must get back to my retirement, \dps
+\end{document}
diff --git a/texmf-dist/doc/latex/acrosort/docs/acrosort.pdf b/texmf-dist/doc/latex/acrosort/docs/acrosort.pdf
new file mode 100644
index 00000000..37113157
--- /dev/null
+++ b/texmf-dist/doc/latex/acrosort/docs/acrosort.pdf
Binary files differ
diff --git a/texmf-dist/doc/latex/acrosort/examples/acrosort_test.pdf b/texmf-dist/doc/latex/acrosort/examples/acrosort_test.pdf
deleted file mode 100644
index a32fdbce..00000000
--- a/texmf-dist/doc/latex/acrosort/examples/acrosort_test.pdf
+++ /dev/null
Binary files differ
diff --git a/texmf-dist/doc/latex/acrosort/examples/acrosort_test.tex b/texmf-dist/doc/latex/acrosort/examples/acrosort_test.tex
deleted file mode 100644
index d64bfe8b..00000000
--- a/texmf-dist/doc/latex/acrosort/examples/acrosort_test.tex
+++ /dev/null
@@ -1,44 +0,0 @@
-%
-% The AeB Pro Family
-% http://www.acrotex.net
-% dpstory@acrotex.net
-%
-\documentclass{article}
-\usepackage[designii]{web}
-\usepackage{acrosort}
-
-\university{\AcroTeX.Net}
-\title{The AcroSort Package}
-\author{D. P. Story}
-\email{dpstory@acrotex.net}
-\subject{Test file for the AcroSort Package}
-\keywords{Adobe Acrobat, JavaScript, LaTeX, JavaScript, sort, slicing}
-
-\theNumRows{4}\theNumCols{5}
-\isPackage
-\theImportPath{choo/choo}
-\theTeXImageWidth{\textwidth}
-
-\parskip6pt
-\parindent0pt
-\thispagestyle{empty}
-
-\bDebug
-
-\begin{document}%\previewtrue
-
-% \ulCornerHere sets the upper left corner of where the image is to be placed.
-% \reserveSpaceByFile leaves space for the image.
-\noindent\ulCornerHere\reserveSpaceByFile
-
-\smallskip
-
-%
-% Simple controls, there meaning is obvious. You can changes their appearance
-% by using the option argument. See \textsf{eForms} documentation for details
-% on how to change the appearance.
-%
-
-\centering\StartSort\quad\StopSort\quad\ClearSort
-
-\end{document}
diff --git a/texmf-dist/doc/latex/acrosort/examples/as1.tex b/texmf-dist/doc/latex/acrosort/examples/as1.tex
new file mode 100644
index 00000000..7d37a16b
--- /dev/null
+++ b/texmf-dist/doc/latex/acrosort/examples/as1.tex
@@ -0,0 +1,49 @@
+%
+% dpstory@acrotex.net
+%
+\documentclass{article}
+% aeb_pro not required for pdflatex, lualatex, or xelatex
+% If you don't have acrobat, no harm done. For the
+% dvips -> distiller workflow, aeb_pro is required.
+\usepackage[%
+ web={designiii},
+ eforms,useacrobat
+]{aeb_pro}
+% for non-pdfmark workflow, and if you don't want to install aeb_pro,
+% the alternative is to use the following two packages instead.
+%\usepackage[designiii]{web}
+%\usepackage{eforms}
+\usepackage{acrosort}
+
+\university{Acro\negthinspace\TeX.Net}
+\title{The AcroSort Package}
+\author{D. P. Story}
+\email{dpstory@acrotex.net}
+\subject{Test file for the AcroSort Package}
+\keywords{Adobe Acrobat, JavaScript, LaTeX, JavaScript, sort, tiling}
+
+%\previewOn\pmpvOn
+
+\begin{embedding}
+\isPackage
+\asEmbedTiles{choo}{20}{choo/choo}
+\end{embedding}
+
+\parskip6pt
+\parindent0pt
+\thispagestyle{empty}
+
+\begin{document}
+
+
+\begin{center}
+\insertTiles{choo}{.67\linewidth}{4}{5}
+\end{center}
+
+\smallskip\customStartJS{console.show(); console.println("Starting the choo sort");}
+\centering\StartSort{choo}{}{12bp}\quad\StopSort{}{12bp}\quad\ClearSort{choo}{}{12bp}
+
+\vfill
+This demo file works when viewed in \textsf{Acrobat}, \textsf{Adobe Reader}, or \textsf{PDFX-Change Editor}.
+
+\end{document}
diff --git a/texmf-dist/doc/latex/acrosort/examples/as2.tex b/texmf-dist/doc/latex/acrosort/examples/as2.tex
new file mode 100644
index 00000000..aef2616d
--- /dev/null
+++ b/texmf-dist/doc/latex/acrosort/examples/as2.tex
@@ -0,0 +1,87 @@
+%
+% dpstory@acrotex.net
+%
+\documentclass{article}
+% aeb_pro not required for pdflatex, lualatex, or xelatex
+% If you don't have acrobat, no harm done. For the
+% dvips -> distiller workflow, aeb_pro is required.
+\usepackage[%
+ web={designiii},
+ eforms,useacrobat
+]{aeb_pro}
+% for non-pdfmark workflow, and if you don't want to install aeb_pro,
+% the alternative is to use the following two packages instead.
+%\usepackage[designiii]{web}
+%\usepackage{eforms}
+\usepackage{acrosort}
+
+\university{Acro\negthinspace\TeX.Net}
+\title{The AcroSort Package}
+\author{D. P. Story}
+\email{dpstory@acrotex.net}
+\subject{Test file for the AcroSort Package}
+\keywords{Adobe Acrobat, JavaScript, LaTeX, JavaScript, sort, tiling}
+
+%\previewOn\pmpvOn
+
+\begin{embedding}
+\isPackage
+\asEmbedTiles{emj}{16}{emoji/myemoji}
+\isPackage
+\asEmbedTiles{choo}{20}{choo/choo}
+\end{embedding}
+
+\parskip6pt
+\parindent0pt
+\thispagestyle{empty}
+
+% sortName is the name of the active tiled sort. At the end of a sort
+% if it is the choo sort, we start the emj sort.
+\customFinishJS{%
+ if(sortName=="choo") {
+ var f=this.getField("message");
+ f.value=("Starting the emj sort from the choo sort");
+ startSortAS("emj");
+ }
+}
+
+\begin{document}
+
+The new \textsf{acrosort} allows for multiple tiled bubble sorts.
+
+% These apply to both tiled bubble sorts
+\appendClearSortJS{this.resetForm("message");}
+\appendStopSortJS{this.resetForm("message");}
+
+\begin{minipage}[t]{.5\linewidth-5pt}\kern0pt
+\begin{center}\fboxsep1bp\fboxrule2bp
+\fbox{\makebox[0pt][l]{\makebox[\linewidth][c]{The choo tiled sort}}%
+ \insertTiles{choo}{\linewidth}{4}{5}}%
+\end{center}
+
+% the \customStartJS and \appendStartSortJS apply only to choo, since they are in a group (minipage)
+\smallskip\customStartJS{var f=this.getField("message"); f.value=("Starting the choo sort");}
+% if Ctrl key is not down, we fool the \customFinishJS by renaming sortName, that way, simply
+% pressing the Press Me button does not activate the emj sort on finish.
+\appendStartSortJS{sortName=(event.modifier)?"choo":"";}
+\centering\StartSort[\TU{Click to sort the train, press Ctrl-Click to sort both}]{choo}{}{12bp}\quad\StopSort{}{12bp}\quad\ClearSort{choo}{}{12bp}\par\medskip
+\end{minipage}\hfill
+%
+\begin{minipage}[t]{.5\linewidth-5pt}\kern0pt
+\begin{center}\fboxsep1bp\fboxrule2bp
+\fbox{\makebox[0pt][l]{\makebox[.5\linewidth]{The emj tiled sort}}%
+ \insertTiles{emj}{.5\linewidth}{4}{4}}
+\end{center}
+
+% the \customStartJS and \appendStartSortJS apply only to emj, since they are in a group (minipage)
+\smallskip\customStartJS{var f=this.getField("message"); f.value=("Starting the emj sort");}
+\centering\StartSort{emj}{}{12bp}\quad\StopSort{}{12bp}\quad\ClearSort{emj}{}{12bp}
+\end{minipage}
+\vfill
+
+This demo file works when viewed in \textsf{Acrobat}, \textsf{Adobe Reader}, or \textsf{PDFX-Change Editor}.
+
+\vfill
+\textField{message}{\linewidth}{11bp}
+
+\end{document}
diff --git a/texmf-dist/doc/latex/acrosort/examples/choo/choo.pdf b/texmf-dist/doc/latex/acrosort/examples/choo/choo.pdf
index b1cd7845..0ab994e1 100644
--- a/texmf-dist/doc/latex/acrosort/examples/choo/choo.pdf
+++ b/texmf-dist/doc/latex/acrosort/examples/choo/choo.pdf
Binary files differ
diff --git a/texmf-dist/doc/latex/acrosort/examples/choo/choo_package.pdf b/texmf-dist/doc/latex/acrosort/examples/choo/choo_package.pdf
index 47f921aa..cc93c517 100644
--- a/texmf-dist/doc/latex/acrosort/examples/choo/choo_package.pdf
+++ b/texmf-dist/doc/latex/acrosort/examples/choo/choo_package.pdf
Binary files differ
diff --git a/texmf-dist/doc/latex/acrosort/examples/choo/tg-choo.tex b/texmf-dist/doc/latex/acrosort/examples/choo/tg-choo.tex
new file mode 100644
index 00000000..c7c5e220
--- /dev/null
+++ b/texmf-dist/doc/latex/acrosort/examples/choo/tg-choo.tex
@@ -0,0 +1,12 @@
+\documentclass{article}
+% xelatex uses change options to wrttofiles and !packagefiles, while your at it
+% change pdfcreator=pdflatex to pdfcreator=xelatex
+\usepackage[!wrttofiles,packagefiles,pdfcreator=pdflatex]{tile-graphic}
+
+\setTileParams{4}{5}{choo}
+
+\begin{document}
+
+\tileTheGraphic
+
+\end{document} \ No newline at end of file
diff --git a/texmf-dist/doc/latex/acrosort/examples/emoji/MyEmoji.eps b/texmf-dist/doc/latex/acrosort/examples/emoji/MyEmoji.eps
new file mode 100644
index 00000000..1f650006
--- /dev/null
+++ b/texmf-dist/doc/latex/acrosort/examples/emoji/MyEmoji.eps
@@ -0,0 +1,8732 @@
+%!PS-Adobe-3.1 EPSF-3.0
+%ADO_DSC_Encoding: Windows Roman
+%%Title: MyEmoji.pdf
+%%Creator: Adobe Acrobat 20.9.0
+%%For: dpstory
+%%CreationDate: 6/12/2020, 9:18:11 AM
+%%BoundingBox: 0 0 360 360
+%%HiResBoundingBox: 0 0 360 360
+%%CropBox: 0 0 360 360
+%%LanguageLevel: 2
+%%DocumentNeededResources: (atend)
+%%DocumentSuppliedResources: (atend)
+%%DocumentNeededFeatures: (atend)
+%%DocumentSuppliedFeatures: (atend)
+%%DocumentData: Clean7Bit
+%%Pages: (atend)
+%%DocumentCustomColors: (atend)
+%%EndComments
+%%BeginDefaults
+%%ViewingOrientation: 1 0 0 1
+%%EndDefaults
+%%BeginProlog
+%%BeginResource: procset Adobe_AGM_Utils 1.0 0
+%%Version: 1.0 0
+%%Copyright: Copyright(C)2000-2006 Adobe Systems, Inc. All Rights Reserved.
+systemdict/setpacking known
+{currentpacking true setpacking}if
+userdict/Adobe_AGM_Utils 75 dict dup begin put
+/bdf
+{bind def}bind def
+/nd{null def}bdf
+/xdf
+{exch def}bdf
+/ldf
+{load def}bdf
+/ddf
+{put}bdf
+/xddf
+{3 -1 roll put}bdf
+/xpt
+{exch put}bdf
+/ndf
+{
+ exch dup where{
+ pop pop pop
+ }{
+ xdf
+ }ifelse
+}def
+/cdndf
+{
+ exch dup currentdict exch known{
+ pop pop
+ }{
+ exch def
+ }ifelse
+}def
+/gx
+{get exec}bdf
+/ps_level
+ /languagelevel where{
+ pop systemdict/languagelevel gx
+ }{
+ 1
+ }ifelse
+def
+/level2
+ ps_level 2 ge
+def
+/level3
+ ps_level 3 ge
+def
+/ps_version
+ {version cvr}stopped{-1}if
+def
+/set_gvm
+{currentglobal exch setglobal}bdf
+/reset_gvm
+{setglobal}bdf
+/makereadonlyarray
+{
+ /packedarray where{pop packedarray
+ }{
+ array astore readonly}ifelse
+}bdf
+/map_reserved_ink_name
+{
+ dup type/stringtype eq{
+ dup/Red eq{
+ pop(_Red_)
+ }{
+ dup/Green eq{
+ pop(_Green_)
+ }{
+ dup/Blue eq{
+ pop(_Blue_)
+ }{
+ dup()cvn eq{
+ pop(Process)
+ }if
+ }ifelse
+ }ifelse
+ }ifelse
+ }if
+}bdf
+/AGMUTIL_GSTATE 22 dict def
+/get_gstate
+{
+ AGMUTIL_GSTATE begin
+ /AGMUTIL_GSTATE_clr_spc currentcolorspace def
+ /AGMUTIL_GSTATE_clr_indx 0 def
+ /AGMUTIL_GSTATE_clr_comps 12 array def
+ mark currentcolor counttomark
+ {AGMUTIL_GSTATE_clr_comps AGMUTIL_GSTATE_clr_indx 3 -1 roll put
+ /AGMUTIL_GSTATE_clr_indx AGMUTIL_GSTATE_clr_indx 1 add def}repeat pop
+ /AGMUTIL_GSTATE_fnt rootfont def
+ /AGMUTIL_GSTATE_lw currentlinewidth def
+ /AGMUTIL_GSTATE_lc currentlinecap def
+ /AGMUTIL_GSTATE_lj currentlinejoin def
+ /AGMUTIL_GSTATE_ml currentmiterlimit def
+ currentdash/AGMUTIL_GSTATE_do xdf/AGMUTIL_GSTATE_da xdf
+ /AGMUTIL_GSTATE_sa currentstrokeadjust def
+ /AGMUTIL_GSTATE_clr_rnd currentcolorrendering def
+ /AGMUTIL_GSTATE_op currentoverprint def
+ /AGMUTIL_GSTATE_bg currentblackgeneration cvlit def
+ /AGMUTIL_GSTATE_ucr currentundercolorremoval cvlit def
+ currentcolortransfer cvlit/AGMUTIL_GSTATE_gy_xfer xdf cvlit/AGMUTIL_GSTATE_b_xfer xdf
+ cvlit/AGMUTIL_GSTATE_g_xfer xdf cvlit/AGMUTIL_GSTATE_r_xfer xdf
+ /AGMUTIL_GSTATE_ht currenthalftone def
+ /AGMUTIL_GSTATE_flt currentflat def
+ end
+}def
+/set_gstate
+{
+ AGMUTIL_GSTATE begin
+ AGMUTIL_GSTATE_clr_spc setcolorspace
+ AGMUTIL_GSTATE_clr_indx{AGMUTIL_GSTATE_clr_comps AGMUTIL_GSTATE_clr_indx 1 sub get
+ /AGMUTIL_GSTATE_clr_indx AGMUTIL_GSTATE_clr_indx 1 sub def}repeat setcolor
+ AGMUTIL_GSTATE_fnt setfont
+ AGMUTIL_GSTATE_lw setlinewidth
+ AGMUTIL_GSTATE_lc setlinecap
+ AGMUTIL_GSTATE_lj setlinejoin
+ AGMUTIL_GSTATE_ml setmiterlimit
+ AGMUTIL_GSTATE_da AGMUTIL_GSTATE_do setdash
+ AGMUTIL_GSTATE_sa setstrokeadjust
+ AGMUTIL_GSTATE_clr_rnd setcolorrendering
+ AGMUTIL_GSTATE_op setoverprint
+ AGMUTIL_GSTATE_bg cvx setblackgeneration
+ AGMUTIL_GSTATE_ucr cvx setundercolorremoval
+ AGMUTIL_GSTATE_r_xfer cvx AGMUTIL_GSTATE_g_xfer cvx AGMUTIL_GSTATE_b_xfer cvx
+ AGMUTIL_GSTATE_gy_xfer cvx setcolortransfer
+ AGMUTIL_GSTATE_ht/HalftoneType get dup 9 eq exch 100 eq or
+ {
+ currenthalftone/HalftoneType get AGMUTIL_GSTATE_ht/HalftoneType get ne
+ {
+ mark AGMUTIL_GSTATE_ht{sethalftone}stopped cleartomark
+ }if
+ }{
+ AGMUTIL_GSTATE_ht sethalftone
+ }ifelse
+ AGMUTIL_GSTATE_flt setflat
+ end
+}def
+/get_gstate_and_matrix
+{
+ AGMUTIL_GSTATE begin
+ /AGMUTIL_GSTATE_ctm matrix currentmatrix def
+ end
+ get_gstate
+}def
+/set_gstate_and_matrix
+{
+ set_gstate
+ AGMUTIL_GSTATE begin
+ AGMUTIL_GSTATE_ctm setmatrix
+ end
+}def
+/AGMUTIL_str256 256 string def
+/AGMUTIL_src256 256 string def
+/AGMUTIL_dst64 64 string def
+/AGMUTIL_srcLen nd
+/AGMUTIL_ndx nd
+/AGMUTIL_cpd nd
+/capture_cpd{
+ //Adobe_AGM_Utils/AGMUTIL_cpd currentpagedevice ddf
+}def
+/thold_halftone
+{
+ level3
+ {sethalftone currenthalftone}
+ {
+ dup/HalftoneType get 3 eq
+ {
+ sethalftone currenthalftone
+ }{
+ begin
+ Width Height mul{
+ Thresholds read{pop}if
+ }repeat
+ end
+ currenthalftone
+ }ifelse
+ }ifelse
+}def
+/rdcmntline
+{
+ currentfile AGMUTIL_str256 readline pop
+ (%)anchorsearch{pop}if
+}bdf
+/filter_cmyk
+{
+ dup type/filetype ne{
+ exch()/SubFileDecode filter
+ }{
+ exch pop
+ }
+ ifelse
+ [
+ exch
+ {
+ AGMUTIL_src256 readstring pop
+ dup length/AGMUTIL_srcLen exch def
+ /AGMUTIL_ndx 0 def
+ AGMCORE_plate_ndx 4 AGMUTIL_srcLen 1 sub{
+ 1 index exch get
+ AGMUTIL_dst64 AGMUTIL_ndx 3 -1 roll put
+ /AGMUTIL_ndx AGMUTIL_ndx 1 add def
+ }for
+ pop
+ AGMUTIL_dst64 0 AGMUTIL_ndx getinterval
+ }
+ bind
+ /exec cvx
+ ]cvx
+}bdf
+/filter_indexed_devn
+{
+ cvi Names length mul names_index add Lookup exch get
+}bdf
+/filter_devn
+{
+ 4 dict begin
+ /srcStr xdf
+ /dstStr xdf
+ dup type/filetype ne{
+ 0()/SubFileDecode filter
+ }if
+ [
+ exch
+ [
+ /devicen_colorspace_dict/AGMCORE_gget cvx/begin cvx
+ currentdict/srcStr get/readstring cvx/pop cvx
+ /dup cvx/length cvx 0/gt cvx[
+ Adobe_AGM_Utils/AGMUTIL_ndx 0/ddf cvx
+ names_index Names length currentdict/srcStr get length 1 sub{
+ 1/index cvx/exch cvx/get cvx
+ currentdict/dstStr get/AGMUTIL_ndx/load cvx 3 -1/roll cvx/put cvx
+ Adobe_AGM_Utils/AGMUTIL_ndx/AGMUTIL_ndx/load cvx 1/add cvx/ddf cvx
+ }for
+ currentdict/dstStr get 0/AGMUTIL_ndx/load cvx/getinterval cvx
+ ]cvx/if cvx
+ /end cvx
+ ]cvx
+ bind
+ /exec cvx
+ ]cvx
+ end
+}bdf
+/AGMUTIL_imagefile nd
+/read_image_file
+{
+ AGMUTIL_imagefile 0 setfileposition
+ 10 dict begin
+ /imageDict xdf
+ /imbufLen Width BitsPerComponent mul 7 add 8 idiv def
+ /imbufIdx 0 def
+ /origDataSource imageDict/DataSource get def
+ /origMultipleDataSources imageDict/MultipleDataSources get def
+ /origDecode imageDict/Decode get def
+ /dstDataStr imageDict/Width get colorSpaceElemCnt mul string def
+ imageDict/MultipleDataSources known{MultipleDataSources}{false}ifelse
+ {
+ /imbufCnt imageDict/DataSource get length def
+ /imbufs imbufCnt array def
+ 0 1 imbufCnt 1 sub{
+ /imbufIdx xdf
+ imbufs imbufIdx imbufLen string put
+ imageDict/DataSource get imbufIdx[AGMUTIL_imagefile imbufs imbufIdx get/readstring cvx/pop cvx]cvx put
+ }for
+ DeviceN_PS2{
+ imageDict begin
+ /DataSource[DataSource/devn_sep_datasource cvx]cvx def
+ /MultipleDataSources false def
+ /Decode[0 1]def
+ end
+ }if
+ }{
+ /imbuf imbufLen string def
+ Indexed_DeviceN level3 not and DeviceN_NoneName or{
+ /srcDataStrs[imageDict begin
+ currentdict/MultipleDataSources known{MultipleDataSources{DataSource length}{1}ifelse}{1}ifelse
+ {
+ Width Decode length 2 div mul cvi string
+ }repeat
+ end]def
+ imageDict begin
+ /DataSource[AGMUTIL_imagefile Decode BitsPerComponent false 1/filter_indexed_devn load dstDataStr srcDataStrs devn_alt_datasource/exec cvx]cvx def
+ /Decode[0 1]def
+ end
+ }{
+ imageDict/DataSource[1 string dup 0 AGMUTIL_imagefile Decode length 2 idiv string/readstring cvx/pop cvx names_index/get cvx/put cvx]cvx put
+ imageDict/Decode[0 1]put
+ }ifelse
+ }ifelse
+ imageDict exch
+ load exec
+ imageDict/DataSource origDataSource put
+ imageDict/MultipleDataSources origMultipleDataSources put
+ imageDict/Decode origDecode put
+ end
+}bdf
+/write_image_file
+{
+ begin
+ {(AGMUTIL_imagefile)(w+)file}stopped{
+ false
+ }{
+ Adobe_AGM_Utils/AGMUTIL_imagefile xddf
+ 2 dict begin
+ /imbufLen Width BitsPerComponent mul 7 add 8 idiv def
+ MultipleDataSources{DataSource 0 get}{DataSource}ifelse type/filetype eq{
+ /imbuf imbufLen string def
+ }if
+ 1 1 Height MultipleDataSources not{Decode length 2 idiv mul}if{
+ pop
+ MultipleDataSources{
+ 0 1 DataSource length 1 sub{
+ DataSource type dup
+ /arraytype eq{
+ pop DataSource exch gx
+ }{
+ /filetype eq{
+ DataSource exch get imbuf readstring pop
+ }{
+ DataSource exch get
+ }ifelse
+ }ifelse
+ AGMUTIL_imagefile exch writestring
+ }for
+ }{
+ DataSource type dup
+ /arraytype eq{
+ pop DataSource exec
+ }{
+ /filetype eq{
+ DataSource imbuf readstring pop
+ }{
+ DataSource
+ }ifelse
+ }ifelse
+ AGMUTIL_imagefile exch writestring
+ }ifelse
+ }for
+ end
+ true
+ }ifelse
+ end
+}bdf
+/close_image_file
+{
+ AGMUTIL_imagefile closefile(AGMUTIL_imagefile)deletefile
+}def
+statusdict/product known userdict/AGMP_current_show known not and{
+ /pstr statusdict/product get def
+ pstr(HP LaserJet 2200)eq
+ pstr(HP LaserJet 4000 Series)eq or
+ pstr(HP LaserJet 4050 Series )eq or
+ pstr(HP LaserJet 8000 Series)eq or
+ pstr(HP LaserJet 8100 Series)eq or
+ pstr(HP LaserJet 8150 Series)eq or
+ pstr(HP LaserJet 5000 Series)eq or
+ pstr(HP LaserJet 5100 Series)eq or
+ pstr(HP Color LaserJet 4500)eq or
+ pstr(HP Color LaserJet 4600)eq or
+ pstr(HP LaserJet 5Si)eq or
+ pstr(HP LaserJet 1200 Series)eq or
+ pstr(HP LaserJet 1300 Series)eq or
+ pstr(HP LaserJet 4100 Series)eq or
+ {
+ userdict/AGMP_current_show/show load put
+ userdict/show{
+ currentcolorspace 0 get
+ /Pattern eq
+ {false charpath f}
+ {AGMP_current_show}ifelse
+ }put
+ }if
+ currentdict/pstr undef
+}if
+/consumeimagedata
+{
+ begin
+ AGMIMG_init_common
+ currentdict/MultipleDataSources known not
+ {/MultipleDataSources false def}if
+ MultipleDataSources
+ {
+ DataSource 0 get type
+ dup/filetype eq
+ {
+ 1 dict begin
+ /flushbuffer Width cvi string def
+ 1 1 Height cvi
+ {
+ pop
+ 0 1 DataSource length 1 sub
+ {
+ DataSource exch get
+ flushbuffer readstring pop pop
+ }for
+ }for
+ end
+ }if
+ dup/arraytype eq exch/packedarraytype eq or DataSource 0 get xcheck and
+ {
+ Width Height mul cvi
+ {
+ 0 1 DataSource length 1 sub
+ {dup DataSource exch gx length exch 0 ne{pop}if}for
+ dup 0 eq
+ {pop exit}if
+ sub dup 0 le
+ {exit}if
+ }loop
+ pop
+ }if
+ }
+ {
+ /DataSource load type
+ dup/filetype eq
+ {
+ 1 dict begin
+ /flushbuffer Width Decode length 2 idiv mul cvi string def
+ 1 1 Height{pop DataSource flushbuffer readstring pop pop}for
+ end
+ }if
+ dup/arraytype eq exch/packedarraytype eq or/DataSource load xcheck and
+ {
+ Height Width BitsPerComponent mul 8 BitsPerComponent sub add 8 idiv Decode length 2 idiv mul mul
+ {
+ DataSource length dup 0 eq
+ {pop exit}if
+ sub dup 0 le
+ {exit}if
+ }loop
+ pop
+ }if
+ }ifelse
+ end
+}bdf
+/addprocs
+{
+ 2{/exec load}repeat
+ 3 1 roll
+ [5 1 roll]bind cvx
+}def
+/modify_halftone_xfer
+{
+ currenthalftone dup length dict copy begin
+ currentdict 2 index known{
+ 1 index load dup length dict copy begin
+ currentdict/TransferFunction known{
+ /TransferFunction load
+ }{
+ currenttransfer
+ }ifelse
+ addprocs/TransferFunction xdf
+ currentdict end def
+ currentdict end sethalftone
+ }{
+ currentdict/TransferFunction known{
+ /TransferFunction load
+ }{
+ currenttransfer
+ }ifelse
+ addprocs/TransferFunction xdf
+ currentdict end sethalftone
+ pop
+ }ifelse
+}def
+/clonearray
+{
+ dup xcheck exch
+ dup length array exch
+ Adobe_AGM_Core/AGMCORE_tmp -1 ddf
+ {
+ Adobe_AGM_Core/AGMCORE_tmp 2 copy get 1 add ddf
+ dup type/dicttype eq
+ {
+ Adobe_AGM_Core/AGMCORE_tmp get
+ exch
+ clonedict
+ Adobe_AGM_Core/AGMCORE_tmp 4 -1 roll ddf
+ }if
+ dup type/arraytype eq
+ {
+ Adobe_AGM_Core/AGMCORE_tmp get exch
+ clonearray
+ Adobe_AGM_Core/AGMCORE_tmp 4 -1 roll ddf
+ }if
+ exch dup
+ Adobe_AGM_Core/AGMCORE_tmp get 4 -1 roll put
+ }forall
+ exch{cvx}if
+}bdf
+/clonedict
+{
+ dup length dict
+ begin
+ {
+ dup type/dicttype eq
+ {clonedict}if
+ dup type/arraytype eq
+ {clonearray}if
+ def
+ }forall
+ currentdict
+ end
+}bdf
+/DeviceN_PS2
+{
+ /currentcolorspace AGMCORE_gget 0 get/DeviceN eq level3 not and
+}bdf
+/Indexed_DeviceN
+{
+ /indexed_colorspace_dict AGMCORE_gget dup null ne{
+ dup/CSDBase known{
+ /CSDBase get/CSD get_res/Names known
+ }{
+ pop false
+ }ifelse
+ }{
+ pop false
+ }ifelse
+}bdf
+/DeviceN_NoneName
+{
+ /Names where{
+ pop
+ false Names
+ {
+ (None)eq or
+ }forall
+ }{
+ false
+ }ifelse
+}bdf
+/DeviceN_PS2_inRip_seps
+{
+ /AGMCORE_in_rip_sep where
+ {
+ pop dup type dup/arraytype eq exch/packedarraytype eq or
+ {
+ dup 0 get/DeviceN eq level3 not and AGMCORE_in_rip_sep and
+ {
+ /currentcolorspace exch AGMCORE_gput
+ false
+ }{
+ true
+ }ifelse
+ }{
+ true
+ }ifelse
+ }{
+ true
+ }ifelse
+}bdf
+/base_colorspace_type
+{
+ dup type/arraytype eq{0 get}if
+}bdf
+/currentdistillerparams where{pop currentdistillerparams/CoreDistVersion get 5000 lt}{true}ifelse
+{
+ /pdfmark_5{cleartomark}bind def
+}{
+ /pdfmark_5{pdfmark}bind def
+}ifelse
+/ReadBypdfmark_5
+{
+ currentfile exch 0 exch/SubFileDecode filter
+ /currentdistillerparams where
+ {pop currentdistillerparams/CoreDistVersion get 5000 lt}{true}ifelse
+ {flushfile cleartomark}
+ {/PUT pdfmark}ifelse
+}bdf
+/ReadBypdfmark_5_string
+{
+ 2 dict begin
+ /makerString exch def string/tmpString exch def
+ {
+ currentfile tmpString readline not{pop exit}if
+ makerString anchorsearch
+ {
+ pop pop cleartomark exit
+ }{
+ 3 copy/PUT pdfmark_5 pop 2 copy(\n)/PUT pdfmark_5
+ }ifelse
+ }loop
+ end
+}bdf
+/xpdfm
+{
+ {
+ dup 0 get/Label eq
+ {
+ aload length[exch 1 add 1 roll/PAGELABEL
+ }{
+ aload pop
+ [{ThisPage}<<5 -2 roll>>/PUT
+ }ifelse
+ pdfmark_5
+ }forall
+}bdf
+/lmt{
+ dup 2 index le{exch}if pop dup 2 index ge{exch}if pop
+}bdf
+/int{
+ dup 2 index sub 3 index 5 index sub div 6 -2 roll sub mul exch pop add exch pop
+}bdf
+/ds{
+ Adobe_AGM_Utils begin
+}bdf
+/dt{
+ currentdict Adobe_AGM_Utils eq{
+ end
+ }if
+}bdf
+systemdict/setpacking known
+{setpacking}if
+%%EndResource
+%%BeginResource: procset Adobe_AGM_Core 2.0 0
+%%Version: 2.0 0
+%%Copyright: Copyright(C)1997-2007 Adobe Systems, Inc. All Rights Reserved.
+systemdict/setpacking known
+{
+ currentpacking
+ true setpacking
+}if
+userdict/Adobe_AGM_Core 209 dict dup begin put
+/Adobe_AGM_Core_Id/Adobe_AGM_Core_2.0_0 def
+/AGMCORE_str256 256 string def
+/AGMCORE_save nd
+/AGMCORE_graphicsave nd
+/AGMCORE_c 0 def
+/AGMCORE_m 0 def
+/AGMCORE_y 0 def
+/AGMCORE_k 0 def
+/AGMCORE_cmykbuf 4 array def
+/AGMCORE_screen[currentscreen]cvx def
+/AGMCORE_tmp 0 def
+/AGMCORE_&setgray nd
+/AGMCORE_&setcolor nd
+/AGMCORE_&setcolorspace nd
+/AGMCORE_&setcmykcolor nd
+/AGMCORE_cyan_plate nd
+/AGMCORE_magenta_plate nd
+/AGMCORE_yellow_plate nd
+/AGMCORE_black_plate nd
+/AGMCORE_plate_ndx nd
+/AGMCORE_get_ink_data nd
+/AGMCORE_is_cmyk_sep nd
+/AGMCORE_host_sep nd
+/AGMCORE_avoid_L2_sep_space nd
+/AGMCORE_distilling nd
+/AGMCORE_composite_job nd
+/AGMCORE_producing_seps nd
+/AGMCORE_ps_level -1 def
+/AGMCORE_ps_version -1 def
+/AGMCORE_environ_ok nd
+/AGMCORE_CSD_cache 0 dict def
+/AGMCORE_currentoverprint false def
+/AGMCORE_deltaX nd
+/AGMCORE_deltaY nd
+/AGMCORE_name nd
+/AGMCORE_sep_special nd
+/AGMCORE_err_strings 4 dict def
+/AGMCORE_cur_err nd
+/AGMCORE_current_spot_alias false def
+/AGMCORE_inverting false def
+/AGMCORE_feature_dictCount nd
+/AGMCORE_feature_opCount nd
+/AGMCORE_feature_ctm nd
+/AGMCORE_ConvertToProcess false def
+/AGMCORE_Default_CTM matrix def
+/AGMCORE_Default_PageSize nd
+/AGMCORE_Default_flatness nd
+/AGMCORE_currentbg nd
+/AGMCORE_currentucr nd
+/AGMCORE_pattern_paint_type 0 def
+/knockout_unitsq nd
+currentglobal true setglobal
+[/CSA/Gradient/Procedure]
+{
+ /Generic/Category findresource dup length dict copy/Category defineresource pop
+}forall
+setglobal
+/AGMCORE_key_known
+{
+ where{
+ /Adobe_AGM_Core_Id known
+ }{
+ false
+ }ifelse
+}ndf
+/flushinput
+{
+ save
+ 2 dict begin
+ /CompareBuffer 3 -1 roll def
+ /readbuffer 256 string def
+ mark
+ {
+ currentfile readbuffer{readline}stopped
+ {cleartomark mark}
+ {
+ not
+ {pop exit}
+ if
+ CompareBuffer eq
+ {exit}
+ if
+ }ifelse
+ }loop
+ cleartomark
+ end
+ restore
+}bdf
+/getspotfunction
+{
+ AGMCORE_screen exch pop exch pop
+ dup type/dicttype eq{
+ dup/HalftoneType get 1 eq{
+ /SpotFunction get
+ }{
+ dup/HalftoneType get 2 eq{
+ /GraySpotFunction get
+ }{
+ pop
+ {
+ abs exch abs 2 copy add 1 gt{
+ 1 sub dup mul exch 1 sub dup mul add 1 sub
+ }{
+ dup mul exch dup mul add 1 exch sub
+ }ifelse
+ }bind
+ }ifelse
+ }ifelse
+ }if
+}def
+/np
+{newpath}bdf
+/clp_npth
+{clip np}def
+/eoclp_npth
+{eoclip np}def
+/npth_clp
+{np clip}def
+/graphic_setup
+{
+ /AGMCORE_graphicsave save store
+ concat
+ 0 setgray
+ 0 setlinecap
+ 0 setlinejoin
+ 1 setlinewidth
+ []0 setdash
+ 10 setmiterlimit
+ np
+ false setoverprint
+ false setstrokeadjust
+ //Adobe_AGM_Core/spot_alias gx
+ /Adobe_AGM_Image where{
+ pop
+ Adobe_AGM_Image/spot_alias 2 copy known{
+ gx
+ }{
+ pop pop
+ }ifelse
+ }if
+ /sep_colorspace_dict null AGMCORE_gput
+ 100 dict begin
+ /dictstackcount countdictstack def
+ /showpage{}def
+ mark
+}def
+/graphic_cleanup
+{
+ cleartomark
+ dictstackcount 1 countdictstack 1 sub{end}for
+ end
+ AGMCORE_graphicsave restore
+}def
+/compose_error_msg
+{
+ grestoreall initgraphics
+ /Helvetica findfont 10 scalefont setfont
+ /AGMCORE_deltaY 100 def
+ /AGMCORE_deltaX 310 def
+ clippath pathbbox np pop pop 36 add exch 36 add exch moveto
+ 0 AGMCORE_deltaY rlineto AGMCORE_deltaX 0 rlineto
+ 0 AGMCORE_deltaY neg rlineto AGMCORE_deltaX neg 0 rlineto closepath
+ 0 AGMCORE_&setgray
+ gsave 1 AGMCORE_&setgray fill grestore
+ 1 setlinewidth gsave stroke grestore
+ currentpoint AGMCORE_deltaY 15 sub add exch 8 add exch moveto
+ /AGMCORE_deltaY 12 def
+ /AGMCORE_tmp 0 def
+ AGMCORE_err_strings exch get
+ {
+ dup 32 eq
+ {
+ pop
+ AGMCORE_str256 0 AGMCORE_tmp getinterval
+ stringwidth pop currentpoint pop add AGMCORE_deltaX 28 add gt
+ {
+ currentpoint AGMCORE_deltaY sub exch pop
+ clippath pathbbox pop pop pop 44 add exch moveto
+ }if
+ AGMCORE_str256 0 AGMCORE_tmp getinterval show( )show
+ 0 1 AGMCORE_str256 length 1 sub
+ {
+ AGMCORE_str256 exch 0 put
+ }for
+ /AGMCORE_tmp 0 def
+ }{
+ AGMCORE_str256 exch AGMCORE_tmp xpt
+ /AGMCORE_tmp AGMCORE_tmp 1 add def
+ }ifelse
+ }forall
+}bdf
+/AGMCORE_CMYKDeviceNColorspaces[
+ [/Separation/None/DeviceCMYK{0 0 0}]
+ [/Separation(Black)/DeviceCMYK{0 0 0 4 -1 roll}bind]
+ [/Separation(Yellow)/DeviceCMYK{0 0 3 -1 roll 0}bind]
+ [/DeviceN[(Yellow)(Black)]/DeviceCMYK{0 0 4 2 roll}bind]
+ [/Separation(Magenta)/DeviceCMYK{0 exch 0 0}bind]
+ [/DeviceN[(Magenta)(Black)]/DeviceCMYK{0 3 1 roll 0 exch}bind]
+ [/DeviceN[(Magenta)(Yellow)]/DeviceCMYK{0 3 1 roll 0}bind]
+ [/DeviceN[(Magenta)(Yellow)(Black)]/DeviceCMYK{0 4 1 roll}bind]
+ [/Separation(Cyan)/DeviceCMYK{0 0 0}]
+ [/DeviceN[(Cyan)(Black)]/DeviceCMYK{0 0 3 -1 roll}bind]
+ [/DeviceN[(Cyan)(Yellow)]/DeviceCMYK{0 exch 0}bind]
+ [/DeviceN[(Cyan)(Yellow)(Black)]/DeviceCMYK{0 3 1 roll}bind]
+ [/DeviceN[(Cyan)(Magenta)]/DeviceCMYK{0 0}]
+ [/DeviceN[(Cyan)(Magenta)(Black)]/DeviceCMYK{0 exch}bind]
+ [/DeviceN[(Cyan)(Magenta)(Yellow)]/DeviceCMYK{0}]
+ [/DeviceCMYK]
+]def
+/ds{
+ Adobe_AGM_Core begin
+ /currentdistillerparams where
+ {
+ pop currentdistillerparams/CoreDistVersion get 5000 lt
+ {<</DetectBlends false>>setdistillerparams}if
+ }if
+ /AGMCORE_ps_version xdf
+ /AGMCORE_ps_level xdf
+ errordict/AGM_handleerror known not{
+ errordict/AGM_handleerror errordict/handleerror get put
+ errordict/handleerror{
+ Adobe_AGM_Core begin
+ $error/newerror get AGMCORE_cur_err null ne and{
+ $error/newerror false put
+ AGMCORE_cur_err compose_error_msg
+ }if
+ $error/newerror true put
+ end
+ errordict/AGM_handleerror get exec
+ }bind put
+ }if
+ /AGMCORE_environ_ok
+ ps_level AGMCORE_ps_level ge
+ ps_version AGMCORE_ps_version ge and
+ AGMCORE_ps_level -1 eq or
+ def
+ AGMCORE_environ_ok not
+ {/AGMCORE_cur_err/AGMCORE_bad_environ def}if
+ /AGMCORE_&setgray systemdict/setgray get def
+ level2{
+ /AGMCORE_&setcolor systemdict/setcolor get def
+ /AGMCORE_&setcolorspace systemdict/setcolorspace get def
+ }if
+ /AGMCORE_currentbg currentblackgeneration def
+ /AGMCORE_currentucr currentundercolorremoval def
+ /AGMCORE_Default_flatness currentflat def
+ /AGMCORE_distilling
+ /product where{
+ pop systemdict/setdistillerparams known product(Adobe PostScript Parser)ne and
+ }{
+ false
+ }ifelse
+ def
+ /AGMCORE_GSTATE AGMCORE_key_known not{
+ /AGMCORE_GSTATE 21 dict def
+ /AGMCORE_tmpmatrix matrix def
+ /AGMCORE_gstack 64 array def
+ /AGMCORE_gstackptr 0 def
+ /AGMCORE_gstacksaveptr 0 def
+ /AGMCORE_gstackframekeys 14 def
+ /AGMCORE_&gsave/gsave ldf
+ /AGMCORE_&grestore/grestore ldf
+ /AGMCORE_&grestoreall/grestoreall ldf
+ /AGMCORE_&save/save ldf
+ /AGMCORE_&setoverprint/setoverprint ldf
+ /AGMCORE_gdictcopy{
+ begin
+ {def}forall
+ end
+ }def
+ /AGMCORE_gput{
+ AGMCORE_gstack AGMCORE_gstackptr get
+ 3 1 roll
+ put
+ }def
+ /AGMCORE_gget{
+ AGMCORE_gstack AGMCORE_gstackptr get
+ exch
+ get
+ }def
+ /gsave{
+ AGMCORE_&gsave
+ AGMCORE_gstack AGMCORE_gstackptr get
+ AGMCORE_gstackptr 1 add
+ dup 64 ge{limitcheck}if
+ /AGMCORE_gstackptr exch store
+ AGMCORE_gstack AGMCORE_gstackptr get
+ AGMCORE_gdictcopy
+ }def
+ /grestore{
+ AGMCORE_&grestore
+ AGMCORE_gstackptr 1 sub
+ dup AGMCORE_gstacksaveptr lt{1 add}if
+ dup AGMCORE_gstack exch get dup/AGMCORE_currentoverprint known
+ {/AGMCORE_currentoverprint get setoverprint}{pop}ifelse
+ /AGMCORE_gstackptr exch store
+ }def
+ /grestoreall{
+ AGMCORE_&grestoreall
+ /AGMCORE_gstackptr AGMCORE_gstacksaveptr store
+ }def
+ /save{
+ AGMCORE_&save
+ AGMCORE_gstack AGMCORE_gstackptr get
+ AGMCORE_gstackptr 1 add
+ dup 64 ge{limitcheck}if
+ /AGMCORE_gstackptr exch store
+ /AGMCORE_gstacksaveptr AGMCORE_gstackptr store
+ AGMCORE_gstack AGMCORE_gstackptr get
+ AGMCORE_gdictcopy
+ }def
+ /setoverprint{
+ dup/AGMCORE_currentoverprint exch AGMCORE_gput AGMCORE_&setoverprint
+ }def
+ 0 1 AGMCORE_gstack length 1 sub{
+ AGMCORE_gstack exch AGMCORE_gstackframekeys dict put
+ }for
+ }if
+ level3/AGMCORE_&sysshfill AGMCORE_key_known not and
+ {
+ /AGMCORE_&sysshfill systemdict/shfill get def
+ /AGMCORE_&sysmakepattern systemdict/makepattern get def
+ /AGMCORE_&usrmakepattern/makepattern load def
+ }if
+ /currentcmykcolor[0 0 0 0]AGMCORE_gput
+ /currentstrokeadjust false AGMCORE_gput
+ /currentcolorspace[/DeviceGray]AGMCORE_gput
+ /sep_tint 0 AGMCORE_gput
+ /devicen_tints[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]AGMCORE_gput
+ /sep_colorspace_dict null AGMCORE_gput
+ /devicen_colorspace_dict null AGMCORE_gput
+ /indexed_colorspace_dict null AGMCORE_gput
+ /currentcolor_intent()AGMCORE_gput
+ /customcolor_tint 1 AGMCORE_gput
+ /absolute_colorimetric_crd null AGMCORE_gput
+ /relative_colorimetric_crd null AGMCORE_gput
+ /saturation_crd null AGMCORE_gput
+ /perceptual_crd null AGMCORE_gput
+ currentcolortransfer cvlit/AGMCore_gray_xfer xdf cvlit/AGMCore_b_xfer xdf
+ cvlit/AGMCore_g_xfer xdf cvlit/AGMCore_r_xfer xdf
+ <<
+ /MaxPatternItem currentsystemparams/MaxPatternCache get
+ >>
+ setuserparams
+ end
+}def
+/ps
+{
+ /setcmykcolor where{
+ pop
+ Adobe_AGM_Core/AGMCORE_&setcmykcolor/setcmykcolor load put
+ }if
+ Adobe_AGM_Core begin
+ /setcmykcolor
+ {
+ 4 copy AGMCORE_cmykbuf astore/currentcmykcolor exch AGMCORE_gput
+ 1 sub 4 1 roll
+ 3{
+ 3 index add neg dup 0 lt{
+ pop 0
+ }if
+ 3 1 roll
+ }repeat
+ setrgbcolor pop
+ }ndf
+ /currentcmykcolor
+ {
+ /currentcmykcolor AGMCORE_gget aload pop
+ }ndf
+ /setoverprint
+ {pop}ndf
+ /currentoverprint
+ {false}ndf
+ /AGMCORE_cyan_plate 1 0 0 0 test_cmyk_color_plate def
+ /AGMCORE_magenta_plate 0 1 0 0 test_cmyk_color_plate def
+ /AGMCORE_yellow_plate 0 0 1 0 test_cmyk_color_plate def
+ /AGMCORE_black_plate 0 0 0 1 test_cmyk_color_plate def
+ /AGMCORE_plate_ndx
+ AGMCORE_cyan_plate{
+ 0
+ }{
+ AGMCORE_magenta_plate{
+ 1
+ }{
+ AGMCORE_yellow_plate{
+ 2
+ }{
+ AGMCORE_black_plate{
+ 3
+ }{
+ 4
+ }ifelse
+ }ifelse
+ }ifelse
+ }ifelse
+ def
+ /AGMCORE_have_reported_unsupported_color_space false def
+ /AGMCORE_report_unsupported_color_space
+ {
+ AGMCORE_have_reported_unsupported_color_space false eq
+ {
+ (Warning: Job contains content that cannot be separated with on-host methods. This content appears on the black plate, and knocks out all other plates.)==
+ Adobe_AGM_Core/AGMCORE_have_reported_unsupported_color_space true ddf
+ }if
+ }def
+ /AGMCORE_composite_job
+ AGMCORE_cyan_plate AGMCORE_magenta_plate and AGMCORE_yellow_plate and AGMCORE_black_plate and def
+ /AGMCORE_in_rip_sep
+ /AGMCORE_in_rip_sep where{
+ pop AGMCORE_in_rip_sep
+ }{
+ AGMCORE_distilling
+ {
+ false
+ }{
+ userdict/Adobe_AGM_OnHost_Seps known{
+ false
+ }{
+ level2{
+ currentpagedevice/Separations 2 copy known{
+ get
+ }{
+ pop pop false
+ }ifelse
+ }{
+ false
+ }ifelse
+ }ifelse
+ }ifelse
+ }ifelse
+ def
+ /AGMCORE_producing_seps AGMCORE_composite_job not AGMCORE_in_rip_sep or def
+ /AGMCORE_host_sep AGMCORE_producing_seps AGMCORE_in_rip_sep not and def
+ /AGM_preserve_spots
+ /AGM_preserve_spots where{
+ pop AGM_preserve_spots
+ }{
+ AGMCORE_distilling AGMCORE_producing_seps or
+ }ifelse
+ def
+ /AGM_is_distiller_preserving_spotimages
+ {
+ currentdistillerparams/PreserveOverprintSettings known
+ {
+ currentdistillerparams/PreserveOverprintSettings get
+ {
+ currentdistillerparams/ColorConversionStrategy known
+ {
+ currentdistillerparams/ColorConversionStrategy get
+ /sRGB ne
+ }{
+ true
+ }ifelse
+ }{
+ false
+ }ifelse
+ }{
+ false
+ }ifelse
+ }def
+ /convert_spot_to_process where{pop}{
+ /convert_spot_to_process
+ {
+ //Adobe_AGM_Core begin
+ dup map_alias{
+ /Name get exch pop
+ }if
+ dup dup(None)eq exch(All)eq or
+ {
+ pop false
+ }{
+ AGMCORE_host_sep
+ {
+ gsave
+ 1 0 0 0 setcmykcolor currentgray 1 exch sub
+ 0 1 0 0 setcmykcolor currentgray 1 exch sub
+ 0 0 1 0 setcmykcolor currentgray 1 exch sub
+ 0 0 0 1 setcmykcolor currentgray 1 exch sub
+ add add add 0 eq
+ {
+ pop false
+ }{
+ false setoverprint
+ current_spot_alias false set_spot_alias
+ 1 1 1 1 6 -1 roll findcmykcustomcolor 1 setcustomcolor
+ set_spot_alias
+ currentgray 1 ne
+ }ifelse
+ grestore
+ }{
+ AGMCORE_distilling
+ {
+ pop AGM_is_distiller_preserving_spotimages not
+ }{
+ //Adobe_AGM_Core/AGMCORE_name xddf
+ false
+ //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 0 eq
+ AGMUTIL_cpd/OverrideSeparations known and
+ {
+ AGMUTIL_cpd/OverrideSeparations get
+ {
+ /HqnSpots/ProcSet resourcestatus
+ {
+ pop pop pop true
+ }if
+ }if
+ }if
+ {
+ AGMCORE_name/HqnSpots/ProcSet findresource/TestSpot gx not
+ }{
+ gsave
+ [/Separation AGMCORE_name/DeviceGray{}]AGMCORE_&setcolorspace
+ false
+ AGMUTIL_cpd/SeparationColorNames 2 copy known
+ {
+ get
+ {AGMCORE_name eq or}forall
+ not
+ }{
+ pop pop pop true
+ }ifelse
+ grestore
+ }ifelse
+ }ifelse
+ }ifelse
+ }ifelse
+ end
+ }def
+ }ifelse
+ /convert_to_process where{pop}{
+ /convert_to_process
+ {
+ dup length 0 eq
+ {
+ pop false
+ }{
+ AGMCORE_host_sep
+ {
+ dup true exch
+ {
+ dup(Cyan)eq exch
+ dup(Magenta)eq 3 -1 roll or exch
+ dup(Yellow)eq 3 -1 roll or exch
+ dup(Black)eq 3 -1 roll or
+ {pop}
+ {convert_spot_to_process and}ifelse
+ }
+ forall
+ {
+ true exch
+ {
+ dup(Cyan)eq exch
+ dup(Magenta)eq 3 -1 roll or exch
+ dup(Yellow)eq 3 -1 roll or exch
+ (Black)eq or and
+ }forall
+ not
+ }{pop false}ifelse
+ }{
+ false exch
+ {
+ /PhotoshopDuotoneList where{pop false}{true}ifelse
+ {
+ dup(Cyan)eq exch
+ dup(Magenta)eq 3 -1 roll or exch
+ dup(Yellow)eq 3 -1 roll or exch
+ dup(Black)eq 3 -1 roll or
+ {pop}
+ {convert_spot_to_process or}ifelse
+ }
+ {
+ convert_spot_to_process or
+ }
+ ifelse
+ }
+ forall
+ }ifelse
+ }ifelse
+ }def
+ }ifelse
+ /AGMCORE_avoid_L2_sep_space
+ version cvr 2012 lt
+ level2 and
+ AGMCORE_producing_seps not and
+ def
+ /AGMCORE_is_cmyk_sep
+ AGMCORE_cyan_plate AGMCORE_magenta_plate or AGMCORE_yellow_plate or AGMCORE_black_plate or
+ def
+ /AGM_avoid_0_cmyk where{
+ pop AGM_avoid_0_cmyk
+ }{
+ AGM_preserve_spots
+ userdict/Adobe_AGM_OnHost_Seps known
+ userdict/Adobe_AGM_InRip_Seps known or
+ not and
+ }ifelse
+ {
+ /setcmykcolor[
+ {
+ 4 copy add add add 0 eq currentoverprint and{
+ pop 0.0005
+ }if
+ }/exec cvx
+ /AGMCORE_&setcmykcolor load dup type/operatortype ne{
+ /exec cvx
+ }if
+ ]cvx def
+ }if
+ /AGMCORE_IsSeparationAProcessColor
+ {
+ dup(Cyan)eq exch dup(Magenta)eq exch dup(Yellow)eq exch(Black)eq or or or
+ }def
+ AGMCORE_host_sep{
+ /setcolortransfer
+ {
+ AGMCORE_cyan_plate{
+ pop pop pop
+ }{
+ AGMCORE_magenta_plate{
+ 4 3 roll pop pop pop
+ }{
+ AGMCORE_yellow_plate{
+ 4 2 roll pop pop pop
+ }{
+ 4 1 roll pop pop pop
+ }ifelse
+ }ifelse
+ }ifelse
+ settransfer
+ }
+ def
+ /AGMCORE_get_ink_data
+ AGMCORE_cyan_plate{
+ {pop pop pop}
+ }{
+ AGMCORE_magenta_plate{
+ {4 3 roll pop pop pop}
+ }{
+ AGMCORE_yellow_plate{
+ {4 2 roll pop pop pop}
+ }{
+ {4 1 roll pop pop pop}
+ }ifelse
+ }ifelse
+ }ifelse
+ def
+ /AGMCORE_RemoveProcessColorNames
+ {
+ 1 dict begin
+ /filtername
+ {
+ dup/Cyan eq 1 index(Cyan)eq or
+ {pop(_cyan_)}if
+ dup/Magenta eq 1 index(Magenta)eq or
+ {pop(_magenta_)}if
+ dup/Yellow eq 1 index(Yellow)eq or
+ {pop(_yellow_)}if
+ dup/Black eq 1 index(Black)eq or
+ {pop(_black_)}if
+ }def
+ dup type/arraytype eq
+ {[exch{filtername}forall]}
+ {filtername}ifelse
+ end
+ }def
+ level3{
+ /AGMCORE_IsCurrentColor
+ {
+ dup AGMCORE_IsSeparationAProcessColor
+ {
+ AGMCORE_plate_ndx 0 eq
+ {dup(Cyan)eq exch/Cyan eq or}if
+ AGMCORE_plate_ndx 1 eq
+ {dup(Magenta)eq exch/Magenta eq or}if
+ AGMCORE_plate_ndx 2 eq
+ {dup(Yellow)eq exch/Yellow eq or}if
+ AGMCORE_plate_ndx 3 eq
+ {dup(Black)eq exch/Black eq or}if
+ AGMCORE_plate_ndx 4 eq
+ {pop false}if
+ }{
+ gsave
+ false setoverprint
+ current_spot_alias false set_spot_alias
+ 1 1 1 1 6 -1 roll findcmykcustomcolor 1 setcustomcolor
+ set_spot_alias
+ currentgray 1 ne
+ grestore
+ }ifelse
+ }def
+ /AGMCORE_filter_functiondatasource
+ {
+ 5 dict begin
+ /data_in xdf
+ data_in type/stringtype eq
+ {
+ /ncomp xdf
+ /comp xdf
+ /string_out data_in length ncomp idiv string def
+ 0 ncomp data_in length 1 sub
+ {
+ string_out exch dup ncomp idiv exch data_in exch ncomp getinterval comp get 255 exch sub put
+ }for
+ string_out
+ }{
+ string/string_in xdf
+ /string_out 1 string def
+ /component xdf
+ [
+ data_in string_in/readstring cvx
+ [component/get cvx 255/exch cvx/sub cvx string_out/exch cvx 0/exch cvx/put cvx string_out]cvx
+ [/pop cvx()]cvx/ifelse cvx
+ ]cvx/ReusableStreamDecode filter
+ }ifelse
+ end
+ }def
+ /AGMCORE_separateShadingFunction
+ {
+ 2 dict begin
+ /paint? xdf
+ /channel xdf
+ dup type/dicttype eq
+ {
+ begin
+ FunctionType 0 eq
+ {
+ /DataSource channel Range length 2 idiv DataSource AGMCORE_filter_functiondatasource def
+ currentdict/Decode known
+ {/Decode Decode channel 2 mul 2 getinterval def}if
+ paint? not
+ {/Decode[1 1]def}if
+ }if
+ FunctionType 2 eq
+ {
+ paint?
+ {
+ /C0[C0 channel get 1 exch sub]def
+ /C1[C1 channel get 1 exch sub]def
+ }{
+ /C0[1]def
+ /C1[1]def
+ }ifelse
+ }if
+ FunctionType 3 eq
+ {
+ /Functions[Functions{channel paint? AGMCORE_separateShadingFunction}forall]def
+ }if
+ currentdict/Range known
+ {/Range[0 1]def}if
+ currentdict
+ end}{
+ channel get 0 paint? AGMCORE_separateShadingFunction
+ }ifelse
+ end
+ }def
+ /AGMCORE_separateShading
+ {
+ 3 -1 roll begin
+ currentdict/Function known
+ {
+ currentdict/Background known
+ {[1 index{Background 3 index get 1 exch sub}{1}ifelse]/Background xdf}if
+ Function 3 1 roll AGMCORE_separateShadingFunction/Function xdf
+ /ColorSpace[/DeviceGray]def
+ }{
+ ColorSpace dup type/arraytype eq{0 get}if/DeviceCMYK eq
+ {
+ /ColorSpace[/DeviceN[/_cyan_/_magenta_/_yellow_/_black_]/DeviceCMYK{}]def
+ }{
+ ColorSpace dup 1 get AGMCORE_RemoveProcessColorNames 1 exch put
+ }ifelse
+ ColorSpace 0 get/Separation eq
+ {
+ {
+ [1/exch cvx/sub cvx]cvx
+ }{
+ [/pop cvx 1]cvx
+ }ifelse
+ ColorSpace 3 3 -1 roll put
+ pop
+ }{
+ {
+ [exch ColorSpace 1 get length 1 sub exch sub/index cvx 1/exch cvx/sub cvx ColorSpace 1 get length 1 add 1/roll cvx ColorSpace 1 get length{/pop cvx}repeat]cvx
+ }{
+ pop[ColorSpace 1 get length{/pop cvx}repeat cvx 1]cvx
+ }ifelse
+ ColorSpace 3 3 -1 roll bind put
+ }ifelse
+ ColorSpace 2/DeviceGray put
+ }ifelse
+ end
+ }def
+ /AGMCORE_separateShadingDict
+ {
+ dup/ColorSpace get
+ dup type/arraytype ne
+ {[exch]}if
+ dup 0 get/DeviceCMYK eq
+ {
+ exch begin
+ currentdict
+ AGMCORE_cyan_plate
+ {0 true}if
+ AGMCORE_magenta_plate
+ {1 true}if
+ AGMCORE_yellow_plate
+ {2 true}if
+ AGMCORE_black_plate
+ {3 true}if
+ AGMCORE_plate_ndx 4 eq
+ {0 false}if
+ dup not currentoverprint and
+ {/AGMCORE_ignoreshade true def}if
+ AGMCORE_separateShading
+ currentdict
+ end exch
+ }if
+ dup 0 get/Separation eq
+ {
+ exch begin
+ ColorSpace 1 get dup/None ne exch/All ne and
+ {
+ ColorSpace 1 get AGMCORE_IsCurrentColor AGMCORE_plate_ndx 4 lt and ColorSpace 1 get AGMCORE_IsSeparationAProcessColor not and
+ {
+ ColorSpace 2 get dup type/arraytype eq{0 get}if/DeviceCMYK eq
+ {
+ /ColorSpace
+ [
+ /Separation
+ ColorSpace 1 get
+ /DeviceGray
+ [
+ ColorSpace 3 get/exec cvx
+ 4 AGMCORE_plate_ndx sub -1/roll cvx
+ 4 1/roll cvx
+ 3[/pop cvx]cvx/repeat cvx
+ 1/exch cvx/sub cvx
+ ]cvx
+ ]def
+ }{
+ AGMCORE_report_unsupported_color_space
+ AGMCORE_black_plate not
+ {
+ currentdict 0 false AGMCORE_separateShading
+ }if
+ }ifelse
+ }{
+ currentdict ColorSpace 1 get AGMCORE_IsCurrentColor
+ 0 exch
+ dup not currentoverprint and
+ {/AGMCORE_ignoreshade true def}if
+ AGMCORE_separateShading
+ }ifelse
+ }if
+ currentdict
+ end exch
+ }if
+ dup 0 get/DeviceN eq
+ {
+ exch begin
+ ColorSpace 1 get convert_to_process
+ {
+ ColorSpace 2 get dup type/arraytype eq{0 get}if/DeviceCMYK eq
+ {
+ /ColorSpace
+ [
+ /DeviceN
+ ColorSpace 1 get
+ /DeviceGray
+ [
+ ColorSpace 3 get/exec cvx
+ 4 AGMCORE_plate_ndx sub -1/roll cvx
+ 4 1/roll cvx
+ 3[/pop cvx]cvx/repeat cvx
+ 1/exch cvx/sub cvx
+ ]cvx
+ ]def
+ }{
+ AGMCORE_report_unsupported_color_space
+ AGMCORE_black_plate not
+ {
+ currentdict 0 false AGMCORE_separateShading
+ /ColorSpace[/DeviceGray]def
+ }if
+ }ifelse
+ }{
+ currentdict
+ false -1 ColorSpace 1 get
+ {
+ AGMCORE_IsCurrentColor
+ {
+ 1 add
+ exch pop true exch exit
+ }if
+ 1 add
+ }forall
+ exch
+ dup not currentoverprint and
+ {/AGMCORE_ignoreshade true def}if
+ AGMCORE_separateShading
+ }ifelse
+ currentdict
+ end exch
+ }if
+ dup 0 get dup/DeviceCMYK eq exch dup/Separation eq exch/DeviceN eq or or not
+ {
+ exch begin
+ ColorSpace dup type/arraytype eq
+ {0 get}if
+ /DeviceGray ne
+ {
+ AGMCORE_report_unsupported_color_space
+ AGMCORE_black_plate not
+ {
+ ColorSpace 0 get/CIEBasedA eq
+ {
+ /ColorSpace[/Separation/_ciebaseda_/DeviceGray{}]def
+ }if
+ ColorSpace 0 get dup/CIEBasedABC eq exch dup/CIEBasedDEF eq exch/DeviceRGB eq or or
+ {
+ /ColorSpace[/DeviceN[/_red_/_green_/_blue_]/DeviceRGB{}]def
+ }if
+ ColorSpace 0 get/CIEBasedDEFG eq
+ {
+ /ColorSpace[/DeviceN[/_cyan_/_magenta_/_yellow_/_black_]/DeviceCMYK{}]def
+ }if
+ currentdict 0 false AGMCORE_separateShading
+ }if
+ }if
+ currentdict
+ end exch
+ }if
+ pop
+ dup/AGMCORE_ignoreshade known
+ {
+ begin
+ /ColorSpace[/Separation(None)/DeviceGray{}]def
+ currentdict end
+ }if
+ }def
+ /shfill
+ {
+ AGMCORE_separateShadingDict
+ dup/AGMCORE_ignoreshade known
+ {pop}
+ {AGMCORE_&sysshfill}ifelse
+ }def
+ /makepattern
+ {
+ exch
+ dup/PatternType get 2 eq
+ {
+ clonedict
+ begin
+ /Shading Shading AGMCORE_separateShadingDict def
+ Shading/AGMCORE_ignoreshade known
+ currentdict end exch
+ {pop<</PatternType 1/PaintProc{pop}/BBox[0 0 1 1]/XStep 1/YStep 1/PaintType 1/TilingType 3>>}if
+ exch AGMCORE_&sysmakepattern
+ }{
+ exch AGMCORE_&usrmakepattern
+ }ifelse
+ }def
+ }if
+ }if
+ AGMCORE_in_rip_sep{
+ /setcustomcolor
+ {
+ exch aload pop
+ dup 7 1 roll inRip_spot_has_ink not {
+ 4{4 index mul 4 1 roll}
+ repeat
+ /DeviceCMYK setcolorspace
+ 6 -2 roll pop pop
+ }{
+ //Adobe_AGM_Core begin
+ /AGMCORE_k xdf/AGMCORE_y xdf/AGMCORE_m xdf/AGMCORE_c xdf
+ end
+ [/Separation 4 -1 roll/DeviceCMYK
+ {dup AGMCORE_c mul exch dup AGMCORE_m mul exch dup AGMCORE_y mul exch AGMCORE_k mul}
+ ]
+ setcolorspace
+ }ifelse
+ setcolor
+ }ndf
+ /setseparationgray
+ {
+ [/Separation(All)/DeviceGray{}]setcolorspace_opt
+ 1 exch sub setcolor
+ }ndf
+ }{
+ /setseparationgray
+ {
+ AGMCORE_&setgray
+ }ndf
+ }ifelse
+ /findcmykcustomcolor
+ {
+ 5 makereadonlyarray
+ }ndf
+ /setcustomcolor
+ {
+ exch aload pop pop
+ 4{4 index mul 4 1 roll}repeat
+ setcmykcolor pop
+ }ndf
+ /has_color
+ /colorimage where{
+ AGMCORE_producing_seps{
+ pop true
+ }{
+ systemdict eq
+ }ifelse
+ }{
+ false
+ }ifelse
+ def
+ /map_index
+ {
+ 1 index mul exch getinterval{255 div}forall
+ }bdf
+ /map_indexed_devn
+ {
+ Lookup Names length 3 -1 roll cvi map_index
+ }bdf
+ /n_color_components
+ {
+ base_colorspace_type
+ dup/DeviceGray eq{
+ pop 1
+ }{
+ /DeviceCMYK eq{
+ 4
+ }{
+ 3
+ }ifelse
+ }ifelse
+ }bdf
+ level2{
+ /mo/moveto ldf
+ /li/lineto ldf
+ /cv/curveto ldf
+ /knockout_unitsq
+ {
+ 1 setgray
+ 0 0 1 1 rectfill
+ }def
+ level2/setcolorspace AGMCORE_key_known not and{
+ /AGMCORE_&&&setcolorspace/setcolorspace ldf
+ /AGMCORE_ReplaceMappedColor
+ {
+ dup type dup/arraytype eq exch/packedarraytype eq or
+ {
+ /AGMCORE_SpotAliasAry2 where{
+ begin
+ dup 0 get dup/Separation eq
+ {
+ pop
+ dup length array copy
+ dup dup 1 get
+ current_spot_alias
+ {
+ dup map_alias
+ {
+ false set_spot_alias
+ dup 1 exch setsepcolorspace
+ true set_spot_alias
+ begin
+ /sep_colorspace_dict currentdict AGMCORE_gput
+ pop pop pop
+ [
+ /Separation Name
+ CSA map_csa
+ MappedCSA
+ /sep_colorspace_proc load
+ ]
+ dup Name
+ end
+ }if
+ }if
+ map_reserved_ink_name 1 xpt
+ }{
+ /DeviceN eq
+ {
+ dup length array copy
+ dup dup 1 get[
+ exch{
+ current_spot_alias{
+ dup map_alias{
+ /Name get exch pop
+ }if
+ }if
+ map_reserved_ink_name
+ }forall
+ ]1 xpt
+ }if
+ }ifelse
+ end
+ }if
+ }if
+ }def
+ /setcolorspace
+ {
+ dup type dup/arraytype eq exch/packedarraytype eq or
+ {
+ dup 0 get/Indexed eq
+ {
+ AGMCORE_distilling
+ {
+ /PhotoshopDuotoneList where
+ {
+ pop false
+ }{
+ true
+ }ifelse
+ }{
+ true
+ }ifelse
+ {
+ aload pop 3 -1 roll
+ AGMCORE_ReplaceMappedColor
+ 3 1 roll 4 array astore
+ }if
+ }{
+ AGMCORE_ReplaceMappedColor
+ }ifelse
+ }if
+ DeviceN_PS2_inRip_seps{AGMCORE_&&&setcolorspace}if
+ }def
+ }if
+ }{
+ /adj
+ {
+ currentstrokeadjust{
+ transform
+ 0.25 sub round 0.25 add exch
+ 0.25 sub round 0.25 add exch
+ itransform
+ }if
+ }def
+ /mo{
+ adj moveto
+ }def
+ /li{
+ adj lineto
+ }def
+ /cv{
+ 6 2 roll adj
+ 6 2 roll adj
+ 6 2 roll adj curveto
+ }def
+ /knockout_unitsq
+ {
+ 1 setgray
+ 8 8 1[8 0 0 8 0 0]{<ffffffffffffffff>}image
+ }def
+ /currentstrokeadjust{
+ /currentstrokeadjust AGMCORE_gget
+ }def
+ /setstrokeadjust{
+ /currentstrokeadjust exch AGMCORE_gput
+ }def
+ /setcolorspace
+ {
+ /currentcolorspace exch AGMCORE_gput
+ }def
+ /currentcolorspace
+ {
+ /currentcolorspace AGMCORE_gget
+ }def
+ /setcolor_devicecolor
+ {
+ base_colorspace_type
+ dup/DeviceGray eq{
+ pop setgray
+ }{
+ /DeviceCMYK eq{
+ setcmykcolor
+ }{
+ setrgbcolor
+ }ifelse
+ }ifelse
+ }def
+ /setcolor
+ {
+ currentcolorspace 0 get
+ dup/DeviceGray ne{
+ dup/DeviceCMYK ne{
+ dup/DeviceRGB ne{
+ dup/Separation eq{
+ pop
+ currentcolorspace 3 gx
+ currentcolorspace 2 get
+ }{
+ dup/Indexed eq{
+ pop
+ currentcolorspace 3 get dup type/stringtype eq{
+ currentcolorspace 1 get n_color_components
+ 3 -1 roll map_index
+ }{
+ exec
+ }ifelse
+ currentcolorspace 1 get
+ }{
+ /AGMCORE_cur_err/AGMCORE_invalid_color_space def
+ AGMCORE_invalid_color_space
+ }ifelse
+ }ifelse
+ }if
+ }if
+ }if
+ setcolor_devicecolor
+ }def
+ }ifelse
+ /sop/setoverprint ldf
+ /lw/setlinewidth ldf
+ /lc/setlinecap ldf
+ /lj/setlinejoin ldf
+ /ml/setmiterlimit ldf
+ /dsh/setdash ldf
+ /sadj/setstrokeadjust ldf
+ /gry/setgray ldf
+ /rgb/setrgbcolor ldf
+ /cmyk[
+ /currentcolorspace[/DeviceCMYK]/AGMCORE_gput cvx
+ /setcmykcolor load dup type/operatortype ne{/exec cvx}if
+ ]cvx bdf
+ level3 AGMCORE_host_sep not and{
+ /nzopmsc{
+ 6 dict begin
+ /kk exch def
+ /yy exch def
+ /mm exch def
+ /cc exch def
+ /sum 0 def
+ cc 0 ne{/sum sum 2#1000 or def cc}if
+ mm 0 ne{/sum sum 2#0100 or def mm}if
+ yy 0 ne{/sum sum 2#0010 or def yy}if
+ kk 0 ne{/sum sum 2#0001 or def kk}if
+ AGMCORE_CMYKDeviceNColorspaces sum get setcolorspace
+ sum 0 eq{0}if
+ end
+ setcolor
+ }bdf
+ }{
+ /nzopmsc/cmyk ldf
+ }ifelse
+ /sep/setsepcolor ldf
+ /devn/setdevicencolor ldf
+ /idx/setindexedcolor ldf
+ /colr/setcolor ldf
+ /csacrd/set_csa_crd ldf
+ /sepcs/setsepcolorspace ldf
+ /devncs/setdevicencolorspace ldf
+ /idxcs/setindexedcolorspace ldf
+ /cp/closepath ldf
+ /clp/clp_npth ldf
+ /eclp/eoclp_npth ldf
+ /f/fill ldf
+ /ef/eofill ldf
+ /@/stroke ldf
+ /nclp/npth_clp ldf
+ /gset/graphic_setup ldf
+ /gcln/graphic_cleanup ldf
+ /ct/concat ldf
+ /cf/currentfile ldf
+ /fl/filter ldf
+ /rs/readstring ldf
+ /AGMCORE_def_ht currenthalftone def
+ /clonedict Adobe_AGM_Utils begin/clonedict load end def
+ /clonearray Adobe_AGM_Utils begin/clonearray load end def
+ currentdict{
+ dup xcheck 1 index type dup/arraytype eq exch/packedarraytype eq or and{
+ bind
+ }if
+ def
+ }forall
+ /getrampcolor
+ {
+ /indx exch def
+ 0 1 NumComp 1 sub
+ {
+ dup
+ Samples exch get
+ dup type/stringtype eq{indx get}if
+ exch
+ Scaling exch get aload pop
+ 3 1 roll
+ mul add
+ }for
+ ColorSpaceFamily/Separation eq
+ {sep}
+ {
+ ColorSpaceFamily/DeviceN eq
+ {devn}{setcolor}ifelse
+ }ifelse
+ }bdf
+ /sssetbackground{
+ aload pop
+ ColorSpaceFamily/Separation eq
+ {sep}
+ {
+ ColorSpaceFamily/DeviceN eq
+ {devn}{setcolor}ifelse
+ }ifelse
+ }bdf
+ /RadialShade
+ {
+ 40 dict begin
+ /ColorSpaceFamily xdf
+ /background xdf
+ /ext1 xdf
+ /ext0 xdf
+ /BBox xdf
+ /r2 xdf
+ /c2y xdf
+ /c2x xdf
+ /r1 xdf
+ /c1y xdf
+ /c1x xdf
+ /rampdict xdf
+ /setinkoverprint where{pop/setinkoverprint{pop}def}if
+ gsave
+ BBox length 0 gt
+ {
+ np
+ BBox 0 get BBox 1 get moveto
+ BBox 2 get BBox 0 get sub 0 rlineto
+ 0 BBox 3 get BBox 1 get sub rlineto
+ BBox 2 get BBox 0 get sub neg 0 rlineto
+ closepath
+ clip
+ np
+ }if
+ c1x c2x eq
+ {
+ c1y c2y lt{/theta 90 def}{/theta 270 def}ifelse
+ }{
+ /slope c2y c1y sub c2x c1x sub div def
+ /theta slope 1 atan def
+ c2x c1x lt c2y c1y ge and{/theta theta 180 sub def}if
+ c2x c1x lt c2y c1y lt and{/theta theta 180 add def}if
+ }ifelse
+ gsave
+ clippath
+ c1x c1y translate
+ theta rotate
+ -90 rotate
+ {pathbbox}stopped
+ {0 0 0 0}if
+ /yMax xdf
+ /xMax xdf
+ /yMin xdf
+ /xMin xdf
+ grestore
+ xMax xMin eq yMax yMin eq or
+ {
+ grestore
+ end
+ }{
+ /max{2 copy gt{pop}{exch pop}ifelse}bdf
+ /min{2 copy lt{pop}{exch pop}ifelse}bdf
+ rampdict begin
+ 40 dict begin
+ background length 0 gt{background sssetbackground gsave clippath fill grestore}if
+ gsave
+ c1x c1y translate
+ theta rotate
+ -90 rotate
+ /c2y c1x c2x sub dup mul c1y c2y sub dup mul add sqrt def
+ /c1y 0 def
+ /c1x 0 def
+ /c2x 0 def
+ ext0
+ {
+ 0 getrampcolor
+ c2y r2 add r1 sub 0.0001 lt
+ {
+ c1x c1y r1 360 0 arcn
+ pathbbox
+ /aymax exch def
+ /axmax exch def
+ /aymin exch def
+ /axmin exch def
+ /bxMin xMin axmin min def
+ /byMin yMin aymin min def
+ /bxMax xMax axmax max def
+ /byMax yMax aymax max def
+ bxMin byMin moveto
+ bxMax byMin lineto
+ bxMax byMax lineto
+ bxMin byMax lineto
+ bxMin byMin lineto
+ eofill
+ }{
+ c2y r1 add r2 le
+ {
+ c1x c1y r1 0 360 arc
+ fill
+ }
+ {
+ c2x c2y r2 0 360 arc fill
+ r1 r2 eq
+ {
+ /p1x r1 neg def
+ /p1y c1y def
+ /p2x r1 def
+ /p2y c1y def
+ p1x p1y moveto p2x p2y lineto p2x yMin lineto p1x yMin lineto
+ fill
+ }{
+ /AA r2 r1 sub c2y div def
+ AA -1 eq
+ {/theta 89.99 def}
+ {/theta AA 1 AA dup mul sub sqrt div 1 atan def}
+ ifelse
+ /SS1 90 theta add dup sin exch cos div def
+ /p1x r1 SS1 SS1 mul SS1 SS1 mul 1 add div sqrt mul neg def
+ /p1y p1x SS1 div neg def
+ /SS2 90 theta sub dup sin exch cos div def
+ /p2x r1 SS2 SS2 mul SS2 SS2 mul 1 add div sqrt mul def
+ /p2y p2x SS2 div neg def
+ r1 r2 gt
+ {
+ /L1maxX p1x yMin p1y sub SS1 div add def
+ /L2maxX p2x yMin p2y sub SS2 div add def
+ }{
+ /L1maxX 0 def
+ /L2maxX 0 def
+ }ifelse
+ p1x p1y moveto p2x p2y lineto L2maxX L2maxX p2x sub SS2 mul p2y add lineto
+ L1maxX L1maxX p1x sub SS1 mul p1y add lineto
+ fill
+ }ifelse
+ }ifelse
+ }ifelse
+ }if
+ c1x c2x sub dup mul
+ c1y c2y sub dup mul
+ add 0.5 exp
+ 0 dtransform
+ dup mul exch dup mul add 0.5 exp 72 div
+ 0 72 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt
+ 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt
+ 1 index 1 index lt{exch}if pop
+ /hires xdf
+ hires mul
+ /numpix xdf
+ /numsteps NumSamples def
+ /rampIndxInc 1 def
+ /subsampling false def
+ numpix 0 ne
+ {
+ NumSamples numpix div 0.5 gt
+ {
+ /numsteps numpix 2 div round cvi dup 1 le{pop 2}if def
+ /rampIndxInc NumSamples 1 sub numsteps div def
+ /subsampling true def
+ }if
+ }if
+ /xInc c2x c1x sub numsteps div def
+ /yInc c2y c1y sub numsteps div def
+ /rInc r2 r1 sub numsteps div def
+ /cx c1x def
+ /cy c1y def
+ /radius r1 def
+ np
+ xInc 0 eq yInc 0 eq rInc 0 eq and and
+ {
+ 0 getrampcolor
+ cx cy radius 0 360 arc
+ stroke
+ NumSamples 1 sub getrampcolor
+ cx cy radius 72 hires div add 0 360 arc
+ 0 setlinewidth
+ stroke
+ }{
+ 0
+ numsteps
+ {
+ dup
+ subsampling{round cvi}if
+ getrampcolor
+ cx cy radius 0 360 arc
+ /cx cx xInc add def
+ /cy cy yInc add def
+ /radius radius rInc add def
+ cx cy radius 360 0 arcn
+ eofill
+ rampIndxInc add
+ }repeat
+ pop
+ }ifelse
+ ext1
+ {
+ c2y r2 add r1 lt
+ {
+ c2x c2y r2 0 360 arc
+ fill
+ }{
+ c2y r1 add r2 sub 0.0001 le
+ {
+ c2x c2y r2 360 0 arcn
+ pathbbox
+ /aymax exch def
+ /axmax exch def
+ /aymin exch def
+ /axmin exch def
+ /bxMin xMin axmin min def
+ /byMin yMin aymin min def
+ /bxMax xMax axmax max def
+ /byMax yMax aymax max def
+ bxMin byMin moveto
+ bxMax byMin lineto
+ bxMax byMax lineto
+ bxMin byMax lineto
+ bxMin byMin lineto
+ eofill
+ }{
+ c2x c2y r2 0 360 arc fill
+ r1 r2 eq
+ {
+ /p1x r2 neg def
+ /p1y c2y def
+ /p2x r2 def
+ /p2y c2y def
+ p1x p1y moveto p2x p2y lineto p2x yMax lineto p1x yMax lineto
+ fill
+ }{
+ /AA r2 r1 sub c2y div def
+ AA -1 eq
+ {/theta 89.99 def}
+ {/theta AA 1 AA dup mul sub sqrt div 1 atan def}
+ ifelse
+ /SS1 90 theta add dup sin exch cos div def
+ /p1x r2 SS1 SS1 mul SS1 SS1 mul 1 add div sqrt mul neg def
+ /p1y c2y p1x SS1 div sub def
+ /SS2 90 theta sub dup sin exch cos div def
+ /p2x r2 SS2 SS2 mul SS2 SS2 mul 1 add div sqrt mul def
+ /p2y c2y p2x SS2 div sub def
+ r1 r2 lt
+ {
+ /L1maxX p1x yMax p1y sub SS1 div add def
+ /L2maxX p2x yMax p2y sub SS2 div add def
+ }{
+ /L1maxX 0 def
+ /L2maxX 0 def
+ }ifelse
+ p1x p1y moveto p2x p2y lineto L2maxX L2maxX p2x sub SS2 mul p2y add lineto
+ L1maxX L1maxX p1x sub SS1 mul p1y add lineto
+ fill
+ }ifelse
+ }ifelse
+ }ifelse
+ }if
+ grestore
+ grestore
+ end
+ end
+ end
+ }ifelse
+ }bdf
+ /GenStrips
+ {
+ 40 dict begin
+ /ColorSpaceFamily xdf
+ /background xdf
+ /ext1 xdf
+ /ext0 xdf
+ /BBox xdf
+ /y2 xdf
+ /x2 xdf
+ /y1 xdf
+ /x1 xdf
+ /rampdict xdf
+ /setinkoverprint where{pop/setinkoverprint{pop}def}if
+ gsave
+ BBox length 0 gt
+ {
+ np
+ BBox 0 get BBox 1 get moveto
+ BBox 2 get BBox 0 get sub 0 rlineto
+ 0 BBox 3 get BBox 1 get sub rlineto
+ BBox 2 get BBox 0 get sub neg 0 rlineto
+ closepath
+ clip
+ np
+ }if
+ x1 x2 eq
+ {
+ y1 y2 lt{/theta 90 def}{/theta 270 def}ifelse
+ }{
+ /slope y2 y1 sub x2 x1 sub div def
+ /theta slope 1 atan def
+ x2 x1 lt y2 y1 ge and{/theta theta 180 sub def}if
+ x2 x1 lt y2 y1 lt and{/theta theta 180 add def}if
+ }
+ ifelse
+ gsave
+ clippath
+ x1 y1 translate
+ theta rotate
+ {pathbbox}stopped
+ {0 0 0 0}if
+ /yMax exch def
+ /xMax exch def
+ /yMin exch def
+ /xMin exch def
+ grestore
+ xMax xMin eq yMax yMin eq or
+ {
+ grestore
+ end
+ }{
+ rampdict begin
+ 20 dict begin
+ background length 0 gt{background sssetbackground gsave clippath fill grestore}if
+ gsave
+ x1 y1 translate
+ theta rotate
+ /xStart 0 def
+ /xEnd x2 x1 sub dup mul y2 y1 sub dup mul add 0.5 exp def
+ /ySpan yMax yMin sub def
+ /numsteps NumSamples def
+ /rampIndxInc 1 def
+ /subsampling false def
+ xStart 0 transform
+ xEnd 0 transform
+ 3 -1 roll
+ sub dup mul
+ 3 1 roll
+ sub dup mul
+ add 0.5 exp 72 div
+ 0 72 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt
+ 72 0 matrix defaultmatrix dtransform dup mul exch dup mul add sqrt
+ 1 index 1 index lt{exch}if pop
+ mul
+ /numpix xdf
+ numpix 0 ne
+ {
+ NumSamples numpix div 0.5 gt
+ {
+ /numsteps numpix 2 div round cvi dup 1 le{pop 2}if def
+ /rampIndxInc NumSamples 1 sub numsteps div def
+ /subsampling true def
+ }if
+ }if
+ ext0
+ {
+ 0 getrampcolor
+ xMin xStart lt
+ {
+ xMin yMin xMin neg ySpan rectfill
+ }if
+ }if
+ /xInc xEnd xStart sub numsteps div def
+ /x xStart def
+ 0
+ numsteps
+ {
+ dup
+ subsampling{round cvi}if
+ getrampcolor
+ x yMin xInc ySpan rectfill
+ /x x xInc add def
+ rampIndxInc add
+ }repeat
+ pop
+ ext1{
+ xMax xEnd gt
+ {
+ xEnd yMin xMax xEnd sub ySpan rectfill
+ }if
+ }if
+ grestore
+ grestore
+ end
+ end
+ end
+ }ifelse
+ }bdf
+}def
+/pt
+{
+ end
+}def
+/dt{
+}def
+/pgsv{
+ //Adobe_AGM_Core/AGMCORE_save save put
+}def
+/pgrs{
+ //Adobe_AGM_Core/AGMCORE_save get restore
+}def
+systemdict/findcolorrendering known{
+ /findcolorrendering systemdict/findcolorrendering get def
+}if
+systemdict/setcolorrendering known{
+ /setcolorrendering systemdict/setcolorrendering get def
+}if
+/test_cmyk_color_plate
+{
+ gsave
+ setcmykcolor currentgray 1 ne
+ grestore
+}def
+/inRip_spot_has_ink
+{
+ dup//Adobe_AGM_Core/AGMCORE_name xddf
+ convert_spot_to_process not
+}def
+/map255_to_range
+{
+ 1 index sub
+ 3 -1 roll 255 div mul add
+}def
+/set_csa_crd
+{
+ /sep_colorspace_dict null AGMCORE_gput
+ begin
+ CSA get_csa_by_name setcolorspace_opt
+ set_crd
+ end
+}
+def
+/map_csa
+{
+ currentdict/MappedCSA known{MappedCSA null ne}{false}ifelse
+ {pop}{get_csa_by_name/MappedCSA xdf}ifelse
+}def
+/setsepcolor
+{
+ /sep_colorspace_dict AGMCORE_gget begin
+ dup/sep_tint exch AGMCORE_gput
+ TintProc
+ end
+}def
+/setdevicencolor
+{
+ /devicen_colorspace_dict AGMCORE_gget begin
+ Names length copy
+ Names length 1 sub -1 0
+ {
+ /devicen_tints AGMCORE_gget 3 1 roll xpt
+ }for
+ TintProc
+ end
+}def
+/sep_colorspace_proc
+{
+ /AGMCORE_tmp exch store
+ /sep_colorspace_dict AGMCORE_gget begin
+ currentdict/Components known{
+ Components aload pop
+ TintMethod/Lab eq{
+ 2{AGMCORE_tmp mul NComponents 1 roll}repeat
+ LMax sub AGMCORE_tmp mul LMax add NComponents 1 roll
+ }{
+ TintMethod/Subtractive eq{
+ NComponents{
+ AGMCORE_tmp mul NComponents 1 roll
+ }repeat
+ }{
+ NComponents{
+ 1 sub AGMCORE_tmp mul 1 add NComponents 1 roll
+ }repeat
+ }ifelse
+ }ifelse
+ }{
+ ColorLookup AGMCORE_tmp ColorLookup length 1 sub mul round cvi get
+ aload pop
+ }ifelse
+ end
+}def
+/sep_colorspace_gray_proc
+{
+ /AGMCORE_tmp exch store
+ /sep_colorspace_dict AGMCORE_gget begin
+ GrayLookup AGMCORE_tmp GrayLookup length 1 sub mul round cvi get
+ end
+}def
+/sep_proc_name
+{
+ dup 0 get
+ dup/DeviceRGB eq exch/DeviceCMYK eq or level2 not and has_color not and{
+ pop[/DeviceGray]
+ /sep_colorspace_gray_proc
+ }{
+ /sep_colorspace_proc
+ }ifelse
+}def
+/setsepcolorspace
+{
+ current_spot_alias{
+ dup begin
+ Name map_alias{
+ exch pop
+ }if
+ end
+ }if
+ dup/sep_colorspace_dict exch AGMCORE_gput
+ begin
+ CSA map_csa
+ /AGMCORE_sep_special Name dup()eq exch(All)eq or store
+ AGMCORE_avoid_L2_sep_space{
+ [/Indexed MappedCSA sep_proc_name 255 exch
+ {255 div}/exec cvx 3 -1 roll[4 1 roll load/exec cvx]cvx
+ ]setcolorspace_opt
+ /TintProc{
+ 255 mul round cvi setcolor
+ }bdf
+ }{
+ MappedCSA 0 get/DeviceCMYK eq
+ currentdict/Components known and
+ AGMCORE_sep_special not and{
+ /TintProc[
+ Components aload pop Name findcmykcustomcolor
+ /exch cvx/setcustomcolor cvx
+ ]cvx bdf
+ }{
+ AGMCORE_host_sep Name(All)eq and{
+ /TintProc{
+ 1 exch sub setseparationgray
+ }bdf
+ }{
+ AGMCORE_in_rip_sep MappedCSA 0 get/DeviceCMYK eq and
+ AGMCORE_host_sep or
+ Name()eq and{
+ /TintProc[
+ MappedCSA sep_proc_name exch 0 get/DeviceCMYK eq{
+ cvx/setcmykcolor cvx
+ }{
+ cvx/setgray cvx
+ }ifelse
+ ]cvx bdf
+ }{
+ AGMCORE_producing_seps MappedCSA 0 get dup/DeviceCMYK eq exch/DeviceGray eq or and AGMCORE_sep_special not and{
+ /TintProc[
+ /dup cvx
+ MappedCSA sep_proc_name cvx exch
+ 0 get/DeviceGray eq{
+ 1/exch cvx/sub cvx 0 0 0 4 -1/roll cvx
+ }if
+ /Name cvx/findcmykcustomcolor cvx/exch cvx
+ AGMCORE_host_sep{
+ AGMCORE_is_cmyk_sep
+ /Name cvx
+ /AGMCORE_IsSeparationAProcessColor load/exec cvx
+ /not cvx/and cvx
+ }{
+ Name inRip_spot_has_ink not
+ }ifelse
+ [
+ /pop cvx 1
+ ]cvx/if cvx
+ /setcustomcolor cvx
+ ]cvx bdf
+ }{
+ /TintProc{setcolor}bdf
+ [/Separation Name MappedCSA sep_proc_name load]setcolorspace_opt
+ }ifelse
+ }ifelse
+ }ifelse
+ }ifelse
+ }ifelse
+ set_crd
+ setsepcolor
+ end
+}def
+/additive_blend
+{
+ 3 dict begin
+ /numarrays xdf
+ /numcolors xdf
+ 0 1 numcolors 1 sub
+ {
+ /c1 xdf
+ 1
+ 0 1 numarrays 1 sub
+ {
+ 1 exch add/index cvx
+ c1/get cvx/mul cvx
+ }for
+ numarrays 1 add 1/roll cvx
+ }for
+ numarrays[/pop cvx]cvx/repeat cvx
+ end
+}def
+/subtractive_blend
+{
+ 3 dict begin
+ /numarrays xdf
+ /numcolors xdf
+ 0 1 numcolors 1 sub
+ {
+ /c1 xdf
+ 1 1
+ 0 1 numarrays 1 sub
+ {
+ 1 3 3 -1 roll add/index cvx
+ c1/get cvx/sub cvx/mul cvx
+ }for
+ /sub cvx
+ numarrays 1 add 1/roll cvx
+ }for
+ numarrays[/pop cvx]cvx/repeat cvx
+ end
+}def
+/exec_tint_transform
+{
+ /TintProc[
+ /TintTransform cvx/setcolor cvx
+ ]cvx bdf
+ MappedCSA setcolorspace_opt
+}bdf
+/devn_makecustomcolor
+{
+ 2 dict begin
+ /names_index xdf
+ /Names xdf
+ 1 1 1 1 Names names_index get findcmykcustomcolor
+ /devicen_tints AGMCORE_gget names_index get setcustomcolor
+ Names length{pop}repeat
+ end
+}bdf
+/setdevicencolorspace
+{
+ dup/AliasedColorants known{false}{true}ifelse
+ current_spot_alias and{
+ 7 dict begin
+ /names_index 0 def
+ dup/names_len exch/Names get length def
+ /new_names names_len array def
+ /new_LookupTables names_len array def
+ /alias_cnt 0 def
+ dup/Names get
+ {
+ dup map_alias{
+ exch pop
+ dup/ColorLookup known{
+ dup begin
+ new_LookupTables names_index ColorLookup put
+ end
+ }{
+ dup/Components known{
+ dup begin
+ new_LookupTables names_index Components put
+ end
+ }{
+ dup begin
+ new_LookupTables names_index[null null null null]put
+ end
+ }ifelse
+ }ifelse
+ new_names names_index 3 -1 roll/Name get put
+ /alias_cnt alias_cnt 1 add def
+ }{
+ /name xdf
+ new_names names_index name put
+ dup/LookupTables known{
+ dup begin
+ new_LookupTables names_index LookupTables names_index get put
+ end
+ }{
+ dup begin
+ new_LookupTables names_index[null null null null]put
+ end
+ }ifelse
+ }ifelse
+ /names_index names_index 1 add def
+ }forall
+ alias_cnt 0 gt{
+ /AliasedColorants true def
+ /lut_entry_len new_LookupTables 0 get dup length 256 ge{0 get length}{length}ifelse def
+ 0 1 names_len 1 sub{
+ /names_index xdf
+ new_LookupTables names_index get dup length 256 ge{0 get length}{length}ifelse lut_entry_len ne{
+ /AliasedColorants false def
+ exit
+ }{
+ new_LookupTables names_index get 0 get null eq{
+ dup/Names get names_index get/name xdf
+ name(Cyan)eq name(Magenta)eq name(Yellow)eq name(Black)eq
+ or or or not{
+ /AliasedColorants false def
+ exit
+ }if
+ }if
+ }ifelse
+ }for
+ lut_entry_len 1 eq{
+ /AliasedColorants false def
+ }if
+ AliasedColorants{
+ dup begin
+ /Names new_names def
+ /LookupTables new_LookupTables def
+ /AliasedColorants true def
+ /NComponents lut_entry_len def
+ /TintMethod NComponents 4 eq{/Subtractive}{/Additive}ifelse def
+ /MappedCSA TintMethod/Additive eq{/DeviceRGB}{/DeviceCMYK}ifelse def
+ currentdict/TTTablesIdx known not{
+ /TTTablesIdx -1 def
+ }if
+ end
+ }if
+ }if
+ end
+ }if
+ dup/devicen_colorspace_dict exch AGMCORE_gput
+ begin
+ currentdict/AliasedColorants known{
+ AliasedColorants
+ }{
+ false
+ }ifelse
+ dup not{
+ CSA map_csa
+ }if
+ /TintTransform load type/nulltype eq or{
+ /TintTransform[
+ 0 1 Names length 1 sub
+ {
+ /TTTablesIdx TTTablesIdx 1 add def
+ dup LookupTables exch get dup 0 get null eq
+ {
+ 1 index
+ Names exch get
+ dup(Cyan)eq
+ {
+ pop exch
+ LookupTables length exch sub
+ /index cvx
+ 0 0 0
+ }
+ {
+ dup(Magenta)eq
+ {
+ pop exch
+ LookupTables length exch sub
+ /index cvx
+ 0/exch cvx 0 0
+ }{
+ (Yellow)eq
+ {
+ exch
+ LookupTables length exch sub
+ /index cvx
+ 0 0 3 -1/roll cvx 0
+ }{
+ exch
+ LookupTables length exch sub
+ /index cvx
+ 0 0 0 4 -1/roll cvx
+ }ifelse
+ }ifelse
+ }ifelse
+ 5 -1/roll cvx/astore cvx
+ }{
+ dup length 1 sub
+ LookupTables length 4 -1 roll sub 1 add
+ /index cvx/mul cvx/round cvx/cvi cvx/get cvx
+ }ifelse
+ Names length TTTablesIdx add 1 add 1/roll cvx
+ }for
+ Names length[/pop cvx]cvx/repeat cvx
+ NComponents Names length
+ TintMethod/Subtractive eq
+ {
+ subtractive_blend
+ }{
+ additive_blend
+ }ifelse
+ ]cvx bdf
+ }if
+ AGMCORE_host_sep{
+ Names convert_to_process{
+ exec_tint_transform
+ }
+ {
+ currentdict/AliasedColorants known{
+ AliasedColorants not
+ }{
+ false
+ }ifelse
+ 5 dict begin
+ /AvoidAliasedColorants xdf
+ /painted? false def
+ /names_index 0 def
+ /names_len Names length def
+ AvoidAliasedColorants{
+ /currentspotalias current_spot_alias def
+ false set_spot_alias
+ }if
+ Names{
+ AGMCORE_is_cmyk_sep{
+ dup(Cyan)eq AGMCORE_cyan_plate and exch
+ dup(Magenta)eq AGMCORE_magenta_plate and exch
+ dup(Yellow)eq AGMCORE_yellow_plate and exch
+ (Black)eq AGMCORE_black_plate and or or or{
+ /devicen_colorspace_dict AGMCORE_gget/TintProc[
+ Names names_index/devn_makecustomcolor cvx
+ ]cvx ddf
+ /painted? true def
+ }if
+ painted?{exit}if
+ }{
+ 0 0 0 0 5 -1 roll findcmykcustomcolor 1 setcustomcolor currentgray 0 eq{
+ /devicen_colorspace_dict AGMCORE_gget/TintProc[
+ Names names_index/devn_makecustomcolor cvx
+ ]cvx ddf
+ /painted? true def
+ exit
+ }if
+ }ifelse
+ /names_index names_index 1 add def
+ }forall
+ AvoidAliasedColorants{
+ currentspotalias set_spot_alias
+ }if
+ painted?{
+ /devicen_colorspace_dict AGMCORE_gget/names_index names_index put
+ }{
+ /devicen_colorspace_dict AGMCORE_gget/TintProc[
+ names_len[/pop cvx]cvx/repeat cvx 1/setseparationgray cvx
+ 0 0 0 0/setcmykcolor cvx
+ ]cvx ddf
+ }ifelse
+ end
+ }ifelse
+ }
+ {
+ AGMCORE_in_rip_sep{
+ Names convert_to_process not
+ }{
+ level3
+ }ifelse
+ {
+ [/DeviceN Names MappedCSA/TintTransform load]setcolorspace_opt
+ /TintProc level3 not AGMCORE_in_rip_sep and{
+ [
+ Names/length cvx[/pop cvx]cvx/repeat cvx
+ ]cvx bdf
+ }{
+ {setcolor}bdf
+ }ifelse
+ }{
+ exec_tint_transform
+ }ifelse
+ }ifelse
+ set_crd
+ /AliasedColorants false def
+ end
+}def
+/setindexedcolorspace
+{
+ dup/indexed_colorspace_dict exch AGMCORE_gput
+ begin
+ currentdict/CSDBase known{
+ CSDBase/CSD get_res begin
+ currentdict/Names known{
+ currentdict devncs
+ }{
+ 1 currentdict sepcs
+ }ifelse
+ AGMCORE_host_sep{
+ 4 dict begin
+ /compCnt/Names where{pop Names length}{1}ifelse def
+ /NewLookup HiVal 1 add string def
+ 0 1 HiVal{
+ /tableIndex xdf
+ Lookup dup type/stringtype eq{
+ compCnt tableIndex map_index
+ }{
+ exec
+ }ifelse
+ /Names where{
+ pop setdevicencolor
+ }{
+ setsepcolor
+ }ifelse
+ currentgray
+ tableIndex exch
+ 255 mul cvi
+ NewLookup 3 1 roll put
+ }for
+ [/Indexed currentcolorspace HiVal NewLookup]setcolorspace_opt
+ end
+ }{
+ level3
+ {
+ currentdict/Names known{
+ [/Indexed[/DeviceN Names MappedCSA/TintTransform load]HiVal Lookup]setcolorspace_opt
+ }{
+ [/Indexed[/Separation Name MappedCSA sep_proc_name load]HiVal Lookup]setcolorspace_opt
+ }ifelse
+ }{
+ [/Indexed MappedCSA HiVal
+ [
+ currentdict/Names known{
+ Lookup dup type/stringtype eq
+ {/exch cvx CSDBase/CSD get_res/Names get length dup/mul cvx exch/getinterval cvx{255 div}/forall cvx}
+ {/exec cvx}ifelse
+ /TintTransform load/exec cvx
+ }{
+ Lookup dup type/stringtype eq
+ {/exch cvx/get cvx 255/div cvx}
+ {/exec cvx}ifelse
+ CSDBase/CSD get_res/MappedCSA get sep_proc_name exch pop/load cvx/exec cvx
+ }ifelse
+ ]cvx
+ ]setcolorspace_opt
+ }ifelse
+ }ifelse
+ end
+ set_crd
+ }
+ {
+ CSA map_csa
+ AGMCORE_host_sep level2 not and{
+ 0 0 0 0 setcmykcolor
+ }{
+ [/Indexed MappedCSA
+ level2 not has_color not and{
+ dup 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or{
+ pop[/DeviceGray]
+ }if
+ HiVal GrayLookup
+ }{
+ HiVal
+ currentdict/RangeArray known{
+ {
+ /indexed_colorspace_dict AGMCORE_gget begin
+ Lookup exch
+ dup HiVal gt{
+ pop HiVal
+ }if
+ NComponents mul NComponents getinterval{}forall
+ NComponents 1 sub -1 0{
+ RangeArray exch 2 mul 2 getinterval aload pop map255_to_range
+ NComponents 1 roll
+ }for
+ end
+ }bind
+ }{
+ Lookup
+ }ifelse
+ }ifelse
+ ]setcolorspace_opt
+ set_crd
+ }ifelse
+ }ifelse
+ end
+}def
+/setindexedcolor
+{
+ AGMCORE_host_sep{
+ /indexed_colorspace_dict AGMCORE_gget
+ begin
+ currentdict/CSDBase known{
+ CSDBase/CSD get_res begin
+ currentdict/Names known{
+ map_indexed_devn
+ devn
+ }
+ {
+ Lookup 1 3 -1 roll map_index
+ sep
+ }ifelse
+ end
+ }{
+ Lookup MappedCSA/DeviceCMYK eq{4}{1}ifelse 3 -1 roll
+ map_index
+ MappedCSA/DeviceCMYK eq{setcmykcolor}{setgray}ifelse
+ }ifelse
+ end
+ }{
+ level3 not AGMCORE_in_rip_sep and/indexed_colorspace_dict AGMCORE_gget/CSDBase known and{
+ /indexed_colorspace_dict AGMCORE_gget/CSDBase get/CSD get_res begin
+ map_indexed_devn
+ devn
+ end
+ }
+ {
+ setcolor
+ }ifelse
+ }ifelse
+}def
+/ignoreimagedata
+{
+ currentoverprint not{
+ gsave
+ dup clonedict begin
+ 1 setgray
+ /Decode[0 1]def
+ /DataSource<FF>def
+ /MultipleDataSources false def
+ /BitsPerComponent 8 def
+ currentdict end
+ systemdict/image gx
+ grestore
+ }if
+ consumeimagedata
+}def
+/add_res
+{
+ dup/CSD eq{
+ pop
+ //Adobe_AGM_Core begin
+ /AGMCORE_CSD_cache load 3 1 roll put
+ end
+ }{
+ defineresource pop
+ }ifelse
+}def
+/del_res
+{
+ {
+ aload pop exch
+ dup/CSD eq{
+ pop
+ {//Adobe_AGM_Core/AGMCORE_CSD_cache get exch undef}forall
+ }{
+ exch
+ {1 index undefineresource}forall
+ pop
+ }ifelse
+ }forall
+}def
+/get_res
+{
+ dup/CSD eq{
+ pop
+ dup type dup/nametype eq exch/stringtype eq or{
+ AGMCORE_CSD_cache exch get
+ }if
+ }{
+ findresource
+ }ifelse
+}def
+/get_csa_by_name
+{
+ dup type dup/nametype eq exch/stringtype eq or{
+ /CSA get_res
+ }if
+}def
+/paintproc_buf_init
+{
+ /count get 0 0 put
+}def
+/paintproc_buf_next
+{
+ dup/count get dup 0 get
+ dup 3 1 roll
+ 1 add 0 xpt
+ get
+}def
+/cachepaintproc_compress
+{
+ 5 dict begin
+ currentfile exch 0 exch/SubFileDecode filter/ReadFilter exch def
+ /ppdict 20 dict def
+ /string_size 16000 def
+ /readbuffer string_size string def
+ currentglobal true setglobal
+ ppdict 1 array dup 0 1 put/count xpt
+ setglobal
+ /LZWFilter
+ {
+ exch
+ dup length 0 eq{
+ pop
+ }{
+ ppdict dup length 1 sub 3 -1 roll put
+ }ifelse
+ {string_size}{0}ifelse string
+ }/LZWEncode filter def
+ {
+ ReadFilter readbuffer readstring
+ exch LZWFilter exch writestring
+ not{exit}if
+ }loop
+ LZWFilter closefile
+ ppdict
+ end
+}def
+/cachepaintproc
+{
+ 2 dict begin
+ currentfile exch 0 exch/SubFileDecode filter/ReadFilter exch def
+ /ppdict 20 dict def
+ currentglobal true setglobal
+ ppdict 1 array dup 0 1 put/count xpt
+ setglobal
+ {
+ ReadFilter 16000 string readstring exch
+ ppdict dup length 1 sub 3 -1 roll put
+ not{exit}if
+ }loop
+ ppdict dup dup length 1 sub()put
+ end
+}def
+/make_pattern
+{
+ exch clonedict exch
+ dup matrix currentmatrix matrix concatmatrix 0 0 3 2 roll itransform
+ exch 3 index/XStep get 1 index exch 2 copy div cvi mul sub sub
+ exch 3 index/YStep get 1 index exch 2 copy div cvi mul sub sub
+ matrix translate exch matrix concatmatrix
+ 1 index begin
+ BBox 0 get XStep div cvi XStep mul/xshift exch neg def
+ BBox 1 get YStep div cvi YStep mul/yshift exch neg def
+ BBox 0 get xshift add
+ BBox 1 get yshift add
+ BBox 2 get xshift add
+ BBox 3 get yshift add
+ 4 array astore
+ /BBox exch def
+ [xshift yshift/translate load null/exec load]dup
+ 3/PaintProc load put cvx/PaintProc exch def
+ end
+ gsave 0 setgray
+ makepattern
+ grestore
+}def
+/set_pattern
+{
+ dup/PatternType get 1 eq{
+ dup/PaintType get 1 eq{
+ currentoverprint sop[/DeviceGray]setcolorspace 0 setgray
+ }if
+ }if
+ setpattern
+}def
+/setcolorspace_opt
+{
+ dup currentcolorspace eq{pop}{setcolorspace}ifelse
+}def
+/updatecolorrendering
+{
+ currentcolorrendering/RenderingIntent known{
+ currentcolorrendering/RenderingIntent get
+ }
+ {
+ Intent/AbsoluteColorimetric eq
+ {
+ /absolute_colorimetric_crd AGMCORE_gget dup null eq
+ }
+ {
+ Intent/RelativeColorimetric eq
+ {
+ /relative_colorimetric_crd AGMCORE_gget dup null eq
+ }
+ {
+ Intent/Saturation eq
+ {
+ /saturation_crd AGMCORE_gget dup null eq
+ }
+ {
+ /perceptual_crd AGMCORE_gget dup null eq
+ }ifelse
+ }ifelse
+ }ifelse
+ {
+ pop null
+ }
+ {
+ /RenderingIntent known{null}{Intent}ifelse
+ }ifelse
+ }ifelse
+ Intent ne{
+ Intent/ColorRendering{findresource}stopped
+ {
+ pop pop systemdict/findcolorrendering known
+ {
+ Intent findcolorrendering
+ {
+ /ColorRendering findresource true exch
+ }
+ {
+ /ColorRendering findresource
+ product(Xerox Phaser 5400)ne
+ exch
+ }ifelse
+ dup Intent/AbsoluteColorimetric eq
+ {
+ /absolute_colorimetric_crd exch AGMCORE_gput
+ }
+ {
+ Intent/RelativeColorimetric eq
+ {
+ /relative_colorimetric_crd exch AGMCORE_gput
+ }
+ {
+ Intent/Saturation eq
+ {
+ /saturation_crd exch AGMCORE_gput
+ }
+ {
+ Intent/Perceptual eq
+ {
+ /perceptual_crd exch AGMCORE_gput
+ }
+ {
+ pop
+ }ifelse
+ }ifelse
+ }ifelse
+ }ifelse
+ 1 index{exch}{pop}ifelse
+ }
+ {false}ifelse
+ }
+ {true}ifelse
+ {
+ dup begin
+ currentdict/TransformPQR known{
+ currentdict/TransformPQR get aload pop
+ 3{{}eq 3 1 roll}repeat or or
+ }
+ {true}ifelse
+ currentdict/MatrixPQR known{
+ currentdict/MatrixPQR get aload pop
+ 1.0 eq 9 1 roll 0.0 eq 9 1 roll 0.0 eq 9 1 roll
+ 0.0 eq 9 1 roll 1.0 eq 9 1 roll 0.0 eq 9 1 roll
+ 0.0 eq 9 1 roll 0.0 eq 9 1 roll 1.0 eq
+ and and and and and and and and
+ }
+ {true}ifelse
+ end
+ or
+ {
+ clonedict begin
+ /TransformPQR[
+ {4 -1 roll 3 get dup 3 1 roll sub 5 -1 roll 3 get 3 -1 roll sub div
+ 3 -1 roll 3 get 3 -1 roll 3 get dup 4 1 roll sub mul add}bind
+ {4 -1 roll 4 get dup 3 1 roll sub 5 -1 roll 4 get 3 -1 roll sub div
+ 3 -1 roll 4 get 3 -1 roll 4 get dup 4 1 roll sub mul add}bind
+ {4 -1 roll 5 get dup 3 1 roll sub 5 -1 roll 5 get 3 -1 roll sub div
+ 3 -1 roll 5 get 3 -1 roll 5 get dup 4 1 roll sub mul add}bind
+ ]def
+ /MatrixPQR[0.8951 -0.7502 0.0389 0.2664 1.7135 -0.0685 -0.1614 0.0367 1.0296]def
+ /RangePQR[-0.3227950745 2.3229645538 -1.5003771057 3.5003465881 -0.1369979095 2.136967392]def
+ currentdict end
+ }if
+ setcolorrendering_opt
+ }if
+ }if
+}def
+/set_crd
+{
+ AGMCORE_host_sep not level2 and{
+ currentdict/ColorRendering known{
+ ColorRendering/ColorRendering{findresource}stopped not{setcolorrendering_opt}if
+ }{
+ currentdict/Intent known{
+ updatecolorrendering
+ }if
+ }ifelse
+ currentcolorspace dup type/arraytype eq
+ {0 get}if
+ /DeviceRGB eq
+ {
+ currentdict/UCR known
+ {/UCR}{/AGMCORE_currentucr}ifelse
+ load setundercolorremoval
+ currentdict/BG known
+ {/BG}{/AGMCORE_currentbg}ifelse
+ load setblackgeneration
+ }if
+ }if
+}def
+/set_ucrbg
+{
+ dup null eq {pop /AGMCORE_currentbg load}{/Procedure get_res}ifelse
+ dup currentblackgeneration eq {pop}{setblackgeneration}ifelse
+ dup null eq {pop /AGMCORE_currentucr load}{/Procedure get_res}ifelse
+ dup currentundercolorremoval eq {pop}{setundercolorremoval}ifelse
+}def
+/setcolorrendering_opt
+{
+ dup currentcolorrendering eq{
+ pop
+ }{
+ product(HP Color LaserJet 2605)anchorsearch{
+ pop pop pop
+ }{
+ pop
+ clonedict
+ begin
+ /Intent Intent def
+ currentdict
+ end
+ setcolorrendering
+ }ifelse
+ }ifelse
+}def
+/cpaint_gcomp
+{
+ convert_to_process//Adobe_AGM_Core/AGMCORE_ConvertToProcess xddf
+ //Adobe_AGM_Core/AGMCORE_ConvertToProcess get not
+ {
+ (%end_cpaint_gcomp)flushinput
+ }if
+}def
+/cpaint_gsep
+{
+ //Adobe_AGM_Core/AGMCORE_ConvertToProcess get
+ {
+ (%end_cpaint_gsep)flushinput
+ }if
+}def
+/cpaint_gend
+{np}def
+/T1_path
+{
+ currentfile token pop currentfile token pop mo
+ {
+ currentfile token pop dup type/stringtype eq
+ {pop exit}if
+ 0 exch rlineto
+ currentfile token pop dup type/stringtype eq
+ {pop exit}if
+ 0 rlineto
+ }loop
+}def
+/T1_gsave
+ level3
+ {/clipsave}
+ {/gsave}ifelse
+ load def
+/T1_grestore
+ level3
+ {/cliprestore}
+ {/grestore}ifelse
+ load def
+/set_spot_alias_ary
+{
+ dup inherit_aliases
+ //Adobe_AGM_Core/AGMCORE_SpotAliasAry xddf
+}def
+/set_spot_normalization_ary
+{
+ dup inherit_aliases
+ dup length
+ /AGMCORE_SpotAliasAry where{pop AGMCORE_SpotAliasAry length add}if
+ array
+ //Adobe_AGM_Core/AGMCORE_SpotAliasAry2 xddf
+ /AGMCORE_SpotAliasAry where{
+ pop
+ AGMCORE_SpotAliasAry2 0 AGMCORE_SpotAliasAry putinterval
+ AGMCORE_SpotAliasAry length
+ }{0}ifelse
+ AGMCORE_SpotAliasAry2 3 1 roll exch putinterval
+ true set_spot_alias
+}def
+/inherit_aliases
+{
+ {dup/Name get map_alias{/CSD put}{pop}ifelse}forall
+}def
+/set_spot_alias
+{
+ /AGMCORE_SpotAliasAry2 where{
+ /AGMCORE_current_spot_alias 3 -1 roll put
+ }{
+ pop
+ }ifelse
+}def
+/current_spot_alias
+{
+ /AGMCORE_SpotAliasAry2 where{
+ /AGMCORE_current_spot_alias get
+ }{
+ false
+ }ifelse
+}def
+/map_alias
+{
+ /AGMCORE_SpotAliasAry2 where{
+ begin
+ /AGMCORE_name xdf
+ false
+ AGMCORE_SpotAliasAry2{
+ dup/Name get AGMCORE_name eq{
+ /CSD get/CSD get_res
+ exch pop true
+ exit
+ }{
+ pop
+ }ifelse
+ }forall
+ end
+ }{
+ pop false
+ }ifelse
+}bdf
+/spot_alias
+{
+ true set_spot_alias
+ /AGMCORE_&setcustomcolor AGMCORE_key_known not{
+ //Adobe_AGM_Core/AGMCORE_&setcustomcolor/setcustomcolor load put
+ }if
+ /customcolor_tint 1 AGMCORE_gput
+ //Adobe_AGM_Core begin
+ /setcustomcolor
+ {
+ //Adobe_AGM_Core begin
+ dup/customcolor_tint exch AGMCORE_gput
+ 1 index aload pop pop 1 eq exch 1 eq and exch 1 eq and exch 1 eq and not
+ current_spot_alias and{1 index 4 get map_alias}{false}ifelse
+ {
+ false set_spot_alias
+ /sep_colorspace_dict AGMCORE_gget null ne
+ {/sep_colorspace_dict AGMCORE_gget/ForeignContent known not}{false}ifelse
+ 3 1 roll 2 index{
+ exch pop/sep_tint AGMCORE_gget exch
+ }if
+ mark 3 1 roll
+ setsepcolorspace
+ counttomark 0 ne{
+ setsepcolor
+ }if
+ pop
+ not{/sep_tint 1.0 AGMCORE_gput/sep_colorspace_dict AGMCORE_gget/ForeignContent true put}if
+ pop
+ true set_spot_alias
+ }{
+ AGMCORE_&setcustomcolor
+ }ifelse
+ end
+ }bdf
+ end
+}def
+/begin_feature
+{
+ Adobe_AGM_Core/AGMCORE_feature_dictCount countdictstack put
+ count Adobe_AGM_Core/AGMCORE_feature_opCount 3 -1 roll put
+ {Adobe_AGM_Core/AGMCORE_feature_ctm matrix currentmatrix put}if
+}def
+/end_feature
+{
+ 2 dict begin
+ /spd/setpagedevice load def
+ /setpagedevice{get_gstate spd set_gstate}def
+ stopped{$error/newerror false put}if
+ end
+ count Adobe_AGM_Core/AGMCORE_feature_opCount get sub dup 0 gt{{pop}repeat}{pop}ifelse
+ countdictstack Adobe_AGM_Core/AGMCORE_feature_dictCount get sub dup 0 gt{{end}repeat}{pop}ifelse
+ {Adobe_AGM_Core/AGMCORE_feature_ctm get setmatrix}if
+}def
+/set_negative
+{
+ //Adobe_AGM_Core begin
+ /AGMCORE_inverting exch def
+ level2{
+ currentpagedevice/NegativePrint known AGMCORE_distilling not and{
+ currentpagedevice/NegativePrint get//Adobe_AGM_Core/AGMCORE_inverting get ne{
+ true begin_feature true{
+ <</NegativePrint//Adobe_AGM_Core/AGMCORE_inverting get>>setpagedevice
+ }end_feature
+ }if
+ /AGMCORE_inverting false def
+ }if
+ }if
+ AGMCORE_inverting{
+ [{1 exch sub}/exec load dup currenttransfer exch]cvx bind settransfer
+ AGMCORE_distilling{
+ erasepage
+ }{
+ gsave np clippath 1/setseparationgray where{pop setseparationgray}{setgray}ifelse
+ /AGMIRS_&fill where{pop AGMIRS_&fill}{fill}ifelse grestore
+ }ifelse
+ }if
+ end
+}def
+/lw_save_restore_override{
+ /md where{
+ pop
+ md begin
+ initializepage
+ /initializepage{}def
+ /pmSVsetup{}def
+ /endp{}def
+ /pse{}def
+ /psb{}def
+ /orig_showpage where
+ {pop}
+ {/orig_showpage/showpage load def}
+ ifelse
+ /showpage{orig_showpage gR}def
+ end
+ }if
+}def
+/pscript_showpage_override{
+ /NTPSOct95 where
+ {
+ begin
+ showpage
+ save
+ /showpage/restore load def
+ /restore{exch pop}def
+ end
+ }if
+}def
+/driver_media_override
+{
+ /md where{
+ pop
+ md/initializepage known{
+ md/initializepage{}put
+ }if
+ md/rC known{
+ md/rC{4{pop}repeat}put
+ }if
+ }if
+ /mysetup where{
+ /mysetup[1 0 0 1 0 0]put
+ }if
+ Adobe_AGM_Core/AGMCORE_Default_CTM matrix currentmatrix put
+ level2
+ {Adobe_AGM_Core/AGMCORE_Default_PageSize currentpagedevice/PageSize get put}if
+}def
+/capture_mysetup
+{
+ /Pscript_Win_Data where{
+ pop
+ Pscript_Win_Data/mysetup known{
+ Adobe_AGM_Core/save_mysetup Pscript_Win_Data/mysetup get put
+ }if
+ }if
+}def
+/restore_mysetup
+{
+ /Pscript_Win_Data where{
+ pop
+ Pscript_Win_Data/mysetup known{
+ Adobe_AGM_Core/save_mysetup known{
+ Pscript_Win_Data/mysetup Adobe_AGM_Core/save_mysetup get put
+ Adobe_AGM_Core/save_mysetup undef
+ }if
+ }if
+ }if
+}def
+/driver_check_media_override
+{
+ /PrepsDict where
+ {pop}
+ {
+ Adobe_AGM_Core/AGMCORE_Default_CTM get matrix currentmatrix ne
+ Adobe_AGM_Core/AGMCORE_Default_PageSize get type/arraytype eq
+ {
+ Adobe_AGM_Core/AGMCORE_Default_PageSize get 0 get currentpagedevice/PageSize get 0 get eq and
+ Adobe_AGM_Core/AGMCORE_Default_PageSize get 1 get currentpagedevice/PageSize get 1 get eq and
+ }if
+ {
+ Adobe_AGM_Core/AGMCORE_Default_CTM get setmatrix
+ }if
+ }ifelse
+}def
+AGMCORE_err_strings begin
+ /AGMCORE_bad_environ(Environment not satisfactory for this job. Ensure that the PPD is correct or that the PostScript level requested is supported by this printer. )def
+ /AGMCORE_color_space_onhost_seps(This job contains colors that will not separate with on-host methods. )def
+ /AGMCORE_invalid_color_space(This job contains an invalid color space. )def
+end
+/set_def_ht
+{AGMCORE_def_ht sethalftone}def
+/set_def_flat
+{AGMCORE_Default_flatness setflat}def
+end
+systemdict/setpacking known
+{setpacking}if
+%%EndResource
+%%BeginResource: procset Adobe_CoolType_Core 2.31 0
+%%Copyright: Copyright 1997-2006 Adobe Systems Incorporated. All Rights Reserved.
+%%Version: 2.31 0
+10 dict begin
+/Adobe_CoolType_Passthru currentdict def
+/Adobe_CoolType_Core_Defined userdict/Adobe_CoolType_Core known def
+Adobe_CoolType_Core_Defined
+ {/Adobe_CoolType_Core userdict/Adobe_CoolType_Core get def}
+if
+userdict/Adobe_CoolType_Core 70 dict dup begin put
+/Adobe_CoolType_Version 2.31 def
+/Level2?
+ systemdict/languagelevel known dup
+ {pop systemdict/languagelevel get 2 ge}
+ if def
+Level2? not
+ {
+ /currentglobal false def
+ /setglobal/pop load def
+ /gcheck{pop false}bind def
+ /currentpacking false def
+ /setpacking/pop load def
+ /SharedFontDirectory 0 dict def
+ }
+if
+currentpacking
+true setpacking
+currentglobal false setglobal
+userdict/Adobe_CoolType_Data 2 copy known not
+ {2 copy 10 dict put}
+if
+get
+ begin
+ /@opStackCountByLevel 32 dict def
+ /@opStackLevel 0 def
+ /@dictStackCountByLevel 32 dict def
+ /@dictStackLevel 0 def
+ end
+setglobal
+currentglobal true setglobal
+userdict/Adobe_CoolType_GVMFonts known not
+ {userdict/Adobe_CoolType_GVMFonts 10 dict put}
+if
+setglobal
+currentglobal false setglobal
+userdict/Adobe_CoolType_LVMFonts known not
+ {userdict/Adobe_CoolType_LVMFonts 10 dict put}
+if
+setglobal
+/ct_VMDictPut
+ {
+ dup gcheck{Adobe_CoolType_GVMFonts}{Adobe_CoolType_LVMFonts}ifelse
+ 3 1 roll put
+ }bind def
+/ct_VMDictUndef
+ {
+ dup Adobe_CoolType_GVMFonts exch known
+ {Adobe_CoolType_GVMFonts exch undef}
+ {
+ dup Adobe_CoolType_LVMFonts exch known
+ {Adobe_CoolType_LVMFonts exch undef}
+ {pop}
+ ifelse
+ }ifelse
+ }bind def
+/ct_str1 1 string def
+/ct_xshow
+{
+ /_ct_na exch def
+ /_ct_i 0 def
+ currentpoint
+ /_ct_y exch def
+ /_ct_x exch def
+ {
+ pop pop
+ ct_str1 exch 0 exch put
+ ct_str1 show
+ {_ct_na _ct_i get}stopped
+ {pop pop}
+ {
+ _ct_x _ct_y moveto
+ 0
+ rmoveto
+ }
+ ifelse
+ /_ct_i _ct_i 1 add def
+ currentpoint
+ /_ct_y exch def
+ /_ct_x exch def
+ }
+ exch
+ @cshow
+}bind def
+/ct_yshow
+{
+ /_ct_na exch def
+ /_ct_i 0 def
+ currentpoint
+ /_ct_y exch def
+ /_ct_x exch def
+ {
+ pop pop
+ ct_str1 exch 0 exch put
+ ct_str1 show
+ {_ct_na _ct_i get}stopped
+ {pop pop}
+ {
+ _ct_x _ct_y moveto
+ 0 exch
+ rmoveto
+ }
+ ifelse
+ /_ct_i _ct_i 1 add def
+ currentpoint
+ /_ct_y exch def
+ /_ct_x exch def
+ }
+ exch
+ @cshow
+}bind def
+/ct_xyshow
+{
+ /_ct_na exch def
+ /_ct_i 0 def
+ currentpoint
+ /_ct_y exch def
+ /_ct_x exch def
+ {
+ pop pop
+ ct_str1 exch 0 exch put
+ ct_str1 show
+ {_ct_na _ct_i get}stopped
+ {pop pop}
+ {
+ {_ct_na _ct_i 1 add get}stopped
+ {pop pop pop}
+ {
+ _ct_x _ct_y moveto
+ rmoveto
+ }
+ ifelse
+ }
+ ifelse
+ /_ct_i _ct_i 2 add def
+ currentpoint
+ /_ct_y exch def
+ /_ct_x exch def
+ }
+ exch
+ @cshow
+}bind def
+/xsh{{@xshow}stopped{Adobe_CoolType_Data begin ct_xshow end}if}bind def
+/ysh{{@yshow}stopped{Adobe_CoolType_Data begin ct_yshow end}if}bind def
+/xysh{{@xyshow}stopped{Adobe_CoolType_Data begin ct_xyshow end}if}bind def
+currentglobal true setglobal
+/ct_T3Defs
+{
+/BuildChar
+{
+ 1 index/Encoding get exch get
+ 1 index/BuildGlyph get exec
+}bind def
+/BuildGlyph
+{
+ exch begin
+ GlyphProcs exch get exec
+ end
+}bind def
+}bind def
+setglobal
+/@_SaveStackLevels
+ {
+ Adobe_CoolType_Data
+ begin
+ /@vmState currentglobal def false setglobal
+ @opStackCountByLevel
+ @opStackLevel
+ 2 copy known not
+ {
+ 2 copy
+ 3 dict dup/args
+ 7 index
+ 5 add array put
+ put get
+ }
+ {
+ get dup/args get dup length 3 index lt
+ {
+ dup length 5 add array exch
+ 1 index exch 0 exch putinterval
+ 1 index exch/args exch put
+ }
+ {pop}
+ ifelse
+ }
+ ifelse
+ begin
+ count 1 sub
+ 1 index lt
+ {pop count}
+ if
+ dup/argCount exch def
+ dup 0 gt
+ {
+ args exch 0 exch getinterval
+ astore pop
+ }
+ {pop}
+ ifelse
+ count
+ /restCount exch def
+ end
+ /@opStackLevel @opStackLevel 1 add def
+ countdictstack 1 sub
+ @dictStackCountByLevel exch @dictStackLevel exch put
+ /@dictStackLevel @dictStackLevel 1 add def
+ @vmState setglobal
+ end
+ }bind def
+/@_RestoreStackLevels
+ {
+ Adobe_CoolType_Data
+ begin
+ /@opStackLevel @opStackLevel 1 sub def
+ @opStackCountByLevel @opStackLevel get
+ begin
+ count restCount sub dup 0 gt
+ {{pop}repeat}
+ {pop}
+ ifelse
+ args 0 argCount getinterval{}forall
+ end
+ /@dictStackLevel @dictStackLevel 1 sub def
+ @dictStackCountByLevel @dictStackLevel get
+ end
+ countdictstack exch sub dup 0 gt
+ {{end}repeat}
+ {pop}
+ ifelse
+ }bind def
+/@_PopStackLevels
+ {
+ Adobe_CoolType_Data
+ begin
+ /@opStackLevel @opStackLevel 1 sub def
+ /@dictStackLevel @dictStackLevel 1 sub def
+ end
+ }bind def
+/@Raise
+ {
+ exch cvx exch errordict exch get exec
+ stop
+ }bind def
+/@ReRaise
+ {
+ cvx $error/errorname get errordict exch get exec
+ stop
+ }bind def
+/@Stopped
+ {
+ 0 @#Stopped
+ }bind def
+/@#Stopped
+ {
+ @_SaveStackLevels
+ stopped
+ {@_RestoreStackLevels true}
+ {@_PopStackLevels false}
+ ifelse
+ }bind def
+/@Arg
+ {
+ Adobe_CoolType_Data
+ begin
+ @opStackCountByLevel @opStackLevel 1 sub get
+ begin
+ args exch
+ argCount 1 sub exch sub get
+ end
+ end
+ }bind def
+currentglobal true setglobal
+/CTHasResourceForAllBug
+ Level2?
+ {
+ 1 dict dup
+ /@shouldNotDisappearDictValue true def
+ Adobe_CoolType_Data exch/@shouldNotDisappearDict exch put
+ begin
+ count @_SaveStackLevels
+ {(*){pop stop}128 string/Category resourceforall}
+ stopped pop
+ @_RestoreStackLevels
+ currentdict Adobe_CoolType_Data/@shouldNotDisappearDict get dup 3 1 roll ne dup 3 1 roll
+ {
+ /@shouldNotDisappearDictValue known
+ {
+ {
+ end
+ currentdict 1 index eq
+ {pop exit}
+ if
+ }
+ loop
+ }
+ if
+ }
+ {
+ pop
+ end
+ }
+ ifelse
+ }
+ {false}
+ ifelse
+ def
+true setglobal
+/CTHasResourceStatusBug
+ Level2?
+ {
+ mark
+ {/steveamerige/Category resourcestatus}
+ stopped
+ {cleartomark true}
+ {cleartomark currentglobal not}
+ ifelse
+ }
+ {false}
+ ifelse
+ def
+setglobal
+/CTResourceStatus
+ {
+ mark 3 1 roll
+ /Category findresource
+ begin
+ ({ResourceStatus}stopped)0()/SubFileDecode filter cvx exec
+ {cleartomark false}
+ {{3 2 roll pop true}{cleartomark false}ifelse}
+ ifelse
+ end
+ }bind def
+/CTWorkAroundBugs
+ {
+ Level2?
+ {
+ /cid_PreLoad/ProcSet resourcestatus
+ {
+ pop pop
+ currentglobal
+ mark
+ {
+ (*)
+ {
+ dup/CMap CTHasResourceStatusBug
+ {CTResourceStatus}
+ {resourcestatus}
+ ifelse
+ {
+ pop dup 0 eq exch 1 eq or
+ {
+ dup/CMap findresource gcheck setglobal
+ /CMap undefineresource
+ }
+ {
+ pop CTHasResourceForAllBug
+ {exit}
+ {stop}
+ ifelse
+ }
+ ifelse
+ }
+ {pop}
+ ifelse
+ }
+ 128 string/CMap resourceforall
+ }
+ stopped
+ {cleartomark}
+ stopped pop
+ setglobal
+ }
+ if
+ }
+ if
+ }bind def
+/ds
+ {
+ Adobe_CoolType_Core
+ begin
+ CTWorkAroundBugs
+ /mo/moveto load def
+ /nf/newencodedfont load def
+ /msf{makefont setfont}bind def
+ /uf{dup undefinefont ct_VMDictUndef}bind def
+ /ur/undefineresource load def
+ /chp/charpath load def
+ /awsh/awidthshow load def
+ /wsh/widthshow load def
+ /ash/ashow load def
+ /@xshow/xshow load def
+ /@yshow/yshow load def
+ /@xyshow/xyshow load def
+ /@cshow/cshow load def
+ /sh/show load def
+ /rp/repeat load def
+ /.n/.notdef def
+ end
+ currentglobal false setglobal
+ userdict/Adobe_CoolType_Data 2 copy known not
+ {2 copy 10 dict put}
+ if
+ get
+ begin
+ /AddWidths? false def
+ /CC 0 def
+ /charcode 2 string def
+ /@opStackCountByLevel 32 dict def
+ /@opStackLevel 0 def
+ /@dictStackCountByLevel 32 dict def
+ /@dictStackLevel 0 def
+ /InVMFontsByCMap 10 dict def
+ /InVMDeepCopiedFonts 10 dict def
+ end
+ setglobal
+ }bind def
+/dt
+ {
+ currentdict Adobe_CoolType_Core eq
+ {end}
+ if
+ }bind def
+/ps
+ {
+ Adobe_CoolType_Core begin
+ Adobe_CoolType_GVMFonts begin
+ Adobe_CoolType_LVMFonts begin
+ SharedFontDirectory begin
+ }bind def
+/pt
+ {
+ end
+ end
+ end
+ end
+ }bind def
+/unload
+ {
+ systemdict/languagelevel known
+ {
+ systemdict/languagelevel get 2 ge
+ {
+ userdict/Adobe_CoolType_Core 2 copy known
+ {undef}
+ {pop pop}
+ ifelse
+ }
+ if
+ }
+ if
+ }bind def
+/ndf
+ {
+ 1 index where
+ {pop pop pop}
+ {dup xcheck{bind}if def}
+ ifelse
+ }def
+/findfont systemdict
+ begin
+ userdict
+ begin
+ /globaldict where{/globaldict get begin}if
+ dup where pop exch get
+ /globaldict where{pop end}if
+ end
+ end
+Adobe_CoolType_Core_Defined
+ {/systemfindfont exch def}
+ {
+ /findfont 1 index def
+ /systemfindfont exch def
+ }
+ifelse
+/undefinefont
+ {pop}ndf
+/copyfont
+ {
+ currentglobal 3 1 roll
+ 1 index gcheck setglobal
+ dup null eq{0}{dup length}ifelse
+ 2 index length add 1 add dict
+ begin
+ exch
+ {
+ 1 index/FID eq
+ {pop pop}
+ {def}
+ ifelse
+ }
+ forall
+ dup null eq
+ {pop}
+ {{def}forall}
+ ifelse
+ currentdict
+ end
+ exch setglobal
+ }bind def
+/copyarray
+ {
+ currentglobal exch
+ dup gcheck setglobal
+ dup length array copy
+ exch setglobal
+ }bind def
+/newencodedfont
+ {
+ currentglobal
+ {
+ SharedFontDirectory 3 index known
+ {SharedFontDirectory 3 index get/FontReferenced known}
+ {false}
+ ifelse
+ }
+ {
+ FontDirectory 3 index known
+ {FontDirectory 3 index get/FontReferenced known}
+ {
+ SharedFontDirectory 3 index known
+ {SharedFontDirectory 3 index get/FontReferenced known}
+ {false}
+ ifelse
+ }
+ ifelse
+ }
+ ifelse
+ dup
+ {
+ 3 index findfont/FontReferenced get
+ 2 index dup type/nametype eq
+ {findfont}
+ if ne
+ {pop false}
+ if
+ }
+ if
+ dup
+ {
+ 1 index dup type/nametype eq
+ {findfont}
+ if
+ dup/CharStrings known
+ {
+ /CharStrings get length
+ 4 index findfont/CharStrings get length
+ ne
+ {
+ pop false
+ }
+ if
+ }
+ {pop}
+ ifelse
+ }
+ if
+ {
+ pop
+ 1 index findfont
+ /Encoding get exch
+ 0 1 255
+ {2 copy get 3 index 3 1 roll put}
+ for
+ pop pop pop
+ }
+ {
+ currentglobal
+ 4 1 roll
+ dup type/nametype eq
+ {findfont}
+ if
+ dup gcheck setglobal
+ dup dup maxlength 2 add dict
+ begin
+ exch
+ {
+ 1 index/FID ne
+ 2 index/Encoding ne and
+ {def}
+ {pop pop}
+ ifelse
+ }
+ forall
+ /FontReferenced exch def
+ /Encoding exch dup length array copy def
+ /FontName 1 index dup type/stringtype eq{cvn}if def dup
+ currentdict
+ end
+ definefont ct_VMDictPut
+ setglobal
+ }
+ ifelse
+ }bind def
+/SetSubstituteStrategy
+ {
+ $SubstituteFont
+ begin
+ dup type/dicttype ne
+ {0 dict}
+ if
+ currentdict/$Strategies known
+ {
+ exch $Strategies exch
+ 2 copy known
+ {
+ get
+ 2 copy maxlength exch maxlength add dict
+ begin
+ {def}forall
+ {def}forall
+ currentdict
+ dup/$Init known
+ {dup/$Init get exec}
+ if
+ end
+ /$Strategy exch def
+ }
+ {pop pop pop}
+ ifelse
+ }
+ {pop pop}
+ ifelse
+ end
+ }bind def
+/scff
+ {
+ $SubstituteFont
+ begin
+ dup type/stringtype eq
+ {dup length exch}
+ {null}
+ ifelse
+ /$sname exch def
+ /$slen exch def
+ /$inVMIndex
+ $sname null eq
+ {
+ 1 index $str cvs
+ dup length $slen sub $slen getinterval cvn
+ }
+ {$sname}
+ ifelse def
+ end
+ {findfont}
+ @Stopped
+ {
+ dup length 8 add string exch
+ 1 index 0(BadFont:)putinterval
+ 1 index exch 8 exch dup length string cvs putinterval cvn
+ {findfont}
+ @Stopped
+ {pop/Courier findfont}
+ if
+ }
+ if
+ $SubstituteFont
+ begin
+ /$sname null def
+ /$slen 0 def
+ /$inVMIndex null def
+ end
+ }bind def
+/isWidthsOnlyFont
+ {
+ dup/WidthsOnly known
+ {pop pop true}
+ {
+ dup/FDepVector known
+ {/FDepVector get{isWidthsOnlyFont dup{exit}if}forall}
+ {
+ dup/FDArray known
+ {/FDArray get{isWidthsOnlyFont dup{exit}if}forall}
+ {pop}
+ ifelse
+ }
+ ifelse
+ }
+ ifelse
+ }bind def
+/ct_StyleDicts 4 dict dup begin
+ /Adobe-Japan1 4 dict dup begin
+ Level2?
+ {
+ /Serif
+ /HeiseiMin-W3-83pv-RKSJ-H/Font resourcestatus
+ {pop pop/HeiseiMin-W3}
+ {
+ /CIDFont/Category resourcestatus
+ {
+ pop pop
+ /HeiseiMin-W3/CIDFont resourcestatus
+ {pop pop/HeiseiMin-W3}
+ {/Ryumin-Light}
+ ifelse
+ }
+ {/Ryumin-Light}
+ ifelse
+ }
+ ifelse
+ def
+ /SansSerif
+ /HeiseiKakuGo-W5-83pv-RKSJ-H/Font resourcestatus
+ {pop pop/HeiseiKakuGo-W5}
+ {
+ /CIDFont/Category resourcestatus
+ {
+ pop pop
+ /HeiseiKakuGo-W5/CIDFont resourcestatus
+ {pop pop/HeiseiKakuGo-W5}
+ {/GothicBBB-Medium}
+ ifelse
+ }
+ {/GothicBBB-Medium}
+ ifelse
+ }
+ ifelse
+ def
+ /HeiseiMaruGo-W4-83pv-RKSJ-H/Font resourcestatus
+ {pop pop/HeiseiMaruGo-W4}
+ {
+ /CIDFont/Category resourcestatus
+ {
+ pop pop
+ /HeiseiMaruGo-W4/CIDFont resourcestatus
+ {pop pop/HeiseiMaruGo-W4}
+ {
+ /Jun101-Light-RKSJ-H/Font resourcestatus
+ {pop pop/Jun101-Light}
+ {SansSerif}
+ ifelse
+ }
+ ifelse
+ }
+ {
+ /Jun101-Light-RKSJ-H/Font resourcestatus
+ {pop pop/Jun101-Light}
+ {SansSerif}
+ ifelse
+ }
+ ifelse
+ }
+ ifelse
+ /RoundSansSerif exch def
+ /Default Serif def
+ }
+ {
+ /Serif/Ryumin-Light def
+ /SansSerif/GothicBBB-Medium def
+ {
+ (fonts/Jun101-Light-83pv-RKSJ-H)status
+ }stopped
+ {pop}{
+ {pop pop pop pop/Jun101-Light}
+ {SansSerif}
+ ifelse
+ /RoundSansSerif exch def
+ }ifelse
+ /Default Serif def
+ }
+ ifelse
+ end
+ def
+ /Adobe-Korea1 4 dict dup begin
+ /Serif/HYSMyeongJo-Medium def
+ /SansSerif/HYGoThic-Medium def
+ /RoundSansSerif SansSerif def
+ /Default Serif def
+ end
+ def
+ /Adobe-GB1 4 dict dup begin
+ /Serif/STSong-Light def
+ /SansSerif/STHeiti-Regular def
+ /RoundSansSerif SansSerif def
+ /Default Serif def
+ end
+ def
+ /Adobe-CNS1 4 dict dup begin
+ /Serif/MKai-Medium def
+ /SansSerif/MHei-Medium def
+ /RoundSansSerif SansSerif def
+ /Default Serif def
+ end
+ def
+end
+def
+Level2?{currentglobal true setglobal}if
+/ct_BoldRomanWidthProc
+ {
+ stringwidth 1 index 0 ne{exch .03 add exch}if setcharwidth
+ 0 0
+ }bind def
+/ct_Type0WidthProc
+ {
+ dup stringwidth 0 0 moveto
+ 2 index true charpath pathbbox
+ 0 -1
+ 7 index 2 div .88
+ setcachedevice2
+ pop
+ 0 0
+ }bind def
+/ct_Type0WMode1WidthProc
+ {
+ dup stringwidth
+ pop 2 div neg -0.88
+ 2 copy
+ moveto
+ 0 -1
+ 5 -1 roll true charpath pathbbox
+ setcachedevice
+ }bind def
+/cHexEncoding
+[/c00/c01/c02/c03/c04/c05/c06/c07/c08/c09/c0A/c0B/c0C/c0D/c0E/c0F/c10/c11/c12
+/c13/c14/c15/c16/c17/c18/c19/c1A/c1B/c1C/c1D/c1E/c1F/c20/c21/c22/c23/c24/c25
+/c26/c27/c28/c29/c2A/c2B/c2C/c2D/c2E/c2F/c30/c31/c32/c33/c34/c35/c36/c37/c38
+/c39/c3A/c3B/c3C/c3D/c3E/c3F/c40/c41/c42/c43/c44/c45/c46/c47/c48/c49/c4A/c4B
+/c4C/c4D/c4E/c4F/c50/c51/c52/c53/c54/c55/c56/c57/c58/c59/c5A/c5B/c5C/c5D/c5E
+/c5F/c60/c61/c62/c63/c64/c65/c66/c67/c68/c69/c6A/c6B/c6C/c6D/c6E/c6F/c70/c71
+/c72/c73/c74/c75/c76/c77/c78/c79/c7A/c7B/c7C/c7D/c7E/c7F/c80/c81/c82/c83/c84
+/c85/c86/c87/c88/c89/c8A/c8B/c8C/c8D/c8E/c8F/c90/c91/c92/c93/c94/c95/c96/c97
+/c98/c99/c9A/c9B/c9C/c9D/c9E/c9F/cA0/cA1/cA2/cA3/cA4/cA5/cA6/cA7/cA8/cA9/cAA
+/cAB/cAC/cAD/cAE/cAF/cB0/cB1/cB2/cB3/cB4/cB5/cB6/cB7/cB8/cB9/cBA/cBB/cBC/cBD
+/cBE/cBF/cC0/cC1/cC2/cC3/cC4/cC5/cC6/cC7/cC8/cC9/cCA/cCB/cCC/cCD/cCE/cCF/cD0
+/cD1/cD2/cD3/cD4/cD5/cD6/cD7/cD8/cD9/cDA/cDB/cDC/cDD/cDE/cDF/cE0/cE1/cE2/cE3
+/cE4/cE5/cE6/cE7/cE8/cE9/cEA/cEB/cEC/cED/cEE/cEF/cF0/cF1/cF2/cF3/cF4/cF5/cF6
+/cF7/cF8/cF9/cFA/cFB/cFC/cFD/cFE/cFF]def
+/ct_BoldBaseFont
+ 11 dict begin
+ /FontType 3 def
+ /FontMatrix[1 0 0 1 0 0]def
+ /FontBBox[0 0 1 1]def
+ /Encoding cHexEncoding def
+ /_setwidthProc/ct_BoldRomanWidthProc load def
+ /_bcstr1 1 string def
+ /BuildChar
+ {
+ exch begin
+ _basefont setfont
+ _bcstr1 dup 0 4 -1 roll put
+ dup
+ _setwidthProc
+ 3 copy
+ moveto
+ show
+ _basefonto setfont
+ moveto
+ show
+ end
+ }bind def
+ currentdict
+ end
+def
+systemdict/composefont known
+{
+/ct_DefineIdentity-H
+{
+ /Identity-H/CMap resourcestatus
+ {
+ pop pop
+ }
+ {
+ /CIDInit/ProcSet findresource begin
+ 12 dict begin
+ begincmap
+ /CIDSystemInfo 3 dict dup begin
+ /Registry(Adobe)def
+ /Ordering(Identity)def
+ /Supplement 0 def
+ end def
+ /CMapName/Identity-H def
+ /CMapVersion 1.000 def
+ /CMapType 1 def
+ 1 begincodespacerange
+ <0000><FFFF>
+ endcodespacerange
+ 1 begincidrange
+ <0000><FFFF>0
+ endcidrange
+ endcmap
+ CMapName currentdict/CMap defineresource pop
+ end
+ end
+ }
+ ifelse
+}
+def
+/ct_BoldBaseCIDFont
+ 11 dict begin
+ /CIDFontType 1 def
+ /CIDFontName/ct_BoldBaseCIDFont def
+ /FontMatrix[1 0 0 1 0 0]def
+ /FontBBox[0 0 1 1]def
+ /_setwidthProc/ct_Type0WidthProc load def
+ /_bcstr2 2 string def
+ /BuildGlyph
+ {
+ exch begin
+ _basefont setfont
+ _bcstr2 1 2 index 256 mod put
+ _bcstr2 0 3 -1 roll 256 idiv put
+ _bcstr2 dup _setwidthProc
+ 3 copy
+ moveto
+ show
+ _basefonto setfont
+ moveto
+ show
+ end
+ }bind def
+ currentdict
+ end
+def
+}if
+Level2?{setglobal}if
+/ct_CopyFont{
+ {
+ 1 index/FID ne 2 index/UniqueID ne and
+ {def}{pop pop}ifelse
+ }forall
+}bind def
+/ct_Type0CopyFont
+{
+ exch
+ dup length dict
+ begin
+ ct_CopyFont
+ [
+ exch
+ FDepVector
+ {
+ dup/FontType get 0 eq
+ {
+ 1 index ct_Type0CopyFont
+ /_ctType0 exch definefont
+ }
+ {
+ /_ctBaseFont exch
+ 2 index exec
+ }
+ ifelse
+ exch
+ }
+ forall
+ pop
+ ]
+ /FDepVector exch def
+ currentdict
+ end
+}bind def
+/ct_MakeBoldFont
+{
+ dup/ct_SyntheticBold known
+ {
+ dup length 3 add dict begin
+ ct_CopyFont
+ /ct_StrokeWidth .03 0 FontMatrix idtransform pop def
+ /ct_SyntheticBold true def
+ currentdict
+ end
+ definefont
+ }
+ {
+ dup dup length 3 add dict
+ begin
+ ct_CopyFont
+ /PaintType 2 def
+ /StrokeWidth .03 0 FontMatrix idtransform pop def
+ /dummybold currentdict
+ end
+ definefont
+ dup/FontType get dup 9 ge exch 11 le and
+ {
+ ct_BoldBaseCIDFont
+ dup length 3 add dict copy begin
+ dup/CIDSystemInfo get/CIDSystemInfo exch def
+ ct_DefineIdentity-H
+ /_Type0Identity/Identity-H 3 -1 roll[exch]composefont
+ /_basefont exch def
+ /_Type0Identity/Identity-H 3 -1 roll[exch]composefont
+ /_basefonto exch def
+ currentdict
+ end
+ /CIDFont defineresource
+ }
+ {
+ ct_BoldBaseFont
+ dup length 3 add dict copy begin
+ /_basefont exch def
+ /_basefonto exch def
+ currentdict
+ end
+ definefont
+ }
+ ifelse
+ }
+ ifelse
+}bind def
+/ct_MakeBold{
+ 1 index
+ 1 index
+ findfont
+ currentglobal 5 1 roll
+ dup gcheck setglobal
+ dup
+ /FontType get 0 eq
+ {
+ dup/WMode known{dup/WMode get 1 eq}{false}ifelse
+ version length 4 ge
+ and
+ {version 0 4 getinterval cvi 2015 ge}
+ {true}
+ ifelse
+ {/ct_Type0WidthProc}
+ {/ct_Type0WMode1WidthProc}
+ ifelse
+ ct_BoldBaseFont/_setwidthProc 3 -1 roll load put
+ {ct_MakeBoldFont}ct_Type0CopyFont definefont
+ }
+ {
+ dup/_fauxfont known not 1 index/SubstMaster known not and
+ {
+ ct_BoldBaseFont/_setwidthProc /ct_BoldRomanWidthProc load put
+ ct_MakeBoldFont
+ }
+ {
+ 2 index 2 index eq
+ {exch pop }
+ {
+ dup length dict begin
+ ct_CopyFont
+ currentdict
+ end
+ definefont
+ }
+ ifelse
+ }
+ ifelse
+ }
+ ifelse
+ pop pop pop
+ setglobal
+}bind def
+/?str1 256 string def
+/?set
+ {
+ $SubstituteFont
+ begin
+ /$substituteFound false def
+ /$fontname 1 index def
+ /$doSmartSub false def
+ end
+ dup
+ findfont
+ $SubstituteFont
+ begin
+ $substituteFound
+ {false}
+ {
+ dup/FontName known
+ {
+ dup/FontName get $fontname eq
+ 1 index/DistillerFauxFont known not and
+ /currentdistillerparams where
+ {pop false 2 index isWidthsOnlyFont not and}
+ if
+ }
+ {false}
+ ifelse
+ }
+ ifelse
+ exch pop
+ /$doSmartSub true def
+ end
+ {
+ 5 1 roll pop pop pop pop
+ findfont
+ }
+ {
+ 1 index
+ findfont
+ dup/FontType get 3 eq
+ {
+ 6 1 roll pop pop pop pop pop false
+ }
+ {pop true}
+ ifelse
+ {
+ $SubstituteFont
+ begin
+ pop pop
+ /$styleArray 1 index def
+ /$regOrdering 2 index def
+ pop pop
+ 0 1 $styleArray length 1 sub
+ {
+ $styleArray exch get
+ ct_StyleDicts $regOrdering
+ 2 copy known
+ {
+ get
+ exch 2 copy known not
+ {pop/Default}
+ if
+ get
+ dup type/nametype eq
+ {
+ ?str1 cvs length dup 1 add exch
+ ?str1 exch(-)putinterval
+ exch dup length exch ?str1 exch 3 index exch putinterval
+ add ?str1 exch 0 exch getinterval cvn
+ }
+ {
+ pop pop/Unknown
+ }
+ ifelse
+ }
+ {
+ pop pop pop pop/Unknown
+ }
+ ifelse
+ }
+ for
+ end
+ findfont
+ }if
+ }
+ ifelse
+ currentglobal false setglobal 3 1 roll
+ null copyfont definefont pop
+ setglobal
+ }bind def
+setpacking
+userdict/$SubstituteFont 25 dict put
+1 dict
+ begin
+ /SubstituteFont
+ dup $error exch 2 copy known
+ {get}
+ {pop pop{pop/Courier}bind}
+ ifelse def
+ /currentdistillerparams where dup
+ {
+ pop pop
+ currentdistillerparams/CannotEmbedFontPolicy 2 copy known
+ {get/Error eq}
+ {pop pop false}
+ ifelse
+ }
+ if not
+ {
+ countdictstack array dictstack 0 get
+ begin
+ userdict
+ begin
+ $SubstituteFont
+ begin
+ /$str 128 string def
+ /$fontpat 128 string def
+ /$slen 0 def
+ /$sname null def
+ /$match false def
+ /$fontname null def
+ /$substituteFound false def
+ /$inVMIndex null def
+ /$doSmartSub true def
+ /$depth 0 def
+ /$fontname null def
+ /$italicangle 26.5 def
+ /$dstack null def
+ /$Strategies 10 dict dup
+ begin
+ /$Type3Underprint
+ {
+ currentglobal exch false setglobal
+ 11 dict
+ begin
+ /UseFont exch
+ $WMode 0 ne
+ {
+ dup length dict copy
+ dup/WMode $WMode put
+ /UseFont exch definefont
+ }
+ if def
+ /FontName $fontname dup type/stringtype eq{cvn}if def
+ /FontType 3 def
+ /FontMatrix[.001 0 0 .001 0 0]def
+ /Encoding 256 array dup 0 1 255{/.notdef put dup}for pop def
+ /FontBBox[0 0 0 0]def
+ /CCInfo 7 dict dup
+ begin
+ /cc null def
+ /x 0 def
+ /y 0 def
+ end def
+ /BuildChar
+ {
+ exch
+ begin
+ CCInfo
+ begin
+ 1 string dup 0 3 index put exch pop
+ /cc exch def
+ UseFont 1000 scalefont setfont
+ cc stringwidth/y exch def/x exch def
+ x y setcharwidth
+ $SubstituteFont/$Strategy get/$Underprint get exec
+ 0 0 moveto cc show
+ x y moveto
+ end
+ end
+ }bind def
+ currentdict
+ end
+ exch setglobal
+ }bind def
+ /$GetaTint
+ 2 dict dup
+ begin
+ /$BuildFont
+ {
+ dup/WMode known
+ {dup/WMode get}
+ {0}
+ ifelse
+ /$WMode exch def
+ $fontname exch
+ dup/FontName known
+ {
+ dup/FontName get
+ dup type/stringtype eq{cvn}if
+ }
+ {/unnamedfont}
+ ifelse
+ exch
+ Adobe_CoolType_Data/InVMDeepCopiedFonts get
+ 1 index/FontName get known
+ {
+ pop
+ Adobe_CoolType_Data/InVMDeepCopiedFonts get
+ 1 index get
+ null copyfont
+ }
+ {$deepcopyfont}
+ ifelse
+ exch 1 index exch/FontBasedOn exch put
+ dup/FontName $fontname dup type/stringtype eq{cvn}if put
+ definefont
+ Adobe_CoolType_Data/InVMDeepCopiedFonts get
+ begin
+ dup/FontBasedOn get 1 index def
+ end
+ }bind def
+ /$Underprint
+ {
+ gsave
+ x abs y abs gt
+ {/y 1000 def}
+ {/x -1000 def 500 120 translate}
+ ifelse
+ Level2?
+ {
+ [/Separation(All)/DeviceCMYK{0 0 0 1 pop}]
+ setcolorspace
+ }
+ {0 setgray}
+ ifelse
+ 10 setlinewidth
+ x .8 mul
+ [7 3]
+ {
+ y mul 8 div 120 sub x 10 div exch moveto
+ 0 y 4 div neg rlineto
+ dup 0 rlineto
+ 0 y 4 div rlineto
+ closepath
+ gsave
+ Level2?
+ {.2 setcolor}
+ {.8 setgray}
+ ifelse
+ fill grestore
+ stroke
+ }
+ forall
+ pop
+ grestore
+ }bind def
+ end def
+ /$Oblique
+ 1 dict dup
+ begin
+ /$BuildFont
+ {
+ currentglobal exch dup gcheck setglobal
+ null copyfont
+ begin
+ /FontBasedOn
+ currentdict/FontName known
+ {
+ FontName
+ dup type/stringtype eq{cvn}if
+ }
+ {/unnamedfont}
+ ifelse
+ def
+ /FontName $fontname dup type/stringtype eq{cvn}if def
+ /currentdistillerparams where
+ {pop}
+ {
+ /FontInfo currentdict/FontInfo known
+ {FontInfo null copyfont}
+ {2 dict}
+ ifelse
+ dup
+ begin
+ /ItalicAngle $italicangle def
+ /FontMatrix FontMatrix
+ [1 0 ItalicAngle dup sin exch cos div 1 0 0]
+ matrix concatmatrix readonly
+ end
+ 4 2 roll def
+ def
+ }
+ ifelse
+ FontName currentdict
+ end
+ definefont
+ exch setglobal
+ }bind def
+ end def
+ /$None
+ 1 dict dup
+ begin
+ /$BuildFont{}bind def
+ end def
+ end def
+ /$Oblique SetSubstituteStrategy
+ /$findfontByEnum
+ {
+ dup type/stringtype eq{cvn}if
+ dup/$fontname exch def
+ $sname null eq
+ {$str cvs dup length $slen sub $slen getinterval}
+ {pop $sname}
+ ifelse
+ $fontpat dup 0(fonts/*)putinterval exch 7 exch putinterval
+ /$match false def
+ $SubstituteFont/$dstack countdictstack array dictstack put
+ mark
+ {
+ $fontpat 0 $slen 7 add getinterval
+ {/$match exch def exit}
+ $str filenameforall
+ }
+ stopped
+ {
+ cleardictstack
+ currentdict
+ true
+ $SubstituteFont/$dstack get
+ {
+ exch
+ {
+ 1 index eq
+ {pop false}
+ {true}
+ ifelse
+ }
+ {begin false}
+ ifelse
+ }
+ forall
+ pop
+ }
+ if
+ cleartomark
+ /$slen 0 def
+ $match false ne
+ {$match(fonts/)anchorsearch pop pop cvn}
+ {/Courier}
+ ifelse
+ }bind def
+ /$ROS 1 dict dup
+ begin
+ /Adobe 4 dict dup
+ begin
+ /Japan1 [/Ryumin-Light/HeiseiMin-W3
+ /GothicBBB-Medium/HeiseiKakuGo-W5
+ /HeiseiMaruGo-W4/Jun101-Light]def
+ /Korea1 [/HYSMyeongJo-Medium/HYGoThic-Medium]def
+ /GB1 [/STSong-Light/STHeiti-Regular]def
+ /CNS1 [/MKai-Medium/MHei-Medium]def
+ end def
+ end def
+ /$cmapname null def
+ /$deepcopyfont
+ {
+ dup/FontType get 0 eq
+ {
+ 1 dict dup/FontName/copied put copyfont
+ begin
+ /FDepVector FDepVector copyarray
+ 0 1 2 index length 1 sub
+ {
+ 2 copy get $deepcopyfont
+ dup/FontName/copied put
+ /copied exch definefont
+ 3 copy put pop pop
+ }
+ for
+ def
+ currentdict
+ end
+ }
+ {$Strategies/$Type3Underprint get exec}
+ ifelse
+ }bind def
+ /$buildfontname
+ {
+ dup/CIDFont findresource/CIDSystemInfo get
+ begin
+ Registry length Ordering length Supplement 8 string cvs
+ 3 copy length 2 add add add string
+ dup 5 1 roll dup 0 Registry putinterval
+ dup 4 index(-)putinterval
+ dup 4 index 1 add Ordering putinterval
+ 4 2 roll add 1 add 2 copy(-)putinterval
+ end
+ 1 add 2 copy 0 exch getinterval $cmapname $fontpat cvs exch
+ anchorsearch
+ {pop pop 3 2 roll putinterval cvn/$cmapname exch def}
+ {pop pop pop pop pop}
+ ifelse
+ length
+ $str 1 index(-)putinterval 1 add
+ $str 1 index $cmapname $fontpat cvs putinterval
+ $cmapname length add
+ $str exch 0 exch getinterval cvn
+ }bind def
+ /$findfontByROS
+ {
+ /$fontname exch def
+ $ROS Registry 2 copy known
+ {
+ get Ordering 2 copy known
+ {get}
+ {pop pop[]}
+ ifelse
+ }
+ {pop pop[]}
+ ifelse
+ false exch
+ {
+ dup/CIDFont resourcestatus
+ {
+ pop pop
+ save
+ 1 index/CIDFont findresource
+ dup/WidthsOnly known
+ {dup/WidthsOnly get}
+ {false}
+ ifelse
+ exch pop
+ exch restore
+ {pop}
+ {exch pop true exit}
+ ifelse
+ }
+ {pop}
+ ifelse
+ }
+ forall
+ {$str cvs $buildfontname}
+ {
+ false(*)
+ {
+ save exch
+ dup/CIDFont findresource
+ dup/WidthsOnly known
+ {dup/WidthsOnly get not}
+ {true}
+ ifelse
+ exch/CIDSystemInfo get
+ dup/Registry get Registry eq
+ exch/Ordering get Ordering eq and and
+ {exch restore exch pop true exit}
+ {pop restore}
+ ifelse
+ }
+ $str/CIDFont resourceforall
+ {$buildfontname}
+ {$fontname $findfontByEnum}
+ ifelse
+ }
+ ifelse
+ }bind def
+ end
+ end
+ currentdict/$error known currentdict/languagelevel known and dup
+ {pop $error/SubstituteFont known}
+ if
+ dup
+ {$error}
+ {Adobe_CoolType_Core}
+ ifelse
+ begin
+ {
+ /SubstituteFont
+ /CMap/Category resourcestatus
+ {
+ pop pop
+ {
+ $SubstituteFont
+ begin
+ /$substituteFound true def
+ dup length $slen gt
+ $sname null ne or
+ $slen 0 gt and
+ {
+ $sname null eq
+ {dup $str cvs dup length $slen sub $slen getinterval cvn}
+ {$sname}
+ ifelse
+ Adobe_CoolType_Data/InVMFontsByCMap get
+ 1 index 2 copy known
+ {
+ get
+ false exch
+ {
+ pop
+ currentglobal
+ {
+ GlobalFontDirectory 1 index known
+ {exch pop true exit}
+ {pop}
+ ifelse
+ }
+ {
+ FontDirectory 1 index known
+ {exch pop true exit}
+ {
+ GlobalFontDirectory 1 index known
+ {exch pop true exit}
+ {pop}
+ ifelse
+ }
+ ifelse
+ }
+ ifelse
+ }
+ forall
+ }
+ {pop pop false}
+ ifelse
+ {
+ exch pop exch pop
+ }
+ {
+ dup/CMap resourcestatus
+ {
+ pop pop
+ dup/$cmapname exch def
+ /CMap findresource/CIDSystemInfo get{def}forall
+ $findfontByROS
+ }
+ {
+ 128 string cvs
+ dup(-)search
+ {
+ 3 1 roll search
+ {
+ 3 1 roll pop
+ {dup cvi}
+ stopped
+ {pop pop pop pop pop $findfontByEnum}
+ {
+ 4 2 roll pop pop
+ exch length
+ exch
+ 2 index length
+ 2 index
+ sub
+ exch 1 sub -1 0
+ {
+ $str cvs dup length
+ 4 index
+ 0
+ 4 index
+ 4 3 roll add
+ getinterval
+ exch 1 index exch 3 index exch
+ putinterval
+ dup/CMap resourcestatus
+ {
+ pop pop
+ 4 1 roll pop pop pop
+ dup/$cmapname exch def
+ /CMap findresource/CIDSystemInfo get{def}forall
+ $findfontByROS
+ true exit
+ }
+ {pop}
+ ifelse
+ }
+ for
+ dup type/booleantype eq
+ {pop}
+ {pop pop pop $findfontByEnum}
+ ifelse
+ }
+ ifelse
+ }
+ {pop pop pop $findfontByEnum}
+ ifelse
+ }
+ {pop pop $findfontByEnum}
+ ifelse
+ }
+ ifelse
+ }
+ ifelse
+ }
+ {//SubstituteFont exec}
+ ifelse
+ /$slen 0 def
+ end
+ }
+ }
+ {
+ {
+ $SubstituteFont
+ begin
+ /$substituteFound true def
+ dup length $slen gt
+ $sname null ne or
+ $slen 0 gt and
+ {$findfontByEnum}
+ {//SubstituteFont exec}
+ ifelse
+ end
+ }
+ }
+ ifelse
+ bind readonly def
+ Adobe_CoolType_Core/scfindfont/systemfindfont load put
+ }
+ {
+ /scfindfont
+ {
+ $SubstituteFont
+ begin
+ dup systemfindfont
+ dup/FontName known
+ {dup/FontName get dup 3 index ne}
+ {/noname true}
+ ifelse
+ dup
+ {
+ /$origfontnamefound 2 index def
+ /$origfontname 4 index def/$substituteFound true def
+ }
+ if
+ exch pop
+ {
+ $slen 0 gt
+ $sname null ne
+ 3 index length $slen gt or and
+ {
+ pop dup $findfontByEnum findfont
+ dup maxlength 1 add dict
+ begin
+ {1 index/FID eq{pop pop}{def}ifelse}
+ forall
+ currentdict
+ end
+ definefont
+ dup/FontName known{dup/FontName get}{null}ifelse
+ $origfontnamefound ne
+ {
+ $origfontname $str cvs print
+ ( substitution revised, using )print
+ dup/FontName known
+ {dup/FontName get}{(unspecified font)}
+ ifelse
+ $str cvs print(.\n)print
+ }
+ if
+ }
+ {exch pop}
+ ifelse
+ }
+ {exch pop}
+ ifelse
+ end
+ }bind def
+ }
+ ifelse
+ end
+ end
+ Adobe_CoolType_Core_Defined not
+ {
+ Adobe_CoolType_Core/findfont
+ {
+ $SubstituteFont
+ begin
+ $depth 0 eq
+ {
+ /$fontname 1 index dup type/stringtype ne{$str cvs}if def
+ /$substituteFound false def
+ }
+ if
+ /$depth $depth 1 add def
+ end
+ scfindfont
+ $SubstituteFont
+ begin
+ /$depth $depth 1 sub def
+ $substituteFound $depth 0 eq and
+ {
+ $inVMIndex null ne
+ {dup $inVMIndex $AddInVMFont}
+ if
+ $doSmartSub
+ {
+ currentdict/$Strategy known
+ {$Strategy/$BuildFont get exec}
+ if
+ }
+ if
+ }
+ if
+ end
+ }bind put
+ }
+ if
+ }
+ if
+ end
+/$AddInVMFont
+ {
+ exch/FontName 2 copy known
+ {
+ get
+ 1 dict dup begin exch 1 index gcheck def end exch
+ Adobe_CoolType_Data/InVMFontsByCMap get exch
+ $DictAdd
+ }
+ {pop pop pop}
+ ifelse
+ }bind def
+/$DictAdd
+ {
+ 2 copy known not
+ {2 copy 4 index length dict put}
+ if
+ Level2? not
+ {
+ 2 copy get dup maxlength exch length 4 index length add lt
+ 2 copy get dup length 4 index length add exch maxlength 1 index lt
+ {
+ 2 mul dict
+ begin
+ 2 copy get{forall}def
+ 2 copy currentdict put
+ end
+ }
+ {pop}
+ ifelse
+ }
+ if
+ get
+ begin
+ {def}
+ forall
+ end
+ }bind def
+end
+end
+%%EndResource
+currentglobal true setglobal
+%%BeginResource: procset Adobe_CoolType_Utility_MAKEOCF 1.23 0
+%%Copyright: Copyright 1987-2006 Adobe Systems Incorporated.
+%%Version: 1.23 0
+systemdict/languagelevel known dup
+ {currentglobal false setglobal}
+ {false}
+ifelse
+exch
+userdict/Adobe_CoolType_Utility 2 copy known
+ {2 copy get dup maxlength 27 add dict copy}
+ {27 dict}
+ifelse put
+Adobe_CoolType_Utility
+ begin
+ /@eexecStartData
+ <BAB431EA07F209EB8C4348311481D9D3F76E3D15246555577D87BC510ED54E
+ 118C39697FA9F6DB58128E60EB8A12FA24D7CDD2FA94D221FA9EC8DA3E5E6A1C
+ 4ACECC8C2D39C54E7C946031DD156C3A6B4A09AD29E1867A>def
+ /@recognizeCIDFont null def
+ /ct_Level2? exch def
+ /ct_Clone? 1183615869 internaldict dup
+ /CCRun known not
+ exch/eCCRun known not
+ ct_Level2? and or def
+ct_Level2?
+ {globaldict begin currentglobal true setglobal}
+if
+ /ct_AddStdCIDMap
+ ct_Level2?
+ {{
+ mark
+ Adobe_CoolType_Utility/@recognizeCIDFont currentdict put
+ {
+ ((Hex)57 StartData
+ 0615 1e27 2c39 1c60 d8a8 cc31 fe2b f6e0
+ 7aa3 e541 e21c 60d8 a8c9 c3d0 6d9e 1c60
+ d8a8 c9c2 02d7 9a1c 60d8 a849 1c60 d8a8
+ cc36 74f4 1144 b13b 77)0()/SubFileDecode filter cvx exec
+ }
+ stopped
+ {
+ cleartomark
+ Adobe_CoolType_Utility/@recognizeCIDFont get
+ countdictstack dup array dictstack
+ exch 1 sub -1 0
+ {
+ 2 copy get 3 index eq
+ {1 index length exch sub 1 sub{end}repeat exit}
+ {pop}
+ ifelse
+ }
+ for
+ pop pop
+ Adobe_CoolType_Utility/@eexecStartData get eexec
+ }
+ {cleartomark}
+ ifelse
+ }}
+ {{
+ Adobe_CoolType_Utility/@eexecStartData get eexec
+ }}
+ ifelse bind def
+userdict/cid_extensions known
+dup{cid_extensions/cid_UpdateDB known and}if
+ {
+ cid_extensions
+ begin
+ /cid_GetCIDSystemInfo
+ {
+ 1 index type/stringtype eq
+ {exch cvn exch}
+ if
+ cid_extensions
+ begin
+ dup load 2 index known
+ {
+ 2 copy
+ cid_GetStatusInfo
+ dup null ne
+ {
+ 1 index load
+ 3 index get
+ dup null eq
+ {pop pop cid_UpdateDB}
+ {
+ exch
+ 1 index/Created get eq
+ {exch pop exch pop}
+ {pop cid_UpdateDB}
+ ifelse
+ }
+ ifelse
+ }
+ {pop cid_UpdateDB}
+ ifelse
+ }
+ {cid_UpdateDB}
+ ifelse
+ end
+ }bind def
+ end
+ }
+if
+ct_Level2?
+ {end setglobal}
+if
+ /ct_UseNativeCapability? systemdict/composefont known def
+ /ct_MakeOCF 35 dict def
+ /ct_Vars 25 dict def
+ /ct_GlyphDirProcs 6 dict def
+ /ct_BuildCharDict 15 dict dup
+ begin
+ /charcode 2 string def
+ /dst_string 1500 string def
+ /nullstring()def
+ /usewidths? true def
+ end def
+ ct_Level2?{setglobal}{pop}ifelse
+ ct_GlyphDirProcs
+ begin
+ /GetGlyphDirectory
+ {
+ systemdict/languagelevel known
+ {pop/CIDFont findresource/GlyphDirectory get}
+ {
+ 1 index/CIDFont findresource/GlyphDirectory
+ get dup type/dicttype eq
+ {
+ dup dup maxlength exch length sub 2 index lt
+ {
+ dup length 2 index add dict copy 2 index
+ /CIDFont findresource/GlyphDirectory 2 index put
+ }
+ if
+ }
+ if
+ exch pop exch pop
+ }
+ ifelse
+ +
+ }def
+ /+
+ {
+ systemdict/languagelevel known
+ {
+ currentglobal false setglobal
+ 3 dict begin
+ /vm exch def
+ }
+ {1 dict begin}
+ ifelse
+ /$ exch def
+ systemdict/languagelevel known
+ {
+ vm setglobal
+ /gvm currentglobal def
+ $ gcheck setglobal
+ }
+ if
+ ?{$ begin}if
+ }def
+ /?{$ type/dicttype eq}def
+ /|{
+ userdict/Adobe_CoolType_Data known
+ {
+ Adobe_CoolType_Data/AddWidths? known
+ {
+ currentdict Adobe_CoolType_Data
+ begin
+ begin
+ AddWidths?
+ {
+ Adobe_CoolType_Data/CC 3 index put
+ ?{def}{$ 3 1 roll put}ifelse
+ CC charcode exch 1 index 0 2 index 256 idiv put
+ 1 index exch 1 exch 256 mod put
+ stringwidth 2 array astore
+ currentfont/Widths get exch CC exch put
+ }
+ {?{def}{$ 3 1 roll put}ifelse}
+ ifelse
+ end
+ end
+ }
+ {?{def}{$ 3 1 roll put}ifelse} ifelse
+ }
+ {?{def}{$ 3 1 roll put}ifelse}
+ ifelse
+ }def
+ /!
+ {
+ ?{end}if
+ systemdict/languagelevel known
+ {gvm setglobal}
+ if
+ end
+ }def
+ /:{string currentfile exch readstring pop}executeonly def
+ end
+ ct_MakeOCF
+ begin
+ /ct_cHexEncoding
+ [/c00/c01/c02/c03/c04/c05/c06/c07/c08/c09/c0A/c0B/c0C/c0D/c0E/c0F/c10/c11/c12
+ /c13/c14/c15/c16/c17/c18/c19/c1A/c1B/c1C/c1D/c1E/c1F/c20/c21/c22/c23/c24/c25
+ /c26/c27/c28/c29/c2A/c2B/c2C/c2D/c2E/c2F/c30/c31/c32/c33/c34/c35/c36/c37/c38
+ /c39/c3A/c3B/c3C/c3D/c3E/c3F/c40/c41/c42/c43/c44/c45/c46/c47/c48/c49/c4A/c4B
+ /c4C/c4D/c4E/c4F/c50/c51/c52/c53/c54/c55/c56/c57/c58/c59/c5A/c5B/c5C/c5D/c5E
+ /c5F/c60/c61/c62/c63/c64/c65/c66/c67/c68/c69/c6A/c6B/c6C/c6D/c6E/c6F/c70/c71
+ /c72/c73/c74/c75/c76/c77/c78/c79/c7A/c7B/c7C/c7D/c7E/c7F/c80/c81/c82/c83/c84
+ /c85/c86/c87/c88/c89/c8A/c8B/c8C/c8D/c8E/c8F/c90/c91/c92/c93/c94/c95/c96/c97
+ /c98/c99/c9A/c9B/c9C/c9D/c9E/c9F/cA0/cA1/cA2/cA3/cA4/cA5/cA6/cA7/cA8/cA9/cAA
+ /cAB/cAC/cAD/cAE/cAF/cB0/cB1/cB2/cB3/cB4/cB5/cB6/cB7/cB8/cB9/cBA/cBB/cBC/cBD
+ /cBE/cBF/cC0/cC1/cC2/cC3/cC4/cC5/cC6/cC7/cC8/cC9/cCA/cCB/cCC/cCD/cCE/cCF/cD0
+ /cD1/cD2/cD3/cD4/cD5/cD6/cD7/cD8/cD9/cDA/cDB/cDC/cDD/cDE/cDF/cE0/cE1/cE2/cE3
+ /cE4/cE5/cE6/cE7/cE8/cE9/cEA/cEB/cEC/cED/cEE/cEF/cF0/cF1/cF2/cF3/cF4/cF5/cF6
+ /cF7/cF8/cF9/cFA/cFB/cFC/cFD/cFE/cFF]def
+ /ct_CID_STR_SIZE 8000 def
+ /ct_mkocfStr100 100 string def
+ /ct_defaultFontMtx[.001 0 0 .001 0 0]def
+ /ct_1000Mtx[1000 0 0 1000 0 0]def
+ /ct_raise{exch cvx exch errordict exch get exec stop}bind def
+ /ct_reraise
+ {cvx $error/errorname get(Error: )print dup( )cvs print
+ errordict exch get exec stop
+ }bind def
+ /ct_cvnsi
+ {
+ 1 index add 1 sub 1 exch 0 4 1 roll
+ {
+ 2 index exch get
+ exch 8 bitshift
+ add
+ }
+ for
+ exch pop
+ }bind def
+ /ct_GetInterval
+ {
+ Adobe_CoolType_Utility/ct_BuildCharDict get
+ begin
+ /dst_index 0 def
+ dup dst_string length gt
+ {dup string/dst_string exch def}
+ if
+ 1 index ct_CID_STR_SIZE idiv
+ /arrayIndex exch def
+ 2 index arrayIndex get
+ 2 index
+ arrayIndex ct_CID_STR_SIZE mul
+ sub
+ {
+ dup 3 index add 2 index length le
+ {
+ 2 index getinterval
+ dst_string dst_index 2 index putinterval
+ length dst_index add/dst_index exch def
+ exit
+ }
+ {
+ 1 index length 1 index sub
+ dup 4 1 roll
+ getinterval
+ dst_string dst_index 2 index putinterval
+ pop dup dst_index add/dst_index exch def
+ sub
+ /arrayIndex arrayIndex 1 add def
+ 2 index dup length arrayIndex gt
+ {arrayIndex get}
+ {
+ pop
+ exit
+ }
+ ifelse
+ 0
+ }
+ ifelse
+ }
+ loop
+ pop pop pop
+ dst_string 0 dst_index getinterval
+ end
+ }bind def
+ ct_Level2?
+ {
+ /ct_resourcestatus
+ currentglobal mark true setglobal
+ {/unknowninstancename/Category resourcestatus}
+ stopped
+ {cleartomark setglobal true}
+ {cleartomark currentglobal not exch setglobal}
+ ifelse
+ {
+ {
+ mark 3 1 roll/Category findresource
+ begin
+ ct_Vars/vm currentglobal put
+ ({ResourceStatus}stopped)0()/SubFileDecode filter cvx exec
+ {cleartomark false}
+ {{3 2 roll pop true}{cleartomark false}ifelse}
+ ifelse
+ ct_Vars/vm get setglobal
+ end
+ }
+ }
+ {{resourcestatus}}
+ ifelse bind def
+ /CIDFont/Category ct_resourcestatus
+ {pop pop}
+ {
+ currentglobal true setglobal
+ /Generic/Category findresource
+ dup length dict copy
+ dup/InstanceType/dicttype put
+ /CIDFont exch/Category defineresource pop
+ setglobal
+ }
+ ifelse
+ ct_UseNativeCapability?
+ {
+ /CIDInit/ProcSet findresource begin
+ 12 dict begin
+ begincmap
+ /CIDSystemInfo 3 dict dup begin
+ /Registry(Adobe)def
+ /Ordering(Identity)def
+ /Supplement 0 def
+ end def
+ /CMapName/Identity-H def
+ /CMapVersion 1.000 def
+ /CMapType 1 def
+ 1 begincodespacerange
+ <0000><FFFF>
+ endcodespacerange
+ 1 begincidrange
+ <0000><FFFF>0
+ endcidrange
+ endcmap
+ CMapName currentdict/CMap defineresource pop
+ end
+ end
+ }
+ if
+ }
+ {
+ /ct_Category 2 dict begin
+ /CIDFont 10 dict def
+ /ProcSet 2 dict def
+ currentdict
+ end
+ def
+ /defineresource
+ {
+ ct_Category 1 index 2 copy known
+ {
+ get
+ dup dup maxlength exch length eq
+ {
+ dup length 10 add dict copy
+ ct_Category 2 index 2 index put
+ }
+ if
+ 3 index 3 index put
+ pop exch pop
+ }
+ {pop pop/defineresource/undefined ct_raise}
+ ifelse
+ }bind def
+ /findresource
+ {
+ ct_Category 1 index 2 copy known
+ {
+ get
+ 2 index 2 copy known
+ {get 3 1 roll pop pop}
+ {pop pop/findresource/undefinedresource ct_raise}
+ ifelse
+ }
+ {pop pop/findresource/undefined ct_raise}
+ ifelse
+ }bind def
+ /resourcestatus
+ {
+ ct_Category 1 index 2 copy known
+ {
+ get
+ 2 index known
+ exch pop exch pop
+ {
+ 0 -1 true
+ }
+ {
+ false
+ }
+ ifelse
+ }
+ {pop pop/findresource/undefined ct_raise}
+ ifelse
+ }bind def
+ /ct_resourcestatus/resourcestatus load def
+ }
+ ifelse
+ /ct_CIDInit 2 dict
+ begin
+ /ct_cidfont_stream_init
+ {
+ {
+ dup(Binary)eq
+ {
+ pop
+ null
+ currentfile
+ ct_Level2?
+ {
+ {cid_BYTE_COUNT()/SubFileDecode filter}
+ stopped
+ {pop pop pop}
+ if
+ }
+ if
+ /readstring load
+ exit
+ }
+ if
+ dup(Hex)eq
+ {
+ pop
+ currentfile
+ ct_Level2?
+ {
+ {null exch/ASCIIHexDecode filter/readstring}
+ stopped
+ {pop exch pop(>)exch/readhexstring}
+ if
+ }
+ {(>)exch/readhexstring}
+ ifelse
+ load
+ exit
+ }
+ if
+ /StartData/typecheck ct_raise
+ }
+ loop
+ cid_BYTE_COUNT ct_CID_STR_SIZE le
+ {
+ 2 copy cid_BYTE_COUNT string exch exec
+ pop
+ 1 array dup
+ 3 -1 roll
+ 0 exch put
+ }
+ {
+ cid_BYTE_COUNT ct_CID_STR_SIZE div ceiling cvi
+ dup array exch 2 sub 0 exch 1 exch
+ {
+ 2 copy
+ 5 index
+ ct_CID_STR_SIZE
+ string
+ 6 index exec
+ pop
+ put
+ pop
+ }
+ for
+ 2 index
+ cid_BYTE_COUNT ct_CID_STR_SIZE mod string
+ 3 index exec
+ pop
+ 1 index exch
+ 1 index length 1 sub
+ exch put
+ }
+ ifelse
+ cid_CIDFONT exch/GlyphData exch put
+ 2 index null eq
+ {
+ pop pop pop
+ }
+ {
+ pop/readstring load
+ 1 string exch
+ {
+ 3 copy exec
+ pop
+ dup length 0 eq
+ {
+ pop pop pop pop pop
+ true exit
+ }
+ if
+ 4 index
+ eq
+ {
+ pop pop pop pop
+ false exit
+ }
+ if
+ }
+ loop
+ pop
+ }
+ ifelse
+ }bind def
+ /StartData
+ {
+ mark
+ {
+ currentdict
+ dup/FDArray get 0 get/FontMatrix get
+ 0 get 0.001 eq
+ {
+ dup/CDevProc known not
+ {
+ /CDevProc 1183615869 internaldict/stdCDevProc 2 copy known
+ {get}
+ {
+ pop pop
+ {pop pop pop pop pop 0 -1000 7 index 2 div 880}
+ }
+ ifelse
+ def
+ }
+ if
+ }
+ {
+ /CDevProc
+ {
+ pop pop pop pop pop
+ 0
+ 1 cid_temp/cid_CIDFONT get
+ /FDArray get 0 get
+ /FontMatrix get 0 get div
+ 7 index 2 div
+ 1 index 0.88 mul
+ }def
+ }
+ ifelse
+ /cid_temp 15 dict def
+ cid_temp
+ begin
+ /cid_CIDFONT exch def
+ 3 copy pop
+ dup/cid_BYTE_COUNT exch def 0 gt
+ {
+ ct_cidfont_stream_init
+ FDArray
+ {
+ /Private get
+ dup/SubrMapOffset known
+ {
+ begin
+ /Subrs SubrCount array def
+ Subrs
+ SubrMapOffset
+ SubrCount
+ SDBytes
+ ct_Level2?
+ {
+ currentdict dup/SubrMapOffset undef
+ dup/SubrCount undef
+ /SDBytes undef
+ }
+ if
+ end
+ /cid_SD_BYTES exch def
+ /cid_SUBR_COUNT exch def
+ /cid_SUBR_MAP_OFFSET exch def
+ /cid_SUBRS exch def
+ cid_SUBR_COUNT 0 gt
+ {
+ GlyphData cid_SUBR_MAP_OFFSET cid_SD_BYTES ct_GetInterval
+ 0 cid_SD_BYTES ct_cvnsi
+ 0 1 cid_SUBR_COUNT 1 sub
+ {
+ exch 1 index
+ 1 add
+ cid_SD_BYTES mul cid_SUBR_MAP_OFFSET add
+ GlyphData exch cid_SD_BYTES ct_GetInterval
+ 0 cid_SD_BYTES ct_cvnsi
+ cid_SUBRS 4 2 roll
+ GlyphData exch
+ 4 index
+ 1 index
+ sub
+ ct_GetInterval
+ dup length string copy put
+ }
+ for
+ pop
+ }
+ if
+ }
+ {pop}
+ ifelse
+ }
+ forall
+ }
+ if
+ cleartomark pop pop
+ end
+ CIDFontName currentdict/CIDFont defineresource pop
+ end end
+ }
+ stopped
+ {cleartomark/StartData ct_reraise}
+ if
+ }bind def
+ currentdict
+ end def
+ /ct_saveCIDInit
+ {
+ /CIDInit/ProcSet ct_resourcestatus
+ {true}
+ {/CIDInitC/ProcSet ct_resourcestatus}
+ ifelse
+ {
+ pop pop
+ /CIDInit/ProcSet findresource
+ ct_UseNativeCapability?
+ {pop null}
+ {/CIDInit ct_CIDInit/ProcSet defineresource pop}
+ ifelse
+ }
+ {/CIDInit ct_CIDInit/ProcSet defineresource pop null}
+ ifelse
+ ct_Vars exch/ct_oldCIDInit exch put
+ }bind def
+ /ct_restoreCIDInit
+ {
+ ct_Vars/ct_oldCIDInit get dup null ne
+ {/CIDInit exch/ProcSet defineresource pop}
+ {pop}
+ ifelse
+ }bind def
+ /ct_BuildCharSetUp
+ {
+ 1 index
+ begin
+ CIDFont
+ begin
+ Adobe_CoolType_Utility/ct_BuildCharDict get
+ begin
+ /ct_dfCharCode exch def
+ /ct_dfDict exch def
+ CIDFirstByte ct_dfCharCode add
+ dup CIDCount ge
+ {pop 0}
+ if
+ /cid exch def
+ {
+ GlyphDirectory cid 2 copy known
+ {get}
+ {pop pop nullstring}
+ ifelse
+ dup length FDBytes sub 0 gt
+ {
+ dup
+ FDBytes 0 ne
+ {0 FDBytes ct_cvnsi}
+ {pop 0}
+ ifelse
+ /fdIndex exch def
+ dup length FDBytes sub FDBytes exch getinterval
+ /charstring exch def
+ exit
+ }
+ {
+ pop
+ cid 0 eq
+ {/charstring nullstring def exit}
+ if
+ /cid 0 def
+ }
+ ifelse
+ }
+ loop
+ }def
+ /ct_SetCacheDevice
+ {
+ 0 0 moveto
+ dup stringwidth
+ 3 -1 roll
+ true charpath
+ pathbbox
+ 0 -1000
+ 7 index 2 div 880
+ setcachedevice2
+ 0 0 moveto
+ }def
+ /ct_CloneSetCacheProc
+ {
+ 1 eq
+ {
+ stringwidth
+ pop -2 div -880
+ 0 -1000 setcharwidth
+ moveto
+ }
+ {
+ usewidths?
+ {
+ currentfont/Widths get cid
+ 2 copy known
+ {get exch pop aload pop}
+ {pop pop stringwidth}
+ ifelse
+ }
+ {stringwidth}
+ ifelse
+ setcharwidth
+ 0 0 moveto
+ }
+ ifelse
+ }def
+ /ct_Type3ShowCharString
+ {
+ ct_FDDict fdIndex 2 copy known
+ {get}
+ {
+ currentglobal 3 1 roll
+ 1 index gcheck setglobal
+ ct_Type1FontTemplate dup maxlength dict copy
+ begin
+ FDArray fdIndex get
+ dup/FontMatrix 2 copy known
+ {get}
+ {pop pop ct_defaultFontMtx}
+ ifelse
+ /FontMatrix exch dup length array copy def
+ /Private get
+ /Private exch def
+ /Widths rootfont/Widths get def
+ /CharStrings 1 dict dup/.notdef
+ <d841272cf18f54fc13>dup length string copy put def
+ currentdict
+ end
+ /ct_Type1Font exch definefont
+ dup 5 1 roll put
+ setglobal
+ }
+ ifelse
+ dup/CharStrings get 1 index/Encoding get
+ ct_dfCharCode get charstring put
+ rootfont/WMode 2 copy known
+ {get}
+ {pop pop 0}
+ ifelse
+ exch
+ 1000 scalefont setfont
+ ct_str1 0 ct_dfCharCode put
+ ct_str1 exch ct_dfSetCacheProc
+ ct_SyntheticBold
+ {
+ currentpoint
+ ct_str1 show
+ newpath
+ moveto
+ ct_str1 true charpath
+ ct_StrokeWidth setlinewidth
+ stroke
+ }
+ {ct_str1 show}
+ ifelse
+ }def
+ /ct_Type4ShowCharString
+ {
+ ct_dfDict ct_dfCharCode charstring
+ FDArray fdIndex get
+ dup/FontMatrix get dup ct_defaultFontMtx ct_matrixeq not
+ {ct_1000Mtx matrix concatmatrix concat}
+ {pop}
+ ifelse
+ /Private get
+ Adobe_CoolType_Utility/ct_Level2? get not
+ {
+ ct_dfDict/Private
+ 3 -1 roll
+ {put}
+ 1183615869 internaldict/superexec get exec
+ }
+ if
+ 1183615869 internaldict
+ Adobe_CoolType_Utility/ct_Level2? get
+ {1 index}
+ {3 index/Private get mark 6 1 roll}
+ ifelse
+ dup/RunInt known
+ {/RunInt get}
+ {pop/CCRun}
+ ifelse
+ get exec
+ Adobe_CoolType_Utility/ct_Level2? get not
+ {cleartomark}
+ if
+ }bind def
+ /ct_BuildCharIncremental
+ {
+ {
+ Adobe_CoolType_Utility/ct_MakeOCF get begin
+ ct_BuildCharSetUp
+ ct_ShowCharString
+ }
+ stopped
+ {stop}
+ if
+ end
+ end
+ end
+ end
+ }bind def
+ /BaseFontNameStr(BF00)def
+ /ct_Type1FontTemplate 14 dict
+ begin
+ /FontType 1 def
+ /FontMatrix [0.001 0 0 0.001 0 0]def
+ /FontBBox [-250 -250 1250 1250]def
+ /Encoding ct_cHexEncoding def
+ /PaintType 0 def
+ currentdict
+ end def
+ /BaseFontTemplate 11 dict
+ begin
+ /FontMatrix [0.001 0 0 0.001 0 0]def
+ /FontBBox [-250 -250 1250 1250]def
+ /Encoding ct_cHexEncoding def
+ /BuildChar/ct_BuildCharIncremental load def
+ ct_Clone?
+ {
+ /FontType 3 def
+ /ct_ShowCharString/ct_Type3ShowCharString load def
+ /ct_dfSetCacheProc/ct_CloneSetCacheProc load def
+ /ct_SyntheticBold false def
+ /ct_StrokeWidth 1 def
+ }
+ {
+ /FontType 4 def
+ /Private 1 dict dup/lenIV 4 put def
+ /CharStrings 1 dict dup/.notdef<d841272cf18f54fc13>put def
+ /PaintType 0 def
+ /ct_ShowCharString/ct_Type4ShowCharString load def
+ }
+ ifelse
+ /ct_str1 1 string def
+ currentdict
+ end def
+ /BaseFontDictSize BaseFontTemplate length 5 add def
+ /ct_matrixeq
+ {
+ true 0 1 5
+ {
+ dup 4 index exch get exch 3 index exch get eq and
+ dup not
+ {exit}
+ if
+ }
+ for
+ exch pop exch pop
+ }bind def
+ /ct_makeocf
+ {
+ 15 dict
+ begin
+ exch/WMode exch def
+ exch/FontName exch def
+ /FontType 0 def
+ /FMapType 2 def
+ dup/FontMatrix known
+ {dup/FontMatrix get/FontMatrix exch def}
+ {/FontMatrix matrix def}
+ ifelse
+ /bfCount 1 index/CIDCount get 256 idiv 1 add
+ dup 256 gt{pop 256}if def
+ /Encoding
+ 256 array 0 1 bfCount 1 sub{2 copy dup put pop}for
+ bfCount 1 255{2 copy bfCount put pop}for
+ def
+ /FDepVector bfCount dup 256 lt{1 add}if array def
+ BaseFontTemplate BaseFontDictSize dict copy
+ begin
+ /CIDFont exch def
+ CIDFont/FontBBox known
+ {CIDFont/FontBBox get/FontBBox exch def}
+ if
+ CIDFont/CDevProc known
+ {CIDFont/CDevProc get/CDevProc exch def}
+ if
+ currentdict
+ end
+ BaseFontNameStr 3(0)putinterval
+ 0 1 bfCount dup 256 eq{1 sub}if
+ {
+ FDepVector exch
+ 2 index BaseFontDictSize dict copy
+ begin
+ dup/CIDFirstByte exch 256 mul def
+ FontType 3 eq
+ {/ct_FDDict 2 dict def}
+ if
+ currentdict
+ end
+ 1 index 16
+ BaseFontNameStr 2 2 getinterval cvrs pop
+ BaseFontNameStr exch definefont
+ put
+ }
+ for
+ ct_Clone?
+ {/Widths 1 index/CIDFont get/GlyphDirectory get length dict def}
+ if
+ FontName
+ currentdict
+ end
+ definefont
+ ct_Clone?
+ {
+ gsave
+ dup 1000 scalefont setfont
+ ct_BuildCharDict
+ begin
+ /usewidths? false def
+ currentfont/Widths get
+ begin
+ exch/CIDFont get/GlyphDirectory get
+ {
+ pop
+ dup charcode exch 1 index 0 2 index 256 idiv put
+ 1 index exch 1 exch 256 mod put
+ stringwidth 2 array astore def
+ }
+ forall
+ end
+ /usewidths? true def
+ end
+ grestore
+ }
+ {exch pop}
+ ifelse
+ }bind def
+ currentglobal true setglobal
+ /ct_ComposeFont
+ {
+ ct_UseNativeCapability?
+ {
+ 2 index/CMap ct_resourcestatus
+ {pop pop exch pop}
+ {
+ /CIDInit/ProcSet findresource
+ begin
+ 12 dict
+ begin
+ begincmap
+ /CMapName 3 index def
+ /CMapVersion 1.000 def
+ /CMapType 1 def
+ exch/WMode exch def
+ /CIDSystemInfo 3 dict dup
+ begin
+ /Registry(Adobe)def
+ /Ordering
+ CMapName ct_mkocfStr100 cvs
+ (Adobe-)search
+ {
+ pop pop
+ (-)search
+ {
+ dup length string copy
+ exch pop exch pop
+ }
+ {pop(Identity)}
+ ifelse
+ }
+ {pop (Identity)}
+ ifelse
+ def
+ /Supplement 0 def
+ end def
+ 1 begincodespacerange
+ <0000><FFFF>
+ endcodespacerange
+ 1 begincidrange
+ <0000><FFFF>0
+ endcidrange
+ endcmap
+ CMapName currentdict/CMap defineresource pop
+ end
+ end
+ }
+ ifelse
+ composefont
+ }
+ {
+ 3 2 roll pop
+ 0 get/CIDFont findresource
+ ct_makeocf
+ }
+ ifelse
+ }bind def
+ setglobal
+ /ct_MakeIdentity
+ {
+ ct_UseNativeCapability?
+ {
+ 1 index/CMap ct_resourcestatus
+ {pop pop}
+ {
+ /CIDInit/ProcSet findresource begin
+ 12 dict begin
+ begincmap
+ /CMapName 2 index def
+ /CMapVersion 1.000 def
+ /CMapType 1 def
+ /CIDSystemInfo 3 dict dup
+ begin
+ /Registry(Adobe)def
+ /Ordering
+ CMapName ct_mkocfStr100 cvs
+ (Adobe-)search
+ {
+ pop pop
+ (-)search
+ {dup length string copy exch pop exch pop}
+ {pop(Identity)}
+ ifelse
+ }
+ {pop(Identity)}
+ ifelse
+ def
+ /Supplement 0 def
+ end def
+ 1 begincodespacerange
+ <0000><FFFF>
+ endcodespacerange
+ 1 begincidrange
+ <0000><FFFF>0
+ endcidrange
+ endcmap
+ CMapName currentdict/CMap defineresource pop
+ end
+ end
+ }
+ ifelse
+ composefont
+ }
+ {
+ exch pop
+ 0 get/CIDFont findresource
+ ct_makeocf
+ }
+ ifelse
+ }bind def
+ currentdict readonly pop
+ end
+ end
+%%EndResource
+setglobal
+%%BeginResource: procset Adobe_CoolType_Utility_T42 1.0 0
+%%Copyright: Copyright 1987-2004 Adobe Systems Incorporated.
+%%Version: 1.0 0
+userdict/ct_T42Dict 15 dict put
+ct_T42Dict begin
+/Is2015?
+{
+ version
+ cvi
+ 2015
+ ge
+}bind def
+/AllocGlyphStorage
+{
+ Is2015?
+ {
+ pop
+ }
+ {
+ {string}forall
+ }ifelse
+}bind def
+/Type42DictBegin
+{
+25 dict begin
+ /FontName exch def
+ /CharStrings 256 dict
+begin
+ /.notdef 0 def
+ currentdict
+end def
+ /Encoding exch def
+ /PaintType 0 def
+ /FontType 42 def
+ /FontMatrix[1 0 0 1 0 0]def
+ 4 array astore cvx/FontBBox exch def
+ /sfnts
+}bind def
+/Type42DictEnd
+{
+ currentdict dup/FontName get exch definefont end
+ct_T42Dict exch
+dup/FontName get exch put
+}bind def
+/RD{string currentfile exch readstring pop}executeonly def
+/PrepFor2015
+{
+Is2015?
+{
+ /GlyphDirectory
+ 16
+ dict def
+ sfnts 0 get
+ dup
+ 2 index
+ (glyx)
+ putinterval
+ 2 index
+ (locx)
+ putinterval
+ pop
+ pop
+}
+{
+ pop
+ pop
+}ifelse
+}bind def
+/AddT42Char
+{
+Is2015?
+{
+ /GlyphDirectory get
+ begin
+ def
+ end
+ pop
+ pop
+}
+{
+ /sfnts get
+ 4 index
+ get
+ 3 index
+ 2 index
+ putinterval
+ pop
+ pop
+ pop
+ pop
+}ifelse
+}bind def
+/T0AddT42Mtx2
+{
+/CIDFont findresource/Metrics2 get begin def end
+}bind def
+end
+%%EndResource
+currentglobal true setglobal
+%%BeginFile: MMFauxFont.prc
+%%Copyright: Copyright 1987-2001 Adobe Systems Incorporated.
+%%All Rights Reserved.
+userdict /ct_EuroDict 10 dict put
+ct_EuroDict begin
+/ct_CopyFont
+{
+ { 1 index /FID ne {def} {pop pop} ifelse} forall
+} def
+/ct_GetGlyphOutline
+{
+ gsave
+ initmatrix newpath
+ exch findfont dup
+ length 1 add dict
+ begin
+ ct_CopyFont
+ /Encoding Encoding dup length array copy
+ dup
+ 4 -1 roll
+ 0 exch put
+ def
+ currentdict
+ end
+ /ct_EuroFont exch definefont
+ 1000 scalefont setfont
+ 0 0 moveto
+ [
+ <00> stringwidth
+ <00> false charpath
+ pathbbox
+ [
+ {/m cvx} {/l cvx} {/c cvx} {/cp cvx} pathforall
+ grestore
+ counttomark 8 add
+}
+def
+/ct_MakeGlyphProc
+{
+ ] cvx
+ /ct_PSBuildGlyph cvx
+ ] cvx
+} def
+/ct_PSBuildGlyph
+{
+ gsave
+ 8 -1 roll pop
+ 7 1 roll
+ 6 -2 roll ct_FontMatrix transform 6 2 roll
+ 4 -2 roll ct_FontMatrix transform 4 2 roll
+ ct_FontMatrix transform
+ currentdict /PaintType 2 copy known {get 2 eq}{pop pop false} ifelse
+ dup 9 1 roll
+ {
+ currentdict /StrokeWidth 2 copy known
+ {
+ get 2 div
+ 0 ct_FontMatrix dtransform pop
+ 5 1 roll
+ 4 -1 roll 4 index sub
+ 4 1 roll
+ 3 -1 roll 4 index sub
+ 3 1 roll
+ exch 4 index add exch
+ 4 index add
+ 5 -1 roll pop
+ }
+ {
+ pop pop
+ }
+ ifelse
+ }
+ if
+ setcachedevice
+ ct_FontMatrix concat
+ ct_PSPathOps begin
+ exec
+ end
+ {
+ currentdict /StrokeWidth 2 copy known
+ { get }
+ { pop pop 0 }
+ ifelse
+ setlinewidth stroke
+ }
+ {
+ fill
+ }
+ ifelse
+ grestore
+} def
+/ct_PSPathOps 4 dict dup begin
+ /m {moveto} def
+ /l {lineto} def
+ /c {curveto} def
+ /cp {closepath} def
+end
+def
+/ct_matrix1000 [1000 0 0 1000 0 0] def
+/ct_AddGlyphProc
+{
+ 2 index findfont dup length 4 add dict
+ begin
+ ct_CopyFont
+ /CharStrings CharStrings dup length 1 add dict copy
+ begin
+ 3 1 roll def
+ currentdict
+ end
+ def
+ /ct_FontMatrix ct_matrix1000 FontMatrix matrix concatmatrix def
+ /ct_PSBuildGlyph /ct_PSBuildGlyph load def
+ /ct_PSPathOps /ct_PSPathOps load def
+ currentdict
+ end
+ definefont pop
+}
+def
+systemdict /languagelevel known
+{
+ /ct_AddGlyphToPrinterFont {
+ 2 copy
+ ct_GetGlyphOutline 3 add -1 roll restore
+ ct_MakeGlyphProc
+ ct_AddGlyphProc
+ } def
+}
+{
+ /ct_AddGlyphToPrinterFont {
+ pop pop restore
+ Adobe_CTFauxDict /$$$FONTNAME get
+ /Euro
+ Adobe_CTFauxDict /$$$SUBSTITUTEBASE get
+ ct_EuroDict exch get
+ ct_AddGlyphProc
+ } def
+} ifelse
+/AdobeSansMM
+{
+556 0 24 -19 541 703
+ {
+ 541 628 m
+ 510 669 442 703 354 703 c
+ 201 703 117 607 101 444 c
+ 50 444 l
+ 25 372 l
+ 97 372 l
+ 97 301 l
+ 49 301 l
+ 24 229 l
+ 103 229 l
+ 124 67 209 -19 350 -19 c
+ 435 -19 501 25 509 32 c
+ 509 131 l
+ 492 105 417 60 343 60 c
+ 267 60 204 127 197 229 c
+ 406 229 l
+ 430 301 l
+ 191 301 l
+ 191 372 l
+ 455 372 l
+ 479 444 l
+ 194 444 l
+ 201 531 245 624 348 624 c
+ 433 624 484 583 509 534 c
+ cp
+ 556 0 m
+ }
+ct_PSBuildGlyph
+} def
+/AdobeSerifMM
+{
+500 0 10 -12 484 692
+ {
+ 347 298 m
+ 171 298 l
+ 170 310 170 322 170 335 c
+ 170 362 l
+ 362 362 l
+ 374 403 l
+ 172 403 l
+ 184 580 244 642 308 642 c
+ 380 642 434 574 457 457 c
+ 481 462 l
+ 474 691 l
+ 449 691 l
+ 433 670 429 657 410 657 c
+ 394 657 360 692 299 692 c
+ 204 692 94 604 73 403 c
+ 22 403 l
+ 10 362 l
+ 70 362 l
+ 69 352 69 341 69 330 c
+ 69 319 69 308 70 298 c
+ 22 298 l
+ 10 257 l
+ 73 257 l
+ 97 57 216 -12 295 -12 c
+ 364 -12 427 25 484 123 c
+ 458 142 l
+ 425 101 384 37 316 37 c
+ 256 37 189 84 173 257 c
+ 335 257 l
+ cp
+ 500 0 m
+ }
+ct_PSBuildGlyph
+} def
+end
+%%EndFile
+setglobal
+Adobe_CoolType_Core begin /$None SetSubstituteStrategy end
+%%BeginResource: procset Adobe_AGM_Image 1.0 0
+%%Version: 1.0 0
+%%Copyright: Copyright(C)2000-2006 Adobe Systems, Inc. All Rights Reserved.
+systemdict/setpacking known
+{
+ currentpacking
+ true setpacking
+}if
+userdict/Adobe_AGM_Image 71 dict dup begin put
+/Adobe_AGM_Image_Id/Adobe_AGM_Image_1.0_0 def
+/nd{
+ null def
+}bind def
+/AGMIMG_&image nd
+/AGMIMG_&colorimage nd
+/AGMIMG_&imagemask nd
+/AGMIMG_mbuf()def
+/AGMIMG_ybuf()def
+/AGMIMG_kbuf()def
+/AGMIMG_c 0 def
+/AGMIMG_m 0 def
+/AGMIMG_y 0 def
+/AGMIMG_k 0 def
+/AGMIMG_tmp nd
+/AGMIMG_imagestring0 nd
+/AGMIMG_imagestring1 nd
+/AGMIMG_imagestring2 nd
+/AGMIMG_imagestring3 nd
+/AGMIMG_imagestring4 nd
+/AGMIMG_imagestring5 nd
+/AGMIMG_cnt nd
+/AGMIMG_fsave nd
+/AGMIMG_colorAry nd
+/AGMIMG_override nd
+/AGMIMG_name nd
+/AGMIMG_maskSource nd
+/AGMIMG_flushfilters nd
+/invert_image_samples nd
+/knockout_image_samples nd
+/img nd
+/sepimg nd
+/devnimg nd
+/idximg nd
+/ds
+{
+ Adobe_AGM_Core begin
+ Adobe_AGM_Image begin
+ /AGMIMG_&image systemdict/image get def
+ /AGMIMG_&imagemask systemdict/imagemask get def
+ /colorimage where{
+ pop
+ /AGMIMG_&colorimage/colorimage ldf
+ }if
+ end
+ end
+}def
+/ps
+{
+ Adobe_AGM_Image begin
+ /AGMIMG_ccimage_exists{/customcolorimage where
+ {
+ pop
+ /Adobe_AGM_OnHost_Seps where
+ {
+ pop false
+ }{
+ /Adobe_AGM_InRip_Seps where
+ {
+ pop false
+ }{
+ true
+ }ifelse
+ }ifelse
+ }{
+ false
+ }ifelse
+ }bdf
+ level2{
+ /invert_image_samples
+ {
+ Adobe_AGM_Image/AGMIMG_tmp Decode length ddf
+ /Decode[Decode 1 get Decode 0 get]def
+ }def
+ /knockout_image_samples
+ {
+ Operator/imagemask ne{
+ /Decode[1 1]def
+ }if
+ }def
+ }{
+ /invert_image_samples
+ {
+ {1 exch sub}currenttransfer addprocs settransfer
+ }def
+ /knockout_image_samples
+ {
+ {pop 1}currenttransfer addprocs settransfer
+ }def
+ }ifelse
+ /img/imageormask ldf
+ /sepimg/sep_imageormask ldf
+ /devnimg/devn_imageormask ldf
+ /idximg/indexed_imageormask ldf
+ /_ctype 7 def
+ currentdict{
+ dup xcheck 1 index type dup/arraytype eq exch/packedarraytype eq or and{
+ bind
+ }if
+ def
+ }forall
+}def
+/pt
+{
+ end
+}def
+/dt
+{
+}def
+/AGMIMG_flushfilters
+{
+ dup type/arraytype ne
+ {1 array astore}if
+ dup 0 get currentfile ne
+ {dup 0 get flushfile}if
+ {
+ dup type/filetype eq
+ {
+ dup status 1 index currentfile ne and
+ {closefile}
+ {pop}
+ ifelse
+ }{pop}ifelse
+ }forall
+}def
+/AGMIMG_init_common
+{
+ currentdict/T known{/ImageType/T ldf currentdict/T undef}if
+ currentdict/W known{/Width/W ldf currentdict/W undef}if
+ currentdict/H known{/Height/H ldf currentdict/H undef}if
+ currentdict/M known{/ImageMatrix/M ldf currentdict/M undef}if
+ currentdict/BC known{/BitsPerComponent/BC ldf currentdict/BC undef}if
+ currentdict/D known{/Decode/D ldf currentdict/D undef}if
+ currentdict/DS known{/DataSource/DS ldf currentdict/DS undef}if
+ currentdict/O known{
+ /Operator/O load 1 eq{
+ /imagemask
+ }{
+ /O load 2 eq{
+ /image
+ }{
+ /colorimage
+ }ifelse
+ }ifelse
+ def
+ currentdict/O undef
+ }if
+ currentdict/HSCI known{/HostSepColorImage/HSCI ldf currentdict/HSCI undef}if
+ currentdict/MD known{/MultipleDataSources/MD ldf currentdict/MD undef}if
+ currentdict/I known{/Interpolate/I ldf currentdict/I undef}if
+ currentdict/SI known{/SkipImageProc/SI ldf currentdict/SI undef}if
+ /DataSource load xcheck not{
+ DataSource type/arraytype eq{
+ DataSource 0 get type/filetype eq{
+ /_Filters DataSource def
+ currentdict/MultipleDataSources known not{
+ /DataSource DataSource dup length 1 sub get def
+ }if
+ }if
+ }if
+ currentdict/MultipleDataSources known not{
+ /MultipleDataSources DataSource type/arraytype eq{
+ DataSource length 1 gt
+ }
+ {false}ifelse def
+ }if
+ }if
+ /NComponents Decode length 2 div def
+ currentdict/SkipImageProc known not{/SkipImageProc{false}def}if
+}bdf
+/imageormask_sys
+{
+ begin
+ AGMIMG_init_common
+ save mark
+ level2{
+ currentdict
+ Operator/imagemask eq{
+ AGMIMG_&imagemask
+ }{
+ use_mask{
+ process_mask AGMIMG_&image
+ }{
+ AGMIMG_&image
+ }ifelse
+ }ifelse
+ }{
+ Width Height
+ Operator/imagemask eq{
+ Decode 0 get 1 eq Decode 1 get 0 eq and
+ ImageMatrix/DataSource load
+ AGMIMG_&imagemask
+ }{
+ BitsPerComponent ImageMatrix/DataSource load
+ AGMIMG_&image
+ }ifelse
+ }ifelse
+ currentdict/_Filters known{_Filters AGMIMG_flushfilters}if
+ cleartomark restore
+ end
+}def
+/overprint_plate
+{
+ currentoverprint{
+ 0 get dup type/nametype eq{
+ dup/DeviceGray eq{
+ pop AGMCORE_black_plate not
+ }{
+ /DeviceCMYK eq{
+ AGMCORE_is_cmyk_sep not
+ }if
+ }ifelse
+ }{
+ false exch
+ {
+ AGMOHS_sepink eq or
+ }forall
+ not
+ }ifelse
+ }{
+ pop false
+ }ifelse
+}def
+/process_mask
+{
+ level3{
+ dup begin
+ /ImageType 1 def
+ end
+ 4 dict begin
+ /DataDict exch def
+ /ImageType 3 def
+ /InterleaveType 3 def
+ /MaskDict 9 dict begin
+ /ImageType 1 def
+ /Width DataDict dup/MaskWidth known{/MaskWidth}{/Width}ifelse get def
+ /Height DataDict dup/MaskHeight known{/MaskHeight}{/Height}ifelse get def
+ /ImageMatrix[Width 0 0 Height neg 0 Height]def
+ /NComponents 1 def
+ /BitsPerComponent 1 def
+ /Decode DataDict dup/MaskD known{/MaskD}{[1 0]}ifelse get def
+ /DataSource Adobe_AGM_Core/AGMIMG_maskSource get def
+ currentdict end def
+ currentdict end
+ }if
+}def
+/use_mask
+{
+ dup/Mask known {dup/Mask get}{false}ifelse
+}def
+/imageormask
+{
+ begin
+ AGMIMG_init_common
+ SkipImageProc{
+ currentdict consumeimagedata
+ }
+ {
+ save mark
+ level2 AGMCORE_host_sep not and{
+ currentdict
+ Operator/imagemask eq DeviceN_PS2 not and{
+ imagemask
+ }{
+ AGMCORE_in_rip_sep currentoverprint and currentcolorspace 0 get/DeviceGray eq and{
+ [/Separation/Black/DeviceGray{}]setcolorspace
+ /Decode[Decode 1 get Decode 0 get]def
+ }if
+ use_mask{
+ process_mask image
+ }{
+ DeviceN_NoneName DeviceN_PS2 Indexed_DeviceN level3 not and or or AGMCORE_in_rip_sep and
+ {
+ Names convert_to_process not{
+ 2 dict begin
+ /imageDict xdf
+ /names_index 0 def
+ gsave
+ imageDict write_image_file{
+ Names{
+ dup(None)ne{
+ [/Separation 3 -1 roll/DeviceGray{1 exch sub}]setcolorspace
+ Operator imageDict read_image_file
+ names_index 0 eq{true setoverprint}if
+ /names_index names_index 1 add def
+ }{
+ pop
+ }ifelse
+ }forall
+ close_image_file
+ }if
+ grestore
+ end
+ }{
+ Operator/imagemask eq{
+ imagemask
+ }{
+ image
+ }ifelse
+ }ifelse
+ }{
+ Operator/imagemask eq{
+ imagemask
+ }{
+ image
+ }ifelse
+ }ifelse
+ }ifelse
+ }ifelse
+ }{
+ Width Height
+ Operator/imagemask eq{
+ Decode 0 get 1 eq Decode 1 get 0 eq and
+ ImageMatrix/DataSource load
+ /Adobe_AGM_OnHost_Seps where{
+ pop imagemask
+ }{
+ currentgray 1 ne{
+ currentdict imageormask_sys
+ }{
+ currentoverprint not{
+ 1 AGMCORE_&setgray
+ currentdict imageormask_sys
+ }{
+ currentdict ignoreimagedata
+ }ifelse
+ }ifelse
+ }ifelse
+ }{
+ BitsPerComponent ImageMatrix
+ MultipleDataSources{
+ 0 1 NComponents 1 sub{
+ DataSource exch get
+ }for
+ }{
+ /DataSource load
+ }ifelse
+ Operator/colorimage eq{
+ AGMCORE_host_sep{
+ MultipleDataSources level2 or NComponents 4 eq and{
+ AGMCORE_is_cmyk_sep{
+ MultipleDataSources{
+ /DataSource DataSource 0 get xcheck
+ {
+ [
+ DataSource 0 get/exec cvx
+ DataSource 1 get/exec cvx
+ DataSource 2 get/exec cvx
+ DataSource 3 get/exec cvx
+ /AGMCORE_get_ink_data cvx
+ ]cvx
+ }{
+ DataSource aload pop AGMCORE_get_ink_data
+ }ifelse def
+ }{
+ /DataSource
+ Width BitsPerComponent mul 7 add 8 idiv Height mul 4 mul
+ /DataSource load
+ filter_cmyk 0()/SubFileDecode filter def
+ }ifelse
+ /Decode[Decode 0 get Decode 1 get]def
+ /MultipleDataSources false def
+ /NComponents 1 def
+ /Operator/image def
+ invert_image_samples
+ 1 AGMCORE_&setgray
+ currentdict imageormask_sys
+ }{
+ currentoverprint not Operator/imagemask eq and{
+ 1 AGMCORE_&setgray
+ currentdict imageormask_sys
+ }{
+ currentdict ignoreimagedata
+ }ifelse
+ }ifelse
+ }{
+ MultipleDataSources NComponents AGMIMG_&colorimage
+ }ifelse
+ }{
+ true NComponents colorimage
+ }ifelse
+ }{
+ Operator/image eq{
+ AGMCORE_host_sep{
+ /DoImage true def
+ currentdict/HostSepColorImage known{HostSepColorImage not}{false}ifelse
+ {
+ AGMCORE_black_plate not Operator/imagemask ne and{
+ /DoImage false def
+ currentdict ignoreimagedata
+ }if
+ }if
+ 1 AGMCORE_&setgray
+ DoImage
+ {currentdict imageormask_sys}if
+ }{
+ use_mask{
+ process_mask image
+ }{
+ image
+ }ifelse
+ }ifelse
+ }{
+ Operator/knockout eq{
+ pop pop pop pop pop
+ currentcolorspace overprint_plate not{
+ knockout_unitsq
+ }if
+ }if
+ }ifelse
+ }ifelse
+ }ifelse
+ }ifelse
+ cleartomark restore
+ }ifelse
+ currentdict/_Filters known{_Filters AGMIMG_flushfilters}if
+ end
+}def
+/sep_imageormask
+{
+ /sep_colorspace_dict AGMCORE_gget begin
+ CSA map_csa
+ begin
+ AGMIMG_init_common
+ SkipImageProc{
+ currentdict consumeimagedata
+ }{
+ save mark
+ AGMCORE_avoid_L2_sep_space{
+ /Decode[Decode 0 get 255 mul Decode 1 get 255 mul]def
+ }if
+ AGMIMG_ccimage_exists
+ MappedCSA 0 get/DeviceCMYK eq and
+ currentdict/Components known and
+ Name()ne and
+ Name(All)ne and
+ Operator/image eq and
+ AGMCORE_producing_seps not and
+ level2 not and
+ {
+ Width Height BitsPerComponent ImageMatrix
+ [
+ /DataSource load/exec cvx
+ {
+ 0 1 2 index length 1 sub{
+ 1 index exch
+ 2 copy get 255 xor put
+ }for
+ }/exec cvx
+ ]cvx bind
+ MappedCSA 0 get/DeviceCMYK eq{
+ Components aload pop
+ }{
+ 0 0 0 Components aload pop 1 exch sub
+ }ifelse
+ Name findcmykcustomcolor
+ customcolorimage
+ }{
+ AGMCORE_producing_seps not{
+ level2{
+ //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne AGMCORE_avoid_L2_sep_space not and currentcolorspace 0 get/Separation ne and{
+ [/Separation Name MappedCSA sep_proc_name exch dup 0 get 15 string cvs(/Device)anchorsearch{pop pop 0 get}{pop}ifelse exch load]setcolorspace_opt
+ /sep_tint AGMCORE_gget setcolor
+ }if
+ currentdict imageormask
+ }{
+ currentdict
+ Operator/imagemask eq{
+ imageormask
+ }{
+ sep_imageormask_lev1
+ }ifelse
+ }ifelse
+ }{
+ AGMCORE_host_sep{
+ Operator/knockout eq{
+ currentdict/ImageMatrix get concat
+ knockout_unitsq
+ }{
+ currentgray 1 ne{
+ AGMCORE_is_cmyk_sep Name(All)ne and{
+ level2{
+ Name AGMCORE_IsSeparationAProcessColor
+ {
+ Operator/imagemask eq{
+ //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{
+ /sep_tint AGMCORE_gget 1 exch sub AGMCORE_&setcolor
+ }if
+ }{
+ invert_image_samples
+ }ifelse
+ }{
+ //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{
+ [/Separation Name[/DeviceGray]
+ {
+ sep_colorspace_proc AGMCORE_get_ink_data
+ 1 exch sub
+ }bind
+ ]AGMCORE_&setcolorspace
+ /sep_tint AGMCORE_gget AGMCORE_&setcolor
+ }if
+ }ifelse
+ currentdict imageormask_sys
+ }{
+ currentdict
+ Operator/imagemask eq{
+ imageormask_sys
+ }{
+ sep_image_lev1_sep
+ }ifelse
+ }ifelse
+ }{
+ Operator/imagemask ne{
+ invert_image_samples
+ }if
+ currentdict imageormask_sys
+ }ifelse
+ }{
+ currentoverprint not Name(All)eq or Operator/imagemask eq and{
+ currentdict imageormask_sys
+ }{
+ currentoverprint not
+ {
+ gsave
+ knockout_unitsq
+ grestore
+ }if
+ currentdict consumeimagedata
+ }ifelse
+ }ifelse
+ }ifelse
+ }{
+ //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{
+ currentcolorspace 0 get/Separation ne{
+ [/Separation Name MappedCSA sep_proc_name exch 0 get exch load]setcolorspace_opt
+ /sep_tint AGMCORE_gget setcolor
+ }if
+ }if
+ currentoverprint
+ MappedCSA 0 get/DeviceCMYK eq and
+ Name AGMCORE_IsSeparationAProcessColor not and
+ //Adobe_AGM_Core/AGMCORE_pattern_paint_type get 2 ne{Name inRip_spot_has_ink not and}{false}ifelse
+ Name(All)ne and{
+ imageormask_l2_overprint
+ }{
+ currentdict imageormask
+ }ifelse
+ }ifelse
+ }ifelse
+ }ifelse
+ cleartomark restore
+ }ifelse
+ currentdict/_Filters known{_Filters AGMIMG_flushfilters}if
+ end
+ end
+}def
+/colorSpaceElemCnt
+{
+ mark currentcolor counttomark dup 2 add 1 roll cleartomark
+}bdf
+/devn_sep_datasource
+{
+ 1 dict begin
+ /dataSource xdf
+ [
+ 0 1 dataSource length 1 sub{
+ dup currentdict/dataSource get/exch cvx/get cvx/exec cvx
+ /exch cvx names_index/ne cvx[/pop cvx]cvx/if cvx
+ }for
+ ]cvx bind
+ end
+}bdf
+/devn_alt_datasource
+{
+ 11 dict begin
+ /convProc xdf
+ /origcolorSpaceElemCnt xdf
+ /origMultipleDataSources xdf
+ /origBitsPerComponent xdf
+ /origDecode xdf
+ /origDataSource xdf
+ /dsCnt origMultipleDataSources{origDataSource length}{1}ifelse def
+ /DataSource origMultipleDataSources
+ {
+ [
+ BitsPerComponent 8 idiv origDecode length 2 idiv mul string
+ 0 1 origDecode length 2 idiv 1 sub
+ {
+ dup 7 mul 1 add index exch dup BitsPerComponent 8 idiv mul exch
+ origDataSource exch get 0()/SubFileDecode filter
+ BitsPerComponent 8 idiv string/readstring cvx/pop cvx/putinterval cvx
+ }for
+ ]bind cvx
+ }{origDataSource}ifelse 0()/SubFileDecode filter def
+ [
+ origcolorSpaceElemCnt string
+ 0 2 origDecode length 2 sub
+ {
+ dup origDecode exch get dup 3 -1 roll 1 add origDecode exch get exch sub 2 BitsPerComponent exp 1 sub div
+ 1 BitsPerComponent 8 idiv{DataSource/read cvx/not cvx{0}/if cvx/mul cvx}repeat/mul cvx/add cvx
+ }for
+ /convProc load/exec cvx
+ origcolorSpaceElemCnt 1 sub -1 0
+ {
+ /dup cvx 2/add cvx/index cvx
+ 3 1/roll cvx/exch cvx 255/mul cvx/cvi cvx/put cvx
+ }for
+ ]bind cvx 0()/SubFileDecode filter
+ end
+}bdf
+/devn_imageormask
+{
+ /devicen_colorspace_dict AGMCORE_gget begin
+ CSA map_csa
+ 2 dict begin
+ dup
+ /srcDataStrs[3 -1 roll begin
+ AGMIMG_init_common
+ currentdict/MultipleDataSources known{MultipleDataSources{DataSource length}{1}ifelse}{1}ifelse
+ {
+ Width Decode length 2 div mul cvi
+ {
+ dup 65535 gt{1 add 2 div cvi}{exit}ifelse
+ }loop
+ string
+ }repeat
+ end]def
+ /dstDataStr srcDataStrs 0 get length string def
+ begin
+ AGMIMG_init_common
+ SkipImageProc{
+ currentdict consumeimagedata
+ }{
+ save mark
+ AGMCORE_producing_seps not{
+ level3 not{
+ Operator/imagemask ne{
+ /DataSource[[
+ DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse
+ colorSpaceElemCnt/devicen_colorspace_dict AGMCORE_gget/TintTransform get
+ devn_alt_datasource 1/string cvx/readstring cvx/pop cvx]cvx colorSpaceElemCnt 1 sub{dup}repeat]def
+ /MultipleDataSources true def
+ /Decode colorSpaceElemCnt[exch{0 1}repeat]def
+ }if
+ }if
+ currentdict imageormask
+ }{
+ AGMCORE_host_sep{
+ Names convert_to_process{
+ CSA get_csa_by_name 0 get/DeviceCMYK eq{
+ /DataSource
+ Width BitsPerComponent mul 7 add 8 idiv Height mul 4 mul
+ DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse
+ 4/devicen_colorspace_dict AGMCORE_gget/TintTransform get
+ devn_alt_datasource
+ filter_cmyk 0()/SubFileDecode filter def
+ /MultipleDataSources false def
+ /Decode[1 0]def
+ /DeviceGray setcolorspace
+ currentdict imageormask_sys
+ }{
+ AGMCORE_report_unsupported_color_space
+ AGMCORE_black_plate{
+ /DataSource
+ DataSource Decode BitsPerComponent currentdict/MultipleDataSources known{MultipleDataSources}{false}ifelse
+ CSA get_csa_by_name 0 get/DeviceRGB eq{3}{1}ifelse/devicen_colorspace_dict AGMCORE_gget/TintTransform get
+ devn_alt_datasource
+ /MultipleDataSources false def
+ /Decode colorSpaceElemCnt[exch{0 1}repeat]def
+ currentdict imageormask_sys
+ }{
+ gsave
+ knockout_unitsq
+ grestore
+ currentdict consumeimagedata
+ }ifelse
+ }ifelse
+ }
+ {
+ /devicen_colorspace_dict AGMCORE_gget/names_index known{
+ Operator/imagemask ne{
+ MultipleDataSources{
+ /DataSource[DataSource devn_sep_datasource/exec cvx]cvx def
+ /MultipleDataSources false def
+ }{
+ /DataSource/DataSource load dstDataStr srcDataStrs 0 get filter_devn def
+ }ifelse
+ invert_image_samples
+ }if
+ currentdict imageormask_sys
+ }{
+ currentoverprint not Operator/imagemask eq and{
+ currentdict imageormask_sys
+ }{
+ currentoverprint not
+ {
+ gsave
+ knockout_unitsq
+ grestore
+ }if
+ currentdict consumeimagedata
+ }ifelse
+ }ifelse
+ }ifelse
+ }{
+ currentdict imageormask
+ }ifelse
+ }ifelse
+ cleartomark restore
+ }ifelse
+ currentdict/_Filters known{_Filters AGMIMG_flushfilters}if
+ end
+ end
+ end
+}def
+/imageormask_l2_overprint
+{
+ currentdict
+ currentcmykcolor add add add 0 eq{
+ currentdict consumeimagedata
+ }{
+ level3{
+ currentcmykcolor
+ /AGMIMG_k xdf
+ /AGMIMG_y xdf
+ /AGMIMG_m xdf
+ /AGMIMG_c xdf
+ Operator/imagemask eq{
+ [/DeviceN[
+ AGMIMG_c 0 ne{/Cyan}if
+ AGMIMG_m 0 ne{/Magenta}if
+ AGMIMG_y 0 ne{/Yellow}if
+ AGMIMG_k 0 ne{/Black}if
+ ]/DeviceCMYK{}]setcolorspace
+ AGMIMG_c 0 ne{AGMIMG_c}if
+ AGMIMG_m 0 ne{AGMIMG_m}if
+ AGMIMG_y 0 ne{AGMIMG_y}if
+ AGMIMG_k 0 ne{AGMIMG_k}if
+ setcolor
+ }{
+ /Decode[Decode 0 get 255 mul Decode 1 get 255 mul]def
+ [/Indexed
+ [
+ /DeviceN[
+ AGMIMG_c 0 ne{/Cyan}if
+ AGMIMG_m 0 ne{/Magenta}if
+ AGMIMG_y 0 ne{/Yellow}if
+ AGMIMG_k 0 ne{/Black}if
+ ]
+ /DeviceCMYK{
+ AGMIMG_k 0 eq{0}if
+ AGMIMG_y 0 eq{0 exch}if
+ AGMIMG_m 0 eq{0 3 1 roll}if
+ AGMIMG_c 0 eq{0 4 1 roll}if
+ }
+ ]
+ 255
+ {
+ 255 div
+ mark exch
+ dup dup dup
+ AGMIMG_k 0 ne{
+ /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 1 roll pop pop pop
+ counttomark 1 roll
+ }{
+ pop
+ }ifelse
+ AGMIMG_y 0 ne{
+ /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 2 roll pop pop pop
+ counttomark 1 roll
+ }{
+ pop
+ }ifelse
+ AGMIMG_m 0 ne{
+ /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec 4 3 roll pop pop pop
+ counttomark 1 roll
+ }{
+ pop
+ }ifelse
+ AGMIMG_c 0 ne{
+ /sep_tint AGMCORE_gget mul MappedCSA sep_proc_name exch pop load exec pop pop pop
+ counttomark 1 roll
+ }{
+ pop
+ }ifelse
+ counttomark 1 add -1 roll pop
+ }
+ ]setcolorspace
+ }ifelse
+ imageormask_sys
+ }{
+ write_image_file{
+ currentcmykcolor
+ 0 ne{
+ [/Separation/Black/DeviceGray{}]setcolorspace
+ gsave
+ /Black
+ [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 1 roll pop pop pop 1 exch sub}/exec cvx]
+ cvx modify_halftone_xfer
+ Operator currentdict read_image_file
+ grestore
+ }if
+ 0 ne{
+ [/Separation/Yellow/DeviceGray{}]setcolorspace
+ gsave
+ /Yellow
+ [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 2 roll pop pop pop 1 exch sub}/exec cvx]
+ cvx modify_halftone_xfer
+ Operator currentdict read_image_file
+ grestore
+ }if
+ 0 ne{
+ [/Separation/Magenta/DeviceGray{}]setcolorspace
+ gsave
+ /Magenta
+ [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{4 3 roll pop pop pop 1 exch sub}/exec cvx]
+ cvx modify_halftone_xfer
+ Operator currentdict read_image_file
+ grestore
+ }if
+ 0 ne{
+ [/Separation/Cyan/DeviceGray{}]setcolorspace
+ gsave
+ /Cyan
+ [{1 exch sub/sep_tint AGMCORE_gget mul}/exec cvx MappedCSA sep_proc_name cvx exch pop{pop pop pop 1 exch sub}/exec cvx]
+ cvx modify_halftone_xfer
+ Operator currentdict read_image_file
+ grestore
+ }if
+ close_image_file
+ }{
+ imageormask
+ }ifelse
+ }ifelse
+ }ifelse
+}def
+/indexed_imageormask
+{
+ begin
+ AGMIMG_init_common
+ save mark
+ currentdict
+ AGMCORE_host_sep{
+ Operator/knockout eq{
+ /indexed_colorspace_dict AGMCORE_gget dup/CSA known{
+ /CSA get get_csa_by_name
+ }{
+ /Names get
+ }ifelse
+ overprint_plate not{
+ knockout_unitsq
+ }if
+ }{
+ Indexed_DeviceN{
+ /devicen_colorspace_dict AGMCORE_gget dup/names_index known exch/Names get convert_to_process or{
+ indexed_image_lev2_sep
+ }{
+ currentoverprint not{
+ knockout_unitsq
+ }if
+ currentdict consumeimagedata
+ }ifelse
+ }{
+ AGMCORE_is_cmyk_sep{
+ Operator/imagemask eq{
+ imageormask_sys
+ }{
+ level2{
+ indexed_image_lev2_sep
+ }{
+ indexed_image_lev1_sep
+ }ifelse
+ }ifelse
+ }{
+ currentoverprint not{
+ knockout_unitsq
+ }if
+ currentdict consumeimagedata
+ }ifelse
+ }ifelse
+ }ifelse
+ }{
+ level2{
+ Indexed_DeviceN{
+ /indexed_colorspace_dict AGMCORE_gget begin
+ }{
+ /indexed_colorspace_dict AGMCORE_gget dup null ne
+ {
+ begin
+ currentdict/CSDBase known{CSDBase/CSD get_res/MappedCSA get}{CSA}ifelse
+ get_csa_by_name 0 get/DeviceCMYK eq ps_level 3 ge and ps_version 3015.007 lt and
+ AGMCORE_in_rip_sep and{
+ [/Indexed[/DeviceN[/Cyan/Magenta/Yellow/Black]/DeviceCMYK{}]HiVal Lookup]
+ setcolorspace
+ }if
+ end
+ }
+ {pop}ifelse
+ }ifelse
+ imageormask
+ Indexed_DeviceN{
+ end
+ }if
+ }{
+ Operator/imagemask eq{
+ imageormask
+ }{
+ indexed_imageormask_lev1
+ }ifelse
+ }ifelse
+ }ifelse
+ cleartomark restore
+ currentdict/_Filters known{_Filters AGMIMG_flushfilters}if
+ end
+}def
+/indexed_image_lev2_sep
+{
+ /indexed_colorspace_dict AGMCORE_gget begin
+ begin
+ Indexed_DeviceN not{
+ currentcolorspace
+ dup 1/DeviceGray put
+ dup 3
+ currentcolorspace 2 get 1 add string
+ 0 1 2 3 AGMCORE_get_ink_data 4 currentcolorspace 3 get length 1 sub
+ {
+ dup 4 idiv exch currentcolorspace 3 get exch get 255 exch sub 2 index 3 1 roll put
+ }for
+ put setcolorspace
+ }if
+ currentdict
+ Operator/imagemask eq{
+ AGMIMG_&imagemask
+ }{
+ use_mask{
+ process_mask AGMIMG_&image
+ }{
+ AGMIMG_&image
+ }ifelse
+ }ifelse
+ end end
+}def
+ /OPIimage
+ {
+ dup type/dicttype ne{
+ 10 dict begin
+ /DataSource xdf
+ /ImageMatrix xdf
+ /BitsPerComponent xdf
+ /Height xdf
+ /Width xdf
+ /ImageType 1 def
+ /Decode[0 1 def]
+ currentdict
+ end
+ }if
+ dup begin
+ /NComponents 1 cdndf
+ /MultipleDataSources false cdndf
+ /SkipImageProc{false}cdndf
+ /Decode[
+ 0
+ currentcolorspace 0 get/Indexed eq{
+ 2 BitsPerComponent exp 1 sub
+ }{
+ 1
+ }ifelse
+ ]cdndf
+ /Operator/image cdndf
+ end
+ /sep_colorspace_dict AGMCORE_gget null eq{
+ imageormask
+ }{
+ gsave
+ dup begin invert_image_samples end
+ sep_imageormask
+ grestore
+ }ifelse
+ }def
+/cachemask_level2
+{
+ 3 dict begin
+ /LZWEncode filter/WriteFilter xdf
+ /readBuffer 256 string def
+ /ReadFilter
+ currentfile
+ 0(%EndMask)/SubFileDecode filter
+ /ASCII85Decode filter
+ /RunLengthDecode filter
+ def
+ {
+ ReadFilter readBuffer readstring exch
+ WriteFilter exch writestring
+ not{exit}if
+ }loop
+ WriteFilter closefile
+ end
+}def
+/spot_alias
+{
+ /mapto_sep_imageormask
+ {
+ dup type/dicttype ne{
+ 12 dict begin
+ /ImageType 1 def
+ /DataSource xdf
+ /ImageMatrix xdf
+ /BitsPerComponent xdf
+ /Height xdf
+ /Width xdf
+ /MultipleDataSources false def
+ }{
+ begin
+ }ifelse
+ /Decode[/customcolor_tint AGMCORE_gget 0]def
+ /Operator/image def
+ /SkipImageProc{false}def
+ currentdict
+ end
+ sep_imageormask
+ }bdf
+ /customcolorimage
+ {
+ Adobe_AGM_Image/AGMIMG_colorAry xddf
+ /customcolor_tint AGMCORE_gget
+ <<
+ /Name AGMIMG_colorAry 4 get
+ /CSA[/DeviceCMYK]
+ /TintMethod/Subtractive
+ /TintProc null
+ /MappedCSA null
+ /NComponents 4
+ /Components[AGMIMG_colorAry aload pop pop]
+ >>
+ setsepcolorspace
+ mapto_sep_imageormask
+ }ndf
+ Adobe_AGM_Image/AGMIMG_&customcolorimage/customcolorimage load put
+ /customcolorimage
+ {
+ Adobe_AGM_Image/AGMIMG_override false put
+ current_spot_alias{dup 4 get map_alias}{false}ifelse
+ {
+ false set_spot_alias
+ /customcolor_tint AGMCORE_gget exch setsepcolorspace
+ pop
+ mapto_sep_imageormask
+ true set_spot_alias
+ }{
+ //Adobe_AGM_Image/AGMIMG_&customcolorimage get exec
+ }ifelse
+ }bdf
+}def
+/snap_to_device
+{
+ 6 dict begin
+ matrix currentmatrix
+ dup 0 get 0 eq 1 index 3 get 0 eq and
+ 1 index 1 get 0 eq 2 index 2 get 0 eq and or exch pop
+ {
+ 1 1 dtransform 0 gt exch 0 gt/AGMIMG_xSign? exch def/AGMIMG_ySign? exch def
+ 0 0 transform
+ AGMIMG_ySign?{floor 0.1 sub}{ceiling 0.1 add}ifelse exch
+ AGMIMG_xSign?{floor 0.1 sub}{ceiling 0.1 add}ifelse exch
+ itransform/AGMIMG_llY exch def/AGMIMG_llX exch def
+ 1 1 transform
+ AGMIMG_ySign?{ceiling 0.1 add}{floor 0.1 sub}ifelse exch
+ AGMIMG_xSign?{ceiling 0.1 add}{floor 0.1 sub}ifelse exch
+ itransform/AGMIMG_urY exch def/AGMIMG_urX exch def
+ [AGMIMG_urX AGMIMG_llX sub 0 0 AGMIMG_urY AGMIMG_llY sub AGMIMG_llX AGMIMG_llY]concat
+ }{
+ }ifelse
+ end
+}def
+level2 not{
+ /colorbuf
+ {
+ 0 1 2 index length 1 sub{
+ dup 2 index exch get
+ 255 exch sub
+ 2 index
+ 3 1 roll
+ put
+ }for
+ }def
+ /tint_image_to_color
+ {
+ begin
+ Width Height BitsPerComponent ImageMatrix
+ /DataSource load
+ end
+ Adobe_AGM_Image begin
+ /AGMIMG_mbuf 0 string def
+ /AGMIMG_ybuf 0 string def
+ /AGMIMG_kbuf 0 string def
+ {
+ colorbuf dup length AGMIMG_mbuf length ne
+ {
+ dup length dup dup
+ /AGMIMG_mbuf exch string def
+ /AGMIMG_ybuf exch string def
+ /AGMIMG_kbuf exch string def
+ }if
+ dup AGMIMG_mbuf copy AGMIMG_ybuf copy AGMIMG_kbuf copy pop
+ }
+ addprocs
+ {AGMIMG_mbuf}{AGMIMG_ybuf}{AGMIMG_kbuf}true 4 colorimage
+ end
+ }def
+ /sep_imageormask_lev1
+ {
+ begin
+ MappedCSA 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or has_color not and{
+ {
+ 255 mul round cvi GrayLookup exch get
+ }currenttransfer addprocs settransfer
+ currentdict imageormask
+ }{
+ /sep_colorspace_dict AGMCORE_gget/Components known{
+ MappedCSA 0 get/DeviceCMYK eq{
+ Components aload pop
+ }{
+ 0 0 0 Components aload pop 1 exch sub
+ }ifelse
+ Adobe_AGM_Image/AGMIMG_k xddf
+ Adobe_AGM_Image/AGMIMG_y xddf
+ Adobe_AGM_Image/AGMIMG_m xddf
+ Adobe_AGM_Image/AGMIMG_c xddf
+ AGMIMG_y 0.0 eq AGMIMG_m 0.0 eq and AGMIMG_c 0.0 eq and{
+ {AGMIMG_k mul 1 exch sub}currenttransfer addprocs settransfer
+ currentdict imageormask
+ }{
+ currentcolortransfer
+ {AGMIMG_k mul 1 exch sub}exch addprocs 4 1 roll
+ {AGMIMG_y mul 1 exch sub}exch addprocs 4 1 roll
+ {AGMIMG_m mul 1 exch sub}exch addprocs 4 1 roll
+ {AGMIMG_c mul 1 exch sub}exch addprocs 4 1 roll
+ setcolortransfer
+ currentdict tint_image_to_color
+ }ifelse
+ }{
+ MappedCSA 0 get/DeviceGray eq{
+ {255 mul round cvi ColorLookup exch get 0 get}currenttransfer addprocs settransfer
+ currentdict imageormask
+ }{
+ MappedCSA 0 get/DeviceCMYK eq{
+ currentcolortransfer
+ {255 mul round cvi ColorLookup exch get 3 get 1 exch sub}exch addprocs 4 1 roll
+ {255 mul round cvi ColorLookup exch get 2 get 1 exch sub}exch addprocs 4 1 roll
+ {255 mul round cvi ColorLookup exch get 1 get 1 exch sub}exch addprocs 4 1 roll
+ {255 mul round cvi ColorLookup exch get 0 get 1 exch sub}exch addprocs 4 1 roll
+ setcolortransfer
+ currentdict tint_image_to_color
+ }{
+ currentcolortransfer
+ {pop 1}exch addprocs 4 1 roll
+ {255 mul round cvi ColorLookup exch get 2 get}exch addprocs 4 1 roll
+ {255 mul round cvi ColorLookup exch get 1 get}exch addprocs 4 1 roll
+ {255 mul round cvi ColorLookup exch get 0 get}exch addprocs 4 1 roll
+ setcolortransfer
+ currentdict tint_image_to_color
+ }ifelse
+ }ifelse
+ }ifelse
+ }ifelse
+ end
+ }def
+ /sep_image_lev1_sep
+ {
+ begin
+ /sep_colorspace_dict AGMCORE_gget/Components known{
+ Components aload pop
+ Adobe_AGM_Image/AGMIMG_k xddf
+ Adobe_AGM_Image/AGMIMG_y xddf
+ Adobe_AGM_Image/AGMIMG_m xddf
+ Adobe_AGM_Image/AGMIMG_c xddf
+ {AGMIMG_c mul 1 exch sub}
+ {AGMIMG_m mul 1 exch sub}
+ {AGMIMG_y mul 1 exch sub}
+ {AGMIMG_k mul 1 exch sub}
+ }{
+ {255 mul round cvi ColorLookup exch get 0 get 1 exch sub}
+ {255 mul round cvi ColorLookup exch get 1 get 1 exch sub}
+ {255 mul round cvi ColorLookup exch get 2 get 1 exch sub}
+ {255 mul round cvi ColorLookup exch get 3 get 1 exch sub}
+ }ifelse
+ AGMCORE_get_ink_data currenttransfer addprocs settransfer
+ currentdict imageormask_sys
+ end
+ }def
+ /indexed_imageormask_lev1
+ {
+ /indexed_colorspace_dict AGMCORE_gget begin
+ begin
+ currentdict
+ MappedCSA 0 get dup/DeviceRGB eq exch/DeviceCMYK eq or has_color not and{
+ {HiVal mul round cvi GrayLookup exch get HiVal div}currenttransfer addprocs settransfer
+ imageormask
+ }{
+ MappedCSA 0 get/DeviceGray eq{
+ {HiVal mul round cvi Lookup exch get HiVal div}currenttransfer addprocs settransfer
+ imageormask
+ }{
+ MappedCSA 0 get/DeviceCMYK eq{
+ currentcolortransfer
+ {4 mul HiVal mul round cvi 3 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll
+ {4 mul HiVal mul round cvi 2 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll
+ {4 mul HiVal mul round cvi 1 add Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll
+ {4 mul HiVal mul round cvi Lookup exch get HiVal div 1 exch sub}exch addprocs 4 1 roll
+ setcolortransfer
+ tint_image_to_color
+ }{
+ currentcolortransfer
+ {pop 1}exch addprocs 4 1 roll
+ {3 mul HiVal mul round cvi 2 add Lookup exch get HiVal div}exch addprocs 4 1 roll
+ {3 mul HiVal mul round cvi 1 add Lookup exch get HiVal div}exch addprocs 4 1 roll
+ {3 mul HiVal mul round cvi Lookup exch get HiVal div}exch addprocs 4 1 roll
+ setcolortransfer
+ tint_image_to_color
+ }ifelse
+ }ifelse
+ }ifelse
+ end end
+ }def
+ /indexed_image_lev1_sep
+ {
+ /indexed_colorspace_dict AGMCORE_gget begin
+ begin
+ {4 mul HiVal mul round cvi Lookup exch get HiVal div 1 exch sub}
+ {4 mul HiVal mul round cvi 1 add Lookup exch get HiVal div 1 exch sub}
+ {4 mul HiVal mul round cvi 2 add Lookup exch get HiVal div 1 exch sub}
+ {4 mul HiVal mul round cvi 3 add Lookup exch get HiVal div 1 exch sub}
+ AGMCORE_get_ink_data currenttransfer addprocs settransfer
+ currentdict imageormask_sys
+ end end
+ }def
+}if
+end
+systemdict/setpacking known
+{setpacking}if
+%%EndResource
+currentdict Adobe_AGM_Utils eq {end} if
+%%EndProlog
+%%BeginSetup
+Adobe_AGM_Utils begin
+2 2010 Adobe_AGM_Core/ds gx
+Adobe_CoolType_Core/ds get exec
+Adobe_AGM_Image/ds gx
+[/NamespacePush pdfmark_5
+[/_objdef {Doc_Metadata} /type /stream /OBJ pdfmark_5
+[{Doc_Metadata} 842 (% &end XMP packet& %) ReadBypdfmark_5_string
+<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c017 91.164374, 2020/03/05-20:41:30 ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+ <rdf:Description rdf:about=""
+ xmlns:xmp="http://ns.adobe.com/xap/1.0/"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
+ xmlns:pdf="http://ns.adobe.com/pdf/1.3/"
+ xmp:ModifyDate="2020-06-12T09:17:40-05:00"
+ xmp:CreateDate="2020-06-12T09:17:13-05:00"
+ xmp:MetadataDate="2020-06-12T09:17:40-05:00"
+ xmp:CreatorTool="Adobe Acrobat 20.9"
+ dc:format="application/pdf"
+ xmpMM:DocumentID="uuid:1a1063b5-efdb-4b35-b470-7fc775832b79"
+ xmpMM:InstanceID="uuid:65afa987-1740-4c62-a5f0-bb6e2df32586"
+ pdf:Producer="Adobe Acrobat 20.9 Image Conversion Plug-in"/>
+ </rdf:RDF>
+</x:xmpmeta>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<?xpacket end='w'?>
+
+
+% &end XMP packet& %
+
+[{Doc_Metadata} 2 dict begin /Type /Metadata def /Subtype /XML def currentdict end /PUT pdfmark_5
+[/Document 1 dict begin /Metadata {Doc_Metadata} def currentdict end /BDC pdfmark_5
+[/NamespacePop pdfmark_5
+currentdict Adobe_AGM_Utils eq {end} if
+%%EndSetup
+%%Page: 1 1
+%%EndPageComments
+%%BeginPageSetup
+Adobe_AGM_Utils begin
+Adobe_AGM_Core/ps gx
+Adobe_AGM_Core/capture_mysetup gx
+Adobe_AGM_Utils/capture_cpd gx
+Adobe_CoolType_Core/ps get exec
+Adobe_AGM_Image/ps gx
+Adobe_AGM_Core/ps gx
+gsave
+/0
+<<
+/0
+[/DeviceRGB] /CSA add_res
+/CSA /0 get_csa_by_name
+/MappedCSA null
+/HiVal 255
+/Lookup <~
+!!!!k7RHmmA=lLRX)rYeV/aQ#f.mgD^RT]OYTI1cJYf9FTOM3MBm;7P`bS1/@MKVpH^_.5L;6Ym$OR:%
+TV]heN1`m3@q0#2C;6`Q:908"YLU;,UkHU0BV9lhp$CNU#m`.2+p\M[=\:a$U7gJTWI?BPP]gHaQ&X%I
+Ja&bo^Ks[7Q&LZeVdj.Eb%P(nE-RXuH<"<p_l7[iVq7ncB,qm(0/5B:DL]/f8kB[-eA&Kt"pXP>][`:5
+$471?[C,A#X.tbhNAE8QH>#`FC^LXW#RCaiG\FLVQ0!RYe?+](]LBV=C1s3h@B=gdQ$S6X5&DVkYEI6+
+p\0>S>GH_hhV6T?c(<+SQF1!nO%`<k?#6o[?D:Fkm$F'hKR1;1UWR4M82DgA\>q,"%hK?cN,WEh[GS$4
+CtZ(SgUqk.U8,taJb7X=]R#+QG\GjS^i"=Qfl`2Bj4pFm5N.T\IYXE1T7EYKBn%HU\8>U'KnA0D/@:Ok
+hNslE$jY[LKXe(E^mC!Q-mZ3$9##=Y;D0$8W/&Q8BVJg6q5:!'4>Y6qiUX)sOiF0*T5;c&H'V#c:gA/5
+n*[u)?.aFAX&_j-?W<bQG]pTY[:3-c9iDW6%Nl,e$k*QsNKp`U_[d4fPZqMFDI;^rNTIs`NGVq$9gnF&
+]B,*=B5r^WWL;#3T^SMG@:<TOBP#e8BSF6jgtq-8,V6?PH2kOlgX"('QBdb^DF.$*pY;AF"p`=tEC>N(
+WJuJ0NH)FID81+/0f_nB[Af9K4+9:Jfnt?]?X1@.KtG4I;B$H8.i)Y<*8>:0b+F`-1+1bjMW0;@fSb[)
+T9>Fm?eD``XC,$,YHbl\?V*@@j-5MZ<^>D10qWr9[?lg(H[<uLPdbmTb'SB_J8qZ(AU7][QVU%".OseE
+N:31+W.fJaTX2L^Gi+'uPZUhV92NfK?aXcbpXFd3)&p8@KlL-^r2Zm6AQI?`TIV!"_K^'J0e'28?N:'+
+~>
+>>
+/CSD add_res
+grestore
+Adobe_AGM_Core/pt gx
+%%EndPageSetup
+1 -1 scale 0 -360 translate
+pgsv
+[1 0 0 1 0 0 ]ct
+gsave
+np
+gsave
+0 0 mo
+0 360 li
+360 360 li
+360 0 li
+cp
+clp
+0 360 mo
+360 360 li
+360 0 li
+0 0 li
+cp
+false sop
+/0 /CSD get_res idxcs
+gsave
+clp
+[1 0 0 -1 0 360 ]ct
+[360 0 0 360 0 0 ]ct
+snap_to_device
+<<
+/T 1
+/W 360
+/H 360
+/M[360 0 0 -360 0 360 ]
+/BC 8
+/D[0 255 ]
+/DS cf /ASCII85Decode fl /RunLengthDecode filter
+/O 2
+>>
+%%BeginBinary: 1
+idximg
+JlV>@!$M)u!32PhJlRP*rK$o<!;)%HJlS:?!)<<N!);u`JlRD&YZ1\9q2YLuh,T&,JlTci!$M)u!5-BQ
+JlRD&fi8#HqMtVNZW2TWJlV5=!;-)J!$In6JlRJ(!?dI"Nr\g0<J"5<<<,biNrVoH<J"5&<NT7$Wqh\U
+]\leA<J"5e<<,biNrVnt<J"69<J"6<<<0]-NrZhc<J"5&<<,biNrVn4<J"5;<<0]-NrZid<J"53<<8A!
+p/S.n!)<9M!$L9$JlS[J"-mR1:Z5<h<<+0;NrVo!<J"5a<<\Y%^CC`LbZ3.m!;-)J!;*g%JlU9"!R&7V
+%KO\]<TmE_:&0hMWhi^I<U*QbbJ3oa!!]/trD`h?pl>CtO]@!5!=$=7%KMcb<<0]-Nr_rtr)J>KR8j7l
+^\A9=^\1[)<<2[eNr_rtkZ*47YZ1_2:\G7u:Z5<b<<**qNrU<P<J"69<SURS:\>1tBsgt&<<,bgNrZhl
+<J"6@<<0f,%KO\F<Vf\rPth%7!<SOP<JXWTQ2D-f%KNl'<<8@Zpl>GMWe+6A<<*6q%eNbq<<**pNr];)
+mT"j=Z;gm=oaUu:hc7*b!;,uG!<T:U<J"5k<<,hf%KK;I<Q\;AWqDDS:%TRM<J"6+<<0f,%KL4N<Sg^V
++AMKh"&/jhWjl'g<<=/%Q)%FN<</<V%KH^+<Uj&h]^h*`]VAL$<<QD-:`Pae<<*7$%f$S7Q&eoI+9IUb
+pQ#<eQrO-OrWN@"*0pJ&SQ,Z(pC78>BpJ<jR8j9f:&'bL]_5@!<<,ko"ThL?Q0MAT<<,hj%KaDgQ/,HA
+<<9a,qi:`ii)R3c!1Wih!`0l%f2_*9hGjQjq[NX&#-LtW<<9*orf7&lZW6!b!0I![!Djc;<V08kQ2D*m
+:Bm.cku@d-oXp_ppJh25pB:Ro*2-@4#6#)7:UF,%JlRe1!$(_:!X/b6U/_;0^M/ts<J"5F<<0E!"TVBf
+<O>a+[*Vg)<OYs.Q1P4[[+eT4<J"5o<<,kg"TTO^<J"5&<T$jWS+QpbOKhf;<J"6D<</-R"TY$^<J"5/
+<<+$7"oJOZ<J"5D<<+$2"TVZq<J"5&<OGg,[.FM%*8OW[<J"5&<T$jX=I]!f!0FHcJlRD&o2PfnZhO\(
+:n1O;<JOQT=L7u1r<33uQ&&Fl<LQng['TW5!*JelJlVJD![,f9O]AM`!ORse"TTOu<JjcZcedKT+T>Am
+<PVT;[#e)fZcH.=<<.XLh>r4HlW&O:do?I7OINRVZrI+(qq_A"-J2=M<T[9]Q(D!t<<+0;h?)N1+N@E5
+<J"6,<<1A>h>r4HZW2TWJlVAA!2fGG!RDm]<J"69<M*7kVtAgGXn,PE<J"5X<</<Vh>i/a<J"5&<QJ/?
+ch6,pccK2\<W>2]@fK("/HEch@K<p-<J"6,<</oghSrP&\AcEL/\iqi^m_k6B`5O@\cQQ\\;=4;<Us,i
+VtAgGDp22f@`9q1\nEiS@S6VO!D4sB_#Bf&1B"cfBP:G^\@D95JlRS+r8.8+!(+t2&&l=>BP>2m9#Y6k
+8n'A(9)^CH8kQmf\sg5.BEu,[BLPt;\@CX#JlS=@!71>p!.slDh,P%L4M\bD]"g'V4?R1aA`.#i@f>4"
+^m[]\R_$)!R_VNI^q)tG<`Ze4^pqfmJlT'U!2fGG!70S'oMm!C/P7TH^b)"D9";AnXut6G@Udksi%<h*
+^`23CY$t$&@KC&jrnmjn/XlZP!A1gr<R4YHNjP(\<Q8#=DtMo:<=(dt/Rh=E/M4QL'g-DWE]cHq4?R1d
+@c3]ji4uKXAR[e#AHlUrY--=*9)d`P^b'5#^f[[<jAc@_)&ZD6[&$dV<<=;?h=ob+DqJ&44CUol`Cf&\
+9"HTmDfp2CE]eA_f@AEeJ(9$2E]gLFf*ZQM4E>#9@b%X5AcAh<@b"(Ci0m]^=IE1b<<+oS)$*g!P#^mL
+![+W$q;))ug/TP'\1K:A4Oqtk8hs"$4EYS?Dl7MoVe+D.J(<)I5$Dm&Ff.EGVq8*'rB()3riZ60"4^$%
+/H[T9RTPbR!06po!*&krl;a0N!@H.ih>i0#<Td?l\7.%!AR],OA`+M"4LfG2D\T*fEi7O>J)IJ5E^&)=
+Ec7j>Wi+JJ4p%WEfD_oTAS&#Jr7(r./M/`sg/Yab!06po!*%<FW`9(tci)]#ceqh&<@l*u@_0?;ARa8o
+e_n58ANY*REcO?-Ei6'ieZN(>Wn0EuDa('_5,W=;V^D9=fDhcHf*Q#ke^`U9^q`QEa&UJd!06po!*$R1
+]i>)OK)XW`<>&DC@[b))4Cr*,f@@[e4E>I\EZK(=Df9[J>$CdS5&]&NDf7h;Vf+b;DqCmN5,Y;*rML..
+>-;&3Y19\Xe_n6YRQRoVj]);@q\]B5VH(uC"!E3ODr=V,4>"N(\k:mCAN[,ueOnBBVuCTEE]g7'-E`#*
+f;EcC5&YTC4p#Xd4ooTurB:90f-^FI&#Z?%>->#]e^^hQi5!,[=J/[j<</'V)$!Wu<T@*Z+Q?B:\1KHu
+8jt>iAN[,nVlnt.AZhqR5':oFV[(gW>1]Zj5,\Bu)Ep?-Da&*k5,UTB-E#Jlf36^.qHDEQf;DgK$!Pm0
+KS7m*^m`62<</'V)$!Y5<J"6'<=:q#\me9FBP#^Vf@BlP*8oa;f5bdnW]kITVl.o<VlFY^5';"J4s4u3
+W[@^/"t$8Ef@O1QrRV=XY1;I\eQT-Pr`TMZeUQMm9"=XrV,[LQq\]B5k#I"5mSsr`]"5[g^mZidi7G-7
+AQi9f)qV!+r]UbBVq39lXf&(85!Em-r]U<)r]Udh5!C<kqYFCl>1Y+!VuG9KY%@R`$a/+X>(kFZK](e(
+`T1%1<<+oR)#uPA<J=ES=Lp7&^u3c$R_[k3f@R1WY19]*XsS'NV`t),,hK/%VlHXY5&VQ-5':d-D^IY3
+-78Sk>1!*m-J-irVl)^sE]j<P$t\%nY(Y>YeV)kri4.07cW'sEq\]Bo]N(G$&QlWU^b&1:^q*.re^rDV
+qYFCpXohjG5,T?t-Dr1;cmCrV5,UReW]kQJW]iVHW[9'pX]ep--6')`5,rNb-J,EN>->#3eV)K'>0tf'
+e^]0,i%;WBjAc1]q\]BoVcBs$.DWM`]&63=m$^Ore^p_LfD=%#eZSae5,URkV^<amV`lFk4shDM-?X8*
+4q4D:f?d^J-77>J5!IRFrmq/Hrmq<bY$0B+>5d"N=p3B*\sba\<Vf\qQ22?u[$"G/<<ThC100kCi$cCP
+i.S8b5(k97eRd97f5Ei"4siH?-ESUYf06)rFf.EG4siIn4smE2=q;r,f-W[.cmI?kWiDsDf<,I`>$A)3
+eZN*+i77g1"GE54]#CFE!4;S?qc2o]JlVAA1;K?iR[VdbJ(;-\>-?JWcmC+9f36NJ5&Vc3-Dr1;=scE[
+V^?Pd-9c?34shU?qQ3r'r$DoUXX64Yf36cQfD=+%>1NV*%FosYi5!lHqHC\Ghqqo-<P2<32>\6k=3jm'
+<<cQ=^hB1Pi#1I&e_eo[ebVI5-MgnLIp+0GDu(gW-E#I!r[&.>X`ZfSWi%1-4siIqcs$;E-4F)0-75kA
+qU_lR>5GDu=pTe2J)J,X>5DG%RK:!/eQ(!s!*B%8!&_>fSlH_u]"4?Gi#C3r>3seBeQSlQf35<,eZL7$
+D^P;r-78TcXZij6Vlb)*qE?7.5!ISrXjF3L-3UHt-J'UD=pOn->-@_u>$CpU&R*_<i76b8i-u\L>(jIB
+^h@2n<Td?^Q22?u[&$d0<A@suRV:WJ)h2%@eUQ,PKN]`!X]eo1>$B;)4sjG[Xf_H%50tW'qJW;.4smBY
+VtqaB%kFb/f<)/%XX;EAqTsoIfD\qZeUN7*>$BJ,K`-B-i.SoB=rY&g^o4cF<W#hsNqsWS<Q\;L=Lss:
+\pp.fe^]/lrdPf=Y1<AP>0sBTItXrU-EXDsqU\n7=shkQDuD!h=sbSu-EXE%qCDNH#[5UOb5,;ad)u<?
+("Ite)h3>V)h/eGJ&'TaqV\rrRbqeW<<-+t)#uPi<J"6.<=Zf5R_\:V^qbVQeUQ,&J,Y*$qYnhWXjGGF
+KWWl&>0pG'=shTCXX9qr-Mf(fXTTtSqYD`@XTQqs>1!.M!Nu:sf*2"SKR\Ker>Q!Wi.P:LBYYPf]"k=G
+!06mn!4:feJlVJD$Fm[Y^qbHde_hCsrdP($ItWL*rQlHdcru+FK_j'l.F>2#-IAku-E#5B>5GAt>1!8N
+"Bs/UXf_TL!a8d0r`T<Kr.G3qKS7lZriQd^i-u[bm$b^nKY"bQRV9\/<P;B4=8Nj8<6eL%<=$CO7DKjl
+IiHo@)h1_<J,Y*&b0Yh=ciSmCb5PTDck0G.cs"fJ-I>rCXjC7)b0[7orm1YIrm:Wp!*]<I!@cCpK`&sm
+K`0F&K7=j>RKh+X<l!W4B\HJ8<</'U)$%%S<M<D$@VE=l)rU(4J*b_$ec(%$eV))lb59Nfb-k/E's5h4
+P*.:E;9D`c.F<a$.a#p3r$j2qcij3lIo0)Acj3fYb0[8mqUa?uq>d\s>5ZnYi#D%?^kB:fIt,8Q``;8'
+!4;S?!*#^n\5aThBP=tjRd@i?)h/gnK[irBJ'*Ftd*U<?r;7ViMMge@!fCuT'oMQ'^)m3peV)IMcs!PT
+>(;4-Xnqnmf*/<\KZ\dtrRD85^ma/6lp]i^^qd3Tr`&r"qAB:?N`FD*!+Pq.%B-kqm(gDdi4sg]m!jNa
+ap3U.j7?U2g5>fJ"MVTiQbNF[!gcJMroF3JQV%!m&G#DG*m2XUeULcL>$BJCJ'._C!nCKNr`Tl`It*-)
+e_hC8RY9Q;It-fIYZ1[&qAB8jpJpKYJlVbL#?Y#-W)fitW;bZU)o1#'Ih*J;J'*H)I%8pELE:GT^:sC(
+!+GK\s1\DN'8lA7r;+Q>i.P9e>1LD-;1I,"d/@/IeGt:%IgX`VJ)ACuhpm4+Aai^:<<+oQ)$!a\<KgDo
+^fFKLW+`cR7Gko=)]Pr0J,Xp&C7LgJg4p_hr4`&:"3=ol@K+@I@0"CE@K5Hh^AW$bo(!iT>2U?L-<bn&
+IiDQ1)rRl&re(kee^]>&)]O:WJ!tlR;:U0SA_^;<<<+oP)$#r0<N/t'/SJfQ\nKuirne6T)h]0se^].-
+fUQ:%g)b85^''U-@E;mUaSEmWIJLt]@0>WQ^?,?6'(R*de^a#9d&r&P^jh#em!jN8r`Tl`eQRWU)skAu
+i4t!b)rQ3.a&VP-!&aQi!48@u^Ju48BP9/ihn!Ji]"6eVIiHr)lo#d7?@:HJ*koAfOof'#IJ:e_K)Ndi
+JcWrErQ+tHrF#ch^?,<5,kBK=ea24I>(khL;:X4`hr'1<KS7n6eQRGAm-K5[eJj"gJ)Ib8"12,I)>b9O
+[#%f5<<63&qmuX]$fHNb2V?YgI"rd@^Aa;q@J\(5K)`pf@K#9pEH*I]K](bGKNd:?J&$_ee_o=(KZa:I
+%Y&t3i#D%L^u3QY)hd.g\Q&[;<;7=2Nq-2%<U3Wl@[``@]"4?f]"1?/h[=2c2B(5<?Lo69jQ-<'!b$M*
+rl>:qK#iOqGBa%<!-e*frQ+eCroG2@E@T+\J*c*HeV(`ReUQ,!)]QrBIt-!uJ(<*9m,&!d>(>(Ui8;4J
+"14(G=8*R4[+nZ6<<,,_@_eH2\cgp%77Ffch[U_HfUR?\r;=:iP*06^IJq7bK)^&ng]D\OGQ*0rGCkG%
+rIXsgq-afq8P*nOb(%3Vj+Ps4R_W,+IfdD)b5Ql#KRXqjY3bN4^u4R/J&#Oc<QeAD[#S5_)$*gG``8C+
+#/E"*\sf)!rb2/c"?%1NfR*trr;=:iP*06^qT/\gs*+@qpilbnrdt$g!Fa(H@2.hb8P.:ZY3b2%ItYVp
+^k@2e^m`(;Igq'\)h5"0m$b`$KS8:&hc8K4!gSdFr##MmQ*=8k<=(d$\sf)!\nGcGrne%KheM'+MqD?`
+oD\Xj^64Xf@Jn4EK)Tuhg]MbEgk,O\s+:9lrdt-jqI0?a&LrIVJ)J,bIt,8&)h/fVRN&j;Igo8)KH'9\
+J!tj+)qBGLb#Rn1"I5!H27/cO_c7!p17CYCBY(dDhu<!@h[5:ora,36r;=9lP5\nfaSg\jGP0bjGQ-Ct
+GQ!-kaSB6kjlMgYK_j;MeV&F%i0qH2J&&kWRRP#AIo./<J*^X5hr$)9J!siT<J"6(<<-/#\d9t"]"m4\
+m-NW@rne.nf\!J#_u0GHjH>[S@Jn4HK)Kojh#4e_h#DTsg]htHaF]#bK)E^g@0"CJjTV"4aBHa/*n>b_
+It&Ep^jghQm(/YChg^,Q)qBGRY+!.phpn0/TiLAXL/e>kBLS?qRN''"m-NWe7K20N$l[c)o>CM(^?#9V
+!F^ETa9.$<girYN!kGksr42j_rc\@tr-&4taFaE4pgFcrjd5'YeQSl#XrGN:K^?L(J,UB"RbsRF)h/eG
+i.'\#hr*DB)b%:0<J"5?<=<K/7CjG,h](q>R_&LU"Ul=%rq#a\quFG6jH>[7IJq4eK)Tuig]Y1C\LT30
+\H(F`G6HE>GLUj2a9,jZaC5&/#en%LcuOfk2MD'Z(uO8$)o-s\RbsRFRY2W0)sj`bR_XE&\mjStJlT$T
+$8&iXR_$<$m,,CcrndpY?eG?aoCMtZ!5AGq!+GcG#D1`TGMLua\c1C^\H3MV\c1C_eGa[eaSoTXK&pG&
+^6drq.9\ogY/!p6KGa%pj*r$7R_$)fhn%\aJ(;?M@c-+4J)=_Y<J"5j<=2j>RbsRLm,+8C])LRo2X&fG
+rq#a!r;=;.Oo]!>r5ee[s4mUa!8RO`"=q$ngir_H!Q`dig]5k'a96p>aC30g@4K?,jd2=JQfTYC5(m,+
+2V#s"e_b+=m-NZf)eb\ORV;'Si#C2chr)9h]!bUj<SLLV`A5$?_#Bc&]):Ffn/BsYrq$0fs1\Jqs*amf
+#_IYPGMLttgirb."PhdV\L[Wh%GZ/OI?K#hgpqXMaF2/.IK.Ce@1),1@@*=p@4ETNcj3hA2GqV#eJl='
+IhJ4-]&/sF\f85L)h4;fhn[$WR\<`5<Uj'(@_-6gRbtoL]&1*VR[Q-A)VG&\o>:M)rfR:jIK%=dG6-KC
+qV21`gipj<\H:RAGQ,YeIE6WfeB%Q9!F^ET@0+GXrOr8urk91PqUJagC+=m?J(<oG2XDC@7Ghe9R_"pp
+]'Oq)RajjBJ*b.6<JOQW^fHnm\c<]J\dRDaRbp"Af`&/Io>CS*rfR7ir5\q`GMN1AqqM@c\_Ptah#2F-
+giphfaEMjXeB!&d@:=SIqdBWh^6drJrOs:UVhA6'C547\K\(^hC/KI"hqr+9hqsm6\f6.7i;ULmlt,ok
+JlS=@"_bKYhjR"5\e*bfRc!"\f`(mAo>AKDr8a"BP*08Ka8gG]g^(IG/%KkJgt^EYG6QL;I=92drl>:l
+I:6QII=;$%"IHj:Q^@]c,@Mps>-8edLFUhXeJfIf2B/+C7@HXaR_%Cf\f9Rri4?^$i8Rag<O,U*\7klQ
+!(Hjt#F_+=h]H4Xrr2Kh_uBT4Oog&?IK%=fGQ*0oh#)a)aF+MGgpsuN\T`8II=9VdaSUAg@:=RmIJmRV
+aM+#&rOsRt^<$0&Y1MUlLPK'bb,u\52B1S(hjRT7hnZh71:lgEi4>A1m*/O^<QA)B@VD^OB`5LNR[W-k
+m#)e7Z*Eol_uBT4OoSqha9-X<GCoVF!dB6Jrc\OeI<TnVeGO^taF2-XI0G%-I:7PPr*_):^:orqEH,Dj
+fD8\$*f#M#>$=%<i#77fRd@W$BH,itRROg!R[V%'It+t.JlUT+"2JS=<rKT9R[W-km$`jbriuIo!5ng6
+rK7.hrQ##pK)FC-@,,-tgt_mQ!6G(^!e&SJrd=cardFad!F^EQ@Jf0c^&e)^"'X7*j8OfPeV*dKeU07o
+J(<Eq]'R5$]&1)"]"l*pm!lO@<U*T=<<8?dYuLu[BY%6UB\s,bhqslkllR.u?N'KpquFJ1OoSqha8gG\
+h#Cd]\I<\mgsgOle9?=heAuk,I5GA@I=5O4jhAHqQZ7#Z^2^kjeQRGAj+l?Dd/$pqe`.S+i8<F\\f7*r
+i0q6gkJ4mE\pn2`<J"6?<<B0,oWhI&BND]F7GjQkRf;1TRZ#hNZ*Eol_o)EM^>tH?!+GiIqqM?*?sp1K
+YPbp4eC8^AeGamqeGjsqe-:?BaF/KXK)/n)jlMijEKXLY>(::B*nlB!-IjGm;&V>3Iq%<NBUYCI/\nr2
+7@KZYKOWq@L/e>g#mn8O<=r?r\nGd7RbsRkhjWHh?eGA?rpp91_u0GHrK@0$"k;>_\R8hD.gE3Cl`V&6
+\H.5krR:qMe9ucDe-^WRIFQbjaN/dXGPYbGjTiLL-Ml>I[YOh8)-U3^J$,:[J)Gh6)ee,t^u(TL\lP92
+B^B3Q<LZtk!XT0o]^8_@<=i85\lMk#hjWGk)rDTL)VF3No)Q]-quGgVP5`N-GB_it\R6p<ri[$H'bu7L
+'s"mUeC8ore9ub=ICZn^rR:kYeGdr!I:7R&@/uYljTiLLcs"tL*f'^J%4_3$b1GYl2LiNmhn$W$RKbOG
+7GjQ&^pmCK<<,bm#m$*efi?m/&6Mu%<k@2"R[V%LR[P>NroX.M"2k'7^Aa8sDLKV*e,spMgq!D7ric9N
+";MZ%\[h[grb`2]5CfH<\Y7N`U"%S?DNap+$KRPf^?'?Sd*U<m!GZWPg)9<*K[oqZ)IIt5eXF:hi5"6=
+\sg32hn!L4UK,95!0@'b!KSAB<V'3%=B:kk]"4?!^u+%\RPrgtZ2O7sLVs&Nr;DfXa8j`hh#Fqb/,cXP
+\J>'n$Ek1p5HE9Le.uq>qLAUWU&NOHDLI\2jC,ccrk9=k^?*L@KS8B@LYCI0g)aF$Vq"u')J[eAm,/i^
+^^6Hu]"1pU\nJZaO&aq7!$M.F!DO]H<<cRghe9UY^^(mJhqsm[rn.5Io)Q]-r;Dc\DTL>WrnIgj/$H,k
+YIUjIYPs%['c!neJ?,Bne8F>dq1&dFU""L.DWKlAjSZakE<XL<J)cEArn8!4HsZ[$Wde4))E**'A`"Gq
+)smQm#.eJK\sg3>q,N#Hn5TJ$q?[0s+LtJ_=Lpq%]"jclR[W-&Rf:sEqssg)rqlfbOpR;7DTKoKe1%r`
+rOE,_\[d6@\Y8tP$Pe2cU!siqmM:>'(&`[]TbGr:DWHsujM&?c^:nT,*e.&Ig5#X\&7/\5;5Yb`f@V!K
+J)K7R8t,ap#TL@DBNAf8BJSXKL/e6GrX&K/!)9t'"[tjnR[UhdRKMI)f`(a=rqlfbr;MiiDU`Rl.Cgt>
+5Ij#.U!tM,rmV#cTqN5#J-VdtDAFt#'c$Xs%ABKFe.se"mc<HHjM&A,E<T3hj4]9DrRr6=?C^W=f36ca
+)ONEd)qD_Ch]!NM^u)_(BUYm8cW-H7!)<4p!!;ala&NU_BY(e4R[V%LR[W-driu@l!5ng6rfRO9\Sh+Y
+.4GuurY5L469kDa%&'@1(4[-MJ>!`rDSuGgr."dJs4$p`ro=<u_hX"eED[eVL]#jGHsU-Ld/)@sC=nng
+eUK\#^u(Tr)]P6WBND]F^sZ3a\8lWV<NoI':%nqo!q]IqY4g#HEq*/b<=QN.BH*BZ^u(TLh]LMMqXYTA
+r;?!Ne3DGIDY>P05=.Z66:)DR'g`[#pAGa:J:JB.X46QT()="fJ>&\9J-Qi*E,KP/DXRMb$2h\\LV=fN
+g=h>ZgAYClSB>"^>&)]W?[pV/m+&n?RN!37rb)@6W++7V$Y"nhL\(GPp1bmoEo'g]<S^XT+S?$@o_;Dn
+eb]4AP(LctLUM6L<<g$JBY)!JRKgRCRbo4>rqc3j_u0Fqe1)pG59%Hh.2L)"5<gG\V\MGi'c)<8();@M
+5G8j1()Hla!e>fprdY4hDK$Bb(3"0jmK*6@rn7>nrRq5mr7Vd2?='.!>1_;>fG\,*Y((rZm(iOf"M.WI
+BO^a:j&H/YaP?bp%Mm.`@E;l?^;KRArpKK#[8lct!35Yt!$M2>'@lr7L]!=Vgno\;aN4;0<E8lEVq"cK
+/SJhsRL$]t)k*3Rf`&/Qo*5-j_C@c!((JD8(%rEcp,74TKGK5orB^L;rdY.f'geUEU&Gf2Tn!l.J//'6
+$PjLsp(eE_[Ve;UVu@tE.k/R2r#Ygj!+,Yp%j"oWJ&'\T?T-GaAK/FR)uc90\nGbXBO^"%q,J7^K&"E_
+<E8+CP(MJ@aC/M?P2uQ4r3gWdWDrrjr!E0*)B`$[En10\LVE[p@?TECglhT4@3npV^;s`\el<0u\lQD2
+^m`'-]&,FF?N0O<k2u9Pr0#PY[`TA=5<nl8KJoWsU]bXU"SRM!,pe(l%4)a>'nCh.()DE9'nE"VJ2<l`
+p@^3V(4[\qp@a194Sf3MC@;"iQJ-_AI"rcsI%6_Z>$;l\mM]FNItZG?8fO4fhjXPU!b,iQgJn[UVP\tC
+-$$_T@GKY8"iu;:I:6R`OoiA8o;P^i!qcj/9iY2roCL)/r:@ht^AJEjVP\dUVIB0uraCDU(=lIe`Frra
+RKjeIR_Y@MfO"RK+6GKQ_u/q?p9s\g65;^L67!q2p4W,B"E4M;p4.Z/-2nVdJ/*U.()<Nn'bu8uT`]f\
+(2c#b[^PmKp40'=qE-&dDu+/:p*qQ+*ZBePg=i''SCktf)o)m7Qs\BIfBh%V)o.oRR_!0ABXles)()5X
+K&hi1P4N,;h#*=Dr5aJAaN.duP2reA<O,U):%\f3!`ddmrr.\eP/r6'r:?f@VT=OiaNAOYaP<XAqGl?O
+%<?-n)nMKr^m^_LfNti[o)RqPmKU,n6:)tbJGqb?,piEa-2%K8K_@Y0J1;i[65;h;J//oNJ>!a/J>%Le
+()CjDk'D!B"SO-pKI);L4Q(ndp&o\"mNIbbf[q"oI%8jAj4/XpC=nn\C9D.7K::]/^u)`7<lJ+LgJo-f
+aJORMrp\!aaP:0]rq$'Zra(NSjM&]Dro@)"<<2[a#ogP-riuC8P$rdoVLi67aF^:@r7lnqebk#rJgoe]
+nl5^5<rTZS^qekIi'mYEZ1ISLk4A2]md@sc5:\r6'bqKK(-d=9Va;^/K`449JH$qp67*E^J/(A#'nFdL
+TqR"1E,`[?p3HiEp4T?A-1#<9Ub_Y>SYYu%2ZA(8*ral@f\#4fe\GqP)II72XoTKlrgF)LR_!0G/a'Xu
+<=&G0JqC`.Z')j#JcW->ra?+r^APn?repdI\Bn71<<**o#od(>r;>W=aF/ZqVP\s'P(KRdP*2^'CA`[\
+a=5Y>"BK3I^b#lNR_V?\rr01oZ2Wkt_YfSbDCX-b58HIJe.sJt()Hj5#D@d(KGHe&JG^,u,si?MYCM/E
+aOCt@DYE5T2L9[g"9eE$rb*dWSXk(QUj@?_nF5HeP0!6BI%8hI>-<?ifG^,lf<0VR)k*5QR_!0G@d!Md
+j&HW`^<"C0o9*OFgt[MQaJRbka9H(9^APmRp:F>n<<,bh#mGd9r;>W=ra?M(_h-[@JqrrLVP_H+VI>D\
+aJOA7eQ!'oBUUM)^mZjd]%C?OZ2WkkoCMnJP&;c!.1%Ff5:\04()G'8rq6@.K`1TUKGHe&'br$F6:+!5
+67]6`eGa=jp9sR=$k/qXrhL-sNLcW9SXo7.HDI?An-iZ/nGY<`HsYGD>1\8jfG^-8Y--=5RN%^Qhn$C4
+@cucOpf/99r5b&8o3q73VLn`/Ju5DsK#l#AaC/M?^@SM-<<=:;$2Y#L>DM:&r:BpeoCIllGG]uQMoa\N
+aS_oDMu7#=@Ir#L%:X">R_UL,RV9:b?Epd7jrNL!md=sBeC5or.OcgrDAF_qmd@Ld[eBCtE!1.R!JE]:
+,nr\D6:1JBYHPKbDStnZ_WD9rn>(C0Ub82KSXlSGUj@>F[^NI'a^7rda7/^"I+[)ofALB^)OM=EY1:>F
+R[W-k]"2Qa1>5_9eV@So_u=)"K%ts9!+Gl^"MWr*aF4'/"CYa"_fDbW!?dI##ltrNrppHoP$re:Md_47
+g^[bNP(KQ_LSeML_ifU[r7+dL`Ft^/rkJZo^hDA,rT4ePoAf8%DCX/c.EF![.Ot.0p?oBLr\af\H@#QK
+$#oSR5:%%25s[j:p^"(6ID1JCalX!3nGZYpV!qWbrgj%a!]K1!rk]lWZ!Lbj?cSAof[u_Hj4At")B)si
+eQRU@RbsRkR_!05\2)`;'T;tCo7HRsVLlng@GHHdMu<LeP%"=1!g<J%rDft"!NM4Z#p4W$r8a$(@E@5U
+@EJ,^gnr/JrlB\CLSi-Nrk<uIo5ab/gJnVj]"/ir)o0%rB\<=`jp1lDoDJ#oDCYY8)osKYDJnn1[^O%2
+jpZPoHKO@9H3Es85<flL6N07XN']kAaDoqdk[3iX;@$N4UnmLUUj<IKHN3.,o)\H1ra#r%)O&h+?J,0&
+KR`r-#.@^c)nOqargEq&BN6h@<=U>9K&!5Tr.<#fr5dZF@K$02ac$/r^:q\dEp-Ng<S1:O]`&3<rqubY
+)e"09K&!6Eo8@%/VLk!&P%":faRfE&rq!Dd\COX`@_0.dR_T*<^q-Jsrr2$arq"#)md=uj.L'd.p?ptX
+_YuG'H42\iHKI,3H8YnFp(etR63-f[5nbd(@<%SO?W'eBa,S,;>k"QYUnmqt"+'+l2ZE:jLO@g'SClKc
+?C]Yq-A6l,?Q*9dY18uPhjU"kR_$(1@eWm^<>/][Ju5EdoDJTNJqD)ArdnRAP2uW?"7uN]EkGE=<<Vq#
+IYX*c@2d5.I::p.Js'I3IGEV0Z,<j-qJ-#jK#m$NLXfB*@VGb0"i)(GBT)lhjobV^oAfi<!H'CdD?0)6
+md@qMoCKi92Wf;oj#6ku-@0tr"E='!.mcQgq"R0+grPAC)O&5?d>a.+;I!JrUnmLUU^RZirX8l-riuHM
+"kn?ofUVs?fE9aJIuF;5#\mQ$hn#8F\siW0!EHYh<VKK3-2bj>VLjtdZ!hj.aSq?SVVHcTaN.eQ^AMH<
+<?,!?I`#U8aF.K[@EF,VggTf;@E=%`Mm7#;<VDUSV?(*@ePusdBY(dj^m`';f`(m4"9.H"r;Q-_D?fOs
+j20jSr;Q*hj5\!7j#/fAroX6,&paZ`p-09Ypl%LtYM@3=q-R%?rm:n/a&5h)nG]3`%/r-qoCM,DMi7R@
+I+m;%SClKnrn%;KeURO)![#tNrji9%\sg3D/_3o/\AQC>VP_FtP(J8i@>FH;Ju7?#Jca$7o;5M$Q-]BL
+@:>=^^:oM6Ju6WeP5P6@%K=*>renn9Ju7>#aM,17<=?;l\sf)!R_"F0k2u[B!]IpnqX+R)o>9PcmdC)P
+#NN\<o>3EJHMut=H>#2>p(f//pa[k&YCaheq-V2Ad0e:KNQ4rdn>$Klk5PA[k5G8aMi7R@g=gqEr7D'S
+e[GE`!q:kmrji8%Rbt]f^suEuo>lO=gk(.UaHBuLr5aJAgk(.!rdk3m@?UOgW`9TQ_dUX#P5Op0Mt>$F
+ggS<2qiV6_r8a`Pgt\&.q,Q0L&A#HAhjV?Zf`($qroWA7_Yj?""oRuS_Yj?1mf34bj8JQL2Z2_:H3FG[
+p:2]arIP3>o()T`;Z+oHNQ4rdn-fa)rW;4?k5P>]abu&YMi7T6HiT]7fE0FMm/12tK](b!hqu$&R^utY
+<>>/JaF_KbaC2uAo8Ac`K#k3[P$uH2Jc]A9Ep-N;<=jht@=l5bo8!>C^4N6'rk@ImOp,9&aN3/6rnIO;
+b2cRl<=$0)]"4?!nC[a=jom[7j8@rtrqm2r2E&GMr8[_Qj2/Ykrpp0QoDUWLk2nT$H4L.easkiqgk(.>
+8P*DrR)f0Q"c\M^;XfVD$jck3ju2B$2I>&6MZDE/SG_"@crqOi?NCtO!T;l7\cbIZRV94]<<jgYaC3/A
+aC5(2%eGj8@H@FZoDH=c@E;mKdT+^q!qYJ]rdkDar0%!!aHD>>rK7:l@E=%PrnIR,^:;Wl"1i/7\c]NW
+)VFuM"7u-Er;P^_r8[D22WM]mk1fk8$p@-E'I&P+2WcnUk2uYh!X,s?rl>CtK(%em8b+DKa8OBnNK$h6
+n;E4oKqB%Zr]LW'Ko:j-Mi/JlfUSK0fE0FMW;L!)j5AhPrON&DBXmb9i)L!3^0tHkaC5%1#Q2Za@JmBc
+r;MHRgrPZ/]iF5q(tE&'Ju5DsP$qes_o_hjP*07:P$uF`K#mqC!W9IV<=1<k7@HZDf`(%)k5OrZ_SY?n
+_W0\J2E(.._OWj`!!GG/M[]Ua$itZfrWE4=rl>b)n)[,4ngkTtd=ouqN=SobnF3(D!"/U$?XN:@fUSJa
+)ZJ@jd!tQ_?O8XKR[QZY]"2Rdi)TDL"nQ/2IE5jqOq#.H@K,&6aF`3EgrPZPVcEUo%uZU!Ju5Dsr4ZV;
+r.k35P5SeoaN/sbaF[jldT$RgBLTLGnC[a&r::<5j5\#Jj7DmA2ZB?H!!GGJ!!#1[!!,6:reh`bUj</%
+2Nj6EI:;5/o($9p?cUGjdF!qO;Wri*!"OuqnE:d\SCe_ufG`*UnGHW"2W3J]RV5-'\jb(J!WM0Z@K)E#
+P*5G7P*3mpaJPiiaC5!eTiD6G^66Rmrh]nTJs-&L_nH,6rF,]H"G4_9^<4l(!+Pq@"K772roX1N"N&%9
+j21fe!Y#&=rW!?-l"1/Z4TH^>'K;ZWrW!b,M[]+EH?qJqmd?7$@7bJ0@k:h#rJ6.2d>c1EkS3sq!^.]=
+rFZ-SJc,QPqrmNVf\$*?!`@hnr*KRbi8:!7rb)>2^sc9i-2`p7@?Qd^P5P7L#Ej\9VLi6>[ej($<<J0?
+@=nHT#2I:_r58GqrF,ZG"+jtZ\G9.Y<=!&77;/WXf`&/To,PWaj5\"noCMs>N;rt5\6,A8c"@"VB4iAH
+2mb@>!!J#T%.L(lH5$5EP%!HDo($;d>6Fh[Ls_2[;Iob,!<H=%+U:M#!,#qVq_AEL!!$Wpkh+Pc)?Sr4
+)Z3qF)LpY5Rf-n"^sc9c-&;EZrK7Z)L\(G,JqDdTVK^+Eo5`tnl;c53"P*F5aP?`k#(g:Er;=9lraGcH
+"(Ap!\C+@X@TNJA"dms)Z1ISd_>sN5j%T(9%-RZkgWN^+Ar+]E!!"r%c"8o"=Ld)c4cMA^$oWDir;=:C
+jbiX"A,2LUrDSEta&5e8!8G"cPp'`_B)hpEB-GOS=9/C%qrm8@)?oKs)B)s$ra,eXhs?e#rb):@oMsdK
+!qZ$]rK7WfLPNTlK&!6#gk&st[^fE"<<L@W@=nHT#2I:_^ARnlraGhTra>j*b0a2t@VBGRBH#OcZ1IS(
+_YsB<j5^,u4_4HE1)3ouT88:^4TP/?F_3Rt[(%]AT:b8Sr\c:Dr4_7+EJcG[@k<?:7+$_9%oNB-AAu'c
+Q"J<tB)hoj2pGsR[(+ij!6:<#)?J`RrYk`B#_21[\nGbX<k.$eoMlV!o7t&CP.pjLr*b34gnps#aHEg<
+UfI7k"P*+,aFaAf!dD_Krk8AqrF,\g!W9IT<<0Q-BEB+Ok5OuOr#kFqr;=G'Z2XaE?X/S]15O=>!!$Yk
+Lh$YHi1u>[-c]Hq2R^I\_YjAH%#SP)/1cMl7+$^Ja,U)B(<*ejQ(Nkg+TMKd<=^@?[(+(7!'O6Dr>G_9
+W;IS5?O2/J)nK^]<`W>N<<o]+oDFd4r;6s#P/r71gno\E@JmR'<<J0WP0!Qu"+jtBj9*,ZP%"?Q!l"RJ
+crCLa<bSG1f`(mAo>CM(rpBjcmem%T!5e]P!lDimrpCs'k2seJk/+CcrX@r+2WNi7r8cqtQ^9C9nma5*
+"-Z,OdJo4*dJh0"kig(-d5sFL7:Q.-kN?BJT)`Jer>G_9Mu=Rm?O(?4^u))(<`[RI'!Cj(^:sOC^0uWK
+gnrlJ@?UW"pf4+i"P*,)aP?`k!o1k*qN:rpr;=(u<SCFh<`Z/tf`&/IoDJOSjHAqoP4&8G_o(QrrmW>3
+DJjE2(2i3o0uNGIDSs?.m]l3Xr8cq%jC.#6ZDI,%q1bjNPPrl>r)3OX!FP?jkPuFt;@/PN?Q'j8rn&.A
+r>GuL?iKE-he6\(1=0#5\F]X4^AP^.aF`4&VLi7;o=!XY\Q&cQrk<f4r2'OIaC5"0"6BBtb2?:g<W6#*
+W7_*So8!8Amc=;/#NY=N_rR!1GPTbgIJr43_sYFIZ',%_rK7]*iP(ZLnmc/\>F63CPPrQ$;Z>nZ?N_8c
+f[u_m)@;du)OOmqPET?\rYkdgr>PZB#<!O:\u;Q.1=&r3Y4MS*^66Qhgt\d^JmlCb\BS$u<<OWG@=m;5
+V?G\+aC/NVOoi@Qb0a2nqT?8,RT<GpnC[`Fo>CM(jSk>BDZ5guj8kElpic_frdFh-rkf6DIH61]jF(HF
+iF/(>nhC&Q$7r0D(Di:_a&;-bra5UB"PB4_S/V<q"'_-2R/UIl)?e]_SClKn)@9bX2B0HCW)cr.oMs[H
+#Ia6q^62pGK)XO.Jq@G/LUU:C<<OW>P/r7QV?>V*I:<,<!rW%<dT$i)?G;3KS>]KXf`(L6_u/TVrf[4t
+"FY0*I=;-Dq0*0oe9ua_jQ+4&grTJX(1DXMjGJh]MMa*U@k90cR&QGhPK-R!ra5[Dqjd]^rKdKZs.'',
+"ItudS6Pr^rYc)M?Q'l57As6f\DL<V<<`!nZ,;aGrdk@0JqD(,LUNpWp/M7p^;to]rMB[KaF.LrOobJ,
+d8^jgo=i<-E=>n;fNtiS_u.70P&?H^DZ5(_G6=miGId]\%(US+I=:0oj>#HFeC=JG&'/1nQ\pZeZLY;t
+@q.'ELAmPO?Pga\P8BT)S=KENQBj3YQMp@UQBq@GS,jO4qO@Q<rYc&L?Q'l5BNA0scW("SL]6lFquMu%
+rIP0naM.7dQW4><LLGdYgnrkYJcNmk@0;\RZ*r%[2qVHN@:?n(<q+aJoCKlt^>tH?@;a0-eC8]C\R8h2
+lX9&E@!?gCI;\+`maU%Ie@F)YGB\XI@Ju&bZEj'#@g&2NL8fn;>F6=r;Np<OR%0]BQBmF(nckEUq4(ZZ
+>Palh)?lL8?Q'l5r`0"ScW(76^:sN#oDFcmrdk6nP5NJr<M3=tZ+bY-K%trdIK%:j@?S?[rq'4J<?8U%
+LPK;ijbd+.fO"0e_u.70P*16AaOGEXX1>cKrp0Qo&_,<YDDB&H_UNeZe@Att\T`Z)@0DISMR&TJZ5[:`
+q(,`SL5&p")I$R4kSKU)>FbLCo(%ZqZAJhVnh?C*RJ36N)?lLq?XFb%r`0,!2M?,!<=cfPI:8;QL]"m-
+I:6Quo=3aZl;c&.&[&iVP*5EFIE7"laF05cLU"A<<=-1hMMJot@;u_=$.rSU_o)E5jH>]*I1+PKGH5qu
+@"@RR\Z>_Z$03hY_esnPe@Bf&?jYUrJmi*HZAP!8riub_0OnU\/6dl,>8!<jPEQe!?^R3!>FG:@q3I=#
+QN$^SS.JmC)OQn!?Q4Jq<q)Ip>F:*;<SpdXEkYu]JdKM]r;=IHP5N4UZrQ!`"h'3#@:@7UJd'5(jS\VZ
+do@%WQfYqf@=l3%kLd'2LVs&NjHBLjrHACT\R;tY$+[+de:$<:%5E;0\J3iS@'=FN@!@4O@H$13iKpi(
+ZDB8SA,.Y[>D?@L`_r$"(C->,R$_*JR@3pIqj[XjrYbd(ra,tH)cg!Dq==>"PMoO6<<R'NaF]$Cg]r8A
+_t3L!a_IGJoMl(FL\tT%K)OI.K#hB]^=C\4'`.9,^=ZbDj`-42Z1Eagr8cq%I=;*=&?C#!@'An,lg(aT
+I=:)5I<YZu#Ht==D6Ie,.gG9jmpY26e,J;+n,BWlA+hGTL+J)XP62W#R$di,!*fGjs7uM]!a?Q]rg4+$
+(M`;;n6>_ZS/UUhfi8<^YSaUeP/r71rh]qUJs*kG_u@0/<<q(G^3tUgVPXTqVVHdE@?T0i<>bRan%N+8
+@:=0.a^4SV_u/TVP'qb&GH8:R?k'1&?sr<d?sp$.GH5+%rEom]D>7t,/#Ld(rpTgErNcE4""[q5>Q68P
+@g">eq>"7l(BBj$L'CjdR@.9Iq>Hfs>?`!aR$_5f(M_i.)Yrri)OM>=g/S+\r]LCVLLGeir2'XLaHHJm
+Mt9r@<<^oZ^0uWKrh^"Wgk(,dP%6`?$hmZZ<>YL`jbdBs^1"`^ag&++_u/SYI=9UhGH:RJ"m`AXD/JV;
+@/k*C?lX#6q"TeUJmn,se)Ad7e)B8kZ7rR<0OnTDL+FnQ@fS(Z@fcC0rItAX/1^uV>F_+L>:fcArEK:?
+s-Wdm$Pt_4W*Ai`S/PU=EnXLnl2F3U4ZE86rh]rO/#K1qaM.7\hGps`#I&p]r5aKFh#4)Ugk*W.r&s^9
+l/Pe:<<N*dQ\YQH).C6cag(Gm_u/TVI=6<`X/fXolX9%^l`[MjD#n&1rG<)2?u7EQ622s^@H#[elJ^_$
+9+9;.ZAL?(/7W0@L5%8Y@fT+!@frR(nmhNa!%e):">#sF/=cZC!#kg's'H-M2J?=jo(eYW/1auY<W#B!
+]q@MZqtgnMHD]JL@Ip,U$d2Q7<<JM)D]n7D#n&mZTC_u/K&#/ZV?hCe@In0s4[$%%<=&G-^5$%/?G=,a
+I*#^"_o)E5DLHr_GH88^rp0>r#O?5DlYYs)D>s;HN,<cIiF.?'X5VN#GH4BcMR&*nRAFCEre:P,@q3j2
+rhTeEV57ZU0_Un7/GiWOLAdJL?XFTc2J?=jnsGg?@q/^;<TI-]$U$ZP8-5Fu'`:K)]feOUqu&YXYjGEm
+Zj$`AcW('IQ!)Q7C]`%*Q0VEU(e?eQZ+aXuh#!rSgk&u4AA(.>4kNaOqNbHCQ=4*T^@THQZ1Gm2jH=q>
+e9@t(@/fHmD>=*I"8MY.q#,%Tg%]E$q"S]CVIAFle*?5!X*<m1X%Usl3B;sN0OnUIL8fo;o)>Hf8Yr7n
+rM9NKRJp^qR0"pD>Ps3W>D@n2Qk!J1(DdLY>M>U2)I)cB>2rWY<<ML!8A4mk!u.E$5l+"Q4[$%=<<3:3
+rc84D$8ZqMdT$=5=o)q8#]fZ>p/MF'83OXWAFP1ph#+#U%,9N"8/+Tc]s-0i*@?QqLV@2*?G;3:riq6r
+^?"@'IFNJA@-b#"D/K(ID>a/;D>7u$fkpNZD/EZhi<7WYlD@tfWtKr5U"%TN3JoLE@q.'EL8fo;0`7aJ
+Z=Ed.r\+C`R@3i)r0Rt$?PhpakFC75(RSE:noEJb!PLYq8,tpS8-;,M84`PI!^/[Snl5^U$i[7*Es%Z=
+$3o![!35g1!^hU*mSs8q4oW.p8H/Jk,5_7.83OZ"r^[.)84Yns<>]k6QA=F-@:"_Eao8Q#_u/TVI=9Uh
+X6]*ND#sEKq=su,rV-cRD/E[)iR?8"?sr="WslOhX/jb"IGp'@0U\=9R4O)IW@VOhV56cXV>`.TA!nm&
+L8gQ-L5,Sm%UU"gkjTL\q3)U5>@[JLgf4=^qa^j_TLb^ir^[#SrC@()4hWudpJq/l!L5;3Es%Z=]*m1i
+!L;+-C]`0,Fm`62]fj(.8H6C"8->NX8>,oP!PK?J<SpddDhjXmiF-/]fS@TJZ1Gm4j9C$\e>p.GYPrAB
+pt>Gqpd+iQ!c?WcrG;sNGN!t%GNrT%YH)kkrMp0Ie:$;5LR+A-/-^i`WJ2s60`@jIZ37#0ZDFB&V(e`"
+R@/earMf[]!+5^A"d>l'q&11NQi[#MgJn=>8A4mk!20<^!h`(Lqa^cO4U^m^!L7p'Es/R6]=T]\<UNie
+Dt[uL1tG%(moBBNp.,2uT_V+Z4g<X?$#bTS^6`8:Qe6Zgao8R:_uA^#IFNJA@-dc.!r1G7rRh<>pd+[@
+rqI"@D.$c#iHKM2\_OaNGLY.AG7$u9IGpNMQC3J^>Q-/WL8fnY@kdkX"0tM(8c>pt0VpI5RJqs>W<JZV
+WL0&[rYGp*W*>d!q4*h>(RXnrk#DEGr(%Db8>&LETG4%iTLb_H]h#h"4nM_TPqM]M!"/_;!"7FZ!NKu0
+C]d&U79K%Z!pMk]r($f%rCHrRrC?o&r^[('4kWg:LPNVC@1\c3fZF,tLVq$jjF,OY\a-HuD$0Rdfg5O%
+!nfk*rn.`tD.'DgiSf"GgimtlaSpVfeGak"iT,lOQCRr/%pLTQ/?+@TR:@qIZEfh&8cH"&V6Zqo0JHuf
+L5%bdWW/@b(C0/fn66eLQMLKHiDoeU!Xh0)rC?oRr^[*`8>,fM"/&1Jl1@sU$hJE>XSoa2#2)uVWqC02
+1tL6oQ2FYU<<="#^%t;"T`.I`5Y.RG8-1q;YhE(d?=(?SIIEMgfZF,tLVs,P$@R-!\a-G9D><nZpd#@u
+g%[jMl`56YiI.T#G6,d5rfR9Br-\e.jGJ_YS;.$1$&2ZPRAm0?R@,c-Z3$AZ8cH"%8[>1h0OlXbL5,N'
+rYGt+P>W<+q3LiHR$dg,<<9<<rC?o&r^[2,8>&MH8GYjX^$52i!!_t7!(Qt"!3FjR!,qLG"%1YjKCMqB
+YW_qU!u+!k8-2=QT_q=\'`:K&4YPMh(]IaT@FKgpQIs=YZ1GlNjQ(`5\R=a,D>j8.5m+U*6+?hZ'%q,=
+X%Uq#jF)7-IH7Z<LVq$DrT":!MMd1ZQsZ5[QjK-aR@/esL0L'"rj)Nis0DYrs0DX##%M-o/;AnHri,c2
+$^6eD(P_aOq4*h>r7k9Pl2F3UTL_VHr($fQr^[#'qa^](p/M*X!-n$T!&OSc!!_.W!$LoM!&X]+!*Jel
+!t.Xj4o7bN'M/4r!_=#uqagb#r)MWS)t%%H@=<arLRd#rZ*D3ajQ+g7X'k71D><nZg&458[gk\iq"X0U
+97>cII>WW#jSjoDZ!LbA^?!"c_hX"RQl#ac'c3iRR@/esL5)+^MR&SSQ^::L8P-2fZMp^"@fS(ZLAn1L
+(CQFjn<7)PQMI&<)CsTC!Bn-n8H5@^8-5GLT_h7]4Zs2H<<*ErEr\#q])fMrfi8%#oPFNX!#"g%"[,Di
+]grk88-K^#83f][q+(JnkZ.7T([bVD@=<arMO'2"Z*D3ajQ+g7\R;UXD>s>05lfU8[hm`NpoE]/iOO/\
+iP&`/^5@]$Z!PP-_o)J/!g]5;r>,R8(PZ/nL'CjdR?i_fZMg-g8c>Lb@fS(YL&m[@q\K6r$Bl8B/=)Ut
+S=#\Rh,OI`4o7bSTG4%i'M(Lb8-6If$hmX$[-r&91]=oc$LUp\<<-1oC]Hj%ec9j`<<Bj)4o%VNTG4&l
+q+(QM]s-6k#:3]j@FKhsM@s7;rir`G_rP]`GI_,ID/K(Cg&=;6[hV4(lZZ"\X6X/;e)A$TjM$M,LU"sg
+rJ(G\SETnf%B5_^L8h/,R:DYTR@0B?ZMg*k8[>Z#V>as)/H(;'WV[J>PEQfM/23CcS=#[apJpBV!O094
+8->M!'L;Ib!kg`)pJh2$mrJJnrOW&!fi8$PoP=Larmh(%nl5_T4nhJIT`%C]T__1Zl.]2X-!n;oe'ha>
+Q=%b=Z,=K?DU`m@@'=Eaq"WN.[fA_k[fo&`D0JWGri[#D@-[3IMS?g`jM$CUa^/;Y?=)8kqNqMe(P\>f
+V55mFR/r2Nrg+'cQV"JSZDFDDV.4!d/H1A(WVdS3P6_tlRI]p7S6oX^<W#hs3:TN>T_q=]]fl*i!0utn
+!(Qq!!(PXA!$LlLrmh-<<E8Zk!jG5/qFLUYrtP6!s#o+:(+%VI@FJZD^6W-J?EqDcjDNIk\R;UXrqQLZ
+ppUED?qX/YYPi;>lL0<1Qf3AAI:9jF?N&"Ef`#1jS=#\CW@XmB0VtUU>FCe7Qa2sEr^d*qrMBL'#+7#H
+L5)(pr>,j*P>W3aq=<7*S6m)f<<0`08-K^#8>&LErh03\!#5E'!''^Q!"87:!3H+1!(PU@!7LLU!(6b:
+!4_W#!O+`a8-haW'M(b/83ijF8-?Q=4g<^A(qA54@:A,]MMKj+?EqDcjDKBi\R;UXq"XhSq6qC>D6&)/
+YAK6nN,:'qVUOgS@!?h9@H@%%fSdjXoDF@HL0I5ZA,N/'A,_l%MR&S88P-3Z8c>Lb@g4J8>D@m"WVmY4
+P6dP10_3q`S6tmD<<EV"83luA"eZR&TL_?H8-?Q=4g=]]!gRhJn8eR:r4;s1fMqoSoP=Mirmh(%nl5`S
+8A4ag#,"M[84]C=r^[/T8/P?,h,OVcMIGJ$L]1Tga^26-_rQ5oGI_+bD>s>162J%q6#C#1X8)IKrqI4F
+pl$`#D(BI2@,,tUP5N27r9iX[jSb5Dg+\jbrhTp2cS/jsR?k.F8cH!qZMp[.c_W=*A,.Z,>DANEr>5Hs
+#cTBNns9*A?\I68!9s/I#G=U%8/.^f'`LW(4U_$b!!_k4!0mJp!kZ&sm8`LQ!35[-!&X]+!5\5+!B<7>
+8-Y_X5Y.P=5kdeL4kis>?XCI%L]5!u^A_HDo>BX,I<W50YAO(0r^$Ci"ki4B\bPsu5qi"M625<l6*IIB
+N*p&Ke8F>bDLHDcI=92XgrOJ,8YtufA#8a+q3dP+Z:RWn8[A;k!&4@]"dpnmL7"t>(CZLk(K.4`q=<88
+S6nDO<U!Kakro#:";FB@8/1Yd!'U'V!&!_]!3H(0!!_(U!$LlLrRLsko2PfE4o@hNT_q=\T_q=bTL_==
+]h#ik<>d)hLPNUXjQ4,.?EpcQjDNIk\R;UXq"R-@rjVj8#!m+:JG;G*r]pV\6#HNc#Pe'EN;0U3eGX7d
+aF06Ne-7?PP2,.j8c<-&cS22`R>UsK!D0TqV$cd'0OsqS/6djrWW!\BPESl\L7J(*0_nq:4Q'3F<E0F?
+8A.PbT`%Cc'M(cfTLbaP8-%oL<</<PEr`<>])XY=<</<UD#MocE`Ma3!jFi$oLJrrpdbChgf5.:a^1:I
+jC)K2ao8R:_rQ6qG@2r)D><o*62S+pg$>^6pt>O1"ShaXq"P-i6*EU@pl)c5rbh_b%HQpla=/R$r5^Q`
+@q5*.@fr-eMR*1Pr2'GaraQ--R4MR0R/Rp$P62Vg>Fb]g!LQd@<<3K@qa^^[r($s`TL_<^qa^_Opf.<g
+mW/Amr4;q]el;^uoP=Lprmh(go2Pm24h\Q-8-PYW8/+<Sr($m^8>,oP!#XHj(>.8G^62oQ^<-AZo>BX;
+e@AspYHR`rrB^Ck"$pe)YPn7p5n1:h[m@L4pl)EOpd)*orGDnj\^],HmaOJ3#B#]V8`cf>o))tu>F,8o
+!_GthrM9qnnh=Q`q(+($L6rbnrf[X)Qks+s>P\)%2Vh@9krl^NT`%C]'`:K''M+no8--C3pf.;HrH%ON
+qmuj8el;]QoP=Lprmh&^oi2&9=`"%"ogf'Jr^[))84``ns&IlT(+%W4LLFW4^0\pdo>BX;e@AspYHMg<
+r^$Ik!c@86rV61S$UR/Spoh7'6*GggjSj$/58C_HTeX!d(-ds4K&uPpV5=-##:qQdZEd%nV>[7jo)<,(
+q>$F_L6rbnrf[Xq>?dU9Qs1IF4Pa!;4mPW?4hV7!<<8AdmrJK1r4;q9ePuTPoP=Mirmh':pJhKaWmY^"
+,eZa^r($f%rC?o&rC?oRrC@"']s-g&nl6JPfNu:TI=bo!ag(HTjF)6_?n8FaD><o*5mb$06.p*_pt7t.
+pd$@^5s_]bpd+[ADRo1QDK*-QY8.m<DElW$.boVaQDI1DV.6?3q3`qBZMdAoV$$;Z0Ot+X"drS!QkpS<
+P5psMq>Qle)B'EU4Pj'<$iNTr'`:N%T_q=\T`%C_4\.a2<<*6kEr\#o])_6b<U*QaWq:*-2#Yu*Q2+D\
++O^4)![PImr($j]'`CQ&T_q=\'`LW)]h#B^<<Ur\r*a"EK#ml3Z*D4-IFPf8/$H-nrqHpg6+=<hD<nBB
+phd3#\,ATD[m<:p[m(V$6+K=4pn>TCTlAMlJ/3*Ae8@M#(#7U+jmqu/QRlY;nsM2;ZMmDqZMp[&o("JE
+rV6Sa>F63Crf[U+q>$PNQsUXfoMt?[#*m@aG]WPkqFCUZoLK$K4mD`A!:B2q!(Qmu!4:?X!``7#oP=La
+rRLsNqc*Z^=o3"9eiiFl!#5E'!PLYN<=pN`r/tK?K"fmBZ,>XNe@Aspric=rs$6ds6.tR3rV6=W0"4/5
+[mIPjfbH_<'ql@.(9tt9e/!!=Y8/iI%&#m$'uJaG8b-l_QRj[tA,.hLriug+8Yr9Snma@`rqQ_cS6M?s
+(]KU(R$RQ<S/7BQ4QBED#'b31!crGUo1/jHr^[$^r($glpf.<=mrJK1r4;qbe5ZLKoP=LarRLshrD`oa
+Wm^]Zs#ojB!#5?%!Bi*j<=o"^jC--NjOg`B_rQ6q\R8hEY8M3Ppd%3T6*IKeD*bB#5s[h'6:!oj6*ESX
+%W6e`TqTu0e6]C7X0FB6rh17JajfaP(%/V@LPg(kj[h"5q3dY.ntiW`V5=.]!AJ$_q%/s^>F63CPEQee
+QBn&2(R$c;<<3<*rGr%P83Q]<#,%V[TL_VHr($iO$i*d&[-hu8$N.L9Ggo^nWq1'*ec9:\<<45jpM:!0
+4Zu>,!D&m]8,tpR8-9Ps8>,lO!#XEi!OsTX@0i%KZ*D4-DUc5r?j*[:D><o*5m[7rlYWh5pd%4F63sb\
+6E`_Z6+O2uJ.SEJ\^V(D%=PK9iT/sTMO&YrjDNJbe=:NEL]5!iq=8$*r\+M]8P-4aV>g#cA,Q-)S6M?s
+rf[UpSD':!S/7BBjAc2eqf;ct^%t8"'`CQ)TLb^iqa^cO4U_'c!6b:]o5anrr4;s'e5ZKOo5+BV"3"9*
+=nQS2,lYLV8-ik$5Y+E[8>)XO8-(kE!57#b$RNse^Ae,:_rP^b\c,tG/$H.8q"R-@YHR`)\J>*1#sgn]
+YP><)phd56lN(kgri6&mFT(/$3=Xq-MZ/nUR>+q$DMO!RR/F[<EL6KhQBj4^ZMdAonc1BAq$rp!QkpR&
+P8]aQq4&?>PN,XC0)K\ip%_,aTG0p28>&4='`LW'^&CP&4nr"W$gr*5])\,]<U3Wbddq8TOoEo5`N%AY
+C]YkF^&1D)TL_VH'VPCq#s^bK84^Eb83IgA<=$)\[f3PLmV^PR\HQAKYHMg<r]q4.q"VCn'brqJ'sFh9
+D/JU>91u>b9)u$k9*!rM9*71[',1=*'o&-2L53M=Ql9<1P)$dIo(eUI0_1,#8H?'qnc:G1rV6Pc>F66+
+P6[W3QMI$h(PM<YoMkkqqf;eM^&(>#T_q=\5kdeM]fl-j!-msR!3H+1!".4U!1!(j!g,i;nSA<Y4h\Q,
+8.2)`84Z!:8>$Zi8/1ql!#X3c$H]QjmV^P0\[c*UriZG!5s]>re?;345G8fV'c!pUX8GTkFK>=4rcA<:
+DE//$?MQVjG'5Q#L5$K\f_gM[>Q0ojMO'Qcr^d*qrpg&Tr:pel>F65jPEVN&QMI&<5N>`D0)K\i7KQ+O
+^&:J(TL]cipIGE$83K-#q,IE[mW/@8r4;rRe5ZKem;2</!^/][lUV&i4k*IUfWi?^DUdIP\R8h2YHR^e
+6*JeA\Y3t]DAIa;X#UVL3=S"JF9"<%FA)UT$Z7stDD=m"3d+gjG5XK"Fpb2bR-:fsLRaZrRJnl?o)2/Z
+nc@I1rV6hk>F8b6P@'WAq:[.S<</<\Erbn,8-#=\8-$@&8H)-\4mDcB!4;08!&OPb!"7:V!34jk!'U9O
+oLK9R84XFc83KMW(tDUn[f4/3DU`m@\R8hEY7::%\$+;le8V\TH80:Ho1fQs%:*6K%8KZ)rcS@BWB1$%
+%sC?/HUL9A(L61Vra&odL]3SBg9Tg38cJ8^0UA%(q$ER]QktsM(R(5>i)Ka]qK)U+$5?#F'M&q284XF/
+qa^^[r^[&QYk_9!#5WE6Er_I&])^%(<<1J'C]ua\4\.gPrC@#)84XHh8-(tH!D"'X<<acK_X;<kGQ,,Q
+@/d>>pd%2Re@F)Gk4-I]ammLPW<RNh`[>!o2Z3afH3@JXk/MSa`[?,YH[G`[qKiK9n`]1ArpeWrrK[G@
+"dbQIMXp?;QN$[`S6M?sPQ'?;!!`=A!P?&=8H5@^8-#=^8-,Bsr^["sq,IEhmW/@tr4<$;<E7XN!$L'5
+"!g#m^&1D,'M(b/5SQa[5lO:ST`.I`4hX#H<TmEe-3!N(DTL?+\I2fKYP:DmldWJp_X[E@%&Dgk`E78*
+=<NlO=I&kcs-<R`$'eV8-"85L&.j3dc4U$R-c]TafTu?'QBmDp8P+g1rKdHY"e6Ku(R+jt<SpdW#-@`D
+!;5bN#8B^"4\37L$i*d&$gr*5]BN>^<<0&SC^D@M8A2]-'VJ!ir^[/WTL_>@q+(QM4g<X?r)EpBoDFcm
+eGcue?sr<(N'Xq`e:?&R>lM_M-RVi`@QY#\=N+D@FT[mO=I&kc.@$/u<L&hO+I.(OF`lV@-P-j7&C/R"
+rPn'b?C$m`QAXdj8W*))ns5U@q$!9,?PengkuI@U!4;WE!Bn-k8-5HW'`LW(5bS$G!^0(Fpf.;HmW8<<
+!&N,)!*S)n$._7&]tHt084]EQ8-#=\8-D1KTL_?H8-#mE<<^LL_ifGtr4)r<YP:CL)m@c%\\msW-RVi`
+`A1mb8j'Um=ESbnFd84oQ2Xb`Q2O]++BXnoF]`d/=N.e=;`d&P&C,WLa66jDLL-:(Q^::$o()aF#5OdZ
+Qs]&Tg/S,trGr"O^&1D%'VPFr!C.@s8,tpS8-HW>83OBU<<.:3F8WWM1Y#J+Q.#&9mq`+i4\/,Wr^[,V
+TL]dq8,sA#8->Nu4[%=q"spOljDNK&rj`qT/$H/O6*HuUIDbTp-d:=Y/M](51(2&VBJKqLk;"eEBNUOb
+<H\5)*OqB"=BLhj\Abu$$^s.=&C,WL7-L.r?EofRjd/R<o)4jYq4*rn?g.LC<<*7%Eru#*4o.\LT_1h[
+84YnW[<Ru6<</<PEr`<>])W2g<<+/qC]Ylq8-(ler^d&'q+(KNr($t(8>&*Rel;r$Z,>X?aEQG=\Ir;R
+YP:De5Ik[RnTMnW+oC$K,5r_cTCj?.qk*f`!$V@=!$N9X0AF'I$S;a"3tMtKHURC1LVnn5MWIE$o()[D
+"e;)$?^!V-<<JKjU3QZY!VO/$8-2%I'_Fou]/)7dr)E`kqK):Mr4;q9ePuULg2$p<4Zu?L^%Y%t5l+%M
+8-#mF<<p%=_rP^VeD1&6%:HBCpd&c-eF#'@Z?BLO+Te:.+o@o/+o@o'+V"`$,hkBl&6$T9S;6]kg'1-8
+8[@pXgAR<Aq4&@j(R$u<<<8?mqf;qQ4\37WT`%Ca5Y+.2T_V+f'M,o.]lS7r7X11u<OD+6r4<";<E8<a
+mSs6ig2$oC4hXD"n43PPr($fNg/\&N#6)O.P/u/.rj`SJYHR^epoi2s\Z]DH3m8`jrgs06qOd^0qOd7#
+&c2eEc?mQufS@A^MFj.+MXp?9Q3I)S)OM=!k#M4W!L7p+Erim9p.,1VrC?s^'`:K']fl&eEs+9+bG'7J
+Er\].])W2h<<AG%Ct`\/4[$JL83m,E#b[h]TV+iK8>,fMs#nn4#55t&P'tj8rj`2?YHR`rfa=q4\Zbf'
+lEWIp+n_K-+o.c!+V4ki;uOb#)IC>!MFj/?MXoL"Q3R/TS/Rb22W%L8Q$E+G"80>u4oInQTG4'u8-!<$
+'ECDp8-&>\Er`<+Er_I'])Y=O<<-t&D!u0@,X))s!'pHQ!206\!#53!!3k$S#HkrAjF,O%h#=hp?sp25
+frrnUpd+[ldlA'HpRh,Nn0&AK&:6gb;AYj0r.g/r8W**0gAI6?S=CLbkWIa&!2B70!'U-K!#5,t"$jOj
+]`L_f]Amr41]4l9<<0&OC]YkF4T`;f^&CP.TV+hH5X7k25kdeLl./i>-1f%8DUd0[rj`8A@'B@YYBSLq
+5m6sjiNaisTD0T++U\O%7&cOi(RU_!r/1K?",`!,gAI6>SCe`ePM]@@Q$E+G"@g'q]fl?c"JA:"8/1ql
+s$6HP!Bip@F7jSS$N.L9[+A:X=kINmeic10qa^]$rC@!_TKrBFr(,C=#e9KDjH@U6GMN2.#%4Y0poh6=
+rBUR'lJZ$ml_!bl%L7?(3egjCL6u1Or/-i-"L<pUg=lLk"e;+8QsVc/<<0E$Erkqsr^[#SrC?p]r^[$^
+pIGA!4n[fU!3H+1!m=SDfi8%#f5(OP]h#j58,sA'8-#=^8-#=Z8-(lXnl=dO$*hD9P'ti(gpsup?j(?A
+YIU_45m@$k90$;%qOda1r<N?GrL`X(!mYsMr@A9NR$`ZCMS;Z>o)@AAQ3EeKfU*JQqc2`X!2B70!VJVL
+8-kk&87rX084Z#F8-1q;p#0ui])_6`<UWofQ.BaQ,X"<d8-PYW83f][pIG=u(u83g<=W?Qmc89,GB_iQ
+@(EhOq#7Jp5m;+59At%!rh'36rWi?_rWiHHq$6a>"3,LFLA`Y1@p>=d^:or#MV@XuQ3EeK)IF:Ck#M7X
+!2B70!D'p%8-,@tr(%!a8>&MH'`CQ)]tHS@iH"ugrOW&SfMqtqCi%a?!@0i+8-Y_P8/)c2T_1hW]gt]F
+<=#c!r8_b:GB_j@\H&f5q#7Jp5n!Hq91q:b#G25+4$3DbrltPg48oKb48[5'3sQ#i+Tjeo3]d3j$"IHr
+>F(/\QZ7oYQ3<`1)IM^b<</chEr\].8GYmWT_V+_'M(C#]fj!dEr_I'])W2j<<+0,D!YsF4h\O"4\/,:
+84]EL8,sA$8-1rf$eJAa-1f%BP'ti(GQ#)NY6+Jb\,JZ$phaD390"@)#<U/Rs3CRA!m](&rQP,`#0b:Q
+#7!>;r]1$`r[\If@k:iMMO0ZLMV=BMrK[VWSCj392VqF6#5N<?3;H)FT`%C]T_V+[TL_TS4n[`S!&OSc
+!(PU@!,pD(!W0S'8-'EtpdbM#84]u9<=#kIr/ts=GB_jA\c&]5pp[a35n3VaD<adQZ;Wj/cH]?erVcap
+r6G.;!6t_mbW@n5r]1%6r@A=d@k:iMMS>FkQBp8&Q3EeK)OM=ohGjQ@q/ZT04o%VPTL]bf8/1nk"@,LK
+4n\5ao5am=r4;s9fi8#jeSG73^&1D$T_q=\T__4U8-#mF<<rNpr8a$^e9ClH!4i*4!r,'jr^$PY!,_^.
+#@2]%;cEY8a8SI--iNsA$[_h"a2]S+;cCt'Hi6#'/H0,^q3HnqQN2p>Q3LZcfG\,\4Pa!;0)BVhp%q8[
+5l+"U5bLZ@TLbaT8-6Iq]AR`1XSf[1bN`*s<<-sfC]`2$^%t8)5STk^TL_VHq+(R[83Pd/qGdqMoDI[4
+IFQbjgt]HNriZCu6+?hZrqHb9lUsn0?,fejqSi_--iJDjrC$S'"@OX9&:=C;s+^G&#\.?qq>'T=^5DcQ
+"e;+8Qkq[@<Vf\q[/+hM4hXBL84]BfTG7>q!20$V!'T1[r4;srfi8#jrbU2&r]U*K"$fCJ5lF7RT__1Z
+^"-0i-1f%PP'tF$GMN1A!+5l3q"XbQrqHh;D<n5q93l^f`ch:s&9c(56mkAj`l<0<(O!fF&9e"5rItA)
+/G]9T"o7t[MMd2cQ3EeK)IF:CgJn4]r,VnN4o@kG8-#=X8--EshK&ZdrOW&Sfi8"pl"o^&![L<"pIG9L
+p.,;!8A27Y<<oeGr/ts=eC=G@!kGN0q`t;:q"Xi*!:0VW!aT)T!64u:!>fqW`W:6!ri$#:H[BpZr]:%5
+""[Ydq>On'ncS^YMV@uo#%!UcfU-%0h,OQBU+U]gEr\2h8,sA#8-(mHhK&[]rOW%:fi8'<da`.8,X&j9
+8-'Etqa^]PqFCUjel;nMo>C!ZIJqXuGLX1,q"d8\q"S]CYHR9k9*I=9>n]7[ri$$DG/e]KrM]pC7!:V7
+rAsq4".:^./H0/Wnc4RDQ3EeK)OOkihGjT`GklC]4h^\_$5B/+83ih5TV+iKqFCUuluVc>!&OSc!(PU@
+!*Rffs#p9N#!bGHTL_Tfqa^^[r^[/T84Ylsf2W&%Z1InSDTKote-!7bD>=#p$2AB4YALK/YNr7g9*mUO
+3B7OS>n^O*r=f)i!-\?&"K@-1>FGIAraQ*%ntkpJrg*MK!+,Yp!ubM_4Ps-=[.n\EoghWHqFD/38>)VH
+8>&LE5bLA*84^EWh/`Q'r4;s9g/S.rdaW(6qn;nu!'pEP"@,4C8/1nk!^0(;oi:!O#57ZdmZN">rR:mm
+l\ti<!^ZTIrqQGq"M)'nX/l.k#rt!T:/2Ht:0eP33WO@&3X_pdL6dU!S1L*(q.'?nqj.2N"5&uJkkA*@
+<<.:>Erindr^[/WTL_>@oLJtTr^[('p"aZhXSf[1bNr6u<<8B5dqf%1^%Y&"'M(cfrC?oRrC?q%r^[#B
+iDoVP#:8NLr8_b:aSsZjGI_Sip]*VWq#7H$\[d6kX6Zhc9E$pQ%:)a.?2kT93X;X`R"g?cS6Pu\!r;C@
+r:9lRrgWsprgX,D)IF:=i`5tX!2B:1"%GgPT__1ZT^kVT]fe@2Er`<>])W5n<<0&uCt3>(eig^[qFCa^
+8/._ip.,9K84Y_l<=/Z0r9eHNIE9pZ!n=carV-@YrV6Aq"7*LJ\c&30e4XmD3=RtX?!U3#rY#EhL7"qV
+rKmpuQC1tQR?h@RV5=1^s7uM]!udOC(Z&-lGkuI`3(QS*r($f%#=qCY8>&4='_b-"4[$F4F8WWM0&0G-
++O]Ljl"pA_rC?oRr^[/+84XGfrC?p]pIG>L$e\M_Y5Z<9P5]k9aN2lAYDi6nphg$*$*S2_YHNJM58G"@
+DAI+*(2bi]E&%6prQ,Q;?C]Z<S6h_OS=,f@@kdiO!1*VS!+,Yp"P=W"k_.hn!4;TD"?8rc8A4dh"/&1U
+5lO:U'M&r98-1rfF51g:7fBq!F59gsQ!)RPrbM]_4hXD"qa^]PrCHs]qa^]PrC@#R]grOa<=]$"_rQtu
+IE6id\R995N;WGOD>=+6$:;:s58Kq.(2e)1rA";VqW7dp!Tm_fS-Xn9QMHr:q(Q=Wo)G$PS-'[:([0^U
+!2B@3!B@dd8-#=]8->MUTG7/l!;5Z!nT+\"rOW%ch,OHTcYNY.4[&[5!20-Y!_>kTq+(W&84YnJg/S;&
+rknYsDZ5%laOFV$N,<G,phfg$rN?JAJ?RH<58G#RqD%s2#I2.NZ0(I/Z2Iu7QBj)tQML)*A,c$#QCOKB
+S-,-ck_.em!"8aH!_,>dr($oT84XHo8-0Jr5kISK4Zu9hEr_I'])Y=d<V08l+O\PO!'U<P!'p?N!u+9s
+T_q=\T_CtWYi\sY<>io`_u,[8I=92d\R;UXD>7uCYP><)\[emYr]^CVrY>e5(,9b_E,[N7r@nSpZ0oNH
+?AFi(rg!_Uq-u*4ZMsFpQMR*R)IF:=hGjSV$iY2M3'Bf'^&(>)TG0qi8>$[f8-(lcgN*?Nr4;s9i)KfC
+=o)saC]PeEqa^lU8>)VH'`(?#T`.I^5l+"P4ZM1r#UTKAr/tr8I=2:KG@7UkD>s;;D6I?N\U[#W5<kk?
+((3>BE;&u@E&%&@p2L$!'/@DB?AFr=q3I?;0_-pg0JN(nQMR*SfU-%04Pa!>$ZgAKoLK%V'M&6qT_q=_
+'M(cfr($k%p"FHe$N.L9#2iJ]WoS!\C]YkF4oInO'`:K%T`.I^T_h7`TV+h@8A4pl!B:JB<<FQH_YjCr
+%rQgF?n8F>q"S]6N3BFq\c&]4("<U,DJg5/E#.m8E;'#(mKG="Z!N`^rg<t\0UA"YnhC%5!LEQXS-'[:
+kVh3r#Ks2.]tHs-^&CP']g2Ne!h`)WrC?s^'_k3#]fl&fF5:m;$N.L9U>])Q+O\SPrG;KsqFCTOqa^f'
+83ijF8-'Diqa^cO8?glL",ldKjSk;FDUc4)YP`5R.psm<\Zbe]phakUIH5:`LL.6j_m-IRrg3\UrL!X:
+rL"#gq3LUB0_4cgQMLBI"<(WSP<@W#!A='>8H5@]8-;+J83luA!20<^"2-i\]BOD-Er`<>])W5u<<8@f
+b%q,)4[&F.!#,H)5lO:U5Y.RI8,sA&8-GSV83O35<=gI]_u/TVP*3n1\LXk#N3@*s.fsqiD>s;>625;)
+lI44KMO'ZrMMhBe#Gj,N0X<BB0`LkRR4p>c0QHZLq>6ZcSCj39;M<h*!uO0l4o.\L'`LW/TKl%=TLb_H
+'`LW)TKkd=8,tX&Er`<>])XJC<<0&?C]S([qa_/1TG0pf'M(cf84XFcT_h7[T__1Z4TOa&<<BW#_uA^$
+P'tij?u>]<D$VY/D.&=tD>6Erp]j+[D."l%iR@eb!n3M)riu_^ZLY<,nmhUnrpp&S$CmX=fUSJa)IM]]
+nQ"pU";j;88A4dh!#5E'#!b^M'M(cfqFCV"r^[('p"4<cXSf[1GjSN*<<45ja_V)Iei,b*pIG:WqFCZQ
+TV26S!#56"!U1!\<Uj&k\Gl*;ro=6#aP8;LN;g$[D$;HbD><mbrV-\9lX9!c@-[%GiVr9GZMp3fZ3p.V
+0UA"Yns5U;QMm?QfE,DeHJDL#YQ-i[8,sA'8,sA'8-#=U8-?Or4n[EJ!3H+1!-mR)!L6g^Ct*8$2#c&,
+pHA@D!209]$)!q^8/.^fTL_??8-1q;$f=qd\Gl*t$2ikIDUc5#D/Cg&D$0QlD2eAe!C?&Np]b-klI5%I
+e,J;5ZEfh&8P,7?Qa62\0E^l"QBqN?#M9q5fU-%04Pj'=$gIXRqFCZQ8/1tm"/&1!T`:\b8H0D"8-(lc
+f5gqnr4;rMjAc2[iG@dq!0R31"CsYd]fl<b!>M4+8-0JrT`.I`'M&r38-#=^8-(lXhc1(2rq$'UjDN&o
+.k@g,rb_Z0"H5YApd+oS.W+tU.q$iT?sqI4lL1V/ZEfh&MO1V?MD4TT0U=CHg6S8!)V>rHQs]'1hGjW]
+4[&I/";FD"8>,rQ"[GVO83ijC8-(k5qfCP6!3H+1!3G9^!?fh7C]S?>qUP`L]h#j98-$@$8-5Fu'`LZ'
+T_q=\T`.I^5l4(R]fiUW<=,hjr;>uGI<W6*rbWO3N,=Mj6#Ap_62:4lpd%2_@-Z3bD<g)3n,AXSiKsP1
+!jYCTrULCOns5T3SCj3r)B)uHK\f]300Mis^%b,$TL]ci'`1E''M(b/r(%!a84^EWp#U8bEr`<>])\qp
+<<8@fb\R9AqUPg=AQ@tc^%k2(8/+TcTL_U=r^d'^rtP/t"2-k^$fG"lan*EfjHA$'@';*YD&A3tpt==d
+62:4@6+:]=/(8^k@+3T`iKoo/Z4WF\MO3lf0U=DMQCQU[R$\e!!U,3n<<2:U8-#=W8H0Ct8-(mHe8kTs
+rOW*BXR&sa<<0&DC]Q@[qUP\`=T2;$]fl<b!h`)Wr^[$^q+(R[5bS*I"$f+BT_V+Z]aOI4mSsV(rq"#)
+jF)6_YHRqB!VgO2p]a#Mpt7t.D>lg*D<fU!?sr:!dg=ubiKs#=ZL:AOre^\0rg*SSru1lD!U,3o<=#fl
+4\/,W84]EP8,tpS8-tr^84]DH83f][r^[#'pIG9Re8kVSr4;rMk>_O*ddq;1C]HiuecCDgrDa!)]tHtM
+rC?o&r^[-a84XHn8,sA'8->MU8>,`K"$O=\Yi/R^,o4VooDELUggI<9D(BJuphamC62:4lq#3PefkmVO
+l<roBe*>E@rg+/$iSg,\MK+N2nh?AqSCj5-?N>c:<<KJ=4h^\_!'pHQ!u+9?'`LW-'M(cf84XHj8-1q;
+37N!LXS]U0Gj&-.Q!)pZo5"Dhq:5S_\GB2-YW]\5rC?oRrC?p]njibRqFC`S]feN_iDgR<Mm:1\I<W50
+YAGe,YAJ.O5sb93*GtR;g%a6;?sr9bGB[HDn'fbEQ^;-dQa4>_MXp?;Q3!KorEfO_hc0aq4\39[8-5GT
+5lO:ST_M%XT__1\4\.R+F5Cs<XS]U0mH@OMWmGP^OnmQ07E(Pe<=COo83K+,]gt\e84]EO8-Y`[84]C=
+'_k3!T`.Ib]gt<N$fY/!-->cVP14\`/$GgXYHMg<pd%4Fp]0"Gp^M)D?sr;Pds'8XlL1(u!o[RSqhbKA
+Q<r5C?NK@Ki)Kgd4[&^6!^K;LpIG=X'_k3!'`CQ+]h#iM4ZMA@o5anrqmujOku@a,daN"51dh&h!J>Of
+<<BBf4oW.p8GPdV5lO:T'VP:n!#53!r]L5hi`-F6rq#Q+GI_+b?sr;;D>s;A62:6.5s]@)YANT59Bp_Q
+9E*BEK!O@o@FMsiM@#&qQBn&.?XN#MrDhoY!O+`d^%Y&+TL_VH'M(b[TKl%='_t9']gt]-4n[3D!3H(0
+!(HsRku@^de8,/J6ho45&m4^)":OHW]fl0^!#5?%!#5?%!h`(Tr^[#Sr($uS84YnW(ueO)--=$be9AI6
+Y@(aTYAO:6-#IMP5s]A_poj!kl?DQ<lI45IQ^?00iKonFMMd2CLRa_Mkid]_<Vf\sYe<3k8-#=^8,sA%
+8-PYW5Y+G=rC?q%r]L6@cuT0oqmuiQlrF$b!34Xe!]383pXT@t=RK/ikrnu9!PLbt8H5@\8-'Etr($f%
+ogf1u84`"C<Td?a\GjBorc\LU@'Am5rqHP3D*e0r"`=&#lYU&.G7*VCe*;PDiKntMQi;jILR)9!?g-^,
+iDfpe4[&R2!20<^$ku7*8>&Kf84]CE83m,E"/&1U'`CQ']f=>Z!(Qjt!6aY-!?fh[D!Gj0ecJ4XFmE$/
+YW]\p8-#=]8-#=^8-D2N84]EQ8-(sipIG>L$gC[g<=HC[jN,hp\TbSlYHR9hp]fE\D.$ag@/b?M9E*BP
+@FO2ajF+b"LPgkQ?CYBd;EWo<"gC-Q84^Gh8-]i"TG4%i83m0Is%*/Tr($m^84Wir8A4]AEr`<=])XYO
+<<-1UC]S@7psoL6K=L)E!t.X_4nqPJT_q=\T`.IeTG0pf5Y+F2rC?q%r($k%YiA^m\AI=Ve9?,IX'i-s
+ph_2LphamCg$>j-YNpCVI:-H,IGoU+iI,.KMMILQQ<r5-K]#i4YWYN?q+(gb84Z"=8>&4=5l+"OT_CtX
+4ZMnOhK&Zdr4;srl;[hafPCOTr71r_K4T3"<V]VpQ2S)d<<3Klr^[#'pIG:WrC@'a8>&MHr^[$^qFCe'
+8A2]"l/PbQY/97JeC8]Q@'=FND6Ns6#XS6hlg%qdGH:[d"+>BA@0C#tiP(3KLBCl8?\IB<"0apO^&:J%
+T`.I^'`LW9'M(b/84Z!:8/+<[5Y.P=8>$[p8-1q;38&BEEr`<>])W3'<<1J#C]H<iec6?M<<9Jor=K.5
+&abk]<<?1b4oInOT`%CcTV+P@TV*"u8-PYWTLb`KpdbV&]h#h"kmQQP+g/_#I=6=MG@9a?YAJ-[D>:=0
+lg)*^GLY,dGLUiqGN@`^j9EMWZ!Q'ihtL.:<<KHr83QZ;!#5<$#G@_(TV+h@T_:nW4hJgW!&OPb!"8*m
+fPCOTr71jgmSs7]q%3\01SXbH"L,R1]tO;6!^K;Lr($fQr^[-a'M(Lf8-#=[8-;#g4\,RWjAc8ar8dj*
+,e8-0@'?d"YHMg/YNoSsGB_PbeC8]lIH5g)jMU&rLPNuYn4M_@"L($[8A4dh!C3=W8-GSV8>)UZ8>&MH
+8>H,S!h^5ArC?rPouD+SX@E0#!Ci@@<U=PhD#Dia_<t;'U@o0#7]`up<<KHg8A4gis$6QS!209]!20<^
+!u+9s5lO:S'`LW-]h#iM4m<@C<VTQ6Ei?kCDLH_QX/id=@-_42@-bA(GLV%bI<X1heG\G7r.i2-Z!Le9
+<p/RE!t4?V^&1D$'`:K15Y.P=8/+T[5Y.P=T_M%X'`LW)4Zte(F3&D&XSf[1GjJG`C]T[LrRLs[mo9>l
+oFV-o7\]f\!Xh0)pdbU^'M+lf'VP:n!#5E'!20$V!Bm[M<<blmW:RmejSm[/\K@l_\Z<8KX1?a0IFN[n
+e:$DqjDO&Hr55e]Ml7_r<_DOT!jKAOr^[#'qFCU!r^[0b84XGfqFCUZp.,3I39YG=Er_I&])^%A<S;3d
+ecA4)nPoWj<I"-J!t%Le0)S]P$gBfF4o.\T'VJ!i83dk[T_q=]'VPFr!'pEP#!GL?]fkTfkuA5V<[]%J
+_SbGPDUa*aGLZV9%b0!PI;[PPeC8AR0enjZ$F-l8fJ]\E7As7>ku@_frB1.opIGCZ84XHo8->MU8>,rQ
+"e\C#84]EM8-(k5dW=r"!3H+1!Ag#/<SD6h2#Po)KC;e?#4`?.PX\-D!1!I^!U7;p8,sA"8.)"\TV+iK
+8/)b/T`.I`'M+nm8-(lXl;\<pW(#U[2ZCS2r8d;,DJoH%!H*>bD?,+aD@kms_m-K<Z&=Mu;8L*+7As8]
+<V9>qYW]Zj8A4jj&JRc$84]CETV+hHTL_U=84XHl8H5@]8-1q;]>/If$N@X=]=T]`<SD6h6i>L8=RT5i
+mIChhXStZi$FK_2"gC-\]h#j68-,AS!#5?%!#5E'"JDD%8/1hi#/*Pj84_tQlr=?m-m-:A;,P.<2ZCPu
+_u/rjjR2HsrU(*3m]j[HZ2X`\2L/.srkS_+W$LU8mo9Cm4oInO^&CP&'`:K('VJ!irC@/Y83fF2TL]dq
+8-#=Z8--Es]lO0Cr4;s9n5THgg2-]<!#t?+!-n#G!0mIP!Ah+\<<08u8,tpS8.@gT8>&LE5Y+F2TL_U=
+rC?r'8.2(]TLcae83OXLkmQr[(9fcs-m-9&;$_GE_.kmgZ*Eo<o>8D^rppl0k-=LdC21S1Gu4iE;8F=r
+-oX[[YjtcpYeBg&!200Z#G=UYTL]ci8H,7a8>)VH"@,KlTKrBF!BiETEr`<>])\r$<UFVkC]Hj#ec9aY
+<U^S#XSkTgXSZ!#YWYNJ^&CP&'`CQ(5STmj8-tq[TLb_H8>&MHoLK+u4[&$;qGmDm&$W9$4_,r_hn`/e
+H$N7-H2`X7;,QBQ2Z>W6j5XlO_+]\+M$P,!H2^YC_8.5fr^[)R4g=Z\"gG3o84^Gb8H5@]8-5GTT`%C]
+T`.IiTL_==8/+Tc]fiSPq/aGp!&OPb!2As_gMHl?"4l$jQ0qZ@&c>)umJBlaYW_nT"2.5rT_q=\T__1\
+'M&r;8-5GTT__1ZT`%C_4m<@L<=B^-83K+,87WfW_,4)/GlSid*JoXM9`8c,9`KtK9FH]&*=-q9;,P.O
++#j0irB1,gqc*bP]gt[WpdbBMrC@)+'VM*iT`%Ca'GO)/T_h7[T`%Cd]h#h"YZ4[2j`B'q!N\ch])bBd
+nQ"@\!0R31!6+D,s&JM"!"/Wn!1!F]!jFgNr^[5V84]DH83m/F!#5E'$5B.(5bLZ@84]DHr^[#'p.,9K
+4m<@Q<<3Klr&k3S82hV4_>[:6Gu5T-reV1[M+ibA9P\E;CPb`A9SnTHs,$`#"Ar%4_'JqLrB1.br`'-d
+]feNl4o%VMTL]dr8,tpQ8-#=^8-#=^8-Y_P84]C=5l+"Q]fiUu<<14iF6mrJXSf[1Gk"ehC]Hj#ec9j[
+<UUM"XSbNf0)AQO(d1#Q]tOA8#!b^MTL_VHr^[#'rC?p]qFCUZrC?oOqFCn*]fe=_<NnVWrB:*M!b<Ch
+rD<`DM&hFHM>^*LCMQWCCCc7qM+gU"M0XqTGu7GT_>!ds"?eo]4m<7\<No"W83OXW4oInQTKkd?8.63*
+84]CETV+P884XHn8-#=Z8-HUs4[$%H<<9IO^2j<rPl/,nbOSZhC]H<iec6?L<<.:4&c>)u1\k#P$U$ZJ
+8-#=^8-M7L5Y+G=rC?p]r^[<f8/+Uf8/+Ufqa^iQ8A2]-r]L?S4\39`8-h34_,8$G;&p\VM>^-GCB@1F
+C]-p0*I/ZNH2^Y@p\78[4h^hX#O1J9]tHR"^%t8&5b:M;'`:K,TLb_H8/.^2r^[*`'VPCqr^[.)4[$%F
+<<8BP^2j:Ur4;qbnl>$mnn\:nr71jglr=$<mh#Par'g\0q,Ie14\/,W84]CE'M+nq8-(uKoLK%V8/2"n
+!20$V"$O=\4nqP]AAM,?Gu8j4M2<6H*G^LICPch`r_*]V9M?I`Go_0U;8N##8-;"G]h&,c!58+t"$dPk
+5l!qQTKo0Cr^[*`'VP=o#/*Pu]tHQGp/M+9rc>ns!"/Y9!:BAXh/*#?!5[u$!:B4e!"/Wn!-n9=!Xh0)
+r($g\rC@#)TLbaT8.lV-5X:u583ih=TL_=='VIuf'`CQ+]fj&"8A5!c!PLYk8-WTH_,4'T*WClr9SraB
+")CS(M>g0VM+gTgM$SB(;'/4Pp.,7u84`\BrC?rP^&(>#T`.IaTL_VHrC@*bTKl$^'_Fos]aOI4!OOKF
+F4PC5X@E-"!4;AuhJ<1Sr71jZlr='dmI(VeXSbNf1\XlO$U%%orC?p]qFCUZqa_'e84Z"=8>*Yh'GUC7
+!'U9O"?jF]8A4[e"XlgU_,26NM#g;,pIk[G*I1Kc;8M-YpR_%Kr]L=r]fl-]#o#W=TKj2VTL_WQTESsB
+84XF[rC?p]r^d'^r^[+(4U^d[!2A(dl>ls,r4;s1oMsaar71m;Q0VEMU@&Wj7KBgi<<3K@qa_;aTL_Tf
+84]CE8/+TcTL_TfT^PDO^&C.r8A.1[8/*8H7GkpY;0dGDGta&g9H?eIM0XsW*=,M>_8.3A,\3PHT_M%Z
+4Zu=<4\._,r&k0RTLb`Kr^[$^r^[*`TG7>q"$fCJ'`LW''_k3!$h%'rZnB:<rc8&qr4;s'oi9mc!&XW)
+!/'Q:!6adBqaLR[p/M/%]fl?c!58;$!h`)Wr^[#'qa^sbTL_VH83fH98H6C&8--CeoLK-EAG7M0_>I1/
+GnEmo;0c"E#Z4I8_&ja0%qK4Cq4RUU"MI@>4[&d8!kh,fr($g\r^[&TTEUuZ8/+Ufr^[-aTL_?C8-(j]
+lr=&/_K,^Yr4;u!Q1n8Y<SqTm6i>L8=R&ld#4<''Pl*uN0(i3G$U$ZL8-$@&8-PYW8>&MHr^[2`TL_VH
+5kmkU]h#h"4hXBW4o%YHTEk@)A0g>=+5d(6#uSN9;8H,G;8H-/_$F)?pEY_DN?gIXT_q=b]tHtM4hX#X
+8-;"G83m,E!>Ifu8-,@trC?r'5kdeM4hUkZ$gL^mQ0lJ1!3H+1!-n3;m;2B1r71ieku@_jmL]F+r'g[f
+oMl8,4Zu>,]gt[.84Z#F8-(uKqa_,08>)VH'M(cfTLb`Kr($k%8GPgPTE>!$,lJ8QpAjCU<W]4#W;T`s
+p\PI(p\,3m2ts!D8.[qt]gt:L84^Eb4h\O"8>$[p8-Y_$84]DH'`1E$T`.Ib'M,o#$ggsk<<9HZ`,bpC
+r4;q5pJp-f!(6\8!HM3*<<0Do&HE197K>79<<`go83KL7'`LW*'M(cfr^[$^rC?p]r(%20'M(b/84YnW
+8A2_94T\0f^&CRtTE$27p\=IikP+06kP+06kNDU9k5[I7T`%F\]a.0B84Ym/4[$LT8-#=^8,sA#8-(si
+rC?p]r^["sjAc3bGkQ4+Er`<>])W34<T%]kecA.'lW"!d<L)ta!"/Tmnl5`.4h^V]!20<^"/&1UT`%C^
+'VP7m#X(>a4\._!83QoBpRhLFr)Ng\qGn!&<iB&tkGY=[W)cq#<iB'uVuZMaT_h7[4o@hO4h^eb"/&1U
+T`.Ig5Y+.28>&LETG72m!BghL<<3;Kj)a='!"/Y9!:BP]iG8LVr71kek>gs_!>2F17KBgd<<BBf4nD2H
+'M(K^qa^]PrC?oOrCHt%qFL@R!;6>i!`l7#po"0@ri#`CrM]]D!;6#Xs%*,[!'U<P"hdGt]feOX8-GS"
+8>$[r8-5GTT_1hV4g<dC!=!eqF89kW7fBq"7^VtkiG8K]r71jjk>gm]qaLPinPoZE4hX#W8-#=[8-#=^
+8-)8SrC?r'T`.L]4U8Yk]h#h-83QrCoq;+/(*=qH-n$/c+"/3Z+!2mQ-m'iZ-m'NZoUttM"MI>s4[&O1
+!20!U"MI>h4g=lbhc0^#&^#.pXSf[1F88i&D"h`G2#Po)''<0oGjZ1@7KB1P<<08u8-GSN84Z#E8-#=]
+8-#=^8H-:-4hXD"84^Eb!'U<Poq;+&!brf!rb;]\C*.2*_.k(.rZD,Sru^m+qa_"+84^Eb4\._!qFC[\
+TKr0@"2.5gYif$W<<Js&$EVKn!&OPb!2B<iibST^r71jgrDi,_!-moDqaLR[mo9Cm4n_DJTL_?I8-(uK
+r^[D^8>&Me4hXBW]h#j78G&PXk8te^_$M4"C;D"._.pf$pV?hOrP8Ksnt>nO!'U<P"MHrh4h^ba!'pHQ
+!20'W!Bi*d<<JtsP]P/l!3H+1!Ag#<<T7imec<PL<<?0#GjZ1@7KB1N<<BBf4n_DHT`%C]T_q=d]gt<"
+4\/+,4o@kBTEFAn_,:*G"&Vq3;?"E1;$=^4_,4&4;,P/,kOG5B8-Zau]tHs"^%Y%t'`(?']gt:L0@Ei$
+#'fKUj)Y2-r4;q]qc2Zm!0R31!+k7l!-mrE!"o)t!:B/R!9s)G#,"M[8>&L=r^[=.4h\Nl4hXD"r^cUQ
+!o$Sgqb[@0m83janXp%V8A.Pb^&CP&^&C.p^&CP&'`1E$T`%CbTLb_H^$3mD!2A(dpN$=(r4;q5r)Mcn
+r71m;Q/u!GGjZ1@7KDiJ<V]Yo4o%VKT__1ZT_q=c4Zu>,4\/,Wr^cUQ!!3'r!!rL"%XCnW#Z5kEH$N84
+;$^$Er)!FpnY#VIrB:-N"21?u8G5RT4ZLbf!0tfM!3H+1!"/[)!*/)r!&XW)!/'?4m1K4b!:B,Q!"8cs
+!582!p.,4t4o%VLTLeXH!;lam":.kM;$cT8!XK&WnY#eN!58A&r&ssK"/&1UT_M%Y4U_'cel;_;c#Wk@
+r4;q:rDi6$phTptr71jMj]);Gm1K4b!:B)P""ugN4o7bM'_P#r4TiAg83QrCs%)[Q!)`Z>$;hghGo[/2
+;&sp&rcnfI*=*[2;0c#a,4V?%8-_:@]feML8A4ag"r'U!]gt9oj&PDF!49sk!(Qq!!CjHq<TIuoec6Zd
+<U*Qa[-\J&7KDi@<<08p8-#=\8GbRH8F`>SGu8kcH2S`cGo[oNr>brb*I7T(rcnJfn=U1(84^Eb]gt:W
+83K,Lq+1OYqFCT'buFgF<Huc0!3H+1!-A->j_Ooar71jgk#DI_<<hh&qaLPnlr=:tU+Z+%84XHj8-#=\
+8Gt[P83Qf?n=U7lGo[oN*Dmi&*?>EBH$TB0"aM*o*I/Y/*=*Z_*?t!Gr^[=.4\37W4\._!qFCTLq+(NL
+(s5hYU@30[Er_I&])n^,<TS&pecA.'jAc2Smh,R3qaLR[mSs8l0)Z@_4h^hc!20$V#,"LM4\._!qFL+K
+"K6Sd*I7T(s,$^q!I5^bM#_i#*<h9?*I2oNnY#oTrC@()]gt:WrB9sI#JEZ!4hX!AYfTlFQ.g<NEr`<>
+])jdR<T\)tOo3c1`T'qumHkM_7KB1Q<<AG[Gl&'U7QnFU4o@kG8H1jP^%t:hTH#5&*?BDG#`3gI*I3Ke
+M0U+uGo_0eGo[oN*=*\ST_q=`4\/,W8H(dI8-M/i]feN_o2X=@!:A!O!"/Y9!A7C=D#8#K6i>L8FlQKh
+&HJp07KCX'<<9JopCRNtogh5/oLK*J4h\NlqFL+K#UCE2M2<5nM&lSP"W\V?*JoXP*=%FHM&gj^*@UBL
+r($oQ]tHu94UA_l]tHtM4[$LV4TGlQ<<OF_Ek%D4<U*Qa#0V&f7f9ju#3Te&2#Po)')5Jn<<*6j&HE18
+7K<Yd<<AH/Gk2LIp&7)Y83KL,]feXZ8H(dH8FW8S,'f#j(l98YM0Xr7*Jo&u*JoUn*I3KeM2?M7Gpr-S
+qFCq+8A.R-4\/,W^&C.t]tHQll/u%H+T,@DK4U>4<W5tuGg(4/XSf[1$Kl4*6i>L8EoU."mHkJc$N!9m
+[.mW%ZjZ=7!;67Qq+(M!r]L=r8A4mkn=Te+*WClq*W1`r*JkdWreUh"M0XpuM2;<T*I0(%T`.I^T`.I`
+4hXDc4o\(K4TM_L<</<\=TX5.Flua)U@<6ZEr\#o]B=#.ec<PH<</<N&HE187ep$b"to6S!''p?!(d&O
+r^[1*4Zu?Lq+0tI&:#:Q*Jo&u*JoVuM0XpuM2D3P#DjHAM0Xpu..El0T_q=]'YXH9"[,">4h\Q,4TM_K
+<<0&q=Td(bK9bY#!0u;[nT+`47fBs_C]KUqec9:A<<15/&HJp17K>7B<<AG[Gl&*A&HFfe4U8Yk8A./L
+83QrC!58;$n"BE3!Zd+<qhY:nreUau*Jkd^n"BPK!20<^#sCgB]gt:L]feLZl*0;M!$M&>!eV-)k>_NL
+bB!Zbrjr0Bk\U1J!C`:6<<+Z;&c>)u$N=$+[-cre!B<7=4o\(O4T\0f4o7e=TG)U-M&hFuM&hG0H&3Pu
+*JoUnM&lPO"!*4=,k%E#8H(aU]h#h"4g=6Pq,IEppfR]O&e]?N<<*6GEr_I(]BsG5C]H<iec:?_<<0Dk
+&HE1:7KX!_bBW"Y!_2kUrB1<T4\._,^%b+u8FN2O./Jc+9MC;"*JoVH9`BkK9`BkNH&3Oen=]\M!PLbt
+8-$@&4TJ%P4TGlL<VKVtiXuk(A`m%nGft..XT#irC]Hj#ec8hH<UEcd$gA6+XHZ1D$JZ3nl2<aF^&:+n
+8-6Iq4oS"?TE2!J%Z)3"*DD<H9H?eI9SnU"reU_N9SlIBM#\ahT_V+b]h#iM4[$JA4U^7L!$M#="6'q+
+KC)\9<</c9Erl]\]BO/0ec6ZL<<8A0^C^L2`;Vq"8Gt^H8FN2T.#CWS9HF(g"!*4=M>g0P*Jke19SimG
+Gta&=n=TbHqFCb&8A.R-r]L5hiDfkrpK7UX&e]i[<</<UF4YI67_@r%!(6\8!-7+"!!_a$e.DaO7`>9h
+#"Um?84^G-qFL(J$7&;=M+ep`M2=o_qb7!G#>@gJ9SnU",4V<.TL_U=qa^t*83K,L4Zs23<<0&n=THnL
+''<0o0&La:EriASl>6CL!CN.4<<+Yd&HE1;7L$do4\._!^%k2#5SQcYTE6B49`Bk`9MC::*DD;`M+gS`
+9H?f`9M?I#M'DG^p.,1sr]L8Gk#M:Y!35cr!7LiZk#DBca`@G<ltc]=Oo3c1`T'qu[([.M7L$7`4hX"l
+^&1D'TKl%=n"9h09MC::M>^-JM=sUGM2=o",4M9"8-M/L83K*Di)KcWpK7LErY"<m!-lY-!3GL&!(6\8
+!-Rp6n5TI_^C^I1r'g\)r&saEn=Th,9M>L]9HF(*!ZarTrCm3I##%^I9SlH"n"BAF"?f:=4U^1J!35cr
+!7LiZlrEm^!2@SVltcYYr71i\i`,u'rXm!Z!"/TmrB:-N!585"n"9Y)n4Wh=r(R)`n"9_Q8A4dh!^/^2
+hc0ZVp0%A-!0u\H!1!1teoU1o!(6\8!-7+"!!_X!eI_cgrC-qk4Zu>,^%Y(eTE$289E9qI9EuS3M+ib"
+9SraB"c5p0M+gV3TE1]Nq+(WO4\.a#hc0ZVp0%A-!-RC'!&!2NlZ;E/r71kai`-!Gdh1gV$496lGRHYt
+83K,LpdjnI!$_D9!/^\K!,M$sn=]GF"$K2g$i<rc<<0&m=Ta9h&m46q!!^Vf!-@OD!0R31!+k1j!0t50
+r=K,=7LPL\4TN1p8->MU8>,oP!'p(I![:<3reV"V9P\F#9SlH"9MC<B9Eg8H9H?f#n=]GFr]L7ck#M7X
+!35`q"+q4!Eo^4#Gft0qD#Dib7?un5!6_kar^HtD4[&O1r^cRP!$_D9!JsMLC]$m*C]7$,C]-rrTE7YT
+5kmnL4TM_D<<0&m=TO-f!><B4<</c:F7*iE2#Po)KCW%4<<+Y]&I&S37^YCm4oInO^&:J''M(dbTE-61
+"AFYfM/3)a&;b1Z9MC:YM+ibA9SlF`9Sr83q+(QM4h^hc!Bm[E<<-t2=Tm^s&qcJ<<VKJoQ)r2NmVDkj
+r71jMj&H)dr"6RR"0=s]BDt$o^%P"eTE-6Pr(R-+r(R**rCm6,rCl^RpIGJ$84Ym,YhrF\+SAn:&cfH&
+<<+ZHF4G@"D#Dia)raitU?<-8&I1cpB0ACK4[&d8!#5<$!#4sr)/Dp&9SmOY9P]K#M/.rACPb`ACJ7E;
+M+gA.TE%L_T`.I`5Y)Ud8-6IfYhrF\Q1\8^K+\g9jAc0aj)aL,mq_tkr71jgi`,u']+OrQ#=_0q4h\O"
+4n_G:T`8g+9`Ai,9EK!'C]-s,C]-p,7Id&B8-6IfYiSm]<V9Jpir0PjQ/kpFGg1<uD#Vuff%*3Rj&H)d
+[1NL17V=m`8-$@!8H)0MTG_N\M/.r`9MB5Y9MB4q9P]K#M/-m`CPcgqnY#eN!#59#"2-i\YjtfnQ1.cR
+WqBKpK)uYuEo^4#U<RcKC]KUqec<\X<V08kU:(X<$:[Kt4h\Q$8F`AQC]7$+CC*[MM+h\YCJ8M;rbML,
+!(HIOpdb\(83KMW]feN_oi2#8Wr-!$WZ[T!<<0&l=Tm.c&qcJ=<VBDm[*<[]C]Hj#ec9jP<<+ZJ&\SbY
+PX\,*rk82"!203[!#5!s(/.DYCPch#9P]K#M/-m`CPch`CJ7E;!f:\@nt>\Ir]L?S]fiUn<<+09=TYUA
++SSk9DtI07K+\f;jAc14q/b,.nSA1^r71i\i`,uDj:TfPr^QlM!PLYl8-#=]8FiGPCB04iCB@1F9`8c+
+9`Jo,9E7NPTE7ZW8Gl!b]gt]-8A2]-4mD]@!1!+X!ig1(qc*WroN;=F&e]h^j])9bjE'X.nSA1mr71jg
+i`-!%cOo@Q!0mIPr]L7prC?o&q+(KNnt6k9CJ8N#CJ7E;M/.r`9MB5Y9SmP#M/.rA7Im)Q84]EN8-$@$
+8-1q;l2+KZ<<-t*=Tk`IPuSst=Ta9h&p!&5!-lk3!-@[Hr71kaiDfmF\e4oR!"/Zo#/*/_8A.R-r($m^
+8>,rQnt6,$CJ8M;qeH=.CJ8MZr_3?-rCd2[o:Q4#84Z"=pdbP$4\.a#pJh3nnQG*Z!tl6!Q/u!G$dWnb
+C]KUrecF?5iDfl&\.J_BrC.(24hX!A]tHtMrC?o&!209]o:R!GCJ7E;M/,dYCJ8M;CJ8MZM/,e#9SmPA
+CIRifr($g\rC@3e'M(d.8A.1NpJosNr`K>U&e]6H<<0DPF7O/FecA4)mT&p[!493I!N_Ob7KCC*4TiC2
+83Qc>!h`(ToUl4/CB//L9`8`,9`Af/9P\GC9`Ai,9E8l"T^kVU4\.a#pJh3nfNA</&qcJA<Us,i0$n\2
+C]H<iec:?]<<*7!&\Sb\$:[M'4\39a8-$?t8G&P_,"ud/CPch#CMQUZr_*Q4CJ8M;CJ7D(CPb`Ao:YeJ
+#<bVk]gt:Ll1\0XWn:GVK+\f;j])9br,^D0o5"Cor71jMiDflPj:TcO":@W:]tOA8!'U!GoUl@3CMQUZ
+9`8`.9P[?#C]@*-CBR=)M+icuT`%F[8-$@%8H6C&8-(m<pJh3Yf3&3.&qcJ2<<.:-F6[i<D#Dia)rO]r
+mC3c+&I+K<83KL7^%+_eTGf"J9SmPACPchBM/.r`9SmOY9SmP#9P]K#M=dJ28-?Og4mDZ?!$Lf7kZJ"?
+&e]6H<<*ESF7a8K6i>L9E`M'u!%tPh!Q7.n8Gu'[TLeaK"X6WUCJ7G#C]7$+C]@*,CBI7e9MG)OnjimH
+83K-#pJh6ZWn^bT=TT3KKB6)5[*`seD#Dib6^?t;p/M)FZ4R2W4\.a18H1sR8G&PV,"tZHM/.r`9P\F#
+CPch#9P[=;9P[<qCPch`o:Q1V'M&r48-$@&4TOa@<<0&M=Ta9h'"IU7nPoQAdW>(t!0R31!6*hq!&"$Y
+]+G1X4[$KloLK%VTLeaK"<pNT9PaW$"D_dHCJ=\B!)39*!f9TEoq2:Mp.54sr^d#O!9s8Y!,p@i!YQ-b
+j])9brH$P2okXUqr71jjhc0[Dit9WM!5&4n"2.5r^%4egTGf"J9SmPACJ8MZM/.r`9MB5YCJ8M;9PYYB
+M=mP=8,sA&8-uuC84Ym,]feOCpf.<oe6)m+&e^Jk<<.:.F6do@C]H<iec6?><</c=&`jT)]DXkq]fep"
+^%Ots'_\1%,"t[GrCm3+s%NE-rCm3+rClmWqa^t*84^Eb]tHu64TM_`<W5tuWmk/RiXulEj])9ge8kV2
+p1s^rr71jghGjO[\InZM!5&4n!D#BF8-,ASp7MC2r_*l=M/,dYCJ8N#CJ7E;M/.r`r_*A69SrG8!D&mW
+8-6Iq8H(aQ]bpNE!35NkjB2Ns&qf:G!4:3rp2'ZX!5\Y7i)KcaZ4R)Kr]L9Q^%k2!5l+"O'_e7%,YW"Q
+9_W?$9`Af19SnU",57`4'M(cfogf8"8A.PWYkV2u+PU&p=Ta9h&p<;9!%ucBpM9hlr71jZkuICV!0si%
+#.m#h8A.PWqFCmb83dk[8/+TcpRhO49G1$UCPch#9P]K#M/,dYCPch`C]7!0M+iaMpRhd_8/+Tc5Y+G=
+q+(M!r]L7cpJo[F"+q4!EqiZ&<<*6QF8'MKecA4)gf4?!q@U:N"iNPe]tHT*8-#=X8GAbX,Y\2Q!)3<+
+!)3<+s%NB,rCd28pn.U$rC?oRqagb#r($q'4h\)o<</<6=Ta9h'#is4!L7o[F80PO2#Po)KA0B+mH"r,
+&Ho2R4\39S8GAbW./lmVCPch#CMQUZ9P[=;CPb`ACJ7E;M+iaMpn7OU!ME!X8-Q[i]tHS5p/M)8eQE!,
+K+`gt<<*EnF6[iAC]Hj#ec8h,<</c(&c<4EPf,_u4[&:*!MC/%TEdnZCJ8M;CJ=_C!)3<+s%NB,rCd2:
+pn7.J#!GLJ]feN_pJh29n6+jU"+q4!KB-#4[+06mD#Dia)uEXn<<*62&J,:=`'$XS4hXBL4hXBW]gtZp
+83m&CpRiHR9MC:YM/.r`CJ8M;CJ8MZM+ibA9SmPA9Sk%iT_q=_'M(d.q+(M!rB1,gpf.<Zg0+8T"+q4!
+KB#r30%P+>C]Hj#ec9aQ<V9>l['gPKX@>[tq`OqmoLK"U'_e7%-qnCXCMQW>CB@1FC]-s,C]-p,,kmu$
+8H(aQ]aOU8!,p=h"+q4!KD/C5<<*6SF89YMecA.'g/S.?q%:=Q%$X4N`'$8s]feML8A4mk!206\!C03N
+TE$D=9G31tCJ8M;CJ8M;CMScBM/,eA9EU,F9I0G,rC@'a83f][qFCk)]fj%l]fcbu<<0&J=Ta9h&qf4E
+!0u,VqJ6.or71keg/S+Wit9]O!_,Ytr]L7pr^[%&r($l'8/1kjq4RRXrG)C,qeH@/9P\E;M>g0K,l+,.
+8G>XT^&C.p$i!^%Wmb)QK+\fLi`,sdm;qT7qJ6.!r71jjg/S,*c4T4Or^I)T4\37L83QH5q4I_ErCd23
+r_*r?M/.r`9P\F#9SmP#M+ep`M'Vni"%YrsT_V+Y^&1D$^&:(o$i<s'<<-sd=oK$6KAol2[+KF"F8KbR
+2#Po)'&$=cbIA/^&HW;/7fGRM8,tpR8--C<pIG8uq4I_Eqb7!)##&f+CJ8MZr_*Q4CJ7EY9Sl46TE7YT
+T_q=\5l+"V'M(d.]feLdpf.;:n6+gTrXo3`iDfk1fQ6q+!(6\8!-7p9i`-#EGd@td$:[KJ4\.a68-;#g
+84`MH!ME!ZT`%OaC]7!4CMQUZM/,e#r_*?LC]7!0M+iapq4Ig\TLbaN8-6Iq4oInQ]feOP<<0&S=nu5"
+&cdRC<<*6UF8KeOec<PI<VKJnU9Y@4$:[Ma4o\(P]`La<^%t8"'`:K%'`4O),)Ju29SmPA9SlGYM/.r`
+9MB4qCPb`#M/+,*M+.96r($j]5l+"Q]gt<a8H1jH<</<6=oK$6KD8I3<</<:F8ThSOo3c1A_U2bQ1bg&
+&IY[07QioJ84^EW8A4mk!'p<Mqk*s6M>KsMCMQU;CJ=\BrCd6-9E@hDr_30]pdbH#8/1tm!PLYq8H1jG
+<</<8=THnL&cdRE<W5tu$e]V!D#Dib7?uV-!:A_Wd1HTj7Rh#R84Yo48-'Dqqk+oQ*DB.`CPch#9P]K#
+M/,dYCPch`CJ9RY*DD<HqOdp]TLbaR8G>XU4h^hXoi2!WeQDm)rXo4@iDflbn8ml9rG2Hjr71k#gJn6\
+Zk<6K"U[^gB0AEW8-$@#8-$@!8-5HW5l72S,l147C]7$)C]7!3CJ7EY9SlI>TEe"%84]CE8>,fM#e`c"
+4\.`L4[&I<!$Lf7j]MT3rXo3`i)Kb0g2m4/!(6\8!*Jtqj]):5YS$k(!,)6nrCHq$s%*)Z"/&2X'`LZ#
+TEZZu9MC:YM>g0OCPch`C]$j4M+gU"9H?eI9HsD-#Y7K#84]DH8>,lO#<bVk8A.R-^&C1f<<+/s=nu2#
+KDlJ`EoC!ubM%%9D#Dia)rXfo<<*6-&HJp37L3Wi]fep"4\39a8,tpN8-'Dqqk+$>M+gSEM+id*9ET'(
+CJ=\BqFh$K9H?eNr1F*^83m/F!^K:AqFClT84YnW8A./Goi1u7dolY_!J?[6<U!K`Q.g<YC]Hj#ec9aF
+<<.:8&\\hWPl=,QB0H2a!^461oLK&u'L54eTE-HtrCdWV9MB5;M/.r`CJ8N#qb.-L9SlFgr1O!Z!C.@n
+8-ln"4\/,W4[&'%<RY(NKDlJ`A`Zqj<<*E]F8g"RecA.'gf4?Kh%A-K!"/Zo"D9m24\5Rc!_>jIqFCUZ
+qagUW*@Qb<9SlF`9SmP#M/.r`9MB5Y9SlG:M+ib"*D@aVTE7Xu5l!tF8-?Q=4mDT=!34LN"G7="K6?0R
+!4;9;lZ3,DCm"YH!6*_n!L7oN&aBr.XSbNkB0AdK]fkaRr1F$1q+M$/CJ7E;CJ8O>9E6+49E8c(T_q=\
+'`LW'^%t8)]gt[W8A.RYqGmAldoc\1rXo4MiDfk1h/`[>ChuK:ec9jJ<</c!&cWI?7Kg+^]feOS8,tpS
+8-hHpTL]bf5Y+HDTE^5n9Sjc`M>g0LCPi$a%Z+t:M/+,*9SlF`9SlFkrLa6`'M+np8-;+J8A4mk#!b_m
+4Zu@#o2PgVWqBNQ=TF*R&cc%n<<14tErg)6r71i\oi:3U!49!C!3H#d#dm2d4\._,8A4smogf+V8H,7`
+,)M0P9EK!'9`8c&9E9qK9E<W@T^bPQ'`:K'4h^+N<<8A'iE>hV!7LiZ!/'92!0u>\!Gk.$ec9aK<W,nt
+mBR<($Md-q[66ZD]h#j58-5GT^&(>#T`.L]TE?Bp*D?Q/M+id)9E9qI9ET'e9Sr^A!$2&4!/^ZIr^[#S
+p.,0HqFCZN8EoVD!L9\9=TF*R&cctO<TR3\$f,k(D#Dia_;&#j[."[F&HJ'j7LHaj4hXBL8A.Pb'`(?'
+'M+l^'`CT%TEcZ7*DB-I9Sr^A%#IZ7CPb_YM+ep`9SigE*DHHhrLj*[!^K9jrC?o&pdbP$84Yo.mSs=u
+A^]46rXo6aQ0MBG<<0D^Er_@#ec9::<<+Z+&_[fs$M['t1Bt'H]tHSB84]EN8-5GTT_q=\5lO=RTE6Bq
+M=XC@C\^[%M>a(K84XHn8,sA'8GbpX'`CQ)4Zu@#lr=+s`T#TS!/(7`!-7(!!-n0Xl>umS!C`:0<<*62
+&HE187f>daXL)!34\._!84^G-rC?o&q+(X]'GR32rh'KA*JmH`M+erg9G<7VM+ib"9H?f`9MC::*Jken
+M'Dql"A#1V8>,WH!'U9O"$K1<l0;7P\Aa*[=]sTa"G7="K9bIs!6a5?r71k#nl>$V!L7o=&HSttpI5,j
+r`'$(4[&[5"MI>s]gr.:qa_9kTLb_H8/._iW#ZmPM&f9HrCdr_9SlH"9MC::M+gU"9H?eIM2<FLT`%C_
+'M(Lb8-2%I8H-:'8A5!c!9r]I!HiG^K)jp!=n>brir0Pj`T'quQ/6T[ec8h.<</c&&HJ'i7KIS;rDa$*
+4Zu?L4nV>ITLbaR8-hHpTV*\RM+gVC9`Kt?9EBuDrJ:Oq,lXG:5jq5JTKPG/4[&&k<<cQ:K+`fhio=/F
+K+\fL=B4E^!"7\*rRLrfh,OH?lk.JS!"/Hi!=GRu<<KHg8A4pl!kh.<pIGXa8>&LE5bObu*?G-9#YZ7q
+M+gU"9HF(*"s$AX9M?I##C/u`M&dk7T`.I`TLbaP8-#=Y8-D(H83Q4s<<H?DK+d3I!93tj!/'T;q,IF%
+hfJbI!-6mq!:AAMj:MBVp-o)MQ24J\Yl-`V8-#=Y8-GTY-lj?-M#^6KM#p@EM>KsJM+id)9EuSp*Jkd^
+TV2-P!20<^!C03Q8,tgP8-;"G4mCj(!L9\F=TF*R&cct4<<.:;F6doHecA.'hGjQ__%HSW!N_OZ7KG-,
+pf.@!4oRtR]gt<_8-,@tq+(o.84]DH*I/Z^9SnTHr(R-IrCdHQ9SlG:M2<8OM#\h#T_V+YT`.Ia5Y+GZ
+r($h$r]L8GqGlWW!,pn#!7LiZ!J?Zu<<15$Er^:\ec<\F<<+Yc&HN6'p-o(-[/O)$<<]V?4\37LlpqIK
+TV-QNH&3PuM&lRhreUn$9MC::*D@JIreUl*M&dUn<hQ,a8-#=]8-#=[8,tgO8-Q[t83K-#j]2.W!$L9(
+!/(7`!-7.#!0uJ`rmh'lnQ#!W!!^1M!"/Bg!A:bO<<09&4oRtR]tG-Z8H)-_'M(b[T_q=_TLb_"rZ1ro
+!$2#3re^SI",T^.9_jMG.%pQ1!u+9sT_:nW]fl?c"MI>h4mCd&oNCTbrXo6aQ/kpF$fQ..f%(Ji<<7=V
+_[unVPkIQJ1G4s`<=5tD4Zu>,]tHs-5lF4S'VP@p!C.@t8-K\OH&6g'reU[s9SraBs,$_K%Z-$9M+gU"
+M0Xpu*Jp_fr^d'^pIG:trC?q%r^[,S]fkW9<<0&Y=TRLp!YQ,WjAc2eiH#(OeoKVI!6aX>gCXGnPk@KI
+$DNgT<<09&4T\0f4nV>K5Y+G=T_q=g+pa$NM&hG0Gt]5PreUXr9`BkP*D@JIM&chXH&6ee*I4=U8,s@q
+8-#=^8-;"G4mCd&!,ph!!/(7`!*J_joi2!:ic>.O_;8/mQ$Cgko+;#)Pk7EGGR!P8"gC-\4\39\8.D4_
+8>&LE5Y+G=84Z#CrZ1ilr_*<KrCm$D!$2#p!$2&0!200Z!h`(TpdbQO]gt:Ll.o>>Q/PjGir0Pj`T1#!
+bP?5EErjj'hGjQM`Xr38p-o)j$^L9_qGdgc4hX!A84]C:nOO'R'VIuB;&sq=*JoUnreUtUM2<6HM+gTg
+9HF(g$@.IKM&gk4'VJ!iq+(T%84^Gm8-ch!83KL,4mD$-q,Q?U!/(7`!4_,j!0uPb!C`:A<Us,i[)EXP
+7KNqa[-1Kmkrh1#4nqSG8-;+J8>,iN#UF[9*Jo%^M0\uT&fjZ&M+ib"*JkdWM0Xr'*?BDLr($f%mmmPo
+4h^+8<<0&l=m]>ldf'jZKB-#4$fc:.KAKT.mJIR>&HJp07KPC5[,k9lkrhR.]gt<Z8-#=\8-tr^84]\)
+*?Bunr.tDIr/(DHqM>M!*I3J^H2C-'T_:nV'`1E*]h#h"4h^+8<<-sq=TF*R&cct6<<0DdEr]>"<<0Dg
+&`=6$$N!9m0&oq;kt&KY]gt:W^&CP&'_b/uT`.In'W;9XGo__^M0XpuM2<6HH2WR(H&6g'M&hEWGo[/2
+*Du_58->MM8>,oP!#53!!kg`fr]L8Ggf4?>hc]pk!J?[.<V08kGiWr&<<+Z!&bQb47KCWl<<2:_4TS):
+njibRqFCUbrZ),uM&hEnrJ:LpoSEShH2S`a,bXm&!kh,qpIGBL83Q4l<SppZKDlJ`A`ZnlUAArsF5Kst
+#/h,M7fQKL<<_VM]gt]-oLKi68>&LETL_VH80(PJH&3Pu*I3J^M2<70H2NO!*WCm&*I/ZN*?BDN8>&6B
+8,tpN8GkUNl2"E><<0&V=TF*R&cd(:<</<GEr^:><<8A0`=W(WqaLR,l;dX[%-]oG4\/,W4\/,W8>,lO
+!MF*(8-hHpTG0p;Go]c]*>"'QM0Xr7H&6g'*?Bu^M0XsW*=-p2#TXq2,Y/XG8-9P?8/2"n"hdGt]gt]m
+4TOa.<VKJn+Q$<%ir0Pj`T:)"$fuHs<V08kU;RWDPl!oM$fY.dl2EgI]gt<c8-1qF8Gl!Y'`CQ45Y+E[
+84\#'*I/YGM&dW0M#\RpM#eWBr#Gb_rCHs]rC?p]qFCe'84Ym78H(aPl.]2<Q1nGF=TF*R&cfH(<<0Df
+F+=~>
+
+%%EndBinary
+grestore
+np
+grestore
+grestore
+pgrs
+%%PageTrailer
+[
+[/CSA [/0 ]]
+[/CSD [/0 ]]
+] del_res
+Adobe_AGM_Image/pt gx
+Adobe_CoolType_Core/pt get exec
+Adobe_AGM_Core/restore_mysetup gx
+Adobe_AGM_Core/pt gx
+currentdict Adobe_AGM_Utils eq {end} if
+%%Trailer
+Adobe_AGM_Utils begin
+[/EMC pdfmark_5
+currentdict Adobe_AGM_Utils eq {end} if
+Adobe_AGM_Image/dt get exec
+Adobe_CoolType_Core/dt get exec
+Adobe_AGM_Core/dt get exec
+%%Pages: 1
+%%DocumentNeededResources:
+%%DocumentSuppliedResources: procset Adobe_AGM_Image 1.0 0
+%%+ procset Adobe_CoolType_Utility_T42 1.0 0
+%%+ procset Adobe_CoolType_Utility_MAKEOCF 1.23 0
+%%+ procset Adobe_CoolType_Core 2.31 0
+%%+ procset Adobe_AGM_Core 2.0 0
+%%+ procset Adobe_AGM_Utils 1.0 0
+%%DocumentNeededFeatures:
+%%DocumentSuppliedFeatures:
+%%DocumentCustomColors:
+%%CMYKCustomColor:
+%%RGBCustomColor:
+%%EOF
diff --git a/texmf-dist/doc/latex/acrosort/examples/emoji/MyEmoji.pdf b/texmf-dist/doc/latex/acrosort/examples/emoji/MyEmoji.pdf
new file mode 100644
index 00000000..ef65c8a3
--- /dev/null
+++ b/texmf-dist/doc/latex/acrosort/examples/emoji/MyEmoji.pdf
Binary files differ
diff --git a/texmf-dist/doc/latex/acrosort/examples/emoji/MyEmoji_package.pdf b/texmf-dist/doc/latex/acrosort/examples/emoji/MyEmoji_package.pdf
new file mode 100644
index 00000000..b33c5950
--- /dev/null
+++ b/texmf-dist/doc/latex/acrosort/examples/emoji/MyEmoji_package.pdf
Binary files differ
diff --git a/texmf-dist/doc/latex/acrosort/examples/emoji/tg-emoji.tex b/texmf-dist/doc/latex/acrosort/examples/emoji/tg-emoji.tex
new file mode 100644
index 00000000..7ab4175c
--- /dev/null
+++ b/texmf-dist/doc/latex/acrosort/examples/emoji/tg-emoji.tex
@@ -0,0 +1,13 @@
+\documentclass{article}
+% xelatex uses change options to wrttofiles and !packagefiles, while your at it
+% change pdfcreator=pdflatex to pdfcreator=xelatex
+% See documentation of the tile-graphic package
+\usepackage[!wrttofiles,packagefiles,pdfcreator=pdflatex]{tile-graphic}
+
+\setTileParams{4}{4}{MyEmoji}
+
+\begin{document}
+
+\tileTheGraphic
+
+\end{document} \ No newline at end of file
diff --git a/texmf-dist/source/latex/acrosort/acrosort.dtx b/texmf-dist/source/latex/acrosort/acrosort.dtx
index 9218aeef..083deea6 100644
--- a/texmf-dist/source/latex/acrosort/acrosort.dtx
+++ b/texmf-dist/source/latex/acrosort/acrosort.dtx
@@ -2,8 +2,8 @@
% \iffalse
%<*copyright>
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% acrosort package, 2011-12-22 %%
-%% Copyright (C) 2006--2011 D. P. Story %%
+%% acrosort package, %%
+%% Copyright (C) 2006--2020 D. P. Story %%
%% dpstory@acrotex.net %%
%% storyd@nwfsc.edu %%
%% %%
@@ -16,267 +16,399 @@
%</copyright>
%<package>\NeedsTeXFormat{LaTeX2e}
%<package>\ProvidesPackage{acrosort}
-%<package> [2011/12/22 v1.5 AcroSort (dps)]
+%<package> [2020/06/17 v1.6.1 AcroSort (dps)]
%<*driver>
\documentclass{ltxdoc}
-\usepackage[dviwindo,colorlinks,hyperindex]{hyperref}
-\pdfstringdefDisableCommands{\let\\\textbackslash}%
-\EnableCrossrefs \CodelineIndex
+\usepackage[colorlinks,hyperindex=false]{hyperref}
+\usepackage{fancyvrb}
+%\def\texorpdfstring#1#2{#1}
+%\pdfstringdefDisableCommands{\let\\\textbackslash}
\OnlyDescription % comment out for implementation details
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+\InputIfFileExists{aebdocfmt.def}{\PackageInfo{web}{Inputting aebdocfmt.def}}
+ {\def\IndexOpt{\DescribeMacro}\def\IndexKey{\DescribeMacro}\let\setupFullwidth\relax
+ \PackageInfo{web}{aebdocfmt.def cannot be found}}
+\EnableCrossrefs \CodelineIndex \RecordChanges
\begin{document}
- \GetFileInfo{acromemory.sty}
- \title{The \texttt{AcroSort} Package\texorpdfstring{\\}{: }
- A member of the AeB Pro family}
+\bgroup\ttfamily
+\gdef\brpr#1{\char123\relax#1\char125\relax}\egroup
+\let\darg\brpr
+\let\env\texttt
+\let\opt\texttt
+\let\app\textsf
+\def\visispace{\symbol{32}}
+\def\ameta#1{\ensuremath{\langle\textit{\texttt{#1}}\rangle}}
+\def\meta#1{\textsl{\texttt{#1}}}
+\def\SUB#1{\ensuremath{{}_{\mbox{\scriptsize\ttfamily#1}}}}
+\def\ltag{<}\def\rtag{>}
+\def\EXCL{!}
+\let\app\textsf\let\pkg\textsf
+ \GetFileInfo{acrosort.sty}
+ \title{The \textsf{acrosort} Package}
\author{D. P. Story\\
- Email: \texttt{storyd@nwfsc.edu}}
+ Email: \texttt{dpstory@acrotex.net}}
\date{processed \today}
\maketitle
\tableofcontents
\let\Email\texttt
\DocInput{acrosort.dtx}
- \PrintIndex
+\IfFileExists{\jobname.ind}{\newpage\setupFullwidth\par\PrintIndex}{\paragraph*{Index} The index goes here.\\Execute
+ \texttt{makeindex -s gind.ist -o acrosort.ind acrosort.idx} on the command line and recompile
+ \texttt{acrosort.dtx}.}
+\IfFileExists{\jobname.gls}{\PrintChanges}{\paragraph*{Change History} The list of changes goes here.\\Execute
+ \texttt{makeindex -s gglo.ist -o acrosort.gls acrosort.glo} on the command line and recompile
+ \texttt{acrosort.dtx}.}
\end{document}
%</driver>
% \fi
+% \MakeShortVerb{|}
+% \InputIfFileExists{aebdonotindex.def}{\PackageInfo{web}{Inputting aebdonotindex.def}}
+% {\PackageInfo{web}{cannot find aebdonotindex.def}}
+% \DoNotIndex{\DPSIndxList,\g@addto@macro,\divide,\box,\setbox,\x,\y,\z}
+%
+% \section{Introduction}
+% \pkg{acrosort} is a novelty {\LaTeX} package for embedding a series of tiled
+% images of a picture. The tiled images are randomly arranged, then resorted
+% before the user's eyes using a bubble sort.
+%
+% This new version of \pkg{acrosort}, dated 2020/06/02 or later, supports all
+% common workflows: \app{pdflatex}, \app{lualatex}, \app{xelatex}, and
+% \app{dvips\,\texttt{->}\,distiller}.
+%
+% The \pkg{graphicx}, \pkg{eforms}, and \pkg{icon-appr} packages are
+% automatically input by \textsf{acrosort}. When the workflow
+% \app{dvips\,\texttt{->}\,distiller} is used, the package \pkg{aeb\_pro} is required.
+%
+% For the first time, \emph{multiple tiled bubble sorts} can appear in the same document,
+% though only one can be sorted at a time.
+% \changes{v1.6}{2020/06/02}{Rewrite whole package to support \string\app{pdflatex},
+% \string\app{lualatex}, and \string\app{xelatex} workflows.}
+% \changes{v1.6.1}{2020/06/17}{Minor changes to conform to CTAN requirements.}
% \section{Main Code}
-% When setting up your AcroSort document, you need to provide this package with
-% certain information, as listed below.
-% \begin{macro}{\theTotalTiles}
-% \begin{macro}{\theNumRows}
-% \begin{macro}{\theNumCols}
-% \begin{macro}{\theImportPath}
-% \begin{macro}{\theIconExt}
-% \begin{macro}{\theTeXImageWidth}
-% \begin{macro}{\isPackage}
-%\begin{itemize}
-% \item \cs{theTotalTiles}: The total number of tiles in the game board. For example,
-% \verb!\theTotalTiles{20}!. This parameter is required.
-% \item \cs{theNumRows}: The number of rows in the game board. For example,
-% \verb!\theNumRows{5}!. This parameter is required.
-% \item \cs{theNumCols}: The number of columns in the game board. For example,
-% \verb!\theNumCols{4}!. This parameter is required.
-% \item \cs{theImportPath}: The import path to the basename of the image. The path
-% should use the path specification as defined in the PDF Ref, and the file name should
-% have no extension. For example, \verb!\theImportPath{myFig/myimages}!. Required.
-% \item \cs{theIconExt}: The extension of the image file(s), Required if different
-% from \texttt{pdf}.
-% \item \cs{theTeXImageWidth}: The scaled width of the rectangular game board. The
-% game board will be rescaled so that its width is equal to the value specified
-% by the argument of this command, e.g., \verb!\theTeXImageWidth{2in}!.
-% \item \cs{isPackage} executed in the preamble signals that the icon files are
-% packaged.
-%\end{itemize}
% \begin{macrocode}
%<*package>
% \end{macrocode}
% \paragraph*{Required Packages.}
% \begin{macrocode}
-\RequirePackage[execJS]{eforms}
-\RequirePackage{graphicx}
+\@ifpackageloaded{eforms}{\let\execjs=y}
+ {\RequirePackage[execJS]{eforms}}
+\ifxetex\makeXasPDOff\fi
% \end{macrocode}
+% (2020/06/02) We require the \pkg{icon-appr} package.
% \begin{macrocode}
-\def\theTotalTiles#1{\def\nTotalTiles{#1}}
-\let\nTotalTiles\@empty
+\RequirePackage{icon-appr}
+\RequirePackage{multido}
+\RequirePackage{graphicx}
% \end{macrocode}
-% For \cs{theNumRows} and \cs{theNumCols} we try to calculate the total
-% number of tiles, \cs{nTotalTiles}. We must wait until both the row and
-% column command have been expanded.
+% \section{Some simple controls}
+% Some buttons to control the starting, stopping and clearing of the image. You can
+% change the appearance of these buttons by using the optional parameter, see the
+% \pkg{eforms} documentation.
+% \begin{macro}{\StartSort}\hskip-\marginparsep\texttt{[\ameta{options}]\darg{\ameta{name}}\darg{\ameta{wd}}\darg{\ameta{ht}}}
+% Starts the sort for the pictures having the associated \ameta{name}.
% \begin{macrocode}
-\def\theNumRows#1{%
- \def\nRows{#1}%
- \ifx\nCols\@empty\else
- \ifx\nTotalTiles\@empty
- {\count0=#1\relax\multiply\count0by\nCols
- \xdef\nTotalTiles{\the\count0}}%
- \fi
- \fi
- }
-\let\nRows\@empty
-\def\theNumCols#1{%
- \def\nCols{#1}%
- \ifx\nRows\@empty\else
- \ifx\nTotalTiles\@empty
- {\count0=#1\relax\multiply\count0by\nRows
- \xdef\nTotalTiles{\the\count0}}%
- \fi
- \fi
-}
-\let\nCols\@empty
-\def\theImportPath#1{\def\importpath{#1}}
-\def\theIconExt#1{\def\iconsExt{#1}}
-\def\iconsExt{pdf}
-\def\theTeXImageWidth#1{\def\texImageWidth{#1}%
- {\dimen0=\texImageWidth \xdef\imageWidth{\strip@pt\dimen0 }}%
+\newcommand{\StartSort}[4][]
+ {\pushButton[\CA{Press Me}#1\A{\JS{\sortCustomStartJS;\r
+ startSortAS("#2");
+ \@ppendStartSortJS}}]{btStartSort}{#3}{#4}%
}
-\def\isPackage{\def\bIsPackage{true}}
-\def\bIsPackage{false}
% \end{macrocode}
% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \begin{macro}{\ulCornerHere}
-% \begin{macro}{\reserveSpaceByDimension}
-% \begin{macro}{\reserveSpaceByFile}
-% This group of buttons appear together. \cs{ulCornerHere} is used to
-% set the upper left corner of the image. One of the two commands
-% \cs{reserveSpaceByDimension} or \cs{reserveSpaceByFile} immediately follow
-% the `corner' commands.
+% \begin{macro}{\ClearSort}\hskip-\marginparsep\texttt{[\ameta{options}]\darg{\ameta{name}}\darg{\ameta{wd}}\darg{\ameta{ht}}}
+% Clears the sort for the pictures having the associated \ameta{name}, it does this simply
+% by making all pictures hidden.
% \begin{macrocode}
-\def\ulCornerHere{\makebox[0pt][l]%
- {\pushButton[\autoCenter{n}]{ulcorner}{0pt}{0pt}}}
+\newcommand{\ClearSort}[4][]%
+ {\pushButton[\CA{Clear}#1\A{\JS{%
+ var f=this.getField("btn#2pic");\r
+ if(f!=null)f.display=display.hidden;\r
+ asOk2Continue = false;
+ \@ppendClearSortJS
+ }}]{btnClearSort}{#3}{#4}%
+}
% \end{macrocode}
-% The two arguments are $\texttt{\#1} = \mbox{width}$ and $\texttt{\#2} = \mbox{height}$.
+% \end{macro}
+% \begin{macro}{\StopSort}\hskip-\marginparsep\texttt{[\ameta{options}]\darg{\ameta{wd}}\darg{\ameta{ht}}}
+% Starts the sort for the pictures having the associated \ameta{name}.
% \begin{macrocode}
-\def\reserveSpaceByDimension#1#2{%
- \hbox{\ifpreview\setlength\fboxrule{0.4pt}\setlength\fboxsep{0pt}%
- \@tempdima=#1\advance\@tempdima by-\fboxrule
- \@tempdimb=#2\advance\@tempdimb by-\fboxrule
- \fbox{\parbox[t][\@tempdimb][t]{\@tempdima}{\kern0pt\hfill\vfill}}%
- \else\parbox[t][#2][t]{#1}{\kern0pt\hfill\vfill}\fi}%
+\newcommand{\StopSort}[3][]
+ {\pushButton[\CA{Stop}#1\A{\JS{%
+ asOk2Continue = false;
+ \@ppendStopSortJS
+ }}]{btnStopSort}{#2}{#3}%
}
-\newcommand{\reserveSpaceByFile}[1][\importpath]%
- {{\setbox0=\hbox{\includegraphics[draft,width=\texImageWidth]{#1}}%
- \reserveSpaceByDimension{\wd0}{\ht0}}}
+% \end{macrocode}
+% \begin{macro}{\customStartJS}\hskip-\marginparsep\texttt{\darg{\ameta{script}}}
+% Inserts \ameta{script} into the beginning of the \cs{StartSort} command.
+% \begin{macrocode}
+\newcommand{\customStartJS}[1]{\def\sortCustomStartJS{#1}}
+\let\sortCustomStartJS\@gobbletwo
% \end{macrocode}
% \end{macro}
+% \leavevmode\DescribeMacro\appendStartSortJS\hskip-\marginparsep\texttt{\darg{\ameta{script}}}
+% Appends \ameta{script} to the \cs{StartSort} control.
+% \begin{macrocode}
+\def\appendStartSortJS#1{\def\@rgi{#1}\ifx\@rgi\@empty
+ \let\@ppendStartSortJS\@empty\else
+ \def\@ppendStartSortJS{\r #1}\fi}
+\let\@ppendStartSortJS\@empty
+% \end{macrocode}
+% \leavevmode\DescribeMacro\appendClearSortJS\hskip-\marginparsep\texttt{\darg{\ameta{script}}}
+% Appends \ameta{script} to the \cs{ClearSort} control.
+% \begin{macrocode}
+\def\appendClearSortJS#1{\def\@rgi{#1}\ifx\@rgi\@empty
+ \let\@ppendClearSortJS\@empty\else
+ \def\@ppendClearSortJS{\r #1}\fi}
+\let\@ppendClearSortJS\@empty
+% \end{macrocode}
+% \leavevmode\DescribeMacro\appendStopSortJS\hskip-\marginparsep\texttt{\darg{\ameta{script}}}
+% Appends \ameta{script} to the \cs{StopSort} control.
+% \begin{macrocode}
+\def\appendStopSortJS#1{\def\@rgi{#1}\ifx\@rgi\@empty
+ \let\@ppendStopSortJS\@empty\else
+ \def\@ppendStopSortJS{\r #1}\fi}
+\let\@ppendStopSortJS\@empty
+% \end{macrocode}
% \end{macro}
-% \end{macro}
-% \begin{macro}{\StartSort}
-% \begin{macro}{\ClearSort}
-% \begin{macro}{\StopSort}
-% Some buttons to control the starting, stopping and clearing of the image. You can
-% change the appearance of these buttons by using the optional parameter, see the
-% \textsf{eForms} documentation.
% \begin{macrocode}
-\newcommand{\StartSort}[1][]{{\small\pushButton[\CA{Press Me}#1
- \A{\JS{%
- ok2Continue = true;\r
- mixupDPS();\r
- showDPS();\r
- sortoutDPS();
- }}]{StartButton}{}{12bp}}%
-}
-\newcommand{\ClearSort}[1][]%
- {\small{\pushButton[\CA{Clear}#1\A{\JS{%
- clearDPS();\sortCustomStartJS}}%
- ]{StartButton}{}{12bp}}%
+% \end{macrocode}
+%\leavevmode\DescribeMacro\asIconPic\hskip-\marginparsep\texttt
+% {[\ameta{opts}]\darg{\ameta{fieldname}}\darg{\ameta{wd}}\darg{\ameta{ht}}}
+% There is allowance for displaying additional button images. The
+% \begin{macrocode}
+\newcommand{\asIconPic}[4][]{% \I{\csOf{name}} required
+ \pushButton[\Ff{\FfReadOnly}\BG{}\S{S}#1\TP{1}\F{\FHidden}
+ \PA{.5 1}]{#2}{#3}{#4}}
+% \end{macrocode}
+% \section{Embedding the tiles}
+% The first step is to embed the tiles using the \env{embedding} environment of \pkg{icon-appr}.
+% \begin{macrocode}
+% \end{macrocode}
+% \leavevmode
+% \DescribeMacro\asEmbedTiles\hskip-\marginparsep\texttt{[\ameta{ext}]\darg{\ameta{name}}\darg{\ameta{n-pics}}\darg{\ameta{path}}}
+% We take a graphic and explode it into rows and columns, \ameta{n-pics} is the total number
+% of tiled pictures. We assume the tiles are created row-wise, possible by the \pkg{tile-graphic} package. We assume also a naming convention
+% for the tiles if \texttt{mypic} is the basename of the picture or graphic, then the tiles are
+% named \texttt{mypic\_01}, \texttt{mypic\_02}, \texttt{mypic\_03}, \dots. It is assumed a single digit
+% index has a leading 0. Use the command \DescribeMacro\isPackage
+% \cs{isPackage} prior to \cs{asEmbedTiles}.
+% \changes{v1.5}{2020/05/30}{Embed graphics and support for packaged graphics}
+% \begin{macrocode}
+\newcount\as@nCnt
+\newif\if@isPackaged\@isPackagedfalse
+\def\isPackage{\@isPackagedtrue}
+\let\asIconObjs\@gobble
+\newcommand{\asEmbedTiles}[4][]{\begingroup
+ \gdef\asNumSideShowPics{#3}%
+ \csarg\gdef{asGraphicPath#2}{#4}%
+ \def\@Ext{#1}\ifx\@Ext\@empty\def\@Ext{.pdf}\else\def\@Ext{.#1}\fi
+ \@tempcnta\z@
+ \let\@embedList\@empty
+% \let\DPSIndxList\@gobble
+ \edef\z{\noexpand\g@addto@macro\noexpand
+ \asIconObjs{,"#2":\asNumSideShowPics}}\z
+ \@whilenum \@tempcnta < \asNumSideShowPics \do{%
+ \as@nCnt\@tempcnta\advance\as@nCnt\@ne
+ \ifnum\as@nCnt<10\relax\edef\x{0\the\as@nCnt}\else
+ \edef\x{\the\as@nCnt}\fi
+% \edef\z{\noexpand\g@addto@macro\noexpand\DPSIndxList{,"\x"}}\z
+ \ifxetex\if@isPackaged
+ \PackageWarning{acrosort}
+ {There is no support for embedding packaged\MessageBreak
+ PDFs with xelatex. Ignoring the \string\isPackage\MessageBreak
+ command}%
+ \@isPackagedfalse
+ \fi\fi
+ \if@isPackaged
+ \ifpdf
+ \edef\y{\noexpand
+ \embedIcon[name=#2pic\x,%
+ hyopts={page=\x}]{#4_package.pdf}}%
+ \else
+ \edef\y{\noexpand
+ \embedIcon[name=#2pic\x,placement=btn#2pic.\x,%
+ page=\x-1]{#4_package.pdf}}%
+ \fi
+ \else
+ \edef\y{\noexpand
+ \embedIcon[name=#2pic\x,placement=btn#2pic.\x]{#4_\x\@Ext}}%
+ \fi
+ \expandafter\g@addto@macro\expandafter\@embedList\expandafter{\y}%
+ \@tempcnta\as@nCnt
+ }% do
+ \toks@=\expandafter{\@embedList}\the\toks@
+ \endgroup
+ \global\@isPackagedfalse
}
-\newcommand{\StopSort}[1][]%
- {\small{\pushButton[\CA{Stop}#1\A{\JS{ok2Continue = false;}}%
- ]{StartButton}{}{12bp}}%
+% \end{macrocode}
+% \section{Inserting the tiles to be sorted} The next step is to insert
+% the tiles into the body of the document, and sort them.\vskip6pt\noindent
+% \DescribeMacro\insertTiles\hskip-\marginparsep
+% \texttt{\darg{\ameta{width}}\darg{\ameta{rows}}\darg{\ameta{cols}}}
+% Command for placing the tiles of a picture. We assume that the pictures are numbered
+% consecutively across rows.
+% \begin{quote}
+% \begin{description}
+% \item[\ameta{name}] The name of the graphic (a JavaScript identifier)
+% \item[\ameta{width}] The width of the image, the height is scaled proportionally
+% \item[\ameta{rows}] The number of rows
+% \item[\ameta{cols}] The number of columns
+% \end{description}
+% \end{quote}
+% \begin{macrocode}
+\newcommand\insertTiles[4]{\begingroup
+ \setbox\z@\hbox{%
+ \includegraphics[draft,width=#2]{\@nameuse{asGraphicPath#1}}}%
+ \edef\asGrphWd{\the\wd\z@}%
+ \@tempdima\wd\z@
+ \divide\@tempdima #4\relax
+ \edef\asTileWd{\the\@tempdima}%
+ \setlength\@tempdima{\ht\z@+\dp\z@}%
+ \setbox\z@\box\voidb@x
+ \edef\asTtlGrphHt{\the\@tempdima}%
+ \@tempdima\asTtlGrphHt\relax
+ \divide\@tempdima #3\relax
+ \edef\asTileHt{\the\@tempdima}%
+ \begin{minipage}{#2}%
+ \offinterlineskip\@tempcnta\z@
+ \multido{\iR=1+1}{#3}{\hbox{%
+ \multido{\iC=1+1}{#4}{%
+ \global\advance\@tempcnta\@ne
+ \ifnum\@tempcnta<10\relax
+ \edef\x{0\the\@tempcnta}\else
+ \edef\x{\the\@tempcnta}\fi
+ \edef\iconPresets{\noexpand\I{\noexpand\csOf{#1pic\x}}}%
+ \asIconPic[\BC{}\FB{true}\presets{\iconPresets}%
+ \presets{\astile@KVs}]{btn#1pic.\x}{\asTileWd}{\asTileHt}%
+ }% inner multido
+ }}% hbox, outer multido
+ \end{minipage}%
+ \endgroup
}
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \begin{macro}{\bDebug}
-% Debugging command. Get back more info when you assemble the document.
+% \leavevmode\DescribeMacro\astileKVs\hskip-\marginparsep\texttt{\ameta{KV-pairs}}
+% A way to pass \pkg{eform} key-values to the optional
+% argument of the underlying push button.
% \begin{macrocode}
-\def\bDebug{\def\memDebug{true}}
-\def\memDebug{false}
+\def\astileKVs#1{\def\astile@KVs{#1}}
+\astileKVs{}
% \end{macrocode}
-% \end{macro}
-% \section{Document JavaScript for \textsf{AcroSort}}
+%
+% \section{Document JavaScript for \textsf{acrosort}}
% Most of the work of this package is done with document JavaScript, and here
% it is.
-%\par\medskip\noindent
-%\StopEventually{JavaScript listing suppressed,
-% comment out \cs{OnlyDescription} at the beginning of this file to see
-% the JavaScript.}
+% \begin{macro}{\customFinishJS}\hskip-\marginparsep\texttt{\darg{\ameta{script}}}
+% Inserts \ameta{script} at the end of the bubble sort.
% \begin{macrocode}
-\newcommand{\customStartJS}[1]{\def\sortCustomStartJS{#1}}
-\let\sortCustomStartJS\@empty
-\newcommand{\customFinishJS}[1]{\def\sortCustomFinishJS{#1}}
+\newcommand{\customFinishJS}[1]{\gdef\sortCustomFinishJS{#1}}
\def\sortCustomFinishJS{;}
-\begin{insDLJS}[randomDPS]{sort}{JS for bubble sort}
+% \end{macrocode}
+% \end{macro}
+% \begin{macrocode}
+\begin{insDLJS}{asSort}{AcroSort: Bubble Sort}
// Global Data:
-var randomDPS = new Array(\nTotalTiles+1);
-var ldps = randomDPS.length;
+var btnbase=""; // btn<name>pic.01, btn<name>pic.02, etc
+var iconbase=""; // <name>pic01, <name>pic02, etc.
+var iconObjs={\asIconObjs};
+var sortName="";
+var randomAS = new Array();
var timeout = 10;
var shutdown;
-var debug = \memDebug;
-var ok2Continue = true;
-for (i=1; i<=\nTotalTiles; i++) randomDPS[i]=i;
-
-// Clear DPS:
-try {this.addIcon("nullIcon", this.createIcon("", 0, 0));} catch(e) {}
-
-function clearDPS()
-{
- for ( var i=1; i<=\nTotalTiles; i++ )
- {
- var oIcon = this.getIcon("nullIcon");
- var f = this.getField("button."+i);
- f.buttonSetIcon(oIcon);
- }
+var asOk2Continue = false;
+function initRandomDPS(name) {
+ var nTotalTiles = iconObjs[name];
+ for (i=1; i<=nTotalTiles; i++) randomAS[i]=i;
+ return nTotalTiles;
}
-
-// Mixup DPS:
-function mixupDPS()
+% \end{macrocode}
+% \leavevmode\IndexJS{startSortAS}\hskip-\marginparsep\texttt{(\ameta{name})} is the function
+% that starts the sorting.
+% \begin{macrocode}
+function startSortAS(name) {
+ if (!asOk2Continue) {
+ sortName=name;
+ randomAS = new Array();
+ var f=this.getField("btn"+name+"pic");
+ if(f!=null)f.display=display.visible;
+ asOk2Continue = true;
+ mixupAS();
+ showAS();
+ sortoutAS();
+ }
+}
+function mixupAS()
{
var i, rand, temp;
- for (i=1; i<= \nTotalTiles; i++)
+ var nTotalTiles=initRandomDPS(sortName);
+ var ldps = randomAS.length;
+ for (i=1; i<= nTotalTiles; i++)
{
var rand = Math.random();
rand *= ldps*ldps;
rand = Math.ceil(rand);
rand = rand \% ldps;
if (rand == 0 ) rand = 1;
- temp = randomDPS[i];
- randomDPS[i]=randomDPS[rand];
- randomDPS[rand]=temp;
+ temp = randomAS[i];
+ randomAS[i]=randomAS[rand];
+ randomAS[rand]=temp;
}
}
-
-// Show DPS:
-function showDPS()
+function showAS()
{
- \sortCustomStartJS
- for ( var i=1; i<=\nTotalTiles; i++ )
+ var I,J;
+ var nTotalTiles = iconObjs[sortName];
+ btnbase="btn"+sortName+"pic.";
+ iconbase=sortName+"pic";
+ for ( var i=1; i<=nTotalTiles; i++ )
{
- var oIcon = this.getIcon("pic."+randomDPS[i]);
- var f = this.getField("button."+i);
+ I=((i<10)?"0":"")+i;
+ J=((randomAS[i]<10)?"0":"")+randomAS[i];
+ var oIcon = this.getIcon(iconbase+J);
+ var f = this.getField(btnbase+I);
f.buttonSetIcon(oIcon);
}
}
-
-// Sortout DPS:
-function sortoutDPS()
+function sortoutAS()
{
- outerLoop(randomDPS.length-1);
+ outerLoop(randomAS.length-1);
}
function outerLoop(i)
{
- if ( ok2Continue && (i >= 0) ) shutdown = app.setTimeOut("app.clearTimeOut(shutdown); innerLoop("+i+",1);", timeout);
+ if ( asOk2Continue && (i >= 0) )
+ shutdown = app.setTimeOut("app.clearTimeOut(shutdown); %
+innerLoop("+i+",1);", timeout);
else {
- \sortCustomFinishJS
+ asOk2Continue=false;
+ \sortCustomFinishJS
}
}
function innerLoop(i,j)
{
+ var I, J;
if ( j <= i )
{
- if (randomDPS[j-1] > randomDPS[j])
+ if (randomAS[j-1] > randomAS[j])
{
- var temp = randomDPS[j-1];
- randomDPS[j-1] = randomDPS[j];
- randomDPS[j] = temp;
- var oIcon = this.getIcon("pic."+randomDPS[j-1]);
- var f = this.getField("button."+(j-1));
+ var temp = randomAS[j-1];
+ randomAS[j-1] = randomAS[j];
+ randomAS[j] = temp;
+ J=((randomAS[j-1]<10)?"0":"")+randomAS[j-1];
+ I=((j-1 < 10)?"0":"")+(j-1);
+ var oIcon = this.getIcon(iconbase+J);
+ var f = this.getField(btnbase+I);
f.buttonSetIcon(oIcon);
- var oIcon = this.getIcon("pic."+randomDPS[j]);
- var f = this.getField("button."+j);
+ J=((randomAS[j]<10)?"0":"")+randomAS[j];
+ I=((j < 10)?"0":"")+j;
+ var oIcon = this.getIcon(iconbase+J);
+ var f = this.getField(btnbase+I);
f.buttonSetIcon(oIcon);
}
j++
- if ( ok2Continue ) shutdown = app.setTimeOut("app.clearTimeOut(shutdown); innerLoop("+i+","+j+");", timeout);
- else {
- \sortCustomFinishJS
- }
+ if ( asOk2Continue ) %
+shutdown = app.setTimeOut("app.clearTimeOut(shutdown); %
+innerLoop("+i+","+j+");", timeout);
}
else
{
@@ -285,93 +417,6 @@ function innerLoop(i,j)
}
}
\end{insDLJS}
-
-\begin{execJS}{acrosortjs}
-var index, ip="\importpath";
-var re=/_package$/;
-var isPackage=\bIsPackage;
-if (debug) console.println("isPackage: " + isPackage);
-if (debug) console.println("nTotalTiles = " + \nTotalTiles)
-if (isPackage) {
- ip = ip+"_package";
- for ( var i = 1; i <= \nTotalTiles; i++)
- {
- try { aebTrustedFunctions(this, aebImportIcon, {cName: "pic."+i,
- nPage: (i-1), cDIPath: ip+".\iconsExt"}, this);
- } catch(e) {console.println("exception: " + e.toSource())}
-
- }
-} else {
- for ( var i = 1; i <= \nTotalTiles; i++)
- {
- index = ( i < 10 ) ? "0"+i : ""+i;
- if (debug) console.println(ip+"_"+index+".\iconsExt")
- try { aebTrustedFunctions(this, aebImportIcon, {cName: "pic."+i, cDIPath: ip+"_"+index+".\iconsExt"}, this);
- } catch(e) {console.println("exception: " + e.toSource())}
- }
-}
-// Now lay out the icon fields.
-var f = this.getField("ulcorner");
-var nPage = f.page;
-var ulCorner = f.rect;
-this.removeField("ulcorner");
-
-ip = ip.replace(re,"");
-ip=ip+".pdf";
-var doc = aebTrustedFunctions( this, aebAppOpenDoc, { cPath: ip, oDoc: this, bHidden: true });
-var aRect = doc.getPageBox({cBox:"Crop"})
-doc.closeDoc(true);
-
-if (debug) console.println("aRect: " + aRect.toSource());
-
-var nRows = \nRows;
-var nCols = \nCols;
-
-
-var width = aRect[2]-aRect[0];
-var height = aRect[1]-aRect[3];
-
-var scaleFactor = \imageWidth/width;
-
-if (debug) console.println("scaleFactor = " + scaleFactor);
-
-var scaledWidth = width*scaleFactor;
-var scaledHeight = height*scaleFactor;
-
-if (debug) console.println("scaledWidth = " + scaledWidth);
-if (debug) console.println("scaledHeight = " + scaledHeight);
-
-var mWidth = scaledWidth/nCols
-var mHeight = scaledHeight/nRows
-
-if (debug) console.println("mWidth = " + mWidth);
-if (debug) console.println("mHeight = " + mHeight);
-
-var nCnt = 0;
-
-for ( var i=0; i<nRows; i++) {
- for ( var j=0; j<nCols; j++ ) {
- nCnt++;
- try {
- var g = this.addField({
- cName: "button."+nCnt,
- cFieldType: "button",
- nPageNum: nPage,
- oCoords: [ ulCorner[0]+j*mWidth, ulCorner[1]-i*mHeight, ulCorner[0]+(j+1)*mWidth, ulCorner[1]-(i+1)*mHeight ]
- });
- } catch(e) { console.println( e.toSource()); }
- try {
- g.highlight=highlight.p
- g.buttonPosition = position.iconOnly;
- g.lineWidth = 0;
- g.readonly = true;
- } catch(e) { console.println("set properties: " + e.toSource()) }
- var oIcon = this.getIcon("pic."+nCnt);
- g.buttonSetIcon(oIcon,1);
- }
-}
-// aebTrustedFunctions(this, aebSaveAs, "Save")
-\end{execJS}
%</package>
% \end{macrocode}
% \Finale
diff --git a/texmf-dist/source/latex/acrosort/acrosort.ins b/texmf-dist/source/latex/acrosort/acrosort.ins
index b4776eb6..dccc8118 100644
--- a/texmf-dist/source/latex/acrosort/acrosort.ins
+++ b/texmf-dist/source/latex/acrosort/acrosort.ins
@@ -3,7 +3,7 @@
%% driver files from the doc files in this package when run through
%% LaTeX or TeX.
%%
-%% Copyright 1999-2006 D. P. Story
+%% Copyright 2006--2020 D. P. Story
%%
%% This file is part of the `AcroTeX eDucation Bundle'.
%% -------------------------------------------
diff --git a/texmf-dist/source/latex/acrosort/aeb_pro/aeb_pro.js b/texmf-dist/source/latex/acrosort/aeb_pro/aeb_pro.js
deleted file mode 100644
index 02b1e658..00000000
--- a/texmf-dist/source/latex/acrosort/aeb_pro/aeb_pro.js
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- AEB Pro Document Assembly Methods
-
- Copyright (C) 2009 AcroTeX.Net
- D. P. Story
- http://www.acrotex.net
-
- Version 1.1
-*/
-
-if ( typeof aebTrustedFunctions == "undefined") {
- aebTrustedFunctions = app.trustedFunction( function ( doc, oFunction, oArgs )
- {
- app.beginPriv();
- var retn = oFunction( oArgs, doc )
- app.endPriv();
- return retn;
- });
-}
-aebAddWatermarkFromFile = app.trustPropagatorFunction( function ( oArgs, doc )
-{
- app.beginPriv();
- return retn = doc.addWatermarkFromFile(oArgs);
- app.endPriv();
-});
-aebImportIcon = app.trustPropagatorFunction( function ( oArgs, doc )
-{
- app.beginPriv();
- return retn = doc.importIcon(oArgs);
- app.endPriv();
-});
-aebInsertPages = app.trustPropagatorFunction( function ( oArgs, doc )
-{
- app.beginPriv();
- try { doc.insertPages(oArgs); } catch(e) {console.println("Error: " + e.toString());}
- app.endPriv();
-})
-aebAppOpenDoc = app.trustPropagatorFunction( function ( oArgs, doc )
-{
- app.beginPriv();
- try { var retn = app.openDoc(oArgs); } catch(e) {console.println("Error: " + e.toString());}
- app.endPriv();
- return retn;
-})
-aebImportSound = app.trustPropagatorFunction( function ( oArgs, doc )
-{
- app.beginPriv();
- return retn = doc.importSound(oArgs);
- app.endPriv();
-});
-aebSaveAs = app.trustPropagatorFunction( function ( oArgs, doc )
-{
- app.beginPriv();
- app.execMenuItem("Save");
- app.endPriv();
-});
-aebExtractPages = app.trustPropagatorFunction( function ( oArgs, doc )
-{
- app.beginPriv();
- return retn = doc.extractPages(oArgs);
- app.endPriv();
-});
-aebMailDoc = app.trustPropagatorFunction( function ( oArgs, doc )
-{
- app.beginPriv();
- return retn = doc.mailDoc(oArgs);
- app.endPriv();
-});
-aebImportDataObject = app.trustPropagatorFunction( function ( oArgs, doc )
-{
- app.beginPriv();
- return retn = doc.importDataObject(oArgs);
- app.endPriv();
-});
-aebSignatureSign = app.trustPropagatorFunction( function ( oArgs, field )
-{
- app.beginPriv();
- return retn = field.signatureSign(oArgs);
- app.endPriv();
-});
-aebSecurityHandlerLogin = app.trustPropagatorFunction( function ( oArgs, securityHandler )
-{
- app.beginPriv();
- return retn = securityHandler.login(oArgs);
- app.endPriv();
-});
-aebSecurityGetHandler = app.trustPropagatorFunction( function ( oArgs, security )
-{
- app.beginPriv();
- return retn = security.getHandler(oArgs);
- app.endPriv();
-});
-aebAppGetPath = app.trustPropagatorFunction( function ( oArgs, doc )
-{
- app.beginPriv();
- var retn = app.getPath(oArgs);
- app.endPriv();
- return retn;
-})
-aebSignatureSetSeedValue = app.trustPropagatorFunction( function ( oArgs, field )
-{
- app.beginPriv();
- return retn = field.signatureSetSeedValue(oArgs);
- app.endPriv();
-});
-
diff --git a/texmf-dist/tex/latex/acrosort/acrosort.sty b/texmf-dist/tex/latex/acrosort/acrosort.sty
index 098839f9..ea047228 100644
--- a/texmf-dist/tex/latex/acrosort/acrosort.sty
+++ b/texmf-dist/tex/latex/acrosort/acrosort.sty
@@ -1,273 +1,252 @@
-%%
-%% This is file `acrosort.sty',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% acrosort.dtx (with options: `copyright,package')
-%%
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% acrosort package, 2011-12-22 %%
-%% Copyright (C) 2006--2011 D. P. Story %%
-%% dpstory@acrotex.net %%
-%% storyd@nwfsc.edu %%
-%% %%
-%% This program can redistributed and/or modified under %%
-%% the terms of the LaTeX Project Public License %%
-%% Distributed from CTAN archives in directory %%
-%% macros/latex/base/lppl.txt; either version 1 of the %%
-%% License, or (at your option) any later version. %%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{acrosort}
- [2011/12/22 v1.5 AcroSort (dps)]
-\RequirePackage[execJS]{eforms}
-\RequirePackage{graphicx}
-\def\theTotalTiles#1{\def\nTotalTiles{#1}}
-\let\nTotalTiles\@empty
-\def\theNumRows#1{%
- \def\nRows{#1}%
- \ifx\nCols\@empty\else
- \ifx\nTotalTiles\@empty
- {\count0=#1\relax\multiply\count0by\nCols
- \xdef\nTotalTiles{\the\count0}}%
- \fi
- \fi
- }
-\let\nRows\@empty
-\def\theNumCols#1{%
- \def\nCols{#1}%
- \ifx\nRows\@empty\else
- \ifx\nTotalTiles\@empty
- {\count0=#1\relax\multiply\count0by\nRows
- \xdef\nTotalTiles{\the\count0}}%
- \fi
- \fi
-}
-\let\nCols\@empty
-\def\theImportPath#1{\def\importpath{#1}}
-\def\theIconExt#1{\def\iconsExt{#1}}
-\def\iconsExt{pdf}
-\def\theTeXImageWidth#1{\def\texImageWidth{#1}%
- {\dimen0=\texImageWidth \xdef\imageWidth{\strip@pt\dimen0 }}%
-}
-\def\isPackage{\def\bIsPackage{true}}
-\def\bIsPackage{false}
-\def\ulCornerHere{\makebox[0pt][l]%
- {\pushButton[\autoCenter{n}]{ulcorner}{0pt}{0pt}}}
-\def\reserveSpaceByDimension#1#2{%
- \hbox{\ifpreview\setlength\fboxrule{0.4pt}\setlength\fboxsep{0pt}%
- \@tempdima=#1\advance\@tempdima by-\fboxrule
- \@tempdimb=#2\advance\@tempdimb by-\fboxrule
- \fbox{\parbox[t][\@tempdimb][t]{\@tempdima}{\kern0pt\hfill\vfill}}%
- \else\parbox[t][#2][t]{#1}{\kern0pt\hfill\vfill}\fi}%
-}
-\newcommand{\reserveSpaceByFile}[1][\importpath]%
- {{\setbox0=\hbox{\includegraphics[draft,width=\texImageWidth]{#1}}%
- \reserveSpaceByDimension{\wd0}{\ht0}}}
-\newcommand{\StartSort}[1][]{{\small\pushButton[\CA{Press Me}#1
- \A{\JS{%
- ok2Continue = true;\r
- mixupDPS();\r
- showDPS();\r
- sortoutDPS();
- }}]{StartButton}{}{12bp}}%
-}
-\newcommand{\ClearSort}[1][]%
- {\small{\pushButton[\CA{Clear}#1\A{\JS{%
- clearDPS();\sortCustomStartJS}}%
- ]{StartButton}{}{12bp}}%
-}
-\newcommand{\StopSort}[1][]%
- {\small{\pushButton[\CA{Stop}#1\A{\JS{ok2Continue = false;}}%
- ]{StartButton}{}{12bp}}%
-}
-\def\bDebug{\def\memDebug{true}}
-\def\memDebug{false}
-\newcommand{\customStartJS}[1]{\def\sortCustomStartJS{#1}}
-\let\sortCustomStartJS\@empty
-\newcommand{\customFinishJS}[1]{\def\sortCustomFinishJS{#1}}
-\def\sortCustomFinishJS{;}
-\begin{insDLJS}[randomDPS]{sort}{JS for bubble sort}
-// Global Data:
-var randomDPS = new Array(\nTotalTiles+1);
-var ldps = randomDPS.length;
-var timeout = 10;
-var shutdown;
-var debug = \memDebug;
-var ok2Continue = true;
-for (i=1; i<=\nTotalTiles; i++) randomDPS[i]=i;
-
-// Clear DPS:
-try {this.addIcon("nullIcon", this.createIcon("", 0, 0));} catch(e) {}
-
-function clearDPS()
-{
- for ( var i=1; i<=\nTotalTiles; i++ )
- {
- var oIcon = this.getIcon("nullIcon");
- var f = this.getField("button."+i);
- f.buttonSetIcon(oIcon);
- }
-}
-
-// Mixup DPS:
-function mixupDPS()
-{
- var i, rand, temp;
- for (i=1; i<= \nTotalTiles; i++)
- {
- var rand = Math.random();
- rand *= ldps*ldps;
- rand = Math.ceil(rand);
- rand = rand \% ldps;
- if (rand == 0 ) rand = 1;
- temp = randomDPS[i];
- randomDPS[i]=randomDPS[rand];
- randomDPS[rand]=temp;
- }
-}
-
-// Show DPS:
-function showDPS()
-{
- \sortCustomStartJS
- for ( var i=1; i<=\nTotalTiles; i++ )
- {
- var oIcon = this.getIcon("pic."+randomDPS[i]);
- var f = this.getField("button."+i);
- f.buttonSetIcon(oIcon);
- }
-}
-
-// Sortout DPS:
-function sortoutDPS()
-{
- outerLoop(randomDPS.length-1);
-}
-function outerLoop(i)
-{
- if ( ok2Continue && (i >= 0) ) shutdown = app.setTimeOut("app.clearTimeOut(shutdown); innerLoop("+i+",1);", timeout);
- else {
- \sortCustomFinishJS
- }
-}
-function innerLoop(i,j)
-{
- if ( j <= i )
- {
- if (randomDPS[j-1] > randomDPS[j])
- {
- var temp = randomDPS[j-1];
- randomDPS[j-1] = randomDPS[j];
- randomDPS[j] = temp;
- var oIcon = this.getIcon("pic."+randomDPS[j-1]);
- var f = this.getField("button."+(j-1));
- f.buttonSetIcon(oIcon);
- var oIcon = this.getIcon("pic."+randomDPS[j]);
- var f = this.getField("button."+j);
- f.buttonSetIcon(oIcon);
- }
- j++
- if ( ok2Continue ) shutdown = app.setTimeOut("app.clearTimeOut(shutdown); innerLoop("+i+","+j+");", timeout);
- else {
- \sortCustomFinishJS
- }
- }
- else
- {
- i--;
- outerLoop(i);
- }
-}
-\end{insDLJS}
-
-\begin{execJS}{acrosortjs}
-var index, ip="\importpath";
-var re=/_package$/;
-var isPackage=\bIsPackage;
-if (debug) console.println("isPackage: " + isPackage);
-if (debug) console.println("nTotalTiles = " + \nTotalTiles)
-if (isPackage) {
- ip = ip+"_package";
- for ( var i = 1; i <= \nTotalTiles; i++)
- {
- try { aebTrustedFunctions(this, aebImportIcon, {cName: "pic."+i,
- nPage: (i-1), cDIPath: ip+".\iconsExt"}, this);
- } catch(e) {console.println("exception: " + e.toSource())}
-
- }
-} else {
- for ( var i = 1; i <= \nTotalTiles; i++)
- {
- index = ( i < 10 ) ? "0"+i : ""+i;
- if (debug) console.println(ip+"_"+index+".\iconsExt")
- try { aebTrustedFunctions(this, aebImportIcon, {cName: "pic."+i, cDIPath: ip+"_"+index+".\iconsExt"}, this);
- } catch(e) {console.println("exception: " + e.toSource())}
- }
-}
-// Now lay out the icon fields.
-var f = this.getField("ulcorner");
-var nPage = f.page;
-var ulCorner = f.rect;
-this.removeField("ulcorner");
-
-ip = ip.replace(re,"");
-ip=ip+".pdf";
-var doc = aebTrustedFunctions( this, aebAppOpenDoc, { cPath: ip, oDoc: this, bHidden: true });
-var aRect = doc.getPageBox({cBox:"Crop"})
-doc.closeDoc(true);
-
-if (debug) console.println("aRect: " + aRect.toSource());
-
-var nRows = \nRows;
-var nCols = \nCols;
-
-var width = aRect[2]-aRect[0];
-var height = aRect[1]-aRect[3];
-
-var scaleFactor = \imageWidth/width;
-
-if (debug) console.println("scaleFactor = " + scaleFactor);
-
-var scaledWidth = width*scaleFactor;
-var scaledHeight = height*scaleFactor;
-
-if (debug) console.println("scaledWidth = " + scaledWidth);
-if (debug) console.println("scaledHeight = " + scaledHeight);
-
-var mWidth = scaledWidth/nCols
-var mHeight = scaledHeight/nRows
-
-if (debug) console.println("mWidth = " + mWidth);
-if (debug) console.println("mHeight = " + mHeight);
-
-var nCnt = 0;
-
-for ( var i=0; i<nRows; i++) {
- for ( var j=0; j<nCols; j++ ) {
- nCnt++;
- try {
- var g = this.addField({
- cName: "button."+nCnt,
- cFieldType: "button",
- nPageNum: nPage,
- oCoords: [ ulCorner[0]+j*mWidth, ulCorner[1]-i*mHeight, ulCorner[0]+(j+1)*mWidth, ulCorner[1]-(i+1)*mHeight ]
- });
- } catch(e) { console.println( e.toSource()); }
- try {
- g.highlight=highlight.p
- g.buttonPosition = position.iconOnly;
- g.lineWidth = 0;
- g.readonly = true;
- } catch(e) { console.println("set properties: " + e.toSource()) }
- var oIcon = this.getIcon("pic."+nCnt);
- g.buttonSetIcon(oIcon,1);
- }
-}
-// aebTrustedFunctions(this, aebSaveAs, "Save")
-\end{execJS}
-\endinput
-%%
-%% End of file `acrosort.sty'.
+%%
+%% This is file `acrosort.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% acrosort.dtx (with options: `copyright,package')
+%%
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% acrosort package, %%
+%% Copyright (C) 2006--2020 D. P. Story %%
+%% dpstory@acrotex.net %%
+%% storyd@nwfsc.edu %%
+%% %%
+%% This program can redistributed and/or modified under %%
+%% the terms of the LaTeX Project Public License %%
+%% Distributed from CTAN archives in directory %%
+%% macros/latex/base/lppl.txt; either version 1 of the %%
+%% License, or (at your option) any later version. %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{acrosort}
+ [2020/06/17 v1.6.1 AcroSort (dps)]
+\@ifpackageloaded{eforms}{\let\execjs=y}
+ {\RequirePackage[execJS]{eforms}}
+\ifxetex\makeXasPDOff\fi
+\RequirePackage{icon-appr}
+\RequirePackage{multido}
+\RequirePackage{graphicx}
+\newcommand{\StartSort}[4][]
+ {\pushButton[\CA{Press Me}#1\A{\JS{\sortCustomStartJS;\r
+ startSortAS("#2");
+ \@ppendStartSortJS}}]{btStartSort}{#3}{#4}%
+}
+\newcommand{\ClearSort}[4][]%
+ {\pushButton[\CA{Clear}#1\A{\JS{%
+ var f=this.getField("btn#2pic");\r
+ if(f!=null)f.display=display.hidden;\r
+ asOk2Continue = false;
+ \@ppendClearSortJS
+ }}]{btnClearSort}{#3}{#4}%
+}
+\newcommand{\StopSort}[3][]
+ {\pushButton[\CA{Stop}#1\A{\JS{%
+ asOk2Continue = false;
+ \@ppendStopSortJS
+ }}]{btnStopSort}{#2}{#3}%
+}
+\newcommand{\customStartJS}[1]{\def\sortCustomStartJS{#1}}
+\let\sortCustomStartJS\@gobbletwo
+\def\appendStartSortJS#1{\def\@rgi{#1}\ifx\@rgi\@empty
+ \let\@ppendStartSortJS\@empty\else
+ \def\@ppendStartSortJS{\r #1}\fi}
+\let\@ppendStartSortJS\@empty
+\def\appendClearSortJS#1{\def\@rgi{#1}\ifx\@rgi\@empty
+ \let\@ppendClearSortJS\@empty\else
+ \def\@ppendClearSortJS{\r #1}\fi}
+\let\@ppendClearSortJS\@empty
+\def\appendStopSortJS#1{\def\@rgi{#1}\ifx\@rgi\@empty
+ \let\@ppendStopSortJS\@empty\else
+ \def\@ppendStopSortJS{\r #1}\fi}
+\let\@ppendStopSortJS\@empty
+\newcommand{\asIconPic}[4][]{% \I{\csOf{name}} required
+ \pushButton[\Ff{\FfReadOnly}\BG{}\S{S}#1\TP{1}\F{\FHidden}
+ \PA{.5 1}]{#2}{#3}{#4}}
+\newcount\as@nCnt
+\newif\if@isPackaged\@isPackagedfalse
+\def\isPackage{\@isPackagedtrue}
+\let\asIconObjs\@gobble
+\newcommand{\asEmbedTiles}[4][]{\begingroup
+ \gdef\asNumSideShowPics{#3}%
+ \csarg\gdef{asGraphicPath#2}{#4}%
+ \def\@Ext{#1}\ifx\@Ext\@empty\def\@Ext{.pdf}\else\def\@Ext{.#1}\fi
+ \@tempcnta\z@
+ \let\@embedList\@empty
+ \edef\z{\noexpand\g@addto@macro\noexpand
+ \asIconObjs{,"#2":\asNumSideShowPics}}\z
+ \@whilenum \@tempcnta < \asNumSideShowPics \do{%
+ \as@nCnt\@tempcnta\advance\as@nCnt\@ne
+ \ifnum\as@nCnt<10\relax\edef\x{0\the\as@nCnt}\else
+ \edef\x{\the\as@nCnt}\fi
+ \ifxetex\if@isPackaged
+ \PackageWarning{acrosort}
+ {There is no support for embedding packaged\MessageBreak
+ PDFs with xelatex. Ignoring the \string\isPackage\MessageBreak
+ command}%
+ \@isPackagedfalse
+ \fi\fi
+ \if@isPackaged
+ \ifpdf
+ \edef\y{\noexpand
+ \embedIcon[name=#2pic\x,%
+ hyopts={page=\x}]{#4_package.pdf}}%
+ \else
+ \edef\y{\noexpand
+ \embedIcon[name=#2pic\x,placement=btn#2pic.\x,%
+ page=\x-1]{#4_package.pdf}}%
+ \fi
+ \else
+ \edef\y{\noexpand
+ \embedIcon[name=#2pic\x,placement=btn#2pic.\x]{#4_\x\@Ext}}%
+ \fi
+ \expandafter\g@addto@macro\expandafter\@embedList\expandafter{\y}%
+ \@tempcnta\as@nCnt
+ }% do
+ \toks@=\expandafter{\@embedList}\the\toks@
+ \endgroup
+ \global\@isPackagedfalse
+}
+\newcommand\insertTiles[4]{\begingroup
+ \setbox\z@\hbox{%
+ \includegraphics[draft,width=#2]{\@nameuse{asGraphicPath#1}}}%
+ \edef\asGrphWd{\the\wd\z@}%
+ \@tempdima\wd\z@
+ \divide\@tempdima #4\relax
+ \edef\asTileWd{\the\@tempdima}%
+ \setlength\@tempdima{\ht\z@+\dp\z@}%
+ \setbox\z@\box\voidb@x
+ \edef\asTtlGrphHt{\the\@tempdima}%
+ \@tempdima\asTtlGrphHt\relax
+ \divide\@tempdima #3\relax
+ \edef\asTileHt{\the\@tempdima}%
+ \begin{minipage}{#2}%
+ \offinterlineskip\@tempcnta\z@
+ \multido{\iR=1+1}{#3}{\hbox{%
+ \multido{\iC=1+1}{#4}{%
+ \global\advance\@tempcnta\@ne
+ \ifnum\@tempcnta<10\relax
+ \edef\x{0\the\@tempcnta}\else
+ \edef\x{\the\@tempcnta}\fi
+ \edef\iconPresets{\noexpand\I{\noexpand\csOf{#1pic\x}}}%
+ \asIconPic[\BC{}\FB{true}\presets{\iconPresets}%
+ \presets{\astile@KVs}]{btn#1pic.\x}{\asTileWd}{\asTileHt}%
+ }% inner multido
+ }}% hbox, outer multido
+ \end{minipage}%
+ \endgroup
+}
+\def\astileKVs#1{\def\astile@KVs{#1}}
+\astileKVs{}
+\newcommand{\customFinishJS}[1]{\gdef\sortCustomFinishJS{#1}}
+\def\sortCustomFinishJS{;}
+\begin{insDLJS}{asSort}{AcroSort: Bubble Sort}
+// Global Data:
+var btnbase=""; // btn<name>pic.01, btn<name>pic.02, etc
+var iconbase=""; // <name>pic01, <name>pic02, etc.
+var iconObjs={\asIconObjs};
+var sortName="";
+var randomAS = new Array();
+var timeout = 10;
+var shutdown;
+var asOk2Continue = false;
+function initRandomDPS(name) {
+ var nTotalTiles = iconObjs[name];
+ for (i=1; i<=nTotalTiles; i++) randomAS[i]=i;
+ return nTotalTiles;
+}
+function startSortAS(name) {
+ if (!asOk2Continue) {
+ sortName=name;
+ randomAS = new Array();
+ var f=this.getField("btn"+name+"pic");
+ if(f!=null)f.display=display.visible;
+ asOk2Continue = true;
+ mixupAS();
+ showAS();
+ sortoutAS();
+ }
+}
+function mixupAS()
+{
+ var i, rand, temp;
+ var nTotalTiles=initRandomDPS(sortName);
+ var ldps = randomAS.length;
+ for (i=1; i<= nTotalTiles; i++)
+ {
+ var rand = Math.random();
+ rand *= ldps*ldps;
+ rand = Math.ceil(rand);
+ rand = rand \% ldps;
+ if (rand == 0 ) rand = 1;
+ temp = randomAS[i];
+ randomAS[i]=randomAS[rand];
+ randomAS[rand]=temp;
+ }
+}
+function showAS()
+{
+ var I,J;
+ var nTotalTiles = iconObjs[sortName];
+ btnbase="btn"+sortName+"pic.";
+ iconbase=sortName+"pic";
+ for ( var i=1; i<=nTotalTiles; i++ )
+ {
+ I=((i<10)?"0":"")+i;
+ J=((randomAS[i]<10)?"0":"")+randomAS[i];
+ var oIcon = this.getIcon(iconbase+J);
+ var f = this.getField(btnbase+I);
+ f.buttonSetIcon(oIcon);
+ }
+}
+function sortoutAS()
+{
+ outerLoop(randomAS.length-1);
+}
+function outerLoop(i)
+{
+ if ( asOk2Continue && (i >= 0) )
+ shutdown = app.setTimeOut("app.clearTimeOut(shutdown); %
+innerLoop("+i+",1);", timeout);
+ else {
+ asOk2Continue=false;
+ \sortCustomFinishJS
+ }
+}
+function innerLoop(i,j)
+{
+ var I, J;
+ if ( j <= i )
+ {
+ if (randomAS[j-1] > randomAS[j])
+ {
+ var temp = randomAS[j-1];
+ randomAS[j-1] = randomAS[j];
+ randomAS[j] = temp;
+ J=((randomAS[j-1]<10)?"0":"")+randomAS[j-1];
+ I=((j-1 < 10)?"0":"")+(j-1);
+ var oIcon = this.getIcon(iconbase+J);
+ var f = this.getField(btnbase+I);
+ f.buttonSetIcon(oIcon);
+ J=((randomAS[j]<10)?"0":"")+randomAS[j];
+ I=((j < 10)?"0":"")+j;
+ var oIcon = this.getIcon(iconbase+J);
+ var f = this.getField(btnbase+I);
+ f.buttonSetIcon(oIcon);
+ }
+ j++
+ if ( asOk2Continue ) %
+shutdown = app.setTimeOut("app.clearTimeOut(shutdown); %
+innerLoop("+i+","+j+");", timeout);
+ }
+ else
+ {
+ i--;
+ outerLoop(i);
+ }
+}
+\end{insDLJS}
+\endinput
+%%
+%% End of file `acrosort.sty'.