From 16730f0f113aeba7e298d9288c24592d7afb4717 Mon Sep 17 00:00:00 2001 From: Carlos Galindo Date: Fri, 15 Nov 2019 21:34:58 +0000 Subject: [PATCH] tfm carlos --- Makefile | 1 + Secciones/background.tex | 463 ++++++++++++++++++++++++++++++ Secciones/incremental_slicing.tex | 394 +++++++++++++++++++++++++ Secciones/motivation.tex | 138 +++++++++ Secciones/solution.tex | 113 ++++++++ Secciones/state_of_the_art.tex | 70 +++++ img/breakcfg.pdf | Bin 9200 -> 14772 bytes img/breakpdg.pdf | Bin 8659 -> 13922 bytes img/cfgsimple.pdf | Bin 8485 -> 13935 bytes img/cfgsimple2.pdf | Bin 8679 -> 14070 bytes img/legendsimple.pdf | Bin 7750 -> 17601 bytes img/multiplycfg.pdf | Bin 9682 -> 15405 bytes img/multiplypdg.pdf | Bin 9765 -> 15188 bytes img/multiplysdg.pdf | Bin 12302 -> 18589 bytes img/pdgsimple.pdf | Bin 8780 -> 14019 bytes img/pdgsimple2.pdf | Bin 9506 -> 14814 bytes img/sdgsimple.pdf | Bin 11719 -> 18058 bytes img/throw-example-cfg.dot | 8 + img/throw-example-cfg.pdf | Bin 0 -> 15718 bytes paper.tex | 13 +- 20 files changed, 1193 insertions(+), 7 deletions(-) create mode 100644 Secciones/background.tex create mode 100644 Secciones/incremental_slicing.tex create mode 100644 Secciones/motivation.tex create mode 100644 Secciones/solution.tex create mode 100644 Secciones/state_of_the_art.tex create mode 100644 img/throw-example-cfg.dot create mode 100644 img/throw-example-cfg.pdf diff --git a/Makefile b/Makefile index c290f85..02762e8 100644 --- a/Makefile +++ b/Makefile @@ -12,5 +12,6 @@ paper.pdf: paper.tex images pdflatex -synctex=1 -interaction=nonstopmode paper.tex clean: + rm -f Secciones/*.aux rm -f *.toc *.aux *.bbl *.blg *.fls *.out *.log *.synctex.gz $(MAKE) -C img clean diff --git a/Secciones/background.tex b/Secciones/background.tex new file mode 100644 index 0000000..e0c593f --- /dev/null +++ b/Secciones/background.tex @@ -0,0 +1,463 @@ +% !TEX encoding = UTF-8 +% !TEX spellcheck = en_US +% !TEX root = ../paper.tex + +\chapter{Background} +\label{cha:background} + +\section{Program slicing} +\textsl{Program slicing} \cite{Wei81,Sil12} is a debugging technique that +answers the question: ``which parts of a program affect a given statement and +variable?'' The statement and the variable are the basic input to create a slice +and are called the \textsl{slicing criterion}. The criterion can be more +complex, as different slicing techniques may require additional pieces of input. +The \textsl{slice} of a program is the list of statements from the original +program ---which constitutes a valid program---, whose execution will result in +the same values for the variable (selected in the slicing criterion) being read +by a debugger in the selected statement. +There exist two fundamental dimensions along which the problem of slicing can be +proposed: +\begin{itemize} + \item \textsl{Static} or \textsl{dynamic}: slicing can be performed + statically or dynamically. + \textsl{Static slicing} \cite{Wei81} is a slice which considers all + possible executions of the program, only taking into account the + semantics of the programming language. + In contrast, \textsl{dynamic slicing} \cite{KorL88} limits the slice to + the statements present in an execution log. The slicing criterion is + expanded to include a position in the log that corresponds to one + instance of the selected statement, making it much more specific. It may + help finding a bug related to indeterministic behavior (such as a random + or pseudo-random number generator), but must be recomputed for each case + being analyzed. + \item \textsl{Backward} or \textsl{forward}: \textsl{backward slicing} + \cite{Wei81} is generally more used, because it looks at the statements + that affect the slicing criterion. In contrast, \textsl{forward slicing} + \cite{BerC85} computes the statements that are affected by the slicing + criterion. There also exists a mixed approach called \textsl{chopping} + \cite{JacR94}, which is used to find all statements that affect or are + affected by the slicing criterion. +\end{itemize} + +Since the definition of program slicing, the most extended form of slicing has +been \textsl{static backward slicing}, which obtains the list of statements that +affect the value of a variable in a given statement, in all possible executions +of the program (i.e., for any input data). +\begin{definition}[Strong static backward slice \cite{Wei81,HorwitzRB88}] + \label{def:strong-slice} + \carlos{Falta ver exactamente cuál es la cita correcta.} + Given a program $P$ and a slicing criterion $C = \langle s,v \rangle$, where + $s$ is a statement and $v$ is a set of variables in $P$ (the variables may + or may not be used in $s$), $S$ is the \textsl{strong slice} of $P$ with + respect to $C$ if $S$ has the following properties: + \begin{enumerate} + \item $S$ is an executable program. + \item $S \subseteq P$, or $S$ is the result of removing code from $P$. + \item For any input $I$, the values produced on each execution of $s$ + for each of the variables in $v$ is the same when executing $S$ as + when executing $P$. \label{enum:exact-output} + \end{enumerate} +\end{definition} + +\begin{definition}[Weak static backward slice \cite{RepY89}] + \label{def:weak-slice} + \carlos{Comprobar cita y escribir formalmente} + Given a program $P$ and a slicing criterion $C = \langle s,v \rangle$, where + $s$ is a statement and $v$ is a set of variables in $P$ (the variables may + or may not be used in $s$), $S$ is the \textsl{weak slice} of $P$ with + respect to $C$ if $S$ has the following properties: + \begin{enumerate} + \item $S$ is an executable program. + \item $S \subseteq P$, or $S$ is the result of removing code from $P$. + \item For any input $I$, the values produced on each execution of $s$ + for each of the variables in $v$ when executing $P$ is a prefix of + those produced while executing $S$ ---which means that the slice + may continue producing values, but the first values produced always + match up with the original program. + \end{enumerate} +\end{definition} + +Both definitions (\ref{def:strong-slice} and~\ref{def:weak-slice}) are +used throughout the literature, with some cases favoring the first and some the +second. Though the definitions come from the corresponding citations, the naming +was first used in a control dependency analysis by Danicic~\cite{DanBHHKL11}, +where slices which produce the same output as the original are named +\textsl{strong}, and those where the original is a prefix of the slice, +\textsl{weak} \carlos{Se podría argumentar que con el slice débil es suficiente +para debugging, ya que si un error se presenta en el original, aparecerá también en el programa fragmentado}. + +\begin{example}[Strong, weak and incorrect slices] + In table~\ref{tab:slice-weak} we can observe examples for the various + definitions. Each row shows the values produced by the execution of a + program or one of its slices. The first is the original, which computes + $3!$. Slice A is one slice, whose execution is identical and therefore is a + strong slice. Slice B is correct but continues producing values after the + original stops ---a weak slice. It would fit the relaxed definition but not + a strong one. Slice C is incorrect, as the values differ from the original. + Some data or control dependency has not been included in the slice and the + program are behaving in a different way. +\end{example} + +\begin{table} + \centering + \label{tab:slice-weak} + \begin{tabular}{r | r | r | r | r | r } + Iteration & \textbf{1} & \textbf{2} & \textbf{3} & \textbf{4} & \textbf{5} \\ \hline + Original & 1 & 2 & 6 & - & - \\ \hline + Slice A & 1 & 2 & 6 & - & - \\ \hline + Slice B & 1 & 2 & 6 & 24 & 120 \\ \hline + Slice C & 1 & 1 & 3 & 5 & 8 \\ + \end{tabular} + \caption{Execution logs of different slices and their original program.} +\end{table} + +Program slicing is a language--agnostic tool, but the original proposal by +Weiser~\cite{Wei81} covers a simple imperative programming language. +Since, the literature has been expanded by dozens of authors, that have +described and implemented slicing for more complex structures, such as +uncontrolled control flow~\cite{HorwitzRB88}, global variables~\cite{???}, +exception handling~\cite{AllH03}; and for other programming paradigms, such as +object-oriented languages~\cite{???} or functional languages~\cite{???}. +\carlos{Se pueden poner más, faltan las citas correspondientes.} + +\subsection{The System Dependence Graph (SDG)} + +There exist multiple approaches to compute a slice from a given program and +criterion, but the most efficient and broadly use data structure is the System +Dependence Graph (SDG), first introduced by Horwitz, Reps and +Blinkey~\cite{HorwitzRB88}. It is computed from the program's statements, and +once built, a slicing criterion is chosen, the graph traversed using a specific +algorithm, and the slice obtained. Its efficiency resides in the fact that for +multiple slices that share the same program, the graph must only be built once. +On top of that, building the graph has a complexity of $\mathcal{O}(n^2)$ with +respect to the number of statements in a program, but the traversal is linear +with respect to the number of nodes in the graph (each corresponding to a +statement). + +The SDG is a directed graph, and as such it has vertices or nodes, each +representing an instruction in the program ---barring some auxiliary nodes +introduced by some approaches--- and directed edges, which represent the +dependencies among nodes. Those edges represent various kinds of dependencies +---control, data, calls, parameter passing, summary--- which will be defined in +section~\ref{sec:first-def-sdg}. + +To create the SDG, first a \textsl{control flow graph} is built for each method +in the program, then its control and data dependencies are computed, resulting +in the \textsl{program dependence graph}. Finally, all the graphs from every +method are joined into the SDG. This process will be explained at greater +lengths in section~\ref{sec:first-def-sdg}. +%TODO: marked for removal --- this process is repeated later in ref{sec:first-deg-sdg} +%\begin{description} + %\item[CFG] The control flow graph is the representation of the control + %dependencies in a method of a program. Every statement has an edge from + %itself to every statement that can immediately follow. This means that + %most will only have one outgoing edge, and conditional jumps and loops + %will have two. The graph starts in a ``Begin'' or ``Start'' node, and + %ends in an ``End'' node, to which the last statement and all return + %statements are connected. It is created directly from the source code, + %without any need for data dependency analysis. + %\item[PDG] The program dependence graph is the result of restructuring and + %adding data dependencies to a CFG. All statements are placed below and + %connected to a ``Begin'' node, except those which are inside a loop or + %conditional block. Then data dependencies are added (red or dashed + %edges), adding an edge between two nodes if there is a data dependency. + %\item[SDG] Finally, the system dependence graph is the interconnection of + %each method's PDG. When a call is made, the input arguments are passed + %to subnodes of the call, and the result is obtained in another subnode. + %There is an edge from the call to the beginning of the corresponding + %method, and an extra type of edge exists: \textsl{summary edges}, which + %summarize the data dependencies between input and output variables. +%\end{description} +An example is provided in figure~\ref{fig:basic-graphs}, where a simple +multiplication program is converted to CFG, then PDG and finally SDG. For +simplicity, only the CFG and PDG of \texttt{multiply} are shown. Control +dependencies are black, data dependencies red and summary edges blue. + +\begin{figure} + \centering + \begin{minipage}{0.4\linewidth} + \begin{lstlisting} + int multiply(int x, int y) { + int result = 0; + while (x > 0) { + result += y; + x--; + } + System.out.println(result); + return result; + } + \end{lstlisting} + \end{minipage} + \begin{minipage}{0.59\linewidth} + \includegraphics[width=\linewidth]{img/multiplycfg} + \end{minipage} + \includegraphics[width=\linewidth]{img/multiplypdg} + \includegraphics[width=\linewidth]{img/multiplysdg} + \caption{A simple multiplication program, its CFG, PDG and SDG} + \label{fig:basic-graphs} +\end{figure} + +\subsection{Metrics} + +There are four relevant metrics considered when evaluating a slicing algorithm: + +\begin{description} + \item[Completeness.] The solution includes all the statements that affect + the slice. This is the most important feature, and almost all + publications achieve at least completeness. Trivial completeness is + easily achievable, as simple as including the whole program in the + slice. + \item[Correctness.] The solution excludes all statements that don't affect + the slice. Most solutions are complete, but the degree of correctness is + what sets them apart, as smaller slices will not execute unnecessary + code to compute the values, decreasing the executing time. + \item[Features covered.] Which features or language a slicing algorithm + covers. Different approaches to slicing cover different programming + languages and even paradigms. There are slicing techniques (published or + commercially available) for most popular programming languages, from C++ + to Erlang. Some slicing techniques only cover a subset of the targeted + language, and as such are less useful for commercial applications, but + can be a stepping stone in the betterment of the field. + \item[Speed.] Speed of graph generation and slice creation. As previously + stated, slicing is a two-step process: build a graph and traverse it. + The traversal is linear in most proposals, with small variations. Graph + generation tends to be longer and with higher variance, but it is not as + relevant, because it is only done once (per program being analyzed). As + such, this is the least important metric. Only proposals that deviate + from the aforementioned schema show a wider variation in speed. +\end{description} + +\subsection{Program slicing as a debugging technique} + +Program slicing is first and foremost a debugging technique, having each +variation a different purpose: + +\begin{description} + \item[Backward static.] Used to obtain the lines that affect a statement, + normally used on a line which outputs an incorrect value, to narrow down + the source of the bug. + \item[Forwarde static.] Used to obtain the lines affected by a statement, + used to identify dead code, to check the effects a line has in the rest + of the program. + \item[Chopping static.] Obtains both the statements affected by and the + statements that affect the selected statement. + \item[Dynamic.] Can be combined with any of the previous variations, and + limits the slice to an execution log, only including statements that + have run in a specific execution. The slice produced is much smaller and + useful. + \item[Quasi--static.] Some input values are given, and some are left + unspecified: the result is a slice between the small dynamic slice and + the general but bigger static slice. It can be specially useful when + debugging a set of function calls which have a specific static input for + some parameters, and variable input for others. + \item[Simultaneous.] Similar to dynamic slicing, but considers multiple + executions instead of only one. Similarly to quasy--static slicing, it + can offer a slightly bigger slice while keeping the scope focused on the + source of the bug. + \carlos{completar} +\end{description} + +\section{Exception handling in Java} +\label{sec:intro-exception} + +Exception handling is common in most modern programming languages. In Java, it +consists of the following elements: +\begin{description} + \item[Throwable.] An interface that encompasses all the exceptions or errors + that may be thrown. Child classes are \texttt{Exception} for most errors + and \texttt{Error} for internal errors in the Java Virtual Machine. + Exceptions can be classified in two categories: \textsl{unchecked} + (those inheriting from \texttt{RuntimeException} or \texttt{Error}) and + \textsl{checked} (the rest). The first may be thrown anywhere, whereas + the second, if thrown, must be caught or declared in the method header. + \item[throws.] A statement that activates an exception, altering the normal + control-flow of the method. If the statement is inside a \textsl{try} + block with a \textsl{catch} clause for its type or any supertype, the + control flow will continue in the first statement of such clause. + Otherwise, the method is exited and the check performed again, until + either the exception is caught or the last method in the stack + (\textsl{main}) is popped, and the execution of the program ends + abruptly. + \item[try.] This statement is followed by a block of statements and by one + or more \textsl{catch} clauses. All exceptions thrown in the statements + contained or any methods called will be processed by the list of + catches. Optionally, after the \textsl{catch} clauses a \textsl{finally} + block may appear. + \item[catch.] Contains two elements: a variable declaration (the type must + be an exception) and a block of statements to be executed when an + exception of the corresponding type (or a subtype) is thrown. + \textsl{catch} clauses are processed sequentially, and if any matches + the type of the thrown exception, its block is executed, and the rest + are ignored. Variable declarations may be of multiple types + \texttt{(T1|T2 exc)}, when two unrelated types of exception must be + caught and the same code executed for both. When there is an inheritance + relationship, the parent suffices.\footnotemark + \item[finally.] Contains a block of statements that will always be executed + if the \textsl{try} is entered. It is used to tidy up, for example + closing I/O streams. The \textsl{finally} can be reached in two ways: + with an exception pending (thrown in \textsl{try} and not captured by + any \textsl{catch} or thrown inside a \textsl{catch}) or without it + (when the \textsl{try} or \textsl{catch} block end successfully). After + the last instruction of the block is executed, if there is an exception + pending, control will be passed to the corresponding \textsl{catch} or + the program will end. Otherwise, the execution continues in the next + statement after the \textsl{try-catch-finally} block. +\end{description} + +\footnotetext{Introduced in Java 7, see \url{https://docs.oracle.com/javase/7/docs/technotes/guides/language/catch-multiple.html} for more details.} + +\subsection{Exception handling in other programming languages} + +In almost all programming languages, errors can appear (either through the +developer, the user or the system's fault), and must be dealt with. Most of the +popular object oriented programs feature some kind of error system, normally +very similar to Java's exceptions. In this section, we will perform a small +survey of the error-handling techniques used on the most popular programming +languages. The language list has been extracted from a survey performed by the +programming Q\&A website Stack +Overflow\footnote{\url{https://stackoverflow.com}}. The survey contains a +question about the technologies used by professional developers in their work, +and from that list we have extracted those languages with more than $5\%$ usage +in the industry. Table~\ref{tab:popular-languages} shows the list and its +source. Except Bash, Assembly, VBA, C and G, the rest of the languages shown +feature an exception system similar to the one appearing in Java. + +\begin{table} + \begin{minipage}{0.6\linewidth} + \centering + \begin{tabular}{r | r } + \textbf{Language} & $\%$ usage \\ \hline + JavaScript & 69.7 \\ \hline + HTML/CSS & 63.1 \\ \hline + SQL & 56.5 \\ \hline + Python & 39.4 \\ \hline + Java & 39.2 \\ \hline + Bash/Shell/PowerShell & 37.9 \\ \hline + C\# & 31.9 \\ \hline + PHP & 25.8 \\ \hline + TypeScript & 23.5 \\ \hline + C++ & 20.4 \\ \hline + \end{tabular} + \end{minipage} + \begin{minipage}{0.39\linewidth} + \begin{tabular}{r | r } + \textbf{Language} & $\%$ usage \\ \hline + C & 17.3 \\ \hline + Ruby & 8.9 \\ \hline + Go & 8.8 \\ \hline + Swift & 6.8 \\ \hline + Kotlin & 6.6 \\ \hline + R & 5.6 \\ \hline + VBA & 5.5 \\ \hline + Objective-C & 5.2 \\ \hline + Assembly & 5.0 \\ \hline + \end{tabular} + \end{minipage} + % The caption has a weird structure due to the fact that there's a footnote + % inside of it. + \caption[Commonly used programming languages]{The most commonly used + programming languages by professional developers\protect\footnotemark} + \label{tab:popular-languages} +\end{table} + +\footnotetext{Data from \url{https://insights.stackoverflow.com/survey/2019/\#technology-\_-programming-scripting-and-markup-languages}} + +The exception systems that are similar to Java are mostly all the same, +featuring a \texttt{throw} statement (\texttt{raise} in Python), try-catching +structure and most include a finally block that may be appended to try blocks. +The difference resides in the value passed by the exception, which in languages +that feature inheritance it is a class descending from a generic error or +exception, and in languages without it, it is an arbitrary value (e.g. +JavaScript, TypeScript). In object--oriented programming, the filtering is +performed by comparing if the exception is a subtype of the exception being +caught (Java, C++, C\#, PowerShell\footnotemark, etc.); and in languages with +arbitrary exception values, a boolean condition is specified, and the first +catch block that fulfills its condition is activated, in following a pattern +similar to that of \texttt{switch} statements (e.g. JavaScript). In both cases +there exists a way to indicate that all exceptions should be caught, regardless +of type and content. + +\footnotetext{Only since version 2.0, released with Windows 7.} + +On the other hand, in the other languages there exist a variety of systems that +emulate or replace exception handling: + +\begin{description} % bash, vba, C and Go exceptions explained + \item[Bash] The popular Bourne Again SHell features no exception system, apart + from the user's ability to parse the return code from the last statement + executed. Traps can also be used to capture erroneous states and tidy up all + files and environment variables before exiting the program. Traps allow the + programmer to react to a user or system--sent signal, or an exit run from + within the Bash environment. When a trap is activated, its code run, and the + signal doesn't proceed and stop the program. This doesn't replace a fully + featured exception system, but \texttt{bash} programs tend to be small in + size, with programmers preferring the efficiency of C or the commodities of + other high--level languages when the task requires it. + \item[VBA] Visual Basic for Applications is a scripting programming language + based on Visual Basic that is integrated into Microsoft Office to automate + small tasks, such as generating documents from templates, making advanced + computations that are impossible or slower with spreadsheet functions, etc. + The only error--correcting system it has is the directive \texttt{On Error + $x$}, where $x$ can be 0 ---lets the error crash the program---, + \texttt{Next} ---continues the execution as if nothing had happened--- or a + label in the program ---the execution jumps to the label in case of + error. The directive can be set and reset multiple times, therefore creating + artificial \texttt{try-catch} blocks, but there is no possibility of + attaching a value to the error, lowering its usefulness. + \item[C] In C, errors can also be control via return values, but some of the + instructions it features can be used to create a simple exception system. + \texttt{setjmp} and \texttt{longjmp} are two instructions which set up and + perform inter--function jumps. The first makes a snapshot of the call stack + in a buffer, and the second returns to the position where the buffer was + safe, destroying the current state of the stack and replacing it with the + snapshot. Then, the execution continues from the evaluation of + \texttt{setjmp}, which returns the second argument passed to + \texttt{longjmp}. + \begin{example}[User-built exception system in C] \ \\ + \label{fig:exceptions-c} + \begin{minipage}{0.5\linewidth} + \begin{lstlisting}[language=C] + int main() { + if (!setjmp(ref)) { + res = safe_sqrt(x, ref); + } else { + // Handle error + printf /* ... */ + } + } + \end{lstlisting} + \end{minipage} + \begin{minipage}{0.49\linewidth} + \begin{lstlisting}[language=C] + double safe_sqrt(double x, int ref) { + if (x < 0) + longjmp(ref, 1); + return /* ... */; + } + \end{lstlisting} + \end{minipage} + In the \texttt{main} function, line 2 will be executed twice: first when + it is normally reached ---returning 0--- and the second when line 3 in + \texttt{safe\_sqrt} is run, returning the second argument of \texttt{longjmp}, + and therefore entering the else block in the \texttt{main} method. + \end{example} + \item[Go] The programming language Go is the odd one out in this section, being a + modern programming language without exceptions, though it is an intentional + design decision made by its authors\footnotemark. The argument made was that + exception handling systems introduce abnormal control--flow and complicate + code analysis and clean code generation, as it is not clear the paths that + the code may follow. Instead, Go allows functions to return multiple values, + with the second value typically associated to an error type. The error is + checked before the value, and acted upon. Additionally, Go also features a + simple panic system, with the functions \texttt{panic} ---throws an + exception with a value associated---, \texttt{defer} ---runs after the + function has ended or when a \texttt{panic} has been activated--- and + \texttt{recover} ---stops the panic state and retrieves its value. The + \texttt{defer} statement doubles as catch and finally, and multiple + instances can be accumulated. When appropriate, they will run in LIFO order + (Last In--First Out). +\end{description} + +\footnotetext{\url{https://golang.org/doc/faq\#exceptions}} + +% vim: set noexpandtab:tabstop=2:shiftwidth=2:softtabstop=2:wrap diff --git a/Secciones/incremental_slicing.tex b/Secciones/incremental_slicing.tex new file mode 100644 index 0000000..22932d3 --- /dev/null +++ b/Secciones/incremental_slicing.tex @@ -0,0 +1,394 @@ +% !TEX encoding = UTF-8 +% !TEX spellcheck = en_US +% !TEX root = ../paper.tex +\chapter{Main explanation?} + +\section{First definition of the SDG} +\label{sec:first-def-sdg} + +The system dependence graph (SDG) is a method for program slicing that was first +proposed by Horwitz, Reps and Blinkey \cite{HorwitzRB88}. It builds upon the +existing control flow graph (CFG), defining dependencies between vertices of the +CFG, and building a program dependence graph (PDG), which represents them. The +system dependence graph (SDG) is then build from the assembly of the different +PDGs (each representing a method of the program), linking each method call to +its corresponding definition. Because each graph is built from the previous one, +new constructs can be added with to the CFG, without the need to alter the +algorithm that converts CFG to PDG and then to SDG. The only modification +possible is the redefinition of a dependency or the addition of new kinds of +dependence. + +The language covered by the initial proposal was a simple one, featuring +procedures with modifiable parameters and basic instructions, including calls to +procedures, variable assignments, arithmetic and logic operators and conditional +instructions (branches and loops): the basic features of an imperative +programming language. The control flow graph was as simple as the programs +themselves, with each graph representing one procedure. The instructions of the +program are represented as vertices of the graph and are split into two +categories: statements, which have no effect on the control flow (assignments, +procedure calls) and predicates, whose execution may lead to one of multiple +---though traditionally two--- paths (conditional instructions). Statements are +connected sequentially to the next instruction. Predicates have two outgoing +edges, each connected to the first statement that should be executed, according +to the result of evaluating the conditional expression in the guard of the +predicate. + +\begin{definition}[Control Flow Graph~\cite{???}] + A \emph{control flow graph} $G$ of a program $P$ is a tuple $\langle N, E \rangle$, where $N$ is a set of nodes, composed of a method's statements and two special nodes, ``Start'' and ``End''. $E$ is a set of edges of the form $e = \left(n_1, n_2\right)$ a directed edge from $n_1$ to $n_2$ +\end{definition} + +To build the PDG and then the SDG, some dependencies must be extracted from the CFG, which are defined as follows: + +\begin{definition}[Postdominance] + Vertex $b$ \textit{postdominates} vertex $b$ if and only if $a \neq b$ and $b$ is on every path from $a$ to the ``End'' vertex. +\end{definition} + +\begin{definition}[Control dependency] + \label{def:ctrl-dep} + Vertex $b$ is \textit{control dependent} on vertex $a$ ($a \ctrldep b$) if and only if $b$ postdominates one but not all of $a$'s successors. It follows that a vertex with only one successor cannot be the source of control dependence. +\end{definition} + +\begin{definition}[Data dependency] + Vertex $b$ is \textit{data dependent} on vertex $a$ ($a \datadep b$) if and only if $a$ may define a variable $x$, $b$ may use $x$ and there an $x$-definition free path from $a$ to $b$.\footnote{The initial definition of data dependency was further split into in-loop data dependencies and the rest, but the difference is not relevant for computing the slices in the SDG.} +\end{definition} + +It should be noted that variable definitions and uses can be computed for each +statement independently, analyzing the procedures called by it if necessary. In +general, any instruction uses all variables that appear in it, save for the +left-hand side of assignments. Similarly, no instruction defines variables, +except those in the left-hand side of assignments. The variables used and +defined by a procedure call are those used and defined by its body. + +With the data and control dependencies, the PDG may be built, by replacing the +edges from the CFG by data and control dependence edges. The first tends to be +represented as a thin solid line, and the latter as a thick solid line. In the +examples, data dependencies will be thin solid red lines. + +The organization of the vertices of the PDG tends to resemble a tree graph, with +the ``Start'' node in the position of the root (at the top), and the ``End'' +node typically omitted. The control dependence edges structure the tree +vertically. In the case that a vertex is control dependent on multiple vertices, +it will be placed one level below the lowest source of control dependency. With +a programming language this simple, cyclical control dependencies do not appear, +but should they do so in further sections, the instructions are sorted top to +bottom in the order they appear in the program. Horizontally, the vertices are +sorted by their order in the program, left to right, in order to make the graph +more readable. Data dependency edges are placed without reordering the nodes of +the graph. In the examples given, edges like $a \datadep a$ or $b \ctrldep b$ +may be omitted, as they are not relevant for later use of the graph. Please be +noted that the location of the vertices is irrelevant for the slicing algorithm, +and the aforementioned sorting rules are just for consistency with previous +papers on the topic and to ease the visualization of programs. + +Finally, the SDG is built from the combination of all the PDGs that compose the +program. Each call vertex is connected to the ``Start'' of the corresponding +procedure. All edges that connect PDGs are represented with dashed lines. + +\begin{figure} +\begin{minipage}{0.3\linewidth} + \begin{lstlisting} + proc main() { + a = 10; + b = 20; + f(a, b); + print(a); + } + + proc f(x, y) { + while (x > y) { + x = x - 1; + } + print(x); + } + \end{lstlisting} +\end{minipage} +\begin{minipage}{0.6\linewidth} + \includegraphics[width=0.3\linewidth]{img/cfgsimple} + \includegraphics[width=0.65\linewidth]{img/cfgsimple2} +\end{minipage} +\includegraphics[width=0.5\linewidth]{img/pdgsimple} +\includegraphics[width=0.49\linewidth]{img/pdgsimple2} +\includegraphics[width=0.6\linewidth]{img/sdgsimple} +\includegraphics[width=0.4\linewidth]{img/legendsimple} +\caption{A simple program with its CFGs (top right), PDGs (center) and SDG (bottom).} +\label{fig:sdg-loop} +\end{figure} + +\subsubsection{Procedures and data dependencies} + +The only thing left to explain before introducing more constructs into the +language is the passing of parameters. Most programming language accept a +variable number of input parameters and one output parameter. In the case of +input parameters passed by reference, or constructs such as structs or classes, +modifying a field of a parameter may modify the original variable. In order to +deal with everything related to parameter passing, including global variables, +class fields, etc. there is a small extension to be made to the CFG and PDG. + +In the CFG, the ``Start'' and ``End'' nodes contain a list of assignments, +inputting and outputting respectively the appropriate values, as can be seen in +the example. Consequently, every vertex that contains a procedure or function +call pack and unpack the arguments. For every variable $x$ that is used in a +procedure, every call to it must be preceded by $x_{in} = x$, and the +procedures's ``Start'' vertex must contain $x = x_{in}$. The opposite happens +when a variable must be ``outputted''\carlos{replace}: before the ``End'' node, +the value must be packed ($x_{out} = x$), and after each call, the value must be +assigned to the corresponding variable ($x = x_{out}$). Parameters may be +assigned as $par^i_{in} = expr_i$ (where $i$ is the index of the parameter in +the procedure definition, $par^i$ is the name of the parameter and $expr_i$ is +the expression in the $i^{th}$ position in the procedure call) in the call +vertex, and parameters whose modifications inside the procedure are passed back +to the calling procedure must be extracted as $var = par^i_{out}$ (where $var$ +is the name of the variable ---passed by reference--- in the calling +procedure).\carlos{What if object/struct passed by value?} As an addition, in +the SDG, an extra edge is added (summary edge), which represents the +dependencies that the input variables have on the outputs. This allows the +algorithm to know the dependencies without traversing the corresponding +function. + +All these additions are added as extra lines in the ``Start'', ``End'' and +calling vertices. When building the PDG, all additions (variable assignments) +are split into their own vertices, and are control dependent on them. Data +dependencies no longer flow throw the call vertex, but throw the appropriate +child, which minimizes the size of the slice produced. As an example, +figure~\ref{fig:sdg-loop} shows the three stages of a program, from CFG to SDG. +The construction of the CFG is straight-forward, save for the packing and +unpacking of variables in the start, end and call vertices. In the PDG, the +statements are split, control and data dependencies replace the control flow +edges. Finally, both PDGs are linked via call and parameter (input and output) +edges, forming the SDG. Summary edges are placed according to the data and +control flow of the method call, and the graph is complete. + +\section{Unconditional control flow} + +Even though the initial definition of the SDG was useful to compute slices, the +language covered was not enough for the typical language of the 1980's, which +included (in one form or another) unconditional control flow. Therefore, one of +the first additions contributed to the algorithm to build system dependence +graphs was the inclusion of unconditional jumps, such as ``break'', +``continue'', ``goto'' and ``return'' statements (or any other equivalent). A +naive representation would be to treat them the same as any other statement, but +with the outgoing edge landing in the corresponding instruction (outside the +loop, at the loop condition, at the method's end, etc.). An alternative +approach is to represent the instruction as an edge, not a vertex, connecting +the previous statement with the next to be executed. Both of these approaches +fail to generate a control dependence from the unconditional jump, as the +definition of control dependence (see Definition~\ref{def:ctrl-dep}) requires a +vertex to have more than one successor for it to be possible to be a source of +control dependence. From here, there stem two approaches: the first would be to +redefine control dependency, in order to reflect the real effect of these +instructions ---as some authors~\cite{DanBHHKL11} have tried to do--- and the +second would be to alter the creation of the SDG to ``create'' those +dependencies, which is the most widely--used solution. + +The most popular approach was proposed by Ball and Horwitz\cite{BalH93}, and +represents unconditional jumps as a \textsl{pseudo--predicate}. The true edge +would lead to the next instruction to be executed, and the false edge would be +non-executable or \textit{dummy} edges, connected to the instruction that would +be executed were the unconditional jump a \textit{nop}. The consequence of this +solution is that every instruction placed after the unconditional jump is +control dependent on the jump, as can be seen in Figure~\ref{fig:break-graphs}. +In the example, when slicing with respect to variable $a$ on line 5, every +statement would be included, save for ``print(a)''. Line 4 is not strictly +necessary in this example ---in the context of weak slicing---, but is included +nonetheless. In the original paper, the transformation is proved to be +complete, but not correct, as for some examples, the slice includes more +unconditional jumps that would be strictly necessary, even for weak slicing. +Ball and Horwitz theorize that a more correct approach would be possible, if it +weren't for the limitation of slices to be a subset of statements of the +program, in the same order as in the original. + +\begin{figure} +\centering +\begin{minipage}{0.3\linewidth} + \begin{lstlisting} +static void f() { + int a = 1; + while (a > 0) { + if (a > 10) break; + a++; + } + System.out.println(a); +} + \end{lstlisting} +\end{minipage} +\begin{minipage}{0.6\linewidth} + \includegraphics[width=0.4\linewidth]{img/breakcfg} + \includegraphics[width=0.59\linewidth]{img/breakpdg} +\end{minipage} +\caption{A program with unconditional control flow, its CFG (center) and PDG(right).} +\label{fig:break-graphs} +\end{figure} + +\section{Exceptions} + +As seen in section~\ref{sec:intro-exception}, exception handling in Java adds +two constructs: the \texttt{throw} and the \texttt{try-catch} statements. The +first one resembles an unconditional control flow statement, with an unknown (on +compile time) destination. The exception will be caught by a \texttt{catch} of +the corresponding type or a supertype ---if it exists. Otherwise, it will crash +the corresponding thread (or in single-threaded programs, stop the Java Virtual +Machine). The second stops the exceptional control flow conditionally, based on +the dynamic typing of the exception thrown. Both introduce challenges that must +be solved. + +\subsection{\texttt{throw} statement} + +The \texttt{throw} statement represents two elements at the same time: an +unconditional jump and an erroneous exit from its method. The first one has +been extensively covered and solved, but the second requires a small addition +to the CFG: instead of having a single ``End'' node, it will be split in two +---normal and error exit---, though the ``End'' cannot be removed, as a restriction +of most slicing algorithms is that the CFG have only one sink node. Therefore all +nodes that connected to the ``End'' will now lead to ``Normal exit'', all throw +statements' true outgoing edges will connect to the ``Error exit'', and both exit +nodes will converge on the ``End'' node. + +\texttt{throw} statements in Java take a single value, a subtype of \texttt{Throwable}, +and that value is used to stop the propagation of the exception; which can be handled +as a returned value. This treatment of \texttt{throw} statements only modifies the +structure of the CFG, without altering any other algorithm, nor the basic definitions +for control and data dependencies, making it very easy to incorporate to any existing +slicing software solution that follows the general model described. + +\begin{example}[CFG of an uncaught \texttt{throw} statement] \ \\ + \begin{minipage}{0.69\linewidth} + \begin{lstlisting} + double f(int x) { + if (x < 0) + throw new RuntimeException() + return Math.sqrt(x) + } + \end{lstlisting} + By analyzing the CFG, we can see that both exits are control dependent on the \texttt{throw} + statement; data dependencies present no special case in this example. + \end{minipage} + \begin{minipage}{0.3\linewidth} + \includegraphics[width=\linewidth]{img/throw-example-cfg} + \end{minipage} +\end{example} + +\subsection{\texttt{try-catch} statement} + +The \texttt{try-catch-finally} statement is the only way to stop an exception once it's thrown, +filtering by type, or otherwise letting it propagate further up the call stack. On top of that, +\texttt{finally} helps guarantee consistency, executing in any case (even when an exception is +left uncaught, the program returns or an exception occurs in a \texttt{catch} block). The main +problem with this construct is that \texttt{catch} blocks are not always necessary, but their +absence may make the compilation fail ---because a \texttt{try} block has no \texttt{catch} or +\texttt{finally} block---, or modify the execution in unexpected ways that are not always accounted +for in slicing software. + +For the \texttt{try} block, it is normally represented as a pseudo--predicate, connected to the +first statement inside it and to the end of the first instruction after the whole \texttt{try-catch-finally} +construct. Inside the \texttt{try} there can be four distinct sources of exceptions: + +\begin{description} + \item[Method calls.] If an exception is thrown inside a method and it is not caught, it will + surface inside the \texttt{try} block. As \textit{checked} exceptions must be declared + explicitly, method declarations may be consulted to see if a method call may or may not + throw any exceptions. On this front, polymorphism and inheritance present no problem, as + inherited methods may not modify the signature ---which includes the exceptions that may + be thrown. If \textit{unchecked} exceptions are also considered, all method calls shall + be included, as any can trigger at the very least a \texttt{StackOverflowException}. + \item[\texttt{throw} statements.] The least common, but most simple, as it is treated as a + \texttt{throw} inside a method. + \item[Implicit unchecked exceptions.] If \textit{unchecked} exceptions are considered, many + common expressions may throw an exception, with the most common ones being trying to call + a method or accessing a field of a \texttt{null} object (\texttt{NullPointerException}), + accessing an invalid index on an array (\texttt{ArrayIndexOutOfBoundsException}), dividing + an integer by 0 (\texttt{ArithmeticException}), trying to cast to an incompatible type + (\texttt{ClassCastException}) and many others. On top of that, the user may create new + types that inherit from \texttt{RuntimeException}, but those may only be explicitly thrown. + Their inclusion in program slicing and therefore in the method's CFG generates extra + dependencies that make the slices produced bigger. + \item[Erorrs.] May be generated at any point in the execution of the program, but they normally + signal a situation from which it may be impossible to recover, such as an internal JVM error. + In general, most programs do not consider these to be ``catch-able''. +\end{description} + +All exception sources are treated in a similar fashion: the statement that may throw an exception +is treated as a predicate, with the true edge connected to the next instruction were the statement +to execute without raising exceptions; and the false edge connected to the \texttt{catch} node. + +\carlos{CATCH Representation doesn't matter, it is similar to a switch but checking against types. + The difference exists where there exists the possibility of not catching the exception; + which is semantically possible to define. When a \texttt{catch (Throwable e)} is declared, + it is impossible for the exception to exit the method; therefore the control dependency must + be redefined.} + +The filter for exceptions in Java's \texttt{catch} blocks is a type (or multiple types since +Java 8), with a class that encompasses all possible exceptions (\texttt{Throwable}), which acts +as a catch--all. +In the literature there exist two alternatives to represent \texttt{catch}: one mimics a static +switch statement, placing all the \texttt{catch} block headers at the same height, all pending +from the exception-throwing exception and the other mimics a dynamic switch or a chain of \texttt{if} +statements. The option chosen affects how control dependencies should be computed, as the different +structures generate different control dependencies by default. + +\begin{description} + \item[Switch representation.] There exists no relation between different \texttt{catch} blocks, + each exception--throwing statement is connected through an edge labeled false to each + of the \texttt{catch} blocks that could be entered. Each \texttt{catch} block is a + pseudo--statement, with its true edge connected to the end of the \texttt{try} and the + As an example, a \texttt{1 / 0} expression may be connected to \texttt{ArithmeticException}, + \texttt{RuntimeException}, \texttt{Exception} or \texttt{Throwable}. + If any exception may not be caught, there exists a connection to the ``Error exit'' of the method. + \item[If-else representation.] Each exception--throwing statement is connected to the first + \texttt{catch} block. Each \texttt{catch} block is represented as a predicate, with the true + edge connected to the first statement inside the \texttt{catch} block, and the false edge + to the next \texttt{catch} block, until the last one. The last one will be a pseudo--predicate + connected to the first statement after the \texttt{try} if it is a catch--all type or to the + ``Error exit'' if it isn't. +\end{description} + +\begin{example}[Catches.]\ \\ + \begin{minipage}{0.49\linewidth} + \begin{lstlisting} + try { + f(); + } catch (CheckedException e) { + } catch (UncheckedException e) { + } catch (Throwable e) { + } + \end{lstlisting} + \end{minipage} + \begin{minipage}{0.49\linewidth} + \carlos{missing figures with 4 alternatives: if-else (with catch--all and without) and switch (same two)} +% \includegraphics[0.5\linewidth]{img/catch1} +% \includegraphics[0.5\linewidth]{img/catch2} +% \includegraphics[0.5\linewidth]{img/catch3} +% \includegraphics[0.5\linewidth]{img/catch4} + \end{minipage} +\end{example} + +Regardless of the approach, when there exists a catch--all block, there is no dependency generated +from the \texttt{catch}, as all of them will lead to the next instruction. However, this means that +if no data is outputted from the \texttt{try} or \texttt{catch} block, the catches will not be picked +up by the slicing algorithm, which may alter the results unexpectedly. If this problem arises, the +simple and obvious solution would be to add artificial edges to force the inclusion of all \texttt{catch} +blocks, which adds instructions to the slice ---lowering its score when evaluating against benchmarks--- +but are completely innocuous as they just stop the exception, without running any extra instruction. + +Another alternative exists, though, but slows down the process of creating a slice from a SDG. +The \texttt{catch} block is only strictly needed if an exception that it catches may be thrown and +an instruction after the \texttt{try-catch} block should be executed; in any other case the \texttt{catch} +block is irrelevant and should not be included. However, this change requires analyzing the inclusion +of \texttt{catch} blocks after the two--pass algorithm has completed, slowing it down. In any case, each +approach trades time for accuracy and vice--versa, but the trade--off is small enough to be negligible. + +Regarding \textit{unchecked} exceptions, an extra layer of analysis should be performed to tag statements +with the possible exceptions they may throw. On top of that, methods must be analyzed and tagged +accordingly. The worst case is that of inaccessible methods, which may throw any \texttt{RuntimeException}, +but with the source code unavailable, they must be marked as capable of throwing it. This results on +a graph where each instruction is dependent on the proper execution of the previous statement; save +for simple statements that may not generate exceptions. The trade--off here is between completeness and +correctness, with the inclusion of \textit{unchecked} exceptions increasing both the completeness and the +slice size, reducing correctness. A possible solution would be to only consider user--generated exceptions +or assume that library methods may never throw an unchecked exception. A new slicing variation that +annotates methods or limits the unchecked exceptions to be considered. + +Regarding the \texttt{finally} block, most approaches treat it properly; representing it twice: once +for the case where there is no active exception and another one for the case where it executes with +an exception active. An exception could also be thrown here, but that would be represented normally. + +% vim: set noexpandtab:ts=2:sw=2:wrap diff --git a/Secciones/motivation.tex b/Secciones/motivation.tex new file mode 100644 index 0000000..067a5cc --- /dev/null +++ b/Secciones/motivation.tex @@ -0,0 +1,138 @@ +% !TEX encoding = UTF-8 +% !TEX spellcheck = en_US +% !TEX root = ../paper.tex + +\chapter{Introduction} +\label{cha:introduction} +\section{Motivation} +\label{sec:motivation} + +Program slicing~\cite{Wei81} is a debugging technique which, given a line of +code and a variable of a program, simplifies such program so that the only parts +left of it are those that affect the value of the selected variable. + +\begin{example}[Program slicing in a simple method] + If the following program is sliced on line 5 (variable \texttt{x}), the + result would be the program of the right, with the \texttt{if} block + skipped, as it doesn't affect the value of \texttt{x}. + \label{exa:program-slicing} + \begin{center} + \begin{minipage}{0.49\linewidth} + \begin{lstlisting}[stepnumber=1] +void f(int x) { + if (x < 0) + System.err.println(x); + x++; + System.out.println(x); +} + \end{lstlisting} + \end{minipage} + \begin{minipage}{0.49\linewidth} + \begin{lstlisting}[stepnumber=1] +void f(int x) { + + + x++; + System.out.println(x); +} + \end{lstlisting} + \end{minipage} + \end{center} +\end{example} + +Slices are an executable program whose execution will produce the same values +for the specified line and variable as the original program, and are used to +facilitate debugging of large and complex programs, where the data flow may not +be easily understandable. + +Though it may seem a really powerful technique, the whole Java language is not +completely covered by it, and that makes it difficult to apply in practical +settings. An area that has been investigated, yet doesn't have a definitive +solution yet is exception handling. Example~\ref{exa:program-slicing2} +demonstrates how, even using the latest developments in program +slicing~\cite{Allen03}, the sliced version doesn't include the catch block, and +therefore doesn't produce a correct slice. + +\begin{example}[Program slicing with examples] + If the following program is sliced in line 17, variable \texttt{x}, the + slice is incomplete, as it lacks the \texttt{catch} block from lines 4-6. + \label{exa:program-slicing2} + \begin{center} + \begin{minipage}{0.49\linewidth} + \begin{lstlisting}[stepnumber=1] +void f(int x) { + try { + g(x); + } catch (RuntimeException e) { + System.err.println("Error"); + } + + System.out.println("g() was ok"); + + g(x); +} + +void g(int x) { + if (x < 0) { + throw new RuntimeException(); + } + System.out.println(x); +} + \end{lstlisting} + \end{minipage} + \begin{minipage}{0.49\linewidth} + \begin{lstlisting}[stepnumber=1] +void f(int x) { + try { + g(x); + } + + + + + + g(x); +} + +void g(int x) { + if (x < 0) { + throw new RuntimeException(); + } + System.out.println(x); +} + \end{lstlisting} + \end{minipage} + \end{center} +\end{example} + +As big a problem as this one is, it doesn't occur in all cases, because of how +\texttt{catch} blocks are generally treated when slicing. Generally, two kinds +of dependencies among statements are analyzed: control (on the result of this +line may depend whether another one executes or not) and data (on the result of +this line, the inputs for another one may change). + +The problem described doesn't occur when the inside the \texttt{try} block there +exist outgoing data dependencies, but it does when there aren't, creating +problems for structures with side effects such as a write action to a file or +database, or a network request whose result isn't used outside the \texttt{try}. +As most slicing tools ignore side effects and focus exclusively on the code and +some \texttt{catch} blocks are erroneously removed, which leads to incomplete +slices, which end with an error that is normally caught. + +\section{Contributions} + +The main contribution of this paper is a complete solution for program slicing +in the presence of exception handling constructs for Java; but in the process we +will present a history of program slicing, specifically those changes that +have affected exception handling. Furthermore, we provide a summary of the +different contributions each author has made to the field. + +The rest of the paper is structured as follows: chapter~\ref{cha:background} +summarizes the theoretical background required, chapter~\ref{cha:state-art} +provides a bird's eye view of the current state of the art, +chapter~\ref{cha:solution} provides a step by step description of the problems +found with the state of the art and the solutions proposed, and +chapter~\ref{cha:conclusion} summarizes the paper and provides avenues of future +work. + +% vim: set noexpandtab:tabstop=2:shiftwidth=2:softtabstop=2:wrap diff --git a/Secciones/solution.tex b/Secciones/solution.tex new file mode 100644 index 0000000..9a05208 --- /dev/null +++ b/Secciones/solution.tex @@ -0,0 +1,113 @@ +% !TEX encoding = UTF-8 +% !TEX spellcheck = en_US +% !TEX root = ../paper.tex +\chapter{Proposed solution} +\label{cha:solution} + +This solution is an extension of Allen's\cite{AllH03}, with some modifications to solve the problem found. Before starting, we need to split all instructions in three categories: + +\begin{description} + \item[statement] non-branching instruction, e.g. an assignment or method call. + \item[predicate] conditional branch, e.g. if statements and loops. + \item[pseudo-predicate] unconditional jump, e.g. break, continue, return, goto and throw instructions. +\end{description} + +Pseudo-predicates have been previously use to model unconditional jumps with a counter-intuitive reasoning: the next statement that would be executed were the pseudo-predicate not there would be executed, therefore it is control dependent on it. Going back to the definition of control dependency, one could argue that the real control dependency is on the conditional branch that lead to the + +\begin{figure} +\centering +\begin{lstlisting} +if (a) { + return a; +} +print(a); +\end{lstlisting} +\begin{lstlisting} +if (a) { + +} +print(a); +\end{lstlisting} +\caption{Example of pseudo-predicates control dependencies} +\end{figure} + +This is the process used to build the Program Dependence Graph. + +\begin{description} + \item[Step 1 (static analysis):] Identify for each instruction the variables read and defined. Each method is annotated with the global variables that they access or modify. + \item[Step 2 (build CFGs):] Build a CFG for each method of the program. The start of all methods is a vertex labeled \textsl{enter}, which also contains the assignments for parameters and global variables used (\texttt{var = var\_in}). The \textsl{enter} node is connected to the first instruction of the method. In a similar fashion, all methods end in an \textsl{exit} vertex with the corresponding output variables. There exists one \textsl{normal exit} to which the last instruction and all return instructions are connected. If the method can throw any exceptions, there exists one \textsl{error exit} for each type of exception that may be thrown. The normal and erroneous exits are connected to the \textsl{exit} node. + + Every normal statement is connected to the subsequent one by an unlabeled edge. Predicates have two outgoing edges, labeled \textsl{true} and \textsl{false}. Pseudo-predicates also have two outgoing edges. The \textsl{true} edge is connected to the destination of the jump (\textsl{normal exit} in the case of return, the begin or end of the loop in the case of continue and break, etc.). The \textsl{false} edge is a non-executable edge, marked with a dashed line, and it is connected to the next instruction that would be executed if the pseudo-predicate was a \textsl{nop}. + + Nodes that represent a call to a method $M$ include the transfer of parameters and variables that may be read or written to, then execute the call, and finally the extraction of modified variables. Call nodes are an exception to the previous paragraph, as they can have an unlimited amount of outgoing edges. Each outgoing edge lands on a pseudo-predicate which indicates if the execution was correct or an exception was raised. The executable edge of each pseudo-predicate will lead to the next instruction to be executed, whereas the non-executable one will lead to the end of the try-catch block. All call nodes can lead to a \textsl{normal return} node, which is linked to the next instruction, and one error node for each type of exception that may be thrown. The erroneous returns are labeled \textsl{catch ExType}, and lead to the first instruction in the corresponding catch block\footnotemark. Any exception that may not be caught will lead to the erroneous exit node of the method it's in. See the example for more details. + + \footnotetext{A problem presents itself here, as some exceptions may be able to trigger different catch blocks, due to the secuential nature of catches and polymorphism in Java. A way to fix this is to make catch blocks behave as a switch.}. %TODO + + \item[Step 3 (compute dependences):] For each node in the CFG, compute the control and data dependencies. Non-executable edges are only included when computing control dependencies.\\ + \carlos{put inside definition} + A node $a$ is \textsl{control dependent} on node $b$ iff $a$ post-dominates one but not all of $b$'s successors.\\ + A node $a$ is \textsl{data dependent} on node $b$ iff $b$ defines or may define a variable $x$, $a$ uses or may use $x$, and there is an $x$-definition-free path in the CFG from $b$ to $a$.\\ + \item[Step 4 (convert each CFG into a PDG):] each node of the CFG is one node of the PDG, with two exceptions. The first are the \textsl{enter}, \textsl{exit} and method call nodes, where the variable input and output assignments are split and placed as control-dependent on their original node. The second is the \textsl{exit} node, which is to be removed (the control-dependencies from \textsl{exit} to the variable outputs is transferred to the \textsl{enter} node). Then all the dependencies computed in the previous step are drawn. + \item[Step 5 (connect PDGs to form a SDG):] each method call to $M$ must be connected to the \textsl{enter} node in $M$'s PDG, as a control dependence. Each variable input from the method call is connected to a variable input of the method definition via a data dependence. Each variable output from the method definition is connected to the variable output of the method call via a data dependence. Each method exit is connected \carlos{complete}. +\end{description} + +\begin{itemize} + \item An extra type of control dependency represented by an ``exception edge''. It will represent the need to include a \textsl{catch} clause when an exception can be thrown. It is represented with a dotted line (dashed line is for data dependency). These edges have a special characteristic: when one is traversed, only ``exception edges'' may be traversed from the new nodes included in the slice. If the same node is reached by another kind of edge, the restriction is lifted. The behavior is documented in algorithm \ref{alg:2pass}, with changes from the original algorithm are \underline{underlined}. + \item Add an extra ``exception edge'' from each ``exit with exception of type T'' node, where the type of the exception is \texttt{t} to all the corresponding ``\texttt{throw e}'', such that \texttt{e} is or inherits from \texttt{T}. + \item Add an extra ``exception edge'' from each catch statement to every statement that can throw that error. + \item The exception edges will only be placed when the method or the try-catch statement are loop-carrier\footnote{Loop-carrier, when referring to a statement, is the property that in a CFG for the complete program, the node representing the statement is part of a loop, meaning that it could be executed again once it is executed.}. +\end{itemize} + +\begin{algorithm} % generate slice +\caption{Two-pass algorithm to obtain a backward static slice with exceptions} +\label{alg:2pass} +\begin{algorithmic}[1] + \REQUIRE SDG $\mathcal{G}$ representing program P. $\mathcal{G} = \{\mathcal{S}, \mathcal{E}\}$, where $\mathcal{S}$ is a set of states (some are statements) connected by a set of edges $\mathcal{E}$. Each edge, is a triplet composed of the type of edge (control, data or \underline{exception} dependency, summary, param-in, param-out), the source and destination of the edge. + \REQUIRE A slicing criterion, composed of a statement $s \in \mathcal{S}$ and a variable $v$. + \ENSURE $\mathcal{S}' \subseteq \mathcal{S}$, representing the slice of P according to the criterion provided. + + \medskip + \COMMENT{First pass (do not traverse output parameter edges).} + \STATE{$\mathcal{S}' \Leftarrow \emptyset$ (slice), $\mathcal{Q}\Leftarrow\{s\}$ (queue), $\mathcal{S}\Leftarrow \mathcal{S} - \{s\}$ (not visited), $\mathcal{R}\Leftarrow \emptyset$ (only visited via exception edge)} + \WHILE{$\mathcal{Q} \neq \emptyset$} + \STATE{$a \in \mathcal{Q}$} \COMMENT{Select an element from $\mathcal{Q}$} + \STATE{$\mathcal{Q} \Leftarrow \mathcal{Q} - \{a\}$} + \STATE{$\mathcal{S}' \Leftarrow \mathcal{S}' + \{a\}$} + \FORALL{$\mathcal{A}$ in $\{\{type, origin, a\} \in \mathcal{E}\}$} + \IF{$type \neq$ param-out \AND ($origin \notin \mathcal{S}'$ \OR ($origin \in \mathcal{R}$ \AND $a \notin \mathcal{R}$))} \label{line:param-out} + \IF{\underline{$a \in \mathcal{R}$}} + \IF{\underline{$type =$ exception}} + \STATE{\underline{$\mathcal{Q} \Leftarrow \mathcal{Q} + \{origin\}$}} + \STATE{\underline{$\mathcal{R} \Leftarrow \mathcal{R} + \{origin\}$}} + \ENDIF + \ELSE + \STATE{$\mathcal{Q} \Leftarrow \mathcal{Q} + \{origin\}$} + \ENDIF + \ENDIF + \ENDFOR + \ENDWHILE + \\ + \medskip + \COMMENT{Second pass (very similar, do not traverse input parameter edges).} + \STATE $\mathcal{Q} \Leftarrow \mathcal{S}'$ + \WHILE{$\mathcal{Q} \neq \emptyset$} + \STATE{$a \in \mathcal{Q}$} \COMMENT{Select an element from $\mathcal{Q}$} + \STATE{$\mathcal{Q} \Leftarrow \mathcal{Q} - \{a\}$} + \STATE{$\mathcal{S}' \Leftarrow \mathcal{S}' + \{a\}$} + \FORALL{$\mathcal{A}$ in $\{\{type, origin, a\} \in \mathcal{E}\}$} + \IF{$type \neq$ param-in \AND ($origin \notin \mathcal{S}'$ \OR ($origin \in \mathcal{R}$ \AND $a \notin \mathcal{R}$))} + \IF{\underline{$a \in \mathcal{R}$}} + \IF{\underline{$type =$ exception}} + \STATE{\underline{$\mathcal{Q} \Leftarrow \mathcal{Q} + \{origin\}$}} + \STATE{\underline{$\mathcal{R} \Leftarrow \mathcal{R} + \{origin\}$}} + \ENDIF + \ELSE + \STATE{$\mathcal{Q} \Leftarrow \mathcal{Q} + \{origin\}$} + \ENDIF + \ENDIF + \ENDFOR + \ENDWHILE +\end{algorithmic} +\end{algorithm} + +% vim: set noexpandtab:ts=2:sw=2:wrap diff --git a/Secciones/state_of_the_art.tex b/Secciones/state_of_the_art.tex new file mode 100644 index 0000000..5ceec0c --- /dev/null +++ b/Secciones/state_of_the_art.tex @@ -0,0 +1,70 @@ +% !TEX encoding = UTF-8 +% !TEX spellcheck = en_US +% !TEX root = ../paper.tex +\chapter{State of the art} +\label{cha:state-art} + +Slicing was proposed\cite{Wei81} and improved until the proposal of the current system (the SDG) \carlos{(citation)}. Specifically in the context of exceptions, multiple approaches have been attempted, with varying degrees of success. There exist commercial solutions for various programming languages: \carlos{name them and link}. +In the realm of academia, there exists no definite solution. One of the most relevant initial proposal\cite{AllH03}, although not the first one\cite{SinH98,SinHR99} to target Java specifically. + +It uses the existing proposals for \textsl{return}, \textsl{goto} and other unconditional jumps to model the behavior of \textsl{throw} statements. Control flow inside \textsl{try-catch-finally} statements is simulated, both for explicit \textsl{throw} and those nested inside a method call. The base algorithm is presented, and then the proposal is detailed as changes. Unchecked exceptions are considered but regarded as ``worthless'' to include, due to the increase in size of the slices, which reduces their effectiveness as a debugging tool. This is due to the number of unchecked exceptions embedded in normal Java instructions, such as \texttt{NullException} in any instance field or method, \texttt{IndexOutOfBoundsException} in array accesses and countless others. On top of that, handling \textsl{unchecked} exceptions opens the problem of calling an API to which there is no analyzable source code, either because the module was compiled before-hand or because it is part of a distributed system. The first should not be an obstacle, as class files can be easily decompiled. The only information that may be lost is variable names and comments, which don't affect a slice's precision, only its readability. + +Chang and Jo\cite{JoC04} present an alternative to the CFG by computing exception-induced control flow separately from the traditional control flow computation, but go no further into the ramifications it entails for the PDG and the SDG. + +Jiang et al.\cite{JiaZSJ06} describes a solution specific for the exception system in C++, which differs from Java's implementation of exceptions. They reuse the idea of non-executable edges in \textsl{throw} nodes, and introduce handling \textsl{catch} nodes as a switch, each trying to catch the exception before deferring onto the next \textsl{catch} or propagating it to the calling method. Their proposal is center around the IECFG (Improved Exception Control-Flow Graph), which propagates control dependencies onto the PDG and then the SDG. Finally, in their SDG, each normal and exceptional return and their data output are connected to all \textsl{catch} statements where the data may have arrived, which is fine for the example they propose, but could be inefficient if the method has many different call nodes. + +Others\cite{PraMB11} have worked specifically on the C++ exception framework. \carlos{remove or expand}. + +Finally, Hao\cite{JieS11} introduced a Object-Oriented System Dependence Graph with exception handling (EOSDG), which represented a generic object-oriented language, with exception handling capabilities. Its broadness allows for the EOSDG to fit into both Java and C++. It uses concepts from Jiang\cite{JiaZSJ06}, such as cascading \textsl{catch} statements, while adding explicit support for virtual calls, polymorphism and inheritance. + +% TODO UNCOMPLETE + +\hrulefill +\marginnote{Alternative explanation of \cite{AllH03}, with counter example. Maybe should move the counter example backwards.} + +In her paper, Horwitz suggests treating exceptions in the following way: +\begin{itemize} + \item Statements are divided into statements, predicates (loops and conditional blocks) and pseudo-predicates (return and throw statements). Statements only have one successor in the CFG, predicates have two (one when the condition is true and another when false), pseudo-predicates have two, but the one labeled ``false'' is non-executable. The non-executable edge connects to the statement that would be executed if the unconditional jump was replaced by a ``nop''. + \item \textsl{try-catch-finally} blocks are treated differently, but it has fewer dependencies than needed. Each catch block is control-dependent on any statement that may throw the corresponding exception. The +\end{itemize} + +\begin{lstlisting}[title=Example] +void main() { + int x = 0; + while (true) { + try { + f(x); + } catch (ExceptionA e) { + x--; + } catch (ExceptionB e) { + System.err.println(x); + } catch (ExceptionC e) { + System.out.println(x); + } + System.out.println(x); + } +} + +void f(x) { + x--; + if (x > 10) + throw new ExceptionA(); + else if (x == 0) + throw new ExceptionB(); + else if (x > 0) + throw new ExceptionC(); + x++; + System.out.println(x); +} + +static class ExceptionA extends ExceptionC {} +static class ExceptionB extends Exception {} +static class ExceptionC extends Exception {} +\end{lstlisting} + +In this example we can explore all the errors found with the current state of the art. + +The first problem found is the lack of \texttt{catch} statements in the slice, as no edge is drawn from the catch. Some of the catch blocks will be included via data dependencies, but some may not be reached, though they are still necessary if the slice includes anything after a caught exception. +Therefore, an extra control dependency must be introduced, in order to always include a ``catch'' statement in the slice if the ``throw'' statement is in the slice. In the example, only the catch statement from line 20 will be included, and if ExceptionC or ExceptionB were thrown, they would not be caught. That would not be a problem if the function $f$ was not executed again, but it is, making the slice incorrect. + +% vim: set noexpandtab:ts=2:sw=2:wrap diff --git a/img/breakcfg.pdf b/img/breakcfg.pdf index fd0cc2659e4fe03be5525d1bfc68577917704401..323c21b84af2f58a5cd180018c655218a8f0bb70 100644 GIT binary patch literal 14772 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ơ__ggK0c=X7*r4*xzMQFei+c&D59+ z2r^@4<1#TbV`TwvW}NIMhMa7yVAc@}hcQ3m|J~$oQj)U^__g`#!2#J=fozDBlwu0v Gi2o1G@aAg( literal 9200 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%0ArHbh}D@CoNgrXXgAE6t25V{>-)7`Sz7c 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 diff --git a/img/breakpdg.pdf b/img/breakpdg.pdf index 3693dea8021dd4d492a6e9de5a7bbc81a6c51691..56966e8d5b9fe8bd6725ef5b1df7f56192141822 100644 GIT binary patch literal 13922 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 literal 8659 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 S&%6r*f#k>q1T+ja$^Q?dl(0eo diff --git a/img/cfgsimple2.pdf b/img/cfgsimple2.pdf index 7abdbf7a6faa3dd214d7bcf9f1e8bbc1c5f95afc..8a79181b7da88695c3c5af86699dc18e4146d874 100644 GIT binary patch literal 14070 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 i6H`+mg#Wk7pBy)5(Cf1KW8zrZ-%Ox8jolI literal 8679 zcmZ{qbwE?y|HlnLKoq1)7$prGgE0^g>F$)AFq#cUw}ga2!)PR=JEc*&1*JogP)bBf zq<$MdK3|{j^ZnhsySwu~pL@?apU?T6KhA4x8ZvUcAU+{Nw%V<-V?sdy5P*DWM<^x+ z;8%eotX*vYLKsPl5C8!1%h@`(!cmyJ1I!gJ1Ghk0!U-iL2whxJaF`>ZXIg@;Dw150 zsAaOez~V6L`t1H%2P!-yI{KhpKvBO{Q zn$-VJHzVWpSLD#W(3I_R^ue^qbaB9q+3jyFZ?>&>4_esd58eQ$?>SOZ1=j~U+=O`h zoR799FCOY2I9NlW%&{b^0#6G!Il}MMf<*Nw^qQK4M)=rMdaLG5QtCTWogXr^M#e2K z`VMxSLUEI}J<11V_^yq|#=O^Dz0`{fIA?<1tiwCITytP?=uh21H0g0eJ<91G$*oAI z`KGRxsnVszlE{{N`l=R_(xfzI-extIy0mQg7^J{^VRkUGfzC9&+ksM}-l+TZ;g3y@ z^($m1yNk_c+z~0Y&uMBMQRh1DTF{D)7-P}- znN$necekK0qg!`5Q;h^f2y88=sDdP#hf@;8Q?@lZ6C6#~GUz1m{fXqo75~60;AE z+-rehc^V2b_z>SPn(^I*Pcv-x;70_bskraA5}n(qFX@-wHt)2TNISG=dstlu%BfS8 zFwD}}FVVOqQuy|RW3YRg-0*2<+uQsw5=mCm;LxcM*0PWw;m5Hcp}V&-g!#&*g^id< z_3VU2nKZ)r2Q_0FB{lmdVX$JwQ2JWpx=@?seJ`B5;Mn&RnO6Q(_IXNIG9=t+WluuQ zCR#zXyEJp12_F$74)o8i>RzKaFcE-+q8}tIzKo%%bKLDCs?N*TIPsX5-0E=hn`|R@ zqv=XsHY>f&X!231*yCkQ3t84|9hZ3C?U?{gl{U*BKx?IB;RlHw&Igq}y%zpYh-o_m zo6SMW>Cqk%F7tP%2qbEcL@2*DGb~nkP>Xjr<6mij28Q=bu<9KOY-;%Mwknp+I1X8d z>%Qxo=MWdo(fjbcHnx`;wb$zz`G!}!Utqht2Wo@VjbGC8d&-WZ@0t@$P5-%OhG2xF zKY~FPHQOPi#F#rY;O zmW9`ESrOoha)bXaNn@;J;O@2-a4mT$toYYZwcsvDHfMRlV*l4(8nY_ zH>F;!6x$W~IZofBVeK53$Dh})^WUEtNj-nBtf0f|U+d!rH!<{mw$1HuPd)s!&o2{tG1in5#OEE!#N8Vvfx9{DJydX8>*;z) z%8kBr>aul7B zU>e^l(IS$b@D|tPfbDuCz4BMXw=2e|k*Y}r+L)L*!C1%`cpL(^t27ojRiMyTEnIyc zqGMKcPsq6lq~A-ntKzk4tc>tAmCE2B$xMX`6>4yhe@-PF+9f6Qdwlk$^I?_&4}>E1 zsbAOGr_PE>tpajxRf^RoAxdU1+XS3dwSwOQAW5`?Zi%5GcxJ(EOqG1LO4i=`qWV%w zc~jY+Y~7tu!@2P)qA{x~wCLNe^3$<*#&TuS2iDYH?7UxDK8@ha7p{nF^W3oLR?oi7bkdc zQ0%|UAM`9;`W|+lT*B0MrZ=C&T$lAp{D8COm6$c(j+ZxlVQ6iS>m-?P1 z;^iM+JLYRGuJos#ZHXPT9~c^v%1A*2*mH!`}8MZCO(H3WfmAU9bKs@*ja{&fV=sAgv+E+e(EbL)w6yyC z4@b|AlZJfJfD;sKe&TJva$%u9b5)8uzHz&cd>mtM1YS!Ly6Ut4M~G%b8T6xsw&WoS2>aMWtND zlFLP)w|S7zxXLIpHpj$MFrV*0lQCbLzvaciOTszuSg=m=52aT6`8 z?ioBe^k_o9gDGqrC)7KYWXV}k@2TN?m-wX3=1~R;Zj;T^3M!_n(}FGcxS%Cx4H2B1 z4|Fv6Y06|56tNVXay<(&#I+pkMnsY&7veR!L}rgavDb}RHL zv@Z0pRY?kM0G3RkpRVMgcI^hPPE;j5s7gkxLOQHW(!Jtd&OG4Noh?eQEu%e@8HRWdR%=9x)gM+*Ow zINmvFnL`q!IeEHS{QcnE)UWuLWqHvw!npIR~XZ2JF-_ggR zuZ!+blB*1+32lrljdD=x$~a^&N~T7!Y^+3hSHBy$`h12%63uLr$Gm zUrJ~qABjYbd|SW58a(hMYU4q_-c8`YMU{5Jk=!leKvQBxLC2IY`1 zo5<8}NvifQ^4t>(64Opy;geu_iq@Q(GB2ZirSJ9$#I2`IbjXkndast#<&n`wp-oyE zE!5GSnhgU&6lm*X!8j?|fR|#}xZN$>;VD?<1ESmBSKV(M$z5IHc<21nS8(Spk#pL( zGPHhR)=HSpt$qCI3DYt05)>^9q}>Y-!Yk&q3mU+2w&|lfc5KkZcjox$KNR~i@Plnq znEClUrYzBMrMQ>&#vA%WMZNc_RrA+w*Eq&~BA6&2Fs5i$N8k19-<*u+Z5McQrxr@!jSNKX|$Gh{( z1t$miRrT*nt2}UOlNxc$E$D|xy6;x45iw0_N`AinII`*SF+EeGoWW9o+*X;#Ch44L zc0S%PkyQrGo?QA1D%`l?wYOqPSLutcy;Jn=yc%p-b6pKIv+NE{5_UUwku|v z;h5oIggZdg(5hf1ixY9^7D#D6l!{B>V(E454b)cS%nO~ax1}` zy)V~=%NXvdO@?%=FIw!ZXmuL1M=)Jq@f`kG#2(6Sn9AAsTnvr`C3Mq1gK8)%<#>e`=&RD_E7vC`w^8Fa6VomCyqkJDSH8EbDjY)emIr_O^%;ot zwn*F-^&T#2&Tib_>G&Wxc(R<^S}$~s(wn~usqDG(fb9jnmVW_GZ&Jw{4(?mvB-iQt zGb)V`U7693ZWPp-l1cS@#0T=ZEH^CEzj;k~K_A4Husw+RC~l`h!pFYYe<;4w+3KfG zKXoj>Lj2xkpKG5ZbL2F;e0zPowUu9w>5zg}$Nwcqzt@(j_O}!6@CJq|O|@rLYbsXk z_2blzW%aSr-C7xzGO&aA`@1|eTJ7;`vJZdafqb;ab(FJn1I;^=G_+-PwObxguCOhP z@~q2ftLPJXXvegqF#C+dW0GdiOKYU7g;d)r`dZY{EidQ?CA6GRrmepa4mFdoScR!S zo@{Z87$|+U6I>mY{!`>sr%9e-^=x|6Z}}6m$k0j!qEaZeKHS>^Tw=k!CMsY31GsAN zC9PC6e|#v;+5L6*k?tzqvCgT!HrM#x&zR|s7A?k<`^bq1o{@B}>K=1RKlvfG;$pST zRWpZImEoq2HX7Nl-ra!7amAChX{xYOtSvvU`@q58ZF$1E9!VxXmyUXpiZ+%MJ02uB z-mCMLrzo66rx-zfLY0Fqy}7SeqOYK=(-lcS0iFMlf2sv2Y$JbRORE?g|33bGLT3)c zGv}y*WXmYlIT8O?g|xj&5>3h?z@zEV1!P&Ky{G&4>op}l$bpQ5194uTjzw!J?l19K zOrl=0;mSA8kJ5$OJdc;6Bu-9^Xw}j0l;=>0tKI2i%Jhq)hf1_+=C2CyiU&lpNe~@O zj$0(F?!lYNI0X+x5{W^Awb7CDmqi(_W(nan22$@so*B#5pcfWRZ>-??)EcYpw}>_B zpQR)|#xF_O(U;9JDbz630@y31(Yr_GibP^V{#u(v#IYF@%}?OjpesI12sW554N1DxA?Ox%=pi6U$~>=v@LSO ziL>Mn>uT!i>+3eR5Px!{M4eIswOejpmyfjnXVu3w!EWj0gZ@efbH_zGo4nDPSSb6*=p96=|^Jgcec$N z9+l22Qfs>1UF$rs&b?1}uY>M=_G+z)iBF*GJ00Vm!pBym2?P1gnGR{kM3ZP(TU^Qe z)v%AvdN<#AA;=bA;2X)#P^IV62MK#apZ%5NC>!MT~t9LE$l^MzK!IB?0jj-nf z%l+f&Uv9_AjVVD2KCwCLNS+W|81^kp_M?|gw=CUw1{dUUzOuraKXcBV+E}LLjmc^d z!d+<=qH}u886pvEuvT(qNp9SkQ)Z8kukgeI_F9+4JowT5*S>(n(FQhdq>WvnH)HbgREte=<%nv37o+ zlqhAv7@F$uS8}!*Oy@OrEi_88laB@RG+^I80UD%mJanyN<0bJ~cVdee>X}gVXBc5} zcP0zmDRA&JBO3!k_{{(T$`JekB9MveP zRA6WY3S|I%j-V<{HipSTold;`Qp9@C?Yp-`ZvvnW-P#Z2KA0`teMW9ETM<=prDsSqw++8#r4V$=5cl!Hdp9(N*{==SxG6*%|O@Wb3YtECCW+%z7l zcfGz(kRfIcQ@_)3+1R7~$~DU~f|G9q>|&#X+x6}K$>;Y4Hjn)&XY<<^dTu))1;iE* zR#A69?jX1Z*04r97`J z>Aps1kwts2C^GB@p;)fuxHq_1%e;kVV&J4v&eO?J!l&ZO#Huv>afGgt#`K_m(hI58 z4o^!@{E7HXOM7w-Gm|&{>QY|dwnm=hQog`(0kcFR;*Z(aLILDKx_kzO?WctCWl6nC z6b7JMU$tMz1o}|5i$AY04*Yb*Ag_I%kVl-rgR=sP^EB;S3xIsy7B2hTDW8IJfomja zRyK(-=#9)(?m6P!ASXJ7O~|#u+75a(a~ClU;OuKcF7pGPh#~j(5+hlNa*z?6rAZfO z8o#Q)r|V?!G2?+k?n!pRoK{IC z=1FUoB7`da?iGq^y*CMYW-q@sdd9;c31rSRdKR5PGgL(gaLIlOmy@<4z6UZjCo=(7 zCTE%xRT3OCvCQ`gP)drLGS3sN31o)m=066w`BEykP;|4vmZ|}dbR`4h#S|d&)yt&R zXiMuQN@-I6M9VPNWOczuAE<^-*gh&(fXoDcc>ll=<9UroFyz~OX-9w&jZ>)?PIJvv zopP5CkNE3)Uyu!M_P4hjxO1eh($rRqF6DQ;PE&L0Z|=D4Zft#z0Ag9LdYORRmeL@` zf5X4xW18$`Fv2_%uX-?*oTQSaUz=O9T}XtTL24#bjV`LeW3 zgnR9?Bay{wGnY@ETAW+-^r>wrZ-mKOF**y}<{7)OAeWSHBnTLBqG_Juw7ph6r@w~m zmIx<`YjQI+cW6lsnGiVc9P)}No)ep0BT|=AN^X(A?);6a;Yh-5a~;8S(vI&R(_lku z`#NjRo^j#lEz88%`qHjbm|=a=0o6_|UNl#!hjDB&&tR4?iBG`gtlj3AnFhH>_2&mV zeVo?TWq#z1JV3#bQGAnavYcCuGi-9f{$2jEzUC5uVlfbH*7a2C8+M`-uDLFj=`0}N z)wPPYI{_x(N%D@L6l?mS(w6To9@aKC9x+U8j2Q z%Rl|37&mj;mR(Qxk&#AwwFx!qrJP%su2Ql@a*4+ZvZM@uT-=F#L(akN*B1V@(C**C zy9mi&(F6Y{cpxl}_`S9N3n*ZThYZ}s0%hyuibP@gzy$y5l&h4S=1=Z2PuoSGTE>tO) z3;co+{lBiUMY*_2+rUu29iRgHs|*tO1&03Va7_RIP99kV1{2#NtO5M`wut)(7u(;$ zMbrAWmaaA~7bNl~0Ay6!H z`(LLJ5UUD_{Avp#i2aQn6b76L3SxTu>#e`;SOo$Uz|>&t1%gwbo%8x;X7}XjDbF#6uaN$FutT}&8c4-XH zceO<#WU!c#Lq=2p2oeDS1wbGnL17@28z{gI1akh_=zkdHZ)_+H!%Tmq^+m@ohVU0O z{10mMM8T~HfdG&oA@J`501*-b3jwSEe`!!4)|uD?fcUL}fZ%^=KoM-1|7iyVf-u4T zFHHo9nI8Ytgdt!IpZuo=5)i@!{+}8ID)KKohzNGt{?kqv4E|SNguxI@T>fbX1qou@ z_FtL+1T%$xYpy65Cc#k`|HaU@^@d}8ge*sQxSrK7{iS5O__ys9pDAx<` QLct&~Asd^lx*XyE0mL>4a{vGU diff --git a/img/legendsimple.pdf b/img/legendsimple.pdf index 20d1a7d2c5926a91da6619e39c9815a4938dc266..f1f12e26c41212e2c212917caff8b6ee3a8f24e0 100644 GIT binary patch literal 17601 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%0D6)e7(T+1_ttW6)(%W4nS^w&^Lj|HYcn$^JRk>1 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 JNk^IN{{SIoS5yE1 diff --git a/img/multiplycfg.pdf b/img/multiplycfg.pdf index c8d90c8b41024b557b470396f7c9f27ae0f630a2..080316e09936d5b1bdd7b16f3e970a3b9a4f735d 100644 GIT binary patch literal 15405 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 GK>9y;aJS6> literal 9765 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 a(=L8-oiG>VO>`lG5C}dS+kL14{{I2vXeWjM diff --git a/img/multiplysdg.pdf b/img/multiplysdg.pdf index d205eff840d9119f0239221517760b94eecda50c..e20f335aaee44fbcdd0ebcb0f9a24925e79d2d91 100644 GIT binary patch literal 18589 zcma&M1CSui8YSAcZQI85v~AnAZQHhOThlhDZQI?`#`fI*-gkH3?#6pjQHhh4Uw)Zc zQE|RgNh&8KLd!_U3`IJ4cz1YSdY?BtI1I%?z(8PYU;*{>Cjq^bv5l#d83F4zq(DF~ zVs7PR?C_mi={p$<85`Of858jEKsh=&80%X@xdCQpNXBjsBL+XcqiV&(g zbTlO?P2gB+t$BU1_&WPutKWTY-#^`N{;nLO)$e&bu3Y{6n0dUGwY}cz@nHS(?)h4O zU-n#oUZpdHmaHys6iLrLvgZ`eP0i`bHKdD_%?1a;hP3x2r^9m-ZY@Hp_&|g5j7*MX zblON~VV8{sH^NNSTSh3O;`iZr&Ch0pLMj`ijclTvBBDFtYmeT(bfWWS*Ao;*psJB!%MCtf zH|B3Ia4a+(YTTjP>4HURp*-N;QQW)695`u)42MH43E;+Pt5JZ+{*aci)eAUD4i|1z zL=GUtey1}YRL7uY*H_&^nAelU9H`4c(SH(FLoD4ZH=C^^Jzmu9VQ4}ufgkM7*7jpo zzuGo%n_^SH9@|xyV~pFeGJj}sU3sNjR`z{1Sn_T;SwA3_-eTDy)J--dSsHMf7_KRJ z25t1uOV+G_hIUYB3@jJlItv`3MegaXPiP1cvJ67sgdMSj$SvEHW4B zT8w_A*eb%#cyrOgZ2+^uA2$@9da>R1xn+cf$HuOKll z$Srgt+0T&fM&e!VXw61hYY<-d(%t4#PSDj%r-;B*CB}VX=8|G(H!hO0!TS+{qx;d| zS$~753oK@X#;gYOC_=jF&`EO6xO~Y_r)l@;q(St9U-4g2n5Eap4CqZEnP1L~;zMmg zC+g1-q|X&kAf!kVxFS)%s@gNigpnS`qGhh`F~9~NQG`Av0=9K^!RY>|Gpa!pU~%7~ z)c4pbGoq!)HBMsJ^B_-z(;)VJGPK{d1*PZC7;loOhXOkSVD9Z{W#|o%M(*m?dp#(y zh5KDkZ8JgA>t^lvam_c(Z_h>+d@hO>hAcERzX~- z`L0O4?q;B{Wez3Bo9G6lTWYC1#0r@}P!qo#9qq7*%m)Vz4vT5Yt_jG6l9iA#M-E~yyk5XTzF-ItC?`<-QS;-~o`~k#^WPZy zDPC*Ff*YWUa|<2xp>7}a@q3sOQ>TRk3L0bzIyzMehY+J7(Mm;qL=rC1n<~aA2laEZ zP2-#eiv%}ml{V(=ao!RqoQS58I!0hC%{aDjKgR!~ZKF^hzgBPcSZCjih8k=Ai9-a> z)#{8sirD=?1jqZ`(0-u|KzA7NNoNp|!52{!$y*mq^klt}BcNz{uM7zmeg8y2AQn&} z98n+82HFl4ZM0Te0o4wf`wsCy1dNoauuM*?M|e5}0!c<>o-czz>>P#C$S4_exIo+- zrhb+r@F$#X_S#X!QvI2sH%q+@JP{03vlitiq+~TgQ6p)8Pk*Eudux*GgRY1C`0f!7 z&T>DV_BzjL3_TsG?GdhnPI?dh4n5^5uY?=A+Ji2cv4KabW}%XeE{dw8fO0x;Fub zR)QP_(mi`v%~gd%`;mgvHk@6TC~~aWc3Qbu=RfN`6O0dS_cRK+UAY>X+Z(c?juPj6 zvufuC1X&%#oytP34-Fu=KSaVySSkvFE^L(EEa?P|HY>=iMgT^X+`L<$N|aLv+E`wPy*;;|2cpfVfA9>9M1HhLTkNHK zPi*F!wm@kP!rW1~1mg$P>srcrqn8AfkF+9^=K53VcO@_uMXn6^aE{cJvzK{+y6eI~ zVWrqHEMY%gZNW_7VZ<}T@hsY`C&4hu7b{`8rgf2M<~(N`jvOCo*F4{Lvq<(J55FM< zNqcN1AaNOlJ2B5*bAK6?3W&!-!XdOEfpMh81|VO*SEv5-IvpHFbiJQd?$S+4$K5v$fom|zhof?NGBn7gi z2+!8&!EBH|ol(7MtZvR89YhSzW>hQWA9{QW>vYWonP)IOHsT|nDsh1fpF#MBC-}kdqSLS%EHrn8D5Qiyk#s8oj%m{CJF#FxxmzK{xed!xEltz!F5GT{}elgiS{&w>M zh*3<9TxiXiiz?Oqb>jexm(7nK#1l(8DDnlrM=a?Kl_P!^8Z^}xRi#+=qU?~MNf9r? z<&ElrxPodZ5{8lurb;zeu}{)J5J`e$(mW0*y!va;8BGxzXbxm|4zFmOD3D0cgEeW^ z%TAxjKf!0zfhLb9wCofaMMdvg2;NwDuPwvnC#s(YR2%w614~-RpANS)<`0|KxdJ_( z!k8zsAmE7oX`?($)qDSPMlC;VW^9xv;dU&|wGrvJ>~lS>q4~zdp9V++i9k7l@n*X4 zcP<++N$-ynvbm#$p*al)?lL$6qAIR@84`y82>lh|2^vBo!{Sb!VkJkk9B|7-4bOsT zDnN2l^G(#xNed(*5ZR*#v*nB`a52HFBzW8@BhXEyYWqwCg*?amHQ{WebiHiu=S&U`w5uV8#H?++(L>bod)9iwr{Wt&v7Gil|3zt&uDOqb!p@ z7s&{Vk^<^)DV#38_4^{SYL`rh_5^@G zWmra;8DqK@3`e*Z3qIOC4rbc#+hD9Waw8-q&{?GnY&4K@AsK#Iz_D<+FmT)reWbl& zBo2Zw#ZA~Vc6$Nn^=SZxvY7?cirBH8U`R7j=!8LZ%B&KE(*zYdQXdfRArv%Nm~zzVYq52#?jhH;_DayDySYOf2;(_+n~ zscg;>3*Jm(_zgXML8$D|$tep8n9K5jUBNaRU)<+zOKVMIKH&CPYNb^ff?cW!!jX~| zEONz8RzmN9jtXpAuou ztKwKiz5ke-)ARnL$Z6YzWkjoL!=JhZPp&8>iW#pcG|Mx^qA8E^zyaB@7iY|us*%pj zLnOhy5a0+t#LbJ{!SAYAaNEC343^&ELmeN-Bu20y4Rx3OV6f=3j0heKBT7i2NR-Ax zQnK&u%=XB@%|+I+)PN41kCguX$1KrWNyxl) ziAEf+yZC8vPvH|k_ia zEIO5#fSFDID2#4W?1W9!C;i(eyYa+d%(hnjJi%$!8AoIwQ>sX855(VQ_at*80BD;@ zpB~v41*2K>ch0>RmZ`)$iUkCgj>y(x7CTH9wV#()ZMte3oGL zXQ0*)S8McLS&%bJl%jq-;Qg}W47}gR+$Z%i^`UWz4@xmW?U>xdl6GX!z!m-UO$Meq zMDu04F*Frb($htZA)?Ev1O?(WsedqRLKtpv((yNt*Q!VZN+uCu1=?5y%o=voe!_T` zouj|p?S-H(coiAW_;X<*8O#^`a1CUAhY40PLD2mbEXT^QpDfh*V527FB|A?(&HkYE zgFsb`%bOr*z@sEFkMx&mVMhjsZcY7ak2wxP)gbfdP*G`jzNS%9KEpz!Qh6P1$wbN~ z$*OWOCjxYLp_(#w96kjHB!C!xltU;gX9k`q0FCn^xS8%2zqCxxjG0ABBO3W{7D_#A z-0p#j2$1Yda8UF|`>D++5Y~z?EG#u6c8EzYzoD^_CIqpW14$a2W}7QykOdFYfeK3C zDzmtLHMIv3k`-0JHidK;7=LzFEM=Sp2FO|{3h$qOnoNUZF#(D^U4XdjEir~GtRz!O zUhgF?StRH~1S4`QDc7Dmq^yjjAh%)D8u0NZ*!zhi>LUd*W3r??!D^X8)-Gw3!0Ql# z>1EYq24Sr>S;95JjJcrm0mFz3HEQ_BPJ24IpbP%JTkOk)PIc+h_+=avc%cTWYiolb zZ36L>q<8K>Z!_i!Sp@KKw;uj$RfVRxIY{ANiUgJuELokuHTNeY95E{8HH#N%-^$tK z=PIx(i8gD?%s3H=y?%}dO@qb79Uvv&dyJY{Xix$C2qT`-UPCO2uQg>GY*kw_UUwby zqM%>^bY&<89zjlEn@ehg1n`b6BV*q9%?X)u`p_+=*eK|})vvxCVvA2#IMCcB5i9jAK@P zEr8Qoshg;%%(|$pI2i7*T%zHc43Mlqu*0F#aL=cAZzIXNKkt<#fkfJ`qHP&5N@lkZ zAtF#>udp857OEx#S^t*;T{TI&brNJg2kV%dVmB)}D09gOFNyzc$@T~SC?Iw|l(CJ` zzeSwy(qHZ8ui*1HXJKXL_}luo%=AC$LQ3v-#su_o`lkO%9gJ<92$=uTh!l(+ZJiwq zjU5Tt{s9DSZJfT_9SQ#GO5Y-qw6T%7zJRS8fhNN@z|P1)z{1X^4fU-f{d=6h{r;mr z$vM~>DjGWxXnqeSBtk&1WbEcdpiMw8XlrHbplGLWXiV@|rV?~yBw+uSc^;l`dFp$_ zf5A#hj07Bi;cx4Ig{prK!1+H7@Na>O@vkr6&dGdFgP#Ad%4PE{aS_l98M~Mp8Y_qj z{QnTYQe2f3SJ6Uey4kyDk%$OLAFw*c<<&;PcIW2ZhX9=^E2vPr|Fd= zb6ooJjVEFkBmo0}5?*Bc=|hHo2$ZDQIE2ac1v37SOvx0&$b^;;Sx`l^KUiz^Sb9X= zIhK}6c94&yK8@MMk`vV_x0OM@@+v9VkH4R@OaUh?P#l;2sP) zbmYZ_l_OxTB^~t%`&({+?Rakp=TrK`)td@e2|BMou{bKTvG8F@X^EuJWtCH z6T;X2FHZBRu>qQ_++XOo!6(Y{CrOY&;bxt|KmFC>=!~F(d>40pG1$n#F@3TvQOulm z0lb4b<=Vu-M{T(Q1c`x3Y0> zVPcIONDF8%3%7%;`hbw)z@74-Sp4Z2fN1n!ar~I=fVT($g8ak~fK!0!#DL8CKpOaY zRsf**8CL*Z0xj$S7W_SCL1Y5h?7*}@RDZ$RLBsfo@)tETdm{5fe`JV*b#C=%>qaNwZ1FShQRZgSYM(>Ud8JI$%dF2O*^Qf7ptdPms$_JqJP1K12^&u za}USPrwv1k$%eHCq!oTSs?+a$0Ctz`)~$Ba4$`{8MZ#x!$xR*Q* zQUk;?0G=>~fW(SK2>}b@7~&%cv7bfWzf9JNCgbLxHS{#bQlWxQqbd8#L=Y|?V7YpO0?F1aqD zuf%7`dmE5^A77uMe_@?UzQ}G82lR#%m0?qU=R)zY|Y~9`H}PA0UlMjWrJ`4si~#4jac6!1@{V zo|zRei=z^wI-_FmS&rIg_Gi}FYRz@Nx+s%hsBEabl8KT{k^z%rE2NZd7f}|oE37MI z7Z@zaEc7i_E#4OCDx+sgXIyh;vUOR$4&Fo0>N>(b+FmXG44iSFC1Pb@^o6pzUrj2RkTyng=2zETmeS7g6m3>=R~wc! zs+ktbG)^OHC(voK^S5fXD!K~DO46&*>(Q(5T`9clN9jO+XjkbxVOLIx1NPA9$uTH5Bs%G7E zR`)uvHke_lZRkA`VzF=7I9;-N)LdOoyY13@>CKg)UAKwWDbqRg2=_?zM)t-C&K>F& z+70)#;^acn8RWf)cz&|mHhmkl4^Hk$UjJLXbURypnsOR;x)2%${RVx37QE zRyAI=wl(3&;M(H4l;;OeI8QVWa*s<-r8oVv{s+*9%j@R-^3Cz<@|!FO2S^p<2~-h? z2#5+e4>S`b5~wrCKp$XVX8=C^ye^5>0veFOyP!+(Pe@i6ZPZss3_2Q?DzXdrHf1*- zH&+l^17RV-!A`N*(fLu)$Y?Z4G*^)^(IMeQQE6dM;Z$MCR5cp)#siTkjVOW=ZZv#s zR8JBYhw`WSP07&xi#@3QD>`Pal*WrShvvibiJ6)>-9B}DDm-j_+--!faOD2-L#dhv z-FDYQkmbbA(6@x+Vd~@PTkU7#_jr)hpoXA1q0~X`a6|DLaa8erAX)zA9p?t!JO6|7 zq`0I)O6Kyp@+tG6rst;L0;Kv8b=2C-+~nQ#11yCMf*s@Li&x6X1$=YyQWTErCY@<9 zpHhFsqDV4H1J$7$EgH5=MU8XE=;Fh)hHqV{h9;Y%R#=$=CJhnKfP?4GXjj$nSR3 zPHVzh4OyXDU2d8*R$Hv666wtSF__qk*pnsQNI2hC_f~z`oO}$r>@I#ReskS%fpFc} zJngtwOE*y0S)Hxf(XKw6yeqhC?Nq(!QPJ15*Mm2YHHvLwDr@MLsI?GXEIlha^T&$K zIO;z0Y`x508(ClO-M04q4HykP1kQtpg45+Y`Xpyr&2K%Vzp-02FmqmT*3oO~tLrOt zDRvt_BN{APJklTQyvVh%%wEQx#MU33FkHWHKVti_^GDDVx$;zwxv>2igoBXtc5mbv z|2hZe=c;>zcf~3BNA6?GtVV=J{?f)$cuNtRxu=xp_Nm|RY}{#FTHeeruZO6|^o+)F zQ^}e5Y1FJt&RkcYJAvWg+sJVA&>yN!JRMC3^Vv0ZHCq$@skJ({?GEMZ-EZ&8sg$Z`vv4svQ#-0ywx9z&&wv|-47Re%X%}7 zVWzPmZG!Y)$uG6C1E4eIGt?qYB4?u2qBBu1QJWt14?{N-QK`T8gL^4ITb`2VDsz2Y z-?~i=#s+UJ=g!l4CAP|XIA50@t&fdP4t~3uUze0dY*qH~KKg&;zZpJ^#GhWsKFcQO zM)SIQLB8L)ky)D@Z9fIwzy0sD`(HHlUtF7wk?B8l^)Ipgi+yuoaX~==eMe&>g1;12 zfk68|kNoA{|DnwPrRI+RH?sYgKRbVOWJUsdNpmB|Z+88c+ke~ppGYzzu#rThN^ujjZKb*~NzQ>o=H~iP5|3yU19UPqm&Ga1z zn3=x+TI>J2!pQVJMOAYnC$oP|l9d7KFVFw)#mvl1@b_jQU}a+=U}9zXSM6{9jWGNt z{ipQbUjHgV{q6Dh{(s^B*E%cf-@xYoa6$cJpM~W=w*FK4i!-tRUDkhc_V4mv>_7KE z-ZFD={_Cl4^m}&fOicez`~R|?|9kZIcLV;r%>OLAjK1}E)boGb6f1qx?>+xs-M{?= zz5_TYO9vZx5V6#-^SF+_}g)Men-Q<;UW9?qJD={ z|5RxIE-}5JzMYt{xv7~G6dT*OT}3BjYZU@UhVP=e_qZ1M121aNB^lZ{&k+2?c2)# z#}S8aPe?bV#g7wC*KF_H$(&Ut=JZLU6e$z3#6M)|L2(EW2n2|M;Rr_YxQg=pO;iZ= za#a*&)J;px$%HhpOTndWP4i1FHq9$bXid#Wwr}+F%K|1_*Bg*ZZ!cTR*WTBjj*c^T zT*o=JhqX{&D;C6Ct4~DCZ|g2j#{96ifE32gVaB)?M{#%Q*q>Dd)>HITp**d304+ z9rhMJPGDy>i-MIQkstf;{5mZzQz6lc&T06tHQKyC7xAA62fImxN10uy1u(Eu<70|; zgw7E{ABiXn;=pQt1U>UQ&=Z1bh;zNyC=i{qp1sc0sSqvo{;rdo^ksdLC**ZI)j9N0 z#{ih0_z<7Y|LK=Re++&fIR2rkF?dX1A5-XNh65@Ppz+$MQ*|{YZ3}Wc(5+^svKKka zO;$q3xEMy+j}FQyLf4f!(#iRrdZdn`zF&$0dnz7L#TE)p0bYzw0Xch)kOapcEQ zKvt|t3Bo=`YKETV%I{7+BtXaiQv*1T6+r!OqCd+jckYi_!XG{PL$YcpZwaJ1 zO)awDO1?~ZC?hc;Niix4@!F+(lyfW zbMPKt9A8453Ftdvs`7_P#x>_X3=9`5J0XS1{i5Uzv&WlTZH<|!|LGsK+i zXxQy@GL07;j25tu5zBeMK0@iW;m-JD#GR078sMODv<;*IK45=A(Qx{yFb8QKKz$aLBFTl=kR}+iY{}RqMByp zpo(6E@etdb+XghO?pnqC$byaLwO=yUCpVmiarc^3*UsvqBC?_1;uydTxMUp3M(wsQ z1uq#CD0bX(erJ9E$umX%f^mK9?L~RL1B;X`L@Y0kf|M>qv`Z2N@~mQjLH{lTfjFeM z!$Pu;k-%i24m|JAA0ie(L6h&-JZ!%^jnh+VR5Z3xWVv9n)~K5R6Y;Ch>SV$vW@D?S z-MgI}_oJOkfr8_;(_yT=rt(c@C-$bjj&9SYJ3>BMeY+f^D3 zIotsPxCBX_Br(Z{cW5Qj?5i&cJI-4rwkx5F~``C1RdatyU&b?33< zQAa3DOU$Hm>hnhL)S^hnHIZX;eEZs{mMf%dxMTcgD{bz2!>*(cwr!jKTnKC=LMNiU z6}rPO>ym3xk02;tKTn{m*n8R?Kt9dS_WpGz%F#)A2gR2Xj{{McCQNRCM$kurQ?+q~@p%o8dnD5G=ApRmyd=@fw~yI@KozWxeju-?$z@Um6{mU*^ZuRk0H z6lYL$K-8ePgNNrp>jvN!{9g5vvdwgNQGWP+hVfA2(0D~5oyeTrs_Z^dK;ccv#2HiH z^`%kIYG{dD(^v^cGi(E&U_M}LDVPa~C`F&iqiKU*^;0!rZ30@)w{A7v~$;Gvd@a1)T%}5{;Ea02rdi;n!FTd zEfco#h44nk71}1_;;-#@Mw8xYcLTgEu7n;JP~IhaPz7EBSqQEPAy>)Q)FX$_OPxEn z`#>|H9ijXQUpu6EOW~7jk^cu~W}0RLt}+Rr2YV+2^n4qDdNcY87>6gO2Yy-dB-PKI z@=;-GLFMdcbup+38<#>`vt8MZ*RClaB3e1Xm$uy$ANE|d8P^)%+iGA;A^Kb=UuAEe z_@p5$TOU@;-qUR^rI2|!LDZw62Q0S)z5&8L!adLWsLcd#2CrsYjh*i9pZ>3)O~oDC zXTLl1HVeHNG8XJ9;SV#&9gpHs{I^*`CyZ=>jqczr!Rtctq>3fRLS&cFq>GyOIhh0^j?GwRE{iBpd5uq{bmDc!qNS5(uX8SLT6%4M}?3wg-81{bd ze%xKvyY1s`K|{a&QhnLnFIthzvhD@mIW!Bb(N#;mdmkxh08+Mn;%CHP3$Am51o(?P zk-31=C~`P-m|CsCaMU{j0>7@Q?>#o?Ov?vs8Z{w`t4{N#8NP4D#7HPS!2#->IQsQvLGxYeUL-okABW_fLUV(jv_EWnKn>;eC+Dc` zSBU;e)>qA3PJR<#I>#DOow^FV<5surrDi8g=^VPVsjmuZScipgTbrC{sKLQ=YCc>O zO^I%SHK87O4gy$7R1Wdy1i*G+vV&`evj%hY(-4ns$y&^`o>1?S3t?MZW@{o@X6~$| zwRG%!qaNVg=veWzhI7|+IGbJAKj4&G@8R@ja5Z-0RC~nf(5xTqJh-w4)aDYC5LA6S zJjwsWVHG=?4RIi|Wi#zK&3e&YoG5O|&b6GB?|IDMoqNn;aAPOPRst8dHX~o?2uq%l zcYS<1yveTPXn?T49MVRC&9t=(rY8T>;+7g+g8`CN$mwmU(nqBchjVs{-3WnJuYk#; zzol>tR+Lp{Rbxfwp1s~xoaXzmNc4_QE^f2saON84I@KP4E_L)M6KZ^<6*(l{Rkwtd z0JEGoH^l14^Zdtfy;@yUX7mwQ!f#0C@!?Pg$o0>YApOezf&}4q z*T&E0BZ#W@2B5XVA^Bh6n^1xeu`vmZ$B*ut?TLkjE%HRjL$4enUvLN|0Q+H1gjGy2 zt&hJNpdfNnavZPZkJ(Mlo!J+;Z`h5EltVN|u%*?*?{EvkfL)O`8|?H>3B>@Ixg z56Q_sfCH>`M=X7IM_>3Mmb{_*kIDxneC+bF1;TcvX|)AlWxc?Mc%w6XQH6n>fLA{A zV68E$enIp8BQVizbdK zpg2(6@y_UOA_)Rs`(uH0fn(x+ZSVX-Laq(YDjn^aEmeyjFkkR}Rs6L5Q2|hsV-YwD z=c7@C?8wdJx2y`ZMIvBg1o$-zM#|-uG#DDpOx@O!_q(pxr3=J2T0!pZlwng8U(bap zwn2BFXoLRQ!>7}zut}*yb&1YX`V;mAbjapVL^(IYjr;r9$u)RyT8MTFUh$1nO5lxJ z9dSsm3^C?}RH^wm)#39ghC0bSZ|C}PnqYqV@p&itxv2%+f~zIjxxC_sQTNeLl3O)_ z^Chqymqy}!^sh0OkNXvlk8?>LHA<1lyC((972~>Aw!RuUrY41gS>`AKam!?n?lB|d zoD?TB+8-YrDfsrj%^dPi2QTT?1FP`ziivcIeHz+eOb^6Uv3rc!JjrbKKT8+WoXEED z^O_>JR$iMv_0~&9FSgZfw^;e<```O4H#ONmn0y(0Ps86kpE}NaLUHXT32Vqf&(p!q z8S`ZNNQ>(<1{`lhClu=r8n zr3`{AoF=It=K-A}CCW%jXRflI$ACJ&e*A7(nD+VoT7Aho5_yj<(o%J1*Jj&xs@?Vd zJvH>I?X;!&(tWuGtikeoDPeRV5jF3Nd75kBAl@9ANU9_9z(3jx+a_fHJXPQgCKm`TzD45Vvbk}@uZyu!Nke$qjhWXt9cncGn9 z>66oY@2gT}DFC=gp91*gSux?3N#V?%XVCDeF?I@cSxe^xz0JprS&$z;wkaNeUGJcN7?skX%vu@`A3&Oh=QD z5kGwVu!xk~ET6tB>Iux+rk|?e)vpZP`+|JA#Zs=E=a=hy*WG1s)8T4MI&Z!H)*Vt= zul+vK(?9d@v0cqy@$c9#nZzFv@40@o0PG*Zz4OEuP+_ar$Y-URXm=>ODhg-^%wFid z0lI{%gWELj{dW@S8wYHe(qV9hu_ESd@*bdn)a7m{Hpz?CsG`sKXRHwx*w{L_%ND9= zj8*Y&48I)p0QT)3~RJvpgF|#qz!ifMJ)O*n#_55>xAw3ELVn_{k0Q zqLjo7sFJJTp1X6X1D@S!00bl;8VOwGe{AzCH92~E?06Te3*usYz5Y7e5}Q~5+^X@8 zZ3aDpS*jWDP5wGK8nW5`eV(h?=$)MwltW7-4(dVH6>| zH2$Wb0`-UidzSI&273`1b<)v(NgkJ0dIIJEqWU~CW{lK(g#@EtGhjpMFe6&EAu6TygnhU6Jdu_p1>$@6aci$NgGQi>v`rO@bKnCq5a+d$ z@L(QTQ~@W7#IyUTeN7)f7Dm|Ou>~R7Ud}rAy(;zlBY+#Zrz6OF_eSTvccCUT`DRR5 zr79uyMOiaQc2+MYJ=Q?5PA#=o9h80xRnkgoMfW2@^SIp5RS7YzA7vhkJ?>?br3w;M zM)!7gT2%Y}lRpoZejFq2q6jNW2}!%GTblt~oEytT8~Ex;5CUJ9AbZ$?06!rO9SssS zI_SiX&gfum%WwMpuD5h`7P{tTq3+lzm2K&*y5k~2O}?#os=eOCiG;=XE}(sDJ+664 z@0jdYV*5p%8!B>q(P2E5Fnv;>tQ?+?jrVS@na;(#e;A7PG*vOiQls9IcRd_OtzF`|YT$o`0h!e-PRka@{XgDHT}7`u=F;1TLbirUy6 zF3aEsw3&A&=cAj$~B~~?koU0@eLmI(`5z{rMzD6AN3-8&lCV>xns;4^9k@%fQKoenS)96iZP9bqr=1q2akuS70#Top9oQ{#Z1O0yN#*#EIKxbUaRt zaT(8S_jtJmvOo8^=6sC#cHeY+q(bphwGOc>&CB*U9mLw!;Hhl9(zWD1BhqE^WMwpx zY_VsbSn%y}awNv)?+b`)LVkuqN=mCBml;SeU>0^sySP!i$(P;FN{`|>CaY&&6w}$3 zjo~@FA6_$ZGj)2o&SFD>cB{}%ff_^&mx=g`5aUPwkTf>lDg*sV>(nKI3?Yn(B_jZ* zIs|C@C+M;--LI|)?xz{IBV{cIvO6DYwVjfB;1Te6U zpXqXOU-)7GI`-?+$!;TrSy4n%0u!eSGTiP*Nr&c7J<0c%ZRnbXP)N@ zzRcy?YWX-lR4a2%5~^Q?IMb!zAib*jHVP}=HB7Y=-v_-sq+IUtIw#8InO$-Zc%W9@ zb<=4GEI?D=dDwQGx@+Zg{n&3m%P`2L{Jsxu+ghBVWz$B7Ax)Y7LO_u3yW%4db}t&5 zLd^~{%CO3UAYVP)|FbJ6C`h5z>uemYgqw(6DG<7Lfkeff)Y?!!3|9ZAKqaLMuy@-E zl8LI6YG3XqVXWd$^T7a2fi59Y5cejKJ?)^5h)^q0=a{m}-aO@&p~a!gkWF?FBS2Cb}ag1&)qhVamKi&uNM^E=tToCc*%it2MlR90$^%AENH^Nwuh z(-J4+O77>MUckHjKxX`072tF^yZRRK-X)b)RZBWocO{t@&UDug8lJ5am3H;qb;aCg zOQ$VO4BdswVx?3QR$wXeO;Zb%m1|hi%F!~V;!`shHMP(w6CMz^2U`thMyiL{$x5P! z964kZ>%mGt*19C!1oM7?_`T<4&w-bSsv}Z2La0nzh)l=Ar1?M9qCn(~!q3}G1%*(= zPxR*n=KYEI86>au47`PhFwO3r4uTLB*h4|oNr56vghF_g zzI4Y|JXdxG5misq?DiCOj-@p`{lFRtUy>#5cn1qTFS7k-Du6z@{YP$B$=Z(2DuY7$ z#f)iH*H*os0T(gMIV*J|(_%~I+Sbi-Wmv;yzQf=cG%`T}E*yYWth)8Jd3b^GDtAAjo$eqsg3MuoBkdJtu_%*Cu*8WgNDM;4QOOQCc=M+a*w3K=R{%@O;(!iKEZbM%CDyU( zK)#COz)BY8j2~_KgQ#>xVrCS9-%5;8UVoJ9pl-B=mDbketY%iX_poK=vUjVb=`Qbx zLt4Mkc@5J^>%eMR{ZUL(l|M`pzs|mn05|DMs=Yv{+oZEpi^$FBt=UM*@+u^jSp`gF zsi5=X>xFofr^}JLMC`8>n-MSX&hRD$XOT_zA~TeX^Jh#y8uMVasvgX$lk1`*jMt1( zkIVvfbloVKt{}7^L7OoF{Rzw0RW%U?27i$q7Q?_q=?zu&NQ`X#U|5YJ;eq$f3m*58 zz>uP)jzedN2@p}a#03gI@#=skh{9gG@Z2gTvtY9^FyyzK{v1@+>K)BnlHa4-`CcXj zb}reh^^S;c#{PMcyza^Hh1cBf->%SkUax;Y&E4*r6U(sm|G*2m?*aKi`cPU# z`J^+!vz^#;4K@wN11)C6!!~HbqxmR%U&Z6K+DB zA;utoxq6tEaih9)xX#w8-sn3Ia4ZB7^e^t4S@Pi&Y~NZd8upb`=edVgLaUC-zEcWu#z zKkcNV%@|^~<_lD?Pq4&3(3^*WSgtKE9%CQ1D&*xs#L`kr$?*c=MHW&?LECW8?;}x_ zO;V&%rckqwu~W8C8}W-z;(c+3k^W?k>Gc5_*CX5rSX0z*(e$BPxv;53c9C7nvmmi1 zY?TQ&LJG?#s4>b8r^1~fqdHKwp#EIYs8d*S5qCt50JY1*>L2cf#6nT4L+?ql0oW{V#KpU3rahy3}X^Px>6J(a%!NEFN)|6U#J^}A|a8z ztauazqQRUgVN3>ktz9P2<$4F25^Ht0`@X;Qm?r5DSkt3yFxh?BOYTC~E@wB@4`8a` zm}Ud~8qMuG7aPeTsoYtI<^JZ*3FEu>+z zUw=8mMT5*xCb@J4c=FNB26L}M4Z6{dJEr`F=$}dpdd$#kb%0t6zfG%Z)n{0;m@LU; zvqK7wti|MhAB<+I+*>Y{{7(Es@U6cAnk=6bmm1(B%f8z|gf%084W#seL`I2<%PLAZ zdaBPG(w1+fVU;sf8>pAJSL@R(@BWR(_{CCi~?7N-o!iy7L+^v%>45SN^Ag?@p%f9r!MW`JA>8*F zK1ZI$Bd4xfl`{(ULl$#r)@L|SGQKtH4hTJrhht8`E-g3`kT49-ZO^|5yGd@XtbfPG z?H!h+iiQYErV~gU-)8m=%{0^d^R?2>(o3bIqi=0QVKu{jndT(tl=Adf?)-MfMh5J3 zSyNDX!xhGP4oU;$T8#>J5gw(hol9O%y*~TU(@IkpuFkohlKgYf2bMR&V*f~?>x;WD zjp5`9)0GB1`Qff5ck>`YbUHWxj4I4Ji~`41DX>(A#BcMEN(l|a`luQvlg9N6@yb33 z$rLfBAHbCMj?T(0BoAd(S(W#08#&`@4dYtQf=D0*-~c>606WtB^MHy0qy&6U(n4&A!tiQqmB(XaDKFyfw)PwjWSMYE^L%o@ zz=s;4sJ>J-P>0TmZ}V1LKPga|Fpv8jY7moWy zhq_H=mMjW6Gx1gN_sU;;lvQuf$bD1zyYTqwJMF+Jg!>EMUGOnBT$yrf_7qQx$VtYY zDVtI{FG@T~$eyE_p~Jsy?}S5hz0^}P*BdUL%xb(#rR4VM+UeHk_MSCdw&L9BgLA(v zyL@uN^^_@vlU7Boxpr}DS?{(!w>ipDuF-G5MakL@kc^VI0N|5<(Vw}83IaSxB{ zcG}$zj+it7)(Dr{No6PQb-p@b&E2uVpNom=V%|})( zep{v{^`pA(?HP{L?ZHzbm*tstJ zMEpee>8{y#s;SZ;d*oAuJj==6$xxsesSbETKN$YMs9{=1%Op^|j;kk4RrA`Sy_|dvFOtN%~@hSK2f2^K@bF%rmTkHKhHe7gc zUi-n^=~Dl`J8-ARKY6>E`_XcdtVVr)>m&N_(+;YC*nCmuhh3gr&E#zkf3_7W)^K{5 zEaS`j^!UV2|MdL#e=^@Ly!Ui8 zWvyRk32@<-M!F_&onKLYN@+6i#21a+#AN?qg|O73;>`R!;2JGGLsLCNg%}N|(#)I` z1w%_G3yT;{g}~CpqLL~F;7%Rzrk{!uO)hOcfk=bN7bQo@B>31X>NMNw)Ra2cGT zDVG5pD43a=8k;JlDL}*w%`J_9>nA}#ArC5MU}6SbYKA6eZe|4B2ZgH6zyP?w4o%F& z%oszjiMc6o;U219b5l#;Qa&^>Eb2@wOfl>=H#Ng>v$?qeh8-4$=D^5AwZp>12;F_a zFhJH@Qj`c>IadTe@+Ua6Dis)h3i?6$`M@QjprjE5T-2ABmJeJn3SqkdSB%W;)L7IUvFz!;#49zXfjqJDxD}k&yEiM5j8*s!KS^$mXQdM>JcjE#8 D9YK8v literal 12302 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 literal 8780 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 CrtWV5 literal 9506 zcma)C2UrtJ*A@_zUZhD42uLRZLhl{vy_W!?2?0XyN)a$1O^_x^M?mQyy(ztjfb=Fv zl_I_SCwRS|_rKr&JpXPsoAb`uJ!j6$?o7@*%$jlvTp(^R4s-R^yK@|V01)6}<%lCD z2H;VJ!t6Zk0bnGgjRODxcoZC*JfLvo*$LtSm4jNl*g$b4Byik4;82J&j!(v0L$z2M zFj3QS>Dp5CClRmH^BWOKMA}RQaZSv`PoD&2y}ZG|y1V0B+B-XvJ}G@KOf$u+wvT(< z|FEbLa&)r8vJedF4G>aq(J-ICJej>%PI@(e1qwgqn-l-oVv)bfW4Cj0u}^w&amgtx zG(VkjkugHkck$!!!f7HnKy-dijX`*)DVP7qC?cVuuPNDdg~W8-Oy>PP*l=J{hEI_u{kw71nW&#lO8%yz8cN6b6kCL?~o8=Cb*GEj0+a@fhw9!7;;Igitw|gi;PgKpT1_@GZzI-xiF^X7pvlzwXONO1Ah1x3okx zjPE06C32nBgZG)2d5&Up%!)&Bt9tx8EA0IaZw66#worUfc+{M7mANNh@ty>YQFw$1 zP1(u;%@^}-ZN9Eqall5Q_xjDWFjC{r@kM^C*Hbc$q? zBDrCVRe(-{kX|o$Q0p!mn1nitkZVM)E!jlY)fMta(4t)ufXv; zqQahGg3m5h@USn3Bts#8UAcZ(=izDcWO>TM+KaH5z{%&n{^g^mP=2{U@JFq2`D*g$ zEf(5$&3LGY>SQf%BASY>O3wiel9FbHSFu{?dN+&&3^sLcL>L~VrpX9|gq+L`kKMR1 zBxy7F$Z|v>#a&1awjbNg2ILee$4n8P${fbZn~vZ-Hg))DDN%W^UxfnA4x_RIbx^4(TlnW`tu3_)bRBA`l%BU;6Xc=aF=kRA7qAA2Jl;845Q( z)<1_7eFl+#+=ooUDl`y09Zs9;hv1T`@H9@|pLv91U8TvjZWQD}nU>N+H>kpF^fn4# zGL?0u+Z1-$hTlwcm~7JH>@8TZY-M9JsSc9Xmbr;=mox0B`Q&}jEO)0#qs_)K&&DiV z-cdDE0gRSTTTdNE{*Xd7R1O4br81%BUg=GED)(R={f7`W^Xr>rzD!wI2MZeUtMWTdD-FMcXL)X*d#ebs4v? zKJ-q=kyShqBi&Oeo>mqc>?RrFU(n3Y9S z0)%|sa?^22`dLw2RGO8<22F1%e7}GD2+{)y(c)4Pau@R851T5~^GsQi>T;9)k^{+L zO&Y!Q`H>mLnAfPLkNYgGcdF(d(Mnm3?cBHoM}c zPCY4yHPqwS&ekPAhVx3}p+u$0&7Mw4uJvyiw?>MhNRP1ti|?zIqfLG4&KI2A0-MU< z_uz+jqN63mS2ZYWP3vIi;~f_f_uK&wBSKfUQ)xB(SoA~Sy)DHwYBpruuLXCPQ%SN_ zmtNT<91Of|QwWg4%3A%%@>r1K_Far5S5gr3f<){q)^LWnLKd~@%@2}mN;+x~ z3!m6P#ZAmu6ChpY^sKt1>dza-1m`L(5N$Vhz1D>gHZ}7k?-%J z{Ce<~_wi8F@jwpT05LHXfZTW>K%@ZRk(CC306f+Z2 zLO=k&Fh78gj~8Hetu2eRi&S?9pk^b#rXGrL7f;teeEDVL8vR`v9i(MA1m^CFvSsc2 z8&(E*z&)YAC0V4F9MsFf8mg@*g987msy5W!#S?A~bqAorru|3F1d;Opnh^>8?bd&r z5upP6Yw8372!i?f|1m|{GW7S+9jl%{FR5I08|+VYUr9}Ev?WPkAXLgA0-&`MqmvM& zp)+dTBkm-!4S5tMMPjAdmrhCiH1c__(&2-*`1(y+pRl5hi=Wq6CLu20eKAA`E>}9g zqt9Dhe&>!=;#_)pHXFQsxs-YNa&oBhcxv;9$wU0CFrvp!j8Y+e`g7H1?K84C41=P# z7hxt}CWyYXo?Q_!Y}3iC%}tH<83fg@9|wl{xOA3!ahJLj1)fpx&~zU0g|W_hde4*T zC6AbA1k-nQjxRpqV{KN5)abk_tWUzH){m(ynxK!kOgq!-+h$xQtSoDxI3G^(b~YRk ztYG|Z(HZ1=*yLSmK5las5|_&)Gx0L)UiFkjb26>8;{em^sT0Adbu~xG7>x$b*&zOm z)UrFqDi)5}1En4uwk+dJywdRHMUARJ+x0#AZSXgu2bp(IQ+|d8s>AIKUnZxv#o+X0 ztEsB2YKK+~undwpw-N2+IWzTcWBX5w4Y!I9k}amqytc>9GY%jiTm>Z4#QN$w61ch6 z?P<=p)?K0bYSQUuFrNU3FJ&=0gtGD3n-kiFammx6>m&lDdU|(b3rhTL=q=Iyrf`yYjZujvTc81A8^3D(>FO1pK@3x^P>D zrh2E`!zfMmu{a-=;oRcd~Dvw(R<`;JkaL3;D ze`U;5!uFMUI*p*n)MQ#Dt3(6`p6sd|2yFGZ@!6>@c^T79&7N`z5f@ZeQ!E)2*Ukm> zCCr*ky<({k%7$$%_YG$&B%Y6kEXS?guZR&iKQqfsjH$x+vgvA(t6~;a*g@bio-NqBdK^O#z9M^h~!5qH9D(tPd{babQE?|Gn ze5&tIhJL>5Of@i5!sS(|;G6Mz>N0~7N8=140`rbMQeT;mQN_{J7Nj!5Uo(U&-{a+N zgomh1*E&5koSt)+6Xnh02>QMny2@5-w=YiEt>S2Ic(AFl-WW@jZXmu(B<^z&R%x6<{(@W@r{oqF5=D;{9TFs)U9V6Ibv__o=$d zL^2QA*|)49GfNEktDvs7$fHhbdr22opN}%0*{U||?!4WN{Wh`RlLFz|(o)RqdctJ7 z=Fo3+W5s8qOoVg;>xfYP?$iU7q4lFR^yAorug~cbj<+++4fI3r$Um@k>rQ-sF-e&& zXg9s>U78tGk^Ut{a!Snh?yH=@A2Gi7>#Lv6`Gf@ zSd)z^6}pmMnuJL!a_5Yuek%}0*RXoxq?|}%)ZJp<2V&;2lC8`ye48@s=z3IrR9gEU z3EXd!e$j!IY%8yH4JYdKv3JtL4hnC(Ss%OCa}mRDN5h zUbN4ztd==oQ?N{4m{b`u27?17aZ?g7_**esdCr{C8oCyb&oMHWhi@03no8J28PyCQ zl|A3;POeO%304PWn6|5Zdtk}l&q#K_;*h_TzdUVEW`L>3BK9e$*aKl5?;RhkWvK;^ z?tD+lDL5YGStD`|Uxz6=?_pKM!GCv@)Oa|FDP(h!t*iHSn>pX# z7dJ;)?1vGa(%ENPhSzJ~#FpOKpW#N-b9=9g$XDrR+H<%OcH!FKe#17{efC3-L7rsT zf6)e-2eZzAS)1aYr$l~`W!I%Qd^xZk$}5A7mMA_??j^jJB*T-YZ}Z;5I~)@ue(|yU z4ynZWVoq>5UMWK`Pjc9W+3nlJrCrW4uC9R&G%o5ql%j#g(rpJneU3KlX6-4R1}66Q z$}vasFMau`K3@2=ubfI(o$6K?(>|HGWR)Y(%qT`?&Me z4RBMXX6?04xpa$ z#KEk7>IENVU@mY)`@HU|l-+71${b;{&Tmrokgd{~RWUV+??qPBP<1Z+*^R}3r0V2<0Xeug`1g#CRv`yI@T+GMQPTx2cITY26@?u*zDAzUH=Is;i1CLy) zX)ANoJt$n}Fv@%L+0@}p)gT4=Q^ZSzDeg?tTwd;zFRogVd-YVKDGxcpU-D#hOFX$e z$9=}*@vEX9hU+&+fm74^2gt!qJyWbD#N(4xTQS->)=iD(MmtWfZ@qWQU=)5$)SAjA z<2RBv91}E2DZ-BnFHX_?f^)tcr+CSqkI-!$9v?N?%8D5d$U~4vG_1y0MYH-5{c>7Kn)9t=9lCbr7yHay8 zujqG?9}hZ8yIvrO+-I3m`*lWy5Cy4*bk?*rxdeOf-Cw+A`Dk@`6DWr*1lL*4dVKrr zm3MTZkEPTX;JeX#N_Id!HD{G@zGXb|j+Z|&lx_XiNcRGmSC~I8DQShJ#1!`Q^H5zK z>}KV6jU2C7i1=!qhxrBX`}e-&+nW1w6xmPQ=T9+Z96X_hsDg;7`|nKjl{TJfhwwyH zCz^`xeN@-hZJ1P7eaLi&m~?^3*Z#eRcU;HLnwy_MLH8gwU84Ev`y)y7=8G;2lNy>& z>hE$_*LkV(Rt>mg9Gs`_OcB4`q8b`X6rIGpQnq4TFLJVKCGOOzj2gKtH9Bq)`LyAq zxyGJPXRL~U+@}Hz(B<&a<`8<29v$d)FXk;)Oi$53bX=1H2^roerm*kbt)3)iAD3QI z9)u&B{Ho7ezr4NmgxlhaI(N+Q`8sWP^SQN(fg@z=^${(X)5)gt6l3!(DD+EaTMcLu_H>{mH5AW2GgGX`;^D8=a}nYl zY);yIPyz)i_3b+w%^J~Urp6gEW)NCtbLeu!K-Xu5o zy*M|{q$({Y7kntcW72ZEFiwAU5Pp(4%si!0YC1e;Ofr@LYE@n{##^TVVf5*k<#yO^ zeA45@M$d$Euv4y>VaQ@&ZzbHqeMNX?a2j7!vPsI|*}VC5+3n6d*iKID_U!rEm3YfY zkjf zqN(Sfi7=ipU>!iCG8hh$s(Mp zs(i6gt05lnRq0q^2`aLHk-sDwQcIm5FeRe1QnCCu_YJL$;Rf) z9sHxnGh^!*bw-ZC&y~;vv_`MwFFUUbfj^I?LNN@|@TtexFvWZ2sTb;e4GW0xDl&am zP*_9vqrd_k4=cVGd`}oM+1769u$!vc*&TT`Pq?1F?|?s8Yo6}C7|`=#-{R*Qdo4phfu@+$6z56rxYC8+v2qCt?;9@O|c$=;qUBY0ZOi?4rz}0!8JeN%& zZeV>jRhb*HvLK?)Q}t-gG>Gh&t-VgeHIVD5p^CB*BWw@suHW~eU#bBCK{Af zqB)^ERNvg;5pER{BZzU@N%NQZ`pgksL=nRVjkjB`E6n={lUO_|IrWpOUQGo?Cb zI#*~V)+KR%m?US-zNPvm_eoW|%nXF?S#_fCfw&l^-m(0hr9&w(Nmg%nBeG%GVLBpI z@(oT*&(Cz2rogQRWoT^^+XNr4c3p~wt==qW9(4uhY=HiXqJ`k;aLR>n5+ZcgWq`G% zW-~esPGeF=neImz;TE89ni7Ty_daq$z+$-ERIfA=V4#DQ?{6CW#y2IKf~$3d=Jyzs zC!p=NKgJuiRhZY_{yezabv(Unsr<%7C){b=%?Es}`qkoowQF+!3O!R0?0$RS{&FLv znbt-Ccj;s$o+E#sDYw?mi6j_(ydbgTOr*rS(u3w4bDM(Y&H-p;qp>x0E zyDq8vldM{*pc$O|azfngeLQuOeZ)RJ_~OJT2KeTq3z+ypxoz%LG@H#)v<>L9f^CFg zpBl2D*KK?x0Y3|40_X7+op(KMUNPfn?`cx+7bPc`qIg0D`OZ$v1Y3bWHE1 z?1oY)ew;qBGTqPy{z4<(O;?i;w+o&_6He2t;g72l%>)?gakRhSenKoV%%l58Prbo75ib?Gs!hOSBU=gJ1?GhlLK=Kq?>T?)%yPJGW~4KF+{giyQke z)lFB$2yiM4hNU_mWMUEI&X*H1WhC;KEnyuol@&LtVGxUEi+~8w-w_+PQDGvCAmoB6 zWWe&pupVBvo!OF^jo?*ETJHcJ?Qg#z)qc6^`GG{|D&b2#MPcG%#iIm#** zzrmy)!7oF)mgOQT`cA~*)~@8$3FJFz!BHLl5 z_+70|(Da+w?AEW_^(DaSwxM=PqX0`+qY*t==8RZtXq+~=OOG^FhY_qZp5+~bnt1G7P`=Q^ND#(b;%Ue#?i9T)Jij*euS zu!uX>Abn)VPsEcaUg-oeu}1;(h^E{yj-D3`J0UedtoQRTgcOTf(6xwi5G8Z*@`0}bS%|9=)WOakNi!gC za}DWuK%MmgLcgv@2}-{OR27lQdnhjemEZp}-;d%q{vD2AxAU~}xaKx=k&FT=RM)5s z#2tFgl>DEeae%vf$l62TzXPBO`AY`z{-Q_z8E~Zke?KzvFytx=2bdjz$G`z54Rd$+ z4P2WxaIo>PcSmw4d>~Xc{@nS5fdJG21PJl{Sth`Ts^EXyQF{N>{cl?T!32a*#M6J< z!9WxW7XEDsER3oUk~-o?vOFNvI|Aw3^%;c-0C|xmD2!ha^;+Qvg03}@o`b;vumB(O z;Q!StkPMHD9?Su?@C1Om&7bY|?{17@pxm$Hq~c(MiV}*X(*B!c@N9$(iQ2&-uJ#Vr?%XbLJGNgPT^6|% z#>2q{CWj*0Smi``fgoWJkQW33^9urnIDowOfk3uDjsAzF`%Rq5LXchG#qQei>ni+3 zoBfAu^MONcaex32KMwHk4Ilsp^ML`jfWI&yVdV34T?&Bx#*l6xqlVi4z<{Xt!ap$} z5cIEWLBc}FZuCz*A%1~>>GATRy4yeX1O<_v{R;yl8~dMnLLk9^`62`oMuzBr=?VW^ zPZ;>8e;#lM^5KSGFJsbi@Pndag?f!?ySN}5{TIcDl9ge$$hN)i7r$sa2;Ad3y22oS NAPzILyoLhK{{V7Ptz!TH diff --git a/img/sdgsimple.pdf b/img/sdgsimple.pdf index c9b7f314fd7273e62314ac44228fa8dfee71fe14..7d07cd0859d5fadb5ca973cdac244cdfb8c7df66 100644 GIT binary patch literal 18058 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 RN1P!rhzz(?RbBnvxBzdQE8747 literal 11719 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 diff --git a/img/throw-example-cfg.dot b/img/throw-example-cfg.dot new file mode 100644 index 0000000..ed74a15 --- /dev/null +++ b/img/throw-example-cfg.dot @@ -0,0 +1,8 @@ +digraph g { + Start [shape=box]; + End [shape=box]; + Start -> End [style=dashed]; + Start -> "if (x < 0)" -> "throw" -> "Error exit" -> End; + "throw" -> "return Math.sqrt(x)" [style=dashed]; + "if (x < 0)" -> "return Math.sqrt(x)" -> "Normal exit" -> End; +} \ No newline at end of file diff --git a/img/throw-example-cfg.pdf b/img/throw-example-cfg.pdf new file mode 100644 index 0000000000000000000000000000000000000000..5c6459c9824bd8a906802fa14405a5bd8df13d02 GIT binary patch literal 15718 zcmaib19W9gvvzEA;uB+HV`5D(@x->1iEVSD2`08}+qP}n_>*_u@Beh~x~I=NySsMp zs%orLPwn+Isf>^a4FfF`3~Bey<<3#wRr+{$FAOt)9$=+w3iIU)fKJlD(#Xyj!16AV z1JH?>nA;iHykE_A>e&%Z2{n9Aq+*4SwIt_o?)ogCWygTgm zzc|}PC&S|HF)4oww1j*c^ND4Q-)0

B35bFkyX_x6akP^;SV+aHUSJXNALrNAcTA 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 ir=!CI^M7~w!=tpdd*3#HE!_Lsv(m$mk_t