%% %% This is file `aebpro.def', %% generated with the docstrip utility. %% %% The original source files were: %% %% aeb_pro.dtx (with options: `copyright,aebpro') %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% aeb_pro.sty package, %% %% Copyright (C) 2006--2021 D. P. Story %% %% dpstory@acrotex.net %% %% %% %% 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.2 of %% %% the License, or (at your option) any later version. %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \@tfor\aeb@windowopts:={{fit}{FitWindow}}{{center}{CenterWindow}}% {{fullscreen}{FullScreen}}{{showtitle}{DisplayDocTitle}}\do {% \expandafter\getargsii\aeb@windowopts \edef\temp@expand@def{% \noexpand\define@key{aebWindowOpts}{\aeb@argi}[true]{% \noexpand\def\csname aeb@windowopts\aeb@argii\endcsname{% /\aeb@argii\space##1}% }% }\temp@expand@def \csarg\let{aeb@windowopts\aeb@argii}\@empty } \newcommand{\setWindowOptions}[1]{\cxkvsetkeys{aebWindowOpts}{#1}} \@tfor\aeb@uiopts:={{hidetoolbar}{HideToolbar}} {{hidemenubar}{HideMenubar}}{{hidewindowui}{HideWindowUI}}\do{% \expandafter\getargsii\aeb@uiopts \edef\temp@expand@def{% \noexpand\define@key{aebUIOpts}{\aeb@argi}[true]% {% \noexpand\edef\csname aeb@uiopts\aeb@argii\endcsname{% /\aeb@argii\space##1}% }% }\temp@expand@def \csarg\let{aeb@uiopts\aeb@argii}\@empty } \newcommand{\setUIOptions}[1]{\cxkvsetkeys{aebUIOpts}{#1}} \define@choicekey+{aebLayoutMag}{navitab}{UseNone,UseOutlines,% UseThumbs,FullScreen,UseOC,UseAttachments}[UseNone]{% \def\aeb@layoutMagNaviTab{#1}% }{\PackageWarning{aeb}{Bad choice for PageLayout, permissible values are UseNone, UseOutlines, UseThumbs, FullScreen,% UseOC, UseAttachments. Try again}} \let\aeb@layoutMagNaviTab\@empty \define@choicekey+{aebLayoutMag}{pagelayout}{SinglePage,OneColumn,% TwoColumnLeft,TwoColumnRight,TwoPageLeft,TwoPageRight}[SinglePage]{% \def\aeb@layoutMagPageLayout{#1}% }{\PackageWarning{aeb}{Bad choice for PageLayout, permissible values are SinglePage, OneColumn, TwoColumnLeft, TwoColumnRight, TwoPageLeft,TwoPageRight. Try again}} \let\aeb@layoutMagPageLayout\@empty \define@choicekey+{aebLayoutMag}{mag}[\val\nr]% {ActualSize,FitPage,FitWidth,FitHeight,FitVisible}[FitPage]% {% \ifcase\nr\relax \edef\aeb@layoutMagMag{\dl@actualsize}\or \def\aeb@layoutMagMag{\dl@fitpage}\or \def\aeb@layoutMagMag{\dl@fitwidth}\or \def\aeb@layoutMagMag{\dl@fitheight}\or \def\aeb@layoutMagMag{\dl@fitvisible}\fi }{\setlength\@tempdima{1pt*\ratio{\val pt}{100pt}}% \edef\aeb@layoutMagMag{\dl@mag{\strip@pt\@tempdima}}} \let\aeb@layoutMagMag\@empty \define@key{aebLayoutMag}{openatpage}[1]{\def\aeb@openatpageChoice{#1}% \ifpdfmarkup\def\aeb@layoutMagPage{Page#1}\else \def\aeb@layoutMagPage{#1}\fi} \let\aeb@openatpageChoice\@empty \let\aeb@layoutMagPage\@empty \newcommand{\setLayoutMag}[1]{\setkeys{aebLayoutMag}{openatpage=1}% \cxkvsetkeys{aebLayoutMag}{#1}} \define@key{aebDeclareInitView}{layoutmag} {\def\aebDeclareInitView@layoutmag{#1}} \let\aebDeclareInitView@layoutmag\@empty \define@key{aebDeclareInitView}{windowoptions} {\def\aebDeclareInitView@windowoptions{#1}} \let\aebDeclareInitView@windowoptions\@empty \define@key{aebDeclareInitView}{uioptions} {\def\aebDeclareInitView@uioptions{#1}} \let\aebDeclareInitView@uioptions\@empty \newcommand{\DeclareInitView}[1]{% \setkeys{aebDeclareInitView}{#1}% \edef\temp@expand@sets{% \noexpand\setLayoutMag{\aebDeclareInitView@layoutmag}% \noexpand\setWindowOptions{\aebDeclareInitView@windowoptions}% \noexpand\setUIOptions{\aebDeclareInitView@uioptions}% }\temp@expand@sets } \providecommand{\taggedPDF}{\def\aeb@TaggedPDF{true}} \let\aeb@TaggedPDF\@empty \@onlypreamble\taggedPDF \let\aeb@addOpenAction\@empty \let\aeb@addActionCode\@empty \let\aeb@addOpenActionArg\@empty \def\AEB@psMrk{[\space} \let\aebpopentoks\@empty \let\aebpFA\aebp@NO \def\aebp@rightDelimiters{} \let\@pdfstartview\@empty \let\@pdfstartpage\@empty \renewcommand{\addToDocOpen}[1]{% \ifx\aebpFA\aebp@NO \gdef\aeb@addOpenActionArg{#1}% \g@addto@macro\aebpopentoks{#1}% \def\aeb@addActionCode{\bgroup\makeJSspecials\dl@preProcDefns \ifpdfmarkup \literalps@out{\AEB@psMrk/_objdef {pubAddToDocOpen} /type/dict /OBJ pdfmark^^J% \AEB@psMrk{pubAddToDocOpen} << \aebpopentoks \ifx\dev@addOpenAction\@empty\else \ifx\aeb@addOpenActionArg\@empty\else^^J% \dev@addOpenAction\fi\fi\aebp@rightDelimiters >> /PUT pdfmark}% \gdef\pubAddToDocOpen{{pubAddToDocOpen}}% \xdef\aeb@addOpenAction{/Next \pubAddToDocOpen}% \else\ifpdf \immediate\pdfobj{<< \aebpopentoks \ifx\dev@addOpenAction\@empty\else \ifx\aeb@addOpenActionArg\@empty\else^^J% \dev@addOpenAction\fi\fi\aebp@rightDelimiters >>}\xdef\pubAddToDocOpen{\the\pdflastobj\space 0 R}% \xdef\aeb@addOpenAction{/Next \pubAddToDocOpen}% \else\ifxetex \immediate\@pdfm@mark{obj @pubAddToDocOpen << \aebpopentoks \ifx\dev@addOpenAction\@empty\else \ifx\aeb@addOpenActionArg\@empty\else^^J% \dev@addOpenAction\fi\fi\aebp@rightDelimiters >> }% \gdef\pubAddToDocOpen{@pubAddToDocOpen}% \xdef\aeb@addOpenAction{/Next \pubAddToDocOpen}% \fi\fi\fi\egroup}% \global\let\aebpFA\aebp@YES \else \edef\aebp@dljstmp{\aebp@rightDelimiters}% \xdef\aebp@rightDelimiters{\aebp@dljstmp >> }% \g@addto@macro\aebpopentoks{/Next << #1 }% \fi } \let\additionalOpenAction\addToDocOpen \let\dev@addOpenAction\@empty \let\dev@addOpenActionArg\@empty \let\dev@addActionCode\@empty \let\aebpFAP\aebp@NO \let\aebpopentoksP\@empty \def\aebp@rightDelimitersP{} \newcommand{\dev@addToDocOpen}[1]{% \ifx\aebpFAP\aebp@NO \gdef\dev@addOpenActionArg{#1}% \g@addto@macro\aebpopentoksP{#1}% \def\dev@addActionCode{\bgroup\makeJSspecials\dl@preProcDefns \ifpdfmarkup \literalps@out{\AEB@psMrk/_objdef {privAddDocOpen} /type/dict /OBJ pdfmark^^J% \AEB@psMrk{privAddDocOpen} << \aebpopentoksP \aebp@rightDelimitersP\space>> /PUT pdfmark}% \gdef\privAddDocOpen{{privAddDocOpen}}% \gdef\dev@addOpenAction{/Next {privAddDocOpen}}% \else\ifpdf \immediate\pdfobj{<< \aebpopentoksP \aebp@rightDelimitersP\space>>}% \xdef\privAddDocOpen{\the\pdflastobj\space 0 R}% \xdef\dev@addOpenAction{/Next \privAddDocOpen}% \else\ifxetex \immediate\@pdfm@mark{obj @privAddToDocOpen << \aebpopentoksP \aebp@rightDelimitersP\space>> }% \gdef\privAddDocOpen{@privAddToDocOpen}% \gdef\dev@addOpenAction{/Next \privAddDocOpen}% \fi\fi\fi\egroup}% \global\let\aebpFAP\aebp@YES \else \edef\aebp@dljstmpP{\aebp@rightDelimitersP}% \xdef\aebp@rightDelimitersP{\aebp@dljstmpP >> }% \g@addto@macro\aebpopentoksP{/Next << #1 }% \fi } \def\aebp@warnonly{warnonly} \newcommand{\aebp@app@title}{AcroTeX Message} \newcommand{\requiresVersion}[2][]{\def\aebp@argi{#1}% \def\requiredVersionNumber{#2}\dev@addToDocOpen{\JS{% \ifx\aebp@argi\aebp@warnonly var warnOnly=true; \else var warnOnly=false; \fi var reqVerMsgC=("\aeb@requiredVersionMsg\space") + ((warnOnly) ? ("\aeb@reqVerMsgW") : ("\aeb@reqVerMsgC")); var reqVerMsgR=("\aeb@requiredVersionMsgRedirect\space") + ((warnOnly) ? ("\aeb@reqVerMsgW") : ("\aeb@reqVerMsgR")); if( app.viewerVersion < #2 ) { var viewerPassedReq=false; try { if (this.external) { app.alert({cTitle:"\aebp@app@title", cMsg: reqVerMsgR}); if (!warnOnly) { if (app.viewerVersion >= 7.0) app.launchURL("\aebAlternateDocumentURL"); else this.getURL("\aebAlternateDocumentURL",false); } } else { app.alert({cTitle:"\aebp@app@title", cMsg: reqVerMsgC}); if (!warnOnly) this.closeDoc(true); } } catch(e) {} } else { var viewerPassedReq=true; \aeb@ViewerPassedRequirementJS } }}} \def\requiredVersionNumber{7} \newcommand{\alternateDocumentURL}[1]{\def\aebAlternateDocumentURL{#1}} \alternateDocumentURL{http://www.acrotex.net/} \newcommand{\requiredVersionMsg}[1]{\def\aeb@requiredVersionMsg{#1}} \requiredVersionMsg{This document requires Adobe Reader or Acrobat, version \requiredVersionNumber\space or later.} \newcommand{\requiredVersionResult}[3]{\def\aeb@reqVerMsgC{#1}% \def\aeb@reqVerMsgR{#2}\def\aeb@reqVerMsgW{#3}} \requiredVersionResult{The document is now closing.} {Redirecting browser to an alternate page.} {Some features of this document may not work properly.} \newcommand{\requiredVersionMsgRedirect}[1]{% \def\aeb@requiredVersionMsgRedirect{#1}} \requiredVersionMsgRedirect{% This document requires Adobe Reader or Acrobat, version \requiredVersionNumber\space or later.} \newcommand{\afterRequirementPassedJS}[1]{% \def\aeb@ViewerPassedRequirementJS{#1}} \let\aeb@ViewerPassedRequirementJS\@empty \def\aeb@SetCatalog{% \ifx\aebpFA\aebp@NO\addToDocOpen{\JS{;}}\fi \ifx\aebpFAP\aebp@YES\dev@addActionCode\fi \aeb@addActionCode \def\aeb@CatEntry{/ViewerPreferences<<% \ifx\aeb@windowoptsFitWindow\@empty\else \aeb@windowoptsFitWindow\fi \ifx\aeb@windowoptsCenterWindow\@empty\else \aeb@windowoptsCenterWindow\fi \ifx\aeb@windowoptsDisplayDocTitle\@empty\else \aeb@windowoptsDisplayDocTitle\fi \ifx\aeb@uioptsHideToolbar\@empty\else \aeb@uioptsHideToolbar\fi \ifx\aeb@uioptsHideMenubar\@empty\else \aeb@uioptsHideMenubar\fi \ifx\aeb@uioptsHideWindowUI\@empty\else \aeb@uioptsHideWindowUI\fi \ifx\aeb@layoutMagNaviTab\@empty\else /NonFullScreenPageMode/\aeb@layoutMagNaviTab\fi >>% \ifx\aeb@TaggedPDF\@empty\else /MarkInfo<>\fi \ifx\aeb@layoutMagPageLayout\@empty\else /PageLayout/\aeb@layoutMagPageLayout\fi \ifx\aeb@windowoptsFullScreen\@empty \ifx\aeb@layoutMagNaviTab\@empty\else /PageMode/\aeb@layoutMagNaviTab\fi \else/PageMode/FullScreen\fi \ifpdfmarkup \ifx\aeb@layoutMagPage\@empty \ifx\aeb@layoutMagMag\@empty /OpenAction \pubAddToDocOpen \else/OpenAction<>\fi \else \ifx\aeb@layoutMagMag\@empty /OpenAction<>\else /OpenAction<>\fi \fi \else\ifpdf \ifx\aeb@layoutMagPage\@empty \ifx\aeb@layoutMagMag\@empty /OpenAction \pubAddToDocOpen \else/OpenAction <<% /D[\pdfpageref1\space\space 0 R\aeb@layoutMagMag]% /S/GoTo\aeb@addOpenAction>>\fi \else \ifx\aeb@layoutMagMag\@empty /OpenAction<>\else /OpenAction<>\fi \fi \else\ifxetex \ifx\aeb@layoutMagPage\@empty \ifx\aeb@layoutMagMag\@empty /OpenAction \pubAddToDocOpen \else/OpenAction<>\fi \else \ifx\aeb@layoutMagMag\@empty /OpenAction<>\else /OpenAction<<% /D[@page\aeb@layoutMagPage\space\aeb@layoutMagMag]% /S/GoTo\aeb@addOpenAction>>\fi \fi \fi\fi\fi}% \ifpdfmarkup\literalps@out{\AEB@psMrk{Catalog} <<\aeb@CatEntry>> /PUT pdfmark}\else \ifpdf\pdfcatalog{\aeb@CatEntry}\else \ifxetex\immediate\@pdfm@mark{put @catalog <<\aeb@CatEntry>>}% \fi\fi\fi } \AtBeginDocument{\aeb@SetCatalog} \newcommand{\setDefaultFS}[1] {% \setkeys{aebDefFS}{Trans=Replace}\setkeys{aebDefFS}{#1}% \makeatletter \InputIfFileExists{fsprodef.js}{}{\PackageWarning{aeb_pro} {Cannot find fsprodef.js, please run aeb_pro.ins again}} \makeatother } \@onlypreamble\setDefaultFS \def\aeb@NoTransition{NoTransition} \define@choicekey+{aebDefFS}{Trans} {NoTransition,UncoverLeft,UncoverRight,UncoverDown,UncoverUp,% UncoverLeftDown,UncoverLeftUp,UncoverRightDown,UncoverRightUp,% CoverLeft,CoverRight,CoverDown,CoverUp,CoverLeftDown,CoverLeftUp,% CoverRightDown,CoverRightUp,PushLeft,PushRight,PushDown,PushUp,% PushLeftDown,PushLeftUp,PushRightDown,PushRightUp,FlyInRight,% FlyInLeft,FlyInDown,FlyInUp,FlyOutRight,FlyOutLeft,FlyOutDown,% FlyOutUp,FlyIn,FlyOut,Blend,Fade,Random,Dissolve,% GlitterRight,GlitterDown,GlitterRightDown,BoxIn,BoxOut,% BlindsHorizontal,BlindsVertical,SplitHorizontalIn,% SplitHorizontalOut,SplitVerticalIn,SplitVerticalOut,WipeLeft,% WipeRight,WipeDown,WipeUp,WipeLeftDown,WipeLeftUp,% WipeRightDown,WipeRightUp,Replace,ZoomInDown,ZoomInLeft,% ZoomInLeftDown,ZoomInLeftUp,ZoomInRight,ZoomInRightDown,% ZoomInRightUp,ZoomInUp,ZoomOutDown,ZoomOutLeft,ZoomOutLeftDown,% ZoomOutLeftUp,ZoomOutRight,ZoomOutRightDown,ZoomOutRightUp,% ZoomOutUp,CombHorizontal,CombVertical}[Replace]{% \def\aeb@arg{#1}\ifx\aeb@arg\@empty \let\aeb@fsTran\@empty\else \ifx\aeb@arg\aeb@NoTransition \def\aeb@fsTran{app.fs.defaultTransition = "";^^J} \else \def\aeb@fsTran{app.fs.defaultTransition = "#1";^^J}\fi\fi} {\PackageWarning{aeb}{Bad choice, try again. Meanwhile, will use the default, Replace}% \def\aeb@fsTran{app.fs.defaultTransition = "Replace";^^J}} \define@key{aebDefFS}{bgColor}[]{% \def\aeb@arg{#1}\ifx\aeb@arg\@empty \let\aeb@fsBGColor\@empty\else \def\aeb@fsBGColor{app.fs.backgroundColor = #1;^^J}\fi} \let\aeb@fsBGColor\@empty \define@key{aebDefFS}{timeDelay}[]{% \def\aeb@arg{#1}\ifx\aeb@arg\@empty \let\aeb@fstimeDelay\@empty\else \def\aeb@fstimeDelay{app.fs.timeDelay = #1;^^J}\fi} \let\aeb@fstimeDelay\@empty \define@boolkey{aebDefFS}{loop}[true]{% \def\aeb@fsLoop{app.fs.loop = #1;^^J}} \let\aeb@fsLoop\@empty \define@choicekey+{aebDefFS}{cursor}{hidden,delay,visible}{% \def\aeb@arg{#1}\ifx\aeb@arg\@empty \let\aeb@fscursor\@empty\else \def\aeb@fscursor{app.fs.cursor = cursor.#1;^^J}\fi }{\PackageWarning{aeb}{Bad choice for cursor, permissible values are hidden, delay and visible. Try again}} \let\aeb@fscursor\@empty \define@boolkey{aebDefFS}{escape}[true]{% \def\aeb@fsEscape{app.fs.escapeExits = #1;^^J}} \let\aeb@fsEscape\@empty \define@boolkey{aebDefFS}{clickAdv}[true]{% \def\aeb@fsclickAdv{app.fs.clickAdvances = #1;^^J}} \let\aeb@fsclickAdv\@empty \define@boolkey{aebDefFS}{fullscreen}[true]{% \def\aeb@windowoptsFullScreen{true}% } \let\aeb@fsFS\@empty \define@boolkey{aebDefFS}{useTimer}[true]{% \def\aeb@fsuseTimer{app.fs.useTimer = #1;^^J}} \let\aeb@fsuseTimer\@empty \define@boolkey{aebDefFS}{usePageTiming}[true]{% \def\aeb@fsusePageTiming{app.fs.usePageTiming = #1;^^J}} \let\aeb@fsusePageTiming\@empty \def\aebp@PageTransCnt{0} \def\aebp@Step@PageTransCnt{{\count0=\aebp@PageTransCnt\relax \advance\count0by1\relax \xdef\aebp@PageTransCnt{\the\count0 }}} \newcommand{\setPageTransition}[1]{% \begingroup \aebp@Step@PageTransCnt \setkeys{aebTrans}{TransDur,Speed,#1}% \edef\aeb@pagetranschoices{\aeb@Page@Dur /Trans <<\aeb@Trans@Dur\aeb@TranChoice>>}% \csarg{\xdef}{aeb@pagetransCodeL\aebp@PageTransCnt}{% \ifpdfmarkup \noexpand\literalps@out{\AEB@psMrk{ThisPage} << \aeb@pagetranschoices\space>> /PUT pdfmark}% \else\ifpdf \noexpand\global\noexpand\pdfpageattr=\noexpand\expandafter {\noexpand\the\noexpand\pdfpageattr\aeb@pagetranschoices}% \else\ifxetex \noexpand\immediate\noexpand\@pdfm@mark{put @thispage << \aeb@pagetranschoices\space >>} \fi\fi\fi } \ifx\aeb@TranChoice\@empty\else \csarg\xdef{aebpP@geTr@nsP@ge\arabic{page}}% {\noexpand\@nameuse{aeb@pagetransCodeL\aebp@PageTransCnt}}% \fi \endgroup } \newcommand{\setPageTransitionAt}[2]{% \begingroup \aebp@Step@PageTransCnt \setkeys{aebTrans}{#2}% \edef\aeb@pagetranschoices{\aeb@Page@Dur /Trans <<\aeb@Trans@Dur\aeb@TranChoice>>}% \csarg{\xdef}{aeb@pagetransCode\aebp@PageTransCnt}{% \ifpdfmarkup \noexpand\literalps@out{\AEB@psMrk{ThisPage} << \aeb@pagetranschoices\space>> /PUT pdfmark}% \else\ifpdf \noexpand\global\noexpand\pdfpageattr=\noexpand\expandafter {\noexpand\the\noexpand\pdfpageattr\aeb@pagetranschoices}% \else\ifxetex \noexpand\immediate\noexpand\@pdfm@mark{put @thispage << \aeb@pagetranschoices\space>>} \fi\fi\fi } \ifx\aeb@TranChoice\@empty\else \expandafter\aebp@rse\expandafter{#1}% \edef\shakeandbake{% \noexpand\@for\noexpand\@mypage:=\the\aeb@parsetoks}% \shakeandbake \do {% \csarg\xdef{aebpP@geTr@nsP@ge\@mypage}% {\noexpand\@nameuse{aeb@pagetransCode\aebp@PageTransCnt}}% }% \fi \endgroup } \define@choicekey+{aebTrans}{Trans} {NoTransition,UncoverLeft,UncoverRight,UncoverDown,UncoverUp,% UncoverLeftDown,UncoverLeftUp,UncoverRightDown,UncoverRightUp,% CoverLeft,CoverRight,CoverDown,CoverUp,CoverLeftDown,CoverLeftUp,% CoverRightDown,CoverRightUp,PushLeft,PushRight,PushDown,PushUp,% PushLeftDown,PushLeftUp,PushRightDown,PushRightUp,FlyInRight,% FlyInLeft,FlyInDown,FlyInUp,FlyOutRight,FlyOutLeft,FlyOutDown,% FlyOutUp,FlyIn,FlyOut,Blend,Fade,Random,Dissolve,% GlitterRight,GlitterDown,GlitterRightDown,BoxIn,BoxOut,% BlindsHorizontal,BlindsVertical,SplitHorizontalIn,% SplitHorizontalOut,SplitVerticalIn,SplitVerticalOut,WipeLeft,% WipeRight,WipeDown,WipeUp,WipeLeftDown,WipeLeftUp,% WipeRightDown,WipeRightUp,Replace,ZoomInDown,ZoomInLeft,% ZoomInLeftDown,ZoomInLeftUp,ZoomInRight,ZoomInRightDown,% ZoomInRightUp,ZoomInUp,ZoomOutDown,ZoomOutLeft,ZoomOutLeftDown,% ZoomOutLeftUp,ZoomOutRight,ZoomOutRightDown,ZoomOutRightUp,% ZoomOutUp,CombHorizontal,CombVertical}[Replace]% {\edef\aeb@TranChoice{\csname aeb@Trans@#1\endcsname}% }{\PackageWarning{aeb}{Bad choice, try again}} \let\aeb@TranChoice\@empty \define@key{aebTrans}{TransDur}[]{\def\aeb@arg{#1}\ifx\aeb@arg\@empty \let\aeb@Trans@Dur\@empty\else\def\aeb@Trans@Dur{/D #1}\fi} \let\aeb@Trans@Dur\@empty \define@choicekey+{aebTrans}{Speed}[\val\nr]% {Slow,Medium,Fast}[Slow]{%dps/change 02/27/07 \ifcase\nr\relax \let\aeb@Trans@Speed\@empty\or \def\aeb@Trans@Speed{/D 0.666656}\or \def\aeb@Trans@Speed{/D 0.333328}\fi }{\PackageWarning{aeb}{Bad choice for Speed, permissible values are Slow, Medium and Fast. Try again}} \let\apb@apbTrans@Speed\@empty \define@key{aebTrans}{PageDur}[]{\def\aeb@arg{#1}\ifx\aeb@arg\@empty \let\aeb@Page@Dur\@empty\else\def\aeb@Page@Dur{/Dur #1}\fi} \let\aeb@Page@Dur\@empty \def\aeb@Trans@NoTransition{} \def\aeb@Trans@SplitHorizontalIn{/Dm/H/M/I/S/Split} \def\aeb@Trans@SplitHorizontalOut{/Dm/H/M/O/S/Split} \def\aeb@Trans@SplitVerticalIn{/Dm/V/M/I/S/Split} \def\aeb@Trans@SplitVerticalOut{/Dm/V/M/O/S/Split} \def\aeb@Trans@BlindsHorizontal{/Dm/H/S/Blinds} \def\aeb@Trans@BlindsVertical{/Dm/V/S/Blinds} \def\aeb@Trans@BoxIn{/M/I/S/Box} \def\aeb@Trans@BoxOut{/M/O/S/Box} \def\aeb@Trans@WipeLeft{/Di 180/S/Wipe} \def\aeb@Trans@WipeRight{/Di 0/S/Wipe} \def\aeb@Trans@WipeDown{/Di 270/S/Wipe} \def\aeb@Trans@WipeUp{/Di 90/S/Wipe} \def\aeb@Trans@Dissolve{/S/Dissolve} \def\aeb@Trans@GlitterRight{/Di 0/S/Glitter} \def\aeb@Trans@GlitterDown{/Di 270/S/Glitter} \def\aeb@Trans@GlitterRightDown{/Di 315/S/Glitter} \def\aeb@Trans@Replace{/S/R} \def\aeb@Trans@FlyInRight{/Di 0/M/I/S/Fly} \def\aeb@Trans@FlyInLeft{/Di 180/M/I/S/Fly} \def\aeb@Trans@FlyInDown{/Di 270/M/I/S/Fly} \def\aeb@Trans@FlyInUp{/Di 90/M/I/S/Fly} \def\aeb@Trans@FlyOutRight{/Di 0/M/O/S/Fly} \def\aeb@Trans@FlyOutLeft{/Di 180/M/O/S/Fly} \def\aeb@Trans@FlyOutDown{/Di 270/M/O/S/Fly} \def\aeb@Trans@FlyOutUp{/Di 90/M/O/S/Fly} \def\aeb@Trans@FlyIn{/M/I/S/Fly} \def\aeb@Trans@FlyOut{/M/O/S/Fly} \def\aeb@Trans@PushLeft{/Di 180/S/Push} \def\aeb@Trans@PushRight{/Di 0/S/Push} \def\aeb@Trans@PushDown{/Di 270/S/Push} \def\aeb@Trans@PushUp{/Di 90/S/Push} \def\aeb@Trans@CoverLeft{/Di 180/S/Cover} \def\aeb@Trans@CoverRight{/Di 0/S/Cover} \def\aeb@Trans@CoverDown{/Di 270/S/Cover} \def\aeb@Trans@CoverUp{/Di 90/S/Cover} \def\aeb@Trans@CoverLeftDown{/Di 225.0/S/Cover} \def\aeb@Trans@CoverLeftUp{/Di 135.0/S/Cover} \def\aeb@Trans@CoverRightDown{/Di 315.0/S/Cover} \def\aeb@Trans@CoverRightUp{/Di 45.0/S/Cover} \def\aeb@Trans@UncoverLeft{/Di 180/S/Uncover} \def\aeb@Trans@UncoverRight{/Di 0/S/Uncover} \def\aeb@Trans@UncoverDown{/Di 270/S/Uncover} \def\aeb@Trans@UncoverUp{/Di 90/S/Uncover} \def\aeb@Trans@UncoverLeftDown{/Di 225.0/S/Uncover} \def\aeb@Trans@UncoverLeftUp{/Di 135.0/S/Uncover} \def\aeb@Trans@UncoverRightDown{/Di 315.0/S/Uncover} \def\aeb@Trans@UncoverRightUp{/Di 45.0/S/Uncover} \def\aeb@Trans@Fade{/S/Fade} \def\aeb@Trans@Random{/S/Random} \def\aeb@Trans@Blend{/S/Blend} \def\aeb@Trans@PushLeftDown{% /S/Push/Directional/BiDir/Di 225.0/Curve/Easy} \def\aeb@Trans@PushLeftUp{% /S/Push/Directional/BiDir/Di 135.0/Curve/Easy} \def\aeb@Trans@PushRightDown{% /S/Push/Directional/BiDir/Di 315.0/Curve/Easy} \def\aeb@Trans@PushRightUp{% /S/Push/Directional/BiDir/Di 45.0/Curve/Easy} \def\aeb@Trans@WipeLeftDown{% /S/Wipe/Directional/BiDir/Di 225/Curve/Easy} \def\aeb@Trans@WipeLeftUp{% /S/Wipe/Directional/BiDir/Di 135/Curve/Easy} \def\aeb@Trans@WipeRightDown% {/S/Wipe/Directional/BiDir/Di 315/Curve/Easy} \def\aeb@Trans@WipeRightUp{% /S/Wipe/Directional/BiDir/Di 45/Curve/Easy} \def\aeb@Trans@ZoomInDown{% /S/ZoomIn/Directional/BiDir/Di 270.0/Curve/Easy} \def\aeb@Trans@ZoomInLeft{% /S/ZoomIn/Directional/BiDir/Di 180.0/Curve/Easy} \def\aeb@Trans@ZoomInLeftDown{% /S/ZoomIn/Directional/BiDir/Di 225.0/Curve/Easy} \def\aeb@Trans@ZoomInLeftUp{% /S/ZoomIn/Directional/BiDir/Di 135.0/Curve/Easy} \def\aeb@Trans@ZoomInRight{% /S/ZoomIn/Directional/BiDir/Di 0.0/Curve/Easy} \def\aeb@Trans@ZoomInRightDown{% /S/ZoomIn/Directional/BiDir/Di 315.0/Curve/Easy} \def\aeb@Trans@ZoomInRightUp{% /S/ZoomIn/Directional/BiDir/Di 45.0/Curve/Easy} \def\aeb@Trans@ZoomInUp{% /S/ZoomIn/Directional/BiDir/Di 90.0/Curve/Easy} \def\aeb@Trans@ZoomOutDown{% /S/ZoomOut/Directional/BiDir/Di 270.0/Curve/Easy} \def\aeb@Trans@ZoomOutLeft{% /S/ZoomOut/Directional/BiDir/Di 180.0/Curve/Easy} \def\aeb@Trans@ZoomOutLeftDown{% /S/ZoomOut/Directional/BiDir/Di 225.0/Curve/Easy} \def\aeb@Trans@ZoomOutLeftUp{% /S/ZoomOut/Directional/BiDir/Di 135.0/Curve/Easy} \def\aeb@Trans@ZoomOutRight{% /S/ZoomOut/Directional/BiDir/Di 0.0/Curve/Easy} \def\aeb@Trans@ZoomOutRightDown{% /S/ZoomOut/Directional/BiDir/Di 315.0/Curve/Easy} \def\aeb@Trans@ZoomOutRightUp{% /S/ZoomOut/Directional/BiDir/Di 45.0/Curve/Easy} \def\aeb@Trans@ZoomOutUp{% /S/ZoomOut/Directional/BiDir/Di 90.0/Curve/Easy} \def\aeb@Trans@CombHorizontal{% /S/Comb/Directional/BiDir/Dm/H/Curve/Easy} \def\aeb@Trans@CombVertical{% /S/Comb/Directional/BiDir/Dm/V/Curve/Easy} \def\canceleveryPageOpen{\global\@everyPageOpenfalse \global\let\every@PageOpen\@empty} \def\canceleveryPageClose{\global\@everyPageClosefalse \global\let\every@PageClose\@empty} \newenvironment{everyPageOpen}[1][] {\global\@everyPageOpentrue\@defineJS[#1]{\every@PageOpen}} {\end@defineJS \ifnum\value{page}=\@ne \gdef\ap@AddtoOpenJS{\thisPageAction{\JS{\every@PageOpen}}{}}% \expandafter\aftergroup\expandafter\ap@AddtoOpenJS\fi } \newenvironment{everyPageClose}[1][] {\global\@everyPageClosetrue\@defineJS[#1]{\every@PageClose}} {\end@defineJS \ifnum\value{page}=\@ne \gdef\ap@AddtoCloseJS{\thisPageAction{}{\JS{\every@PageClose}}}% \expandafter\aftergroup\expandafter\ap@AddtoCloseJS\fi } \let\every@PageOpen\@empty \let\every@PageClose\@empty \newenvironment{addJSToPageOpen}[1][] {\@defineJS[#1]{\addJST@PageOpen}}{\end@defineJS \ifnum\value{page}=\@ne \gdef\ap@AddtoOpenJS{\thisPageAction{\JS{\addJST@PageOpen}}{}}% \expandafter\aftergroup\expandafter\ap@AddtoOpenJS\fi } \newenvironment{addJSToPageOpenAt}[2][] {\@@defineJS[#1]{addJST@PageOpenAt}{#2}}{\end@@defineJS \ifnum\value{page}=\@ne\if\frstPageSpec\aebp@YES \thisPageAction{\JS{\@nameuse{addJST@PageOpenAt1}}}{}\fi\fi } \newenvironment{addJSToPageClose}[1][] {\pdfSpacesOff\@defineJS[#1]{\addJST@PageClose}}{\end@defineJS \ifnum\value{page}=\@ne \gdef\ap@AddtoCloseJS{% \thisPageAction{}{\JS{\addJST@PageClose}}}% \expandafter\aftergroup\expandafter\ap@AddtoCloseJS\fi } \newenvironment{addJSToPageCloseAt}[2][] {\pdfSpacesOff\@@defineJS[#1]{addJST@PageCloseAt}{#2}}{\end@@defineJS \ifnum\value{page}=\@ne\if\frstPageSpec\aebp@YES \thisPageAction{}{\JS{\@nameuse{addJST@PageCloseAt1}}}\fi\fi } \let\addJST@PageOpen\@empty \let\addJST@PageClose\@empty \def\aebp@PageOpenCloseHandler{% \@ifundefined{addJST@PageOpenAt\arabic{page}}% {\global\let\thisOpenPageActionAt\@empty}% {\gdef\thisOpenPageActionAt{% \@nameuse{addJST@PageOpenAt\arabic{page}}}}% \@ifundefined{addJST@PageCloseAt\arabic{page}}% {\global\let\thisClosePageActionAt\@empty}% {\gdef\thisClosePageActionAt{% \@nameuse{addJST@PageCloseAt\arabic{page}}}}% \ifx\addJST@PageOpen\@empty\def\x{}\else\def\x{^^J}\fi \ifx\addJST@PageClose\@empty\def\y{}\else\def\y{^^J}\fi \aebPageAction{\thisOpenPageActionAt\x\addJST@PageOpen}% {\thisClosePageActionAt\y\addJST@PageClose}% \global\let\addJST@PageOpen\@empty \global\let\addJST@PageClose\@empty } \def\aebp@PageTransHandler{\@ifundefined{aebpP@geTr@nsP@ge\arabic{page}} {}{\@nameuse{aebpP@geTr@nsP@ge\arabic{page}}}} \AddToShipoutPicture{\aebp@PageOpenCloseHandler\aebp@PageTransHandler} \newenvironment{@@defineJS}[3][] {% \@initdfnJS \gdef\argType{#2}\gdef\defineJSArg{#3}\JStoks={}\dlfortypesetfalse \@vrbsetupdfnJS\b@vrbdfnJS{#1}% }{% \expandafter\aebp@rse\expandafter{\defineJSArg}% \edef\sh@keandbake{\noexpand \@for\noexpand\@mytoks:=\the\aeb@parsetoks}% \aeb@parsecnt=\z@\sh@keandbake\do{% \ifnum\aeb@parsecnt=\z@ \edef\firsttok{\@mytoks}% \csarg\xdef{\argType\@mytoks}{\the\JStoks}% \else \edef\letsmakelet{\global\let\expandafter\noexpand \csname\argType\@mytoks\endcsname=\expandafter\noexpand \csname\argType\firsttok\endcsname}\letsmakelet \fi \advance\aeb@parsecnt\@ne }% } \newif\ifaeb@PageOpen \newif\ifaeb@PageClose \newif\if@everyPageOpen\@everyPageOpenfalse \newif\if@everyPageClose\@everyPageClosefalse \newcommand\aebPageAction[3][ThisPage]{% \def\@activechar@info{\pdfSP\@gobbletwo}\let\ispageactions\aebp@Zero \aeb@PageOpenfalse\aeb@PageClosefalse \def\@aebOpen{#2}% \if1\@aebOpen1% \if@everyPageOpen \aeb@PageOpentrue\let\ispageactions\aebp@One \def\@aebOpen{/O << \JS{\every@PageOpen#2} >>}\fi \else \let\ispageactions\aebp@One \aeb@PageOpentrue \def\@aebOpen{/O << \JS{\every@PageOpen^^J#2} >>}% \fi \def\@aebClose{#3}% \if1\@aebClose1% \if@everyPageClose \aeb@PageClosetrue\let\ispageactions\aebp@One \def\@aebClose{/C << \JS{\every@PageClose#3} >>}\fi \else \let\ispageactions\aebp@One \aeb@PageClosetrue \def\@aebClose{/C << \JS{\every@PageClose^^J#3} >>}% \fi \if@everyPageOpen\aeb@PageOpentrue\let\ispageactions\aebp@One\fi \if@everyPageClose\@everyPageClosetrue\let\ispageactions\aebp@One\fi \if\ispageactions\aebp@One \xdef\aebp@PageActionCode{/AA << \ifaeb@PageOpen\@aebOpen\space\fi \ifaeb@PageClose\@aebClose\space\fi >>}% \ifnum\value{page}=\@ne\else \ifpdfmarkup\literalps@out{\AEB@psMrk{#1} << \aebp@PageActionCode\space >> /PUT pdfmark}\else \ifpdf\global\pdfpageattr=\expandafter {\aebp@PageActionCode}\else \ifxetex\@pdfm@mark{put @thispage << \aebp@PageActionCode\space>>}\fi\fi\fi \fi \fi } \def\aeb@exiii{\expandafter\expandafter\expandafter} \let\ahrefexafter\aeb@exiii \def\atPage#1{\@ifundefined{r@#1}{1} {\aeb@exiii\@secondoffive\csname r@#1\endcsname}} \def\labelRef#1{\@ifundefined{r@#1}{Doc-Start} {\aeb@exiii\@fourthoffive\csname r@#1\endcsname}} \newtoks\aeb@parsetoks \newcount\aeb@parsecnt \def\ap@gobtonil#1\@nil{} \def\ap@gettonil#1\@nil{\def\to@nilarg{#1}} \def\ap@ifspc{\ifx\@let@token\@sptoken \let\ap@next\ap@xifspc\else \let\ap@next\ap@gettonil\fi\ap@next} \begingroup \def\:{\ap@xifspc} \expandafter\gdef\: {\futurelet\@let@token\ap@ifspc} \endgroup \def\ap@strpspcs{\futurelet\@let@token\ap@ifspc} \def\ap@pgrngLabelsInPream{\@ifundefined{aebLastPage} {\PackageWarning{aeb_pro}{The \string\atPage\space command is not supported\MessageBreak in the preamble}}{}} \def\aeb@removelastcomma#1,\@nil{\aeb@parsetoks={#1}} \def\aebp@rse#1{\global\let\frstPageSpec\aebp@NO \aeb@parsetoks={}\aeb@parse#1,\relax} \def\aeb@parse{\@ifnextchar\relax {\expandafter\aeb@removelastcomma\the\aeb@parsetoks\@nil} {\aeb@@parse}} \def\aeb@@parse#1,{\aeb@@@parse#1-\@nil} \def\aeb@@@parse#1-#2\@nil{% \def\argi{#2}\ifx\argi\@empty\def\aeb@next{\aeb@@@@parse{#1}}\else \def\aeb@next{\aeb@@@@@parse#1-#2}\fi\aeb@next} \def\aeb@@@@parse#1{%single page #1 \@ifnextchar\atPage{\ap@pgrngLabelsInPream\ap@gobtonil} {\ap@gobtonil}#1\@nil \aeb@parsecnt=#1\relax \edef\edefaeb@parsetoks{\the\aeb@parsetoks\the\aeb@parsecnt,}% \aeb@parsetoks=\expandafter{\edefaeb@parsetoks}% \ifnum\aeb@parsecnt=1\relax\global\let\frstPageSpec\aebp@YES\fi \aeb@parse} \def\aeb@@@@@parse#1-#2-{\def\aeb@lowerlimit{#1}\def\aeb@upperlimit{#2}% % range argument from #1 to \csname aebLastPage\endcsname \ifx\aeb@upperlimit\@empty \@ifundefined{aebLastPage}{\aeb@parsecnt=#1} {\expandafter\aeb@parsecnt\expandafter= \csname aebLastPage\endcsname}% \else % page range #1 to #2, switch the two if #2 < #1 \aeb@parsecnt=\aeb@lowerlimit\relax \edef\aeb@lowerlimit{\the\aeb@parsecnt} \aeb@parsecnt=\aeb@upperlimit\relax \ifnum\aeb@parsecnt<\aeb@lowerlimit\relax \aeb@parsecnt=\aeb@lowerlimit\relax \def\aeb@lowerlimit{#2}% \def\aeb@upperlimit{#1}% \fi \fi \@ifnextchar\atPage{\ap@pgrngLabelsInPream\ap@gobtonil} {\ap@gobtonil}#1\@nil \@ifnextchar\atPage{\ap@pgrngLabelsInPream\ap@gobtonil} {\ap@gobtonil}#2\@nil \advance\aeb@parsecnt1\relax \edef\aeb@upperlimit{\the\aeb@parsecnt}% \aeb@parsecnt=\aeb@lowerlimit\relax \ifnum\aeb@parsecnt=1\relax\global\let\frstPageSpec\aebp@YES\fi \loop \edef\edefaeb@parsetoks{\the\aeb@parsetoks\the\aeb@parsecnt,}% \aeb@parsetoks=\expandafter{\edefaeb@parsetoks}% \advance\aeb@parsecnt1\relax \ifnum\aeb@parsecnt < \aeb@upperlimit\relax\repeat \aeb@parse} \@ifpackageloaded{insdljs}{% \newenvironment{fs@willClose} {\@defineJS{\fs@will@Close}} {\end@defineJS} \let\fs@will@Close\@empty }{% \newenvironment{willClose} {\@defineJS{\will@Close}} {\end@defineJS} \let\will@Close\@empty \newenvironment{fs@willClose} {\@defineJS{\fs@will@Close}} {\end@defineJS} \let\fs@will@Close\@empty \newenvironment{willSave} {\@defineJS{\will@Save}} {\end@defineJS} \let\will@Save\@empty \newenvironment{didSave} {\@defineJS{\did@Save}} {\end@defineJS} \let\did@Save\@empty \newenvironment{willPrint} {\@defineJS{\will@Print}} {\end@defineJS} \let\will@Print\@empty \newenvironment{didPrint} {\@defineJS{\did@Print}} {\end@defineJS} \let\did@Print\@empty } \let\developer@will@Close\@empty \let\developer@will@Save\@empty \let\developer@did@Save\@empty \let\developer@will@Print\@empty \let\developer@did@Print\@empty \newcommand\@setDocActions{% \edef\test@will@Close{% \fs@will@Close\will@Close\developer@will@Close}% \edef\test@will@Save{\will@Save\developer@will@Save}% \edef\test@did@Save{\did@Save\developer@did@Save}% \edef\test@will@Print{\will@Print\developer@will@Print}% \edef\test@did@Print{\did@Print\developer@did@Print}% \def\aebp@DocActionsCode{/AA << % \ifx\test@will@Close\@empty\else/WC << \JS{\fs@will@Close\will@Close\developer@will@Close} >>\fi \ifx\test@will@Save\@empty\else/WS << \JS{\will@Save\developer@will@Save} >>\fi \ifx\test@did@Save\@empty\else/DS << \JS{\did@Save\developer@did@Save} >>\fi \ifx\test@will@Print\@empty\else/WP << \JS{\will@Print\developer@will@Print} >>\fi \ifx\test@did@Print\@empty\else/DP << \JS{\did@Print\developer@did@Print} >>\fi >> } \ifpdfmarkup\literalps@out{\AEB@psMrk{Catalog} << \aebp@DocActionsCode\space>> /PUT pdfmark}\else \ifpdf\pdfcatalog{\aebp@DocActionsCode}\else \ifxetex\immediate \@pdfm@mark{put @catalog <<\aebp@DocActionsCode\space>>}\fi \fi\fi } \AtBeginDocument{\@setDocActions} \def\aref(#1){\csname aeb@aDescript@#1\endcsname} \def\aeb@initAttachWrite{% \newwrite \aeb@attachmentswrite \immediate\openout \aeb@attachmentswrite \jobname_attach.cut \let\verbatim@out\aeb@attachmentswrite \aeb@IWVO{\string\begin{execJS}{aebpro_attach}}% {\lccode`P=`\{\lowercase{\aeb@IWVO{try P}}}% } \newcommand{\prjInputUser}[1]{\input{#1}} \newcommand{\prjIncludeUser}[1]{\include{#1}} \newcommand{\addtoOptAttachments}[1]{% \g@addto@macro\AP@addtoAttachments{,#1}} \newcommand{\getcNameFromFileName}[1]{\@nameuse{descrip4#1}} \def\AP@addtoAttachments{} \def\jsstrsps{replace(/^\string\s*/, "")} \def\jsstrdotsp{replace(/\string\.\string\s*/g, ".")} \ifoptattachments \def\AP@writeOptAttach{% \newwrite\AP@OptAttachlist \immediate\openout \AP@OptAttachlist \jobname_oa.cut \immediate\write\AP@OptAttachlist{\string\def\string \APOptAttachments{\AP@addtoAttachments}} \immediate\closeout\AP@OptAttachlist} \AtEndDocument{\AP@writeOptAttach} \def\AP@pathInput#1{% \addtoOptAttachments{#1}\prjInputUser{#1}} \def\AP@pathInclude#1{% \addtoOptAttachments{#1.tex}\prjIncludeUser{#1}} \InputIfFileExists{\jobname_oa.cut}{% \def\AP@next{\edef\aeb@attachments {\aeb@attachments\APOptAttachments}}% }{\let\AP@next\relax} \AP@next \else \def\AP@pathInput#1{\prjInputUser{#1}} \def\AP@pathInclude#1{\prjIncludeUser{#1}} \fi \ifoptattachmentsTaken \def\prjinput{\hyper@normalise\AP@pathInput} \def\prjinclude{\hyper@normalise\AP@pathInclude} \let\AP@includeonly\includeonly \def\includeonly{\hyper@normalise\AP@includeonly} \else \def\prjinput{\prjInputUser} \def\prjinclude{\prjIncludeUser} \fi \ifx\aeb@attachsource\@empty \ifx\aeb@attachments\@empty \else\aeb@initAttachWrite\fi \else \@ifundefined{aeb@attachmentswrite} {\aeb@initAttachWrite}{} \fi \def\ap@cName(#1){\csname aeb@aName@attach#1\endcsname} \def\ap@cNamexdef(#1){\expandafter \xdef\csname aeb@aName@attach#1\endcsname} \def\ap@cDescript(#1){\csname aeb@aDescript@attach#1\endcsname} \def\ap@cDescriptSource(#1){\csname aeb@aDescript@#1\endcsname} \def\ap@cDescriptxdef(#1){\expandafter \xdef\csname aeb@aDescript@attach#1\endcsname} \def\ap@cDescriptSourcexdef(#1){\expandafter \xdef\csname aeb@aDescript@#1\endcsname} \ifx\aeb@attachsource\@empty\else \edef\temp@expand{\noexpand\@for\noexpand\@@tmp:=\aeb@attachsource} \temp@expand\do{% \ifx\@@tmp\@empty\else \expandafter\ap@strpspcs\@@tmp\@nil\edef\@@tmp{\to@nilarg}% \ap@cDescriptSourcexdef(\@@tmp){\jobname.\@@tmp}% \aeb@IWVO{\space\space\space\space var retn=\string\importDataObject({% cName: "\@@tmp", cDIPath: "\jobname.\@@tmp".\jsstrdotsp});}% \aeb@IWVO{\space\space\space\space if ( (app.viewerVersion>7) && retn ) this.getDataObject("\@@tmp").description=% "\string\ap@cDescriptSource(\@@tmp)".\jsstrdotsp;}% \expandafter \edef\csname aeb@aName@\@@tmp\endcsname{\jobname.\@@tmp}% \fi }% \fi \ifx\aeb@attachments\@empty\else \typeout{\string\aeb@attachments: \aeb@attachments}% \aeb@parsecnt=0 \edef\temp@expand{\noexpand\@for\noexpand\@@tmp:=\aeb@attachments} \temp@expand\do {% \ifx\@@tmp\@empty\else \expandafter\ap@strpspcs\@@tmp\@nil\edef\@@tmp{\to@nilarg}% \advance\aeb@parsecnt1\relax \ap@cNamexdef(\the\aeb@parsecnt){attach\the\aeb@parsecnt}% \ap@cDescriptxdef(\the\aeb@parsecnt)% {AeB Attachment \the\aeb@parsecnt}% \aeb@IWVO{\space\space\space\space var retn=\string\importDataObject({% cName:"\string\ap@cName(\the\aeb@parsecnt)",% cDIPath: "\@@tmp".\jsstrsps});}% \aeb@IWVO{\space\space\space\space if ( (app.viewerVersion>7) && retn ) this.getDataObject(% "\string\ap@cName(\the\aeb@parsecnt)").description=% "\string\ap@cDescript(\the\aeb@parsecnt)";}% \expandafter \expandafter\xdef\csname descrip4\@@tmp\endcsname {\noexpand\ap@cName(\the\aeb@parsecnt)}% \fi } \fi \@ifundefined{aeb@attachmentswrite}{} {% {\lccode`P=`\}\def\jsMsg{"Attachments error: " + e.toString()}\lowercase{\aeb@IWVO{P catch(e) { console.println( \jsMsg\space); }}}}% \aeb@IWVO{\string\end{execJS}} \immediate\closeout \aeb@attachmentswrite } \def\aeb@inputAttachments{\@ifundefined{aeb@attachmentswrite}{} {\InputIfFileExists{\jobname_attach.cut}% {\typeout{Inputting attachments file}}% {\typeout{Cannot find attachments file}}}% } \define@choicekey+{aebpdfpack}{viewmode}[\val\nr]% {details,tile,layout,hidden}{% \ifcase\nr\relax \def\aeb@pdfpack@viewmode{/D}\or \def\aeb@pdfpack@viewmode{/T}\or \def\aeb@pdfpack@viewmode{/T}\or \def\aeb@pdfpack@viewmode{/H}\fi }{} \define@key{aebpdfpack}{initview}[]{\def\aeb@pdfpack@initview{#1}} \let\aeb@pdfpack@initview\@empty \newcommand{\earlyAttachForPkgs}{% if (this.collection!=null&&this.collection.initialView == "Hidden") var hideto=app.setTimeOut("app.clearTimeOut(hideto);" +"app.execMenuItem('CollectionPreview');",1); \if@gopro if(typeof _aebpro_attach == "undefined") ( app.viewerVersion > 8 ) ? % aebTrustedFunctions(this,aebImportAnFDF,"aebpro_attach.fdf") : % this.importAnFDF("aebpro_attach.fdf");\fi \ifisPDFPackage\ifx\aeb@pdfpack@initview\@empty^^J% if(app.viewerVersion<15)^^J% var pkto=app.setTimeOut("app.clearTimeOut(pkto);" +"app.execMenuItem('CollectionShowRoot');",5000);\fi\fi} \newif\ifisPDFPackage\isPDFPackagefalse \newcommand{\makePDFPackage}[1]{\isPDFPackagetrue \setkeys{aebpdfpack}{viewmode=details,#1}% \ifx\aeb@pdfpack@initview\@empty \let\aeb@pdfpackage@initview\@empty \else {\obeyspaces\sanitize@attach\gdef\aeb@pdfpackage@initview% {/D<\expandafter\stringiiUnicode\aeb@pdfpack@initview\relax>}}% \fi \def\aeb@PDFPackageCode{/PageMode/UseAttachments% /Collection<>}% \ifpdfmarkup \def\aeb@setPDFPackage{\literalps@out{\AEB@psMrk{Catalog} <<\aeb@PDFPackageCode>>/PUT pdfmark}}% \else\ifpdf\def\aeb@setPDFPackage{% \pdfcatalog{\aeb@PDFPackageCode}}\else \ifxetex\def\aeb@setPDFPackage{\immediate \@pdfm@mark{put @catalog <<\aeb@PDFPackageCode>>}}\else \let\aeb@setPDFPackage\relax\PackageWarning{aeb_pro} {The \string\makePDFPackage/string\makePDFPortfolio\space is supported for\MessageBreak dvips, pdftex, and xetex only}\fi\fi\fi } \let\makePDFPortfolio\makePDFPackage \@onlypreamble\makePDFPackage \let\aebp@attachments\aebp@Zero \ifx\aeb@attachsource\@empty\else\let\aebp@attachments\aebp@One\fi \ifx\aeb@attachments\@empty\else\let\aebp@attachments\aebp@One\fi \ifx\aebp@attachments\aebp@One \dev@addToDocOpen{\JS{\earlyAttachForPkgs}}% \fi \newenvironment{docassembly}{% \execJS{docassembly} }{\endexecJS} \let\ap@mrk\@empty \def\ap@gobtocomma#1,{} \providecommand\chngDocObjectTo[2]{% \def#1##1\ap@mrk{#2,\ap@gobtocomma##1}} \def\ap@TF{aebTrustedFunctions} \def\theDocObject{this} \providecommand\DeclareJSHelper[2]{% \def#1##1({\ap@TF(##1\theDocObject,#2,\ap@mrk}} \DeclareJSHelper{\addWatermarkFromFile}{aebAddWatermarkFromFile} \DeclareJSHelper{\importIcon}{aebImportIcon} \DeclareJSHelper{\importSound}{aebImportSound} \DeclareJSHelper{\appopenDoc}{aebAppOpenDoc} \DeclareJSHelper{\docSaveAs}{aebDocSaveAs} \DeclareJSHelper{\browseForDoc}{aebBrowseForDoc} \DeclareJSHelper{\insertPages}{aebInsertPages} \DeclareJSHelper{\createTemplate}{aebCreateTemplate} \DeclareJSHelper{\importDataObject}{aebImportDataObject} \DeclareJSHelper{\executeSave}{aebSaveAs,"Save"\@gobble} \DeclareJSHelper{\extractPages}{aebExtractPages} \DeclareJSHelper{\mailDoc}{aebMailDoc} \newcommand{\sigInfo}{var oSigInfo=} \def\sigFieldObj(#1){var oSigField=this.getField(#1)} \def\signatureSetSeedValue#1{% \ap@TF( oSigField, aebSignatureSetSeedValue, } \begin{defineJS}[\makecmt\%\dfnJSCR{^^J}]{\signatureSign} if ( typeof oSigInfo.oHandler=="undefined" ) oSigInfo.oHandler=security.PPKLiteHandler; var engine=aebTrustedFunctions( security,% aebSecurityGetHandler, oSigInfo.oHandler ); var path2Cert = (typeof oSigInfo.path2Cert == "undefined") ? % aebTrustedFunctions( this, aebAppGetPath,% {cCategory:"user"} )+"/Security"+"/"+oSigInfo.cert : % oSigInfo.path2Cert; aebTrustedFunctions( engine, aebSecurityHandlerLogin,% { cPassword: oSigInfo.password, cDIPath: path2Cert}); var oSigField = this.getField(oSigInfo.cSigFieldName); oSigInfo.oInfo.password=oSigInfo.password; if ( typeof oSigInfo.sv!="undefined" ) { for (var o in oSigInfo.sv ) oSigInfo.oInfo[o]=oSigInfo.sv[o]; } var oSigArgs={ oSig: engine, oInfo: oSigInfo.oInfo }; if ( typeof oSigInfo.cLegalAttest!="undefined" ) oSigArgs.cLegalAttest=oSigInfo.cLegalAttest; if ( typeof oSigInfo.cDIPath!="undefined") oSigArgs.cDIPath=oSigInfo.cDIPath; if ( typeof oSigInfo.bUI!="undefined") oSigArgs.bUI=oSigInfo.bUI; aebTrustedFunctions( oSigField, aebSignatureSign, oSigArgs ); \end{defineJS} \begin{defineJS}[\makecmt\%\dfnJSCR{^^J}]{\certifyInvisibleSign} if ( typeof oSigInfo.oHandler=="undefined" ) oSigInfo.oHandler=security.PPKLiteHandler; var engine=aebTrustedFunctions( security, % aebSecurityGetHandler, oSigInfo.oHandler ); var path2Cert=aebTrustedFunctions( this, aebAppGetPath, % {cCategory:"user"} )+"/Security"+"/"+oSigInfo.cert; aebTrustedFunctions( engine, aebSecurityHandlerLogin, % { cPassword: oSigInfo.password, cDIPath: path2Cert}); oSigInfo.oInfo.password=oSigInfo.password; var oSigArgs={ oSig: engine, oInfo: oSigInfo.oInfo }; if ( typeof oSigInfo.cLegalAttest!="undefined" ) oSigArgs.cLegalAttest=oSigInfo.cLegalAttest; if ( typeof oSigInfo.cDIPath!="undefined") oSigArgs.cDIPath=oSigInfo.cDIPath; if ( typeof oSigInfo.bUI!="undefined") oSigArgs.bUI=oSigInfo.bUI; aebTrustedFunctions( this, aebCertifyInvisibleSign, oSigArgs ); \end{defineJS} \let\predocassemJS\@empty \def\aeb@image@cnt{0} \define@key{importIcons}{name}[]{\def\importIcons@name{#1}} \define@key{importIcons}{path}[]{\def\importIcons@path{#1}} \define@key{importIcons}{page}[]{\def\importIcons@page{#1}} \define@key{importIcons}{placement}[]{\def\importIcons@placement{#1}} \define@boolkey{importIcons}{embedonly}[true]{} \define@key{importIcons}{firstpage}[]{\def\importIcons@firstpage{#1}} \define@key{importIcons}{lastpage}[]{\def\importIcons@lastpage{#1}} \newcommand{\aebp@getFace}[1][0]{% \def\importIcons@face{#1}\aebp@getPlacement} \def\aebp@getPlacement#1\@nil{\def\importIcons@fieldname{#1}% \expandafter\ap@strpspcs\importIcons@fieldname\@nil \edef\importIcons@fieldname{\to@nilarg}% } \newcommand{\declareMultiImages}[1]{% \edef\@tforExp{\noexpand\@tfor\noexpand\@dipArgs:=#1}% \@tforExp\do{% \expandafter\declareImageAndPlacement \expandafter{\@dipArgs}% }% } \newcommand{\declareImageAndPlacement}[1]{% \edef\@tempexp{\noexpand\setkeys{importIcons}{name,path,page,% placement,embedonly=false,#1}}\@tempexp \ifx\importIcons@name\@empty{\count0=\aeb@image@cnt \advance\count0by1\relax\xdef\aeb@image@cnt{\the\count0}}% \edef\importIcons@name{aebImage\aeb@image@cnt}\fi \ifx\importIcons@path\@empty \PackageError{aeb_pro}{The `path' key is required} {Please give the path of the icon.}\fi \ifx\importIcons@placement\@empty\ifKV@importIcons@embedonly\else \PackageWarningNoLine{aeb_pro}{% The `placement' key was not found for the\MessageBreak image named "\importIcons@name".\MessageBreak Specify this key, or insert the image manually in\MessageBreak the docassembly environment.}\fi\fi \xdef\predocassemJS{\predocassemJS var retn=\importIcon({cName:"\importIcons@name",% cDIPath:"\importIcons@path"% \ifx\importIcons@page\@empty\else,% nPage:\importIcons@page\fi});^^J% if ( retn==-1 ) console.println("The file \string\"\importIcons@path\string\" could not be opened.");^^J% if ( retn==-2 ) console.println("Selected page (page=\importIcons@page) for \string\"\importIcons@path\string\" is invalid.");^^J}% \ifx\importIcons@placement\@empty\else \@for\@fieldname:=\importIcons@placement\do{% \expandafter\aebp@getFace\@fieldname\@nil \xdef\predocassemJS{\predocassemJS var f = this.getField("\importIcons@fieldname");^^J% if ( f == null ) console.println("The field \string\"\importIcons@fieldname\string\" does not exist.");^^J% try { f.buttonSetIcon(this.getIcon("\importIcons@name"),% \importIcons@face); } catch(e){};^^J}% }% \fi } \@onlypreamble\declareImageAndPlacement \newcommand{\iconNameI}[1]{\def\IconNameI(##1){#1}} \iconNameI{#1+"."+i} \@onlypreamble\iconNameI \newcommand{\embedMultiPageImages}[1]{% \setkeys{importIcons}{name,path,page,placement,% firstpage,lastpage,#1}% \ifx\importIcons@firstpage\@empty \def\importIcons@firstpage{1}\else {\count0=\importIcons@firstpage}\fi \ifx\importIcons@lastpage\@empty \def\importIcons@lastpage{this.numPages}\else {\count0=\importIcons@lastpage}\fi \ifx\importIcons@name\@empty \PackageError{aeb_pro}{The `name' key is required} {Please give the icon family a name.}\fi \ifx\importIcons@path\@empty \PackageError{aeb_pro}{The `path' key is required} {Please give the path of the icon.}\fi \def\r{^^J}\def\t{\space\space\space\space}% \let\predocassemJSPlace\@empty \ifx\importIcons@placement\@empty\else \@for\@fieldname:=\importIcons@placement\do{% \expandafter\aebp@getFace\@fieldname\@nil \edef\predocassemJSPlace{\predocassemJSPlace\t var f = this.getField("\importIcons@fieldname."+i);\r\t if ( f == null ) console.println("The field \string\"\importIcons@fieldname."+i+"\string\" does not exist.");\r\t try { f.buttonSetIcon(this.getIcon(% \IconNameI("\importIcons@name")),% \importIcons@face); } catch(e){};\r}% }% \fi \xdef\predocassemJS{\predocassemJS var l=\importIcons@lastpage-\importIcons@firstpage+1;\r for (var i=0; i