From c0c4908f916ec0bdc063d877e0ff2b7e684907ae Mon Sep 17 00:00:00 2001 From: couturie Date: Tue, 30 Jul 2013 21:27:32 +0200 Subject: [PATCH] new --- algorithm.sty | 96 -- algorithm2e.sty | 2817 ----------------------------------------------- algorithmic.sty | 192 ---- bare_adv.tex | 1100 ------------------ bare_conf.aux | 53 - bare_conf.log | 1015 ----------------- bare_conf.pdf | Bin 192349 -> 0 bytes 7 files changed, 5273 deletions(-) delete mode 100644 algorithm.sty delete mode 100644 algorithm2e.sty delete mode 100644 algorithmic.sty delete mode 100755 bare_adv.tex delete mode 100644 bare_conf.aux delete mode 100644 bare_conf.log delete mode 100644 bare_conf.pdf diff --git a/algorithm.sty b/algorithm.sty deleted file mode 100644 index 34e1f1f..0000000 --- a/algorithm.sty +++ /dev/null @@ -1,96 +0,0 @@ -% ALGORITHM STYLE -- Released 8 April 1996 -% for LaTeX-2e -% Copyright -- 1994 Peter Williams -% -% E-mail pwil3058@bigpond.net.au -% -% This style file is free software; you can redistribute it and/or -% modify it under the terms of the GNU Lesser General Public -% License as published by the Free Software Foundation; either -% version 2 of the License, or (at your option) any later version. -% -% This style file is distributed in the hope that it will be useful, -% but WITHOUT ANY WARRANTY; without even the implied warranty of -% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -% Lesser General Public License for more details. -% -% You should have received a copy of the GNU Lesser General Public -% License along with this style file; if not, write to the -% Free Software Foundation, Inc., 59 Temple Place - Suite 330, -% Boston, MA 02111-1307, USA. -% -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{algorithm} -\typeout{Document Style `algorithm' - floating environment} - -\RequirePackage{float} -\RequirePackage{ifthen} -\newcommand{\ALG@within}{nothing} -\newboolean{ALG@within} -\setboolean{ALG@within}{false} -\newcommand{\ALG@floatstyle}{ruled} -\newcommand{\ALG@name}{Algorithm} -\newcommand{\listalgorithmname}{List of \ALG@name s} - -% Declare Options -% first appearance -\DeclareOption{plain}{ - \renewcommand{\ALG@floatstyle}{plain} -} -\DeclareOption{ruled}{ - \renewcommand{\ALG@floatstyle}{ruled} -} -\DeclareOption{boxed}{ - \renewcommand{\ALG@floatstyle}{boxed} -} -% then numbering convention -\DeclareOption{part}{ - \renewcommand{\ALG@within}{part} - \setboolean{ALG@within}{true} -} -\DeclareOption{chapter}{ - \renewcommand{\ALG@within}{chapter} - \setboolean{ALG@within}{true} -} -\DeclareOption{section}{ - \renewcommand{\ALG@within}{section} - \setboolean{ALG@within}{true} -} -\DeclareOption{subsection}{ - \renewcommand{\ALG@within}{subsection} - \setboolean{ALG@within}{true} -} -\DeclareOption{subsubsection}{ - \renewcommand{\ALG@within}{subsubsection} - \setboolean{ALG@within}{true} -} -\DeclareOption{nothing}{ - \renewcommand{\ALG@within}{nothing} - \setboolean{ALG@within}{true} -} -\DeclareOption*{\edef\ALG@name{\CurrentOption}} - -% ALGORITHM -% -\ProcessOptions -\floatstyle{\ALG@floatstyle} -\ifthenelse{\boolean{ALG@within}}{ - \ifthenelse{\equal{\ALG@within}{part}} - {\newfloat{algorithm}{htbp}{loa}[part]}{} - \ifthenelse{\equal{\ALG@within}{chapter}} - {\newfloat{algorithm}{htbp}{loa}[chapter]}{} - \ifthenelse{\equal{\ALG@within}{section}} - {\newfloat{algorithm}{htbp}{loa}[section]}{} - \ifthenelse{\equal{\ALG@within}{subsection}} - {\newfloat{algorithm}{htbp}{loa}[subsection]}{} - \ifthenelse{\equal{\ALG@within}{subsubsection}} - {\newfloat{algorithm}{htbp}{loa}[subsubsection]}{} - \ifthenelse{\equal{\ALG@within}{nothing}} - {\newfloat{algorithm}{htbp}{loa}}{} -}{ - \newfloat{algorithm}{htbp}{loa} -} -\floatname{algorithm}{\ALG@name} - -\newcommand{\listofalgorithms}{\listof{algorithm}{\listalgorithmname}} - diff --git a/algorithm2e.sty b/algorithm2e.sty deleted file mode 100644 index c2ebe93..0000000 --- a/algorithm2e.sty +++ /dev/null @@ -1,2817 +0,0 @@ -% algorithm2e.sty --- style file for algorithms -% almost everything can be customized by users. See the document for more explanations -%% Copyright 1996-2013 Christophe Fiorio -% -% This program may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either version 1.2 -% of this license or (at your option) any later version. -% The latest version of this license is in -% http://www.latex-project.org/lppl.txt -% and version 1.2 or later is part of all distributions of LaTeX -% version 1999/12/01 or later. -% -% This program consists of the files algorithm2e.sty and algorithm2e.tex and algorithm2e-compatibility.sty -% -% Report bugs and comments to: -% - algorithm2e-announce@lirmm.fr mailing list for announcement about releases^^J% -% - algorithm2e-discussion@lirmm.fr mailing list for discussion about package^^J% -% subscribe by emailing sympa@lirmm.fr with 'subscribe '^^J% -% -% $Id: algorithm2e.sty,v 5.0 2013/01/06 14:40:35 cfiorio Exp $ -% -% PACKAGES REQUIRED: -% -% - float (in contrib/supported/float) -% - ifthen (in base) -% - xspace (in packages/tools) -% - relsize (in contrib/misc/relsize.sty) -% -%%%%%%%%%%%%%%% Release 5.0 -% -% Package options: -% --------------- -% - oldcommands : to use old command names -% - french, english, german, ngerman -% portuguese, czech, italiano, -% slovak, croatian, spanish : for the name of the algorithm and some keyword code -% - onelanguage : to simply switch keyword from one language to another without changing -% keyword commands -% - boxed, boxruled, ruled, tworuled, -% algoruled, plain : layout of the algorithm -% - algo2e : environment is algorithm2e instead of algorithms and \listofalgorithmes -% instead of \listofalgorithms -% - slide : to use when making slides -% - noline,lined,vlined : how block are designed. -% - shortend, longend, noend : short or long end keyword as endif for e.g. -% - linesnumbered : auto numbering of the algorithm's lines -% - linesnumberedhidden : to hide autonumbered lines (show number on a line with \ShowLn -% - commentsnumbered, inoutnumbered : to autonumber comments and inout keywords (by defaut not numbered) -% - rightnl : to have line number on the right instead of on the left as default -% - algonl : line numbers preceded by algo number -% - scright, scleft : right or left justified side comments -% - fillcomment, nofillcomment : end mark of comment is flushed to the right so comments fill the line -% - dotocloa : add an entry in the toc for list of algorithms (require tocbibind package) -% - endfloat : add algoendfloat environment pushing algorithm so written to the end of document -% - resetcount, noresetcount : start value of line numbers. -% - algopart,algochapter,algosection : algo numbering within part, chapter or section -% - titlenumbered,titlenotnumbered : numbering of title set by \Titleofalgo -% - figure : algorithms are figures, numbered as figures, and put in the list of figures. -% - procnumbered : procedure or function are numbered as algorithm -% - nokwfunc : procedure or function name doens't become a command -% - norelsize : don't use relsize package (useful if it breaks the compatibily) -% - displayblockmarkers : display begin, end keywords at start of each block -% -% defaults are; english,plain,resetcount,titlenotnumbered -% -%%%%%%%%%%%%%% -% -% Short summary -% ------------- -% -% algorithm is an environment for writing algorithm in LaTeX2e. -% Almost all is customizable. You can add keywords, change style, change the layout, ... -% It provide macros that allow you to create differents sorts of key words, therefore a set of predefined key -% word is gived. -% -% IT should be used as follows -% -% \begin{algorithm} -% ... -% ... -% \end{algorithm} -% -% -% IMPORTANT : each line MUST end with \; -% -% Note that if you define macros outside algorithm environment they -% are avaible in all the document and particulary you can use then -% inside all algorithms without re-define them. -% -% an example: -% -% \begin{algorithm} -% \SetAlgoLined -% \KwIn{this text} -% \KwOut{how to write algorithm with \LaTeX2e } -% -% initialization\; -% \While{not at end of this document}{ -% read current section\; -% \eIf{understand}{ -% go to next section\; -% current section becomes this one\; -% }{ -% go back to the beginning of current section\; -% } -% } -% \caption{How to write algorithm} -% \end{algorithm} -% -% -%%%%%%%%%%%%%% predefined keywords -% -% \KwIn{input} -% \KwOut{output} -% \KwData{input} -% \KwResult{output} -% \KwTo % a simple keyword -% \KwFrom % a simple keyword -% \KwRet{[value]} -% \Return{[value]} -% \Begin{block inside} -% \eIf{condition}{Then Block}{Else block} % in blocks -% \If{condition}{Then block} % in a block -% \uIf{condition}{Then block} % in a block unended -% \lIf{condition}{Else text} % on the same line -% \Else{inside Else} % in a block -% \lElse{Else text} % on the same line -% \uElse{Else text} % in a block unended -% \ElseIf{inside Elseif} % in a block -% \lElseIf{Elseif text} % on the same line -% \uElseIf{Elseif text} % in a block unended -% \Switch{Condition}{Switch block} -% \Case{a case}{case block} % in a block -% \lCase{a case}{case text} % on the same line -% \Other{otherwise block} % in a block -% \lOther{otherwise block} % on the same line -% \For{condition}{text loop} % in a block -% \lFor{condition}{text} % on the same line -% \ForEach{condition}{text loop} % in a block -% \lForEach{condition}{text} % on the same line -% \ForPar{condition}{text loop} % in a block -% \lForPar{condition}{text} % on the same line -% \While{condition}{text loop} % in a block -% \lWhile{condition}{text loop} % on the same line -% \Repeat{End condition}{text loop} % in a block -% \lRepeat{condition}{text} % on the same line -% -%%%%%%%%%%%%%% -% -% History: -% -% - January 06 2013 - revision 5.0 -% * CHANGE: SetKwSwith takes now 9 args: 9th arg is the same as -% previous 8th arg ('end of switch' keyword). New 8th arg is -% 'end of case' keyword. This is due to change of release -% 3.2 which introduce end after case block... as I never -% test with longend option, I never see that the 'end -% switch' used for case was not good. -% * CHANGE: when no end keyword is defined in a block macro, then -% algorithm2e does no more try to print it. So even with lined or noline -% option, no empty line is printed (before: a blank end was -% printed, so a blank line appeared) -% * Internal Change: add some internal function to improve readibility -% (thanks to Philip K. F. H\ölzenspies) -% * ADD: Block markers. -% You can now ask package to put begin and end keywords automatically at begin -% and end of blocks, it means each group of commands shifted and enclosed in -% braces. -% This is tricky to use but, combined with \SetStartEndCondition and -% redefinition of keywords, you should be abble to simulate any syntax. See -% examples in documentation where a generic example is derived in pseudo-code, -% python and C by keeping code and changing only style using block markers -% macros, \SetStartEndCondition and some redefinition of keywords. -% These new block markers macros are: -% - \AlgoDisplayBlockMarkers and \AlgoDontDisplayBlockMarkers -% - \SetAlgoBlockMarkers{begin marker}{end marker} -% - \BlockMarkersSty{text} and \SetBlockMarkersSty -% Note that a new option has also been added: displayblockmarkers -% * ADD: \leIf macro automatically defined by \SetKwIF: allow to define -% an if-then-else on a single line. -% * ADD: new macro \SetStartEndCondition{typo1}{typo2}{typo3} which -% sets typo around condition in For, If, Switch, Case and -% Repeat macros. First two are used around For, If, Swith -% conditions, First and third are used for Case and Repeat -% condition where condition ends the line. Default definition -% is \SetStartEndCondition{ }{ }{}. -% A common alternative is \SetStartEndCondition{ (}{) }{)} -% Can also be used to remove space around condition, for -% example if you want python style commands: -% \SetStartEndCondition{ }{}{} and \SetKwFor{For}{for}{:}{} -% * ADD: new environment algomathdisplay which allow display math (like inside \[ \] or $$ $$) -% handling end line and line number -% * ADD: new command \SetKwProg{Env}{Title}{is}{end} which defines a macro -% \Env{args}{text}. Env is a block with 'Title' (in \CapSty) at the beginning -% followed by args followed by 'is' then 'text' is put below inside a block ended -% by 'end'. If no 'end' is specified, nothing is written (no -% blank line is inserted). Useful to typeset function or prog for example: -% \SetKwProg{Fn}{Function}{is}{end} makes \Fn{afunc(i: int) : int}{return 0\;} -% writes: -% Function afunc(i: int) : int is -% | return 0; -% end -% or \SetKwProg{Def}{def}{:}{} makes \Def{afunc(i: int)}{return 0\;} writes: -% def afunc(i: int): -% | return 0 -% Tip: combine it with \SetKwFunction to write recursive function algorithm. With -% example above, you could define \SetKwFunction{\Afunc}{afunc} and then write: -% \Def{\Afunc{i:int}{\eIf{i>0}{\KwRet \Afunc{i-1}}{\KwRet 0\;}} that writes: -% def afunc(i: int): -% | if(i>0): -% | return afunc(i-1) -% | else: -% | return 0 -% with appropriate typo. -% * ADD: option croatian: croation keywords (thanks to Ivan Gavran) -% * ADD: option ngerman: same as german option but so can be used with global option ngerman -% of babel -% * ADD: option spanish: Spanish support (thanks to Mario Abarca) -% * ADD: unterminated block: useful to add part separator that doesn't necessary need an end -% keyword. -% Designed on the pattern of unterminated if (see \uIf macro) allowing to -% add a block that is not terminated by a keyword. Such block are defined in the same -% time as a block is defined by adding a macro beginning with u. So, for example, -% predefined \SetKwBlock{Begin}{begin}{end} defines now two commands: -% - \Begin{} as previously which print a begin - end block -% - \uBegin{} that defines a begin only block -% * FIX: problem when numbering line inside until condition of -% \SetKwRepeat macro: line number was not correctly aligned. -% * FIX: dotocloa option which was broken -% * FIX: uIf and uCase didn't have same behavior when used with -% noline, vlined or lined option. This is fixed. Side effect: no empty -% line after an uIf or uCase when used with options lined or vlined -% * FIX: a bug with Repeat Until command when use with side comment on Until -% * FIX: a bug with side text -- text put into () -- of command macro (SetKwIf and so on) -% which was always setting a ';' even after a \DontPrintSemicolon -% * FIX: a bug with hyperref and chapter definition (thanks to Hubert Meier) -% * FIX: bugs with l macro and side comment -% * FIX: revision number -% * FIX: fix non ascii character (utf8 not yet recognized by all latex engine) -% * FIX: fnum@algocf had an useless parameter which sometimes broke expansion and output an error -% * FIX: works now with multicol package -% -% - december 14 2009 - revision 4.1 -% * ADD: new command \SetKwHangingKw{Name}{text} (hanging indent with keyword): This creates a -% hanging indent much like \texttt{SetKwInput}, except that it removes the trailing `:' -% and does not reset numbering (thanks to Nathan Tallent) -% -% - november 17 2009 - revision 4.00 - -% -% * CHANGE: IMPORTANT: some commands have been renamed to have consistent naming (CamlCase -% syntax) and old commands are no more available. If you doesn't want to change -% your mind or use old latex files, you can use oldcommands option to enable old -% commands back. -% text. Here are these commands: -% - \SetNoLine becomes \SetAlgoNoLine -% - \SetVline becomes \SetAlgoVlined -% - \Setvlineskip becomes \SetVlineSkip -% - \SetLine becomes \SetAlgoLined -% - \dontprintsemicolon becomes \DontPrintSemicolon -% - \printsemicolon becomes \PrintSemicolon -% - \incmargin becomes \IncMargin -% - \decmargin becomes \DecMargin -% - \setnlskip becomes \SetNlSkip -% - \Setnlskip becomes \SetNlSkip -% - \setalcapskip becomes \SetAlCapSkip -% - \setalcaphskip becomes \SetAlCapHSkip -% - \nlSty becomes \NlSty -% - \Setnlsty becomes \SetNlSty -% - \linesnumbered becomes \LinesNumbered -% - \linesnotnumbered becomes \LinesNotNumbered -% - \linesnumberedhidden becomes \LinesNumberedHidden -% - \showln becomes \ShowLn -% - \showlnlabel becomes \ShowLnLabel -% - \nocaptionofalgo becomes \NoCaptionOfAlgo -% - \restorecaptionofalgo becomes \RestoreCaptionOfAlgo -% - \restylealgo becomes \RestyleAlgo -% - gIf macros and so on do no more exist -% * NEW: - Compatibily with other packages improven by changing name of internal -% macros. Algorithm2e can now be used with arabtex for example, if this last is -% loaded after algorithm2e package. -% * ADD: - OPTION endfloat: endfloat packages doesn't allow float environment inside other -% environment. So using it with figure option of algorithm2e makes error. This -% option enables a new environment algoendfloat to be used instead of algorithm -% environment that put algorithm at the end. algoendfloat environment make -% algorithm acting as endfloat figures. This option requires endfloat packages. -% * ADD: - OPTION norelsize: starting from this release (v4.00), algorithm2e package uses -% relsize package in order to get relative size for lines numbers; but it seems -% that some rare classes (such as inform1.cls) are not compatible with relsize; to -% have algorithm2e working, this option makes algorithm2e not to load relsize -% package and go back to previous definition by using \scriptsize font for lines -% numbers. -% * ADD: - OPTION onelanguage: allow, if using standard keywords listed below, to switch -% from one language to another without changing keywords by using appropriate -% language option: -% . KwIn, KwOut, KwData, KwResult -% . KwTo KwFrom -% . KwRet, Return -% . Begin -% . Repeat -% . If, ElseIf, Else -% . Switch, Case, Other -% . For, ForPar, ForEach, ForAll, While -% . -% * ADD: - OPTION rightnl: put lines numbers to the right of the algorithm instead of left. -% * ADD: new commands \setRightLinesNumbers and \setLeftLinesNumbers which sets the lines -% numbers to the right or to the left of the algorithm. -% * ADD: - new kind of keywords: KwArray used to define arrays: -% \SetKwArray{Kw}{array} defines an array keywords Kw called array and printed in -% DataSty style when call with \Kw. It can be used with one argument which -% denotes the element index: \Kw{n} prints array[n] with array in DataSty and n in -% ArgSty. -% * ADD/FIX: rules of ruled, algoruled, tworuled styles used rules of different sizes! This -% is now fixed. Moreover size of the rules is now controlled by a length and so -% can be customized by the user. -% \algoheightrule is the height of the rules and can be changed via \setlength -% \algoheightruledefault is the default height of he rules (0.8pt) -% \algotitleheightrule is the height of the rule that comes just after the -% caption in ruled and algoruled style; it can be changed via \setlength -% \algotitleheightruledefault is the default height of this rules (0.8pt) -% Thanks to Philippe Dumas who reports the bug and make the suggestion. -% * ADD: - \SetAlgoCaptionSeparator which sets the separator between Algorithm 1 and the -% title. By default it's ':' and caption looks like "Algorithm 2: title" but now -% you can change it by using for example \SetAlgoCaptionSeparator{.} which will -% give "Algorithm 3. title" -% * ADD: - \SetAlgoLongEnd and \SetAlgoShortEnd and \SetAlgoNoEnd commands which act as -% corresponding package options -% * ADD: - OPTIONS italiano and slovak as new language (thanks to Roberto Posenato and -% Miroslav Binas) -% * CHANGE: - Fnt and Sty macro to have consistent use and naming (see below) -% * ADD: - \AlCapSty, \AlCapNameSty, \AlCapFnt, \AlCapNameFnt, \ProcSty, \ProcFnt, -% \ProcNameSty, \ProcNameFnt, \ProcArgSty, ProcArgFnt and corresponding "set macro" -% \SetAlCapSty, \SetAlCapNameSty, \SetAlCapFnt, \SetAlCapNameFnt, \SetProcSty, -% \SetProcFnt, \SetProcNameSty, \SetProcNameFnt, \SetProcArgSty, \SetProcArgFnt which -% control the way caption is printed. Sty macro use command taking one parameter as -% argument, Fnt macros use directly command. In Fact caption is printed as follow: -% \AlCapSty{\AlCapFnt Algorithm 1:}\AlCapNameSty{\AlCapNameFnt my algorithm} -% By default, \AlCapSty is textbf and \AlCapFnt is nothing. \AlCapNameSty keep text -% as it is, and \AlCapNameFnt do nothing also. -% You can redefine \AlCapFnt and \AlCapNameFnt by giving macro to \Set commands. For -% example, you can do \SetAlCapFnt{\large} to see Algorithm printed in \large font. -% You can redefine \AlCapSty, \AlCapFnt, \AlCapNameSty and \AlCapNameFnt with the -% corresponding \Set command. For the Sty commands, you have to give in parameter -% name of a macro (whithout \) which takes one argument. For example, -% \SetAlCapFnt{textbf} defines the default behaviour. If you want to do more -% complicated thing, you should define your own macro and give it to \SetAlCapFnt or -% \SetAlCapNameFnt. Here are two examples: -% - \newcommand{\mycapsty}[1]{\tiny #1}\SetAlCapNameSty{mycapsty} -% - \newcommand{\mycapsty}[1]{\textsl{\small #1}}\SetAlCapNameSty{mycapsty} -% Or you can combine the two, for the last example you can also do: -% \SetAlCapNameSty{textsl}\SetAlCapNameFnt{\small} -% Thanks to Jan Stilhammer who gives me the idea of \AlCapNameFnt. -% * CHANGE \AlTitleFnt to match definition of all other Fnt macros and add a \AlTitleSty -% macro (see below) . Now you set \AlTitleFnt by calling \SetAlTitleFnt with -% directly a macro without parameter in argument: -% Example: \SetAlTitleFnt{\small} to set title in small font. -% * ADD: - \AlTitleSty and \SetAlTitleSty commands to set a style for title. These commands -% are defined from a macro taking the text in argument, as \textbf for example. -% To set the TitleSty you have to give name of the macro (without the '\') -% to \SetAlTitleSty. For example \SetAlTitleSty{textbf} to set \textbf style. -% * ADD: - new command \SetAlgorithmName{algorithmname}{list of algorithms name} which -% redefines name of the algorithms and the sentence list of algorithms. Second -% argument is the name that \autoref, from hyperref package, will use. Example: -% \SetAlgorithmName{Protocol}{List of protocols} if you prefer protocol than -% algorithm. -% * ADD: - new \SetAlgoRefName{QXY} which change the default ref (number of the algorithm) by -% the name given in parameter (QXY in the example). -% * ADD: - new command \SetAlgoRefRelativeSize{-2} which sets the output size of refs, defined -% by \SetAlgoRefName, used in list of algorithms. -% * ADD: - two dimensions to control the layout of caption in ruled, algoruled and boxruled -% algorithms: -% - interspacetitleruled (2pt by defaut) which controls the vertical space between -% rules and title in ruled and algoruled algorithms. -% - interspaceboxruled (2\lineskip by default) which controls the vertical space -% between rules and title in boxruled algorithms. -% These two dimensions can be changed by using \setlength command. -% * ADD: - With the fix (see below) of procedure and function environments, a new feature has -% been added: the name of the procedure or function set in caption is automatically -% defined as a KwFunction and so can be used as a macro. For example, if inside a -% procedure environment you set \caption{myproc()}, you can use \myproc macro in you -% main text. Beware that the macro is only defined after the \caption! -% * ADD: - OPTION nokwfunc to unable the new feature described above in function and -% procedure environment. Useful if you use name of procedure or function that cannot -% be a command name as a math display for example. -% * ADD: - \SetAlgoNlRelativeSize{number} command which sets the relative size of line -% numbers. By default, line numbers are two size smaller than algorithm text. Use -% this macro to change this behavior. For example, \SetAlgoNlRelativeSize{0} sets it -% to the same size, \SetAlgoNlRelativeSize{-1} to one size smaller and -% \SetAlgoNlRelativeSize{1} to one size bigger -% * ADD: - \SetAlgoProcName{aname} command which sets the name of Procedure printed by -% procedure environment (the environment prints Procedure by default). Second -% argument is the name that \autoref, from hyperref package, will use. -% * ADD: - \SetAlgoFuncName{aname} command which sets the name of Function printed by -% procedure environment (the environment prints Function by default). Second -% argument is the name that \autoref, from hyperref package, will use. -% * ADD: - \SetAlgoCaptionLayout{style} command which sets style of the caption; style must -% be the name of a macro taking one argument (the text of the caption). Examples -% below show how to use it: -% . \SetAlgoCaptionLayout{centerline} to have centered caption -% . \SetAlgoCaptionLayout{textbf} to have bold caption -% If you want to apply two styles in the same time, such as centered bold, you have -% to define you own macro and then use \SetAlgoCaptionLayout with its name. -% * ADD: - OPTION procnumbered: which makes the procedure and function to be numbered as -% algorithm -% * ADD: - OPTIONS tworuled and boxruled -% these are two new layouts: tworuled acts like ruled but doesn't put a line after -% caption ; boxruled surround algorithm by a box, puts caption above and add a line -% after caption. -% * REMOVE: - SetKwInParam has been deleted since not useful itself because of different -% macros which can do the same in a better and a more consistent way as -% SetKwFunction or SetKw. -% * FIX: - line number is now correctly vertically aligned with math display. -% * FIX: - references with hyperref. No more same identifier or missing name error. BUT now -% you must NOT use naturalnames option of hyperref packages if you do PdfLaTeX -% * FIX: - autoref with hyperref package (thanks to Jörg Sommer who notices the problem). -% * FIX: - titlenumbered was not working! fixed. -% * FIX: - Else(){} acted like uElse. Corrected. -% * FIX: - noend management: when a block was inside another and end of block was following -% each other, a blank line was added: it's now corrected. -% * FIX: - Function and Procedure environment was no more working as defined originally: the -% label was no more name of the procedure, it acts always as if procumbered option -% has been used. -% * FIX: - line numbers had a fixed size which can be bigger than algorithm text accordingly -% to \AlFnt set (see also new command \SetAlgoNlRelativeSize above) -% * FIX: - semicolon in comments when dontprintsemicolon is used. -% * FIX: - listofalgorithms adds a vertical space before first algo of a chapter as for -% listoffigures or listoftables -% * FIX: - listofalgorithms with twocolumns mode and some classes which don't allow onecolumn -% and so don't define \if@restonecol as prescribed in LaTeX (sig-alternate for -% example) -% * FIX: - algorithm2e now works with elsart cls and some more classes. -% * FIX: - blocks defined by SetKwBlock act now as other blocks (if for instance) and don't -% write end in vlined mode, instead they print a small horizontal line as required -% by the option. -% * FIX: - underfull hbox warning at each end of algorithm environment removed. -% -% * INTERNAL CHANGE: - short end keyword are deduce from long end keyword by keeping the -% first one. Allows to avoid double definition. -% * INTERNAL CHANGE: - procedure, function and algorithm are now resolved by the same -% environment to avoid code duplication. -% -% - October 04 2005 - revision 3.9 - -% * ADD: - \setalcaphskip command which sets the horizontal skip before Algorithm: in caption -% when used in ruled algorithm. -% * ADD: - \SetAlgoInsideSkip command which allows to add an extra vertical space before and -% after the core of the algorithm (ie: \SetAlgoInsideSkip{bigskip}) -% * CHANGE: - caption, when used with figure option, is no more controlled by algorithm2e -% package and so follows the exact behaviour of figures. The drawback is that you -% cannot change the typo with AlTitleFnt or CapFnt. The avantage is that if you -% use caption package, it works. -% * FIX: - problem with numbering line and pdflatex -% * FIX: - error when algorithm2e package was used with beamer and listings together -% - February 12 2005 - revision 3.8 - -% * FIX: - extra line with noend option. -% - February 10 2005 - revision 3.7 - -% * ADD: - sidecomment: different macros allowing to put text right after code on the same -% line. They are defined in the same time comment macros are defined with a star -% after the macro name. By default comments are right justified but this can be -% change with appropriate option in the macro. Ex: -% . default: \tcc*{side comment} -% . same as previous: \tcc*[r]{side comment} -% . left justify: \tcc*[l]{side comment} -% . here: \tcc*[h]{side comment} don't put the end of line mark before -% comment (; by default) and don't end the line. -% . flushed: \tcc*[f]{side comment} same as the precedent but right -% justified -% * ADD: - OPTION scright (default): right justified side comments (side comments -% are flushed to the righr) -% * ADD: - OPTION scleft: left justified side comments (side comments are put right after the -% code line) -% * ADD: - \SetSideCommentLeft acts as scleft option -% * ADD: - \SetSideCommentRight acts as scright option -% * ADD: - block like macro side text: all macro defining a block allows now to put text right -% after key words by putting text into (). Done to be used with sidecomment macros, -% but all text can be used. -% Ex: \eIf(\tcc*[f]{then comment}){test}{then text}(else side text){else text} -% * ADD: - OPTION fillcomment (default): end mark of comment is flushed to the right so -% comments fill all the width of text. -% * ADD: - OPTION nofillcomment: end mark of comment is put right after the comment. -% * ADD: - \SetNoFillComment acts as nofillcomment option. -% * ADD: - \SetFillComment acts as fillcomment option. -% * ADD: - OPTION dotocloa: which adds an entry in the toc for the list of algorithms. This -% option load package tocbibind if not already done and so list of figures and list -% of tables are also added in the toc. If you want to control which ones of the lists -% will be added in the toc, please load package tocbibind before package algorithm -% and give it the options you want. -% * FIX: - vertical spacing for uif macro with noend option -% * FIX: - all the compatibility problems between caption and other packages -% * FIX: - typographical differences between list of algorithms and other lists when in -% report or book -% -% - January 24 2005 - revision 3.6 - -% * FIX: - vertical spacing and space characters at the beginning or end of comments. -% line numbers of comments not in the NlSty. -% Thanks to Arnaud Giersch for his comments and suggestions. -% * FIX: - Set*Sty macro: the styles defined was not protected and was modified by surrounding -% context. For example KwTo in a \For{}{} was in bold AND italic instead of just in -% bold. -% * FIX: - line number misplacement after \Indp -% -% - January 21 2005 - revision 3.5 - -% * ADD: - hidden numbering of the lines. Lines are auto-numbered but numbers are shown only -% on lines you specify: -% * linesnumberedhidden option or \LinesNumberedHidden macro activate this -% functionnality. -% * \ShowLn and \ShowLnLabel{lab} macros make the number visible on the -% line. \ShowLnLabel{lab} allows to set a label for this line. -% Thanks to Samson de Jager who makes this suggestion and provides the macros. -% * ADD: - \AlCapFnt and \SetAlCapFnt which allow to have a different font for -% caption. Works like \AlFnt and \SetAlFnt and by default is the same. -% * ADD: - \AlCapSkip skip length. This vertical space is added before caption in plain ou -% boxed mode. It allows to change distance between text and caption. -% * FIX: - caption compatible with IEEEtran class. -% * FIX: - some vertical spacing error with \uIf macros (Thanks to Arnaud Giersch) -% * FIX: - Procedure and Function: lines are also numbered like algorithms -% * FIX: - CommentSty was not used for Comments -% -% - January 10 2005 - revision 3.4 - -% * FIX: - caption compatible with new release of Beamer class. -% -% - June 16 2004 - revision 3.3 - -% * FIX: - Hyperlink references of Hyperref package works now if compiled with pdflatex -% and [naturalnames] option of hyperref package is used. -% * FIX: - algorithm[H] had problem in an list environment - corrected -% * FIX: - interline was not so regular in nested blocks - corrected -% * ADD - \SetVlineSkip macro which sets the vertical skip after the little horizontal -% rule which closes a block in Vlined mode. By default 0.8ex -% -% - June 11 2004 - revision 3.2 - AUTO NUMBERING LINES !!! -% * ADD: auto numbering of the lines (the so asked and so long awaiting feature) -% this feature is managed by 3 options and 3 commands: -% - linesnumbered option: lines of the algo are numbered except for comments and -% input/output (KwInput and KwInOut) -% - commentsnumbered option: makes comments be numbered -% - inoutnumbered option: makes data input/output be numbered -% - \nllabel{lab} labels the line so you can cite with \ref{lab} -% - \LinesNumbered make the following algorithms having auto-numbered lines -% - \linesnotnumbered make the following algorithms having no auto-numbered lines -% * Change: algo2e option renames listofalgorithms in listofalgorithmes -% * FIX: new solution for compatibility with color package, more robust and not tricky. -% Many thanks to David Carlisle for his advices -% -% - June 09 2004 - revision 3.1 - -% * Change: \SetKwSwitch command defines an additionnal macro \uCase and \Case prints end -% * Change: now macros SetKw* do a renewcommand if the keyword is already defined. So you can -% redefine default definition at your own convenience or change your definition -% without introducing a new macro and changing your text. -% * ADD: new macro \SetKwIF which do \SetKwIf and -% \SetKwIfElseIf.The following default definition has been added: -% \SetKwIF{If}{ElseIf}{Else}{if}{then}{else if}{else}{endif} -% and so you get the macros; -% \If \eIf \lIf \uIf \ElseIf \uElseIf \lElseIf \Else \uElse \lElse -% * ADD: new macro \SetAlgoSkip which allow to fix the vertical skip before and after the -% algorithms. Default is smallskip, do \SetAlgoSkip{} if you don't want an extra space -% or \SetAlgoSkip{medskip} or \SetAlgoSkip{bigskip} if you want bigger space. -% * ADD: macro \SetKwIf defines in addition a new macro \uElse (depending on wat name you -% have given in #2 arg). -% * ADD: macro \SetKwIfElseIf defines in addition a new macro \uElse and \ugElseIf (depending -% on what name you have given in #2 and #3 arg). -% * Change: baseline of algorithm is now top, so two algorithms can be put side by side. -% * FIX: Compatibility with color package solved. The problem was due to a redefinition of -% standard macros by color package. This solves compatibility problem with other -% packages as pstcol or colortbl. (notified by Dirk Fressmann, Antti Tarvainen and Koby -% Crammer) -% * Fix: extra little shift to the right with boxed style algorithm removed (notified by -% P. Tanovski) -% * Fix: algoln option was buggy (notified bye Jiaying Shen) -% * Fix: german and portuges option didn't work due to bad typo (notified by Martin Sievers, -% Thorsten Vitt and Jeronimo Pellegrini) -% -% - February 13 2004 - revision 3.0 - -% * Major revision which makes the package independent from float.sty, so now -% - algorithm* works better, in particular can be used in multicols environments -% - (known bug corrected) -% [H] works now for all sort of environment but is handled differently for classic -% environment and star environment (algorithm, figure, procedure and function). For star -% environment, H acts like for classical figure environment, so it doesn't stay here -% absolutely. -% - (known bug corrected) -% you can use now floatflt package with algorithm package and even with figure -% option. Beware that if you want to put an algorithm inside a floatingfigure, it cannot -% be floating, so [H] is required and then figure option should not be used, since -% standard figure[H] are still floating with LaTeX. -% * boxruled: a new style added. Possible now since no style no more defined by the float -% package. -% * nocaptionofalgo: dosen't print Algorithm #: in the caption for algorithm in ruled or -% algoruled style. -% note: this is just documentation of a macro which was already in the package. -% - December 14 2003 - revision 2.52 - -% * output message shorter -% * french keyword macro \PourTous was missing for longend option, it has been added. -% * TitleofAlgo prints Function or Procedure in corresponding environments. -% -% - October 27 2003 - revision 2.51 - Revision submitted to CTAN archive -% * correction of a minor which make caption in procedure -% and function to be blanck with pdfscreen package -% (thanks to Joel Gossens for the notification) -% * add two internal definition to avoid some errors when -% used with Hyperref package (Hyperref package need to -% define new counter macro from existing ones, and -% don't do it for algorithm2e package, so we do it) -% -% - October 17 2003 - revision 2.50 - first revision for CTAN archive -% * add \AlFnt and \SetAlFnt{font} macros: \AlFnt is used at the beginning of the caption and -% the body of algorithm in order to define the fonts used for typesetting algorithms. You -% can use it elsewhere you want to typeset text as algorithm. For example you can do -% \SetAlFnt{\small\sf} to have algorithms typeset in small sf font. Default is nothing so -% algorithm is typeset as the text of the document. -% * add \AlTitleFnt{text} and \SetAlTitleFnt{font} macros: The {Algorithm: } in the caption is -% typeset with \AlTitleFnt{Algorithm:}. You can use it to have text typeset as {Algorithm:} -% of captions. Default is textbf. Default can be redefined by \SetAlTitleFnt{font}, for -% example you can do \SetAlTitleFnt{emph} -% * add CommentSty typo for text comment. -% * add some compatibility with hyperref package (still an error on multiply defined refs but -% pdf correctly generated) -% * flush text to left in order to have correct indentation even with class as amsart which -% center all figures -% * add german, portuguese and czech options for title of algorithms and typo. -% * add portuguese translation of predefined keywords * add czech translation of some -% predefined keywords -% -% - December 23 2002 - revision 2.40 -% * add some french keyword missing -% * add function* and procedure* environment like algorithme* environment: print in one column -% even if twocolumn option is specified for the document. -% * add a new macro \SetKwComment to define macro which writes comments in the text. First -% argument is the name of the macro, second is the text put before the comment, third is the -% text put at the end of the comment.Default are \tcc and \tcp -% * add new options to change the way algo are numbered: -% [algopart] algo are numbered within part (counter must exist) -% [algochapter] algo are numbered within chapter -% [algosection] algo are numbered within section -% -% - March 27 2002 - revision 2.39 -% * Gilles Geeraerts: added the \SetKwIfElseIf to manage -% if (c) -% i; -% else if (c) -% i; -% ... -% else -% i; -% end -% * Also added \gIf \gElseIf \gElse. -% -% - January 02 2001 - revision 2.38 -% * bugs related to the caption in procedure and function -% environment are corrected. -% * bug related to option noend (extra vertical space added -% after block command as If or For) is corrected. -% * czech option language added (thanks to Libor Bus: l.bus@sh.cvut.cz). -% -% - October 16 2000 - revision 2.37 -% * option algo2e added: change the name of environment -% algorithm into algorithm2e. So allow to use the package -% with some journal style which already define an algorithm -% environment. -% -% - September 13 2000 - revision 2.36 -% * option slide added: require package color -% * Hack for slide class in order to have correct -% margins -% -% - November 25 1999 - revision 2.35 -% * revision number match RCS number -% * Thanks to David A. Bader, a new option is added: -% noend: no end keywords are printed. -% -% - November 19 1999 - revision 2.32 -% * minor bug on longend option corrected. -% -% - August 26 1999 - revision 2.31 -% * add an option: figure -% this option makes algorithms be figure and so are numbered -% as figures, have Figure as caption and are put in -% the \listoffigures -% -% - January 21 1999 - revision 2.3 beta -% add 2 new environments: procedure and function. -% These environments works like algorithm environment but: -% - the ruled (or algoruled) style is imperative. -% - the caption now writes Procedure name.... -% - the syntax of the \caption command is restricted as -% follow: you MUST put a name followed by 2 braces like -% this ``()''. You can put arguments inside the braces and -% text after. If no argument is given, the braces will be -% removed in the title. -% - label now puts the name (the text before the braces in the -% caption) of the procedure or function as reference (not -% the number like a classic algorithm environment). -% There are also two new styles: ProcNameSty and -% ProcArgSty. These style are by default the same as FuncSty -% and ArgSty but are used in the caption of a procedure or a -% function. -% -% - November 28 1996 - revision 2.22 -% add a new macro \SetKwInParam{arg1}{arg2}{arg3}: -% it defines a macro \arg1{name}{arg} which prints name in keyword -% style followed byt arg surrounded by arg2 and arg3. The main -% application is to a function working as \SetKwInput to be used -% in the head of the algorithm. For example -% \SetKwInParam{Func}{(}{)} allows -% \Func{functionname}{list of arguments} which prints: -% \KwSty{functioname(}list of arguments\KwSty{)} -% -% -% - November 27 1996 - revision 2.21: -% minor bug in length of InOut boxes fixed. -% add algorithm* environment. -% -% - July 12 1996 - revision 2.2: \SetArg and \SetKwArg macros removed. -% -% \SetArg has been removed since it never has been -% documented. -% \SetKwArg has been removed since \SetKw can now -% take an argument in order to be consistent with -% \SetKwData and \SetKwFunction macros. -% -% - July 04 1996 - revision 2.1: still more LaTeX2e! Minor compatibility break -% -% Macros use now \newcommand instead of \def, use of \setlength, -% \newsavebox, ... and other LaTeX2e specific stuff. -% The compatibility break: -% - \SetData becomes \SetKwData to be more consistent. So the old -% \SetKwData becomes \SetKwInput -% - old macros \titleofalgo, \Freetitleofalgo and \freetitleofalgo -% from LaTeX209 version which did print a warning message and call -% \Titleofalgo in version 2.0 are now removed! -% -% - March 13 1996 - revision 2.0: first official major revision. -% -% -%%%%%%%%%%%%%% -% -% Known bugs: -% ----------- -% - horizontal spacing (indent) doesn't work with revtex4 class. -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% for more complete informations you can see algorithm2e.tex -% -% -%%%%%%%%%%%%%%%%%%%%%%%% Identification Part %%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -\NeedsTeXFormat{LaTeX2e}[1994/12/01] -% -\ProvidesPackage{algorithm2e}[2013/01/06 v5.00 algorithms environments] -% -% -%%%%%%%%%%%%%%%%%%%%%%%%%%% Initial Code %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -\@makeother\*% some package redefined it as a letter (as color.sty) -\def\@firstword#1 #2\@nil{#1}% an useful fonction -%%%%%%% Utilities: -% \ifArgumentEmpty ; if c is empty, i.e. {}, then t, else e. -% Function used internally, but may as well expose it to the user; it's useful -\long\def\ifArgumentEmpty#1{\bgroup - \catcode`\Q=3 - \catcode`\T=3 - \long\def\@tempa##1##2Q##3##4##5T{##4}% - \xdef\@tempa{\@tempa#1QQ{\noexpand\@secondoftwo}{\noexpand\@firstoftwo}T}% -\egroup\@tempa} -% -% \algocf@longdef -> shorthand to reduce -% \expandafter\long\expandafter\def -% to -% \expandafter\algocf@longdef -% may look insignificant, but reads that much better ;) -\def\algocf@longdef{\long\def} -% -% \algocf@newcommand (and helper \algocf@new@command) behaves like LaTeX's newcommand, -% with two differences: -% - the argument is not "\", but rather ""; i.e. one level of indirection -% - if the command exists already, then \renewcommand, rather than \newcommand -\def\algocf@newcommand#1{\expandafter\algocf@new@command\csname#1\endcsname} -\def\algocf@new@command#1{% - \begingroup \escapechar\m@ne\xdef\@gtempa{{\string#1}}\endgroup - \expandafter\@ifundefined\@gtempa\newcommand\renewcommand#1}% -% -% \algocf@newcmdside -% The largest time-saver; many commands we define have the pattern: -% \()... -% where "()" is optional. By defining them with this function, -% the arguments are parsed and renumbered, i.e. the body works as if the -% command was: -% \... -% and can use \ifArgumentEmpty to see whether its #1 exists (default case -% for the side text is (), so there's no difference between calling -% \foo{bar} -% or -% \foo(){bar} -% Technically this is new behaviour, but it shouldn't really occur... -\algocf@longdef\algocf@newcmdside#1#2#3{% - \expandafter\def\csname#1\endcsname{% - \@ifnextchar({\csname algocf@#1strip\endcsname}{\csname algocf@#1strip\endcsname()}% - }% - \expandafter\algocf@longdef\csname algocf@#1strip\endcsname(##1){\csname algocf@#1main\endcsname{##1}}% - \algocf@newcommand{algocf@#1main}[#2]{#3}% -} -% -% \algocf@newcmdsides -% Like the command above, but with an optional side text at the end -% of the command as well, i.e.: -% \()() -% It may be a bit confusing that doesn't count , -% but since it is for internal use, the naming can be a little more -% fuzzy. This function behaves as if: -% = -\algocf@longdef\algocf@newcmdsides#1#2#3#4#5{% - \expandafter\def\csname#1\endcsname{% - \@ifnextchar({\csname algocf@#1strip\endcsname}{\csname algocf@#1strip\endcsname()}% - }% - \expandafter\algocf@longdef\csname algocf@#1strip\endcsname(##1){\csname algocf@#1main\endcsname{##1}}% - \algocf@newcommand{algocf@#1main}[#2]{#3\@ifnextchar({\csname algocf@#1end\endcsname}{#4#5}}% - \expandafter\algocf@longdef\csname algocf@#1end\endcsname(##1){#4{##1}\strut\par}% -}% -% -% definition of commands which can be redefined in options of the package. -% -\newcounter{AlgoLine}% -\setcounter{AlgoLine}{0}% -% -\newcommand{\algocf@algocfref}{\relax}% -\newcommand{\listalgorithmcfname}{}% -\newcommand{\algorithmcfname}{}% -\@ifundefined{algorithmautorefname}{\newcommand{\algorithmautorefname}{algorithm}}{\renewcommand{\algorithmautorefname}{algorithm}}% -\newcommand{\algorithmcflinename}{}% -\newcommand{\algocf@typo}{}% -\newcommand{\@algocf@procname}{}\newcommand{\procedureautorefname}{}% -\newcommand{\SetAlgoProcName}[2]{\renewcommand{\@algocf@procname}{#1}\renewcommand{\procedureautorefname}{#2}}% -\newcommand{\@algocf@funcname}{}\newcommand{\functionautorefname}{}% -\newcommand{\SetAlgoFuncName}[2]{\renewcommand{\@algocf@funcname}{#1}\renewcommand{\functionautorefname}{#2}}% -\newcommand{\@algocf@titleofalgoname}{\algorithmcfname}% -\newcommand{\@algocf@algotitleofalgo}{% - \renewcommand{\@algocf@titleofalgoname}{\algorithmcfname}}% -\newcommand{\@algocf@proctitleofalgo}{% - \renewcommand{\@algocf@titleofalgoname}{\algocf@procname}}% -% -\newcommand{\algocf@style}{plain}% -\newcommand{\@ResetCounterIfNeeded}{}% -\newcommand{\@titleprefix}{}% -% -\newcommand{\algocf@numbering}[1]{\newcommand{\algocf@within}{#1}}% -% -\newcommand{\defaultsmacros@algo}{\algocf@defaults@shortend}% -% -\newcommand{\algocf@list}{loa}% -\newcommand{\algocf@float}{algocf}% -% -\newcommand{\algocf@envname}{algorithm}% -\newcommand{\algocf@listofalgorithms}{listofalgorithms}% -% -% -%% redefine chapter so that it adds a vspace in the loa as the original does for lof and lot -% \let\algocf@original@chapter=\chapter% -% \def\chapter{\expandafter\addtocontents{loa}{\protect\addvspace{10\p@}}\algocf@original@chapter}% -% -% bug correction with hyperref submitted by Hubert Meier -\begingroup\expandafter\expandafter\expandafter\endgroup -\expandafter\ifx\csname @chapter\endcsname\relax\else -% \let\algocf@original@chapter=\chapter% -% \def\chapter{\addtocontents{loa}{\protect\addvspace{10\p@}}\algocf@original@chapter}% -\let\algocf@original@chapter=\@chapter% -\def\@chapter[#1]#2{\algocf@original@chapter[#1]{#2}\addtocontents{loa}{\protect\addvspace{10\p@}}}% -\fi -% -%% if@restonecol is defined in article and book but some other classes don't define it and we need it, so we do -\ifx\if@restonecol\relax\else\newif\if@restonecol\fi% -% -% -%%%%%%%%%%%%%%%%%%%%%% Declaration of Options %%%%%%%%%%%%%%%%%%%%%%%%%%% -% -\RequirePackage{ifthen}% -% -\newboolean{algocf@displayblockmarkers}\setboolean{algocf@displayblockmarkers}{false}% -\DeclareOption{displayblockmarkers}{% - \setboolean{algocf@displayblockmarkers}{true}% -} -% -\newboolean{algocf@nokwfunc}\setboolean{algocf@nokwfunc}{false}% -\DeclareOption{nokwfunc}{% - \setboolean{algocf@nokwfunc}{true}% -}% -% -\newboolean{algocf@oldcommands}\setboolean{algocf@oldcommands}{false}% -\DeclareOption{oldcommands}{% - \setboolean{algocf@oldcommands}{true}% -}% -% -\newboolean{algocf@leftlinenumber}\setboolean{algocf@leftlinenumber}{true}% -\newcommand{\setLeftLinesNumbers}{\setboolean{algocf@leftlinenumber}{true}}% -\newcommand{\setRightLinesNumbers}{\setboolean{algocf@leftlinenumber}{false}}% -\DeclareOption{rightnl}{% - \setRightLinesNumbers% -}% -% -\newboolean{algocf@endfloat}\setboolean{algocf@endfloat}{false}% -\DeclareOption{endfloat}{% - \setboolean{algocf@endfloat}{true}% - \newcounter{postalgo}\setcounter{postalgo}{0}% -}% -% -\newboolean{algocf@procnumbered}\setboolean{algocf@procnumbered}{false}% -\DeclareOption{procnumbered}{% - \setboolean{algocf@procnumbered}{true}% -}% -% -\DeclareOption{algo2e}{% - \renewcommand{\algocf@envname}{algorithm2e}% - \renewcommand{\algocf@listofalgorithms}{listofalgorithmes}% -}% -% -\newboolean{algocf@slide}\setboolean{algocf@slide}{false}% -\DeclareOption{slide}{% - \setboolean{algocf@slide}{true}% -}% -% -\DeclareOption{figure}{% -\renewcommand{\algocf@list}{lof}% -\renewcommand{\algocf@float}{figure}% -}% -% -\newboolean{algocf@optonelanguage}\setboolean{algocf@optonelanguage}{false}% -\DeclareOption{onelanguage}{\setboolean{algocf@optonelanguage}{true}}% -% -\newcommand{\algocf@languagechoosen}{english}% -% -\DeclareOption{english}{% -\renewcommand{\listalgorithmcfname}{List of Algorithms}% -\renewcommand{\algorithmcfname}{Algorithm}% -\renewcommand{\algorithmautorefname}{algorithm}% -\renewcommand{\algorithmcflinename}{line}% -\renewcommand{\algocf@typo}{}% -\renewcommand{\@algocf@procname}{Procedure}% -\renewcommand{\@algocf@funcname}{Function}% -\renewcommand{\procedureautorefname}{procedure}% -\renewcommand{\functionautorefname}{function}% -\renewcommand{\algocf@languagechoosen}{english}% -}% -% -\DeclareOption{french}{% -\renewcommand{\listalgorithmcfname}{Liste des Algorithmes}% -\renewcommand{\algorithmcfname}{Algorithme}% -\renewcommand{\algorithmautorefname}{algorithme}% -\renewcommand{\algorithmcflinename}{ligne}% -\renewcommand{\algocf@typo}{\ }% -\renewcommand{\@algocf@procname}{Proc\'edure}% -\renewcommand{\@algocf@funcname}{Fonction}% -\renewcommand{\procedureautorefname}{proc\'edure}% -\renewcommand{\functionautorefname}{fonction}% -\renewcommand{\algocf@languagechoosen}{french}% -}% -% -\DeclareOption{czech}{% -\renewcommand{\listalgorithmcfname}{Seznam algoritm\v{u}}% -\renewcommand{\algorithmcfname}{Algoritmus}% -\renewcommand{\algorithmautorefname}{\algorithmcfname}% -\renewcommand{\algorithmcflinename}{Radek}% -\renewcommand{\algocf@typo}{}% -\renewcommand{\@algocf@procname}{Procedura}% -\renewcommand{\@algocf@funcname}{Funkce}% -\renewcommand{\procedureautorefname}{\@algocf@procname}% -\renewcommand{\functionautorefname}{\@algocf@funcname}% -\renewcommand{\algocf@languagechoosen}{czech}% -}% -% -\DeclareOption{german}{% -\renewcommand{\listalgorithmcfname}{Liste der Algorithmen}% -\renewcommand{\algorithmcfname}{Algorithmus}% -\renewcommand{\algorithmautorefname}{\algorithmcfname}% -\renewcommand{\algorithmcflinename}{Zeile}% -\renewcommand{\algocf@typo}{\ }% -\renewcommand{\@algocf@procname}{Prozedur}% -\renewcommand{\@algocf@funcname}{Funktion}% -\renewcommand{\procedureautorefname}{\@algocf@procname}% -\renewcommand{\functionautorefname}{\@algocf@funcname}% -\renewcommand{\algocf@languagechoosen}{german}% -}% -% -\DeclareOption{ngerman}{% -\renewcommand{\listalgorithmcfname}{Liste der Algorithmen}% -\renewcommand{\algorithmcfname}{Algorithmus}% -\renewcommand{\algorithmautorefname}{\algorithmcfname}% -\renewcommand{\algorithmcflinename}{Zeile}% -\renewcommand{\algocf@typo}{\ }% -\renewcommand{\@algocf@procname}{Prozedur}% -\renewcommand{\@algocf@funcname}{Funktion}% -\renewcommand{\procedureautorefname}{\@algocf@procname}% -\renewcommand{\functionautorefname}{\@algocf@funcname}% -\renewcommand{\algocf@languagechoosen}{german}% -}% -% -\DeclareOption{portuguese}{% -\renewcommand{\listalgorithmcfname}{Lista de Algoritmos}% -\renewcommand{\algorithmcfname}{Algoritmo}% -\renewcommand{\algorithmautorefname}{algoritmo}% -\renewcommand{\algorithmcflinename}{linha}% -\renewcommand{\algocf@typo}{}% -\renewcommand{\@algocf@procname}{Procedimento}% -\renewcommand{\@algocf@funcname}{Fun\c{c}\~{a}o}% -\renewcommand{\procedureautorefname}{procedimento}% -\renewcommand{\functionautorefname}{fun\c{c}\~{a}o}% -\renewcommand{\algocf@languagechoosen}{portuguese}% -}% -% -\DeclareOption{italiano}{% -\renewcommand{\listalgorithmcfname}{Elenco degli algoritmi}% -\renewcommand{\algorithmcfname}{Algoritmo}% -\renewcommand{\algorithmautorefname}{algoritmo}% -\renewcommand{\algorithmcflinename}{riga}% -\renewcommand{\algocf@typo}{}% -\renewcommand{\@algocf@procname}{Procedura}% -\renewcommand{\@algocf@funcname}{Funzione}% -\renewcommand{\procedureautorefname}{procedura}% -\renewcommand{\functionautorefname}{funzione}% -\renewcommand{\algocf@languagechoosen}{italiano}% -}% -\DeclareOption{spanish}{% -\renewcommand{\listalgorithmcfname}{\'Indice de algoritmos}% -\renewcommand{\algorithmcfname}{Algoritmo}% -\renewcommand{\algorithmautorefname}{algoritmo}% -\renewcommand{\algorithmcflinename}{l\'inea}% -\renewcommand{\algocf@typo}{}% -\renewcommand{\@algocf@procname}{Procedimiento}% -\renewcommand{\@algocf@funcname}{Funci\'on}% -\renewcommand{\procedureautorefname}{procedimiento}% -\renewcommand{\functionautorefname}{funci\'on}% -\renewcommand{\algocf@languagechoosen}{spanish}% -}% -\DeclareOption{slovak}{% -\renewcommand{\listalgorithmcfname}{Zoznam algoritmov}% -\renewcommand{\algorithmcfname}{Algoritmus}% -\renewcommand{\algorithmautorefname}{\algorithmcfname}% -\renewcommand{\algorithmcflinename}{Radek}% -\renewcommand{\algocf@typo}{}% -\renewcommand{\@algocf@procname}{Proced\'{u}ra}% -\renewcommand{\@algocf@funcname}{Funkcia}% -\renewcommand{\procedureautorefname}{\@algocf@procname}% -\renewcommand{\functionautorefname}{\@algocf@funcname}% -\renewcommand{\algocf@languagechoosen}{slovak}% -}% -% -\DeclareOption{croatian}{% -\renewcommand{\listalgorithmcfname}{Popis algoritama}% -\renewcommand{\algorithmcfname}{Algoritam}% -\renewcommand{\algorithmautorefname}{\algorithmcfname}% -\renewcommand{\algorithmcflinename}{linija}% -\renewcommand{\algocf@typo}{}% -\renewcommand{\@algocf@procname}{Procedura}% -\renewcommand{\@algocf@funcname}{Funkcija}% -\renewcommand{\procedureautorefname}{\@algocf@procname}% -\renewcommand{\functionautorefname}{\@algocf@funcname}% -\renewcommand{\algocf@languagechoosen}{croatian}% -}% -% -% OPTIONs plain, boxed, ruled, algoruled & boxruled -% -\newcommand{\algocf@style@plain}{\renewcommand{\algocf@style}{plain}}% -\newcommand{\algocf@style@boxed}{\renewcommand{\algocf@style}{boxed}}% -\newcommand{\algocf@style@ruled}{\renewcommand{\algocf@style}{ruled}}% -\newcommand{\algocf@style@algoruled}{\renewcommand{\algocf@style}{algoruled}}% -\newcommand{\algocf@style@boxruled}{\renewcommand{\algocf@style}{boxruled}}% -\newcommand{\algocf@style@tworuled}{\renewcommand{\algocf@style}{tworuled}}% -\newcommand{\algocf@style@plainruled}{\renewcommand{\algocf@style}{plainruled}}% -\newcommand{\RestyleAlgo}[1]{\csname algocf@style@#1\endcsname}% -\DeclareOption{plain}{\algocf@style@plain}% -\DeclareOption{plainruled}{\algocf@style@plainruled}% -\DeclareOption{boxed}{\algocf@style@boxed}% -\DeclareOption{ruled}{\algocf@style@ruled}% -\DeclareOption{algoruled}{\algocf@style@algoruled}% -\DeclareOption{boxruled}{\algocf@style@boxruled}% -\DeclareOption{tworuled}{\algocf@style@tworuled}% -% -% OPTIONs algopart,algochapter & algosection -% -\DeclareOption{algopart}{\algocf@numbering{part}}% %algo part numbered -\DeclareOption{algochapter}{\algocf@numbering{chapter}}% %algo chapter numbered -\DeclareOption{algosection}{\algocf@numbering{section}}% %algo section numbered -% -% OPTIONs resetcount & noresetcount -% -\DeclareOption{resetcount}{\renewcommand{\@ResetCounterIfNeeded}{\setcounter{AlgoLine}{0}}}% -\DeclareOption{noresetcount}{\renewcommand{\@ResetCounterIfNeeded}{}}% -% -% OPTION linesnumbered -% -\newboolean{algocf@linesnumbered}\setboolean{algocf@linesnumbered}{false}% -\newcommand{\algocf@linesnumbered}{\relax}% -\DeclareOption{linesnumbered}{% - \setboolean{algocf@linesnumbered}{true}% - \renewcommand{\algocf@linesnumbered}{\everypar={\nl}}% -}% -% -% OPTION linesnumberedhidden -% -\DeclareOption{linesnumberedhidden}{% - \setboolean{algocf@linesnumbered}{true}% - \renewcommand{\algocf@linesnumbered}{\everypar{\stepcounter{AlgoLine}}}% -}% -% -% OPTION commentsnumbered inoutnumbered -% -\newboolean{algocf@commentsnumbered}\setboolean{algocf@commentsnumbered}{false}% -\DeclareOption{commentsnumbered}{\setboolean{algocf@commentsnumbered}{true}}% -\newboolean{algocf@inoutnumbered}\setboolean{algocf@inoutnumbered}{false}% -\DeclareOption{inoutnumbered}{\setboolean{algocf@inoutnumbered}{true}}% -% -% OPTIONs titlenumbered & titlenotnumbered -% -\DeclareOption{titlenumbered}{% - \renewcommand{\@titleprefix}{% - \refstepcounter{\algocf@float}% - \AlTitleSty{\AlTitleFnt\@algocf@titleofalgoname\ \expandafter\csname the\algocf@float\endcsname\algocf@typo: }% - }% -}% -% -\DeclareOption{titlenotnumbered}{\renewcommand{\@titleprefix}{% - \AlTitleSty{\AlTitleFnt\@algocf@titleofalgoname\algocf@typo: }}% -}% -% -% OPTIONs algonl -% line numbered with the counter of the algorithm -% -\DeclareOption{algonl}{\renewcommand{\theAlgoLine}{\expandafter\csname the\algocf@float\endcsname.\arabic{AlgoLine}}}% -% -% OPTIONs lined, vlined & noline -% -\DeclareOption{lined}{\AtBeginDocument{\SetAlgoLined}}% \SetAlgoLined -\DeclareOption{vlined}{\AtBeginDocument{\SetAlgoVlined}}% \SetAlgoVlined -\DeclareOption{noline}{\AtBeginDocument{\SetAlgoNoLine}}%\SetAlgoNoLine (default) -% -% OPTIONs longend, shotend & noend -% -\DeclareOption{longend}{\AtBeginDocument{\SetAlgoLongEnd}}% \SetAlgoLongEnd -\DeclareOption{shortend}{\AtBeginDocument{\SetAlgoShortEnd}}%\SetAlgoShortEnd -\DeclareOption{noend}{\AtBeginDocument{\SetAlgoNoEnd}}% \SetAlgoNoEnd -% -\DeclareOption{nosemicolon}{\AtBeginDocument{\DontPrintSemicolon}}% \SetAlgoNoEnd -% -% OPTION dotoc -% -\newboolean{algocf@dotocloa}\setboolean{algocf@dotocloa}{false}% -\DeclareOption{dotocloa}{% - \setboolean{algocf@dotocloa}{true}% -} -% -% OPTION comments -% -\newboolean{algocf@optfillcomment}\setboolean{algocf@optfillcomment}{true}% -\DeclareOption{nofillcomment}{% - \setboolean{algocf@optfillcomment}{false}% -}% -\DeclareOption{fillcomment}{% - \setboolean{algocf@optfillcomment}{true}% -}% -% -% OPTION sidecommments -% -\newboolean{algocf@scleft}\setboolean{algocf@scleft}{false}% -\DeclareOption{scleft}{% - \setboolean{algocf@scleft}{true}% -}% -\DeclareOption{sright}{% default - \setboolean{algocf@scleft}{false}% -}% -% -% OPTION norelsize -% -\newboolean{algocf@norelsize}\setboolean{algocf@norelsize}{false}% -\DeclareOption{norelsize}{% - \setboolean{algocf@norelsize}{true}% -}% -% -% -%%%%%%%%%%%%%%%%%%%%%%% Execution of Options %%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -\ExecuteOptions{english,plain,resetcount,titlenotnumbered,lined,shortend}% -% -\ProcessOptions% -% -\@algocf@algotitleofalgo% fix name for \TitleOfAlgo to \algorithmcfname by default -% -%%%%%%%%%%%%%%%%%%%%%%%%%% Package Loading %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% -\RequirePackage{xspace}% -% -\ifthenelse{\boolean{algocf@endfloat}}{% - \RequirePackage{endfloat}% -}{\relax}% -% -\ifthenelse{\boolean{algocf@norelsize}}{% - \newcommand{\relsize}[1]{\scriptsize}% -}{% - \RequirePackage{relsize}% -}% -% -\ifthenelse{\boolean{algocf@slide}}{\RequirePackage{color}}{}% -% -% -\AtEndOfPackage{% - \ifthenelse{\boolean{algocf@dotocloa}}{% - \renewcommand{\listofalgorithms}{\tocfile{\listalgorithmcfname}{loa}}% - }{\relax}% -}% -% -% if loa in toc required, load tocbibind package if not already done. -\ifthenelse{\boolean{algocf@dotocloa}}{% - \ifx\@tocextra\undefined% - \RequirePackage{tocbibind}% - \fi% -}{\relax}% -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Main Part %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -\newcommand{\algocf@name}{algorithm2e}% -\newcommand{\algocf@date}{january 06 2013}% -\newcommand{\algocf@version}{Release 5.0}% -\newcommand{\algocf@id}{\algocf@version\space -- \algocf@date\space --}% -\typeout{********************************************************^^JPackage `\algocf@name'\space\algocf@id^^J% - - algorithm2e-announce@lirmm.fr mailing list for announcement about releases^^J% - - algorithm2e-discussion@lirmm.fr mailing list for discussion about package^^J% - subscribe by emailing sympa@lirmm.fr with 'subscribe '^^J% - - Author: Christophe Fiorio (cfiorio@um2.fr)^^J********************************************************}% -%% -%% -%% -%% -%% -%% -%%%% hyperref compatibility tricks: Hyperref package defines H counters from - % standard counters (i.e \theHpage from \thepage) and check some particular - % counters of some packages, unfortunately it doesn't do the same for - % algorithm2e package but act as Hcounter was defined. To avoid errors we - % defined \theHalgocf ourself -%%%% -% -\@ifundefined{theHalgocf}{\def\theHalgocf{\thealgocf}}{}% -\@ifundefined{theHAlgoLine}{\def\theHAlgoLine{\theAlgoLine}}{}% -\@ifundefined{theHalgocfproc}{\def\theHalgocfproc{0}}{}% -\@ifundefined{theHalgocffunc}{\def\theHalgocffunc{0}}{}% -\@ifundefined{toclevel@algocf}{\def\toclevel@algocf{0}}{}% -% -% autoref from hyperref needs an autorefname, so we give it. -\def\AlgoLineautorefname{\algorithmcflinename}% -\def\algocfautorefname{\algorithmautorefname}% -\def\algocfprocautorefname{\procedureautorefname}% -\def\algocffuncautorefname{\functionautorefname}% -%% -%% -%% -\newcommand{\@defaultskiptotal}{0.5em}% -\newskip\skiptotal\skiptotal=0.5em% -\newskip\skiplinenumber\skiplinenumber=\hsize\advance\skiplinenumber by-\skiptotal% -\newskip\skiprule% -\newskip\skiphlne% -\newskip\skiptext% -\newskip\skiplength% -\newskip\algomargin% -\newskip\skipalgocfslide\skipalgocfslide=1em% -\newdimen\algowidth% -\newdimen\inoutsize% -\newdimen\inoutindent% -\newdimen\interspacetitleruled\setlength{\interspacetitleruled}{2pt}% -\newdimen\interspacealgoruled\setlength{\interspacealgoruled}{2pt}% -\newdimen\interspacetitleboxruled\setlength{\interspacetitleboxruled}{2\lineskip}% -% -\newcommand{\@algoskip}{\smallskip}% -\newcommand{\SetAlgoSkip}[1]{\renewcommand{\@algoskip}{\csname#1\endcsname}}% -\newcommand{\@algoinsideskip}{\relax}% -\newcommand{\SetAlgoInsideSkip}[1]{\renewcommand{\@algoinsideskip}{\csname#1\endcsname}}% -% -\newsavebox{\algocf@inoutbox}% -\newsavebox{\algocf@inputbox}% -%% -%% -\newcommand{\arg@e}{}% -\newcommand{\arg@space}{\ }% -\newcommand{\BlankLine}{\vskip 1ex}% -%% -\newcommand{\vespace}{1ex}% -\newcommand{\SetInd}[2]{% -\skiprule=#1% -\skiptext=#2% -\skiplength=\skiptext\advance\skiplength by \skiprule\advance\skiplength by 0.4pt}% -\SetInd{0.5em}{1em} -\algomargin=\leftskip\advance\algomargin by \parindent% -\newcommand{\IncMargin}[1]{\advance\algomargin by #1}% -\newcommand{\DecMargin}[1]{\advance\algomargin by -#1}% -\newcommand{\SetNlSkip}[1]{% - \renewcommand{\@defaultskiptotal}{#1}% - \setlength{\skiptotal}{#1}}% -%% -\newskip\AlCapSkip\AlCapSkip=0ex% -\newskip\AlCapHSkip\AlCapSkip=0ex% -\newcommand{\SetAlCapSkip}[1]{\setlength{\AlCapSkip}{#1}}% -\newcommand{\SetAlCapHSkip}[1]{\setlength{\AlCapHSkip}{#1}}% -\SetAlCapHSkip{.5\algomargin}% -%% -%% -\newskip\algoskipindent -\newcommand{\algocf@adjustskipindent}{% - \algoskipindent=\skiprule% - \advance\algoskipindent by \skiptext\advance\algoskipindent by 0.4pt} -\algocf@adjustskipindent% -% -\newcommand{\Indentp}[1]{\advance\leftskip by #1}% -\newcommand{\Indp}{\algocf@adjustskipindent\advance\leftskip by \algoskipindent} -\newcommand{\Indpp}{\advance\leftskip by 0.5em}% -\newcommand{\Indm}{\algocf@adjustskipindent\advance\leftskip by -\algoskipindent} -\newcommand{\Indmm}{\advance\leftskip by -0.5em}% -%% -%% -%% Line Numbering -%% -%% -% number line style -\newcommand{\algocf@nlrelsize}{-2}\newcommand{\SetAlgoNlRelativeSize}[1]{\renewcommand{\algocf@nlrelsize}{#1}}% -\newcommand{\NlSty}[1]{\textnormal{\textbf{\relsize{\algocf@nlrelsize}#1}}}% default definition -\newcommand{\SetNlSty}[3]{\renewcommand{\NlSty}[1]{\textnormal{\csname#1\endcsname{\relsize{\algocf@nlrelsize}#2##1#3}}}}% -% -% nl definitions -% -\newsavebox{\algocf@nlbox}% -\newcommand{\algocf@printnl}[1]{% - \ifthenelse{\boolean{algocf@leftlinenumber}}{% - \skiplinenumber=\skiptotal\advance\skiplinenumber by\leftskip% - \strut\raisebox{0pt}{\llap{\NlSty{#1}\kern\skiplinenumber}}\ignorespaces% - }{% - \sbox\algocf@nlbox{\NlSty{#1}}% - \skiplinenumber=\hsize\advance\skiplinenumber by-\leftskip\advance\skiplinenumber by-\skiptext% - \advance\skiplinenumber by\algomargin\advance\skiplinenumber by.3em\advance\skiplinenumber by-\wd\algocf@nlbox% - % to handle particular case of until: printnl is after 'until' keyword has been writen, so we need to substract length of this keyword - \advance\skiplinenumber by-\algocf@skipuntil% - \strut\raisebox{0pt}{\rlap{\kern\skiplinenumber\NlSty{#1\ignorespaces}}}\ignorespaces% - }% -}% -\newcommand{\algocf@nl@sethref}[1]{% - \renewcommand{\theHAlgoLine}{\thealgocfproc.#1}% - \hyper@refstepcounter{AlgoLine}\gdef\@currentlabel{#1}% -}% -\newcommand{\nl}{% - \@ifundefined{hyper@refstepcounter}{% if not hyperref then do a simple refstepcounter - \refstepcounter{AlgoLine}% - }{% else if hyperref, do the anchor so 2 lines in two differents algorithms cannot have the same href - \stepcounter{AlgoLine}\algocf@nl@sethref{\theAlgoLine}% - }% now we can do the line numbering - \algocf@printnl{\theAlgoLine}% -}% -% -\newcommand{\nllabel}[1]{\label{#1}}% -% -\newcommand{\enl}{% - \@ifundefined{hyper@refstepcounte}{% if not hyperref then do a simple refstepcounter - \refstepcounter{AlgoLine}% - }{% else if hyperref, do the anchor so 2 lines in two differents algorithms cannot have the same href - \stepcounter{AlgoLine}\algocf@nl@sethref{\theAlgoLine}% - }% now we can do the line numbering - \skiplinenumber=\hsize\advance\skiplinenumber by-\leftskip% - \strut\raisebox{0pt}{\rlap{\kern\skiplinenumber\strut\NlSty{\theAlgoLine}}}\ignorespaces% -}% -%% nlset -\newcommand{\nlset}[1]{% - \@ifundefined{hyper@refstepcounter}{\protected@edef\@currentlabel{#1}}{\algocf@nl@sethref{#1}}\algocf@printnl{#1}% -}% -% -%% lnl definitions -\newcommand{\lnl}[1]{\nl\label{#1}\ignorespaces}% -% -%% lnlset -\newcommand{\lnlset}[2]{\nlset{#2}\label{#1}}% -% -% set char put at end of each line -% -\newcommand{\algocf@endline}{\string;} -\newcommand{\SetEndCharOfAlgoLine}[1]{\renewcommand{\algocf@endline}{#1}} -% -% end of line definition -% -\newcommand{\@endalgocfline}{\algocf@endline}% default definition: printsemicolon -\newcommand{\DontPrintSemicolon}{\renewcommand{\@endalgocfline}{\relax}}% -\newcommand{\PrintSemicolon}{\renewcommand{\@endalgocfline}{\algocf@endline}}% -\newcommand{\@endalgoln}{\@endalgocfline\hfill\strut\par}% -% -% line numbering -% -\newcommand{\LinesNumbered}{\setboolean{algocf@linesnumbered}{true}\renewcommand{\algocf@linesnumbered}{\everypar={\nl}}}% -\newcommand{\LinesNotNumbered}{% - \setboolean{algocf@linesnumbered}{false}% - \renewcommand{\algocf@linesnumbered}{\relax}% -}% -% -\newcommand{\LinesNumberedHidden}{% - \setboolean{algocf@linesnumbered}{true}\renewcommand{\algocf@linesnumbered}{\everypar{\stepcounter{AlgoLine}}}}% -\newcommand{\ShowLn}{\nlset{\theAlgoLine}\ignorespaces}% display the line number on this line (without labelling) -\newcommand{\ShowLnLabel}[1]{\lnlset{#1}{\theAlgoLine}\ignorespaces}% display the line number and label this line -% -%% -% -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Styling text commands -% -\newcommand{\AlFnt}{\relax}% default definition -\newcommand{\SetAlFnt}[1]{\renewcommand{\AlFnt}{#1}}% -\newcommand{\AlTitleFnt}{\relax}% default definition -\newcommand{\SetAlTitleFnt}[1]{\renewcommand{\AlTitleFnt}{#1}}% -% -\newcommand{\AlCapFnt}{\relax}% default definition -\newcommand{\SetAlCapFnt}[1]{\renewcommand{\AlCapFnt}{#1}}% -\newcommand{\AlCapNameFnt}{\relax}% default definition -\newcommand{\SetAlCapNameFnt}[1]{\renewcommand{\AlCapNameFnt}{#1}}% -% -\newcommand{\ProcFnt}{\relax}% default definition -\newcommand{\SetProcFnt}[1]{\renewcommand{\ProcFnt}{#1}}% -\newcommand{\ProcNameFnt}{\relax}% default definition -\newcommand{\SetProcNameFnt}[1]{\renewcommand{\ProcNameFnt}{#1}}% -\newcommand{\ProcArgFnt}{\relax}% default definition -\newcommand{\SetProcArgFnt}[1]{\renewcommand{\ProcArgFnt}{#1}}% -% -\newcommand{\AlTitleSty}[1]{\textbf{#1}\unskip}% default definition -\newcommand{\SetAlTitleSty}[1]{\renewcommand{\AlTitleSty}[1]{\textnormal{\csname#1\endcsname{##1}}\unskip}}% -\newcommand{\AlCapSty}[1]{\textnormal{\textbf{#1}}\unskip}% default definition -\newcommand{\SetAlCapSty}[1]{\renewcommand{\AlCapSty}[1]{\textnormal{\csname#1\endcsname{##1}}\unskip}}% -\newcommand{\AlCapNameSty}[1]{\textnormal{#1}\unskip}% default definition -\newcommand{\SetAlCapNameSty}[1]{\renewcommand{\AlCapNameSty}[1]{\textnormal{\csname #1\endcsname{##1}}\unskip}}% -% -\newcommand{\ProcSty}[1]{\AlCapSty{#1}}% -\newcommand{\SetProcSty}[1]{\renewcommand{\ProcSty}[1]{\textnormal{\csname#1\endcsname{##1}}\unskip}}% -\newcommand{\ProcNameSty}[1]{\AlCapNameSty{#1}}% -\newcommand{\SetProcNameSty}[1]{\renewcommand{\ProcNameSty}[1]{\textnormal{\csname#1\endcsname{##1}}\unskip}}% -\newcommand{\ProcArgSty}[1]{\AlCapNameSty{#1}}% -\newcommand{\SetProcArgSty}[1]{\renewcommand{\ProcArgSty}[1]{\textnormal{\csname#1\endcsname{##1}}\unskip}}% -% -\newcommand{\KwSty}[1]{\textnormal{\textbf{#1}}\unskip}% default definition -\newcommand{\SetKwSty}[1]{\renewcommand{\KwSty}[1]{\textnormal{\csname#1\endcsname{##1}}\unskip}}% -\newcommand{\ArgSty}[1]{\textnormal{\emph{#1}}\unskip}%\SetArgSty{emph} -\newcommand{\SetArgSty}[1]{\renewcommand{\ArgSty}[1]{\textnormal{\csname#1\endcsname{##1}}\unskip}}% -\newcommand{\FuncSty}[1]{\textnormal{\texttt{#1}}\unskip}%\SetFuncSty{texttt} -\newcommand{\SetFuncSty}[1]{\renewcommand{\FuncSty}[1]{\textnormal{\csname#1\endcsname{##1}}\unskip}}% -\newcommand{\DataSty}[1]{\textnormal{\textsf{#1}}\unskip}%%\SetDataSty{textsf} -\newcommand{\SetDataSty}[1]{\renewcommand{\DataSty}[1]{\textnormal{\csname#1\endcsname{##1}}\unskip}}% -\newcommand{\CommentSty}[1]{\textnormal{\texttt{#1}}\unskip}%%\SetDataSty{texttt} -\newcommand{\SetCommentSty}[1]{\renewcommand{\CommentSty}[1]{\textnormal{\csname#1\endcsname{##1}}\unskip}}% -\newcommand{\TitleSty}[1]{#1\unskip}%\SetTitleSty{}{} -\newcommand{\SetTitleSty}[2]{\renewcommand{\TitleSty}[1]{% -\csname#1\endcsname{\csname#2\endcsname##1}}\unskip}% -\newcommand{\BlockMarkersSty}[1]{\KwSty{#1}}% -\newcommand{\SetBlockMarkersSty}[1]{\renewcommand{\BlockMarkersSty}[1]{\textnormal{\csname#1\endcsname{##1}}\unskip}}% -% -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Block basic commands -% -\newcommand{\algocf@push}[1]{\advance\skiptotal by #1\moveright #1}% -\newcommand{\algocf@pop}[1]{\advance\skiptotal by -#1}% -\newcommand{\algocf@addskiptotal}{\advance\skiptotal by 0.4pt\advance\hsize by -0.4pt\advance\hsize by -\skiplength}% 0.4 pt=width of \vrule -\newcommand{\algocf@subskiptotal}{\advance\skiptotal by -0.4pt\advance\hsize by 0.4pt\advance\hsize by \skiplength}% 0.4 pt=width of \vrule -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% -%% group of instructions definition -% -\skiphlne=.8ex% -\newcommand{\SetVlineSkip}[1]{\skiphlne=#1}% -\newcommand{\algocf@bblock}{\BlockMarkersSty{begin}}% -\newcommand{\algocf@eblock}{\BlockMarkersSty{end}}% -\newcommand{\AlgoDisplayBlockMarkers}{\setboolean{algocf@displayblockmarkers}{true}}% -\newcommand{\AlgoDontDisplayBlockMarkers}{\setboolean{algocf@displayblockmarkers}{false}}% -\newcommand{\algocf@bblockcode}{% - \ifthenelse{\boolean{algocf@displayblockmarkers}}{\algocf@bblock\par}{\relax}% -}% -\newcommand{\algocf@eblockcode}{% - \ifthenelse{\boolean{algocf@displayblockmarkers}}{\algocf@eblock\par}{\relax}% -}% -\newcommand{\SetAlgoBlockMarkers}[2]{% - \ifArgumentEmpty{#1}{% - \renewcommand{\algocf@bblock}{\relax}% - }{% - \renewcommand{\algocf@bblock}{\BlockMarkersSty{#1}}% - }% begin marker set - \ifArgumentEmpty{#2}{% - \renewcommand{\algocf@eblock}{\relax}% - }{% - \renewcommand{\algocf@eblock}{\BlockMarkersSty{#2}}% - }% end marker set -} -% -%%%%%%%%% block with a vertical line end by a little horizontal line -\newcommand{\algocf@Vline}[1]{% no vskip in between boxes but a strut to separate them, - \strut\par\nointerlineskip% then interblock space stay the same whatever is inside it - \algocf@push{\skiprule}% move to the right before the vertical rule - \hbox{\vrule% - \vtop{\algocf@push{\skiptext}%move the right after the rule - \vtop{\algocf@addskiptotal #1}\Hlne}}\vskip\skiphlne% inside the block - \algocf@pop{\skiprule}%\algocf@subskiptotal% restore indentation - \nointerlineskip}% no vskip after -% -%%%%%%%%% block with a vertical line -\newcommand{\algocf@Vsline}[1]{% no vskip in between boxes but a strut to separate them, - \strut\par\nointerlineskip% then interblock space stay the same whatever is inside it - \algocf@bblockcode% - \algocf@push{\skiprule}% move to the right before the vertical rule - \hbox{\vrule% the vertical rule - \vtop{\algocf@push{\skiptext}%move the right after the rule - \vtop{\algocf@addskiptotal #1}}}% inside the block - \algocf@pop{\skiprule}% restore indentation - \algocf@eblockcode% -} -% -\newcommand{\algocf@Hlne}{\hrule height 0.4pt depth 0pt width .5em}% -% -%%%%%%%%% block without line -\newcommand{\algocf@Noline}[1]{% no vskip in between boxes but a strut to separate them, - \strut\par\nointerlineskip% then interblock space stay the same whatever is inside it - \algocf@bblockcode% - \algocf@push{\skiprule}% - \hbox{% - \vtop{\algocf@push{\skiptext}% - \vtop{\algocf@addskiptotal #1}}}% inside the block - \algocf@pop{\skiprule}% - \algocf@eblockcode% - % \nointerlineskip% no vskip after -}% -%%%%%%%%% -% -%% default=NoLine -% -\newcommand{\algocf@group}[1]{\algocf@Noline{#1}}% group: set of instruction depending from another (ex: then part of the If) -\newcommand{\algocf@@@block}[2]{#1\ifArgumentEmpty{#2}{\relax}{\KwSty{\@algocf@endoption{#2}}\strut\par}}% block: group with a end keyword. -\newcommand{\algocf@@block}[2]{\algocf@@@block{#1}{#2}}% block: group with a end keyword. -\newcommand{\algocf@block}[2]{\algocf@@block{#1}{#2}}% command that will be used and redefined accordingly to noend option -\newcommand{\algocf@setBlock}{% - \ifthenelse{\boolean{algocf@optnoend}}{% if no end option - \renewcommand{\algocf@block}[2]{\algocf@group{##1}}% block will be a group - }{% else - \renewcommand{\algocf@block}[2]{\algocf@@block{##1}{##2}}% block stays a block - }% -}% -% -\newcommand{\Hlne}{}% little hrizontal line ending a block in vline mode -% -\newcommand{\@algocf@endoption}[1]{#1}% -\newboolean{algocf@optnoend}\setboolean{algocf@optnoend}{false}% -% -\newcommand{\SetAlgoLongEnd}{%%%%%%%%%%%%%%%%%%%%%%%%% Long End - \setboolean{algocf@optnoend}{false}% - \renewcommand{\@algocf@endoption}[1]{##1}% - \algocf@setBlock}% -% -\newcommand{\SetAlgoShortEnd}{%%%%%%%%%%%%%%%%%%%%%%%% ShortEnd - \setboolean{algocf@optnoend}{false}% - \renewcommand{\@algocf@endoption}[1]{\@firstword##1 \@nil}% - \algocf@setBlock}% -% -\newcommand{\SetAlgoNoEnd}{%%%%%%%%%%%%%%%%%%%%%%%%%%% NoEnd - \setboolean{algocf@optnoend}{true}% - \renewcommand{\@algocf@endoption}[1]{}% - \algocf@setBlock}% -% -\newcommand{\SetAlgoNoLine}{%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Noline -\renewcommand{\algocf@@block}[2]{\algocf@@@block{\algocf@Noline{##1}}{##2}}% -\renewcommand{\algocf@group}[1]{\algocf@Noline{##1}}% -\renewcommand{\Hlne}{}}% -% -\newcommand{\SetAlgoVlined}{%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Vline -\renewcommand{\algocf@@block}[2]{\algocf@Vline{##1}}% -\renewcommand{\algocf@group}[1]{\algocf@Vsline{##1}}%\ifthenelse{\boolean{algocf@optnoend}}{\relax}{\strut\ignorespaces}}% -\renewcommand{\Hlne}{\algocf@Hlne}}% -% -\newcommand{\SetAlgoLined}{%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Line -\renewcommand{\algocf@@block}[2]{\algocf@@@block{\strut\algocf@Vsline{##1}}{##2}}% no skip after a block so garantie at least one line -\renewcommand{\algocf@group}[1]{\algocf@Vsline{##1}}%\ifthenelse{\boolean{algocf@optnoend}}{\relax}{\strut\ignorespaces}}% -\renewcommand{\Hlne}{}}% -% -\newcommand{\SetNothing}{%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Noline -\renewcommand{\algocf@@block}[2]{\algocf@Noline{##1}\par}% -%\long -\renewcommand{\algocf@group}[1]{\algocf@Noline{##1}}% -\renewcommand{\Hlne}{}}% -% -%% -%% -% -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% ``Input:'''s like command -% -%%% -% text staying at the right of the longer keyword of KwInOut commands -% (text of KwInOut commands are all vertically aligned) -% -\newcommand{\algocf@newinout}{\par\parindent=\inoutindent}% to put right indentation after a \\ in the KwInOut -\newcommand{\SetKwInOut}[2]{% - \sbox\algocf@inoutbox{\KwSty{#2}\algocf@typo:}% - \expandafter\ifx\csname InOutSizeDefined\endcsname\relax% if first time used - \newcommand\InOutSizeDefined{}\setlength{\inoutsize}{\wd\algocf@inoutbox}% - \sbox\algocf@inoutbox{\parbox[t]{\inoutsize}{\KwSty{#2}\algocf@typo\hfill:}~}\setlength{\inoutindent}{\wd\algocf@inoutbox}% - \else% else keep the larger dimension - \ifdim\wd\algocf@inoutbox>\inoutsize% - \setlength{\inoutsize}{\wd\algocf@inoutbox}% - \sbox\algocf@inoutbox{\parbox[t]{\inoutsize}{\KwSty{#2}\algocf@typo\hfill:}~}\setlength{\inoutindent}{\wd\algocf@inoutbox}% - \fi% - \fi% the dimension of the box is now defined. - \algocf@newcommand{#1}[1]{% - \ifthenelse{\boolean{algocf@inoutnumbered}}{\relax}{\everypar={\relax}}% -% {\let\\\algocf@newinout\hangindent=\wd\algocf@inoutbox\hangafter=1\parbox[t]{\inoutsize}{\KwSty{#2}\algocf@typo\hfill:}~##1\par}% - {\let\\\algocf@newinout\hangindent=\inoutindent\hangafter=1\parbox[t]{\inoutsize}{\KwSty{#2}\algocf@typo\hfill:}~##1\par}% - \algocf@linesnumbered% reset the numbering of the lines - }}% -% -%% allow to ajust the skip size of InOut -%% -\newcommand{\ResetInOut}[1]{% - \sbox\algocf@inoutbox{\hbox{\KwSty{#1}\algocf@typo:\ }}% - \setlength{\inoutsize}{\wd\algocf@inoutbox}% - }% -% -% -%%% -% text staying at the right of the keyword. -% -\newcommand{\algocf@newinput}{\par\parindent=\wd\algocf@inputbox}% to put right indentation after a \\ in the KwInput -\newcommand{\SetKwInput}[2]{% - \algocf@newcommand{#1}[1]{% - \sbox\algocf@inputbox{\hbox{\KwSty{#2}\algocf@typo: }}% - \ifthenelse{\boolean{algocf@inoutnumbered}}{\relax}{\everypar={\relax}}% - {\let\\\algocf@newinput\hangindent=\wd\algocf@inputbox\hangafter=1\unhbox\algocf@inputbox##1\par}% - \algocf@linesnumbered% reset the numbering of the lines - }}% -\newcommand{\SetKwData}[2]{% - \algocf@newcommand{@#1}[1]{\DataSty{#2(}\ArgSty{##1}\DataSty{)}}% - \algocf@newcommand{#1}{% - \@ifnextchar\bgroup{\csname @#1\endcsname}{\DataSty{#2}\xspace}}% - }% -% -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% tallent: -% -% Add following macros: -% \SetKwHangingKw: [kw] ------------ <= hanging determined by [kw] -% ------------ -% Should act like a combination of \SetKwInput and \SetKw. -% Based on \SetKwInput: -% - remove ':' at end of keyword -% - do not reset numbering -% - use separate savebox -\newsavebox{\algocf@hangingbox} -\newcommand{\algocf@newhanging}{\par\parindent=\wd\algocf@hangingbox}% to put right indentation after a \\ in the KwInput -\newcommand{\SetKwHangingKw}[2]{% - \algocf@newcommand{#1}[1]{% - \sbox\algocf@hangingbox{\hbox{\KwSty{#2}\algocf@typo\ }}% - {\let\\\algocf@newhanging\hangindent=\wd\algocf@hangingbox\hangafter=1\unhbox\algocf@hangingbox##1\;}% - }% -}% -% -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Comments macros -% -%%%% -% comment in the text, first argument is the name of the macro, second is -% the text put before the comment, third is the text put at the end of the -% comment. -% -% first side comment justification -\newcommand{\SetSideCommentLeft}{\setboolean{algocf@scleft}{true}}% -\newcommand{\SetSideCommentRight}{\setboolean{algocf@scleft}{false}}% -\newcommand{\SetNoFillComment}{\setboolean{algocf@optfillcomment}{false}}% -\newcommand{\SetFillComment}{\setboolean{algocf@optfillcomment}{true}}% -% -% next comment and side comment -% -\newcommand{\algocf@endmarkcomment}{\relax}% -\newcommand{\algocf@fillcomment}{% - \ifthenelse{\boolean{algocf@optfillcomment}}{\hfill}{\relax}}% -% -\newcommand{\algocf@startcomment}{% - \hangindent=\wd\algocf@inputbox\hangafter=1\usebox\algocf@inputbox}% -\newcommand{\algocf@endcomment}{\algocf@fillcomment\algocf@endmarkcomment\ignorespaces\par}% -\newcommand{\algocf@endstartcomment}{\algocf@endcomment\algocf@startcomment\ignorespaces}% -% -\newboolean{algocf@sidecomment}% -\newboolean{algocf@altsidecomment}\setboolean{algocf@altsidecomment}{false}% -\newcommand{\algocf@scpar}{\ifthenelse{\boolean{algocf@altsidecomment}}{\relax}{\par}}% -\newcommand{\algocf@sclfill}{\ifthenelse{\boolean{algocf@scleft}}{\algocf@fillcomment}{\relax}}% -\newcommand{\algocf@scrfill}{\ifthenelse{\boolean{algocf@scleft}}{\relax}{\hfill}}% -\newcommand{\algocf@startsidecomment}{\usebox\algocf@inputbox}% -\newcommand{\algocf@endsidecomment}{\algocf@endmarkcomment\algocf@scpar}% -\newcommand{\algocf@endstartsidecomment}{% - \algocf@sclfill\algocf@endsidecomment% - \algocf@scrfill\algocf@startsidecomment\ignorespaces}% -% -\newcommand{\SetKwComment}[3]{% - \algocf@newcommand{#1}{\@ifstar{\csname algocf@#1@star\endcsname}{\csname algocf@#1\endcsname}}% - \algocf@newcommand{algocf@#1}[1]{% - \sbox\algocf@inputbox{\CommentSty{\hbox{#2}}}% - \ifthenelse{\boolean{algocf@commentsnumbered}}{\relax}{\everypar={\relax}}% - {\renewcommand{\algocf@endmarkcomment}{#3}% - \let\\\algocf@endstartcomment% - \algocf@startcomment\CommentSty{% - \strut\ignorespaces##1\strut\algocf@fillcomment#3}\par}% - \algocf@linesnumbered% reset the numbering of the lines - }% - %%% side comment definitions - \algocf@newcommand{algocf@#1@star}[2][]{% - \ifArgumentEmpty{##1}\relax{% TODO: Is this even necessary, with all those \ifx's? - \ifthenelse{\boolean{algocf@scleft}}{\setboolean{algocf@sidecomment}{true}}{\setboolean{algocf@sidecomment}{false}}% - \ifx##1h\setboolean{algocf@altsidecomment}{true}\SetSideCommentLeft\fi% - \ifx##1f\setboolean{algocf@altsidecomment}{true}\SetSideCommentRight\fi% - \ifx##1l\setboolean{algocf@altsidecomment}{false}\SetSideCommentLeft\fi% - \ifx##1r\setboolean{algocf@altsidecomment}{false}\SetSideCommentRight\fi% - }% - \sbox\algocf@inputbox{\CommentSty{\hbox{#2}}}% - \ifthenelse{\boolean{algocf@commentsnumbered}}{\relax}{\everypar={\relax}}% - {% - \renewcommand{\algocf@endmarkcomment}{#3}% - \let\\\algocf@endstartsidecomment% - % here is the comment - \ifthenelse{\boolean{algocf@altsidecomment}}{\relax}{\@endalgocfline\ }% - \algocf@scrfill\algocf@startsidecomment\CommentSty{% - \strut\ignorespaces##2\strut\algocf@sclfill#3}\algocf@scpar% - }% - \algocf@linesnumbered% reset the numbering of the lines - \ifArgumentEmpty{##1}\relax{% - \ifthenelse{\boolean{algocf@sidecomment}}{\setboolean{algocf@scleft}{true}}{\setboolean{algocf@scleft}{false}}% - \setboolean{algocf@altsidecomment}{false}% - }% - }% -}% -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% KwProg -% -\newcommand{\SetKwProg}[4]{% - \algocf@newcmdside{#1} 3{\KwSty{#2}\ifArgumentEmpty{#2}\relax{\ }\ArgSty{##2}\KwSty{#3}\ifArgumentEmpty{##1}\relax{ ##1}\algocf@block{##3}{#4}}% - \algocf@newcmdside{l#1}3{\KwSty{#2} \ArgSty{##2}\KwSty{#3} ##3\@endalgocfline\ifArgumentEmpty{##1}\relax{##1}\strut\par}% -}% -% -% -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Kw -% -\newcommand{\SetKw}[2]{% - \algocf@newcommand{@#1}[1]{\KwSty{#2} \ArgSty{##1}} - \algocf@newcommand{#1}{\@ifnextchar\bgroup{\csname @#1\endcsname}{\KwSty{#2}\xspace}}% -}% -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% KwFunction -% -\newcommand{\SetKwFunction}[2]{% -%%% use of gdef since newcommand doesn't manage to define the macro when SetKwFunction is used in \algocf@caption@proc - \expandafter\gdef\csname @#1\endcsname##1{\FuncSty{#2(}\ArgSty{##1}\FuncSty{)}}% - \expandafter\gdef\csname#1\endcsname{% - \@ifnextchar\bgroup{\csname @#1\endcsname}{\FuncSty{#2}\xspace}}% -}% -% -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% KwTab -% -\newcommand{\SetKwArray}[2]{% -%%% use of gdef since newcommand doesn't manage to define the macro when SetKwFunction is used in \algocf@caption@proc - \expandafter\gdef\csname @#1\endcsname##1{\DataSty{#2[}\ArgSty{##1}\DataSty{]}}% - \expandafter\gdef\csname#1\endcsname{% - \@ifnextchar\bgroup{\csname @#1\endcsname}{\DataSty{#2}\xspace}}% -}% -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% KwBlock -% -\newcommand{\SetKwBlock}[3]{% - \algocf@newcmdside{#1}{2} - {\KwSty{#2}\ifArgumentEmpty{##1}\relax{ ##1}\algocf@block{##2}{#3}\par} -}% -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% condition typo -% -\newcommand{\algocf@scond}{ } -\newcommand{\algocf@econd}{ } -\newcommand{\algocf@ucond}{} -\newcommand{\SetStartEndCondition}[3]{% - \renewcommand{\algocf@scond}{#1}\renewcommand{\algocf@econd}{#2}\renewcommand{\algocf@ucond}{#3}} -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% For Switch -% -\newcommand{\SetKwSwitch}[9]{% #1=\Switch #2=\Case #3=\Other #4=switch #5=do #6=case #7=otherwise #8=endcase #9=endsw - \algocf@newcmdside{#1}{3} - {\KwSty{#4}\algocf@scond\ArgSty{##2}\algocf@econd\KwSty{#5}\ifArgumentEmpty{##1}\relax{ ##1}\algocf@block{##3}{#9}} -%%%% Case - \algocf@newcmdside{#2}{3}{\KwSty{#6}\algocf@scond\ArgSty{##2}\algocf@ucond\ifArgumentEmpty{##1}\relax{ ##1}\algocf@block{##3}{#8}}% - \algocf@newcmdside{u#2}{3}{\KwSty{#6}\algocf@scond\ArgSty{##2}\algocf@ucond\ifArgumentEmpty{##1}\relax{ ##1}\algocf@group{##3}}% - \algocf@newcmdside{l#2}{3}{\KwSty{#6}\algocf@scond\ArgSty{##2}\algocf@ucond\ ##3\@endalgocfline\ifArgumentEmpty{##1}\relax{ ##1}\strut\par}% -%%%% Other - \algocf@newcmdside{#3}{2}{\KwSty{#7}\ifArgumentEmpty{##1}\relax{ ##1}\algocf@block{##2}{#8}}% - \algocf@newcmdside{l#3}{2}{\KwSty{#7}\ ##2\@endalgocfline\ifArgumentEmpty{##1}\relax{ ##1}\strut\par}% -}% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% If macros -% -\newcommand{\SetKwIF}[8]{% #1=\If #2=\ElseIf #3=\Else #4=if #5=then #6=elseif #7=else #8=endif -% -% common text - \algocf@newcommand{#1@ifthen}[1]{\KwSty{#4}\algocf@scond\ArgSty{##1}\algocf@econd\KwSty{#5}}% - \algocf@newcommand{#1@endif} [1]{\algocf@block{##1}{#8}}% - \algocf@newcommand{#1@noend} [1]{\algocf@group{##1}}% - \algocf@newcommand{#1@else} [1]{\algocf@group{##1}\KwSty{#7}}% - \algocf@newcommand{#2@elseif}[1]{\KwSty{#6}\algocf@scond\ArgSty{##1}\algocf@econd\KwSty{#5}}% - \algocf@newcommand{#3@else} {\KwSty{#7}}% -%%%% If then { } endif - \algocf@newcmdside{#1}3{\csname #1@ifthen\endcsname{##2}\ifArgumentEmpty{##1}\relax{ ##1}\csname #1@endif\endcsname{##3}}% -%%%% If then {} else {} endif - % first command to handle optional side comment of else (so just after first braces) - \algocf@newcmdside{algocf@e#1thenelse}2{\ifArgumentEmpty{##1}\relax{ ##1}\csname #1@endif\endcsname{##2}} - % the definition of if-then-else command using command above - \algocf@newcmdside{e#1}3{\csname #1@ifthen\endcsname{##2}\ifArgumentEmpty{##1}\relax{ ##1}\csname #1@else\endcsname{##3}\csname algocf@e#1thenelse\endcsname}% - %%% leif - \algocf@newcmdside{le#1}4{\csname #1@ifthen\endcsname{##2} ##3 \csname #3@else\endcsname\ ##4\@endalgocfline\ifArgumentEmpty{##1}\relax{##1}\strut\par} -%%%% If then - \algocf@newcmdside{l#1}3{\csname #1@ifthen\endcsname{##2} ##3\@endalgocfline\ifArgumentEmpty{##1}\relax{##1}\strut\par}% - \algocf@newcmdside{u#1}3{\csname #1@ifthen\endcsname{##2}\ifArgumentEmpty{##1}\relax{ ##1}\csname #1@noend\endcsname{##3}}% -%%%% ElseIf {} endif - \algocf@newcmdside{#2} 3{\csname #2@elseif\endcsname{##2}\relax\ifArgumentEmpty{##1}\relax{ ##1}\csname #1@endif\endcsname{##3}}% -%%%% ElseIf - \algocf@newcmdside{l#2}3{\csname #2@elseif\endcsname{##2} ##3\@endalgocfline\ifArgumentEmpty{##1}\relax{##1}\strut\par}% - \algocf@newcmdside{u#2}3{\csname #2@elseif\endcsname{##2}\relax\ifArgumentEmpty{##1}\relax{ ##1}\csname #1@noend\endcsname{##3}}% -%%%% Else {} endif - \algocf@newcmdside{#3} 2{\csname #3@else\endcsname\ifArgumentEmpty{##1}\relax\ ##1\csname #1@endif\endcsname{##2}}% -%%%% Else - \algocf@newcmdside{l#3}2{\csname #3@else\endcsname\ ##2\@endalgocfline\ifArgumentEmpty{##1}\relax{##1}\strut\par}% - \algocf@newcmdside{u#3}2{\csname #3@else\endcsname \ifArgumentEmpty{##1}\relax{\ ##1\relax}\csname #1@noend\endcsname{##2}}% -}% -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% For macros -% -\newcommand{\SetKwFor}[4]{% - \algocf@newcmdside{#1} 3{\KwSty{#2}\algocf@scond\ArgSty{##2}\algocf@econd\KwSty{#3}\ifArgumentEmpty{##1}\relax{ ##1}\algocf@block{##3}{#4}}% - \algocf@newcmdside{l#1}3{\KwSty{#2}\algocf@scond\ArgSty{##2}\algocf@econd\KwSty{#3} ##3\@endalgocfline\ifArgumentEmpty{##1}\relax{##1}\strut\par}% -}% -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% Repeat macros -% -\newsavebox{\algocf@untilbox}% to handle width of until keyword needed to have good skip - % for line numbers -\newskip\algocf@skipuntil -\newcommand{\SetKwRepeat}[3]{% - \algocf@newcmdsides{#1}{3}{% - \sbox\algocf@untilbox{\KwSty{#3}\algocf@scond}\algocf@skipuntil=\wd\algocf@untilbox% - \KwSty{#2}\ifArgumentEmpty{##1}\relax{##1}\algocf@group{##3}% - \KwSty{#3}\algocf@scond% until keyword and start condition typo - \advance\skiptotal by\algocf@skipuntil% - \ArgSty{##2}% - \advance\skiptotal by-\algocf@skipuntil% - \algocf@ucond% - \algocf@skipuntil=0pt% reset counter - }{\@endalgocfline}{\strut\par}% - \algocf@newcmdside{l#1}3{\KwSty{#2} ##3 \KwSty{#3}\algocf@scond\ArgSty{##2}\algocf@ucond\@endalgocfline\ifArgumentEmpty{##1}\relax{ ##1}\strut\par}% -}% -% -% -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%% Environments definitions %%%%%%%%%%%%%%%%%%%%%%%%%%%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -%% -%% Caption management -%% -% for the following macros: -% #1 is given by caption and is equal to fnum@algocf -% #2 is the text given in argument by the user in the \caption macro -% -%%%%% text of caption -\newcommand{\algocf@captionlayout}[1]{#1}% -\newcommand{\SetAlgoCaptionLayout}[1]{% - \renewcommand{\algocf@captionlayout}[1]{\csname #1\endcsname{##1}}}% -\newcommand{\algocf@capseparator}{:}% -\newcommand{\SetAlgoCaptionSeparator}[1]{\renewcommand{\algocf@capseparator}{#1}}% -\newcommand{\algocf@captiontext}[2]{% - \algocf@captionlayout{\AlCapSty{\AlCapFnt #1\algocf@typo\algocf@capseparator}\nobreakspace% - \AlCapNameSty{\AlCapNameFnt{}#2}}}% text of caption -% -%%%%% default caption of algorithm: used if no specific style caption is defined -\newcommand{\algocf@makecaption}[2]{% - \addtolength{\hsize}{\algomargin}% - \sbox\@tempboxa{\algocf@captiontext{#1}{#2}}% - \ifdim\wd\@tempboxa >\hsize% % if caption is longer than a line - \hskip .5\algomargin% - \parbox[t]{\hsize}{\algocf@captiontext{#1}{#2}}% then caption is not centered - \else% - \global\@minipagefalse% - \hbox to\hsize{\hfil\box\@tempboxa\hfil}% else caption is centered - \fi% - \addtolength{\hsize}{-\algomargin}% -}% -% -\newsavebox\algocf@capbox% -\newcommand{\algocf@makecaption@plain}[2]{% - \global\sbox\algocf@capbox{\algocf@makecaption{#1}{#2}}}% -\newcommand{\algocf@makecaption@boxed}[2]{% - \addtolength{\hsize}{-\algomargin}% - \global\sbox\algocf@capbox{\algocf@makecaption{#1}{#2}}% - \addtolength{\hsize}{\algomargin}% - }% -% -\newcommand{\algocf@makecaption@plainruled}[2]{\algocf@makecaption@plain{#1}{#2}}% -\newcommand{\algocf@makecaption@tworuled}[2]{\algocf@makecaption@ruled{#1}{#2}}% -\newcommand{\algocf@makecaption@algoruled}[2]{\algocf@makecaption@ruled{#1}{#2}}% -\newcommand{\algocf@makecaption@boxruled}[2]{\algocf@makecaption@ruled{#1}{#2}}% -\newcommand{\algocf@makecaption@ruled}[2]{% - \global\sbox\algocf@capbox{\hskip\AlCapHSkip% .5\algomargin% - \parbox[t]{\hsize}{\algocf@captiontext{#1}{#2}}}% then caption is not centered -}% -% -\newlength{\algoheightruledefault}\setlength{\algoheightruledefault}{0.8pt}% -\newlength{\algoheightrule}\setlength{\algoheightrule}{\algoheightruledefault}% -\newlength{\algotitleheightruledefault}\setlength{\algotitleheightruledefault}{0.8pt}% -\newlength{\algotitleheightrule}\setlength{\algotitleheightrule}{\algotitleheightruledefault}% -\newcommand{\algocf@caption@plain}{\vskip\AlCapSkip\box\algocf@capbox}% -\newcommand{\algocf@caption@plainruled}{\algocf@caption@plain}% -\newcommand{\algocf@caption@boxed}{\vskip\AlCapSkip\box\algocf@capbox}% -\newcommand{\algocf@caption@ruled}{\box\algocf@capbox\kern\interspacetitleruled\hrule height\algotitleheightrule depth0pt\kern\interspacealgoruled}% -\newcommand{\algocf@caption@tworuled}{\box\algocf@capbox\hrule height0pt depth0pt\kern\interspacealgoruled}% -\newcommand{\algocf@caption@algoruled}{\algocf@caption@ruled}% -\newcommand{\algocf@caption@boxruled}{% - \addtolength{\hsize}{-0.8pt}% - \hbox to\hsize{% - \vrule%\hskip-0.35pt% - \vbox{% - \hrule\vskip\interspacetitleboxruled% - \hbox to\hsize{\unhbox\algocf@capbox\hfill}\vskip\interspacetitleboxruled% - }% - %\hskip-0.35pt% - \vrule% - }\nointerlineskip% - \addtolength{\hsize}{0.8pt}% -}% -% -% -%%%% set caption for the environment -\newcommand{\algocf@captionref}{% - \renewcommand{\fnum@algocf}[1]{\AlCapSty{\AlCapFnt\algorithmcfname\nobreakspace\algocf@algocfref}}% - \addtocounter{algocf}{-1}% \caption do a refstepcounter, so we restore the precedent value - \let\old@thealgocf=\thealgocf\renewcommand{\thealgocf}{{\relsize{\algocf@refrelsize}\algocf@algocfref}}% - \gdef\@currentlabel{\algocf@algocfref}% let the label use the new ref -}% -% -% Unfortunatly, we also need our own caption to set some specific stuff for special references. But after these -% settings, we call the original caption. -% -\long\def\algocf@caption@algo#1[#2]#3{% - \ifthenelse{\equal{\algocf@algocfref}{\relax}}{}{\algocf@captionref}% - \@ifundefined{hyper@refstepcounter}{\relax}{% if hyper@refstepcounter undefind, no hyperref, else... - \ifthenelse{\equal{\algocf@algocfref}{\relax}}{\renewcommand{\theHalgocf}{\thealgocf}}{% take algocf as Href - \renewcommand{\theHalgocf}{\algocf@algocfref}}%else if SetAlgoRefName done, take this name as ref. - \hyper@refstepcounter{algocf}%set algocf as category of ref - }% - \algocf@latexcaption{#1}[{#2}]{{#3}}% call original caption -}% -% -% beamer define is own caption overrinding latex caption! -% as we need it, we have put here the original definition -% to handle manual ref, unfortunately we have to add one line to handle algocf@algocfref -\long\def\algocf@latexcaption#1[#2]#3{% original definition of caption - \par% - \addcontentsline{\csname ext@#1\endcsname}{#1}% - {\protect\numberline{\csname the#1\endcsname}{\ignorespaces #2}}% - \begingroup% - \@parboxrestore% - \if@minipage% - \@setminipage% - \fi% - \normalsize% - \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par% - \endgroup% -}% -% -% \ifx\beamer@makecaption\undefined% -% \else% beamer detected -\ifx\@makecaption\undefined% -\newcommand{\@makecaption}[2]{\relax}% -\fi% -%% - -% -% more and more packages redefine \@caption instead of just \@makecaption which makes algorithm2e -% caption not works since based on standard \@caption. So we force the definition of \@caption to be -% the standard one (the one from LaTeX) inside algorithm environment. -% -% unfortunately, makecaption is called with \ignorespace #3 so -% we can't do the @currentlabel definition inside \algocf@captionproctext -\long\def\algocf@caption@proc#1[#2]#3{% - \ifthenelse{\boolean{algocf@nokwfunc}}{\relax}{% - \SetKwFunction{\algocf@captname#3@}{\algocf@captname#3@}% - }% - % we tell hyperref to use algocfproc as category and to take the appropriate ref. - \ifthenelse{\boolean{algocf@func}}{\def\@proc@func{algocffunc}}{\def\@proc@func{algocfproc}}% - \@ifundefined{hyper@refstepcounter}{\relax}{% if hyper@refstepcounter undefind, no hyperref, else... - \ifthenelse{\boolean{algocf@procnumbered}}{% - \expandafter\def\csname theH\@proc@func\endcsname{\algocf@captname#3@}%if procnumbered, take \thealgocf as ref - }{% - \expandafter\def\csname theH\@proc@func\endcsname{\algocf@captname#3@}%else take procedure or function name - }% - \hyper@refstepcounter{\@proc@func}% - }% - \ifthenelse{\boolean{algocf@procnumbered}}{\relax}{% - \addtocounter{algocf}{-1}% \caption do a refstepcounter, so we restore the precedent value - \gdef\@currentlabel{\algocf@captname#3@}% let the label be the name of the function, not the counter - }% - \ifthenelse{\equal{\algocf@captparam#2@}{\arg@e}}{% if no paramater, we remove the () - \algocf@latexcaption{#1}[\algocf@procname\nobreakspace\algocf@captname#2@]{#3}% - }{% else we give the complete name - \algocf@latexcaption{#1}[\algocf@procname\nobreakspace#2]{#3}% - }% -}% -%% -%%% setcaption -\newcommand{\algocf@setcaption}{% - \ifthenelse{\boolean{algocf@procenvironment}}{% if proc environment, caption text must be changed - \let\algocf@oldcaptiontext=\algocf@captiontext% - \renewcommand{\algocf@captiontext}[2]{% - \algocf@captionproctext{##1}{##2}% - }% - }{}% - \let\algocf@savecaption=\@caption% - \ifthenelse{\boolean{algocf@procenvironment}}{\let\@caption=\algocf@caption@proc}{\let\@caption=\algocf@caption@algo}% - \let\algocf@oldmakecaption=\@makecaption% - \renewcommand{\@makecaption}[2]{% - \expandafter\csname algocf@makecaption@\algocf@style\endcsname{##1}{##2}% - }% -}% -% -%%%%% reset caption -% -% since we have force the LaTeX caption for algorithm environment, we must go back to the caption -% used in the text. -\newcommand{\algocf@resetcaption}{% - \ifthenelse{\boolean{algocf@procenvironment}}{% if proc environment - \let\thealgocf=\old@thealgocf% restore normal counter printing - \let\algocf@captiontext=\algocf@oldcaptiontext% restore normal caption text - }{}% - \let\@caption=\algocf@savecaption% now restore caption outside algo/proc/func environment - \let\@makecaption=\algocf@oldmakecaption% and restore makecaption outside outside algo/proc/func environment - \algocf@resetfnum% -}% -% -%%%%% nocaptionofalgo and restorecaptionofalgo -- -\newcommand{\NoCaptionOfAlgo}{% - \let\@old@algocf@captiontext=\algocf@captiontext% - \renewcommand{\algocf@captiontext}[2]{\AlCapNameSty{\AlCapNameFnt{}##2}}% -}% -\newcommand{\RestoreCaptionOfAlgo}{% - \let\algocf@captiontext=\@old@algocf@captiontext% -}% -% -% ---------------------- algocf environment -% -\newcounter{algocfline}% % new counter to make lines numbers be internally -\setcounter{algocfline}{0}% % different in different algorithms -\newcounter{algocfproc}% counter to count all algo environment (proc, func), just used by hyperref to avoir "same -\setcounter{algocfproc}{0}% identifier" error caused by algocf being set to '-' for procedure or function or not - % changed if no caption is given. -% -\expandafter\ifx\csname algocf@within\endcsname\relax% if \algocf@within doesn't exist -\newcounter{algocf}% % just define a new counter -\renewcommand{\thealgocf}{\@arabic\c@algocf}% and the way it is printed -\else% else -\newcounter{algocf}[\algocf@within]% % counter is numbered within \algocf@within -\renewcommand\thealgocf{\csname the\algocf@within\endcsname.\@arabic\c@algocf}% -\fi% -% -\def\fps@algocf{htbp}% % default -\def\ftype@algocf{10}% % float type -\def\ext@algocf{\algocf@list} % loa by default, lof if figure option used -\newcommand{\fnum@algocf}{\AlCapSty{\AlCapFnt\algorithmcfname\nobreakspace\thealgocf}}% -\newcommand{\algocf@resetfnum}{\renewcommand{\fnum@algocf}{\AlCapSty{\AlCapFnt\algorithmcfname\nobreakspace\thealgocf}}}% -\newenvironment{algocf}% % float environment for algorithms - {\@float{algocf}}% - {\end@float}% -\newenvironment{algocf*}% % float* environment for algorithms - {\@dblfloat{algocf}}% - {\end@dblfloat}% -% -\def\algocf@seclistalgo{}% -\ifx\l@chapter\undefined\let\algocf@seclistalgo=\section\else\let\algocf@seclistalgo=\chapter\fi% -\@ifundefined{if@restonecol}{\newif\if@restonecol}\relax% -\newcommand\listofalgocfs{% - \ifx\algocf@seclistalgo\chapter% - \if@twocolumn\@restonecoltrue\onecolumn\else\@restonecolfalse\fi% - \fi% - \algocf@seclistalgo*{\listalgorithmcfname}% - \@mkboth{\MakeUppercase\listalgorithmcfname}% - {\MakeUppercase\listalgorithmcfname}% - \@starttoc{loa}% - \ifx\algocf@seclistalgo\chapter% - \if@restonecol\twocolumn\fi% - \fi% -} -% -\newcommand*\l@algocf{\@dottedtocline{1}{1em}{2.3em}}% line of the list -% -% ---------------------- algorithm environment -% -%%%%%%% -%% -%% Algorithm environment definition -%% -%%%%%%% -%% -% -\newsavebox\algocf@algoframe% -\def\@algocf@pre@plain{\relax}% action to be done before printing the algo. -\def\@algocf@post@plain{\relax}% action to be done after printing the algo. -\def\@algocf@capt@plain{bottom}% where the caption should be localized. -\def\@algocf@pre@boxed{\noindent\begin{lrbox}{\algocf@algoframe}} -\def\@algocf@post@boxed{\end{lrbox}\framebox[\hsize]{\box\algocf@algoframe}\par}% -\def\@algocf@capt@boxed{under}% -\def\@algocf@pre@ruled{\hrule height\algoheightrule depth0pt\kern\interspacetitleruled}% -\def\@algocf@post@ruled{\kern\interspacealgoruled\hrule height\algoheightrule\relax}% -\def\@algocf@capt@ruled{top}% -\def\@algocf@pre@algoruled{\hrule height\algoheightrule depth0pt\kern\interspacetitleruled}% -\def\@algocf@post@algoruled{\kern\interspacealgoruled\hrule height\algoheightrule \relax}% -\def\@algocf@capt@algoruled{top}% -\def\@algocf@pre@tworuled{\hrule height\algoheightrule depth0pt\kern\interspacetitleruled}% -\def\@algocf@post@tworuled{\kern\interspacealgoruled\hrule height\algoheightrule\relax}% -\def\@algocf@capt@tworuled{top}% -\def\@algocf@pre@boxruled{\noindent\begin{lrbox}{\algocf@algoframe}}% -\def\@algocf@post@boxruled{\end{lrbox}\framebox[\hsize]{\box\algocf@algoframe}\par}% -\def\@algocf@capt@boxruled{above}% -\def\@algocf@pre@plainruled{\@algocf@pre@ruled}% action to be done before printing the algo. -\def\@algocf@post@plainruled{\@algocf@post@ruled\kern\interspacealgoruled}% action to be done before printing the algo. -\def\@algocf@capt@plainruled{under}% -% -\newcommand{\noalgocaption}{\def\@algocf@capt@ruled{none}} -% -%% before algocf or figure environment -\newcommand{\@algocf@init@caption}{% - \ifthenelse{\boolean{algocf@procenvironment}}{% if we are inside a procedure/function environment - \@algocf@proctitleofalgo% set Titleofalgo to Procedure: or Function: - % accordingly to the environment - \let\old@thealgocf=\thealgocf\ifthenelse{\boolean{algocf@procnumbered}}{\relax}{% - \renewcommand{\thealgocf}{-}}% - }{% else inside environment algorithm - \@algocf@algotitleofalgo% fix name for \Titleofalgo to \algorithmcfname - }% - \algocf@setcaption% set caption to our caption style -}% -% -\newcommand{\@algofloatboxreset}{\@setminipage} -\newcommand{\@algocf@init}{% - \refstepcounter{algocfline}% - \stepcounter{algocfproc}%to have a different counter for each environment and being abble to make the difference - %between href of algoline in different algorithms. - \ifthenelse{\boolean{algocf@optnoend}}{% - \renewcommand{\algocf@block}[2]{\algocf@group{##1}}% - }{% - \renewcommand{\algocf@block}[2]{\algocf@@block{##1}{##2}}% - }% -}% -%% after the end of algocf or figure environment -\newcommand{\@algocf@term@caption}{% - \algocf@resetcaption% restore original caption -}% -% -\newcommand{\@algocf@term}{% - \setboolean{algocf@algoH}{false}% no H by default - \ifthenelse{\boolean{algocf@optnoend}}{% - \renewcommand{\algocf@block}[2]{\algocf@@block{##1}{##2}}% - }{% - \renewcommand{\algocf@block}[2]{\algocf@group{##1}}% - }% - \SetAlgoRefName{\relax}% -}% -% -%%%%%%%%%%%%%%%%% -%% makethealgo: macro which print effectively the algo in its box -%% -\newsavebox\algocf@algobox% -\newcommand{\algocf@makethealgo}{% - \vtop{% - % place caption above if needed bye the style - \ifthenelse{\equal{\csname @algocf@capt@\algocf@style\endcsname}{above}}% - {\csname algocf@caption@\algocf@style\endcsname}{}% - % - % precommand according to the style - \csname @algocf@pre@\algocf@style\endcsname% - % place caption at top if needed bye the style - \ifthenelse{\equal{\csname @algocf@capt@\algocf@style\endcsname}{top}}% - {\csname algocf@caption@\algocf@style\endcsname}{}% - % - \box\algocf@algobox% the algo - % place caption at bottom if needed bye the style - \ifthenelse{\equal{\csname @algocf@capt@\algocf@style\endcsname}{bottom}}% - {\csname algocf@caption@\algocf@style\endcsname}{}% - % postcommand according to the style - \csname @algocf@post@\algocf@style\endcsname% - % place caption under if needed bye the style - \ifthenelse{\equal{\csname @algocf@capt@\algocf@style\endcsname}{under}}% - {\csname algocf@caption@\algocf@style\endcsname}{}% - }% -}% -%%%%%%%%%%%%%%%%%%% -% -%% at the beginning of algocf or figure environment -\newenvironment{algomathdisplay}{\[}{\@endalgocfline\]\ifthenelse{\boolean{algocf@linesnumbered}}{\nl}{\relax}}% -\newcommand{\@algocf@start}{% - \@algoskip% - \begin{lrbox}{\algocf@algobox}% - \setlength{\algowidth}{\hsize}% - \vbox\bgroup% save all the algo in a box - \hbox to\algowidth\bgroup\hbox to \algomargin{\hfill}\vtop\bgroup% - \ifthenelse{\boolean{algocf@slide}}{\parskip 0.5ex\color{black}}{}% - % initialization - \addtolength{\hsize}{-1.5\algomargin}% - \let\@mathsemicolon=\;\def\;{\ifmmode\@mathsemicolon\else\@endalgoln\fi}% - \raggedright\AlFnt{}% - \ifthenelse{\boolean{algocf@slide}}{\IncMargin{\skipalgocfslide}}{}% - \@algoinsideskip% -% \let\@emathdisplay=\]\def\]{\algocf@endline\@emathdisplay\nl}% -}% -% -%% at the end of algocf or figure environment -\newcommand{\@algocf@finish}{% - \@algoinsideskip% - \egroup%end of vtop which contain all the text - \hfill\egroup%end of hbox wich contains [margin][vtop] - \ifthenelse{\boolean{algocf@slide}}{\DecMargin{\skipalgocfslide}}{}% - % - \egroup%end of main vbox - \end{lrbox}% - \algocf@makethealgo% print the algo - \@algoskip% - % restore dimension and macros - \setlength{\hsize}{\algowidth}% - \lineskip\normallineskip\setlength{\skiptotal}{\@defaultskiptotal}% - \let\;=\@mathsemicolon% - \let\]=\@emathdisplay% -}% -% -%%%%%%%%%%%%%%%%%%%% -%% basic definition of the environment algorithm -%% -% -\newboolean{algocf@procenvironment}\setboolean{algocf@procenvironment}{false}% -\newboolean{algocf@func}\setboolean{algocf@func}{false}% -\newboolean{algocf@algoH}\setboolean{algocf@algoH}{false}% -\newboolean{algocf@algostar}\setboolean{algocf@algostar}{false}% -% -%%% environment for {algorithm}[H] -\newenvironment{algocf@Here}{\noindent% - \def\@captype{algocf}% if not defined, caption exit with an error - \begin{minipage}{\hsize}% -}{% - \end{minipage}%\par% -}% -%%% real algorithm environment which manages H and * option -% \let\algocf@originalfloatboxreset=\@floatboxreset% -% \let\@floatboxreset=\@algofloatboxreset% -\newenvironment{algocf@algorithm}[1][htbp]{ - \@algocf@init% - \ifthenelse{\equal{\algocf@float}{figure}}{% if option figure set - \ifthenelse{\boolean{algocf@algostar}}{% if algorithm* with figure option - \begin{figure*}[#1]% call figure* - }{% else algorithm environment with figure option - \begin{figure}[#1]% call figure - }% - }{% else normal algorithm environment - \@algocf@init@caption% - \ifthenelse{\equal{#1}{H}}{% if [H] algorithm - \if@twocolumn\@latex@error{[H] in two columns mode is not allowed for algorithms}\fi% TODO: SCREAM if H in two colums! - \setboolean{algocf@algoH}{true}\begin{algocf@Here}% call corresponding environment - }{% else floating algorithm environment - \ifthenelse{\boolean{algocf@algostar}}{% if algorithm* - \begin{algocf*}[#1]% call algocf* - }{% else algorithm environment - \begin{algocf}[#1]% call algcf - }% - }% - }% fin test option figure ou pas - \@algocf@start% - \@ResetCounterIfNeeded% - \algocf@linesnumbered\ignorespaces% -}{% - \@algocf@finish% - \ifthenelse{\equal{\algocf@float}{figure}}{% - \ifthenelse{\boolean{algocf@algostar}}{% if algorithm* with figure option - \end{figure*}% call figure* - }{% else algorithm environment with figure option - \end{figure}% call figure - }% - }{% - \@algocf@term@caption% - \ifthenelse{\boolean{algocf@algoH}}{% if [H] algorithm - \end{algocf@Here}\par% call corresponding environment - }{% else floating algorithm environment - \ifthenelse{\boolean{algocf@algostar}}{% if algorithm* - \end{algocf*}% call algocf* - }{% else algorithm environment - \end{algocf}% call algocf - }% - }% - }% - \@algocf@term\ignorespacesafterend% -}% -% -%%% user algorithm environment -\newenvironment{\algocf@envname}[1][htbp]{% - \setboolean{algocf@algostar}{false}% - \setboolean{algocf@procenvironment}{false}\gdef\algocfautorefname{\algorithmautorefname}% - \begin{algocf@algorithm}[#1]\ignorespaces% -}{% - \end{algocf@algorithm}\ignorespacesafterend% -}% -%%% user algorithm* environment -\newenvironment{\algocf@envname*}[1][htbp]{% - \setboolean{algocf@algostar}{true}% - \setboolean{algocf@procenvironment}{false}\gdef\algocfautorefname{\algorithmautorefname}% - \begin{algocf@algorithm}[#1]\ignorespaces% -}{% - \end{algocf@algorithm}\ignorespacesafterend% -}% -% -%%%%%%%%%%%%%%%%%%%%%%% -%%% -% -\expandafter\newcommand\csname\algocf@listofalgorithms\endcsname{% - \ifthenelse{\equal{\algocf@float}{figure}}{\listoffigures}{\listofalgocfs}% -}% -%%% -%%% -% -% ---------------------- procedure and function environments -% -% -% -- new style (used in particular in the caption of function and procedure environments) -% -% three macros to extract parts of the caption -\gdef\algocf@captname#1(#2)#3@{#1} % keep characters before the first brace -\gdef\algocf@captparam#1(#2)#3@{#2} % keep character in between the braces -\gdef\algocf@captother#1(#2)#3@{#3} % keep character after the braces -% -%%% Text of caption for Procedure or Function -\newcommand{\algocf@captionproctext}[2]{% - {% - \ProcSty{\ProcFnt\algocf@procname\ifthenelse{\boolean{algocf@procnumbered}}{\nobreakspace\thealgocf\algocf@typo\algocf@capseparator}{\relax}}% - \nobreakspace\ProcNameSty{\ProcNameFnt\algocf@captname #2@}% Name of the procedure in ProcName Style. - \ifthenelse{\equal{\algocf@captparam #2@}{\arg@e}}{}{% if no argument, write nothing - \ProcNameSty{\ProcNameFnt(}\ProcArgSty{\ProcArgFnt\algocf@captparam #2@}\ProcNameSty{\ProcNameFnt)}%else put arguments in ProcArgSty: - }% endif - \algocf@captother #2@% - }% -}% -% -% -% -- procedure and function environments are defined from algocf@algorithm environment -% -\newenvironment{procedure}[1][htbp]{% - \setboolean{algocf@algostar}{false}% - \setboolean{algocf@procenvironment}{true}\setboolean{algocf@func}{false}% - \newcommand{\algocf@procname}{\@algocf@procname}\gdef\algocfprocautorefname{\procedureautorefname}% - \begin{algocf@algorithm}[#1]\ignorespaces% -}{% - \end{algocf@algorithm}\ignorespacesafterend% -}% -\newenvironment{function}[1][htbp]{% - \setboolean{algocf@algostar}{false}% - \setboolean{algocf@procenvironment}{true}\setboolean{algocf@func}{true}% - \newcommand{\algocf@procname}{\@algocf@funcname}\gdef\algocffuncautorefname{\functionautorefname}% - \begin{algocf@algorithm}[#1]\ignorespaces% -}{% - \end{algocf@algorithm}\ignorespacesafterend% -}% -% -\newenvironment{procedure*}[1][htbp]{% - \setboolean{algocf@algostar}{true}% - \setboolean{algocf@procenvironment}{true}\setboolean{algocf@func}{false}% - \newcommand{\algocf@procname}{\@algocf@procname}\gdef\algocfprocautorefname{\procedureautorefname}% - \begin{algocf@algorithm}[#1]\ignorespaces% -}{% - \end{algocf@algorithm}\ignorespacesafterend% -}% -\newenvironment{function*}[1][htbp]{% - \setboolean{algocf@algostar}{true}% - \setboolean{algocf@procenvironment}{true}\setboolean{algocf@func}{true}% - \newcommand{\algocf@procname}{\@algocf@funcname}\gdef\algocffuncautorefname{\functionautorefname}% - \begin{algocf@algorithm}[#1]\ignorespaces% -}{% - \end{algocf@algorithm}\ignorespacesafterend% -}% -% -% -%%%%%%%%%%%%%%%%%%%% -%% definition of algondfloat environment -%% -\ifthenelse{\boolean{algocf@endfloat}}{% if endfloat option then -\newcommand{\algoplace}{% macro which is used to writhe algorithm about there - \begin{center}% - [\algorithmcfname~\thepostfig\ about here.]% - \end{center}% -}% -\newcommand{\algoendfloat}{% use as a \begin{algoendfloat} environment to start scanning of line -% \immediate\openout\@mainfff\jobname.fff% - \efloat@condopen{fff} - \efloat@iwrite{fff}{\string\begin{\algocf@envname}}% - \if@domarkers% - \ifthenelse{\equal{\algocf@list}{lof}}{% - \addtocounter{postfig}{1}% - }{% - \addtocounter{postalgo}{1}% - }% - \algoplace% - \fi% - \bgroup% - \let\do\ef@makeinnocent\dospecials% - \ef@makeinnocent\^^L% and whatever other special cases - \endlinechar`\^^M \catcode`\^^M=12 \ef@xalgocfendfloat}% -}{\relax}%%%% end of endfloat option ifthenelse -%% some macros useful for endfloat option that cannot be defined inside the ifthenelse -%scan algoendfloat algorithm and write the text into .fff file -{\catcode`\^^M=12 \endlinechar=-1 % - \gdef\ef@xalgocfendfloat#1^^M{% scan the lines inside algoendfloat environment being read by latex - \def\test{#1}% test is the line being currently scan by latex - \ifx\test\ef@endalgocftest% if it is \end{algoendfloat} - \def\next{% define next as to not continue the scan and write \end{algorithm} into .fff file - \egroup\end{algoendfloat}% - \efloat@iwrite{fff}{\string\end{\algocf@envname}}% - \efloat@iwrite{fff}{\string\efloatseparator}% - \efloat@iwrite{fff}{ }% - }% - \else% else write the current line being scanned by latex and set next to continue the scan - \efloat@iwrite{fff}{#1}% - \let\next\ef@xalgocfendfloat% - \fi% endif - \next}% next is continue if it was else condition, else it does not continue the scan and write end to file -}% -% test if the scan is finish by looking at the string \end{algoendfloat} -{\escapechar=-1% - \xdef\ef@endalgocftest{\string\\end\string\{algoendfloat\string\}}% -}% -% -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% -\newcommand{\TitleOfAlgo}[1]{\@titleprefix\ - \TitleSty{#1}\par\smallskip}% -% -\newcommand{\SetAlgorithmName}[3]{% - \renewcommand{\listalgorithmcfname}{#3}% - \renewcommand{\algorithmcfname}{#1}% - \renewcommand{\algorithmautorefname}{#2}% -}% -% -\newcommand{\algocf@refrelsize}{-2}\newcommand{\SetAlgoRefRelativeSize}[1]{\renewcommand{\algocf@refrelsize}{#1}}% -\newcommand{\SetAlgoRefName}[1]{% - \renewcommand{\algocf@algocfref}{#1}% -}% -% -% -% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -% -% ------------------------- Default Definitions -% -%% -%% -% -\SetKwComment{tcc}{/* }{ */}% -\SetKwComment{tcp}{// }{}% -% -%\newcommand{\algocf@defaults@common}{ -% -% -% french keywords -% -%\SetKwInOut{AlgDonnees}{Donn\'ees}\SetKwInOut{AlgRes}{R\'esultat} -\SetKwHangingKw{HDonnees}{Donnees$\rightarrow$} -\SetKwInput{Donnees}{Donn\'ees}% -\SetKwInput{Res}{R\'esultat}% -\SetKwInput{Entree}{Entr\'ees}% -\SetKwInput{Sortie}{Sorties}% -\SetKw{KwA}{\`a}% -\SetKw{Retour}{retourner}% -\SetKwBlock{Deb}{d\'ebut}{fin}% -\SetKwRepeat{Repeter}{r\'ep\'eter}{jusqu'\`a}% -% -\SetKwIF{Si}{SinonSi}{Sinon}{si}{alors}{sinon si}{sinon}{fin si}% -\SetKwSwitch{Suivant}{Cas}{Autre}{suivant}{faire}{cas o\`u}{autres cas}{fin cas}{fin d'alternative}% -\SetKwFor{Pour}{pour}{faire}{fin pour}% -\SetKwFor{PourPar}{pour}{faire en parall\`ele}{fin pour}% -\SetKwFor{PourCh}{pour chaque}{faire}{fin pour chaque}% -\SetKwFor{PourTous}{pour tous les}{faire}{fin pour tous}% -\SetKwFor{Tq}{tant que}{faire}{fin tq}% -% -% english keywords -% -\SetKwHangingKw{KwHData}{Data$\rightarrow$} -\SetKwInput{KwIn}{Input}% -\SetKwInput{KwOut}{Output}% -\SetKwInput{KwData}{Data}% -\SetKwInput{KwResult}{Result}% -\SetKw{KwTo}{to} -\SetKw{KwRet}{return}% -\SetKw{Return}{return}% -\SetKwBlock{Begin}{begin}{end}% -\SetKwRepeat{Repeat}{repeat}{until}% -% -\SetKwIF{If}{ElseIf}{Else}{if}{then}{else if}{else}{end if}% -\SetKwSwitch{Switch}{Case}{Other}{switch}{do}{case}{otherwise}{end case}{end switch}% -\SetKwFor{For}{for}{do}{end for}% -\SetKwFor{ForPar}{for}{do in parallel}{end forpar} -\SetKwFor{ForEach}{foreach}{do}{end foreach}% -\SetKwFor{ForAll}{forall the}{do}{end forall}% -\SetKwFor{While}{while}{do}{end while}% -% -% --- German keywords -% -\SetKwInput{Ein}{Eingabe}%KwIn -\SetKwInput{Aus}{Ausgabe}%KwOut -\SetKwInput{Daten}{Daten}%KwData -\SetKwInput{Ergebnis}{Ergebnis}%KwResult -\SetKw{Bis}{bis}%KwTo -\SetKw{KwZurueck}{zur\"uck}%KwRet -\SetKw{Zurueck}{zur\"uck}%Return -\SetKwBlock{Beginn}{Beginn}{Ende}%Begin -\SetKwRepeat{Wiederh}{wiederhole}{bis}%Repeat -% -\SetKwIF{Wenn}{SonstWenn}{Sonst}{wenn}{dann}{sonst wenn}{sonst}{Ende wenn}%gIf -\SetKwSwitch{Unterscheide}{Fall}{Anderes}{unterscheide}{tue}{Fall}{sonst}{Ende Fall}{Ende Unt.}%Switch -\SetKwFor{Fuer}{f\"ur}{tue}{Ende f\"ur}%For -\SetKwFor{FuerPar}{f\"ur}{tue gleichzeitig}{Ende gleichzeitig}%ForPar -\SetKwFor{FuerJedes}{f\"ur jedes}{tue}{Ende f\"ur}%ForEach -\SetKwFor{FuerAlle}{f\"ur alle}{tue}{Ende f\"ur}%ForAll -\SetKwFor{Solange}{solange}{tue}{Ende solange}%While -% -% --- Czech keywords -% -\SetKwInput{Vst}{Vstup}% -\SetKwInput{Vyst}{V\'{y}stup}% -\SetKwInput{Vysl}{V\'{y}sledek}% -% -% --- Portuguese keywords -% -\SetKwInput{Entrada}{Entrada}% -\SetKwInput{Saida}{Sa\'{i}da}% -\SetKwInput{Dados}{Dados}% -\SetKwInput{Resultado}{Resultado}% -\SetKw{Ate}{at\'{e}} -\SetKw{KwRetorna}{retorna}% -\SetKw{Retorna}{retorna}% -\SetKwBlock{Inicio}{in\'{i}cio}{fim}% -\SetKwRepeat{Repita}{repita}{at\'{e}}% -% -\SetKwIF{Se}{SenaoSe}{Senao}{se}{ent\~{a}o}{sen\~{a}o se}{sen\~{a}o}{fim se}% -\SetKwSwitch{Selec}{Caso}{Outro}{selecione}{fa\c{c}a}{caso}{sen\~{a}o}{fim caso}{fim selec}% -\SetKwFor{Para}{para}{fa\c{c}a}{fim para}% -\SetKwFor{ParaPar}{para}{fa\c{c}a em paralelo}{fim para} -\SetKwFor{ParaCada}{para cada}{fa\c{c}a}{fim para cada}% -\SetKwFor{ParaTodo}{para todo}{fa\c{c}a}{fim para todo}% -\SetKwFor{Enqto}{enquanto}{fa\c{c}a}{fim enqto}% -% -% --- Italian keywords -% -\SetKwInput{KwIng}{Ingresso}% -\SetKwInput{KwUsc}{Uscita}% -\SetKwInput{KwDati}{Dati}% -\SetKwInput{KwRisult}{Risultato}% -\SetKw{KwA}{a}% -\SetKw{KwRitorna}{ritorna}% -\SetKw{Ritorna}{ritorna}% -\SetKwBlock{Inizio}{inizio}{fine}% -\SetKwRepeat{Ripeti}{ripeti}{finch\'e}% -% -\SetKwIF{Sea}{AltSe}{Altrimenti}{se}{allora}{altrimenti se}{allora}{fine se}% -\SetKwSwitch{Switch}{Case}{Other}{switch}{do}{case}{otherwise}{end case}{endsw}% -\SetKwFor{Per}{per}{fai}{fine per}% -\SetKwFor{PerPar}{per}{fai in parallelo}{fine per}% -\SetKwFor{PerCiascun}{per ciascun}{fai}{fine per ciascun}% -\SetKwFor{PerTutti}{per tutti i}{fai}{fine per tutti}% -\SetKwFor{Finche}{finch\'e}{fai}{fine finch\'e}% -% -% --- Spanish keywords -% -\SetKwInput{Datos}{Datos} -\SetKwInput{Resultado}{Resultado} -\SetKwInput{Entrada}{Entrada} -\SetKwInput{Salida}{Salida} -\SetKw{KwA}{a} -\SetKw{KwDevolver}{devolver} -\SetKw{Devolver}{devolver} -\SetKwBlock{Inicio}{inicio}{fin} -\SetKwIF{SSi}{EnOtroCasoSi}{EnOtroCaso}{si}{entonces}{sin\'o, si}{sin\'o}{fin si} -\SetKwSwitch{Seleccionar}{Caso}{Otro}{seleccionar}{hacer}{caso}{sin\'o}{fin caso}{fin seleccionar} -\SetKwFor{Para}{para}{hacer}{fin para} -\SetKwFor{ParaPara}{par}{hacer en paralelo}{fin para} -\SetKwFor{EnParalelo}{para}{hacer en paralelo}{fin para} -\SetKwFor{Mientras}{mientras}{hacer}{fin mientras} -\SetKwFor{ParaCada}{para cada}{hacer}{fin para cada} -\SetKwFor{ParaTodo}{para todo}{hacer}{fin para todo} -\SetKwRepeat{Repetir}{repetir}{hasta que} -% -% Croatian keywords -% -\SetKwInput{KwUlaz}{Ulaz}%KwIn -\SetKwInput{KwIzlaz}{Izlaz}%KwOut -\SetKwInput{KwPodaci}{Podaci}%KwData -\SetKwInput{KwRezultat}{Rezultat}%KwResult -\SetKw{KwDo}{do}%KwTo -\SetKw{KwVrati}{vrati}%KwRet -\SetKw{Vrati}{vrati}%Return -\SetKwBlock{Pocetak}{po\v{c}etak}{kraj}%Begin -\SetKwRepeat{Ponavljaj}{ponavljaj}{dok ne bude}%Repeat -% -\SetKwIF{Ako}{InaceAko}{Inace}{ako}{onda}{ina\v{c}e ako}{ina\v{c}e}{kraj}%gIf -\SetKwSwitch{Granaj}{Slucaj}{Inace}{granaj}{\v{c}ini}{slu\v{c}aj}{ina\v{c}e}{kraj}{kraj}%Switch -\SetKwFor{Za}{za}{\v{c}ini}{kraj}%For -\SetKwFor{ZaPar}{za}{izvr\v{s}avaj paralelno}{kraj}%ForPar -\SetKwFor{ZaSvaki}{za svaki}{\v{c}ini}{kraj}%mForEach -\SetKwFor{ZaSvaku}{za svaku}{\v{c}ini}{kraj}%fForEach -\SetKwFor{ZaSvako}{za svako}{\v{c}ini}{kraj}%nForEach -\SetKwFor{ZaSve}{za sve}{\v{c}ini}{kraj}%ForAll -\SetKwFor{Dok}{dok}{\v{c}ini}{kraj}%While -% -% --- End -%} -% -%\algocf@defaults@common -% -% option onelanguage redefinition -% -\ifthenelse{\boolean{algocf@optonelanguage}\AND\equal{\algocf@languagechoosen}{french}}{% -\SetKwInput{KwIn}{Entr\'ees}% -\SetKwInput{KwOutSortie}{Sorties}% -\SetKwInput{KwData}{Donn\'ees}% -\SetKwInput{KwResult}{R\'esultat}% -\SetKw{KwTo}{\`a}% -\SetKw{KwRet}{retourner}% -\SetKw{Return}{retourner}% -\SetKwBlock{Begin}{d\'ebut}{fin}% -\SetKwRepeat{Repeat}{r\'ep\'eter}{jusqu'\`a}% -% -\SetKwIF{If}{ElseIf}{Else}{si}{alors}{sinon si}{sinon}{fin si}% -\SetKwSwitch{Switch}{Case}{Other}{suivant}{faire}{cas o\`u}{autres cas}{fin cas}{fin d'alternative}% -\SetKwFor{For}{pour}{faire}{fin pour}% -\SetKwFor{ForPar}{pour}{faire en parall\`ele}{fin pour}% -\SetKwFor{ForEach}{pour chaque}{faire}{fin pour chaque}% -\SetKwFor{ForAll}{pour tous les}{faire}{fin pour tous}% -\SetKwFor{While}{tant que}{faire}{fin tq}% -}{}% -\ifthenelse{\boolean{algocf@optonelanguage}\AND\equal{\algocf@languagechoosen}{german}}{% -\SetKwInput{KwIn}{Eingabe}%KwIn -\SetKwInput{KwOut}{Ausgabe}%KwOut -\SetKwInput{KwData}{Daten}%KwData -\SetKwInput{KwResult}{Ergebnis}%KwResult -\SetKw{KwTo}{bis}%KwTo -\SetKw{KwRet}{zur\"uck}%KwRet -\SetKw{Return}{zur\"uck}%Return -\SetKwBlock{Begin}{Beginn}{Ende}%Begin -\SetKwRepeat{Repeat}{wiederhole}{bis}%Repeat -% -\SetKwIF{If}{ElseIf}{Else}{wenn}{dann}{sonst wenn}{sonst}{Ende wenn}%gIf -\SetKwSwitch{Switch}{Case}{Other}{unterscheide}{tue}{Fall}{sonst}{Ende Fall}{Ende Unt.}%Switch -\SetKwFor{For}{f\"ur}{tue}{Ende f\"ur}%For -\SetKwFor{ForPar}{f\"ur}{tue gleichzeitig}{Ende gleichzeitig}%ForPar -\SetKwFor{ForEach}{f\"ur jedes}{tue}{Ende f\"ur}%ForEach -\SetKwFor{ForAll}{f\"ur alle}{tue}{Ende f\"ur}%ForAll -\SetKwFor{While}{solange}{tue}{Ende solange}%While -}{}% -\ifthenelse{\boolean{algocf@optonelanguage}\AND\equal{\algocf@languagechoosen}{portuguese}}{% -\SetKwInput{KwIn}{Entrada}% -\SetKwInput{KwOut}{Sa\'{i}da}% -\SetKwInput{KwData}{Dados}% -\SetKwInput{KwResult}{Resultado}% -\SetKw{KwTo}{at\'{e}} -\SetKw{KwRet}{retorna}% -\SetKw{Return}{retorna}% -\SetKwBlock{Begin}{in\'{i}cio}{fim}% -\SetKwRepeat{Repeat}{repita}{at\'{e}}% -% -\SetKwIF{If}{ElseIf}{Else}{se}{ent\~{a}o}{sen\~{a}o se}{sen\~{a}o}{fim se}% -\SetKwSwitch{Switch}{Case}{Other}{selecione}{fa\c{c}a}{caso}{sen\~{a}o}{fim caso}{fim selec}% -\SetKwFor{For}{para}{fa\c{c}a}{fim para}% -\SetKwFor{ForPar}{para}{fa\c{c}a em paralelo}{fim para} -\SetKwFor{ForEach}{para cada}{fa\c{c}a}{fim para cada}% -\SetKwFor{ForAll}{para todo}{fa\c{c}a}{fim para todo}% -\SetKwFor{While}{enquanto}{fa\c{c}a}{fim enqto}% -}{}% -\ifthenelse{\boolean{algocf@optonelanguage}\AND\equal{\algocf@languagechoosen}{italiano}}{% -\SetKwInput{KwIn}{Ingresso}% -\SetKwInput{KwOut}{Uscita}% -\SetKwInput{KwData}{Dati}% -\SetKwInput{KwResult}{Risultato}% -\SetKw{KwTo}{a}% -\SetKw{KwRet}{ritorna}% -\SetKw{Return}{ritorna}% -\SetKwBlock{Begin}{inizio}{fine}% -\SetKwRepeat{Repeat}{ripeti}{finch\'e}% -% -\SetKwIF{If}{ElseIf}{Else}{se}{allora}{altrimenti se}{allora}{fine se}% -\SetKwSwitch{Switch}{Case}{Other}{switch}{do}{case}{otherwise}{end case}{endsw}% -\SetKwFor{For}{per}{fai}{fine per}% -\SetKwFor{ForPar}{per}{fai in parallelo}{fine per}% -\SetKwFor{ForEach}{per ciascun}{fai}{fine per ciascun}% -\SetKwFor{ForAll}{per tutti i}{fai}{fine per tutti}% -\SetKwFor{While}{finch\'e}{fai}{fine finch\'e}% -}{}% -\ifthenelse{\boolean{algocf@optonelanguage}\AND\equal{\algocf@languagechoosen}{spanish}}{% -\SetKwInput{KwIn}{Entrada}% -\SetKwInput{KwOut}{Salida}% -\SetKwInput{KwData}{Datos}% -\SetKwInput{KwResult}{Resultado}% -\SetKw{KwTo}{a}% -\SetKw{KwRet}{devolver}% -\SetKw{Return}{devolver}% -\SetKwBlock{Begin}{inicio}{fin}% -\SetKwRepeat{Repeat}{repetir}{hasta que}% -% -\SetKwIF{If}{ElseIf}{Else}{si}{entonces}{sin\'o, si}{en otro caso}{fin si} -\SetKwSwitch{Switch}{Case}{Other}{seleccionar}{hacer}{caso}{sin\'o}{fin caso}{fin seleccionar} -\SetKwFor{For}{per}{fai}{fine per}% -\SetKwFor{ForPar}{par}{hacer in paralelo}{fin para}% -\SetKwFor{ForEach}{para cada}{hacer}{fin para cada} -\SetKwFor{ForAll}{para todo}{hacer}{fin para todo} -\SetKwFor{While}{mientras}{hacer}{fin mientras} -}{}% -% -\ifthenelse{\boolean{algocf@optonelanguage}\AND\equal{\algocf@languagechoosen}{croatian}}{% -\SetKwInput{KwIn}{Ulaz}%KwIn -\SetKwInput{KwOut}{Izlaz}%KwOut -\SetKwInput{KwData}{Podaci}%KwData -\SetKwInput{KwResult}{Rezultat}%KwResult -\SetKw{KwTo}{do}%KwTo -\SetKw{KwRet}{vrati}%KwRet -\SetKw{Return}{vrati}%Return -\SetKwBlock{Begin}{po\v{c}etak}{kraj}%Begin -\SetKwRepeat{Repeat}{ponavljaj}{dok ne bude}%Repeat -% -\SetKwIF{If}{ElseIf}{Else}{ako}{onda}{ina\v{c}e ako}{ina\v{c}e}{kraj}%gIf -\SetKwSwitch{Switch}{Case}{Other}{granaj}{\v{c}ini}{slu\v{c}aj}{ina\v{c}e}{kraj}{kraj}%Switch -\SetKwFor{For}{za}{\v{c}ini}{kraj}%For -\SetKwFor{ForPar}{za}{izvr\v{s}avaj paralelno}{kraj}%ForPar -\SetKwFor{ForEach}{za svaki}{\v{c}ini}{kraj}%ForEach -\SetKwFor{ForAll}{za sve}{\v{c}ini}{kraj}%ForAll -\SetKwFor{While}{dok}{\v{c}ini}{kraj}%While -}{}% -% -%%%% old commands compatibility -% -\ifthenelse{\boolean{algocf@oldcommands}}{% -\newcommand{\SetNoLine}{\SetAlgoNoLine}% -\newcommand{\SetNoline}{\SetAlgoNoLine}% -\newcommand{\SetVline}{\SetAlgoVlined}% -\newcommand{\SetLine}{\SetAlgoLined}% -% -\newcommand{\dontprintsemicolon}{\DontPrintSemicolon}% -\newcommand{\printsemicolon}{\PrintSemicolon}% -\newcommand{\incmargin}[1]{\IncMargin{#1}}% -\newcommand{\decmargin}[1]{\DecMargin{-#1}}% -\newcommand{\setnlskip}[1]{\SetNlSkip{#1}}% -\newcommand{\Setnlskip}[1]{\SetNlSkip{#1}}% -\newcommand{\setalcapskip}[1]{\SetAlCapSkip{#1}}% -\newcommand{\setalcaphskip}[1]{\SetAlCapHSkip{#1}}% -\newcommand{\nlSty}[1]{\NlSty{#1}}% -\newcommand{\Setnlsty}[3]{\SetNlSty{#1}{#2}{#3}}% -\newcommand{\linesnumbered}{\LinesNumbered}% -\newcommand{\linesnotnumbered}{\LinesNotNumbered}% -\newcommand{\linesnumberedhidden}{\LinesNumberedHidden}% -\newcommand{\showln}{\ShowLn}% -\newcommand{\showlnlabel}[1]{\ShowLnLabel{#1}}% -\newcommand{\nocaptionofalgo}{\NoCaptionOfAlgo}% -\newcommand{\restorecaptionofalgo}{\RestoreCaptionOfAlgo}% -\newcommand{\restylealgo}[1]{\RestyleAlgo{#1}}% -% -\newcommand{\Titleofalgo}[1]{\TitleOfAlgo{#1}}% -% \SetKwIF{If}{ElseIf}{Else}{if}{then}{else if}{else}{endif} -\newcommand{\SetKwIf}[6]{\SetKwIF{#1}{#2#1}{#2}{#3}{#4}{#5 #1}{#5}{#6}} -% -\SetKwIF{gSi}{gSinonSi}{gSinon}{si}{alors}{sinon si}{sinon}{fin si}% -\SetKwIF{gIf}{gElsIf}{gElse}{if}{then}{else if}{else}{end if}% -\SetKwIF{gIf}{gElseIf}{gElse}{if}{then}{else if}{else}{end if}% -\SetKwIF{gWenn}{gSonstWenn}{gSonst}{wenn}{dann}{sonst wenn}{sonst}{Ende wenn}%gIf -\SetKwIF{gSe}{gSenaoSe}{gSenao}{se}{ent\~{a}o}{sen\~{a}o se}{sen\~{a}o}{fim se}% -\SetKwIF{gSea}{gAltSe}{gAltrimenti}{se}{allora}{altrimenti se}{allora}{fine se}% -\SetKw{Ret}{return}% -\SetKwInput{Data}{Data}% -\SetKwInput{Result}{Result}% -}{% - \relax% -}% -% -% -% -%% -%%% -%%%% END \ No newline at end of file diff --git a/algorithmic.sty b/algorithmic.sty deleted file mode 100644 index a8ea254..0000000 --- a/algorithmic.sty +++ /dev/null @@ -1,192 +0,0 @@ -% ALGORITHMIC STYLE for LaTeX version 2e -% -% This style file is free software; you can redistribute it and/or -% modify it under the terms of the GNU Lesser General Public -% License as published by the Free Software Foundation; either -% version 2 of the License, or (at your option) any later version. -% -% This style file is distributed in the hope that it will be useful, -% but WITHOUT ANY WARRANTY; without even the implied warranty of -% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -% Lesser General Public License for more details. -% -% You should have received a copy of the GNU Lesser General Public -% License along with this style file; if not, write to the -% Free Software Foundation, Inc., 59 Temple Place - Suite 330, -% Boston, MA 02111-1307, USA. -% -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{algorithmic}[2006/06/02] -\typeout{Document Style `algorithmic' - environment} -% -\RequirePackage{ifthen} -\RequirePackage{calc} -\RequirePackage{keyval} -\newboolean{ALC@noend} -\setboolean{ALC@noend}{false} -\newcounter{ALC@line} -\newcounter{ALC@rem} -\newcounter{ALC@depth} -\newlength{\ALC@tlm} -% -\DeclareOption{noend}{\setboolean{ALC@noend}{true}} -% -\ProcessOptions -% -% For keyval-style options -\def\algsetup{\setkeys{ALG}} -% -% For indentation of algorithms -\newlength{\algorithmicindent} -\setlength{\algorithmicindent}{0pt} -\define@key{ALG}{indent}{\setlength{\algorithmicindent}{#1}} -\ifthenelse{\lengthtest{\algorithmicindent=0pt}}% - {\setlength{\algorithmicindent}{1em}}{} -% -% For line numbers' delimiters -\newcommand{\ALC@linenodelimiter}{:} -\define@key{ALG}{linenodelimiter}{\renewcommand{\ALC@linenodelimiter}{#1}} - -% -% For line numbers' size -\newcommand{\ALC@linenosize}{\footnotesize} -\define@key{ALG}{linenosize}{\renewcommand{\ALC@linenosize}{#1}} - -% -% ALGORITHMIC -\newcommand{\algorithmicrequire}{\textbf{Require:}} -\newcommand{\algorithmicensure}{\textbf{Ensure:}} -\newcommand{\algorithmiccomment}[1]{\{#1\}} -\newcommand{\algorithmicend}{\textbf{end}} -\newcommand{\algorithmicif}{\textbf{if}} -\newcommand{\algorithmicthen}{\textbf{then}} -\newcommand{\algorithmicelse}{\textbf{else}} -\newcommand{\algorithmicelsif}{\algorithmicelse\ \algorithmicif} -\newcommand{\algorithmicendif}{\algorithmicend\ \algorithmicif} -\newcommand{\algorithmicfor}{\textbf{for}} -\newcommand{\algorithmicforall}{\textbf{for all}} -\newcommand{\algorithmicdo}{\textbf{do}} -\newcommand{\algorithmicendfor}{\algorithmicend\ \algorithmicfor} -\newcommand{\algorithmicwhile}{\textbf{while}} -\newcommand{\algorithmicendwhile}{\algorithmicend\ \algorithmicwhile} -\newcommand{\algorithmicloop}{\textbf{loop}} -\newcommand{\algorithmicendloop}{\algorithmicend\ \algorithmicloop} -\newcommand{\algorithmicrepeat}{\textbf{repeat}} -\newcommand{\algorithmicuntil}{\textbf{until}} -\newcommand{\algorithmicprint}{\textbf{print}} -\newcommand{\algorithmicreturn}{\textbf{return}} -\newcommand{\algorithmictrue}{\textbf{true}} -\newcommand{\algorithmicfalse}{\textbf{false}} -\def\ALC@setref{% - \def\@currentlabel{\theALC@line}% -} -\def\ALC@item[#1]{% -\if@noparitem \@donoparitem - \else \if@inlabel \indent \par \fi - \ifhmode \unskip\unskip \par \fi - \if@newlist \if@nobreak \@nbitem \else - \addpenalty\@beginparpenalty - \addvspace\@topsep \addvspace{-\parskip}\fi - \else \addpenalty\@itempenalty \addvspace\itemsep - \fi - \global\@inlabeltrue -\fi -\everypar{\global\@minipagefalse\global\@newlistfalse - \if@inlabel\global\@inlabelfalse \hskip -\parindent \box\@labels - \penalty\z@ \fi - \everypar{}}\global\@nobreakfalse -\if@noitemarg \@noitemargfalse \if@nmbrlist \refstepcounter{\@listctr}\fi \fi -\sbox\@tempboxa{\makelabel{#1}}% -\global\setbox\@labels - \hbox{\unhbox\@labels \hskip \itemindent - \hskip -\labelwidth \hskip -\ALC@tlm - \ifdim \wd\@tempboxa >\labelwidth - \box\@tempboxa - \else \hbox to\labelwidth {\unhbox\@tempboxa}\fi - \hskip \ALC@tlm}\ignorespaces} -% -\newenvironment{algorithmic}[1][0]{ -\setcounter{ALC@depth}{\@listdepth}% -\let\@listdepth\c@ALC@depth% -\let\@item\ALC@item% - \newcommand{\ALC@lno}{% -\ifthenelse{\equal{\arabic{ALC@rem}}{0}} -{{\ALC@linenosize \arabic{ALC@line}\ALC@linenodelimiter}}{}% -} -\let\@listii\@listi -\let\@listiii\@listi -\let\@listiv\@listi -\let\@listv\@listi -\let\@listvi\@listi -\let\@listvii\@listi - \newenvironment{ALC@g}{ - \begin{list}{\ALC@lno}{ \itemsep\z@ \itemindent\z@ - \listparindent\z@ \rightmargin\z@ - \topsep\z@ \partopsep\z@ \parskip\z@\parsep\z@ - \leftmargin \algorithmicindent%1em - \addtolength{\ALC@tlm}{\leftmargin} - } - } - {\end{list}} - \newcommand{\ALC@it}{\refstepcounter{ALC@rem}\refstepcounter{ALC@line}\ifthenelse{\equal{\arabic{ALC@rem}}{#1}}{\setcounter{ALC@rem}{0}}{}\item\ALC@setref} - \newcommand{\ALC@com}[1]{\ifthenelse{\equal{##1}{default}}% -{}{\ \algorithmiccomment{##1}}} - \newcommand{\REQUIRE}{\item[\algorithmicrequire]} - \newcommand{\ENSURE}{\item[\algorithmicensure]} - \newcommand{\PRINT}{\ALC@it\algorithmicprint{}\ \ } - \newcommand{\RETURN}{\ALC@it\algorithmicreturn{}\ \ } - \newcommand{\TRUE}{\algorithmictrue{}} - \newcommand{\FALSE}{\algorithmicfalse{}} - \newcommand{\STATE}{\ALC@it} - \newcommand{\STMT}{\ALC@it} - \newcommand{\COMMENT}[1]{\algorithmiccomment{##1}} - \newenvironment{ALC@if}{\begin{ALC@g}}{\end{ALC@g}} - \newenvironment{ALC@for}{\begin{ALC@g}}{\end{ALC@g}} - \newenvironment{ALC@whl}{\begin{ALC@g}}{\end{ALC@g}} - \newenvironment{ALC@loop}{\begin{ALC@g}}{\end{ALC@g}} - \newenvironment{ALC@rpt}{\begin{ALC@g}}{\end{ALC@g}} - \renewcommand{\\}{\@centercr} - \newcommand{\IF}[2][default]{\ALC@it\algorithmicif\ ##2\ \algorithmicthen% -\ALC@com{##1}\begin{ALC@if}} - \newcommand{\ELSE}[1][default]{\end{ALC@if}\ALC@it\algorithmicelse% -\ALC@com{##1}\begin{ALC@if}} - \newcommand{\ELSIF}[2][default]% -{\end{ALC@if}\ALC@it\algorithmicelsif\ ##2\ \algorithmicthen% -\ALC@com{##1}\begin{ALC@if}} - \newcommand{\FOR}[2][default]{\ALC@it\algorithmicfor\ ##2\ \algorithmicdo% -\ALC@com{##1}\begin{ALC@for}} - \newcommand{\FORALL}[2][default]{\ALC@it\algorithmicforall\ ##2\ % -\algorithmicdo% -\ALC@com{##1}\begin{ALC@for}} - \newcommand{\WHILE}[2][default]{\ALC@it\algorithmicwhile\ ##2\ % -\algorithmicdo% -\ALC@com{##1}\begin{ALC@whl}} - \newcommand{\LOOP}[1][default]{\ALC@it\algorithmicloop% -\ALC@com{##1}\begin{ALC@loop}} - \newcommand{\REPEAT}[1][default]{\ALC@it\algorithmicrepeat% -\ALC@com{##1}\begin{ALC@rpt}} - \newcommand{\UNTIL}[1]{\end{ALC@rpt}\ALC@it\algorithmicuntil\ ##1} - \ifthenelse{\boolean{ALC@noend}}{ - \newcommand{\ENDIF}{\end{ALC@if}} - \newcommand{\ENDFOR}{\end{ALC@for}} - \newcommand{\ENDWHILE}{\end{ALC@whl}} - \newcommand{\ENDLOOP}{\end{ALC@loop}} - }{ - \newcommand{\ENDIF}{\end{ALC@if}\ALC@it\algorithmicendif} - \newcommand{\ENDFOR}{\end{ALC@for}\ALC@it\algorithmicendfor} - \newcommand{\ENDWHILE}{\end{ALC@whl}\ALC@it\algorithmicendwhile} - \newcommand{\ENDLOOP}{\end{ALC@loop}\ALC@it\algorithmicendloop} - } - \renewcommand{\@toodeep}{} - \begin{list}{\ALC@lno}{\setcounter{ALC@rem}{0}\setcounter{ALC@line}{0}% - \itemsep\z@ \itemindent\z@ \listparindent\z@% - \partopsep\z@ \parskip\z@ \parsep\z@% - \labelsep 0.5em \topsep 0.2em% -\ifthenelse{\equal{#1}{0}} - {\labelwidth 0.5em } - {\labelwidth 1.2em } -\leftmargin\labelwidth \addtolength{\leftmargin}{\labelsep} - \ALC@tlm\labelsep - } -} -{\end{list}} diff --git a/bare_adv.tex b/bare_adv.tex deleted file mode 100755 index 0007bec..0000000 --- a/bare_adv.tex +++ /dev/null @@ -1,1100 +0,0 @@ - -%% bare_adv.tex -%% V1.3 -%% 2007/01/11 -%% by Michael Shell -%% See: -%% http://www.michaelshell.org/ -%% for current contact information. -%% -%% This is a skeleton file demonstrating the advanced use of IEEEtran.cls -%% (requires IEEEtran.cls version 1.7 or later) with an IEEE Computer -%% Society journal paper. -%% -%% Support sites: -%% http://www.michaelshell.org/tex/ieeetran/ -%% http://www.ctan.org/tex-archive/macros/latex/contrib/IEEEtran/ -%% and -%% http://www.ieee.org/ - -%%************************************************************************* -%% Legal Notice: -%% This code is offered as-is without any warranty either expressed or -%% implied; without even the implied warranty of MERCHANTABILITY or -%% FITNESS FOR A PARTICULAR PURPOSE! -%% User assumes all risk. -%% In no event shall IEEE or any contributor to this code be liable for -%% any damages or losses, including, but not limited to, incidental, -%% consequential, or any other damages, resulting from the use or misuse -%% of any information contained here. -%% -%% All comments are the opinions of their respective authors and are not -%% necessarily endorsed by the IEEE. -%% -%% This work is distributed under the LaTeX Project Public License (LPPL) -%% ( http://www.latex-project.org/ ) version 1.3, and may be freely used, -%% distributed and modified. A copy of the LPPL, version 1.3, is included -%% in the base LaTeX documentation of all distributions of LaTeX released -%% 2003/12/01 or later. -%% Retain all contribution notices and credits. -%% ** Modified files should be clearly indicated as such, including ** -%% ** renaming them and changing author support contact information. ** -%% -%% File list of work: IEEEtran.cls, IEEEtran_HOWTO.pdf, bare_adv.tex, -%% bare_conf.tex, bare_jrnl.tex, bare_jrnl_compsoc.tex -%%************************************************************************* - -% *** Authors should verify (and, if needed, correct) their LaTeX system *** -% *** with the testflow diagnostic prior to trusting their LaTeX platform *** -% *** with production work. IEEE's font choices can trigger bugs that do *** -% *** not appear when using other class files. *** -% The testflow support page is at: -% http://www.michaelshell.org/tex/testflow/ - - - -% IEEEtran V1.7 and later provides for these CLASSINPUT macros to allow the -% user to reprogram some IEEEtran.cls defaults if needed. These settings -% override the internal defaults of IEEEtran.cls regardless of which class -% options are used. Do not use these unless you have good reason to do so as -% they can result in nonIEEE compliant documents. User beware. ;) -% -%\newcommand{\CLASSINPUTbaselinestretch}{1.0} % baselinestretch -%\newcommand{\CLASSINPUTinnersidemargin}{1in} % inner side margin -%\newcommand{\CLASSINPUToutersidemargin}{1in} % outer side margin -%\newcommand{\CLASSINPUTtoptextmargin}{1in} % top text margin -%\newcommand{\CLASSINPUTbottomtextmargin}{1in}% bottom text margin - - - -% Note that the a4paper option is mainly intended so that authors in -% countries using A4 can easily print to A4 and see how their papers will -% look in print - the typesetting of the document will not typically be -% affected with changes in paper size (but the bottom and side margins will). -% Use the testflow package mentioned above to verify correct handling of -% both paper sizes by the user's LaTeX system. -% -% Also note that the "draftcls" or "draftclsnofoot", not "draft", option -% should be used if it is desired that the figures are to be displayed in -% draft mode. -% -\documentclass[12pt,journal,compsoc]{IEEEtran} -% The Computer Society requires 12pt. -% If IEEEtran.cls has not been installed into the LaTeX system files, -% manually specify the path to it like: -% \documentclass[10pt,journal,compsoc]{../sty/IEEEtran} - - -% For Computer Society journals, IEEEtran defaults to the use of -% Palatino/Palladio as is done in IEEE Computer Society journals. -% To go back to Times Roman, you can use this code: -%\renewcommand{\rmdefault}{ptm}\selectfont - - - - - -% Some very useful LaTeX packages include: -% (uncomment the ones you want to load) - - - -% *** MISC UTILITY PACKAGES *** -% -%\usepackage{ifpdf} -% Heiko Oberdiek's ifpdf.sty is very useful if you need conditional -% compilation based on whether the output is pdf or dvi. -% usage: -% \ifpdf -% % pdf code -% \else -% % dvi code -% \fi -% The latest version of ifpdf.sty can be obtained from: -% http://www.ctan.org/tex-archive/macros/latex/contrib/oberdiek/ -% Also, note that IEEEtran.cls V1.7 and later provides a builtin -% \ifCLASSINFOpdf conditional that works the same way. -% When switching from latex to pdflatex and vice-versa, the compiler may -% have to be run twice to clear warning/error messages. - - - - - - -% *** CITATION PACKAGES *** -% -\ifCLASSOPTIONcompsoc - % IEEE Computer Society needs nocompress option - % requires cite.sty v4.0 or later (November 2003) - % \usepackage[nocompress]{cite} -\else - % normal IEEE - % \usepackage{cite} -\fi -% cite.sty was written by Donald Arseneau -% V1.6 and later of IEEEtran pre-defines the format of the cite.sty package -% \cite{} output to follow that of IEEE. Loading the cite package will -% result in citation numbers being automatically sorted and properly -% "compressed/ranged". e.g., [1], [9], [2], [7], [5], [6] without using -% cite.sty will become [1], [2], [5]--[7], [9] using cite.sty. cite.sty's -% \cite will automatically add leading space, if needed. Use cite.sty's -% noadjust option (cite.sty V3.8 and later) if you want to turn this off. -% cite.sty is already installed on most LaTeX systems. Be sure and use -% version 4.0 (2003-05-27) and later if using hyperref.sty. cite.sty does -% not currently provide for hyperlinked citations. -% The latest version can be obtained at: -% http://www.ctan.org/tex-archive/macros/latex/contrib/cite/ -% The documentation is contained in the cite.sty file itself. -% -% Note that some packages require special options to format as the Computer -% Society requires. In particular, Computer Society papers do not use -% compressed citation ranges as is done in typical IEEE papers -% (e.g., [1]-[4]). Instead, they list every citation separately in order -% (e.g., [1], [2], [3], [4]). To get the latter we need to load the cite -% package with the nocompress option which is supported by cite.sty v4.0 -% and later. Note also the use of a CLASSOPTION conditional provided by -% IEEEtran.cls V1.7 and later. - - - - - -% *** GRAPHICS RELATED PACKAGES *** -% -\ifCLASSINFOpdf - % \usepackage[pdftex]{graphicx} - % declare the path(s) where your graphic files are - % \graphicspath{{../pdf/}{../jpeg/}} - % and their extensions so you won't have to specify these with - % every instance of \includegraphics - % \DeclareGraphicsExtensions{.pdf,.jpeg,.png} -\else - % or other class option (dvipsone, dvipdf, if not using dvips). graphicx - % will default to the driver specified in the system graphics.cfg if no - % driver is specified. - % \usepackage[dvips]{graphicx} - % declare the path(s) where your graphic files are - % \graphicspath{{../eps/}} - % and their extensions so you won't have to specify these with - % every instance of \includegraphics - % \DeclareGraphicsExtensions{.eps} -\fi -% graphicx was written by David Carlisle and Sebastian Rahtz. It is -% required if you want graphics, photos, etc. graphicx.sty is already -% installed on most LaTeX systems. The latest version and documentation can -% be obtained at: -% http://www.ctan.org/tex-archive/macros/latex/required/graphics/ -% Another good source of documentation is "Using Imported Graphics in -% LaTeX2e" by Keith Reckdahl which can be found as epslatex.ps or -% epslatex.pdf at: http://www.ctan.org/tex-archive/info/ -% -% latex, and pdflatex in dvi mode, support graphics in encapsulated -% postscript (.eps) format. pdflatex in pdf mode supports graphics -% in .pdf, .jpeg, .png and .mps (metapost) formats. Users should ensure -% that all non-photo figures use a vector format (.eps, .pdf, .mps) and -% not a bitmapped formats (.jpeg, .png). IEEE frowns on bitmapped formats -% which can result in "jaggedy"/blurry rendering of lines and letters as -% well as large increases in file sizes. -% -% You can find documentation about the pdfTeX application at: -% http://www.tug.org/applications/pdftex - - - -%\usepackage{ps4pdf} -% dvi->ps workflow is required to use such packages as psfrag.sty and -% pstricks.sty. However, Rolf Niepraschk's ps4pdf.sty provides a way to -% apply psfrag/pstricks effects to .eps figures and then get the resultant -% figures in .pdf form. Thus, providing an easier way for migrating from -% .eps to .pdf figures. After ps4pdf.sty loads, if: -% 1. producing .dvi output: the output file will consist ONLY of the -% figures (or other constructs encased within \PSforPDF commands) -% 2. producing .pdf output: pdflatex will look in the filename-pics.pdf -% file, where filename is the basename of the tex document, for the -% graphics (or other constructs encased within \PSforPDF commands). -% NOTE: If you ever change your figures, you must remember to remake -% the filename-pics.pdf file. -% -% This way you can do a: -% -% latex filename -% dvips -Ppdf -o filename-pics.ps filename.dvi -% ps2pdf filename-pics.ps filename-pics.pdf -% -% to produce a filename-pics.pdf graphics container that contains -% .pdf versions of the graphics with psfrag, pstricks, etc. features. -% Note that you will not typically be able to view the figures in -% filename-pics.ps because of an offset. However, you will be able to -% view them in filename-pics.pdf. Also, note that when ps4pdf is in effect -% with .dvi output, you may get harmless over/under full box warnings - -% ignore them. -% Then, run pdflatex: -% -% pdflatex filename -% -% to use pdflatex to make PDF output, automatically using the figures in -% filename-pics.pdf. Alternatively, you could use dvips -i option to -% obtain separate .pdf files for each figure: -% -% dvips -Ppdf -i -E -o fig filename -% -% then convert each figure to pdf via a command such as epstopdf and then -% use pdflatex with these pdf figures and then to dispense with ps4pdf. -% -% Remember to rerun through latex/dvips/ps2pdf if you ever change your -% figures so that filename-pics.pdf gets updated. -% ps4pdf requires David Kastrup's preview-latex and a recent LaTeX system -% (circa 2001 or later). The ps4pdf package and documentation can be -% obtained at: http://www.ctan.org/tex-archive/macros/latex/contrib/ps4pdf/ -% The preview-latex package and documentation can be obtained at: -% http://www.ctan.org/tex-archive/macros/latex/contrib/preview/ -% -% provide a bogus \PSforPDF, even when not loading pd4pdf. This way we can -% stop loading ps4pdf.sty if we choose to make separate .pdf versions of -% each of our figures. -\providecommand{\PSforPDF}[1]{#1} -% Note that in order for ps4pdf to work, all commands related to psfrag, -% pstricks, etc. must be called within the PSforPDF command. This applies -% even when *loading* via \usepackage psfrag.sty, etc. - - -%\PSforPDF{\usepackage{psfrag}} -% psfrag.sty was written by Craig Barratt, Michael C. Grant, and -% David Carlisle. It allows you to substitute LaTeX commands for text in -% imported EPS graphic files. In this way, LaTeX symbols can be placed into -% graphics that have been generated by other applications. You must use -% latex->dvips->ps2pdf workflow (not direct pdf output from pdflatex) if -% you wish to use this capability because it works via some PostScript -% tricks. Alternatively, the graphics could be processed as separate files -% via psfrag and dvips, then converted to PDF for inclusion in the main file -% which uses pdflatex. ps4pdf.sty (above) provides a way of doing this all -% at once within the main file. -% Docs are in "The PSfrag System" by Michael C. Grant and David Carlisle. -% There is also some information about using psfrag in "Using Imported -% Graphics in LaTeX2e" by Keith Reckdahl which documents the graphicx -% package (see above). The psfrag package and documentation can be obtained -% at: http://www.ctan.org/tex-archive/macros/latex/contrib/psfrag/ -% -% Note that the current version of psfrag does not "turn itself off" when -% running under pdf output. This will result in a harmless warning -% about a non-PDF \special. However, to silence this, a bogus psfrag -% command can be provided instead of loading psfrag.sty when PDF output -% is being used. Thus, a more complex alternative conditional loading scheme -% can be employed instead of the straightforword way above: -% -%\ifCLASSINFOpdf -% if outputting PDF, do not use or load psfrag.sty as current versions -% output a non-PDF special that generates a harmless, but annoying warning. -% Instead, we provide a bogus \psfrag command that does nothing with -% its arguments. This is a tad tricky because \psfrag can have up to six -% arguments four of which are optional: \psfrag{}[][][][]{} -% Code based on that in psfrag.sty -%\makeatletter -%\def\psfrag{\@ifstar{\@BOGUSpsfraga}{\@BOGUSpsfraga}} -%\def\@BOGUSpsfraga{\begingroup -% \@makeother\"\@makeother\*\@makeother\!\@makeother\~% -% \@makeother\:\@makeother\\\@makeother\%\@makeother\#% -% \@makeother\ \@BOGUSpsfragb} -%\def\@BOGUSpsfragb#1{\endgroup -% \@ifnextchar [{\@BOGUSpsfragc}% -% {\@BOGUSpsfrag}} -%\def\@BOGUSpsfragc[#1]{\@ifnextchar [{\@BOGUSpsfragd}% -% {\@BOGUSpsfrag}} -%\def\@BOGUSpsfragd[#1]{\@ifnextchar [{\@BOGUSpsfrage}% -% {\@BOGUSpsfrag}} -%\def\@BOGUSpsfrage[#1]{\@ifnextchar [{\@BOGUSpsfragf}% -% {\@BOGUSpsfrag}} -%\def\@BOGUSpsfragf[#1]{\@BOGUSpsfrag} -%\def\@BOGUSpsfrag#1{\ignorespaces} -%\makeatother -%\else -% using dvi output, load psfrag, but funnel it through PSforPDF -% as required by ps4pdf.sty -%\PSforPDF{\usepackage{psfrag}} -%\fi - - - - - -% *** MATH PACKAGES *** -% -%\usepackage[cmex10]{amsmath} -% A popular package from the American Mathematical Society that provides -% many useful and powerful commands for dealing with mathematics. If using -% it, be sure to load this package with the cmex10 option to ensure that -% only type 1 fonts will utilized at all point sizes. Without this option, -% it is possible that some math symbols, particularly those within -% footnotes, will be rendered in bitmap form which will result in a -% document that can not be IEEE Xplore compliant! -% -% Also, note that the amsmath package sets \interdisplaylinepenalty to 10000 -% thus preventing page breaks from occurring within multiline equations. Use: -%\interdisplaylinepenalty=2500 -% after loading amsmath to restore such page breaks as IEEEtran.cls normally -% does. amsmath.sty is already installed on most LaTeX systems. The latest -% version and documentation can be obtained at: -% http://www.ctan.org/tex-archive/macros/latex/required/amslatex/math/ - - - - - -% *** SPECIALIZED LIST PACKAGES *** -%\usepackage{acronym} -% acronym.sty was written by Tobias Oetiker. This package provides tools for -% managing documents with large numbers of acronyms. (You don't *have* to -% use this package - unless you have a lot of acronyms, you may feel that -% such package management of them is bit of an overkill.) -% Do note that the acronym environment (which lists acronyms) will have a -% problem when used under IEEEtran.cls because acronym.sty relies on the -% description list environment - which IEEEtran.cls has customized for -% producing IEEE style lists. A workaround is to declared the longest -% label width via the IEEEtran.cls \IEEEiedlistdecl global control: -% -% \renewcommand{\IEEEiedlistdecl}{\IEEEsetlabelwidth{SONET}} -% \begin{acronym} -% -% \end{acronym} -% \renewcommand{\IEEEiedlistdecl}{\relax}% remember to reset \IEEEiedlistdecl -% -% instead of using the acronym environment's optional argument. -% The latest version and documentation can be obtained at: -% http://www.ctan.org/tex-archive/macros/latex/contrib/acronym/ - - -%\usepackage{algorithmic} -% algorithmic.sty was written by Peter Williams and Rogerio Brito. -% This package provides an algorithmic environment fo describing algorithms. -% You can use the algorithmic environment in-text or within a figure -% environment to provide for a floating algorithm. Do NOT use the algorithm -% floating environment provided by algorithm.sty (by the same authors) or -% algorithm2e.sty (by Christophe Fiorio) as IEEE does not use dedicated -% algorithm float types and packages that provide these will not provide -% correct IEEE style captions. The latest version and documentation of -% algorithmic.sty can be obtained at: -% http://www.ctan.org/tex-archive/macros/latex/contrib/algorithms/ -% There is also a support site at: -% http://algorithms.berlios.de/index.html -% Also of interest may be the (relatively newer and more customizable) -% algorithmicx.sty package by Szasz Janos: -% http://www.ctan.org/tex-archive/macros/latex/contrib/algorithmicx/ - - - - -% *** ALIGNMENT PACKAGES *** -% -%\usepackage{array} -% Frank Mittelbach's and David Carlisle's array.sty patches and improves -% the standard LaTeX2e array and tabular environments to provide better -% appearance and additional user controls. As the default LaTeX2e table -% generation code is lacking to the point of almost being broken with -% respect to the quality of the end results, all users are strongly -% advised to use an enhanced (at the very least that provided by array.sty) -% set of table tools. array.sty is already installed on most systems. The -% latest version and documentation can be obtained at: -% http://www.ctan.org/tex-archive/macros/latex/required/tools/ - - -%\usepackage{mdwmath} -%\usepackage{mdwtab} -% Also highly recommended is Mark Wooding's extremely powerful MDW tools, -% especially mdwmath.sty and mdwtab.sty which are used to format equations -% and tables, respectively. The MDWtools set is already installed on most -% LaTeX systems. The lastest version and documentation is available at: -% http://www.ctan.org/tex-archive/macros/latex/contrib/mdwtools/ - - -% IEEEtran contains the IEEEeqnarray family of commands that can be used to -% generate multiline equations as well as matrices, tables, etc., of high -% quality. - - -%\usepackage{eqparbox} -% Also of notable interest is Scott Pakin's eqparbox package for creating -% (automatically sized) equal width boxes - aka "natural width parboxes". -% Available at: -% http://www.ctan.org/tex-archive/macros/latex/contrib/eqparbox/ - - - - - -% *** SUBFIGURE PACKAGES *** -%\ifCLASSOPTIONcompsoc -%\usepackage[tight,normalsize,sf,SF]{subfigure} -%\else -%\usepackage[tight,footnotesize]{subfigure} -%\fi -% subfigure.sty was written by Steven Douglas Cochran. This package makes it -% easy to put subfigures in your figures. e.g., "Figure 1a and 1b". For IEEE -% work, it is a good idea to load it with the tight package option to reduce -% the amount of white space around the subfigures. Computer Society papers -% use a larger font and \sffamily font for their captions, hence the -% additional options needed under compsoc mode. subfigure.sty is already -% installed on most LaTeX systems. The latest version and documentation can -% be obtained at: -% http://www.ctan.org/tex-archive/obsolete/macros/latex/contrib/subfigure/ -% subfigure.sty has been superceeded by subfig.sty. - - -%\ifCLASSOPTIONcompsoc -% \usepackage[caption=false]{caption} -% \usepackage[font=normalsize,labelfont=sf,textfont=sf]{subfig} -%\else -% \usepackage[caption=false]{caption} -% \usepackage[font=footnotesize]{subfig} -%\fi -% subfig.sty, also written by Steven Douglas Cochran, is the modern -% replacement for subfigure.sty. However, subfig.sty requires and -% automatically loads Axel Sommerfeldt's caption.sty which will override -% IEEEtran.cls handling of captions and this will result in nonIEEE style -% figure/table captions. To prevent this problem, be sure and preload -% caption.sty with its "caption=false" package option. This is will preserve -% IEEEtran.cls handing of captions. Version 1.3 (2005/06/28) and later -% (recommended due to many improvements over 1.2) of subfig.sty supports -% the caption=false option directly: -%\ifCLASSOPTIONcompsoc -% \usepackage[caption=false,font=normalsize,labelfont=sf,textfont=sf]{subfig} -%\else -% \usepackage[caption=false,font=footnotesize]{subfig} -%\fi -% -% The latest version and documentation can be obtained at: -% http://www.ctan.org/tex-archive/macros/latex/contrib/subfig/ -% The latest version and documentation of caption.sty can be obtained at: -% http://www.ctan.org/tex-archive/macros/latex/contrib/caption/ - - - - -% *** FLOAT PACKAGES *** -% -%\usepackage{fixltx2e} -% fixltx2e, the successor to the earlier fix2col.sty, was written by -% Frank Mittelbach and David Carlisle. This package corrects a few problems -% in the LaTeX2e kernel, the most notable of which is that in current -% LaTeX2e releases, the ordering of single and double column floats is not -% guaranteed to be preserved. Thus, an unpatched LaTeX2e can allow a -% single column figure to be placed prior to an earlier double column -% figure. The latest version and documentation can be found at: -% http://www.ctan.org/tex-archive/macros/latex/base/ - - -%\usepackage{stfloats} -% stfloats.sty was written by Sigitas Tolusis. This package gives LaTeX2e -% the ability to do double column floats at the bottom of the page as well -% as the top. (e.g., "\begin{figure*}[!b]" is not normally possible in -% LaTeX2e). It also provides a command: -%\fnbelowfloat -% to enable the placement of footnotes below bottom floats (the standard -% LaTeX2e kernel puts them above bottom floats). This is an invasive package -% which rewrites many portions of the LaTeX2e float routines. It may not work -% with other packages that modify the LaTeX2e float routines. The latest -% version and documentation can be obtained at: -% http://www.ctan.org/tex-archive/macros/latex/contrib/sttools/ -% Documentation is contained in the stfloats.sty comments as well as in the -% presfull.pdf file. Do not use the stfloats baselinefloat ability as IEEE -% does not allow \baselineskip to stretch. Authors submitting work to the -% IEEE should note that IEEE rarely uses double column equations and -% that authors should try to avoid such use. Do not be tempted to use the -% cuted.sty or midfloat.sty packages (also by Sigitas Tolusis) as IEEE does -% not format its papers in such ways. - - -%\ifCLASSOPTIONcaptionsoff -% \usepackage[nomarkers]{endfloat} -% \let\MYoriglatexcaption\caption -% \renewcommand{\caption}[2][\relax]{\MYoriglatexcaption[#2]{#2}} -%\fi -% endfloat.sty was written by James Darrell McCauley and Jeff Goldberg. -% This package may be useful when used in conjunction with IEEEtran.cls' -% captionsoff option. Some IEEE journals/societies require that submissions -% have lists of figures/tables at the end of the paper and that -% figures/tables without any captions are placed on a page by themselves at -% the end of the document. If needed, the draftcls IEEEtran class option or -% \CLASSINPUTbaselinestretch interface can be used to increase the line -% spacing as well. Be sure and use the nomarkers option of endfloat to -% prevent endfloat from "marking" where the figures would have been placed -% in the text. The two hack lines of code above are a slight modification of -% that suggested by in the endfloat docs (section 8.3.1) to ensure that -% the full captions always appear in the list of figures/tables - even if -% the user used the short optional argument of \caption[]{}. -% IEEE papers do not typically make use of \caption[]'s optional argument, -% so this should not be an issue. A similar trick can be used to disable -% captions of packages such as subfig.sty that lack options to turn off -% the subcaptions: -% For subfig.sty: -% \let\MYorigsubfloat\subfloat -% \renewcommand{\subfloat}[2][\relax]{\MYorigsubfloat[]{#2}} -% For subfigure.sty: -% \let\MYorigsubfigure\subfigure -% \renewcommand{\subfigure}[2][\relax]{\MYorigsubfigure[]{#2}} -% However, the above trick will not work if both optional arguments of -% the \subfloat/subfig command are used. Furthermore, there needs to be a -% description of each subfigure *somewhere* and endfloat does not add -% subfigure captions to its list of figures. Thus, the best approach is to -% avoid the use of subfigure captions (many IEEE journals avoid them anyway) -% and instead reference/explain all the subfigures within the main caption. -% The latest version of endfloat.sty and its documentation can obtained at: -% http://www.ctan.org/tex-archive/macros/latex/contrib/endfloat/ -% -% The IEEEtran \ifCLASSOPTIONcaptionsoff conditional can also be used -% later in the document, say, to conditionally put the References on a -% page by themselves. - - - - - -% *** PDF, URL AND HYPERLINK PACKAGES *** -% -%\usepackage{url} -% url.sty was written by Donald Arseneau. It provides better support for -% handling and breaking URLs. url.sty is already installed on most LaTeX -% systems. The latest version can be obtained at: -% http://www.ctan.org/tex-archive/macros/latex/contrib/misc/ -% Read the url.sty source comments for usage information. Basically, -% \url{my_url_here}. - - -% NOTE: PDF thumbnail features are not required in IEEE papers -% and their use requires extra complexity and work. -%\ifCLASSINFOpdf -% \usepackage[pdftex]{thumbpdf} -%\else -% \usepackage[dvips]{thumbpdf} -%\fi -% thumbpdf.sty and its companion Perl utility were written by Heiko Oberdiek. -% It allows the user a way to produce PDF documents that contain fancy -% thumbnail images of each of the pages (which tools like acrobat reader can -% utilize). This is possible even when using dvi->ps->pdf workflow if the -% correct thumbpdf driver options are used. thumbpdf.sty incorporates the -% file containing the PDF thumbnail information (filename.tpm is used with -% dvips, filename.tpt is used with pdftex, where filename is the base name of -% your tex document) into the final ps or pdf output document. An external -% utility, the thumbpdf *Perl script* is needed to make these .tpm or .tpt -% thumbnail files from a .ps or .pdf version of the document (which obviously -% does not yet contain pdf thumbnails). Thus, one does a: -% -% thumbpdf filename.pdf -% -% to make a filename.tpt, and: -% -% thumbpdf --mode dvips filename.ps -% -% to make a filename.tpm which will then be loaded into the document by -% thumbpdf.sty the NEXT time the document is compiled (by pdflatex or -% latex->dvips->ps2pdf). Users must be careful to regenerate the .tpt and/or -% .tpm files if the main document changes and then to recompile the -% document to incorporate the revised thumbnails to ensure that thumbnails -% match the actual pages. It is easy to forget to do this! -% -% Unix systems come with a Perl interpreter. However, MS Windows users -% will usually have to install a Perl interpreter so that the thumbpdf -% script can be run. The Ghostscript PS/PDF interpreter is also required. -% See the thumbpdf docs for details. The latest version and documentation -% can be obtained at. -% http://www.ctan.org/tex-archive/support/thumbpdf/ -% Be sure and use only version 3.8 (2005/07/06) or later of thumbpdf as -% earlier versions will not work properly with recent versions of pdfTeX -% (1.20a and later). - - -% NOTE: PDF hyperlink and bookmark features are not required in IEEE -% papers and their use requires extra complexity and work. -% *** IF USING HYPERREF BE SURE AND CHANGE THE EXAMPLE PDF *** -% *** TITLE/SUBJECT/AUTHOR/KEYWORDS INFO BELOW!! *** -\newcommand\MYhyperrefoptions{bookmarks=true,bookmarksnumbered=true, -pdfpagemode={UseOutlines},plainpages=false,pdfpagelabels=true, -colorlinks=true,linkcolor={black},citecolor={black},pagecolor={black}, -urlcolor={black}, -pdftitle={Bare Demo of IEEEtran.cls for Computer Society Journals},%.dvi->.ps->.pdf workflow if the respective packages/scripts are -% loaded/invoked with the correct driver options (dvips, etc.). -% As most IEEE papers use URLs sparingly (mainly in the references), this -% may not be as big an issue as with other publications. -% -% That said, recently Vilar Camara Neto introduced his breakurl.sty -% package which permits hyperref to easily break URLs even in dvi -% mode. Note that breakurl, unlike most other packages, must be loaded -% AFTER hyperref. The latest version of breakurl and its documentation can -% be obtained at: -% http://www.ctan.org/tex-archive/macros/latex/contrib/breakurl/ -% breakurl.sty is not for use under pdflatex pdf mode. Versions 1.10 -% (September 23, 2005) and later are recommened to avoid bugs in earlier -% releases. -% -% The advanced features offer by hyperref.sty are not required for IEEE -% submission, so users should weigh these features against the added -% complexity of use. Users who wish to use hyperref *must* ensure that -% their hyperref version is 6.72u or later *and* IEEEtran.cls is version -% 1.6b or later. -% The package options above demonstrate how to enable PDF bookmarks -% (a type of table of contents viewable in Acrobat Reader) as well as -% PDF document information (title, subject, author and keywords) that is -% viewable in Acrobat reader's Document_Properties menu. PDF document -% information is also used extensively to automate the cataloging of PDF -% documents. The above set of options ensures that hyperlinks will not be -% colored in the text and thus will not be visible in the printed page, -% but will be active on "mouse over". USING COLORS OR OTHER HIGHLIGHTING -% OF HYPERLINKS CAN RESULT IN DOCUMENT REJECTION BY THE IEEE, especially if -% these appear on the "printed" page. IF IN DOUBT, ASK THE RELEVANT -% SUBMISSION EDITOR. You may need to add the option hypertexnames=false if -% you used duplicate equation numbers, etc., but this should not be needed -% in normal IEEE work. -% The latest version of hyperref and its documentation can be obtained at: -% http://www.ctan.org/tex-archive/macros/latex/contrib/hyperref/ - - - - - -% *** Do not adjust lengths that control margins, column widths, etc. *** -% *** Do not use packages that alter fonts (such as pslatex). *** -% There should be no need to do such things with IEEEtran.cls V1.6 and later. -% (Unless specifically asked to do so by the journal or conference you plan -% to submit to, of course. ) - - -% correct bad hyphenation here -\hyphenation{op-tical net-works semi-conduc-tor} - - -\begin{document} -% -% paper title -% can use linebreaks \\ within to get better formatting as desired -\title{Bare Advanced Demo of IEEEtran.cls\\ for Computer Society Journals} -% -% -% author names and IEEE memberships -% note positions of commas and nonbreaking spaces ( ~ ) LaTeX will not break -% a structure at a ~ so this keeps an author's name from being broken across -% two lines. -% use \thanks{} to gain access to the first footnote area -% a separate \thanks must be used for each paragraph as LaTeX2e's \thanks -% was not built to handle multiple paragraphs -% -% -%\IEEEcompsocitemizethanks is a special \thanks that produces the bulleted -% lists the Computer Society journals use for "first footnote" author -% affiliations. Use \IEEEcompsocthanksitem which works much like \item -% for each affiliation group. When not in compsoc mode, -% \IEEEcompsocitemizethanks becomes like \thanks and -% \IEEEcompsocthanksitem becomes a line break with idention. This -% facilitates dual compilation, although admittedly the differences in the -% desired content of \author between the different types of papers makes a -% one-size-fits-all approach a daunting prospect. For instance, compsoc -% journal papers have the author affiliations above the "Manuscript -% received ..." text while in non-compsoc journals this is reversed. Sigh. - -\author{Michael~Shell,~\IEEEmembership{Member,~IEEE,} - John~Doe,~\IEEEmembership{Fellow,~OSA,} - and~Jane~Doe,~\IEEEmembership{Life~Fellow,~IEEE}% <-this % stops a space -\IEEEcompsocitemizethanks{\IEEEcompsocthanksitem M. Shell is with the Department -of Electrical and Computer Engineering, Georgia Institute of Technology, Atlanta, -GA, 30332.\protect\\ -% note need leading \protect in front of \\ to get a newline within \thanks as -% \\ is fragile and will error, could use \hfil\break instead. -E-mail: see http://www.michaelshell.org/contact.html -\IEEEcompsocthanksitem J. Doe and J. Doe are with Anonymous University.}% <-this % stops a space -\thanks{Manuscript received April 19, 2005; revised January 11, 2007.}} - -% note the % following the last \IEEEmembership and also \thanks - -% these prevent an unwanted space from occurring between the last author name -% and the end of the author line. i.e., if you had this: -% -% \author{....lastname \thanks{...} \thanks{...} } -% ^------------^------------^----Do not want these spaces! -% -% a space would be appended to the last name and could cause every name on that -% line to be shifted left slightly. This is one of those "LaTeX things". For -% instance, "\textbf{A} \textbf{B}" will typeset as "A B" not "AB". To get -% "AB" then you have to do: "\textbf{A}\textbf{B}" -% \thanks is no different in this regard, so shield the last } of each \thanks -% that ends a line with a % and do not let a space in before the next \thanks. -% Spaces after \IEEEmembership other than the last one are OK (and needed) as -% you are supposed to have spaces between the names. For what it is worth, -% this is a minor point as most people would not even notice if the said evil -% space somehow managed to creep in. - - - -% The paper headers -\markboth{Journal of \LaTeX\ Class Files,~Vol.~6, No.~1, January~2007}% -{Shell \MakeLowercase{\textit{et al.}}: Bare Advanced Demo of IEEEtran.cls for Journals} -% The only time the second header will appear is for the odd numbered pages -% after the title page when using the twoside option. -% -% *** Note that you probably will NOT want to include the author's *** -% *** name in the headers of peer review papers. *** -% You can use \ifCLASSOPTIONpeerreview for conditional compilation here if -% you desire. - - - -% The publisher's ID mark at the bottom of the page is less important with -% Computer Society journal papers as those publications place the marks -% outside of the main text columns and, therefore, unlike regular IEEE -% journals, the available text space is not reduced by their presence. -% If you want to put a publisher's ID mark on the page you can do it like -% this: -%\IEEEpubid{0000--0000/00\$00.00~\copyright~2007 IEEE} -% or like this to get the Computer Society new two part style. -%\IEEEpubid{\makebox[\columnwidth]{\hfill 0000--0000/00/\$00.00~\copyright~2007 IEEE}% -%\hspace{\columnsep}\makebox[\columnwidth]{Published by the IEEE Computer Society\hfill}} -% Remember, if you use this you must call \IEEEpubidadjcol in the second -% column for its text to clear the IEEEpubid mark (Computer Society jorunal -% papers don't need this extra clearance.) - - - -% use for special paper notices -%\IEEEspecialpapernotice{(Invited Paper)} - - - -% for Computer Society papers, we must declare the abstract and index terms -% PRIOR to the title within the \IEEEcompsoctitleabstractindextext IEEEtran -% command as these need to go into the title area created by \maketitle. -\IEEEcompsoctitleabstractindextext{% -\begin{abstract} -%\boldmath -The abstract goes here. -\end{abstract} -% IEEEtran.cls defaults to using nonbold math in the Abstract. -% This preserves the distinction between vectors and scalars. However, -% if the journal you are submitting to favors bold math in the abstract, -% then you can use LaTeX's standard command \boldmath at the very start -% of the abstract to achieve this. Many IEEE journals frown on math -% in the abstract anyway. In particular, the Computer Society does -% not want either math or citations to appear in the abstract. - -% Note that keywords are not normally used for peerreview papers. -\begin{IEEEkeywords} -Computer Society, IEEEtran, journal, \LaTeX, paper, template. -\end{IEEEkeywords}} - - -% make the title area -\maketitle - - -% To allow for easy dual compilation without having to reenter the -% abstract/keywords data, the \IEEEcompsoctitleabstractindextext text will -% not be used in maketitle, but will appear (i.e., to be "transported") -% here as \IEEEdisplaynotcompsoctitleabstractindextext when compsoc mode -% is not selected if conference mode is selected - because compsoc -% conference papers position the abstract like regular (non-compsoc) -% papers do! -\IEEEdisplaynotcompsoctitleabstractindextext -% \IEEEdisplaynotcompsoctitleabstractindextext has no effect when using -% compsoc under a non-conference mode. - - -% For peer review papers, you can put extra information on the cover -% page as needed: -% \ifCLASSOPTIONpeerreview -% \begin{center} \bfseries EDICS Category: 3-BBND \end{center} -% \fi -% -% For peerreview papers, this IEEEtran command inserts a page break and -% creates the second title. It will be ignored for other modes. -\IEEEpeerreviewmaketitle - - - -\section{Introduction} -% Computer Society journal papers do something a tad strange with the very -% first section heading (almost always called "Introduction"). They place it -% ABOVE the main text! IEEEtran.cls currently does not do this for you. -% However, You can achieve this effect by making LaTeX jump through some -% hoops via something like: -% -%\ifCLASSOPTIONcompsoc -% \noindent\raisebox{2\baselineskip}[0pt][0pt]% -% {\parbox{\columnwidth}{\section{Introduction}\label{sec:introduction}% -% \global\everypar=\everypar}}% -% \vspace{-1\baselineskip}\vspace{-\parskip}\par -%\else -% \section{Introduction}\label{sec:introduction}\par -%\fi -% -% Admittedly, this is a hack and may well be fragile, but seems to do the -% trick for me. Note the need to keep any \label that may be used right -% after \section in the above as the hack puts \section within a raised box. - - - -% The very first letter is a 2 line initial drop letter followed -% by the rest of the first word in caps (small caps for compsoc). -% -% form to use if the first word consists of a single letter: -% \IEEEPARstart{A}{demo} file is .... -% -% form to use if you need the single drop letter followed by -% normal text (unknown if ever used by IEEE): -% \IEEEPARstart{A}{}demo file is .... -% -% Some journals put the first two words in caps: -% \IEEEPARstart{T}{his demo} file is .... -% -% Here we have the typical use of a "T" for an initial drop letter -% and "HIS" in caps to complete the first word. -\IEEEPARstart{T}{his} demo file is intended to serve as a ``starter file'' -for IEEE Computer Society journal papers produced under \LaTeX\ using -IEEEtran.cls version 1.7 and later. -% You must have at least 2 lines in the paragraph with the drop letter -% (should never be an issue) -I wish you the best of success. - -\hfill mds - -\hfill January 11, 2007 - -\subsection{Subsection Heading Here} -Subsection text here. - -% needed in second column of first page if using \IEEEpubid -%\IEEEpubidadjcol - -\subsubsection{Subsubsection Heading Here} -Subsubsection text here. - - -% An example of a floating figure using the graphicx package. -% Note that \label must occur AFTER (or within) \caption. -% For figures, \caption should occur after the \includegraphics. -% Note that IEEEtran v1.7 and later has special internal code that -% is designed to preserve the operation of \label within \caption -% even when the captionsoff option is in effect. However, because -% of issues like this, it may be the safest practice to put all your -% \label just after \caption rather than within \caption{}. -% -% Reminder: the "draftcls" or "draftclsnofoot", not "draft", class -% option should be used if it is desired that the figures are to be -% displayed while in draft mode. -% -%\begin{figure}[!t] -%\centering -%\includegraphics[width=2.5in]{myfigure} -% where an .eps filename suffix will be assumed under latex, -% and a .pdf suffix will be assumed for pdflatex; or what has been declared -% via \DeclareGraphicsExtensions. -%\caption{Simulation Results} -%\label{fig_sim} -%\end{figure} - -% Note that IEEE typically puts floats only at the top, even when this -% results in a large percentage of a column being occupied by floats. -% However, the Computer Society has been known to put floats at the bottom. - - -% An example of a double column floating figure using two subfigures. -% (The subfig.sty package must be loaded for this to work.) -% The subfigure \label commands are set within each subfloat command, the -% \label for the overall figure must come after \caption. -% \hfil must be used as a separator to get equal spacing. -% The subfigure.sty package works much the same way, except \subfigure is -% used instead of \subfloat. -% -%\begin{figure*}[!t] -%\centerline{\subfloat[Case I]\includegraphics[width=2.5in]{subfigcase1}% -%\label{fig_first_case}} -%\hfil -%\subfloat[Case II]{\includegraphics[width=2.5in]{subfigcase2}% -%\label{fig_second_case}}} -%\caption{Simulation results} -%\label{fig_sim} -%\end{figure*} -% -% Note that often IEEE papers with subfigures do not employ subfigure -% captions (using the optional argument to \subfloat), but instead will -% reference/describe all of them (a), (b), etc., within the main caption. - - -% An example of a floating table. Note that, for IEEE style tables, the -% \caption command should come BEFORE the table. Table text will default to -% \footnotesize as IEEE normally uses this smaller font for tables. -% The \label must come after \caption as always. -% -%\begin{table}[!t] -%% increase table row spacing, adjust to taste -%\renewcommand{\arraystretch}{1.3} -% if using array.sty, it might be a good idea to tweak the value of -% \extrarowheight as needed to properly center the text within the cells -%\caption{An Example of a Table} -%\label{table_example} -%\centering -%% Some packages, such as MDW tools, offer better commands for making tables -%% than the plain LaTeX2e tabular which is used here. -%\begin{tabular}{|c||c|} -%\hline -%One & Two\\ -%\hline -%Three & Four\\ -%\hline -%\end{tabular} -%\end{table} - - -% Note that IEEE does not put floats in the very first column - or typically -% anywhere on the first page for that matter. Also, in-text middle ("here") -% positioning is not used. Most IEEE journals use top floats exclusively. -% However, Computer Society journals sometimes do use bottom floats - bear -% this in mind when choosing appropriate optional arguments for the -% figure/table environments. -% Note that, LaTeX2e, unlike IEEE journals, places footnotes above bottom -% floats. This can be corrected via the \fnbelowfloat command of the -% stfloats package. - - - -\section{Conclusion} -The conclusion goes here. - - - - - -% if have a single appendix: -%\appendix[Proof of the Zonklar Equations] -% or -%\appendix % for no appendix heading -% do not use \section anymore after \appendix, only \section* -% is possibly needed - -% use appendices with more than one appendix -% then use \section to start each appendix -% you must declare a \section before using any -% \subsection or using \label (\appendices by itself -% starts a section numbered zero.) -% - - -\appendices -\section{Proof of the First Zonklar Equation} -Appendix one text goes here. - -% you can choose not to have a title for an appendix -% if you want by leaving the argument blank -\section{} -Appendix two text goes here. - - -% use section* for acknowledgement -\ifCLASSOPTIONcompsoc - % The Computer Society usually uses the plural form - \section*{Acknowledgments} -\else - % regular IEEE prefers the singular form - \section*{Acknowledgment} -\fi - - -The authors would like to thank... - - -% Can use something like this to put references on a page -% by themselves when using endfloat and the captionsoff option. -\ifCLASSOPTIONcaptionsoff - \newpage -\fi - - - -% trigger a \newpage just before the given reference -% number - used to balance the columns on the last page -% adjust value as needed - may need to be readjusted if -% the document is modified later -%\IEEEtriggeratref{8} -% The "triggered" command can be changed if desired: -%\IEEEtriggercmd{\enlargethispage{-5in}} - -% references section - -% can use a bibliography generated by BibTeX as a .bbl file -% BibTeX documentation can be easily obtained at: -% http://www.ctan.org/tex-archive/biblio/bibtex/contrib/doc/ -% The IEEEtran BibTeX style support page is at: -% http://www.michaelshell.org/tex/ieeetran/bibtex/ -%\bibliographystyle{IEEEtran} -% argument is your BibTeX string definitions and bibliography database(s) -%\bibliography{IEEEabrv,../bib/paper} -% -% manually copy in the resultant .bbl file -% set second argument of \begin to the number of references -% (used to reserve space for the reference number labels box) -\begin{thebibliography}{1} - -\bibitem{IEEEhowto:kopka} -H.~Kopka and P.~W. Daly, \emph{A Guide to {\LaTeX}}, 3rd~ed.\hskip 1em plus - 0.5em minus 0.4em\relax Harlow, England: Addison-Wesley, 1999. - -\end{thebibliography} - -% biography section -% -% If you have an EPS/PDF photo (graphicx package needed) extra braces are -% needed around the contents of the optional argument to biography to prevent -% the LaTeX parser from getting confused when it sees the complicated -% \includegraphics command within an optional argument. (You could create -% your own custom macro containing the \includegraphics command to make things -% simpler here.) -%\begin{biography}[{\includegraphics[width=1in,height=1.25in,clip,keepaspectratio]{mshell}}]{Michael Shell} -% or if you just want to reserve a space for a photo: - -\begin{IEEEbiography}{Michael Shell} -Biography text here. -\end{IEEEbiography} - -% if you will not have a photo at all: -\begin{IEEEbiographynophoto}{John Doe} -Biography text here. -\end{IEEEbiographynophoto} - -% insert where needed to balance the two columns on the last page with -% biographies -%\newpage - -\begin{IEEEbiographynophoto}{Jane Doe} -Biography text here. -\end{IEEEbiographynophoto} - -% You can push biographies down or up by placing -% a \vfill before or after them. The appropriate -% use of \vfill depends on what kind of text is -% on the last page and whether or not the columns -% are being equalized. - -%\vfill - -% Can be used to pull up biographies so that the bottom of the last one -% is flush with the other column. -%\enlargethispage{-5in} - - - -% that's all folks -\end{document} - - diff --git a/bare_conf.aux b/bare_conf.aux deleted file mode 100644 index 7532109..0000000 --- a/bare_conf.aux +++ /dev/null @@ -1,53 +0,0 @@ -\relax -\citation{asc02} -\@writefile{toc}{\contentsline {section}{\numberline {I}Introduction}{1}} -\@writefile{toc}{\contentsline {section}{\numberline {II}\uppercase {Related work}}{1}} -\newlabel{rw}{{II}{1}} -\citation{Gallais06} -\citation{Tian02} -\citation{Ye03} -\citation{Zhang05} -\citation{HeinzelmanCB02} -\citation{Berman05efficientenergy} -\citation{1240799} -\citation{Tian02} -\citation{Prasad:2007:DAL:1782174.1782218} -\citation{chin2007} -\citation{Huang:2003:CPW:941350.941367} -\citation{Ye03} -\citation{cardei05} -\citation{Cardei:2006:ECP:1646656.1646898} -\citation{Slijepcevic01powerefficient} -\citation{cardei02} -\citation{Abrams:2004:SKA:984622.984684} -\citation{Slijepcevic01powerefficient} -\citation{Cardei:2005:IWS:1160086.1160098} -\citation{Slijepcevic01powerefficient} -\citation{Zorbas2007} -\citation{Slijepcevic01powerefficient} -\citation{Manju2011} -\citation{cardei05bis} -\citation{Cardei:2005:IWS:1160086.1160098} -\citation{berman04} -\citation{garg98} -\citation{pc10} -\citation{pc10} -\@writefile{toc}{\contentsline {section}{\numberline {III}\uppercase {Distributed coverage model}}{3}} -\newlabel{pd}{{III}{3}} -\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Multi-Round Coverage Protocol\relax }}{3}} -\providecommand*\caption@xref[2]{\@setref\relax\@undefined{#1}} -\newlabel{fig:4}{{1}{3}} -\@writefile{toc}{\contentsline {subsection}{\numberline {\unhbox \voidb@x \hbox {III-A}}\textbf INFO Exchange Phase}{3}} -\@writefile{toc}{\contentsline {subsection}{\numberline {\unhbox \voidb@x \hbox {III-B}}\textbf Leader Election Phase}{3}} -\@writefile{toc}{\contentsline {subsection}{\numberline {\unhbox \voidb@x \hbox {III-C}}\textbf Decision Phase}{3}} -\@writefile{toc}{\contentsline {subsection}{\numberline {\unhbox \voidb@x \hbox {III-D}}\textbf Sensing Phase}{3}} -\citation{Zhang05} -\citation{pedraza2006} -\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Wireless Sensor node represented by 13 principle points \relax }}{4}} -\newlabel{fig3}{{2}{4}} -\@writefile{toc}{\contentsline {section}{\numberline {IV}\uppercase {Coverage problem formulation}}{4}} -\newlabel{cp}{{IV}{4}} -\newlabel{eq13}{{3}{4}} -\newlabel{eq14}{{4}{4}} -\newlabel{eq:ip2r}{{5}{4}} -\citation{HeinzelmanCB02} diff --git a/bare_conf.log b/bare_conf.log deleted file mode 100644 index be0b2fa..0000000 --- a/bare_conf.log +++ /dev/null @@ -1,1015 +0,0 @@ -This is pdfTeX, Version 3.1415926-2.4-1.40.13 (TeX Live 2012/Debian) (format=pdflatex 2013.7.11) 30 JUL 2013 21:23 -entering extended mode - restricted \write18 enabled. - %&-line parsing enabled. -**bare_conf -(./bare_conf.tex -LaTeX2e <2011/06/27> -Babel and hyphenation patterns for english, dumylang, nohyphenation, lo -aded. -(./IEEEtran.cls -Document Class: IEEEtran 2012/11/21 V1.8c by Harald Hanche-Olsen and Anders Chr -istensen --- Based on V1.7a by Michael Shell --- See the "IEEEtran_HOWTO" manual for usage information. --- http://www.michaelshell.org/tex/ieeetran/ -\@IEEEtrantmpdimenA=\dimen102 -\@IEEEtrantmpdimenB=\dimen103 -\@IEEEtrantmpcountA=\count79 -\@IEEEtrantmpcountB=\count80 -\@IEEEtrantmptoksA=\toks14 -LaTeX Font Info: Try loading font information for OT1+ptm on input line 373. - -(/usr/share/texlive/texmf-dist/tex/latex/psnfss/ot1ptm.fd -File: ot1ptm.fd 2001/06/04 font definitions for OT1/ptm. -) --- Using 8.5in x 11in (letter) paper. --- Using PDF output. -\@IEEEnormalsizeunitybaselineskip=\dimen104 --- This is a 10 point document. -\CLASSINFOnormalsizebaselineskip=\dimen105 -\CLASSINFOnormalsizeunitybaselineskip=\dimen106 -\IEEEnormaljot=\dimen107 -LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <5> not available -(Font) Font shape `OT1/ptm/b/n' tried instead on input line 731. -LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <5> not available -(Font) Font shape `OT1/ptm/b/it' tried instead on input line 731. -LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <7> not available -(Font) Font shape `OT1/ptm/b/n' tried instead on input line 731. -LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <7> not available -(Font) Font shape `OT1/ptm/b/it' tried instead on input line 731. -LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <8> not available -(Font) Font shape `OT1/ptm/b/n' tried instead on input line 731. -LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <8> not available -(Font) Font shape `OT1/ptm/b/it' tried instead on input line 731. -LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <9> not available -(Font) Font shape `OT1/ptm/b/n' tried instead on input line 731. -LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <9> not available -(Font) Font shape `OT1/ptm/b/it' tried instead on input line 731. -LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <10> not available -(Font) Font shape `OT1/ptm/b/n' tried instead on input line 731. -LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <10> not available -(Font) Font shape `OT1/ptm/b/it' tried instead on input line 731. -LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <11> not available -(Font) Font shape `OT1/ptm/b/n' tried instead on input line 731. -LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <11> not available -(Font) Font shape `OT1/ptm/b/it' tried instead on input line 731. -LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <12> not available -(Font) Font shape `OT1/ptm/b/n' tried instead on input line 731. -LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <12> not available -(Font) Font shape `OT1/ptm/b/it' tried instead on input line 731. -LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <17> not available -(Font) Font shape `OT1/ptm/b/n' tried instead on input line 731. -LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <17> not available -(Font) Font shape `OT1/ptm/b/it' tried instead on input line 731. -LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <20> not available -(Font) Font shape `OT1/ptm/b/n' tried instead on input line 731. -LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <20> not available -(Font) Font shape `OT1/ptm/b/it' tried instead on input line 731. -LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <24> not available -(Font) Font shape `OT1/ptm/b/n' tried instead on input line 731. -LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <24> not available -(Font) Font shape `OT1/ptm/b/it' tried instead on input line 731. -\IEEEilabelindentA=\dimen108 -\IEEEilabelindentB=\dimen109 -\IEEEilabelindent=\dimen110 -\IEEEelabelindent=\dimen111 -\IEEEdlabelindent=\dimen112 -\IEEElabelindent=\dimen113 -\IEEEiednormlabelsep=\dimen114 -\IEEEiedmathlabelsep=\dimen115 -\IEEEiedtopsep=\skip41 -\c@section=\count81 -\c@subsection=\count82 -\c@subsubsection=\count83 -\c@paragraph=\count84 -\c@IEEEsubequation=\count85 -\abovecaptionskip=\skip42 -\belowcaptionskip=\skip43 -\c@figure=\count86 -\c@table=\count87 -\@IEEEeqnnumcols=\count88 -\@IEEEeqncolcnt=\count89 -\@IEEEtmpitemindent=\dimen116 -\c@IEEEbiography=\count90 -\@IEEEtranrubishbin=\box26 -) (/usr/share/texlive/texmf-dist/tex/latex/float/float.sty -Package: float 2001/11/08 v1.3d Float enhancements (AL) -\c@float@type=\count91 -\float@exts=\toks15 -\float@box=\box27 -\@float@everytoks=\toks16 -\@floatcapt=\box28 -) -(/usr/share/texlive/texmf-dist/tex/latex/graphics/epsfig.sty -Package: epsfig 1999/02/16 v1.7a (e)psfig emulation (SPQR) - -(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty -Package: graphicx 1999/02/16 v1.0f Enhanced LaTeX Graphics (DPC,SPQR) - -(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty -Package: keyval 1999/03/16 v1.13 key=value parser (DPC) -\KV@toks@=\toks17 -) -(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty -Package: graphics 2009/02/05 v1.0o Standard LaTeX Graphics (DPC,SPQR) - -(/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty -Package: trig 1999/03/16 v1.09 sin cos tan (DPC) -) -(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/graphics.cfg -File: graphics.cfg 2010/04/23 v1.9 graphics configuration of TeX Live -) -Package graphics Info: Driver file: pdftex.def on input line 91. - -(/usr/share/texlive/texmf-dist/tex/latex/pdftex-def/pdftex.def -File: pdftex.def 2011/05/27 v0.06d Graphics/color for pdfTeX - -(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/infwarerr.sty -Package: infwarerr 2010/04/08 v1.3 Providing info/warning/error messages (HO) -) -(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ltxcmds.sty -Package: ltxcmds 2011/11/09 v1.22 LaTeX kernel commands for general use (HO) -) -\Gread@gobject=\count92 -)) -\Gin@req@height=\dimen117 -\Gin@req@width=\dimen118 -) -\epsfxsize=\dimen119 -\epsfysize=\dimen120 -) -(/usr/share/texlive/texmf-dist/tex/latex/subfigure/subfigure.sty -Package: subfigure 2002/03/15 v2.1.5 subfigure package -\subfigtopskip=\skip44 -\subfigcapskip=\skip45 -\subfigcaptopadj=\dimen121 -\subfigbottomskip=\skip46 -\subfigcapmargin=\dimen122 -\subfiglabelskip=\skip47 -\c@subfigure=\count93 -\c@lofdepth=\count94 -\c@subtable=\count95 -\c@lotdepth=\count96 - -**************************************** -* Local config file subfigure.cfg used * -**************************************** -(/usr/share/texlive/texmf-dist/tex/latex/subfigure/subfigure.cfg) -\subfig@top=\skip48 -\subfig@bottom=\skip49 -) -(/usr/share/texlive/texmf-dist/tex/latex/tools/calc.sty -Package: calc 2007/08/22 v4.3 Infix arithmetic (KKT,FJ) -\calc@Acount=\count97 -\calc@Bcount=\count98 -\calc@Adimen=\dimen123 -\calc@Bdimen=\dimen124 -\calc@Askip=\skip50 -\calc@Bskip=\skip51 -LaTeX Info: Redefining \setlength on input line 76. -LaTeX Info: Redefining \addtolength on input line 77. -\calc@Ccount=\count99 -\calc@Cskip=\skip52 -) -(/usr/share/texlive/texmf-dist/tex/latex/psnfss/times.sty -Package: times 2005/04/12 PSNFSS-v9.2a (SPQR) -) -(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty -Package: amssymb 2009/06/22 v3.00 - -(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty -Package: amsfonts 2009/06/22 v3.00 Basic AMSFonts support -\@emptytoks=\toks18 -\symAMSa=\mathgroup4 -\symAMSb=\mathgroup5 -LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold' -(Font) U/euf/m/n --> U/euf/b/n on input line 96. -)) -(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty -Package: amsmath 2000/07/18 v2.13 AMS math features -\@mathmargin=\skip53 - -For additional information on amsmath, use the `?' option. -(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty -Package: amstext 2000/06/29 v2.01 - -(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty -File: amsgen.sty 1999/11/30 v2.0 -\@emptytoks=\toks19 -\ex@=\dimen125 -)) -(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty -Package: amsbsy 1999/11/29 v1.2d -\pmbraise@=\dimen126 -) -(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty -Package: amsopn 1999/12/14 v2.01 operator names -) -\inf@bad=\count100 -LaTeX Info: Redefining \frac on input line 211. -\uproot@=\count101 -\leftroot@=\count102 -LaTeX Info: Redefining \overline on input line 307. -\classnum@=\count103 -\DOTSCASE@=\count104 -LaTeX Info: Redefining \ldots on input line 379. -LaTeX Info: Redefining \dots on input line 382. -LaTeX Info: Redefining \cdots on input line 467. -\Mathstrutbox@=\box29 -\strutbox@=\box30 -\big@size=\dimen127 -LaTeX Font Info: Redeclaring font encoding OML on input line 567. -LaTeX Font Info: Redeclaring font encoding OMS on input line 568. -\macc@depth=\count105 -\c@MaxMatrixCols=\count106 -\dotsspace@=\muskip10 -\c@parentequation=\count107 -\dspbrk@lvl=\count108 -\tag@help=\toks20 -\row@=\count109 -\column@=\count110 -\maxfields@=\count111 -\andhelp@=\toks21 -\eqnshift@=\dimen128 -\alignsep@=\dimen129 -\tagshift@=\dimen130 -\tagwidth@=\dimen131 -\totwidth@=\dimen132 -\lineht@=\dimen133 -\@envbody=\toks22 -\multlinegap=\skip54 -\multlinetaggap=\skip55 -\mathdisplay@stack=\toks23 -LaTeX Info: Redefining \[ on input line 2666. -LaTeX Info: Redefining \] on input line 2667. -) -(/usr/share/texlive/texmf-dist/tex/latex/base/latexsym.sty -Package: latexsym 1998/08/17 v2.2e Standard LaTeX package (lasy symbols) -\symlasy=\mathgroup6 -LaTeX Font Info: Overwriting symbol font `lasy' in version `bold' -(Font) U/lasy/m/n --> U/lasy/b/n on input line 47. -) -(/usr/share/texlive/texmf-dist/tex/latex/txfonts/txfonts.sty -Package: txfonts 2008/01/22 v3.2.1 -LaTeX Font Info: Redeclaring symbol font `operators' on input line 21. -LaTeX Font Info: Overwriting symbol font `operators' in version `normal' -(Font) OT1/cmr/m/n --> OT1/txr/m/n on input line 21. -LaTeX Font Info: Overwriting symbol font `operators' in version `bold' -(Font) OT1/cmr/bx/n --> OT1/txr/m/n on input line 21. -LaTeX Font Info: Overwriting symbol font `operators' in version `bold' -(Font) OT1/txr/m/n --> OT1/txr/bx/n on input line 22. -\symitalic=\mathgroup7 -LaTeX Font Info: Overwriting symbol font `italic' in version `bold' -(Font) OT1/txr/m/it --> OT1/txr/bx/it on input line 26. -LaTeX Font Info: Redeclaring math alphabet \mathbf on input line 29. -LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `normal' -(Font) OT1/cmr/bx/n --> OT1/txr/bx/n on input line 29. -LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `bold' -(Font) OT1/cmr/bx/n --> OT1/txr/bx/n on input line 29. -LaTeX Font Info: Redeclaring math alphabet \mathit on input line 30. -LaTeX Font Info: Overwriting math alphabet `\mathit' in version `normal' -(Font) OT1/cmr/m/it --> OT1/txr/m/it on input line 30. -LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold' -(Font) OT1/cmr/bx/it --> OT1/txr/m/it on input line 30. -LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold' -(Font) OT1/txr/m/it --> OT1/txr/bx/it on input line 31. -LaTeX Font Info: Redeclaring math alphabet \mathsf on input line 40. -LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `normal' -(Font) OT1/cmss/m/n --> OT1/txss/m/n on input line 40. -LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `bold' -(Font) OT1/cmss/bx/n --> OT1/txss/m/n on input line 40. -LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `bold' -(Font) OT1/txss/m/n --> OT1/txss/b/n on input line 41. -LaTeX Font Info: Redeclaring math alphabet \mathtt on input line 50. -LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `normal' -(Font) OT1/cmtt/m/n --> OT1/txtt/m/n on input line 50. -LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `bold' -(Font) OT1/cmtt/m/n --> OT1/txtt/m/n on input line 50. -LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `bold' -(Font) OT1/txtt/m/n --> OT1/txtt/b/n on input line 51. -LaTeX Font Info: Redeclaring symbol font `letters' on input line 58. -LaTeX Font Info: Overwriting symbol font `letters' in version `normal' -(Font) OML/cmm/m/it --> OML/txmi/m/it on input line 58. -LaTeX Font Info: Overwriting symbol font `letters' in version `bold' -(Font) OML/cmm/b/it --> OML/txmi/m/it on input line 58. -LaTeX Font Info: Overwriting symbol font `letters' in version `bold' -(Font) OML/txmi/m/it --> OML/txmi/bx/it on input line 59. -\symlettersA=\mathgroup8 -LaTeX Font Info: Overwriting symbol font `lettersA' in version `bold' -(Font) U/txmia/m/it --> U/txmia/bx/it on input line 67. -LaTeX Font Info: Redeclaring math alphabet \mathfrak on input line 70. -LaTeX Font Info: Redeclaring symbol font `symbols' on input line 77. -LaTeX Font Info: Overwriting symbol font `symbols' in version `normal' -(Font) OMS/cmsy/m/n --> OMS/txsy/m/n on input line 77. -LaTeX Font Info: Overwriting symbol font `symbols' in version `bold' -(Font) OMS/cmsy/b/n --> OMS/txsy/m/n on input line 77. -LaTeX Font Info: Overwriting symbol font `symbols' in version `bold' -(Font) OMS/txsy/m/n --> OMS/txsy/bx/n on input line 78. -LaTeX Font Info: Redeclaring symbol font `AMSa' on input line 93. -LaTeX Font Info: Overwriting symbol font `AMSa' in version `normal' -(Font) U/msa/m/n --> U/txsya/m/n on input line 93. -LaTeX Font Info: Overwriting symbol font `AMSa' in version `bold' -(Font) U/msa/m/n --> U/txsya/m/n on input line 93. -LaTeX Font Info: Overwriting symbol font `AMSa' in version `bold' -(Font) U/txsya/m/n --> U/txsya/bx/n on input line 94. -LaTeX Font Info: Redeclaring symbol font `AMSb' on input line 102. -LaTeX Font Info: Overwriting symbol font `AMSb' in version `normal' -(Font) U/msb/m/n --> U/txsyb/m/n on input line 102. -LaTeX Font Info: Overwriting symbol font `AMSb' in version `bold' -(Font) U/msb/m/n --> U/txsyb/m/n on input line 102. -LaTeX Font Info: Overwriting symbol font `AMSb' in version `bold' -(Font) U/txsyb/m/n --> U/txsyb/bx/n on input line 103. -\symsymbolsC=\mathgroup9 -LaTeX Font Info: Overwriting symbol font `symbolsC' in version `bold' -(Font) U/txsyc/m/n --> U/txsyc/bx/n on input line 113. -LaTeX Font Info: Redeclaring symbol font `largesymbols' on input line 120. -LaTeX Font Info: Overwriting symbol font `largesymbols' in version `normal' -(Font) OMX/cmex/m/n --> OMX/txex/m/n on input line 120. -LaTeX Font Info: Overwriting symbol font `largesymbols' in version `bold' -(Font) OMX/cmex/m/n --> OMX/txex/m/n on input line 120. -LaTeX Font Info: Overwriting symbol font `largesymbols' in version `bold' -(Font) OMX/txex/m/n --> OMX/txex/bx/n on input line 121. -\symlargesymbolsA=\mathgroup10 -LaTeX Font Info: Overwriting symbol font `largesymbolsA' in version `bold' -(Font) U/txexa/m/n --> U/txexa/bx/n on input line 129. -LaTeX Info: Redefining \not on input line 1043. -) -(./algorithmic.sty -Package: algorithmic 2006/06/02 - -Document Style `algorithmic' - environment -(/usr/share/texlive/texmf-dist/tex/latex/base/ifthen.sty -Package: ifthen 2001/05/26 v1.1c Standard LaTeX ifthen package (DPC) -) -\c@ALC@line=\count112 -\c@ALC@rem=\count113 -\c@ALC@depth=\count114 -\ALC@tlm=\skip56 -\algorithmicindent=\skip57 -) -(/usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty -Package: fontenc 2005/09/27 v1.99g Standard LaTeX package - -(/usr/share/texlive/texmf-dist/tex/latex/base/t1enc.def -File: t1enc.def 2005/09/27 v1.99g Standard LaTeX file -LaTeX Font Info: Redeclaring font encoding T1 on input line 43. -) -LaTeX Font Info: Try loading font information for T1+ptm on input line 100. - -(/usr/share/texlive/texmf-dist/tex/latex/psnfss/t1ptm.fd -File: t1ptm.fd 2001/06/04 font definitions for T1/ptm. -)) -(/usr/share/texmf/tex/latex/pgf/frontendlayer/tikz.sty -(/usr/share/texmf/tex/latex/pgf/basiclayer/pgf.sty -(/usr/share/texmf/tex/latex/pgf/utilities/pgfrcs.sty -(/usr/share/texmf/tex/generic/pgf/utilities/pgfutil-common.tex -\pgfutil@everybye=\toks24 -) -(/usr/share/texmf/tex/generic/pgf/utilities/pgfutil-latex.def -\pgfutil@abb=\box31 - -(/usr/share/texlive/texmf-dist/tex/latex/ms/everyshi.sty -Package: everyshi 2001/05/15 v3.00 EveryShipout Package (MS) -)) -(/usr/share/texmf/tex/generic/pgf/utilities/pgfrcs.code.tex -Package: pgfrcs 2010/10/25 v2.10 (rcs-revision 1.24) -)) -Package: pgf 2008/01/15 v2.10 (rcs-revision 1.12) - -(/usr/share/texmf/tex/latex/pgf/basiclayer/pgfcore.sty -(/usr/share/texmf/tex/latex/pgf/systemlayer/pgfsys.sty -(/usr/share/texmf/tex/generic/pgf/systemlayer/pgfsys.code.tex -Package: pgfsys 2010/06/30 v2.10 (rcs-revision 1.37) - -(/usr/share/texmf/tex/generic/pgf/utilities/pgfkeys.code.tex -\pgfkeys@pathtoks=\toks25 -\pgfkeys@temptoks=\toks26 - -(/usr/share/texmf/tex/generic/pgf/utilities/pgfkeysfiltered.code.tex -\pgfkeys@tmptoks=\toks27 -)) -\pgf@x=\dimen134 -\pgf@y=\dimen135 -\pgf@xa=\dimen136 -\pgf@ya=\dimen137 -\pgf@xb=\dimen138 -\pgf@yb=\dimen139 -\pgf@xc=\dimen140 -\pgf@yc=\dimen141 -\w@pgf@writea=\write3 -\r@pgf@reada=\read1 -\c@pgf@counta=\count115 -\c@pgf@countb=\count116 -\c@pgf@countc=\count117 -\c@pgf@countd=\count118 - -(/usr/share/texmf/tex/generic/pgf/systemlayer/pgf.cfg -File: pgf.cfg 2008/05/14 (rcs-revision 1.7) -) -Package pgfsys Info: Driver file for pgf: pgfsys-pdftex.def on input line 900. - -(/usr/share/texmf/tex/generic/pgf/systemlayer/pgfsys-pdftex.def -File: pgfsys-pdftex.def 2009/05/22 (rcs-revision 1.26) - -(/usr/share/texmf/tex/generic/pgf/systemlayer/pgfsys-common-pdf.def -File: pgfsys-common-pdf.def 2008/05/19 (rcs-revision 1.10) -))) -(/usr/share/texmf/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex -File: pgfsyssoftpath.code.tex 2008/07/18 (rcs-revision 1.7) -\pgfsyssoftpath@smallbuffer@items=\count119 -\pgfsyssoftpath@bigbuffer@items=\count120 -) -(/usr/share/texmf/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex -File: pgfsysprotocol.code.tex 2006/10/16 (rcs-revision 1.4) -)) -(/usr/share/texmf/tex/latex/xcolor/xcolor.sty -Package: xcolor 2007/01/21 v2.11 LaTeX color extensions (UK) - -(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/color.cfg -File: color.cfg 2007/01/18 v1.5 color configuration of teTeX/TeXLive -) -Package xcolor Info: Driver file: pdftex.def on input line 225. -Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1337. -Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1341. -Package xcolor Info: Model `RGB' extended on input line 1353. -Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1355. -Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1356. -Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1357. -Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1358. -Package xcolor Info: Model `Gray' substituted by `gray' on input line 1359. -Package xcolor Info: Model `wave' substituted by `hsb' on input line 1360. -) -(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcore.code.tex -Package: pgfcore 2010/04/11 v2.10 (rcs-revision 1.7) - -(/usr/share/texmf/tex/generic/pgf/math/pgfmath.code.tex -(/usr/share/texmf/tex/generic/pgf/math/pgfmathcalc.code.tex -(/usr/share/texmf/tex/generic/pgf/math/pgfmathutil.code.tex) -(/usr/share/texmf/tex/generic/pgf/math/pgfmathparser.code.tex -\pgfmath@dimen=\dimen142 -\pgfmath@count=\count121 -\pgfmath@box=\box32 -\pgfmath@toks=\toks28 -\pgfmath@stack@operand=\toks29 -\pgfmath@stack@operation=\toks30 -) -(/usr/share/texmf/tex/generic/pgf/math/pgfmathfunctions.code.tex -(/usr/share/texmf/tex/generic/pgf/math/pgfmathfunctions.basic.code.tex) -(/usr/share/texmf/tex/generic/pgf/math/pgfmathfunctions.trigonometric.code.tex) -(/usr/share/texmf/tex/generic/pgf/math/pgfmathfunctions.random.code.tex) -(/usr/share/texmf/tex/generic/pgf/math/pgfmathfunctions.comparison.code.tex) -(/usr/share/texmf/tex/generic/pgf/math/pgfmathfunctions.base.code.tex) -(/usr/share/texmf/tex/generic/pgf/math/pgfmathfunctions.round.code.tex) -(/usr/share/texmf/tex/generic/pgf/math/pgfmathfunctions.misc.code.tex))) -(/usr/share/texmf/tex/generic/pgf/math/pgfmathfloat.code.tex -\c@pgfmathroundto@lastzeros=\count122 -)) -(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex -File: pgfcorepoints.code.tex 2010/04/09 (rcs-revision 1.20) -\pgf@picminx=\dimen143 -\pgf@picmaxx=\dimen144 -\pgf@picminy=\dimen145 -\pgf@picmaxy=\dimen146 -\pgf@pathminx=\dimen147 -\pgf@pathmaxx=\dimen148 -\pgf@pathminy=\dimen149 -\pgf@pathmaxy=\dimen150 -\pgf@xx=\dimen151 -\pgf@xy=\dimen152 -\pgf@yx=\dimen153 -\pgf@yy=\dimen154 -\pgf@zx=\dimen155 -\pgf@zy=\dimen156 -) -(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcorepathconstruct.code.tex -File: pgfcorepathconstruct.code.tex 2010/08/03 (rcs-revision 1.24) -\pgf@path@lastx=\dimen157 -\pgf@path@lasty=\dimen158 -) -(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcorepathusage.code.tex -File: pgfcorepathusage.code.tex 2008/04/22 (rcs-revision 1.12) -\pgf@shorten@end@additional=\dimen159 -\pgf@shorten@start@additional=\dimen160 -) -(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcorescopes.code.tex -File: pgfcorescopes.code.tex 2010/09/08 (rcs-revision 1.34) -\pgfpic=\box33 -\pgf@hbox=\box34 -\pgf@layerbox@main=\box35 -\pgf@picture@serial@count=\count123 -) -(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcoregraphicstate.code.tex -File: pgfcoregraphicstate.code.tex 2008/04/22 (rcs-revision 1.9) -\pgflinewidth=\dimen161 -) -(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcoretransformations.code.tex -File: pgfcoretransformations.code.tex 2009/06/10 (rcs-revision 1.11) -\pgf@pt@x=\dimen162 -\pgf@pt@y=\dimen163 -\pgf@pt@temp=\dimen164 -) -(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcorequick.code.tex -File: pgfcorequick.code.tex 2008/10/09 (rcs-revision 1.3) -) -(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcoreobjects.code.tex -File: pgfcoreobjects.code.tex 2006/10/11 (rcs-revision 1.2) -) -(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcorepathprocessing.code.tex -File: pgfcorepathprocessing.code.tex 2008/10/09 (rcs-revision 1.8) -) -(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcorearrows.code.tex -File: pgfcorearrows.code.tex 2008/04/23 (rcs-revision 1.11) -) -(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex -File: pgfcoreshade.code.tex 2008/11/23 (rcs-revision 1.13) -\pgf@max=\dimen165 -\pgf@sys@shading@range@num=\count124 -) -(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcoreimage.code.tex -File: pgfcoreimage.code.tex 2010/03/25 (rcs-revision 1.16) - -(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcoreexternal.code.tex -File: pgfcoreexternal.code.tex 2010/09/01 (rcs-revision 1.17) -\pgfexternal@startupbox=\box36 -)) -(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcorelayers.code.tex -File: pgfcorelayers.code.tex 2010/08/27 (rcs-revision 1.2) -) -(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcoretransparency.code.tex -File: pgfcoretransparency.code.tex 2008/01/17 (rcs-revision 1.2) -) -(/usr/share/texmf/tex/generic/pgf/basiclayer/pgfcorepatterns.code.tex -File: pgfcorepatterns.code.tex 2009/07/02 (rcs-revision 1.3) -))) -(/usr/share/texmf/tex/generic/pgf/modules/pgfmoduleshapes.code.tex -File: pgfmoduleshapes.code.tex 2010/09/09 (rcs-revision 1.13) -\pgfnodeparttextbox=\box37 -) -(/usr/share/texmf/tex/generic/pgf/modules/pgfmoduleplot.code.tex -File: pgfmoduleplot.code.tex 2010/10/22 (rcs-revision 1.8) -) -(/usr/share/texmf/tex/latex/pgf/compatibility/pgfcomp-version-0-65.sty -Package: pgfcomp-version-0-65 2007/07/03 v2.10 (rcs-revision 1.7) -\pgf@nodesepstart=\dimen166 -\pgf@nodesepend=\dimen167 -) -(/usr/share/texmf/tex/latex/pgf/compatibility/pgfcomp-version-1-18.sty -Package: pgfcomp-version-1-18 2007/07/23 v2.10 (rcs-revision 1.1) -)) -(/usr/share/texmf/tex/latex/pgf/utilities/pgffor.sty -(/usr/share/texmf/tex/latex/pgf/utilities/pgfkeys.sty -(/usr/share/texmf/tex/generic/pgf/utilities/pgfkeys.code.tex)) -(/usr/share/texmf/tex/generic/pgf/utilities/pgffor.code.tex -Package: pgffor 2010/03/23 v2.10 (rcs-revision 1.18) -\pgffor@iter=\dimen168 -\pgffor@skip=\dimen169 -\pgffor@stack=\toks31 -\pgffor@toks=\toks32 -)) -(/usr/share/texmf/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex -Package: tikz 2010/10/13 v2.10 (rcs-revision 1.76) - -(/usr/share/texmf/tex/generic/pgf/libraries/pgflibraryplothandlers.code.tex -File: pgflibraryplothandlers.code.tex 2010/05/31 v2.10 (rcs-revision 1.15) -\pgf@plot@mark@count=\count125 -\pgfplotmarksize=\dimen170 -) -\tikz@lastx=\dimen171 -\tikz@lasty=\dimen172 -\tikz@lastxsaved=\dimen173 -\tikz@lastysaved=\dimen174 -\tikzleveldistance=\dimen175 -\tikzsiblingdistance=\dimen176 -\tikz@figbox=\box38 -\tikz@tempbox=\box39 -\tikztreelevel=\count126 -\tikznumberofchildren=\count127 -\tikznumberofcurrentchild=\count128 -\tikz@fig@count=\count129 - -(/usr/share/texmf/tex/generic/pgf/modules/pgfmodulematrix.code.tex -File: pgfmodulematrix.code.tex 2010/08/24 (rcs-revision 1.4) -\pgfmatrixcurrentrow=\count130 -\pgfmatrixcurrentcolumn=\count131 -\pgf@matrix@numberofcolumns=\count132 -) -\tikz@expandcount=\count133 - -(/usr/share/texmf/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarytopat -hs.code.tex -File: tikzlibrarytopaths.code.tex 2008/06/17 v2.10 (rcs-revision 1.2) -))) (/usr/share/texlive/texmf-dist/tex/latex/tools/xspace.sty -Package: xspace 2009/10/20 v1.13 Space after command names (DPC,MH) -) -(./algorithm2e.sty -Package: algorithm2e 2013/01/06 v5.00 algorithms environments -\c@AlgoLine=\count134 - (/usr/share/texlive/texmf-dist/tex/latex/relsize/relsize.sty -Package: relsize 2011/09/21 ver 4.0 -Examine \normalsize starts \@setfontsize size may be 10. -Examine \small starts \@setfontsize size may be 9. -Examine \footnotesize starts \@setfontsize size may be 8. -Examine \large starts \@setfontsize size may be 12. -Examine \Large starts \@setfontsize size may be 14. -Examine \LARGE starts \@setfontsize size may be 17. -Examine \scriptsize starts \@setfontsize size may be 7. -Examine \tiny starts \@setfontsize size may be 5. -Examine \huge starts \@setfontsize size may be 20. -Examine \Huge starts \@setfontsize size may be 24. ) -******************************************************** -Package `algorithm2e' Release 5.0 -- january 06 2013 -- -- algorithm2e-announce@lirmm.fr mailing list for announcement about releases -- algorithm2e-discussion@lirmm.fr mailing list for discussion about package -subscribe by emailing sympa@lirmm.fr with 'subscribe ' -- Author: Christophe Fiorio (cfiorio@um2.fr) -******************************************************** -\skiptotal=\skip58 -\skiplinenumber=\skip59 -\skiprule=\skip60 -\skiphlne=\skip61 -\skiptext=\skip62 -\skiplength=\skip63 -\algomargin=\skip64 -\skipalgocfslide=\skip65 -\algowidth=\dimen177 -\inoutsize=\dimen178 -\inoutindent=\dimen179 -\interspacetitleruled=\dimen180 -\interspacealgoruled=\dimen181 -\interspacetitleboxruled=\dimen182 -\algocf@inoutbox=\box40 -\algocf@inputbox=\box41 -\AlCapSkip=\skip66 -\AlCapHSkip=\skip67 -\algoskipindent=\skip68 -\algocf@nlbox=\box42 -\algocf@hangingbox=\box43 -\algocf@untilbox=\box44 -\algocf@skipuntil=\skip69 -\algocf@capbox=\box45 -\algoheightruledefault=\skip70 -\algoheightrule=\skip71 -\algotitleheightruledefault=\skip72 -\algotitleheightrule=\skip73 -\c@algocfline=\count135 -\c@algocfproc=\count136 -\c@algocf=\count137 -\algocf@algoframe=\box46 -\algocf@algobox=\box47 -) (/usr/share/texlive/texmf-dist/tex/latex/caption/caption.sty -Package: caption 2012/02/19 v3.2f Customizing captions (AR) - -(/usr/share/texlive/texmf-dist/tex/latex/caption/caption3.sty -Package: caption3 2012/01/12 v1.4b caption3 kernel (AR) -\captionmargin=\dimen183 -\captionmargin@=\dimen184 -\captionwidth=\dimen185 -\caption@indent=\dimen186 -\caption@parindent=\dimen187 -\caption@hangindent=\dimen188 -Package caption Info: Unknown document class (or package), -(caption) standard defaults will be used. -) - -Package caption Warning: Unsupported document class (or package) detected, -(caption) usage of the caption package is not recommended. -See the caption package documentation for explanation. - -Package caption Info: \@makecaption = \long macro:#1#2->\ifx \@captype \@IEEEta -blestring \footnotesize {\centering \normalfont \footnotesize #1.\qquad \scshap -e #2\par }\@IEEEtablecaptionsepspace \else \@IEEEfigurecaptionsepspace \setbox -\@tempboxa \hbox {\normalfont \footnotesize {#1.}~~ #2}\ifdim \wd \@tempboxa >\ -hsize \setbox \@tempboxa \hbox {\normalfont \footnotesize {#1.}~~ }\parbox [t]{ -\hsize }{\normalfont \footnotesize \noindent \unhbox \@tempboxa #2}\else \ifCLA -SSOPTIONconference \hbox to\hsize {\normalfont \footnotesize \box \@tempboxa \h -fil }\else \hbox to\hsize {\normalfont \footnotesize \box \@tempboxa \hfil }\fi - \fi \fi . -\c@ContinuedFloat=\count138 -Package caption Info: float package is loaded. -Package caption Info: subfigure package is loaded. -) (/usr/share/texlive/texmf-dist/tex/latex/tools/multicol.sty -Package: multicol 2011/06/27 v1.7a multicolumn formatting (FMi) -\c@tracingmulticols=\count139 -\mult@box=\box48 -\multicol@leftmargin=\dimen189 -\c@unbalance=\count140 -\c@collectmore=\count141 -\doublecol@number=\count142 -\multicoltolerance=\count143 -\multicolpretolerance=\count144 -\full@width=\dimen190 -\page@free=\dimen191 -\premulticols=\dimen192 -\postmulticols=\dimen193 -\multicolsep=\skip74 -\multicolbaselineskip=\skip75 -\partial@page=\box49 -\last@line=\box50 -\mult@rightbox=\box51 -\mult@grightbox=\box52 -\mult@gfirstbox=\box53 -\mult@firstbox=\box54 -\@tempa=\box55 -\@tempa=\box56 -\@tempa=\box57 -\@tempa=\box58 -\@tempa=\box59 -\@tempa=\box60 -\@tempa=\box61 -\@tempa=\box62 -\@tempa=\box63 -\@tempa=\box64 -\@tempa=\box65 -\@tempa=\box66 -\@tempa=\box67 -\@tempa=\box68 -\@tempa=\box69 -\@tempa=\box70 -\@tempa=\box71 -\c@columnbadness=\count145 -\c@finalcolumnbadness=\count146 -\last@try=\dimen194 -\multicolovershoot=\dimen195 -\multicolundershoot=\dimen196 -\mult@nat@firstbox=\box72 -\colbreak@box=\box73 -\multicol@sort@counter=\count147 -) (./bare_conf.aux - -LaTeX Warning: Label `fig3' multiply defined. - -) -\openout1 = `bare_conf.aux'. - -LaTeX Font Info: Checking defaults for OML/txmi/m/it on input line 37. -LaTeX Font Info: Try loading font information for OML+txmi on input line 37. - - (/usr/share/texlive/texmf-dist/tex/latex/txfonts/omltxmi.fd -File: omltxmi.fd 2000/12/15 v3.1 -) -LaTeX Font Info: ... okay on input line 37. -LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 37. -LaTeX Font Info: ... okay on input line 37. -LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 37. -LaTeX Font Info: ... okay on input line 37. -LaTeX Font Info: Checking defaults for OMS/txsy/m/n on input line 37. -LaTeX Font Info: Try loading font information for OMS+txsy on input line 37. - - -(/usr/share/texlive/texmf-dist/tex/latex/txfonts/omstxsy.fd -File: omstxsy.fd 2000/12/15 v3.1 -) -LaTeX Font Info: ... okay on input line 37. -LaTeX Font Info: Checking defaults for OMX/txex/m/n on input line 37. -LaTeX Font Info: Try loading font information for OMX+txex on input line 37. - - -(/usr/share/texlive/texmf-dist/tex/latex/txfonts/omxtxex.fd -File: omxtxex.fd 2000/12/15 v3.1 -) -LaTeX Font Info: ... okay on input line 37. -LaTeX Font Info: Checking defaults for U/txexa/m/n on input line 37. -LaTeX Font Info: Try loading font information for U+txexa on input line 37. - -(/usr/share/texlive/texmf-dist/tex/latex/txfonts/utxexa.fd -File: utxexa.fd 2000/12/15 v3.1 -) -LaTeX Font Info: ... okay on input line 37. -LaTeX Font Info: Try loading font information for T1+txr on input line 37. - -(/usr/share/texlive/texmf-dist/tex/latex/txfonts/t1txr.fd -File: t1txr.fd 2000/12/15 v3.1 -) -(/usr/share/texlive/texmf-dist/tex/context/base/supp-pdf.mkii -[Loading MPS to PDF converter (version 2006.09.02).] -\scratchcounter=\count148 -\scratchdimen=\dimen197 -\scratchbox=\box74 -\nofMPsegments=\count149 -\nofMParguments=\count150 -\everyMPshowfont=\toks33 -\MPscratchCnt=\count151 -\MPscratchDim=\dimen198 -\MPnumerator=\count152 -\makeMPintoPDFobject=\count153 -\everyMPtoPDFconversion=\toks34 -) (/usr/share/texlive/texmf-dist/tex/generic/oberdiek/pdftexcmds.sty -Package: pdftexcmds 2011/11/29 v0.20 Utility functions of pdfTeX for LuaTeX (HO -) - -(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifluatex.sty -Package: ifluatex 2010/03/01 v1.3 Provides the ifluatex switch (HO) -Package ifluatex Info: LuaTeX not detected. -) -(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty -Package: ifpdf 2011/01/30 v2.3 Provides the ifpdf switch (HO) -Package ifpdf Info: pdfTeX in PDF mode is detected. -) -Package pdftexcmds Info: LuaTeX not detected. -Package pdftexcmds Info: \pdf@primitive is available. -Package pdftexcmds Info: \pdf@ifprimitive is available. -Package pdftexcmds Info: \pdfdraftmode found. -) -(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty -Package: epstopdf-base 2010/02/09 v2.5 Base part for package epstopdf - -(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/grfext.sty -Package: grfext 2010/08/19 v1.1 Manage graphics extensions (HO) - -(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/kvdefinekeys.sty -Package: kvdefinekeys 2011/04/07 v1.3 Define keys (HO) -)) -(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty -Package: kvoptions 2011/06/30 v3.11 Key value format for package options (HO) - -(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/kvsetkeys.sty -Package: kvsetkeys 2012/04/25 v1.16 Key value parser (HO) - -(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/etexcmds.sty -Package: etexcmds 2011/02/16 v1.5 Avoid name clashes with e-TeX commands (HO) -Package etexcmds Info: Could not find \expanded. -(etexcmds) That can mean that you are not using pdfTeX 1.50 or -(etexcmds) that some package has redefined \expanded. -(etexcmds) In the latter case, load this package earlier. -))) -Package grfext Info: Graphics extension search list: -(grfext) [.png,.pdf,.jpg,.mps,.jpeg,.jbig2,.jb2,.PNG,.PDF,.JPG,.JPE -G,.JBIG2,.JB2,.eps] -(grfext) \AppendGraphicsExtensions on input line 452. - -(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg -File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv -e -)) -ABD: EveryShipout initializing macros -Package caption Info: Begin \AtBeginDocument code. -Package caption Info: End \AtBeginDocument code. -LaTeX Font Info: Try loading font information for OT1+txr on input line 59. - -(/usr/share/texlive/texmf-dist/tex/latex/txfonts/ot1txr.fd -File: ot1txr.fd 2000/12/15 v3.1 -) -LaTeX Font Info: Try loading font information for U+txsya on input line 59. - -(/usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsya.fd -File: utxsya.fd 2000/12/15 v3.1 -) -LaTeX Font Info: Try loading font information for U+txsyb on input line 59. - -(/usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsyb.fd -File: utxsyb.fd 2000/12/15 v3.1 -) -LaTeX Font Info: Try loading font information for U+lasy on input line 59. - -(/usr/share/texlive/texmf-dist/tex/latex/base/ulasy.fd -File: ulasy.fd 1998/08/17 v2.2e LaTeX symbol font definitions -) -LaTeX Font Info: Try loading font information for U+txmia on input line 59. - -(/usr/share/texlive/texmf-dist/tex/latex/txfonts/utxmia.fd -File: utxmia.fd 2000/12/15 v3.1 -) -LaTeX Font Info: Try loading font information for U+txsyc on input line 59. - -(/usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsyc.fd -File: utxsyc.fd 2000/12/15 v3.1 -) [1{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map} - - -] -Underfull \hbox (badness 1436) in paragraph at lines 134--138 -\T1/txr/m/n/10 where each round has a self-scheduling phase fol-lowed - [] - - -Underfull \hbox (badness 2103) in paragraph at lines 134--138 -\T1/txr/m/n/10 and net-work life-time is max-i-mized while the cov-er-age - [] - - -Underfull \hbox (badness 1436) in paragraph at lines 134--138 -\T1/txr/m/n/10 re-quire-ments be-ing main-tained. This al-go-rithm works in - [] - - -Underfull \hbox (badness 10000) in paragraph at lines 134--138 - - [] - -[2] -Package epstopdf Info: Source file: -(epstopdf) date: 2013-07-30 21:23:32 -(epstopdf) size: 886264 bytes -(epstopdf) Output file: -(epstopdf) Command: -(epstopdf) \includegraphics on input line 209. -runsystem(repstopdf --outfile=FirstModel-eps-converted-to.pdf FirstModel.eps).. -.executed safely (allowed). - -Package epstopdf Info: Result file: -(epstopdf) date: 2013-07-30 21:23:42 -(epstopdf) size: 50483 bytes. - -File: FirstModel-eps-converted-to.pdf Graphic file (type pdf) - - -Package pdftex.def Info: FirstModel-eps-converted-to.pdf used on input line 209 -. -(pdftex.def) Requested size: 199.16928pt x 47.7457pt. - -Underfull \hbox (badness 10000) in paragraph at lines 235--239 - - [] - -[3 <./FirstModel-eps-converted-to.pdf>] -Package epstopdf Info: Source file: -(epstopdf) date: 2013-07-30 21:23:32 -(epstopdf) size: 166031 bytes -(epstopdf) Output file: -(epstopdf) date: 2013-07-30 21:23:32 -(epstopdf) size: 57812 bytes -(epstopdf) Command: -(epstopdf) \includegraphics on input line 289. -Package epstopdf Info: Output file is already uptodate. - - -File: principles13-eps-converted-to.pdf Graphic file (type pdf) - - -Package pdftex.def Info: principles13-eps-converted-to.pdf used on input line 2 -89. -(pdftex.def) Requested size: 158.99118pt x 122.85681pt. - -Underfull \hbox (badness 10000) in paragraph at lines 298--313 - - [] - - -Underfull \hbox (badness 10000) in paragraph at lines 325--327 - - [] - - -Underfull \hbox (badness 10000) in paragraph at lines 344--346 - - [] - - -Underfull \hbox (badness 10000) in paragraph at lines 358--360 - - [] - - -Underfull \hbox (badness 10000) in paragraph at lines 370--371 - - [] - -[4 <./principles13-eps-converted-to.pdf>] - -LaTeX Warning: File `CR2R2L_1.eps' not found on input line 437. - -Package epstopdf Info: Source file: -(epstopdf) Output file: -(epstopdf) Command: -(epstopdf) \includegraphics on input line 437. -Package epstopdf Info: Output file is already uptodate. - -! Package pdftex.def Error: File `CR2R2L_1-eps-converted-to.pdf' not found. - -See the pdftex.def package documentation for explanation. -Type H for immediate help. - ... - -l.437 \includegraphics[scale=0.5]{CR2R2L_1.eps} - \\~ ~ ~(a) -? x - -Here is how much of TeX's memory you used: - 15032 strings out of 495059 - 262900 string characters out of 3182030 - 334138 words of memory out of 3000000 - 17876 multiletter control sequences out of 15000+200000 - 123570 words of font info for 153 fonts, out of 3000000 for 9000 - 17 hyphenation exceptions out of 8191 - 56i,9n,55p,1070b,283s stack positions out of 5000i,500n,10000p,200000b,50000s -{/usr/share/texlive/texmf-dist/fonts/enc/dvips/base/8r.enc} -Output written on bare_conf.pdf (4 pages, 192349 bytes). -PDF statistics: - 73 PDF objects out of 1000 (max. 8388607) - 48 compressed objects within 1 object stream - 0 named destinations out of 1000 (max. 500000) - 11 words of extra memory for PDF output out of 10000 (max. 10000000) - diff --git a/bare_conf.pdf b/bare_conf.pdf deleted file mode 100644 index 6188f854cf85f30e473fd4af051a2b71d96e071c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 192349 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%0D+hzr3_0EF_e9aum5CCT=)U?x6TP{wn-W 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 mNUoh#?k;ArAajHw z3osO8A{$0`1QFzs1PJ~PGV}~wIwmlJ!Rkiua%|n`Za*jfy`3)&vST~c0Le@5_na68 zAhS$5Lvo~x?FIzg+G@XEs&J$5-oJwRg})Dpfb1+{km0!my$Dcg@bZ?rcBZvejeqh7>1cJ~7gjn!N1VnX_0Rc9B!IjzIbvhB@II;Kr zr^N-r4Cv2@n0xQKsON^`D@toffCA5Nb|wIT5y)nd3-5sV2w}_b8wdzPC+qDj7!05R z2Xs&14G>G6s4hB_vX@e4k1A%t?(*_$ub|OE=`c4OBHNy`e)X?#m^sPzEgzAsjvJ1Q;!b`oL z8TDguBjUOVFpHdDVC9XzFZI_|E*4$}KV+Z)=j-_A`O^iWxp^~Jj>Zo_Z|XOf7+sJ7 zP%3P&)(3PRga>c^ag&%|l+%Wpz!6%20itlMh1KC7n*7I*{BMG1)H~s22G?4O_7M3# zWfJ3XsEVWp#e_JWo2X*$)gSk24J)Fyr}w*&sgNb7;Ngn^Pf5k-?$+7|CZZ#`HLDN2 z3?1gXxH{UFuT|j=j$!SPSj6miKsXsyn~EA&X`v;Y?D?#n%ZkHbZ(dBKF>Q< zRnxDi%AaM_Yc#QN5AK-&J~7nmj60;G>fdwl=0B@ssCO(mD7KvY?)pox1I|*LAvhJ{ zJwSUD*&S`lPA<+J3jXaUlU8tT7**PEEJ~@Z*-)%e%~|2J+{;^BopL9FqmYVWZA8pm zM~8{=T`YIB9ye?-AMX{;Am(5EvEZImkU$Xx^9ZShg}k-{^iaN-w%LlW5gaRP?K~D! zPoLFL-@oPh*B5%n#6D)#cm7&Z7#ZL*WVv|%rf0+<=e9L2Ql}?ir&xdy0Nh+v%}koq z{)^nn%z(RT#7znm{_*a5dLJ}NYfaX>!w*3n5A7I(ec$Z;IWs!1PoZdk3`W^f`z$WJ zSVswSZk*nb%mWR0;ms;sxRU5@kc=?83s$IE+Qw>aPi$T6_~lY>ELa~?W-MG_1#|`b zQgo?o`R}hDW&*~SeVmcAMA8v#d-F_H;^~NVhb*DySaCW?@cGr&>dkeO zn~c}(;F((JXxQ7vFXfR9(Jzjvwc6BpO*UNim!SpS9te43mjGFH-u{gWnn!iN6a*q6 zgvEmt+jJy1ElvB2rsMU!J!#rjd1>_p%R25pywu_{6iW0ILvMFlyCYh`NT~!RUD>m4 zOxv+hulTNCJ@5Sx*Q}$Pmm3>@!EUfT@rt5e7pmSLZtPoOj-HhkMlF9vG0WK7Ea2S^(W8seN!#kS70%Lixuf!;6vu)qXmr5RB|aWnY;&3N3F0Nxb+cU&b74*N%O*`n zvXj6^GtOP|tQEnGH7{T3z7dmWefM(GzWYT?`TeE%=cGJ`&3Q52p$Z>{JJanEZ9Ntp zA4iMzBMKd%&)O+ha=zh5TD0I{T#sJE-^JG?%eHY|mVbs-RFelK7Cg zntf_EMqVikAGbz{3B0?hL6zcFVJYo9h5HpUhr#~8GZ%@5+6x2x5^0f%L7mESd$+m+ z;@Q1^U;~gN3GL&hO`}J$OPz7x$At z#vlII8Q2yP^8>Xn5lD><=&vc*>d{v}wc^AdQ+_!@={}@A(r#M^x&Oo&kgVc0+;@lN zxsOQw$7Da_Rx!V4(f^CI|F74R|tA89U;#aEDl5uv&(@(%S|m5fSAt(gcm>n%Cs;Bukn}60?cc427sP z8hI&d*4diS*BZ_;d0%pNPVRmeLpw7sSXdCva-0l!fvpD^0>-HeR)Bel75=_KoLL5D zr$j;oKtqhGq5PJ=3Vy>{GbyetI0Ap+=0kyAVk=EIC{B_z$JsQRUL#F421+R|UwKAA ze+0;Id9#EYhdMnRhRR|$HAJ?8AYvv?br6h%ztRBeNW+X}P`zRdZnA_)_jz(47_v`K zX)rA}3QZBI9@)~K_PaehYN-c(2}jo0aJk5U>;9+mzH&13XLMbOf6~sv^YSy^ z{c>2B_zB5~HS$7Sqp|^>M~BJr_Ci?~H2gR$67H?3XTx+$k5O*$rIG6Tq zRCzy!SC)=~mp)>)b;AVgM5a^9xOMRsiRyZV@mK}z-UVH%kqNfuX@-#XbD`J!!V!tEa}R5YG~t4XTwhwpNic~&!I+;jLihK zjmjL>N5t^}UyDwMcWlw0*(O50jSA#{=^YnW5f-xmMgLTDhRai>WWQE3c}C{0%9QsY z;T1T#4j3I&QFu^4ozLn}AI8_*@S(uC3mr7uxdOt0*(;wzxwEHl{}v#tbs3Y7c(h%bAT96o6GxPL_QLY<#Q+qBB1o};cE&o2Kl@fh}5iHQ!j zmQFTti*?t&*V!rm_|w%GkNW0mHR|?v;62VwhVmWG*&=zf#d`zc4anw*eJ87SqfEZ& zd2pM>RMmqehnE5I=X$rl@Eo9SPp)!|)>Qtlw%d6|qfoT*Gaei}+Sz0EM9Jz$sxotW z44qB$+%mq1Zj9()Lq-D{FWnC zz^&F}_Ey&cbl^&vx>mASZvXY46zCoEPIjsfF0m!KvfoxpAVpG!ba;S?C8?g(NzDN^b4BQz!31h{+0C&6kwxJ+mk>0!+#-m{IlZ^Tpv>Fm(@Lrwhma#xVsf*{RRA07b2DEPf99W?@g+0EX$ z(b-4x2W@Ia$JY+S??wBXe*}A>Y{Azw+JUq9@$hW)w+()lvV4{xU+I@L+uOO`zOSzC zTb6tbYC~LoGc8x;TU&SRHH5b9H`W8>Ilj|T|JFu9`$jzA+vk>C@Hy!ay!2oXzOGC% zboteSwEJdx0`kYgLWQJ5AJUTg-uVnOef;2!{XnDq)F6EJ2;ThQxBX1d`LqrG^t`<7 z2u*l!ah9ob^}zP>Im7H)jj8zq+IWEF0=-(yxpMvJ(j`wn%XI(Hm-w_SgMR^6HAW!c z?l^@bOtd76`C09l?HQeXhRkjYZEu5vEY^moZ2(%*WNp7cwP>NkfV6S11qj%5es3uN zV55_t^qe_fURL4u`5^Ybz@tLIe7d~aD1E_Z3u%aGE6OGx^{7|-V4HWs0t%0;Ji%`G zB<7z3ea;N%>K7Jidjfb{YJK_xu;J-cw{*OKiG}7Y{Pc*wxe!$QWGT}UUO)cI#93VjeO*~K6Qb$sZ4v*F?b9{4kac-s_y6hsv{C+f_(giM*Z+^=4^O`AT2Gfg1`akR z-Z^K;%?6qAm?VEOavceb7UjF`^vlTY$ap zh3%RdgwEdb1?;E;fE-^GxD!cMT8P`Q(Td*s5fBBNR4b?+-e!N*gVDOX(T21yN(Io< zTz3CA@E>1bOVtZ}wtpT`aKtuP{U&AFUzD*5K}7<#TsUr;^59UT9gR1v7z2oy`5{ml zDo|ycIlC%GBg&{BZI|FzCQU-h9ECZ!Vyy;=9G$!^ht5}Z0^P9WwWDjt|NNIQvsqWY z_oJ~P+uGJxbD;T|O60vALt^re9lSJ~E>}Unz0?~~3?*>+F&tyhv1cMOagDveier`@ zTK(4;I0Kq+zc{0VqP5T~-D6vftzHxX{Cf+p*PWP%NuQm_G2jr72Y$C8GV`H)lIoT> zAbFMEO^HmXO>K#qGy7VsJ4|5X=GDigdqg`olAFwAj<)DCJyHA>{wpx)S+$1wr9Y2d zM?jpreZEul+8B&U@exG48i{EW$=Bu1T`DedMir?EmzPf#qu0p>+bRN8{3(MAF?=E^ zVwhpgvLZ_hLz>fqbccv*>lyUd7@b-mg!tqW$7Q{M&^7prR5<-izze?57Jphd#*i+l z*LQ4!+RuatKOn1_K|#7uvyoUn<;U)40j@*qTZHrsMTmvSRI7u^n({-_@ySCIvNfAk z{KlP(dy1&e#X5YUgT4|q8idM}+BVI$;5+D7;LaVl7em5*GFU$?avII(LJYNQX9BL+ z5J@Wbrj4qY8R>>cVUsEc9M8Sh1aOan_5{RR`okvwKVncT0#p7D-xYg7m>uOH><1of zK9)YZLY^M$C*-G8#7`=~ck()QEt!b)b7R~7Zj)7k#Nr7TEjj8T55yGzY0uprZ=T+^ z=*n6RvV~Ra&rRi<0tVP6#0n}YLyL`Z|Cx2umCZN^@FsA0j=s?ci1ov3U1Vit7vAP< zy%sVJxOC14H&UoU=SR6^^KNFT?crxnb&bQ4Xg4VSnKv~`*h|YuD>+=z^LY&6dSq55Z1BUms+~y$(u~%ZuAERSNczM4g2y{>U;=db8=?@6MOtMuwx#Q6(2QYR=lL z6yyCA1zrr%2P8hI^4F4w_XSJOOMsAv`HipMo1S*nv58Sxv7w`*fvuaw%+IeUO?52Z zx`RXH2!qitZZc^|@@emqj6rBrnHiS~hMr>T{WQd{a9;Uo=FDPHv-@ou`fH(;*S)bL z&|x~$2pUb5T|=2PV|{FL8Xag4wYa0B&&v$g&*dQkB#qI6=JLNYKLuBamn+8-tlkpj zK0cU)0NMm2-&zHEpPrMklMU;#&Yn8T+}#xq*b5j(s`S;Z864ji4hl}^!}l&CHo>Rx zzn;`v#FtJ)g45@Ld7?i%1--s;zc#xM{MX8p3~Qt%?glcg0Fw}e#`Av~>!%2qeZq|y$k~zl0J8;QyouxNbuQG3GTUa?;SopdqOhB`;OA4*5GBr{CNnl~eL_;`HCcOt%e{W>dSH{-%h z32j%eK?u%+Upu!Hk28B#_;|B(!rz>`_ij6MN_WoM;H9e7$Qw8yS^|u_^sjtG>dUaA znWIPhis;L`Jhi)5Z3^~f)Df?7jS;h%QeYwUX^Un#Yr`&kb%_R*q%I+HEO z)!E?s0`-yN;VQQ06~Fz$J+$?QHZ4od#c<2wR;$Ruw6J#8t&#dCWrWgY0blDOgq^Q) z^S<~ltHppmv=}zEtRw9BR(Qu9&%#UqHzhpQN^wdCFppU9pi9h1K_=qlT%kFZ=3so} z*T$c^C=i3n&21+Ke4X0ul;oy?vjB*q6*ak8yS%%rN?)!WwgB^UfiPmiQi{gBB7Yh5 zyNx^RQT5fz+}zWNv}L-c4}*3b6ghH;QX~kW44ESNUTRqLKu{Z4u>nEU$ zaMZvIAiD!>~AuhuxVNXp3K-$Sj5dC%u=o z!~1My4sX1mn($AiiKi`22qg6!($h($vpNs|+hnJ6H?$up;hizMcC;;#cPq}O-&qh- zLm}TCsiZs;k6B%#DT{mgVeGN%iVUQGybJplz(v1w;!F!V5AaQ6g+so+o_-ANogQg5 z0NBP(SFS;CR99(MCzjpfM^&iE9X9Hmk?zpQ^s+gpP63c&0auxuiWBHxeURCqf5@m3 zD!pXM9XF+-wSn$@CkCM1%L-&)CyOiv?7Jk=#;Puvv`_iDDBUIdLHANkSqUd|;XHDd z8sbW#yNwWtLu*@H^OCVS9O4-wNN+d@Kk&$r-#5S_9p{Q*IKf8)~pw-n?l_KW3KqYlChSm0DD(rs{!>vGSIba zjt3!;Il1%t0!&vymb!a#X?U&Z2K0A1{^bI(ed6njMXz}!rtz$J?CwD?-?j>^w#>%7 z4O>Hnk4;9w9F|2dIqEH>r?_hZ&w5$Ah|QB1f-LKrnEt;jlnTVx2G(~y7LdXXL|1)1 zZ*W9he;|5V;(26QORy-34%(9GdZ1(@7BlA)vNo!1 zu4u11rL87=)ee(@vG;!GHao#uIgl3l*@o4*p>6NJ5_Jlw<_`GbnTfiGZ6e81_h`rP z5)~%}hP^yZJ`1|YId=|DE2?QGh?itqfqVMvOt12On6-&M!PKBtJ&lcg24ftMxm)#9 zwUW{@iPbrddzfbY^qB8DqiGgI7uXk{+9RqA zm+Fo~-)KB&&ib4{ZZGhfzVL2(<2O-ZeP&q@!Z_>Xg{XCDa0M26c4!vrHp5Th)PbN@y4rg%%Wm5R> zb73Zv&##?)yCigB_thdI40;+3x63RlnSO8CF5W<98Pw*)box3|B|?RS6W3(>TUnmT zV&AJPm8HiEA`heMED@hsQ6)*_>VTHf+1V|}Q}wwTfI%B2c-2{5g&Niz|K*04+HBBH zX+Us!D?wuYdsdau?f~2#2sWS0d7Sxo&B8jyDP>42NZT#T-LnE6minbDjrwkO^z;4Y zyfPOA?&U1YV!*|iM;NywqI`A9((*2c?T>x4^+X6$9E7Zo_b#gn_S$Sp;#EZ}RrdrS z{hsRiV<$kou5B!ctx$;{e%%FkMi5XH8|)0qVmcl1;Ko%P2fX1rf(o0D?xH61sb_R& z{-FNmAk@B$Gef4r5z9+%Di>8b##!vHB-yvyy5~tmwN7sLKd)NXAyTuo`oT@?BXvs+ zM`S8KQgv{&=J1Gt-6`cc~Hs#_E@r zduTJaJ@j9s1G#{I$KdBSjhu|pn#P+ILMh&jsw<|3=NgK(aZ9C*0&cr`&%oaZ}Zk-HLMWAghw#SfNmgkMtMl?-U~P<;HeSn z__noIv)1|pZ}vIPE~Piy;31-&?`>WJ_G=@7d^vb8T3(4?wWUWGPY1_+)~3*pt)YEq z!zNLR?EAofqxV z(ES*!1kv~{h`1oQb^X7L@3Fh01vPHprSbJ|5;#JN;P-8c2R=juG037a5|OC9dDw0Q zAwUh+K`y4E(&w{u=kWq!$pvNdH%d4q<>W_4ZMqNb73^DeD z)2OsS9D$Hp1RW(+G{}lN&J^0H72^LPem3{l8kxf)A3$aZ!5bvOd!6f*`;}aiYa|mj zcTKnqe=7 zm!ByMrWgoI0%I6AmXbxWRPq2q-lAO)B_A3b4@A zrDtf}Sn8W4mb!jI_U20<>6vehNh&}ol~m#HNk%W-ZBnhB>~{PVr8keUh^1X%1YPIK zDKpc}msw91ox(P46sl{0$a*C${e3vXnnSB$=ze?Xc`xFV2ehB`N6UcDm@eRaklqYc=LZ4 zqLL~%os`}it*Gk;w-OQ|au7AXSk`l3u_Q!6J%1r46>g*gPwP!VFR_NrN%f3c6fm&A zDAg|Kd{KR5-gIkx?UPsn<81OSMzn%n+GPUTBL}bd1Y+o((D@=p%|g9h+u{UYsv(9& z4I_(`Kqc3u(EDv5AOiORinw!YqF5YJ7*5@Sw&P-zJEILmtR9V)h zQ;)bNE}MGNhFURoPfM+z(EMcG#x$L2{b3DLeo>1066`OT=%+X!e5FHakowZ;;!z4{ z7YY^XD~=vi51)y)DevzRLpXlZLHyz&U;0Pdm)CJh5+}beiPjEu27Yc9z<081G=y|R zE>pg2yT$-J17?2Yd->+%j2t-6*SB_vb3T*j?{tyIN5PZ?-8^&70VBdvE3XI0XdPEr zsr1JPMm-5K$MfTPji>Bns=paa`pcLOyNeP}tc}|i|JsscucD1S@yYy%{qABwv_-RZ zTU(_D^6bqL<_TIe5ZjfDYK_TWNGruuYM}eb5X;d@A{~AyK;7RmAp;L3&E+GopQ zRu&YRxCe5Z^{axXQ68fdAS|G}$GJJd=>tDeZHn$%(T9OBLC<-_;*V3e@U9Yj0B-NVz!K=RZuoyug^%mxw{??Y%83a~tHN}OJ0tFdokK0Seyc(so{_|&frHr)q&AQbP7Ct}u!2XRD2 zgXIy&en13IhzEvYn%q*p^S#nsaoIn_W0i^E+TA56puGuOqbf#kaFT?S^9p$p4DPvqFl-R17@ADcovk?T8 z0xo)id1ux!z@bFabrRgI(6AQl=qs+NrO$-kg`du7=(IG3X_%3YU4~K69i#Z1MtCF% za-Ee!_HR?P{4fZXOJ*}Q37ngpYFt%1QG~)5K@o>;GISyDh0tNIzLVrlv^3wgX6%nu zx2TN< z*iShI|5-7XY{o;H%%PXZY+@$7@MCt5oe#AeVB;>r%~8O+6&5Wzd!fvF?m>BmyU4#U zP|`=U=zsBN5Lc4;`ye|&-EhH{)sTAqz`$O-bTq2^9*x+nJ!~R48vIh8l z0k-jR&J8Oyk4K#?4uFW>&dET7=GqmRa8CtVQrJCZi0FQgt>z#Ug_FUv@l>_iW(Z&e z(SK(KRk?O;hsHN2Gu{l@M+AS1S9!|AohzFysd8!`ZBFmX6{ZyulNS}87CBDBGzaWy zFfFnu4~&@21O9ba7L6sfos^)G?$FXqWH{Xjgc#1z>gv_nLnb`R)+~(1-$Y#<*j7-s zcKoJhQhcLtF9LPPw_iHeSHZ=AIqa5=BlX`%U977)F;v?a#^MQ}Xah|h)=6^?$oZO$ zm5Y38;VCLR3M0cHd9uC0jVP>SDxH>Hnjb5X?d!hkV2bLm%afEs`f@ge87yl;oAzSi%iB`(rj~xP=3zvr zAJ@`+S`ovP4eSp+TFM>8+{)&oPnokP(HLY9Mx=6gekrO5A%py9M2`*#N?t@+tWgi=mERFc5g0y z%OPx%VJ2a(0=FxM4nifoWJP2Q(DcA+^g3HYap2&Tk<3S;c7|`{GHrtBXqYSJpGL`^ zkws|Y4?arDd=X=(eo|juD?5e{b-j_ZW%PHiE1)8dQYa@NlO0?xSURCPqAkNM;K+U6 zi+70%Cb9x=%?-{s%cV}5>yE?- z`MuEGdXt!{71PV)8yM3E4Sbra$@%!6k zV3MO->D3f&oNx>R<x5AjTy*ojOar7w4bG>_C}BsKZR^j|N82&n-%?0B=r1P z9CcMdQa~}BhU#ZO8L|bVZW)-{Ysc6w^ENv0V0TQ7)EEdj?TUn`DVfW*Q7O+J3P|rW z>TN7 z2_&Jmd0t-JN?972Iuw>rlh-Ni?6z>y%5O%B$ah+sgf7^9V)Sl|UZ?O>VFZ}1DE2r% zIxEUq{-;w+fK%abYuRsde%;IHHvU_IF=k!7GVag1jY zfbV-)xgEqaxONt?IxPjJ~% zFY-z!a&p9Fo4?i ze-6>;+qRS|^2)LH-(VcC7@Bg&)V4zluDS)c9u$wtu#@+-Cw8-m$C#CyJA5_+n7dH! zKL@BW%!+x`2tMpVfmj-vKx5IZwj0<*46mIDbM+L+!jznSSp0p4V<`nYy=mq78>pw= zVB?!gOL}yRWtgoJ8osdQD_l;i1cLsfv?&H8UmC-rzs|4F1-!qhhudre; z7u=vA6E!YI9E_&dIhBOHRmeS$x=VtN7qGzq_)K{x6ozHxe~xZor<#40^7%ZffOk0K zOL!%HqM^MVg&f|k_=i{O3?md2xkr(X5f>`5WdI|3U|mYN#uV{`n*1&5Ktp%+Xg6}9 zLyAr4mAR4_P(c_hl*A^ZWPEU$J0oB%Wda^R%a*mv-_Yw>gMp?sO)=DfiYeXde9uY)^waqKLz^AqZ0w-WAb;N1=J8xwH6n<$nhk?Le9 z1G_k?(|njdJb!yJIjQSs!nGP=E@|x$?33Xxy`}%s$stuKTSjz}b*_=;f?y0NU?JU* zmk{spD}EjHRmS=Fiz0Q=caD&CWwbfL#QXsgqd-oQa`bWbr%Tsq%>poayvD;$1@RuZ z^6+05^#pp+%Dm*YQ&@oD^Ab!gAb?A2NM>a3w_bsKIbousiX3%2wbbEfJFRp zycXNGUu!Mb<)kWij!%H8ve*8W0g_Z%S5c|lqn<4PHX3e%pS4z=3e)wv7D1IZ;-7oY zD4wv(daqyWh9_T?IQbk_p!NA`@mE#A2_tB8u$nCuvsEe?TR3~0EomV1z}>mji5%B* z%0L~a`I)djBmAz)`X*^#MEhyuJ5f9L`lejKo;o_=O@SpsM;+dmld0-P0bZE_;*szJ zMA1hfSyKpphb2EevMe;ksRb0$O;VsYpg*V{GHKTl_i=iq#`H91tHvZ}zty1wl+R(p zYz|+JV<(YSrh0dDX`g?q#jZm?Tc?N<2$?C^Th#bfRg$oS(Vifx(+bCSKb zD!5H2Y<9|tZRkd@a}0L+()3nHj$|S$@i~$%=N2wo9WIwJ(37Yf!V7Vjo&kl`@z$IV zp2cHR8_j35bxOgR$SnSV9A|-3gIWtZ_4jcfA+^Z(n#fkwT&?(bnV#OIJIKtkC)0vGpO8&;BCb0Mihq7i`pH zV$4XQ^TwaB$qq+1mWAZm_SUn5!JMQbx36ro)NAcJ#519oC--OoD*x7K_98%4McV=o z3CX*=XbS3B;c_+X)`LE2A{I`)(a9Bu)i__kC^a~8t&%sGx5eyit&^r1cKHq9qn_Fc z?DfY#ZIbwW!n(KU33eUdlbCHF1OIA%jQH8*Ij!oa172~;1+D;a{&dVr>O=%hksqh7W-f@%kQdz zse?>1O`*!Goa`mXO^Q=|#!W;`R`&T{5Ps6~zi2*^8 z8kc|D$pa(sRej?fygZP3KA9AgA%=&jNoqf>qpYzXtlfgv~wrZ^J2L(hu+FWis zNi4;l7<>#C_hD%(!1ePQ5w?2*k<_yDacCWlZwM6@VvyG!sMM0j9bu>}2F81Gx%5mp zNWELbCT@);uMr1%n>RTH5qDrOl7yA%aCeK{zXAWCTblluMNV^*m9yON%PhE(p4Ut?yDl_S`YC`9C0WGetT`NAP|AmC zp~MIBw(+PW&v^0v>^&A#Iqcz5Q_ZAA9{2TfaP9BhFjUf43qDwo5+U(pT#A!v$0H3M z>j9+=+BtA0ERgCM>@%Jd{jL2Y$L2B^dyspt@IK8~X*N{K4a_S0*=Pt&W3)&oSa?*@ ztQlSpbh@1Hu3!j+9B$WDIk6ym)>b2FmtCb z`ICv*T7S4z{9OP}9AwcnxLU&P!7ZfOro^Np?gA{SwXpW%)L;c%fMaSI@$?3reSA89 zTQi#Pw8Zg%oLYOYg(fJ2by5BKS`4DdZqBw?iTAWK+2rqZh?2HMZmb&@Lxj?|8gHC> z(rU?=sbJe4bE0U%tuM$d?RmVlw|(^xBwfdJNDwUmxFh3weK9S~ZyFdqbgz39OntED z$R@?YX~@5^54VUo;W|d|%Sk?`p9N=xyTyNT-*3C3e~X7tP$%)`0D=7~E^#%v@UOG^ z4UcZ1Nz}#5&W7#lfG_fZC+eC`z#BWp6eIH%WHh|ytS+a8HWXR&uhq6_UWO)~4%XLAthnE#X zU~*RE;FH;s*Ix8s(R27rj2id}4G9=i7U(s$`g*QoC9Fx3@Yk{uwtT!27ahvof1P7& zzj}N~x{29J@*`reTr^nlSg5(tQG)Ie;VcD~)Cn^D_~%@H{LTm!3;$_Dhe&d_)@G#b z`khO=9tPs=>{Wvfn{F1-KraIgw zjh#;PoF;w2>mzaEod(fhBUE{$&yN*3aTpb4sUmPtK}gGpPsCg{wuR0;oVaGyPfc@f zF?pBXTjcHt`Ny>AUy6C%Hu8t=*-ovmAuyKKjd;1t^TBNDG-1Mv+MP{~r{#<6A zOnT0-1YXkHlyqf(Np4#GaC;S)dLyDNoFDbXsj*H;xv!je$)DX<9YF|CZbc6WRm4P zD$W3EjZ9(iEQgUmoDYykmGWRXU?V$A{=&dLSX=Y(cg^p!KC#D@FVd#thFH0`0mp(U z*>%?Fo5-zut~<|{#L4@J*(hIpYEVCECvAsrflPjV2frD~TNy^YurEYqc-g#@v`6t6 zM;7bESTjBU`e0~rW>lVKsaXUSw5K~5(sb`Mj%=FbDZRU%vRI%BBv zjB%OGHXEih^drIw^rEZJ5j2sicnIQTJB;)_bZQc$2&eg0%DU1V=qyK*R%@}*G|dKJ zTb==5EEo;s%RB>z;SUV0jZdmkSP+8-djaOQ7Blh$8r|>ljdNTSA8m%f;t(y(MT$k~ zv)zcXHnNZ&d2H~?%={mUojCCM&O|uJ%0up7$P||8p)d|eY7YZ*#mtEz!pr5@7?|JS zo9~W}?qfM{EiVQ`VDXHRzc`&jzBg0#_h_OdAlLpywM%8WT|s9(Rey#-P~nGmZUvCw ztIiIkU@X81)mm3KenJc_T-LogRgAa zQENJewAj^#26}f4{UX0y`puxUXoltaQQLeQ>l0DaPRo%7%g%`&h8hS!I#pgCQeU=e z=0`uv()Hu8A>p|NGCdhZ_&K|1>+*R!_ihT^ST||*hJT)@5?@8?f&^9U$YMj@O@hw3 z0$C$`-YLtQcAF)2FB}S8q8+GUj#AEW$Dyu;J>@go=cMG!5{b$pWY=4N!>b63V@#-*tQv=0KM}hR8LW$kB#fstVakYX}2)zM!TER=qBAHt1&Y z+44o0I6))2s8ue4m~_f}`q)FFQJ^M0L^vJ7O@fE|rn zcs`^5K8~G4n6N|KEI|MyicG4I$5*(`^c#>PL3VvOQ^}sR2v67Pxda(s6~AJMpC03a z`!lTg-GS{|9>7474%-qGZE?Znzr)Z;9Hf&7MpdCx%vlZ#atJl=1Knk%AC;*5%u zu&%9xhz}+A;Df+*8@MEb!92SSt6_wVrW!hwn1+T`vB9RHcg$j;zv+Z>LZ#&KcBH! zDMp`XE2CAi{_JO(g*9>tSUUrTJ~llZm4#Kr5!hL{ydsqpS&ZRzvXqyxebefiCCJLO zgCRvhw2isW1-pa9{r9&6u&5(6GHQi@gVf(#B(-C30~81bt`5iIV4-VSnTHFuc7gR} z=;&dbiip|U<&FNtl-dl@Gc%j)emZpzj~l%M<^BJ|*gN$I!?XdDW1IKbwr$(CZQHhO z+qP}nwmtJb*-bWk@Fu(IpU@}WeRWmgj!B(0xIw^-TO znEx+?=>HEx$r8<=Efd19jwF;Mpj1#6oZb63ZDRk zDY%u*C07dWA`n#7TL*v%yv)Zj0HAhF3l0;*fpirXLcITqHLu6+M}h&`1_uU2LIQBm z(9l4__2(P}4hrV%$_M<0m!<&)0S)1N0`RRF3J;*E&;BpMW^jE85)2gRxqzP@8x#$IA3+@8 zx(*m1+&?J4PfI95ze8C8Kn!3K7$(?osDGEge#}lBVjobnQ%HgQnh78hh@A-M!2B8~ z9}$2Y8{!G%hZevp4F4D9I6zpRXS?BF>h!+=!6JY0a&S!l8B1@yr#j9B+Sv2G4h4B? z7=HfxTzruECpRfSdTLlS5iY?4asbThnBSZ!NEiSC1zdVD7*@8_X<*17rBE^`D7W7( zAOZlS>+5ikfqrt7RIsU^FW28&K#8`X~>`*}eegq^1ArQY~vPVDu!@uzUKSYl|x5HnhqQ6I^KfAp%KSe9gLH*F!+jYQqt2u!Bs8K|?{##6c z-u<`6hyNaPciH6k|Bx@v;X(|4yVm_YwF3VrHDLjPe~`bT^iXf3Rm9Z4Yr~KAOvxpY zFJZwjgckVG0frGnd)oP4!R-L!4QL?ZEv-OLq18GIp7YC#8 ztEyt+Q_-A!{Y`v^iGANS1rT9EzJRSqMubO10N4Nheg60~{{2_A#|{Vh!6jg7Cc+NR z>GZ?$9pe8_T}$s8gE`xYTC z5c6p}`|Knf?JxOWWFt`w9hHEvCGWTvli_F!H?6AEZPioj!oZtGV*k!g-Ma&1)6sV3 zske`;9gX}_o3cO9!-><8zUXJ?lt9K@z-1}KwJxW_RL#y3(M2hx1H*mxdG zKUJVpo!590(aISy@Ya5l#+|FZV1i^2G|CN4qGvZw-5FUeh9H8Q_XOpYS}V)~!4{cRMoPy+@mf<=%Vsu3 zO31v+>+RWXWsEIXMzvSSf53SwL)VyN(HZ>WO4sTpO8Uf3yPcQTYEEpgmp#lC1VS(A z55v?Tj>1!gY60c7BTY z55O>^L+$KogOn7YiM8TAQgWSPpLf^Ql6E}uo+XX!k61HTP>H<@ezeZhS=@5`t@ny^ zeoLXGF7J_mT;rGFhC)(9BLn0psRyT48cl{`+9u}&KzVOo5c3c|jN8@b2q&J0a__$o zZd-^l9)&lRo4$`qBnCIBjJ0F`6|tYz2kRYpC0AMJe2IZHr&o|A^0h0R@Y?E4gb?$& zm9mqhlVx8hy2b8z1kRK?*j_<~&RbTx9_fplOwq}veiuQ@-tVM*nUqm^B*CHW!nd8S zZ%>Pxb~cr>%s!>)_c~B+U3EgrRUfg8B#?=XUJqkuiG5$+B37DkO@Sj2zqDJRKL(|* z&kWh@;@%n6PNdxn7N4?MfdlZd+C*H?dY!r54=&g4v767^SpoE?k+Y%cxjs9KUdfT{*M#O*9w(o{GQ28w86x-sr!SQVDWO4CKSDe+4M-uL=<2vP&0 zRPKr3yc`TjWZv>f@1OTjnC;(=*1C>o>>%OUN4Uw4G!=H2Vw86!tZbRyuk^ZLEaj)! zNm4Y5;^?G9@Kalhh&CX`brJQ*ZY3QmB%eeSq!uBIyk2f`3_{(vC_^1?K_5T7X5ZHq z#M|#uQWipXv(!51_3whDfyz`(VsDwQ5Bubj#47{K#}7hXU!#v37v+w*x&TByzfVSj zmm)mlIK`0hn@)0Dp>drsozm@&aRh2mC+U+0M&Xg+|E`NNAGo)uy{Ci1Yh}omkFNOd z-aE_rE$iRVI9wq$8yU*_fV=ijCowxS=+bY7uzM}TFr#m)CDlH&TYfl~xlaNnveb5x zGRqZi8JLMvns>)K`?uA!D;IyeW0pKuh13npswYj329v)We7}ccGZ$?w$0dEPEnXd+ z$9&#LwYIahbIl7)s7>x9ZgSSdyUt*1bRII4Y*xqnDQCl)Oz>l*yDcIOqX8wl*Z*XM zJ_7$)r^nUxJ;ij}_8Fh{ge5W$2`dpOM&5dvri$_uL+Od$8=;{RPS1GnAlqh15(+9q zUJ;)pP67ZIB?V&nM-gS&M4I7sgzg;WX`J!Aojhu{rJg2!Zr1%Y54CouUx1Pxsn4rd zi}i*uIh{H-9j(`oACl+<28(PhrjBOSob_gz_Jg*1LB_c=-uiU{Hr@n7Rh3aufNtO< zDcbD~#NV~*(tFXnn92V0uYt9`8i4|&AP8KW_(4(p21NpQbH|Zd-_qb+r2Yi6YXoWO zG)#sL%Ckw67;}}OY?BiIIG;@aMX4=!TAHlw#M7%VG<8D5hiGDE1RKGO_P?@Sv%^YV zw#``m86RMvxbjoF)LUX9t{u9Q3Gc4xOB6q!EGEqoJ*&s9ACY!{3nUcE>*fP*j#-vU zy>oeaS_N!cWG>^L%U(#1ukMk(+Ur9Q*VhYPpU5Pu6(?ubE)#m ztEE>Q+KTi@Sz05xB!wrC z*6aXM;brVCi9xKiUn_J9qi>TFhSIhC-FpWzEcww6HJGE^j^*$;6&Dp6bOY04ia|{O z2NeoL<^cN|%)7|o_;xVcosl@fW-Jd#u&jP3A92lq2LmZ5ntkhGSDk^)va$pJf@Xo* z;||Pb5uOY)CuO1Rqtc={FirF4++CTqlx6w$%hZDOIkc@Ih8kMLKFKw9v*zv2q|w|8 ze@$_fcp;JmOv34aOW-=0w3O?<=`nWAILc1qSiknS?39?v?&TKNtb5UbQATpK`URxk zwrNp*r%z#v8nuWNF<9N2vA$hphZvKKh1(mpb_u;v2Qpx@Cf7}S8x03W_E6lEQrsF- zydQ_XcwR>T?akiUwlrS!P}D|b8*_zK@k)1Dh+e7Lfyxjt-S;?UcRR~}1q+eG1KWyN zsZxRV2J6su`kX^>_jV^I1)@<*U_!&n7b&y?wB7@!+vaD5=OoCKWSSI!gZ})i6Rkvy z1u<@3(!OCzf~o;77}B-OSCN1}zVCJVIn*uWvKA2bR%oU7@^mjV{*b>rRux2;kw&u^ zXC$k8nU*>$2^CyEthy)f!;BqRb?g@D_-rNy4RajHXYWIjfOSQOsZ(DU}zP z=;5^{(-YG7HGC^F0&TzID@#%n30K4Ts&(?8gc&GE6an&5;vhKk|Z z#bC!N>=4h7Nw*M3PM4nkY5&Wb6b6q6QWrkJs=EsgIlaPjQ9M<-Z4+&UQ_tY3u%!RY z_k7kY*ssMltfQ&k`)Z!XhLNxXM=xciH&hub>`OJJzY)4VKVUzFFFag$z>#|K$xTU* zQi}W5G4e93gkwmQkG#Dx0y{=l9*xJd(dcN^MbZRcv5NaQowHmBMzqSGlX1}%2yOTc zF&{4e%xw_NmEI*)eXX$GzXO8#F<#n9%wE|~OKe+aB3wu*G&;)DBt6MH;`@^obt_6f z-i;hIxUpfF&X2dEyo^?o4(Wl4-*~uSb=e*136IJ*Bq0a}mbr5|bD~_dLDIYkh|Vsr z^~Jk!M>F2L>7)D-O%6qO+-&@LwQ)A_%M|-f!YT}i`aXDMA zBkOC?aZ&RZ=9%lT`_T8LcXKFGd&VuRZ(hC{c`6%u=Bgp%TivU;$vbAx$2b*hr!jli z%dbX!pB7oB;)dC2)mgmLZ;8X1dcy#jR*{u4UCcXIQIFQ_{oYMb@5_g4)O4zt9Yg9F zt3&Q=Jl)bfe_>BLngvAOANt`AmJT4)_G5)L@@Rf}Fo^i|g)22VEUp0&*+833tMgxi zaDl+oce^QQ{`H6j!JYYhV^n4;oIl0fidM)eT#EcN-oT(XvQWS7Gc!lBxfjbVG+gQA zuy;GzNv>BMmm~rg&mtd~%|}P>8!P(5 zmk>Lz_J8pdH8cu&&L@(8$XdoV&(QILKgs&Eos&sJquC(DitUFOUw};`v%YeeUl->a zQ0}a316G_}PI3N&*1Pj9_gqC&ZO4R^j&LH({vCQhqNz$0g%-qbVs%Is)|>9@Jv8$` z(elS-;5al%F`fiOcgjMa^fkf<(f4X4IH9a(BvKavVojn)3hX|{$8&b~y7QZP-Rx82 zneY^RbZIqKrt2qL6c9h3uT$~Q*PAp@su!N*{5I**~Ye!XdR>O-adHai=vX$1iWWAl5k=?Y%6KL>iebh_n zFYU*fLEcvMLk5docw5ghG?>Wb5%#NR9uDbgv@M#4=UQulG*1P~K-D9|&REEl%J3xH zB{N{Wvby_hPkPzmLJ+p}&mb~&^E~3;o9vSEte%xjs^{CoIvCBS@xJExy}j8u^|S4J z)cOy(A{he;HGj;zCW6ksvkNY>bWx@~1alOeI*NlbK*>&Z7<|ja5SEyfQ0~+{&BvvY z3`pKL<=VvTrS?AG9oju#xZ#eutQ_SAiwFD{)631Krt;~nx!J~`+c_l1!&Ptgf%LWcby=KJ`>6Ts>DSz{lR2S;8Ge7?F8ZTQM)OUv{^JPy z=x(U5e4ExS%X*lII;PgBl*v+;`2C=0Ww|+tR|Qi!m_3gWb(ra(8@4-LGrE~#X5OY) z3u&Q}y;+4jG%m=2?Ut!I0tJ@qR`Tl)wFO+qFTl6g7%jOE7E;o9vN^=Kv%HhZ)LK*x zuxu0F%~Zyuqf3-!A8c~EIBhxNjNMUsk>iv$Vp7D^bAQK>rqSA3@BFtt2ZStWdIZPbwz~0vsE5EmG^mn5X_E?tjRaPtiP5-+z z_8^ip278gPx?SmqDIk|q0A{oV-usnbeacFX?hDd2d;O`JV)GiC%bTxvvEJZM`H8Z% zCgmyN;hi><@Q>G-jJKUNN70td(51(Y4>#NSV|ne>GZRzs#yq->2fLEPu%S$~e~~~x z?f+o${c_#8C)SBam4*5K&mD)$^}`hAYNUL`3pFY_7KmhXXms;U{w`Y1T~|5G*rUGIuaLdkJuj`hwxVY! z*;xaIw3_S6mG#kk3Y<%Ic|{LpZ#UmFbgi`@PKQ=?G>(gn7$iu2c9*-uE!aaweXPU< zG6;ye>F8#wS(9uo=8-ci%ZT6j27F(6V^aQ>QJQ{qhyM_*ggmR#y3L%}WmkGBLV^zYS>v#r zLH0hQLG5|m`S$Jc<{trCxtwmLz7)39ZY{3s3qfI|tXvf=E5FUnKRP8lx~0U0No$sU zNG6NkmQypte{>|IyA^`6ZKx1)fzWihLSwzyXO>m0yXGfj2c!KDktv3G4ZT<3bYyC? zy`?07kh96x1&YzxUZ@SuLqE^io$-A$C6}EBWoBBX#L7i{li`8#VBRhHg#LSP$Un%T z$r(M_kTNSxm5!o@V1{G6;-xXJzlq(*zDZg}>oZT}b@V*cFA-9Suv@;PAf~;$g}}a= zZEAAJs8a)cOHZdqz+rfMkzV``b)L`&aqx zA~SgfaYt$~suf#fhX2qS)grH{ad_Jyb{ihk4l*M6q~xdE*npLFW(C=XKllTUi<~l~ zFMwf+UpU@uKPHhrL`*edch!1!M_GIW^;ez7i>h)dS>S|vhHkEN9^lyI!w&af9)hFl z$8w@y@(`@fE+I<49rcmeaRmBbIw$y9u;JnDQZzLhgDiV8Q_YSIs)R~v6FZf`KV#5Z zp-LjJP2NVnX*+7>!S5f<$@$6{A-{6cl4zK+hfK`J;to+ zgsn=^1@;i{nw#L{O1{XJ`LWns+FCpz!zYwp)@UYAsoaSiJO1$HJ6Y zWd~s^k%UPu6YBkRnO7ho-J#?+SH}4`mS$Gwu^~n3!IXx#c+OMB!R$FQsETV{k%0E} z@~E^4IGHu4p0>gVM_!J_VPOoondd9PWWUdpNZ6p&w0qHU6=6Ze?W>Mic#wl%pWkVu zC~JL&b`wJREdpofbkFTr{?6yTwtDtIhF$-wF~h*h^#2a%v9YlHZ&xZi6Z`)??)v{W z=2f>DIh)wDkz#LEvU919wA!d;=NON*+B8wN+9+FB1xDI*9eTfX+r4q{%&z^EeSNDN zReK#~wx9C6=_VIXTEY;PzK-HccyXbFp^2L6`WKeeG*mTJ_S6*e#Bm2vj&GyhtIY=R zOHiDG0ClQwZbbm=@OJ~y#8dEN8w2T^fY#sN-{Z>z4PWDM=TOhkXag`~R%$jsKkNM| zJ;p)yuRr-&{(5q1Wo`kM|Ms>ASYP8<3%Jty5&YKStnlOeM}b1rv4?LPQRl|4PyX+ zuygrKQ~z}aa7**U{gw9uVe`wjrq0g#?E$9F0yvT7=S=P4wyy(I-$+|)%lt{~*KJS# z>Opd_Z~V2?|5SZJms;OlA6g$8U+e?DW2tCpKkj*Sssrf!M%-9`sKM5=eOXyp+8ut% zN&GGTgnU%F0BUY>0BiH((*6xIf&og?gGKpkL-^kN&zgtT@t0EccY^fSw|n*nMRQ?kR0Prd!v*lS%i!N91!fNZ z-em^x=jj?)EN3fZd5PkjHq4a(T; zQ;+IhYOU|l3@IgkMLDJ5Z;yK24}!5n;d^0GQ8Xb`1fI& zr)1{gp~bQDp7|r-&*A8ac1!w7rAkn4^}(&kedn>H-~&Qi%tWH^fT;B^1yJu8b+<7# z-I*^2Zs@-;&1B;D6k}~`QJvNNUMGoD>kOxtZh?5V8BV7RvRR~udJ0bo%9!qOqbFdU zBvExwdjci0|GWa4Nf}r)IwD$3n);zpJ-B+|ih>9vn(egu)r2Nu?d+@hLnCSbWb?7A zHF<3EdB3DH4AlFP5(!dI=6No66Y@0F)wd|4Z>diaUqxE7d1TGg@bC`5M3H07N0L=m z>JCuN)eD+W+i9OQ-8!atBwNwD?VT@Rw@8t8|7B=Ta^-a?2d(1n)ZQ{f#^N7)5ENw; z{gQSh;;_$+8rWRiLf12LxDT+8aPz$?=QOz`gC1=bl$O?YE{u6@rGRMgiS(Jh3On4E z-Xod-;nuA?xK?ZjGe7pl5rugOYZOh7!LAsL#|H5IW6WUM${t_!4zdHdcR3e6y3AzZ zJ`s~x7aYc-yL+GNlc^bs>=88o6e?EktUGJr5>`^+ydL;!?=YbyJw8!2O1g7Fr0Wf9 ze`WP53-nvarCN0|mv&Rna|oKy{L0l=Ft+BgR1_+H!GXe7@{z2UD$z*I-zHj{5!&&5 zQs9*`8N?-)t3VwhI}_SdqA`)w{jeF=>nu>`)#}b1LYrZwub!q~F51;VzFC+dS_h0e zDd5kL0g=X-A9VVImBD_IJuVc#s>p;v=8T*{+EzwgqbD{~6Zr==$Smiu0$*A4ddMIV zK~VRp;r*Am6FajpKRbjJ=0her{KV=zqg_82iK~0BT>=q4`rXkqpGIdurVc9uz*}0L z=R}BC=_WSsitqc+w@WLx3%j%_e_fU;lre81%M`zAY$jZ3K%cFD%*fAhQn2B7#t+%o zcjNomQmK^BUFbWfMz;3c`I4~y!TeXwuC+9lLKO8$OIzO!#Daskwo#RI_!(TDZZ-@? z{qpR)f9Aag3|zX}{i#M7sw9}#APcJHuwZ*iqK7sCZp|vQb<(nmd}=M%sFJZGQza-Q zDyeSY^XIJVUg|rlYgxmTX#s_uMxc%fi*;)Av%)UO8;p2Zy%_aiO@sUU#JqKb6V4MZ z>zKI@6(3zc)VFTexxG9d`5~7cJ;n$KK5Ic9W^3XMgi04&(Y}iipbkRuB4=F(35v)0nmW{E zgz$AOrd-RQ7*T5@#U0JyK;79&)X`Pl&srH&Gi?LJ_TU*6oY7GMa=d-&Ho~Bi`kqqL z56LBS347^8-95Bi89dz-}W-Q2hAICloT&rr|%Sc$9t&o=zPted(BA4W4DQXfN8C7$nq zJXugn8kyUl#?k2OS+3xr_%UaQ;bOiC#`<|mJ#n0o^ZTeFIG0LgbeKHR(DZ&~DgJ0y znyZlH;!zip2W-w{!0sVnOTC~Z?xvh}KT4>nkIlo$8vwfOtw?kmL03)@B7OPRhwrd_ zkZg8lgAD=T`+(y6(L$(<9>}WaWaNiR8v+m7prAwZbu#)OLg$p~)yqgw-1VWOv@#=O zn`Cfb8gyU+0|$9exRlEL+jE`d*bEdoqY`${AETZ>c5`jLEv$|=)Dy?)eiSZHSs`AogS*JGx*?SF++{` zW!XbzN(6`qj3UhtXpop)w%pV8f-9>H+EKxb5g5EB)GI|+ zb}U^D6BmC)8b=0G&PkLV@uyp|3y1ez0# z-T3eo@kBV3q+?Fa<)h#o&vpfOo~E*SM3s@?mJ|CNt_yw7WRb<%AXqP7b)18F)yh$< z9M!Z0L4Jl=R!xM=J2xp5lQvxU3nLl3ft)!RY+OP=Trz$taAlg8ccpDbH)pu0(_3`N zytE5*Ds5o{DBz7kYgTL;3jo`veod~P%wgUX)Wu2{3Tp34L}%=hOKCy6)#aJ{9RV5D zEXSaVmHmUkj?$NL`)it0kpK*lnYp9iDQFxZSo3($DpG=k1{0zS4tWa#v~d*SU@W&@cr2Cqu5 z5o{K3oa)_3pmjLqBixbp2zTrkH-IR%susAhZo4$pi$d^hb)M)S%Z-T`^at-L&qg9Ww{=2hyC(gxi&XqXb$rdQ`O2D7doR| zo|`SKphog&og)rXwNfzPIcc8aIa+FQhDOzTh7ll;3^35AhK4>vbUU2%H5*am0Ww~gM9Zy}{aIuY8JqEHtpW>3{4snZ3QzBLR zbs+^DsJ&`I^@Hz=JWtWRg5{sE$Rs&5XFF9&WO#+lS7HX$y z2IGp*@r5y*p3@Zk1}R422ffVD${dV{k0{B7b$tI~xN9boZAF>2{wl~1amFUUA2=E) zzO!FA(u}*kx}90+YLLvrDdYfuf2vPpED^2_`oIZI+fv$B~42kg^>p(Fm&>UaP4}pVjELK>ch8&bR7)KAJElbW~2%% z578NRv~1_#F3aS4tEMazy@HI2C2hnZaK`jcv#_FW8?n!s3;yESROQ`cZc0jA%!xSa zr}Khn>5gksTdKRvSsOC>Z?#Vo87J5Ck^6l<$6gVC4{3FsF9|RPmnlZ|rZXU9)UrvcrvGT#ZCe?a1dWh1vA!F>4C8G(=e2hA(CG9UoK#qTbx zncS!w3|shiP3_#+Pu0^_0*9gAb=u7zf@1$1(zd&a-*HSm=>Y$FX%|v+8VZ;q(g1h$ zb6?+JjYWcfx2UQRjbXvA8p&EK@Et_NJ`diXu~g4(JPD8`hPUQW;%Fw#P=*I#cq*Rx zWm(VkXxE%9IeEQrFaImIn2}{UwGr=u0YIrdTAToYhn|SE{|_yq2vn>9Q!*$=SiRN6 zhl$${TskR6iMJr5wBP3iY)G0M7hWm@ZVdE9Ai%+EjA=tY+v9i&HQSY9#SJ=tpH=9KQ zCL>0qH_;#xngY_83hBoXm@74Xu!YHTti+($TM7I zOnX1^wP;Mv2#woPNC-UPt(a;35G*BqV2)dd*0;#I37=|$Bv5crOtnE*87)0#$K2ga zs8FS1My#x8T%n1KrK%k--Rb_O$Wt8p80u>rfm=?{5>quO7jaV-n`UqGJpF+Y%Y$MPoozgFz@;)K zTSXb^vo%7aCf;YzvDH-meGwY1PGqu3ESX6w@ASm}k8n49paSo0J?U~(CbZxa{{mVp z;aYGU(e|3865?9j4Lg7tOE=rppOCYrkb2ZVW5mrZs>4@x zMAU^`971~Cos&GG8xB7%5{OljALvYTp`#gTvBp}}&;>jByKJ4N=C129aKH~W#HzSG zwvxCR^cVb8yh@I40-#w`lweh;&9Eu$X~Kd46PCTCkUj3d@FE@1;=mtiJT@9FwrHN0 zHV38HcZu`bWO6?;v~vY9CRuv>56bcrqMd47mp7mL+_aF*NHIqd9q-fJC#aCAEg?cH z-xhCoxg`B7ii9LDjse9qSV;%hG^3#*vsqA4WHBV||MrUN=zG=#4lD;n9FZc2V#Sq^ zqq&WNJ#QNkk%+;yX9UXJf{-vhd2%l<$A zx|oF=(rP9Kjw9}CbUW$5tu)m{X%QV)2GW-qk0SCYEM*#)fX2$%Z`+WxYUbw#K%G}D zj0yXJoS;VR@Q;V3)${BLXzzb3F@vIV(w!b>;TdW$G`p=P{Sr5oCsfymPLLO8`oe?< zCiSAa(s6ijKqMlVe`eRhF9Hafw=Yh4UY-HlZk-ys<+>cu3g_KhWjycytbA-_lGZ_v z$vO<%`;S=?$44hPtE+F|m9)Da3w}I1w5War%v0VFM`Orn_8u)<0|Zp^2Z$as^M+h3 ze+fHbCJa37k*`Wxb}m%HIR2u43r|DJ5Mx6^P7W$5G-2{uG}!u{z%nI(L090X~&KQ$@Lx= zGM9X@?vQv$LRb9NWpU7>ax-xGpvfo7!jY2b`Od#};8$0K&gDQz1Nfe_ope0IFr32y z&u|Ei4t=!Q7?agBP1nSi$7n+RTAkfSgzXJ_7Qpu16xiO&Ti4^uB@sS1EpcQ07t9qG z%Ho0SX)K4u>VXxyvCPMuPz*iopE5{%TOVoUrq;s;2P`)tDMnd!?9gEd#%RBI^iP4B z_w=E5vBfQ?&tvx%6c(OyBUl)O*jOs-9V#1WamUF)lDp#m+ehMscfSb80TQfd!GznD--`V-+J1eq8|)s zpxkucC1)<6;5xF8O35$aJW@H?cZ9vs#8z&5ZqD%df2Evqa*F&Z-qVEepkY1FiW)yy zbir_YXxA;P?rxAZBB2WQ@k?%uJj?J^OmwTOz-j7bW(nzx`+Y{x#AUKECL4&*MhZ!n5}gWs&c{ZE?Rm`U*ze=~stE)6WP z0&MF?;`;^0Mz;_4#r{Y#iiiDgIonj$iYaS)mpTSsHi`>ZSr`{o`y12kIj-8w+DBkm z`^Dq@M?UUiJ#e|B9u57P?uGWw9v!XOW|0Md1p3vATa>K5%5}3uA8v}sjP;h_*B0sY z?b|<^t zy$-*J!C`}V&v%Qmr5*#Srt-=4lCm)qdGqMl2p(##4qCxKu;Zn2LT?p0D|5tja8nBJ zJ1~ss7OASHIetu=0LTqm^To6)1`l!+_-T%eB3MMWVQHSU18Uz57X-wpgqw$CBb`Yn zsxJUvm9DeKmKX1}oHDMvvsEAO2$|3s zMDjQB5XT%1FQA8D3S_J=^JEV0%wpy`KhX8{n>}_-jGA}lTwK`EkL1ELMm_wsTQ7Wo zG2n-2A}Kk2&PiT@ZzrZBrR7){g~S|Wj$=#DD^`MXLU}9oUc@JY8x}(}DHXnMrZZMU z$&RSLJnY5aw2qd*DFa&qA-z+!bIA{ixrR9&ham2EPDmoh335#IF~NJU*U*rmk@WO| zcoLWKKjUE=N>AKWbv5wNClDYSmI#YEv#ucWalsxT-hCrTs_$cU6kFSSxdxJgNhl43+%+jziEH^K)_hOn&{@E%9x{ z{H|54tjkDhBVvACLZG)%D`d>6?#px>kEYqs!!xX-`0{)5F=mGqn7B;DaFdsWVD*v% zgs;T~W-#vA^^aPX_+8(!gV^NQpJJr9e^v^_HFc+gVlwLLvlM)EQmDxG#9BmdAcI1G zDNiL1F*wy6H3fNpecJF~eTyn-g9#Q0{L4sYp zQ=CYKBU@2!7oDkyqmxJawc%e7#M14iAUq#`kV??9sA_4EGw$aZv$$&_GNLtv0jpW) z(@~zRMNH)YPocKpc6K&?t#v*06o9z0OU}1eE`>vw70etb%dI>xV)qK)3K*ftWh6e13VXk zPfWlTx&s36qronBJ5tgcFoL_YcIz6l25{Y_goA!xXx^)_T_2?Wr1>WIKwnKFNdb-VG8*G$i9f=5;pln-C3osn&g4u>1i)eVY1`F5;C1tH$q-! zRtX8b*$Q}~{4)ENl-m)=i(G7AKUwy@8ySn}ctUY787<-?P2Cg4JbUAvFlMk*+?X_k z{nbA{-Ry04U@ZIId#Wd6@2au0Q%%tnN$p&SiT+}u-|aTX&Q7TeL_7ZMeT(!P38W&FH=f;o8;#)(!Dg9(ox&O}S5*m@i7C=-D&q)MTRaKP) zwe%ZN#n{~8ySJ=O!7M@2#_w?MakOM+729(X$_mhd)N zpRV=djyZyM!`AbS%(!gG4S5|}ie99p&>d?Px1teLUwUdnyf6s|zGSU{(%S267}3t4 zP*2w-2F7bz-GcN@u6MsMWVBC;Cq2RdhCu1bTm^N;Q>sS7PId zAr5dcDN%*Ox=UqN89w(~efYLiU5G`}4=`2&lf*)LY9sf>yWu`zcb~doq97C{g z4E)w&|0kN`H8&GDs0p1JXKk%Kt!@jGE{kb(CZY*C5YQ*+cgsF@5p8p`>dp|1(HDdK zK53#C`IJeh>kN3-NS&@H2kX0u8jlh(+iqub@}gi?RRkHoRJ$Oz_nfDGx3 zWHGigW&gQdTk0MZXbbI12^H(^%EYg5Q6QUJZ6V@lb$=g5XEmwB^oO)1UuPRn&w@-dbf;{7sq-B_*YbRmqwkoGF7^TH|YdnTYtE8fdJDKzbLK94hd^CpQSn5BlCA zU$~0jvkjcykt_V=jYsnxri^CbF+(HliK2c0ojF_^(m`}~JuL0@A2^^^-e#j3WP_8xZ1ftm~l(X>`MbhDn zg;0SWjX$S4XON_0nHGE>r}K!q2x8C@AZEc7&)ABr@Ye%R1fU9KmXqe)`1rY0}``7X7mF`)yfKCnW7Ky$7s%c3Z?wY(I1|3Ygy~K7Jn{ z326GRA9iNkBc-J@{TDcq+5qDqEeooEQMrV?8D-MuvA@G0a@WiLNpBeg&RC8z`%aLl z8L(&RI4n$MLvL&$x#>-Js<1J-Mm0(W7+P`P(q@)T* zXp_#p5bbZ}{qNtNP0oL{n+PDABzY$NWh<^Af0!;+P3N`#u1Tr=>#xg>+z32PK@gJB zmP=}oV~<%E`8hZ)13-dla44gR+pZ;t$SrhAC>i3GA74F%*NO;Vwjq?b(E%tsUR#D# zC7b4FbmkeU;SySx$J10x(lfC-7xPp`LsqO%IU>afdV3jPZ8&2$9)iyAQUd`#>QI*0 z7FnaI!O9C?^(tjWhovQvd%Z9!hE{~@VdOwS3j4vR4>|dQ$(jwftbQA>DOlctg^Ri{ zyCIwyQ=)mmK>JBUsg*Sbu&i03MOGJ&!3@U!x4nt68-c?}Fs@l_nWx&1FQ1-zqba+A z99Yrqwp|{32JvhQ+6VYcr9_mIl3e+VfGM7Tcdjdg#D<~~ZzOScx?y+9(_MMY$Zp`C zN&_CML@_d8Y>j+GhlPWMA+R%@bZX~l$5yC{0&ipZR-LZW3&_Q5ou=vRG1=Pj#YOq#5-LPXB;4P=l*t0s-#@b#YjYMZjr@lsKU z7h=d^ziV%YB_Tjni1`K)HW&p2LJ zZA>4BiA-N{pP>9lE@GagaG?!JBF8Myyi#tYT3ET>%51C%{_}yG@SmBh3r8SD>koLA z0V0sPQgrYO0{*do{zk;XKNGlBoF&tGEE5P&FVA5bwJmJS5aP?VVs)w@O!`3_GlXR> zMRUHECI}6~1-No!ntaSDc$+=bQobL>b$d*GwE_<_e-JKvx@<}gBG|KEJ!D6(Bq3iv z`{TbJ1Xf9eOK9hh*J<2V8-y@!?2^v%yo;E7IDU12I)s*1mSk{nqWIu}ckV@Q4Dl(9 zCT^hkJ<*kaPb3&Y%sg2+S>MUtsq6L5t@7VgT;1&n7 zi(UG(NUeo9wm>sa(W!G~1=Cs5vlQ}@m>?1zYoUEf(6Hs5W%AnLbc&JPtUA_gOL2Dd z|5I)w&W|I$gTgioA9lc5>RlcxB6A1pgD|p1)4mFCQBU|R6|E|11H5`Fn2Q4A0EaF# z2VU1%tHPsE>8B;zF1VL>q5uIAw?|*xBGVRT@_iLW6*Ztuj%KEH+-tuk40%8FwM5wz zpsZmr6$Q{yvGPGtC1V+}Y>LwE+T*GkXLcGZQle}#8n$kdBop1k-ag}PPUwZ3?--_MJ??#d{+`Dm}B1eGSD>`m6)tO=OH56answy(w%d($zCi5JI%i` z+~I~kG{jaLuzC2aCsk&{xY)9eqP!jTR&t_qLYthS1!fxXXw6Xik+c|}+f-g85gF;Y z;E*yB)MZ($7AZ5*hWBtmxB4Yc?|IbA5bC3BOktaKY%D@N-#EvR%T~^mKm=(zm*WJN zJx8b6wZ{MMJYq9<82{PvA3AA;{$EAB^>ZTAalbTeda2jO9#EGPXz&0@j7)FI;M%g60<2{%{Za<$gfe&30QszZh_`$D^ zab&0wcwaj`lM3(?Q1mSj?9(_=Ok1*kyK`c+I@lT8?(yY(DA3coQNRHLo=9%|E+Zt|9UwG*`xA}M8Y+V% z&S?>qNP3|gwg%J7Hj1Uey@!LVoA(CmjuBtM+qj^U0u;Ky9NWhJi%;Z@j51|`JHsGN zlu?=3^a_fw3h=*>xC2MFSP@V>xHGKcR^&plW+WvbgDEhq)p4*(R?Z}sg@AFN z7b-eU>6<5atiZbKF)Sh_9W|A&9K?sl zbTN^hRbx`f;e~FCBUC9F6h5%yjtLop*yIZsC{tr`GgKbkmxU>gziN5rd?jC`FLQ5n z5+EFhV9OBpFP#=mRr(tf4@rnoGS9 zAug@!+pC?Wq}2+&!a!}49zTgwQfOd1*mp_0qB6J(XDbOu$LC!qYn7@PqqwN@lARHk z)vn|-+lKXv3DXthc4)b82X%aRNWCSRA5H;{fi0w-M2 zjYWb^Gi`^ah!~j@$1mRW*`MMht0|U4)8RAxgDa6hjz-8W)#s~s* zsg)S*EUt`?m5E+c6UIS;X4tloNJTAq-fnt7x($e)<1+DyzEp%-xd9IU3{HCwRv`Vc zCxNeUTw`JZT=zKUa4*HxPI=O%!GXrms2^%^u#geHer+KopSnfpLWLW4ox@7Gv`pYP zM^bl?J#-sC^L+Ls9C`;h=#(Eaf_a%n<2~LS?3~gI0m}`3iNs+z}D4N-nu8 z#K|1v9Mk-M`7e)&_waB_2s2FktyflTMOqpsDhjs1E~r}7AC9*of;iPDrsJ&4!oncm ziAJAcQRSU7%ABV;DJFsq87w{))rkJ0&u(KY{_fA(z!WEXt(QUVlKuEB+krSKy5TLL z0G8MXL^-D%i7vP&j;Ki;&6}EGHtn4bs@Z>hED(68|KTjK(Op7obusqwdvlU&HA>mJ z=ngkco-3Sdw!I%La%{NF%Wf?o#Y;$;S2?A8a>|sd%@4R3*Tih&TD5^$(XT`CuY>Ih zRaj^@#SCQK(BM%hNjJ&je68fyV)pl0zcPxB6@%RVYOUu9I|u}KXaFxDvmn3eV9+Uuk6ng-;#z*2c{tw>o72WK1#gk|WITcg{QQqFsyQ zqng=FEG6${uaBh?~lbICk|1Ub}L13 zeY_{N!msKTOpkS4WfvxGNV!O2;iv)}L`2MI(keH*4?d6M!xSJkHgQ4@=kc|Ns)WOV zm&PexxE*(nX)3iiU<$$a0@STIGRXAB5j|0Kw+ z=4Wx7UH4elV;_J>*ROqg%5{3@G%if&q8a_2N6Ht+UzcrM25Ae()diBEM$NRtlAYE4 zw62UA_vlqT3x+tnKi!1_rImIB`?@I>HpZe?t?7d{l$JyVT~mSi973*sLrj+qzG61N zCR6hasUJ>y4@z*Q+r_iR(}E4L=R8_GI>rZC&7u}tn?F-i`qP7xIvZl*;uxhLN|K-(2X570rbSL>@ssC#aX-i_NkLWVk$Zb$*26R#3;ixn%zZu z@tzg~l~)pYI=S4BGON?kwiw6)>Q;;W54`c zz2q>DWcZAw{{(({vJ=1I4>uzPwx1V#Hu$&}h!uJ&D4CcVjT4Sf0tNJ`GjkE8b%#m4 z(z%n7S*gG-?!z5pdbP>+5*<&B3SMt6rKzSnG@J59KT$=%c1*E zi8rI-Jt3y0#-UTPgj1oENc78dhm*E=aZ%t^VkK0VJn5sDuF5z`2A9P_PUnb_-+Yf@ zLdAEB{rDD?x%>j-HLuvJ_l#>?f67@X*&dFJiE>lJ(*a!ogL5wN{#(@`Ht<-RK7#27 z$Z^{+zDI`H&jTO`1}qFyAd}1^ql7QvI%(pMW<$PwM!d!|j9ZCUcCT2WKaSj3z}6~A zn*0b|!vhj~5QQUd3RAfFQRtVLs`dU@NB^(jg(el0AzD=lOQ{~RLd96yF@amIACd_? zkvS=*_>Qs-9@roEZVX3gFjF8tjDyNwUY>u4w`6NsX@YbjGPRy2I=MptD~wU7y&Dx#$4J z=m_t%h7Wi%-yk_Wa#XUTJ>UESj-H92gAY4oN!AEoo_ILSP6Y7n!O0y~;zQZ0w-_+4m z)YX~@@cmq1nJyW$E!l}0ow%o1k8AwyilvdOWdz(iSD=~n(8C_MY@j$Dl8>T`F_AOm z^xg-|y2u$3jSzzgh_BTX1xF^&lMM^A;{P^Uhj)+Sm#k53SwIX?HfzQj!yh9l>q6X^ z^hgQs?tn)4TMc{e%265zDF22!6BRB>b3#O@RE0zg-eHjOR_{R zVaI3bxCHh`PUw!`nd~jc*Dz`<0kj0mA8qff1kk~=YF{-$=Ga7$+{oHTaA1B!zT$Rn1)mjQykM$Kjn6jg zK?LQ?8EsxJ16Ur+!RZim)N3G}_F;G&9(g?&oT?i^nzyuUYp-G4#a*&H|LH1a;P2jI z+QinLN_K;89%o226LTt_7d;+i?6qE^`kQFM-;&K%-r&*=Z}rfWG4!I$e}3VU*AT>I zv+&_SH|kn!OX6o#6>KT>p+C&F1bF>eq>`<9S(yf|u(^}5*H=YZWQHqm^V+M8^$$ox zTw!cY6E--oi1%wZT&XAHDA7BZ4VT_te{?BROap;IefMGs+CC!?id1JfS^fS_STm!~ zAh@PB(FMDQGj2AtdOh)ADnv(G!;qdU-D{|O{t{A?)34M`zq9V3MJk-papRB~>9RCj zm0#*V<}3UVw=ra^XRa*dapSrkvX0p3h&t6!890OWQNCRR5$uvTM}th;fb$v1O?UzL z>OoQE%&aF}K&EU7xODp0BH=zVbyg6V2Wn5FqOG5HK)#EgFBdY^IbCq>=0J+N2{gX_ zThy;eyru*^4~fu#I!2s<`LM1RTNEc?kcD4Om>3znT3@@oqg`I6(uT`|UpRVSZ_(~B zaB}U~WWa7Nzc}}N^{^J7F{?664}BcHSa$9!kk3K?rRicoLk*d_@OX@BUT3|EWiC44 z3d4=jT6hC_tn(4o^H%XP3=73VArGAB;$+qIqDg-=v;37~VUWf9rQ|F^udj~97asQI z_?-v38;eb!@#sWyKO}vVihtsMk-?=Pov4>U9`hWAdhHQ+NN3r&*RPQy7Gg{~b5{Abs&F~Oe&k8ik7C|sOjYIwNd6HSK42PEcZ)5tGgz~y z+2!(fEi@=3Naig^QEsR{BELhR)6k)K|NBqwe1Z23CbPLIeE^;YV?J*@=Shsz0v9^r zOH^k3?QF!qTvIu#TWn4mRTm~GjoJ4g#6P7_0{o8MfziVkNufLG`=>PohD-Qpl``_WXwLHR4oGOuE z9anU$=6V?UUEMxO#yo-2C)V6~z)(q08#bZiEF6@S#tJ^;6x@tn)vUpXvF!2>q*h4RSYveLO#R9=DHcYdkZaeu}M4w{M46u(U4B1fJls zA9qGI^d!nkHUF!GYNVH<&i&jR^>LzP^<1`GfL&=}rleNNuq;{aU@;ECU9{b<^M=U`CP8T%LjbA(c@KD{ivWs+};nbh>?bc0TB zGZ>-nOrNC^<6w#?E!EIiQnK_F=s`XQBeFi8rwnkA0y7kEb|udPXnN2JR^uQOHsWg5 zvFwKUG!=D%JrY=d?)>yJ9p65voz=Cvq;4Carn5h;SP>0Ik!sY;RqA&yg8m{lTP1QP zJ`)k+u5lSQ`2U;{G3~$rcu1h1sT0%E`EtkZ*UV^xbr-%6%Kn%g(UFZU7%lO+95mZ&`cdo3%fx=SD0aO-L z+v2Q6U!ZC(Jm>7|;ox|Xt3{oTp|q~cpRc}QY8|6LNA-mCmqt!TKx+19V#7%;(alLv zRq0nquS&=DR#k~;vJ`8`^S=A3e>bI9S9s2;gt*-hok$6BB+a*B&$#l>s*FaolQeL5 ziyAF~H*x$ZH3pW7po1!3v40bn09;MWK^3`v zD^BB|DF=4oD^Un0bpJc2cI+ibk0*2(w78NU&jIP|MWiI|93?>?`)6uAlWJ(va;CCU z1n&SoI=^-{S)^)Oj?k)nNL10q@|UX@HSKd`LUJ$o0F9?A6FEIKq5ccftDL2KTDDv{ zH_Zi{9rSJ)p1c8Ise z{jQDOqQAK;fbBNN6_LX zwDjGyN4o%lVc=ugYz@=fj)VFutfr=$gjAM?=aiZ)yBL5x)sE6tiv5KWr)FR?n9H)z zA1C>3x6)~aN0~BYSjX-Z&l=+`PI;2|mED_?7DEh)`LW~}KsMJq(FwQg^1LN2zZM4M zaF@2{^zb!Cbz#U_gmCcY?w<^Qo|1WKMp4GQR~qHck>m!*z*pFi-V<`d@ zp6c-!ef-R!xF4{gr*Bcb27T~X!71{Zm+3;v3i*Q)bBd=K_qc1|_8i%FaBy$Rrrh2P z%*%(X7$wiaR$?w*@KF;72>N~%{+XfVCqV;g@O|!8m8yM6lk7^qK;rt!`hvP)$&Yke zd7L;xO#?&=_Ud$IU%f&vn?Js?Z@?hc2QIzT@J-dUmkflQ_=G&5GlLcTfF{yeV(~9i zed$;}QB61s?;f=_OTxR_Yj$Uj7Qat}Iq5L6LFpXc&kn4RyRDfJap&f#KYFhcgINVt z3^a7$hP*0;zl%#5BNrs==1lzI<(2kRok+V^nbOVb8Wjla5>4MrgFbvm8JgApXl2lN z4deEazugJ6NkwTa|1kG#1|Pna@W~%emL4oV@*7L38FY2nzTcXfadJ+O68i5S&;%IU z$3N$5RsZD{*X1s~;L2{7Zt{hEnwAuk^x>`-e5CKr`5D?7} za`oAN4{M-oqm1lcGT70V@%E)# z*ID3pdhUUHf7wwzN#CAsC&G*Wao}Ob^(rW)zS~~uVos0L{3$5o)r_#N1sq<2yvK#! z$GBZeL3!6)6SPIBW}0&${c2SyvhH%*>8$3_!kSh>orW&3MAi0}F#9JYHS7>k*2F5h zbbTTdT@U(8g~1eaJ$l6*tM}hm$b}0&8T1Ae%^#512KIb&?P0dSgMg99_slDeovZB6 zRT4GRIho$_KxxSTD|w3Z?h5-FMo}GuFAwn)A*>9o6BLJJH8FBZnUIEYx?V5NO=KT? zg1Kxxp6|}n+Qc>7^SO!s9;}|rnD2W_Z?>ORIoUHGys)WdL9ts4*SP0L-h9Pk9-XN& z{@rA=pj!3mY;)AQz-lNPgihBfbCr7w?-7dQDW~Azx$h~f3vw%Ap-_*LFvZ`iMZt^p ztdTqG$hF{eBw9UXv<9cjGX7j@T#GZ|4wi2igfJLAE#Okr(Uq_3tJag zIC_E6aIWaKq@K7mI-hDr;MLM<*WJZ0#q2ViqD;O?=gBu46nWgg&o$SK>Jy^p!Vc_^$wDTIbxZD5-d~!rj3T_eHm$e{#V>%INMC z_z!H|?Qgo#LB~pIM*aiXzGQV2Q*`HE&ypO5ZZspqEzo#i%WLjjmvHPWq=PqnNavlq zO`VUT>~~o^BbbpiV~kjh2*l8kp%)h@ffq`Gp8wud?%jpW8r7|3r5X?CDL;b=JYzt} zrbtT4I@)oJo?}e|^;J{?v=LV6S6dS`Vd+#Epc`g)sF&S`BZA_`uHYJ%R1J@rJ~3f& z{$yfFF|+;<53I0RDSCWZJ+XQ-V%hV;JOEkt?EQaS*H=Z#}Ph;?CamsIY)m(3j1jPLeJ~=H-JZFh8#Z z=voXMb&YWQr_6-p-FGjgwToWEaw)-`M2MI)7P8k6LADw9qE^l)ZN@_F>KUZA^ytYv z%I0tvuvsg_yA5;st^5}6Y;i3m)7ZTTr;`(yGhH`i8B5IQ)jbqM6Y&QwJ58CGmInM} z#`VR{i-d?0)4@(dM7<*300M2+6tOo@wk~-2!Zu78)x*yk(A<0{EmfO7cenLJLBL5y z2TUH|oMsBy)FyGz({n;y0+k>I_jq2+LCVo~Lhfik4#fkMY1wjMjb2r_6xbpV@{Pae zXgE#BFQhCO6W{91Drob$M^(bnFHLOxT!Z;fZtD&^KYE2{;flL>`DShrQ;1_FU3>1t z0*@i57|&cdx~U1}L>0;8sw-rJV7pYYJczzFm+wl56~<7ecO#u7mdW_jaRG}m)QlnV zU6RAS@~!ZX+C|z7UBOfp{ddX6vo}8^CctZ{DdxXSVI#!5*iUqVf?oa%qf=_3-tm)M z`IXMRxj#YmThy#&?Ns8YHiFE7a~46ZQ0FgW%A%=it`nCdov6U`ILyF!Q_G8Q8KImq z@m~kvS=q8ld?zq)iyIyhhP%!6@JI|DLF1ZX^BJLaB2M>k8>kPkSx|dlUMg>Y7ZF#u zb=L(JQ1kt7#XWII!X$#BWnv@|b;ryhxi(3!bY8;*;`HSk|E*ZIN~XnO`0&wEi?9)# zx7he)69egu8ca>r#et9lj_YdB-yTsWswuaBm75<@d8cm9n+xkuBj$sGSmFpQfwLI} z96^S}NNUh2MMd6iW2s@SEF?7{%ExuTF4FJ--}k?X2kdKtKNAkmXQ*lEBJTBrjp3eI*SEnEP?b`4>BS67!+ynrxp z4C{PM7l?#C>;SHiy&DAFfNr3bJuDvHp4-`Mj>}#a|I?}X+of`srTWT-izO>=ODSAd zGAal}Vi?E3diy$O2;ilGcs{lY_F*|3qLS$n*hV|$01XZRJqA7(Zca4yI1pGU$AnhD zz#sr{JgNYi3FQ7Mm^~yUWWf@k3BjyhtpT<+hQFfxmVZP@$cuhzpALXPogWeXe?;pT zWdGljFz#`{!)pk~z#fI~IA9k60)S~Wka{p~e*h+|OfjiTC;%}~7hZp$ameG(#o$ux zc|dDO1yJq4?0f<;f7W5t{rfoJexySa(BCRniZAFi6chtMf36^!0eV9MdFl8keFW-$ z%;QUlP$7L^;C==Fn5q!u>k~Kw1c3F4#etd2Iv~C4)%ZSWN7s;UcaB~IdXr293K+`^ zDA!Oxy++H)$-g4G^cv9Xx^0DfXc&KuK6foanw?+E3%l!(Q_v7i|D1dPjB(^wbvgnF z1JF<|ZVmUIV_!liSI|G*P;8WIlczc;4ZvCgY-n|Aa0HZ3p{K#0wVUrM`F_8P-NB8G zfvY?7@jbmiO<)W#P)?1eA}5Ew?U>ixP9;MVUxAzGXPIK4mJ z`#vvh|6j!yKl@+q?>H1CIW~Hz28V}+r=KC1(8(ZPLA6YS^b*?s&B23{$KTc~PR#%v z+JMTmWM^S2;Pl{;4;9{y(maU+kFdB+}u_I?lxaO%BbT=v_ao-$2?O9bJ8tKQHWV z=ij-fy*L1nM-a_I`dL95QK1{9rM~{k@WwB3lbEiqc7!i}4)nE4v|~^;0WM%A;?!RoV^BF)~6QplmQ_sBcW+A<*{-)&VL)92hQw4&_ za~IKbEENbDmUk80w*sT9hg0#4$QN_-o1$A>a(7F=)Y_O0ZT|L;@NpJEy@HRbcE&VA zbhGtsU81!O91}_En#nJVn>(<;byny~3_d5E7#@qU$vpHljxaPZ9yZvb$7vWXX_SkM z&c4!J7OdCc@rUHc|7M58KAp(9iYlnARC?FYxF#5f@Aygbk6~*NJ+GQj;U&N3yfz7eHD7L$26a3Y#A>HzZyo>1Qz^cu={}N(d{PZs?{rC zcHQ>>`%9NlRX`+<=DyKE-n1$A&1x0lcPPxsKPYLGO3`#I+_<_jOHUG%e%=&W7^A-4 z1d!y8-%%Msy|PGuC>nPy0?s6R*l*V&BGPj7M5x?pXkJ-ztTt_#CwXYiZ)y0M1>b5w z!8Z3_!(nS62@U2@91RQsiyaC1zP14SBU)*DWOjlt0=jRKxQghu`5C-dQHdW0m6hT5 z0tkM1Z+sXCvO$q$5W-OSb(>DS|L0k>iK8fTB;c3PoqQ&TUlLzKf>m zH@7nvV- ztY%HqorNh{CLh>m>g!fDiIYuDqKu865M!hITHpTmo-B;;lOQe9bgZGfR;qL52!$9yfo5;Nq*D0DN5lff@E4nG> z5#bH#_k7(1lXd+b1y$Nt<1UTDhM>_wBv9w-7Dzi+@!})mf-qVrtJxe%c>1MX|uEbq{*gpxK*Z&?$^^d{UsC4Omc8C);t6M zYK>8orLHe5eS86)Hl=CW`D-4tW6X90&12Utl>9C`Vztv&>lNuIG9eYRXhuwPo-yu< zG+SdC!A%sR!2y3gbZnVLyo;s;#labEPo%dk4H%bIIL#R(TPd?-8Oc&O zqwC!_&GtNzZ8>jopY3(3WHai1hCfdndNdzxnN9n(nqPtYl9ncnFCNA8Ay+>V11{(V zevmAFN7IAhyzxL7|3f0F5!kyvl6+6L1=nf2n$7l*U79(i9UN<Q8rwn zI0ik>diE%#`1dm2=^HjAsxhcX%>kg~gRzEM5>t2Ku9O4ND{*9xr*AXKto_4f8$-hy z$D>b$*Hysa@bn<7oftiWVD|HCvR;)qOaxR$mS6(g8%Y1eq+RplklsY@>=o%GA$knsIsvMB?a~ zbl7bAwps0$sd8&UFkdGVPWk&e_E^G(m;>1O|Ng5J+Gov6P&WyejV}<1)J80d_TSD0 zJ<-BAPE{W`_mYnoKK#te>(34nOu<%$y!bNUb9z)eIc75}ykn6dE90@e^Z9LSbB{B9 z^R3g!iIc(j>d!_ijGVu@@|mSKy(O<+skUad-7z_(#%;wu_dd6cWx}mCsx!6vE^Yiq zpnV$PTabba$$R;H&Z{r(uEE(3ohBvN4Z)ooWX1m(+Yhf!@r?~IQpc-jQ{CLS^ULIs zPA^In#VnXsF_JpDB)HNf$c&lk-&JUoqK`9R6@WM|&RPmt6Pd!U3kJ@#uR611W}QtA zCLlNM+M4N`4LbQfEMm*@fr@~7k1UOc?2BAO*q9C5F%xw%l|meCS5_BfM9!J!)LNOg>S zn5OcUsXc>)Qf4hJ*g1j&A1Y8oKK9*5f}q?K9bS3JiBI`Tf8IRUzNBHlFCFh?rSA6- z@qponu#oDESY(4A+mfmU<({0`d7A)px6#poq>ek~pO zK((Z3gQ0Zvqe(Gt2tUJ*2Sj6id#a!vkN zP{#WA2=*8Mb!2u&%`yOzf}yuneT}lbY$&s*=68p}3K2{Sq5a>_P%X zns!DB$mYy!yD4Un%yHz(Uf4PQ9c7>}p2xNyh>`=M>?@4PvoFIa?ss8JxU?LHL3qgL zYjzHK$z$p28x;>HYJdZp=_BDHFtb8I$(=HR9Qh3QK^#=WWy6JzxhX+M+j*U@#;H=- z{Q^S>Ir9;C>swvXkn}E#Q-39ir6hLX)&xvnUY!39b2poiJ&hZ&x{49IO==Ze=9b4{ zK_!0_&nG|P$itC*OdQ=%U!)~z7eVp#{P{@0%MTsVU`PJsI^rND= z8KIl%#)7O53V|3!sfL{Px^wV1l@qu%+}F|-!+#;94BB2j1X@!+07knG_(4S+3omZ7 zlX}aSZLM@#7mBX3J~-jE-kP25{gt|V4^=bnqCZL5CXXm5{fWUt{HiW>f0S4AyEaNK z<#+u;px}&>Yj<3tqy2u!NhZ#$sY?~_?wwP@(hS&G z*GD_bI1|9YTcBq)0|06)@`sL(h{;YvPKm0N%K5(hr*)>jfiEO2ZlGH5_+Q{p={yp2aX>NYq!SakYm8FJuZC26E~%`~~GZkh%Q^Fk&m zK6BafaxHrPJ_h;>y=ODU-n8$2`tHYWFgkX4FRw)gZXGbK~yV1ALi9Wq3JCv7EU0NXSR=2_dj{2aTM6hitvX`JUO^?3_KP=eeJq zLt~&Rl||dS)|jmYoT=Nkf-ZlJLu~JKT94?6VY6!%!IUp11&4jgT_H(K=sU!^-4su8wdjP?(^SU3qefHh z<@_HGA!>D0zhF@jE!bY%X;}wlr(X9@;2kUojX~AM%eMTm;{Ym4oL=BA8Io|EFdQ0O z351ykD0lm=Ic$h1YOn9rxY|FzFa?lhg;*pryXr{^(v9R_WzutoEbYJt+-|7$<<{)B zAk8kHMp{J&Z4!l7TbY)D=iNemuK^b@+@Qdh@ac<@S1nT#-?q;v*Gr87VP?5LO~c8n zQ);k}%vLH631C1S!rU)1cq42#4T{%u7gYbu>MRfE&htz+i9jxZY!s~t_vV*3n4y>R z%@r^UC=4VaA6PRf^@L!y%+N;%GJyv z!CQ|`YO^R2)7hnyEQueoU7BLJIf3mWQ6RXFqCuZIKSjP+YN!8KgVurt0}^zW0guwQ13F8hz(hfa@+OL+Rlnw+s|4ftFaC4`OBz1r#Z z4dOo*Nk@_0=GI`CsKSTrQEUCj2hE&A&DB|Z6_S>|J`7D(QOXt1JUk_AH%mY(h}fSF zh=~WetCA>Nlscy^N+T2?!g8JlwTk(*k4Ov5MT8=Y^Vv`FOxH2jyh(!Nts_C_m4q$G zxu8ZHAa2Jf29053A){U=-vi8ch(1=dN3bPR<4v_^pM%DuxSPdp=<3rM*=mc|SiHZJ z`7@ope6z6j;mb91F8j9c3tN&CO885E@u9a~Wgg`d;e5A{-G5EiY&Q5n-CQV9E-Cfk zt$yy<(oO|hcMF@u20O3*QUht}y|sWmRoF0;m9UuYktSGyS46%d8bPnp?hyHJ8xmll zhHVY&F3YWcdU;+XfD%O=Tm z|H^W4|2ujsS)J67i?|k^Nys z8pSyC0T)Z`F#dT*uL?O#YpA1?_uK_}b`ber!N<<2`?hpj$!0|BaWgORM$zoQusQA^ zuFz74Qw0}Fqn!xHz>op$a~4H{Gl87gT4~kUgv?poY8D&AGtyCrn^rCEK}Nh8cC6^? zXpw|w_}+vtaX)TPYhG>9akONTOuE0OckYRbi1l$4)K$j}F0R;CY8TQjPwrF>PrE{+ zZ%v_bTjvU6d(}ufy%%;nQlQsBE6bmub21(s3&p7I;`5U%2J{X7J~q}T|4vu$E!9gq z)=mI(GN;*as8ZfoYWL;6kz3Vnc{n`KN+9)d zK?k&{1Q##hc7zqscR`Ts@nB3)iH<`|;|ST@_;0JzS*A^#Y8VBI+09o&qtrug1LX83 zJ#5ogXrChH?LG&2LL_H`nBGP)8rXMA)~%$#2-a4A$GPz>e!E5$T#l8fCMP7LFzV0H zKFOLIbcw#+FuZs_RRidE&O#i=X3FC8oP~1yYU$!m9(p$#QfxMbP_ctf!nnkO{$JW0Cr#f13ikDlo!%1q6~k3W3j#U#SaN zlPsxmp_5r(+8s^?e5khvd^F%3-0L)l_;F8O8qg>ZgYL}8tuA9+Pi39ZU$Qjv^eL!e zXHr->W>KCv`-v~v;aSQ%`vJY0OaK7W{eHra6_*$B_2MEwEThH3N_hgtY`TCAA2Yww zt<>HwF_5;YUIHHGQ@muk)-r*P`{%JsAGlM4pi&vb>ufQkU?HAWAy%X{LUW$;g{OQc>NgHEevQ>@vF+&o((1THM3pz*0Zd! zaVit7WxQB6e93FXIZl}jzZc_qmP)H1mAto8{Q;IbRJ_H_-IM!mlgpo>wAhCXU9FU_v< z2WJw5U0lI%&y6O1T6e{P{7yXDLT!`Eei2s%0=l`;!qnNmd$BDwQU2TU)&YyHFK)}a zfAX25{|+^hyAUz`#*ib0*imVZ64A6M)cPLR$&R>_!q*c|L4+hu>0#CYyRPSlPAd}^ zcpMI%IXcD38@SIHZ0{Ly`_v)g{Y&aOokNSu&L%Z5G40iS9d1r_h^bY4;fWZslqOP? zL;B9-ojX~Iz=XnwAAX&trhua16^M_cz;VrXEJR`!?K+N;d zQZj$=a`OB1$K0(CKTsu5B8xQ=<=E3zQ7NGRf$aje^mvJZFpZoOj`*L#t|}-FV9O#2 z0fGbq!C}zBVbH;7&+z4<0nQ1sDkK4#5Kix8Ux!y!ZBPZPjko>*|k| z+jUQMe{`R!d;1U`BSe}S7L^n_z4jWy*ZXcWr>e!mUMLlHTHp!#{)93$Blh6am!Dy< zwi>Zs>+2TFd^xy=bMlb*BRHmQ5^Xt7PNwt5J?MazVC>=(xPD}IqPuo_j3KZ^T<%V6 zPEn!VPA8ds=uxUl4N@M=iwphIR(SDnGTI}DH>m5rlZw$QFA@3W+M~O(IukWCdK+>2 zZfQB?`BURLOXVaTog+4!qLq|n?eHNpW!iTVI}(l0kHi#NLyVQrN`{ZlbSBH4mmQjh zH(>}#fn;B9E8lj&C^JHw*#WsQ$Fgwo8!&s;>TfTa!7rm*rq2fHd3kAghv`l!(+@FL zSt9S6eHoHu`c@YRCV?h>&LVY)o4NZM(Lnhq5SxeM7!2{EXVQ3T%)U{tqVeeuXF4i@*zuwPXWEZzn@Uf( zgEu8F?bY@-loKjhMR;#Gw7 z?0(P}mB1lzwBelB$|fl18`AF^Gqv2IA!L~=$p}5`C`!zmBr{({f9-G;A-Am2)UQMN zSNX*%^r$BhTPiJR4C%I5uvoAmHERKGXZ`bD{QABH=@z#3l5|g^57fie)Ccg$l`i|*zR)O z@ZQ9yn4+v{p*{5K=Eq%MaNO=zMFuDbv$_Zj;||xY%hKdF=-Sz9Jtfj|MvL>c&2Iwt z2wZ9e-tEfHlIxM9MT?!`G+f)|S)``Qw*I3~@DZRvn6U}1LzjO0$P zb^b za5_Oq(YHG7em1giVRG+o<&BEi)BZj&HK)IQv*$q*OYdA=N^wP!t$#d2?@nSu&zffb z61O|P5C7{y2a3J3{f1OR;YDAiT+aCPw~&uwO`q?wb3J0S@$1rmMa!2)ENb^=sg9L{ zvr*>O=0HSk6!eo^>(cdrzX>z)^1R6qIbK6|o1Ep08#I7DUwSG2SsJGxwQB6F&-u>c z-nVp~FG`dB~5I8@o&whqs}W~%C*HVriNbK>R0MB)|e>S zCT1@3iEkciwV&}DBy`TDti@>Oq^HZu%_0-)7_Xq@;+FWIbtrWqx8x{ejg#F()R!ON zJk%P)1Jf6&yfyk}kJHam!jXe79j2j1Kk;ETgJo9B`mdV=_!FEe!ip7CK4fRG_?62aA(D9-& z*<7F!ME!0tChA5?@-l`x#J}EH-e6HjYda#8tRm*`pK>=G-1i14)%8luFYsG654arRqK=TSiEe9&Wf)RJV(VdpuDCJ`34_j-Tl9xNz22rE!r zxl?{Q-#IIEQK;xhBI=dCx}zYINU)#Z{@JJimk@*vrA2Z)&3~vHrvi};yOz9YkIwVf~HtK!5w@HP#0vR zbOuFIVbEm@*GsbdERYZ=zm7WCS>!tySeYlE@&n9?=r@`cwqBQ>HiYU@O1h}lm8eKU zj`q$<9(=5&il=t-APt0VsTRX{C()ZZZ5%D*aK)CWDJ5i;zgAv%!B?j=_EU*TkpnGl zS@*xQswXmhD^tH0NbW5N@Q6obsfm8o`T`z2NNSYm`PyY@F;ij}?3JAdg`dOkFFQU$ z&@3>PqXP9!Jq(nuDx~?Pq4sbr7PF3aN6o`um@F*Fpk1ObWva}~;tdAFRN!>fd$Mr4EML=}lDY^));Fsp+dK^Qs<>!k(Ojg;~ zw?z_rxo4I=1KyX;ueQJ`;Nkh~2Q(1>?~51va02aJ9&-BcV^hK4IW8{`>GX=nqt7v| zz9C{uuv=Q>ZHRKAhDu)FmDv<`{l@!VizU_CQTH@Ypn9dW_rYoRoqknHh6=x)Gm+H3 z)SH^^efTL;(T9`xx&~#Z6G#{!sk(|%B1NaO>U@(LTyF+te5lfkIp+2DzT2C4&XmOMG$G_BUTF4;G6RDukveO?;<$Pu^!Z4|-0pN$2k~RNQ zemZRSAiX%)A%^w_EPZ~*jXA5dd5BKovM~jW5*}tVHXSsqT)RqrSyD2>oogzq6$#V1 z_xWvVx*N!YzZn8G_ga28Yab@T@Of!6x?HY`-vEuH;QbwTy6X5e5tg@#GXftZpf5sqDv z8CTpp(x~BgAd8?;!s;k;z(D6PB-*3Vg3naEsQhM1ca)cjlNS6!+}eWH?0p)$qH)R( zLbBL!a1a6K17|&cUMjaQxFG#U@ z2j%^7T-5<18dJ?ptG`ELKuEA~X&Dm+&KKb{Mtwa$LTJQzMbP0bFz3w|l=eh^Ip;Y6 zZ7w4Z()&WcFKdjvzw2~miNZ(+>s-dOWnHjdNksnMTLj@fc>V~8u3ui&j3$rlQ?=|$ zAkgs-9n|(nC-q>%F=CbX(!s9}|N&x}Z(PV46_Pp9Wl$ zPNhHdirNKYHj_L0etgQ76jP>oRL|&WA{Tx~rmdL!x&hvR;*g@lN=U8pTP_GUmO^Px z+)i_=^MadIiiKAD!|dAFk!sYv(ASoG5*Me?WVvzXV&$JQL0y`GXN?JU$m&Be1pUQf z!-*1qw)+S!omt+wo|g*|CaQuDCTeZL?V_VEm=H2#PlWNG5ZU;w6rdOp&`b`M2~aDH zlDLaHLo2YAx1)_q{x?Z%S^e9thhVXO(8!k+a?JNuo^|=d=QZt+PO4t~s?}!RQKL(o zBn@<>VZQZWlO0&>;L(225 zEW`2fPC7Ov#yF>qHcf;XGjIyP)o1n;hILh2MnbhR9CPKGyKPHcr-7Hsp4sOP+2U^m z7xe;`Yu=OIN3~;;*0fOa^v21xn+~lLDqij|PS7S3kj1a4sz2VSX+%iZONkBBPAbQ- zl43KehkYF8v{hTliiwi>5c9L(oHPj`fK1z(=1w&RR{Krl!K4>x{?#I0yxDwQWKWy& z_w)BkJnuDYS!EkyD}*Ue^50!V4?}*LphR5n@j5K!szBLviJG{|)+{GK!0e4Ert8Jt!#C6*%cg1ro8TqTMN}cLuRul z7+SCE$`W@~sq2lfmi8qq2*u2xxUWvcy=)~@%g0mwNmL8KXv?LTnaiG$`bC&iKZHM< zw4I%* zKEbrSecl$WJR#fvzAyj3k=guQ|0^6jqi|FsiZo=)Zf4pkEyO_)6FJcAz|~V7Y^fyW@7q@1sLNfC zy5%&gXORt(sRnI;;Xz+Z3%{AR5* z4C-@nXj1L~PI(7>Fr?awqAr?g*n@ZqBLRcKR*7(lJE~kMNEFn5Ij^?&YMv`eeuzgp z4wJ3EY7~U3z-ET@`XB@^&h~P)E-uiKNSGJN~ zT9p=ktW?#MBu?Or!5G1mQgcB3u!7Z5Dyn}nmt{UhJJM*OngX|+KE^=CD_eS~%qN^P zu5qmU<{=Fr& z-xGsJ+0Rxl&$C(-IgLBmFHRqjhAegE?j~!q{R=Zm>d90sEj_x_dkI&n-14s&f#DBSBd! zHnEjTmFU!K$GfuNBb>+&wEQ@zF8k>pi2N<`zKpDvi`(3(`c%ZzXEz-koWaV+=OwZ1t{35cnX12S86HE`TCRsxxUM59Hh+wdxakli*wrKT zEwW}uo;Eq_pv$aWFH7aE!w6o`>(Btuu$jYbCMj0(rbz9+{V6aCjPj^Dx$6)Lb$J)g zj2EX)m=n~Uug-uP==e?gg@%fbnYK)en^x*)9%c)`Dk_tfF-<02;QWOM7h{{P0^1CN z&Jgg5B7}#N6o-s&3KJGmAlbAwK#$YQNs0A#%5A<|$CkGy=Mu~Zuql|da>fbZz@}hR zyW{=BHHr$QAhgL`BLNZzp9ObZzJt@@fTdRY14^RvA_~{#F+XxP^m$S<$n;{!mJoo{ zc5Tru$#Sncsw4Z?x~0kky~_|_-<9sb{6v#K3XJ+2;@~{?Wn?06dDpF5>hrSC4jxA+>1gW!x{=4< zG5p(;UHF94Us&o3_IU|rp?m;;)X%p%U@7L|B$>`sw zwJH+HiY#XnWe1=_r3)utC?f?}@n+@|1w#w(|Rn zRqAU}wjkMyKKu|U!8RT(J}^A?)EepK$b?9p94V1@uHUB4gtpcPlQ}J2-SDz+&JJ-^ zNMAK~%4lV#;^fh7e&u!Q(HnQ$=+N(@@h-+sJP_q}vQ6L@{6Lc+D6p>ej}R|y6Nswo zr#G6FcJX3LrYUE_a*k7X%fHC0U}J76qP3ZXw6I4D+WV5ZIoGnuKv=!W-AX55T4p-t zAmz(K%UaopkMHtGa4kU-LYGiTyPyKA(mA`eCNl<}3PDcPw9RzHbwRRLZFy5VNSo?a z7x73GellN4s0=Yt-K~X$po>iQ?Epw69#n2XHEcI~v`p9EYv}uB6ota(4`q`-c1uhJ z7{)d?QqnXJ(}8Gy#Bn^?>RFf!&TQ%Xar%hTwZ7`s0lV-M`h$s38my-~#rEZ~6j5Qg zw+7{wLW6|nj}HMum5!31E-U+RhgQK;mV1Ei~cuT_e2^t_4>fXH$~E^l%Czijvk6~R0-X;83{PT zcVMdMRqFdq@~gujqIIbAY$LU%;@g{>A$@GR1BtIfnErvbzPg z(_|-#S!Wp8rz9LV&3UnN(m9r|zHc}6#SGo;`zd2}e4r#z)MZ{`K>1d^_ogVxfJk1x z*cJo_kww?+x7zg0X*XsX8F6?KZLZz$wHd+&h5Y2GZl)AVMkB#$m0wXO&pT977gH#t z3et&puV){KyxTg|dbX#-BrX2rVlvS!YL-KY2k}*ilHV7E+tCjTUXeA5>PK*;Z}z-m zbpKH$bwNO|O>}kwW)bLh>xjE=*24^m{ zX511PoFlKN)!I=kXy|KMzUY?QIGFN)GRzBUo^dB%f z;r1K#UzhR=G~`T+{+=M{X>=NCiAd>px&LBxM&@^RbI6bmFz{J9_Uk86ZF0EQIemkPn!r0FO`z0NpoY|fOOy`I zHSFu1in3#E;**W6(@Caa8LCL~2zDE@DMi~9!gNg3Lu8Bi`+EJ>yyj`j5({A5A(bA` zU6_L5nVZ;$E;I{@ZZ5FpU!oR8f4g=@n!ymmUb#(bLu+5^B$mog;MGHmp{l8&=ykm? zdCAZPW_FHlQzdDWgk+6cLc$;Cf?)BgTmUz(RLdV_{jWu3o`xDSlk3bjnrZGrAQAVJ z#O#h1dc8w!g`l*X()vszY;ep}0g!ud!#3=(YRGmRh}wr_7Mwlc9O zskk>yugXqoLn==+)^p-fXPZ{O2Ozl^Zw?}51<<)TZSG>4A`2q>$*V^gq7iU(J$hpK zY?-~fb9DMEizE%O{OIO1>Z1>QU9+KWI|QEgGaSv0FwTv+$O|y(3>Wm~EuCVmt-vGrdwAxni-Y&itN}K3EB$c)V$u= z_lP~rk(^E#zMxNtGe+8%>)PCj!vOQ zV10?Aw$Bqoc*&zZfgN5t;^|QtAu^-*_f0jbVNJLLLSXywq4d)b{j5i)UVrH5&Q^vu zQ3mB+L89zt!=`ek><(es&Uc)b4>M4elpJKSK@N2;slgnhOm*5)jtO)5@D{ErZfSs0 z<*RAYaa_trWcrAOp8tpDJZF^tPXg+{9{0K$<`$S73JzxGaDV|PfS(6~$)RcOW&Yg4 zUn zq+ef0uo?JehE>)e>Qpc@^3}~0{@Fp0RA(hpcpRI2!axXuGaAZzO)4}W~m8a z^h@kS6B(bOG@~}n*;LPCGX!`1im`Z&9Aya?xV*`elnzOB+2|2TgU{A z;yJtFfmRX8R$sEf1d!hCJTa<>MD$$PrT^weM?{(Y+swGWNL_$RDIfvZ#ug!C;cFu>#Lc@WXOZ~+}JFz=Wm&m+Y!ms77o#95r**>m~s>0sI{a_xN&tXU? zd%8Ano_J*F9XVKTo9+C#Rl>z?1mW#b<6n%qF`>PR^o^{lBN@3WK`9;4aVS S1rh*(!JL@%^fIclnEwR^s(8Wx -- 2.39.5