1
0

Compare commits

...

16 Commits

30 changed files with 782 additions and 188 deletions

View File

@@ -1,6 +1,10 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# File: intercept
# Author: Lorenz Stechauner <e12119052@student.tuwien.ac.at>
# Lorenz Stechauner <lorenz.stechauner@necronda.net>
import argparse import argparse
import subprocess import subprocess
import os import os

View File

@@ -1,4 +1,10 @@
/**
* File: intercept.c
* Author: Lorenz Stechauner <e12119052@student.tuwien.ac.at>
* Lorenz Stechauner <lorenz.stechauner@necronda.net>
*/
#define _GNU_SOURCE #define _GNU_SOURCE
#include <getopt.h> #include <getopt.h>

6
proj/perf/.gitignore vendored Normal file
View File

@@ -0,0 +1,6 @@
main
server
*.csv
*.txt
*.log
*.zip

View File

@@ -4,13 +4,16 @@ CFLAGS=-std=c99 -pedantic -Wall -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_SVID_SOURCE -
.PHONY: all clean .PHONY: all clean
all: default all: default
default: main default: main server
main.o: main.c %.o: %.c
$(CC) -c -o $@ $^ $(CFLAGS) $(CC) -c -o $@ $^ $(CFLAGS)
main: main.o main: main.o
$(CC) -o $@ $^ $(CFLAGS) -lc $(CC) -o $@ $^ $(CFLAGS) -lc
server: server.o
$(CC) -o $@ $^ $(CFLAGS) -lc
clean: clean:
rm -rf main *.o rm -rf main *.o

67
proj/perf/server.c Normal file
View File

@@ -0,0 +1,67 @@
#include <errno.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <sys/socket.h>
#include <sys/un.h>
#include <stdlib.h>
int main(const int argc, const char *argv[]) {
if (argc != 3) {
fprintf(stderr, "usage: server <path> <mode>\n");
return 1;
}
const char *path = argv[1];
const char *mode = argv[2];
int fd;
if ((fd = socket(AF_UNIX, SOCK_STREAM, 0)) == -1) {
fprintf(stderr, "unable to create socket: %s\n", strerror(errno));
return 1;
}
struct sockaddr_un addr = {.sun_family = AF_UNIX};
strcpy(addr.sun_path, path);
if (bind(fd, (struct sockaddr *) &addr, sizeof(addr)) != 0) {
fprintf(stderr, "unable to bind socket: %s\n", strerror(errno));
close(fd);
return 1;
}
if (listen(fd, 4) != 0) {
fprintf(stderr, "unable to listen on socket: %s\n", strerror(errno));
close(fd);
return 1;
}
size_t len = 4096;
char *line = malloc(len);
while (1) {
int client_fd;
if ((client_fd = accept(fd, NULL, NULL)) == -1) {
fprintf(stderr, "unable to accept connection: %s\n", strerror(errno));
break;
}
FILE *client;
if ((client = fdopen(client_fd, "w+")) == NULL) {
fprintf(stderr, "unable open stream: %s\n", strerror(errno));
close(client_fd);
continue;
}
for (int n = 0; getline(&line, &len, client) > 0; n++) {
if (n % 2 == 1) {
fprintf(client, "%s\n", mode);
}
}
fclose(client);
}
free(line);
close(fd);
unlink(path);
}

View File

@@ -14,9 +14,22 @@ function test() {
done done
} }
rm -f /tmp/test.ok.sock /tmp/test.return.sock /tmp/intercept.performance.ok.sock /tmp/intercept.performance.return.sock
./server /tmp/test.ok.sock 'ok' &
./server /tmp/test.return.sock 'return 0' &
test ./main test ./main
cd ../intercept cd ../intercept
test ./intercept -o -i - -- ../perf/main test ./intercept -o -i - -- ../perf/main
test ./intercept -o -i stderr -- ../perf/main test ./intercept -o -i stderr -- ../perf/main
test ./intercept -o -i file:out.log -- ../perf/main test ./intercept -o -i file:out.log -- ../perf/main
#test ./intercept -o -i unix:/ -- ../perf/main
cd ../server/src
./performance -m ok &
./performance -m return &
cd ../../intercept
sleep 1
test ./intercept -o -i unix:/tmp/test.ok.sock -- ../perf/main
test ./intercept -o -i unix:/tmp/test.return.sock -- ../perf/main
test ./intercept -o -i unix:/tmp/intercept.performance.ok.sock -- ../perf/main
test ./intercept -o -i unix:/tmp/intercept.performance.return.sock -- ../perf/main

View File

@@ -1,6 +1,10 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# File: intercept/__init__.py
# Author: Lorenz Stechauner <e12119052@student.tuwien.ac.at>
# Lorenz Stechauner <lorenz.stechauner@necronda.net>
from __future__ import annotations from __future__ import annotations
from typing import Optional, TypedDict, NamedTuple, NotRequired, BinaryIO from typing import Optional, TypedDict, NamedTuple, NotRequired, BinaryIO
from socketserver import UnixStreamServer, StreamRequestHandler, ThreadingMixIn from socketserver import UnixStreamServer, StreamRequestHandler, ThreadingMixIn

View File

@@ -1,6 +1,10 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# File: intercept/standard.py
# Author: Lorenz Stechauner <e12119052@student.tuwien.ac.at>
# Lorenz Stechauner <lorenz.stechauner@necronda.net>
from __future__ import annotations from __future__ import annotations
from intercept import * from intercept import *

45
proj/server/src/performance Executable file
View File

@@ -0,0 +1,45 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# File: performance
# Author: Lorenz Stechauner <e12119052@student.tuwien.ac.at>
# Lorenz Stechauner <lorenz.stechauner@necronda.net>
import argparse
import intercept
import intercept.standard
MODE: str
class Handler(intercept.standard.Handler):
def before_pipe(self, fildes_ptr: intercept.Pointer) -> str:
return 'return 0' if MODE == 'return' else 'ok'
def after_pipe(self, fildes_ptr: intercept.Pointer,
ret_value: int, errno: str = None, fildes: list[int] = None) -> None:
pass
def before_close(self, fildes: int) -> str:
return 'return 0' if MODE == 'return' else 'ok'
def after_close(self, fildes: int,
ret_value: int, errno: str = None) -> None:
pass
def main() -> None:
global MODE
parser = argparse.ArgumentParser()
parser.add_argument('-m', '--mode', choices=['ok', 'return'])
args = parser.parse_args()
MODE = args.mode
socket_name = f'/tmp/intercept.performance.{MODE}.sock'
intercept.intercept(socket_name, Handler)
if __name__ == '__main__':
main()

View File

@@ -1,6 +1,10 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# File: test-interrupts
# Author: Lorenz Stechauner <e12119052@student.tuwien.ac.at>
# Lorenz Stechauner <lorenz.stechauner@necronda.net>
import os import os
import sys import sys
import argparse import argparse

View File

@@ -1,6 +1,10 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# File: test-memory
# Author: Lorenz Stechauner <e12119052@student.tuwien.ac.at>
# Lorenz Stechauner <lorenz.stechauner@necronda.net>
import argparse import argparse
import subprocess import subprocess
import os import os

View File

@@ -1,6 +1,10 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# File: test-return-values
# Author: Lorenz Stechauner <e12119052@student.tuwien.ac.at>
# Lorenz Stechauner <lorenz.stechauner@necronda.net>
import os import os
import sys import sys
import argparse import argparse

BIN
thesis/intercept_v1.0.pdf Normal file

Binary file not shown.

BIN
thesis/intercept_v1.1.pdf Normal file

Binary file not shown.

BIN
thesis/intercept_v2.0.pdf Normal file

Binary file not shown.

View File

@@ -8,14 +8,13 @@ This chapter gives a general overview about what the motivation and goal for thi
\section{Motivation and Goal}\label{sec:motivation-and-goal} \section{Motivation and Goal}\label{sec:motivation-and-goal}
When teaching students about Operating Systems, their interfaces, and standard libraries, C is still a widely used language. When teaching students about Operating Systems, their interfaces, and standard libraries, C is still a widely used language, especially when using Linux.
Especially when using Linux. Therefore, it is obvious why many university courses still require students to write their assignments and exams in C\@.
Therefore, it is obvious, why many university courses still require students to write their assignments and exams in C\@. The problem when trying to verify whether students have correctly implemented their assignment, is that low-level OS constructs (like semaphores, pipes, sockets, memory management) make it hard to run automated tests, because the testing system needs to keep track, set up, and verify the usage of these resources.
The problem when trying to verify whether students have correctly implemented their assignment is that low-level OS constructs (like semaphores, pipes, sockets, memory management) make it hard to run automated tests, because the testing system needs to keep track, set up, and verify the usage of these resources.
The goal of this work was to find a way to easily intercept system or function calls and to verify if students called the right functions with the right arguments at the right time. The goal of this work was to find a way to easily intercept system or function calls, and to verify if students called the right functions, with the right arguments, at the right time.
This restriction in scope allows focusing on simple binary programs without having to think about complex or I/O heavy programs. This restriction in scope allows focusing on simple binary programs without having to think about complex or I/O heavy programs.
Furthermore, in this setting the source code of the student's programs is obviously available because this is what they need to deliver. Furthermore, in this setting the source code of the student's programs is obviously available, because this is what they need to deliver.
The availability of source code is a key concern when trying to intercept function or system calls, as will be clear in the next chapters. The availability of source code is a key concern when trying to intercept function or system calls, as will be clear in the next chapters.
@@ -27,7 +26,7 @@ The following subsections concern these definitions.
\subsection{Function Calls}\label{subsec:function-calls} \subsection{Function Calls}\label{subsec:function-calls}
Generally, a function in C (and also most other programming languages) is a piece of code that may be called and therefore executed from elsewhere. Generally, a function in C (and also most other programming languages) is a piece of code that may be called, and therefore executed, from elsewhere.
Functions have zero or more arguments and return a single value. Functions have zero or more arguments and return a single value.
When calling a function, the caller places the return address onto the stack. When calling a function, the caller places the return address onto the stack.
This address indicates where the function should continue executing when it is finished. This address indicates where the function should continue executing when it is finished.
@@ -43,7 +42,7 @@ Intercepting calls to functions allows one to see the function name, arguments,
In contrast to functions, system calls are calls to the kernel itself. In contrast to functions, system calls are calls to the kernel itself.
Many operations on a modern operating system require special privileges, which a simple user-space process does not have. Many operations on a modern operating system require special privileges, which a simple user-space process does not have.
By invoking a system call, the (user-space) process hands control over to the (privileged) kernel and requests an operation to be performed. By invoking a system call, the (user-space) process hands control over to the (privileged) kernel, and requests an operation to be performed.
\cite[Chapter~10]{linuxkernel} \cite[Chapter~10]{linuxkernel}
How exactly these system calls work depends on the architecture and operating system. How exactly these system calls work depends on the architecture and operating system.
@@ -51,7 +50,7 @@ But generally, the process places the system call number and its arguments in de
Then the kernel executes the requested operation and places the return value inside another register, and lastly hands the execution back to the process. Then the kernel executes the requested operation and places the return value inside another register, and lastly hands the execution back to the process.
\cite[Chapter~10]{linuxkernel} \cite[Chapter~10]{linuxkernel}
Intercepting calls to system calls allows one to see the system call number, arguments, and return value. Intercepting system calls allows one to see the system call number, arguments, and return value.
One has to keep in mind that many system-related functionalities are not in fact translated to system calls one-to-one. One has to keep in mind, that many system-related functionalities are not, in fact, translated to system calls one-to-one.
For example, \texttt{malloc}~\cite{malloc.3} has no dedicated system call, it is managed by the C standard library internally. For example, \texttt{malloc}~\cite{malloc.3} has no dedicated system call, it is managed by the C standard library internally.
Many system calls have corresponding wrapper functions in the C standard library (like \texttt{open}, \texttt{close}, \texttt{sem\_wait}). Many system calls have corresponding wrapper functions in the C standard library (like \texttt{open}, \texttt{close}, \texttt{sem\_wait}).

View File

@@ -0,0 +1,139 @@
\chapter{Related Work}\label{ch:related-work}
This chapter gives a rough overview on techniques and methods to intercept or hook system calls and function calls.
See also Section~\ref{sec:methods-for-intercepting}.
Some relevant methods will be discussed there in more detail.
\section{System and Function Call Hooking in Literature}\label{sec:call-hooking-in-literature}
The following subsections explore some applications of system and function call hooking.
There are possibly many other use-cases, but the following were deemed most important.
\subsection{Classification of Hooking Techniques}\label{subsec:classification}
Lopez et al. \cite{lopez2017} classify subroutine hooking techniques as follows:
\begin{itemize}
\setlength\itemsep{0em}
\item Subroutine Type: Function / System call.
\item Hook Insertion: Static (before execution) / Dynamic (during execution).
\item Instrumentation Type: Active (``manipulation'') / Passive (``interception'').
\item Hooking Location: On-device / Off-device (most used for mobile devices).
\item Hooking Scope: Inner Functions / Exported Functions (e.g.,\ libraries).
\item OS Modification: Required / Not Required.
\item Availability of Source Code: Open-source / Closed-source.
\item Pricing Model: Free / Paid.
\end{itemize}
The technique developed in this work would be classified as follows:
Function, Static, Active+Passive, On-device, Exported Functions, OS Modification Not Required, target program may be Closed-source, Free.
\subsection{Linux Systems}\label{subsec:linux-systems}
Yasukata et al. \cite{zpoline} introduced zpoline, a system call hooking technique using binary rewriting.
See Subsection~\ref{subsec:zpoline} for more details.
Hong et al. \cite{datahook} developed DataHook, a system call hooking technique based on glibc.
See Subsection~\ref{subsec:datahook} for more details.
\subsection{Windows Systems}\label{subsec:windows-systems}
Hunt and Brubacher \cite{detours} developed Detours, a library for instrumenting arbitrary Win32 functions on x86 machines.
Detours intercepts Win32 functions by re-writing target function images.
Based on this method, Sze and Sekar developed Spif \cite{spif} (see next subsection).
\subsection{Security Applications}\label{subsec:security-applications}
Fraser et al. \cite{fraser2000} introduced a general mechanism for securing unmodified commercial software by wrapping system calls at the library interface.
They hook system calls by replacing the standard library entry points with wrapper functions, similar to \texttt{LD\_PRELOAD}.
The wrapper functions are able to perform security checks or other security measures.
Garfinkel et al. \cite{ostia} developed Ostia, a sandboxing system, which uses system call hooking to secure applications.
They implemented their own ELF binary loader to load their emulation library into memory before the sandboxed program starts.
To communicate between this library and their \textit{agent}, they use Unix domain sockets.
The \textit{agent} then responds, according to its policies.
This is a similar approach to the one of this work (see Chapter~\ref{ch:manipulating-function-calls}).
Sze and Sekar \cite{spif} introduced Spif, an approach that defends against malware by tracking code and data origin on Windows systems.
They use Detours \cite{detours} to intercept low-level Windows API calls.
Kern \cite{kern2023} discusses the use of \texttt{LD\_PRELOAD} in cloud environments for HTTP deception.
This is done to analyze malware or other adversaries in real environments without their knowledge and without any risk of danger.
Examples are to override the \texttt{send} and \texttt{recv} functions of libc.
With some modifications, the technique presented in this work may also be used in this context to intercept and manipulate \texttt{send} and \texttt{recv} calls.
\subsection{Software Distribution}\label{subsec:software-distribution}
Guo and Engler \cite{guo2011cde} use system call hooking for creating portable software.
They developed CDE, which logs all files a program accesses during execution, including shared libraries.
All accessed files and the environment are bundled together and may now be executed on any other system having a compatible kernel without having to install any dependencies.
This would also be possible with the use of logged function calls like in this work (e.g., see Section~\ref{sec:intercepting-example}).
\subsection{Rapid Prototyping}\label{subsec:rapid-prototyping}
Spillane et al. \cite{spillane2007} use \texttt{ptrace} to hook system calls of another process to simulate these calls using a user-space program.
This is useful for rapid prototyping (e.g., file systems) by developing a user-space program first, and then, using the gained insight, porting it into kernel-space.
\section{Function Call Hooking}\label{sec:function-call-hooking}
All underlying techniques for function call interception on Linux systems are mentioned in Section~\ref{sec:methods-for-intercepting}.
See \texttt{ltrace} (Subsection~\ref{subsec:ltrace}), wrapper functions (Subsection~\ref{subsec:wrapper-functions}), and \texttt{LD\_PRELOAD} (Subsection~\ref{subsec:preloading}).
\section{System Call Hooking}\label{sec:system-call-hooking}
This section discusses further techniques regarding system call interception.
This excludes techniques discussed in Section~\ref{sec:methods-for-intercepting},
like \texttt{ptrace} (Subsection~\ref{subsec:ptrace}), and \texttt{strace} (Subsection~\ref{subsec:strace}).
Almost all following methods use binary rewriting to replace system calls with other instructions (except SUD, Subsection~\ref{subsec:syscall-user-dispatch}).
This is one of the reasons why they are not mentioned in Section~\ref{sec:methods-for-intercepting}.
Another reason is that this work focuses on function call interception rather than system call interception.
\subsection{\texttt{int3} Signaling}\label{subsec:int3-signaling}
\texttt{int3} is a one-byte instruction (\texttt{0xcc}) that invokes a software interrupt.
On Linux, the kernel handles it and raises \texttt{SIGTRAP} to the user-space process that executed \texttt{int3}.
The \texttt{int3} signaling technique exploits this behavior to hook system calls; it replaces \texttt{syscall}/\texttt{sysenter} with \texttt{int3} and employs the signal handler for \texttt{SIGTRAP} as the hook function.
Since \texttt{int3} is one byte, it can replace an arbitrary instruction without breaking neighboring instructions.
This technique is traditionally used in debuggers to implement breakpoints.
However, signal handling incurs a large overhead because it involves context manipulation by the kernel.
\cite{zpoline}
\subsection{Syscall User Dispatch (SUD)}\label{subsec:syscall-user-dispatch}
Syscall User Dispatch (SUD)~\cite{sud} was added in Linux 5.11, and it offers a way to redirect system calls to arbitrary user-space code.
For the SUD feature, the kernel implements a hook point at the entry point of system calls.
A user-space process can activate SUD via the \texttt{prctl} interface.
When SUD is activated, the hook point raises \texttt{SIGSYS} to the user-space process.
This mechanism allows a user-space program to leverage the \texttt{SIGSYS} signal handler as the system call hook.
However, similarly to the \texttt{int3} signaling technique, SUD imposes a significant performance penalty on the user-space program due to the overhead of the signal handling.
\cite{zpoline}
\subsection{zpoline}\label{subsec:zpoline}
zpoline is a system call hook mechanism for x86-64 CPUs.
Binary rewriting is used to replace (two-byte) \texttt{syscall}/\texttt{sysenter} instructions with a (two-byte) \texttt{callq *\%rax} instruction.
Because this instruction jumps to \texttt{rax}, where also the syscall number is stored, the trampoline code has to be initialized beginning at virtual address 0.
zpoline is exhaustive and achieves very low performance reduction (28--761 times less overhead compared to other exhaustive system call hooking techniques).
\cite{zpoline}
\subsection{DataHook}\label{subsec:datahook}
DataHook is a system call hooking technique for 32-bit programs based on glibc running on x86 or x86-64 machines.
It relies on glibc's way of performing system calls, namely a \texttt{call *\%gs:0x10} instruction to call the \texttt{\_\_kernel\_vsyscall} function.
The content of \texttt{gs:0x10} is backed up and modified to jump to a given hook function.
DataHook is only exhaustive when used on glibc-based programs.
It achieves a very low performance reduction (5--1429 times less overhead compared to existing hooking techniques).
\cite{datahook}

View File

@@ -66,7 +66,7 @@ It works similarly to \texttt{strace} (see \ref{subsec:strace}).
\cite{ltrace.1} \cite{ltrace.1}
Listings~\ref{lst:main.c} and~\ref{lst:ltrace} illustrate what the output of \texttt{ltrace} looks like. Listings~\ref{lst:main.c} and~\ref{lst:ltrace} illustrate what the output of \texttt{ltrace} looks like.
In contrast to the output of \texttt{strace} now only ``real'' calls to library functions are included in the output. In contrast to the output of \texttt{strace}, now only ``real'' calls to library functions are included in the output.
Therefore, a lot less ``noise'' is generated (see omitted lines in Listing~\ref{lst:strace}). Therefore, a lot less ``noise'' is generated (see omitted lines in Listing~\ref{lst:strace}).
Again, the function arguments are displayed in a ``pretty'' way. Again, the function arguments are displayed in a ``pretty'' way.
This command uses so-called prototype functions~\cite{ltrace.conf.5} to format function arguments. This command uses so-called prototype functions~\cite{ltrace.conf.5} to format function arguments.
@@ -209,14 +209,14 @@ The function \texttt{dlsym} is used to retrieve the original address of the \tex
\cite{dlsym.3} \cite{dlsym.3}
By using this method, it is possible to override, and therefore wrap, any function as long as the targeted binary was not statically linked. By using this method, it is possible to override, and therefore wrap, any function as long as the targeted binary was not statically linked.
However, one must be aware that not only function calls inside the targeted binary, but also calls inside other libraries (e.g., \texttt{malloc}) are redirected to the overriding function. However, one must be aware that, not only function calls inside the targeted binary, but also calls inside other libraries (e.g., \texttt{malloc}), are redirected to the overriding function.
\subsection{Conclusion}\label{subsec:methods-for-intercepting-conclusion} \subsection{Conclusion}\label{subsec:methods-for-intercepting-conclusion}
During the research on different approaches to intercepting system and function calls, During the research on different approaches to intercepting system and function calls,
it has been found that the most reliable way to achieve the goals of this work (see Section~\ref{sec:motivation-and-goal}) is to intercept function calls instead of system calls. it has been found, that the most reliable way to achieve the goals of this work (see Section~\ref{sec:motivation-and-goal}) is to intercept function calls instead of system calls.
This is because---as long as the programs to test are dynamically linked---, intercepting function calls allows one to intercept many more calls and in a more flexible way. This is because---as long as the programs to test are dynamically linked---intercepting function calls allows one to intercept many more calls and in a more flexible way.
Therefore, from now on this work only considers function calls and no system calls directly. Therefore, from now on this work only considers function calls and no system calls directly.
In this work, preloading (see Subsection~\ref{subsec:preloading}) was chosen to be used In this work, preloading (see Subsection~\ref{subsec:preloading}) was chosen to be used
@@ -252,8 +252,8 @@ This allows \texttt{ltrace} to ``dynamically'' display function arguments for an
However, due to implementation complexity reasons and the need for ``complex'' return types for string/buffer and structure values (see Section~\ref{sec:retrieving-function-return-values}) a statically compiled approach has been used for this work. However, due to implementation complexity reasons and the need for ``complex'' return types for string/buffer and structure values (see Section~\ref{sec:retrieving-function-return-values}) a statically compiled approach has been used for this work.
This means that each function formats its arguments and return values itself without any configuration option. This means that each function formats its arguments and return values itself without any configuration option.
The reason for retrieving as much information as possible from each function call is that at a later point in time, it is possible to completely reconstruct the exact function calls and their sequence. The reason for retrieving as much information as possible from each function call is that at a later point in time it is possible to completely reconstruct the exact function calls and their sequence.
This allows analysis on these records to be performed independently of the corresponding execution of the program. This allows an analysis on these records to be performed independently of the corresponding execution of the program.
It should always be possible to fully parse the recorded calls without any specific knowledge of specific functions, their argument types, or return value type. It should always be possible to fully parse the recorded calls without any specific knowledge of specific functions, their argument types, or return value type.
@@ -268,8 +268,7 @@ Example: \texttt{malloc(123)} (or \texttt{malloc(0x7B)}).
\subsection{Unspecific Pointers}\label{subsec:retrieving-unspecific-pointers} \subsection{Unspecific Pointers}\label{subsec:retrieving-unspecific-pointers}
Pointers with no further information known about (like \texttt{void *}) are essentially integers. Pointers without additional type information (such as \texttt{void *}) can essentially be treated as integers.
Therefore, they may be treated as such.
Example: \texttt{free(0x55624164b2a0)}. Example: \texttt{free(0x55624164b2a0)}.
@@ -299,10 +298,10 @@ Example: \texttt{open(0x1234:"test.txt", 0102:|O\_CREAT|O\_RDWR|, 0644)}.
\subsection{Constants}\label{subsec:retrieving-constants} \subsection{Constants}\label{subsec:retrieving-constants}
For some functions constants are used. For some functions, constants are used.
These constants are typically used C macros in the source code. These constants are typically implemented as C macros (\texttt{\#define}) in the source code.
This makes the source code more readable (and portable). This makes the source code more readable (and portable).
Constants are represented as an integer again followed by a colon, this time without any special characters to distinguish them from other types. Constants are represented as an integer, again followed by a colon, this time without any special characters to distinguish them from other types.
Example: \texttt{socket(2:AF\_INET, 1:SOCK\_STREAM, 6)}. Example: \texttt{socket(2:AF\_INET, 1:SOCK\_STREAM, 6)}.
@@ -408,11 +407,11 @@ typedef struct {
\end{description} \end{description}
\end{quote} \end{quote}
Using information from \texttt{Dl\_info}, it is possible to exactly determine the (shared) object from where the call came from (\texttt{dli\_fname}). Using information from \texttt{Dl\_info}, it is possible to exactly determine the (shared) object where the call came from (\texttt{dli\_fname}).
Furthermore, it is possible to calculate the relative position inside this (shared) object using \texttt{dli\_fbase} and the return address itself. Furthermore, it is possible to calculate the relative position inside this (shared) object using \texttt{dli\_fbase} and the return address itself.
Keep in mind that the return address may only be used as an estimation for the origin of the call. Keep in mind that the return address may only be used as an estimation for the origin of the call.
Especially heavily optimized programs might use the same return address for functions in different code paths. Especially heavily optimized programs might use the same return address for functions in different code paths.
Optionally, a name of a ``symbol'' (function) may be retrieved from where the function call came from. Optionally, a name of a ``symbol'' (function) may be retrieved, indicating where the function call came from.
\subsection{Source File and Line Number}\label{subsec:source-file-and-line-number} \subsection{Source File and Line Number}\label{subsec:source-file-and-line-number}
@@ -465,7 +464,7 @@ These other environment variables are described in the following:
It is a list separated by commas, colons, or semicolons. It is a list separated by commas, colons, or semicolons.
Wildcards (\texttt{*}) at the end of function names are possible. Wildcards (\texttt{*}) at the end of function names are possible.
A prefix of \texttt{-} indicates that the following function should not be intercepted. A prefix of \texttt{-} indicates that the following function should not be intercepted.
Example: \texttt{*,-sem\_} intercepts all functions except those which start with \texttt{sem\_}. Example: \texttt{*,-sem\_*} intercepts all functions except those which start with \texttt{sem\_}.
By default, all (implemented) functions are intercepted. By default, all (implemented) functions are intercepted.
\item[\texttt{INTERCEPT\_LIBRARIES}] \item[\texttt{INTERCEPT\_LIBRARIES}]
This variable is used to specify which libraries' function calls should be intercepted. This variable is used to specify which libraries' function calls should be intercepted.

View File

@@ -2,14 +2,15 @@
\chapter{Manipulating Function Calls}\label{ch:manipulating-function-calls} \chapter{Manipulating Function Calls}\label{ch:manipulating-function-calls}
This chapter discusses how to manipulate function calls and how this may be used to test programs. This chapter discusses how to manipulate function calls and how this may be used to test programs.
How function calls may be intercepted at all is discussed in Chapter~\ref{ch:intercepting-function-calls}. How function calls may be intercepted at all has been discussed in Chapter~\ref{ch:intercepting-function-calls}.
This chapter builds on the basis of the previous one and expands its functions. This chapter builds on the basis of the previous one and expands its functions.
In this context, ``manipulation'' means changing the arguments of a function before calling it with the modified arguments, or skipping the execution of the real function completely and simply returning a given value (``mocking''). In this context, ``manipulation'' means changing the arguments of a function before calling it with the modified arguments, or skipping the execution of the real function completely and simply returning a given value (``mocking'').
These techniques allow in-depth testing of programs. These techniques allow in-depth testing of programs.
In contrast to simply recording and logging function calls which may be controlled via environment variables, manipulation of such function calls requires some other process to indicate how to handle each call. In contrast to simply recording and logging function calls, which may be controlled via environment variables, manipulation of such function calls requires some other process to indicate how to handle each call.
This work uses simple sockets to communicate between the process of the program to be tested and a ``server'' which decides what action to perform for each function call. This work uses simple Unix domain sockets to communicate between the process of the program to be tested, and a ``server'', which decides what action to perform for each function call.
Currently, only communication over Unix sockets is implemented, but communication over TCP sockets is also easily possible. Currently, only communication over Unix domain sockets is implemented, but communication over TCP sockets is also easily possible.
This approach is similar to the one used in \cite{ostia} to communicate with the \textit{agent}.
Figure~\ref{fig:control-flow} illustrates the control flow for manipulating function calls. Figure~\ref{fig:control-flow} illustrates the control flow for manipulating function calls.
@@ -97,10 +98,10 @@ The contents of this message type correspond to the second line of an intercepte
\section{Automated Testing using Function Call Manipulation}\label{sec:automated-testing-using-function-call-manipulation} \section{Automated Testing using Function Call Manipulation}\label{sec:automated-testing-using-function-call-manipulation}
As seen in Figure~\ref{fig:control-flow} function call manipulation allows for mocking individual calls. As seen in Figure~\ref{fig:control-flow} function call manipulation allows for mocking individual calls.
Mocking may be used to see how the program behaves when individual calls to function fail or return an unusual, but valid, value. Mocking may be used to see how the program behaves when individual calls to a function fail, or return an unusual, but valid, value.
The simplest way to automatically test programs is to run them multiple times, allowing a single function call to fail in each run. The simplest way to automatically test programs is to run them multiple times, allowing a single function call to fail in each run.
The resulting sequence of function calls now may be put together to a call sequence graph (or tree). The resulting sequence of function calls now may be put together to a call sequence graph (or tree).
By analyzing this call graph, it is possible to decide if a program correctly terminated when faced with a failed function call. By analyzing this call graph, it is possible to decide if a program correctly terminated, when faced with a failed function call.
This may be the case when the following function calls differ from those which were recorded on a default run (without any mocked function calls). This may be the case when the following function calls differ from those which were recorded on a default run (without any mocked function calls).
@@ -109,9 +110,10 @@ This may be the case when the following function calls differ from those which w
Figure~\ref{fig:call-sequence} shows the simplified and collapsed call sequence graph of the prior example in Section~\ref{sec:intercepting-example}. Figure~\ref{fig:call-sequence} shows the simplified and collapsed call sequence graph of the prior example in Section~\ref{sec:intercepting-example}.
Each edge between two nodes without any label indicates the next function call on a normal run of the program. Each edge between two nodes without any label indicates the next function call on a normal run of the program.
Edges labeled with ``fail'' indicate the next function call after a mocked failed call. Edges labeled with ``fail'' indicate the next function call after a mocked failed call.
In reality, there are multiple failing paths, each for every possible error return value, but in this example they all yield the same resulting path, therefore, they have been collapsed. In reality, there are multiple failing paths, one for each possible error return value.
However, in this example they all yield the same resulting path, and have therefore been collapsed.
To test, if a programmer always checked the return value of a function and acted accordingly, this resulting call sequence graph now may be analyzed. To test if a programmer always checked the return value of a function and acted accordingly, this resulting call sequence graph now may be analyzed.
At first glance, this test appears trivial. At first glance, this test appears trivial.
The simplest approach is to verify that after a failing function call only ``cleanup'' function calls (\texttt{free}, \texttt{close}, \texttt{exit}, \dots) follow. The simplest approach is to verify that after a failing function call only ``cleanup'' function calls (\texttt{free}, \texttt{close}, \texttt{exit}, \dots) follow.
For simple programs, this assumption may hold, but there are many exceptions. For simple programs, this assumption may hold, but there are many exceptions.

View File

@@ -1,63 +0,0 @@
\chapter{Related Work}\label{ch:related-work}
This chapter gives a rough overview on techniques and methods to intercept or hook system calls and function calls.
See also Section~\ref{sec:methods-for-intercepting}.
Many methods have already been discussed there.
\section{Function Call Interception}\label{sec:function-call-interception}
All related work regarding function call interception has already been mentioned in the aforementioned Section.
See \texttt{ltrace} (Subsection~\ref{subsec:ltrace}), wrapper functions (Subsection~\ref{subsec:wrapper-functions}), and \texttt{LD\_PRELOAD} (Subsection~\ref{subsec:preloading}).
\section{System Call Interception}\label{sec:system-call-interception}
This section discusses further related work regarding system call interception.
This excludes techniques already discussed in Section~\ref{sec:methods-for-intercepting},
like \texttt{ptrace} (Subsection~\ref{subsec:ptrace}), and \texttt{strace} (Subsection~\ref{subsec:strace}).
Almost all following methods use binary rewriting to replace system calls with other instructions (except SUD, Subsection~\ref{subsec:syscall-user-dispatch}).
This is one of the reasons why they were not mentioned in Section~\ref{sec:methods-for-intercepting}.
Another reason is that this work focuses on function call interception rather than system call interception.
\subsection{\texttt{int3} Signaling}\label{subsec:int3-signaling}
\texttt{int3} is a one-byte instruction (\texttt{0xcc}) that invokes a software interrupt.
On Linux, the kernel handles it and raises \texttt{SIGTRAP} to the user-space process that executed \texttt{int3}.
The \texttt{int3} signaling technique exploits this behavior to hook system calls; it replaces \texttt{syscall}/\texttt{sysenter} with \texttt{int3} and employs the signal handler for \texttt{SIGTRAP} as the hook function.
Since \texttt{int3} is one byte, it can replace an arbitrary instruction without breaking neighboring instructions.
This technique is traditionally used in debuggers to implement breakpoints.
However, signal handling incurs a large overhead because it involves context manipulation by the kernel.
\cite{zpoline}
\subsection{Syscall User Dispatch (SUD)}\label{subsec:syscall-user-dispatch}
Syscall User Dispatch (SUD)~\cite{sud} was added in Linux 5.11, and it offers a way to redirect system calls to arbitrary user-space code.
For the SUD feature, the kernel implements a hook point at the entry point of system calls.
A user-space process can activate SUD via the \texttt{prctl} interface.
When SUD is activated, the hook point raises \texttt{SIGSYS} to the user-space process.
This mechanism allows a user-space program to leverage the \texttt{SIGSYS} signal handler as the system call hook.
However, similarly to the \texttt{int3} signaling technique, SUD imposes a significant performance penalty on the user-space program due to the overhead of the signal handling.
\cite{zpoline}
\subsection{zpoline}\label{subsec:zpoline}
zpoline is a system call hook mechanism for x86-64 CPUs.
Binary rewriting is used to replace (two-byte) \texttt{syscall}/\texttt{sysenter} instructions with a (two-byte) \texttt{callq *\%rax} instruction.
Because this instruction jumps to \texttt{rax}, where also the syscall number is stored, the trampoline code has to be initialized beginning at virtual address 0.
zpoline is exhaustive and achieves very low performance reduction (28--761 times less overhead compared to other exhaustive system call hooking techniques).
\cite{zpoline}
\subsection{DataHook}\label{subsec:datahook}
DataHook is a system call hooking technique for 32-bit programs based on glibc running on x86 or x86-64 machines.
It relies on glibc's way of performing system calls, namely a \texttt{call *\%gs:0x10} instruction to call the \texttt{\_\_kernel\_vsyscall} function.
The content of \texttt{gs:0x10} is backed up and modified to jump to a given hook function.
DataHook is only exhaustive when used on glibc-based programs.
It achieves a very low performance reduction (5--1429 times less overhead compared to existing hooking techniques).
\cite{datahook}

View File

@@ -12,7 +12,7 @@ Up until recently the Operating Systems course (mentioned in Section~\ref{sec:mo
Files, Shared Memory, Semaphores; Related Processes and Inter-Process Communication via Unnamed Pipes; and Sockets. Files, Shared Memory, Semaphores; Related Processes and Inter-Process Communication via Unnamed Pipes; and Sockets.
Table~\ref{tab:functions} lists all functions presented in the course and their implementation status in \texttt{intercept.so}. Table~\ref{tab:functions} lists all functions presented in the course and their implementation status in \texttt{intercept.so}.
As one may see, simple file stream functions are not currently implemented in \texttt{intercept.so}. As one may see, simple file stream functions are not currently implemented in \texttt{intercept.so}.
This is because of time restrictions on this work and the fact that simple file operations may be tested easily in the conventional way of checking the resulting output. This is because of time restrictions on this work, and the fact that simple file operations may be tested easily in the conventional way of checking the resulting output.
Note that the future implementation of single functions is not very complex. Note that the future implementation of single functions is not very complex.
All other functions have at least interception and mocking (returning, failing) implemented. All other functions have at least interception and mocking (returning, failing) implemented.
For some functions the modification of function arguments has been implemented. For some functions the modification of function arguments has been implemented.
@@ -71,7 +71,7 @@ For some functions the modification of function arguments has been implemented.
\section{Performance}\label{sec:performance} \section{Performance}\label{sec:performance}
Although high performance was not a primary goal of this work, the performance degradation caused by interception and manipulation should not be excessive. Although high performance was not a primary goal of this work, the performance degradation caused by interception and manipulation should not be excessive.
The following two subsections test and discuss the performance degradation of \texttt{intercept.so} compared to running a program without any intercepting or hooking. The following two subsections test and discuss the performance degradation of \texttt{intercept.so} compared to running a program without any interception or hooking.
\subsection{Performance when Intercepting}\label{subsec:performance-intercepting} \subsection{Performance when Intercepting}\label{subsec:performance-intercepting}
@@ -80,12 +80,12 @@ To test the performance of \texttt{intercept.so}, the following measurement envi
On an x86-64 machine with an AMD Ryzen 7 7700X 8-Core processor, a simple program was called with an increasing number of iterations it had to perform. On an x86-64 machine with an AMD Ryzen 7 7700X 8-Core processor, a simple program was called with an increasing number of iterations it had to perform.
The program simply called the \texttt{pipe} function and then closed the created pipes in a for loop. The program simply called the \texttt{pipe} function and then closed the created pipes in a for loop.
At first execution time of the program was measured without using \texttt{intercept.so} (``Baseline''). At first execution time of the program was measured without using \texttt{intercept.so} (``Baseline'').
Then \texttt{intercept.so} was preloaded but without any action to perform when intercepting (``Intercepting''). Then \texttt{intercept.so} was preloaded, but without any action to perform when intercepting (``Intercepting'').
After that, logging to \texttt{stderr} was enabled (``Logging to stderr''). After that, logging to \texttt{stderr} was enabled (``Logging to stderr'').
Finally, the logs were written to a file (``Logging to file''). Finally, the logs were written to a file (``Logging to file'').
For each of the four variants, the program was called with an iteration count beginning at 100 and increasing in steps of 100 up to 5000. For each of the four variants, the program was called with an iteration count beginning at 100 and increasing in steps of 100 up to 5000.
Each measurement was taken 30 times with one second between program executions to rule out statistical outliers. Each measurement was taken 30 times, with one second between program executions to rule out statistical outliers.
Figure~\ref{fig:performance} illustrates the results. Figure~\ref{fig:intercept-performance} illustrates the results.
It is clearly visible that the initialization step of \texttt{intercept.so} always takes around 10 ms. It is clearly visible that the initialization step of \texttt{intercept.so} always takes around 10 ms.
In comparison to that, the performance degradation of the intercepting procedure alone is negligible, only around +13\% compared to the baseline execution (see ``Intercept -- 10 ms'' and ``Baseline''). In comparison to that, the performance degradation of the intercepting procedure alone is negligible, only around +13\% compared to the baseline execution (see ``Intercept -- 10 ms'' and ``Baseline'').
@@ -142,14 +142,91 @@ Most of the delay is caused by logging the recorded function calls.
\end{axis} \end{axis}
\end{tikzpicture} \end{tikzpicture}
\caption{Execution times of a simple program using \texttt{intercept.so} with different output modes.} \caption{Execution times of a simple program using \texttt{intercept.so} with different output modes.}
\label{fig:performance} \label{fig:intercept-performance}
\end{figure} \end{figure}
\subsection{Performance when Manipulating}\label{subsec:performance-manipulating} \subsection{Performance when Manipulating}\label{subsec:performance-manipulating}
Measuring performance for function call manipulation makes no sense without knowing the exact socket server to be used. Meaningful performance evaluation of function call manipulation requires a specific server implementation, since the response speed of the server dominates overall performance.
As seen in Subsection~\ref{subsec:performance-intercepting}, most delay comes not from intercepting itself, but from the further processing. As seen in Subsection~\ref{subsec:performance-intercepting}, most delay comes not from intercepting itself, but from the further processing.
This also applies to function call manipulation. This also applies to function call manipulation.
The performance degradation heavily depends on the response speed of the used socket. The performance degradation heavily depends on the response speed of the used socket.
Therefore, an explicit performance test on manipulation was deemed unlikely to yield meaningful results and was not carried out. Despite this, a simple performance test has been conducted.
The setup was the same as in Subsection~\ref{subsec:performance-intercepting}.
But this time \texttt{intercept.so} was configured to connect to a Unix domain socket.
At first, a simple C program was used to respond to the messages on the socket, only using \texttt{getline} and \texttt{fprintf}.
For the first test run the program always responded with the \texttt{"ok"} command (``Manipulate (simple ok)''), for the second with the \texttt{"return 0"} command (``Manipulate (simple return)'').
After that, the default Python implementation developed in this work, which parses the incoming messages automatically, was tested.
Again, at first always responding with the \texttt{"ok"} command (``Manipulate (Python ok)''), and then with the \texttt{"return 0"} command (``Manipulate (Python return)'').
Figure~\ref{fig:manipulate-performance} illustrates the results and some previous measurements for context.
Results of the simple C program show, that the communication over the socket alone has only minimal overhead compared with ``Logging to stderr''.
Due to the parsing of messages the Python program has slightly worse performance degradation.
The ``return'' test is slightly faster compared to the ``ok'' test, because the \texttt{pipe} function normally responds with \texttt{return 0; errno 0; fildes=[7,8]}, but when using \texttt{"return 0"} it responds with \texttt{return 0; errno 0}, which is less data to parse.
\begin{figure}
\centering
\begin{tikzpicture}
\begin{axis}[
xmin=100, xmax=5000,
ymin=0, ymax=400,
scaled y ticks=false,
ymajorgrids=true,
grid style=dashed,
legend pos=north west,
legend cell align={left},
width=\textwidth,
xlabel=Iterations,
ylabel=Execution Time,
x unit=\#,
y unit=\si{\milli\second},
]
\addplot[color=blue] table [x=Cycles, y expr=\thisrow{Baseline Avg}/1000000, col sep=semicolon] {src/performance/stat.csv};
\addlegendentry{Baseline}
\addplot[name path=a_top,color=blue!50,forget plot] table [x=Cycles, y expr=(\thisrow{Baseline Avg} + \thisrow{Baseline SD}) / 1000000, col sep=semicolon] {src/performance/stat.csv};
\addplot[name path=a_down,color=blue!50,forget plot] table [x=Cycles, y expr=(\thisrow{Baseline Avg} - \thisrow{Baseline SD}) / 1000000, col sep=semicolon] {src/performance/stat.csv};
\addplot[blue!20,fill opacity=0.2] fill between[of=a_top and a_down];
\addlegendentry{Baseline ±SD}
\addplot[color=green] table [x=Cycles, y expr=\thisrow{Intercept Avg}/1000000, col sep=semicolon] {src/performance/stat.csv};
\addlegendentry{Intercepting}
\addplot[name path=b_top,color=green!50,forget plot] table [x=Cycles, y expr=(\thisrow{Intercept Avg} + \thisrow{Intercept SD}) / 1000000, col sep=semicolon] {src/performance/stat.csv};
\addplot[name path=b_down,color=green!50,forget plot] table [x=Cycles, y expr=(\thisrow{Intercept Avg} - \thisrow{Intercept SD}) / 1000000, col sep=semicolon] {src/performance/stat.csv};
\addplot[green!20,fill opacity=0.2] fill between[of=b_top and b_down];
\addlegendentry{Intercepting ±SD}
\addplot[color=red] table [x=Cycles, y expr=\thisrow{Ok Avg}/1000000, col sep=semicolon] {src/performance/stat.csv};
\addlegendentry{Manipulate (simple ok)}
\addplot[name path=d_top,color=red!50,forget plot] table [x=Cycles, y expr=(\thisrow{Ok Avg} + \thisrow{Ok SD}) / 1000000, col sep=semicolon] {src/performance/stat.csv};
\addplot[name path=d_down,color=red!50,forget plot] table [x=Cycles, y expr=(\thisrow{Ok Avg} - \thisrow{Ok SD}) / 1000000, col sep=semicolon] {src/performance/stat.csv};
\addplot[red!20,fill opacity=0.2] fill between[of=d_top and d_down];
\addlegendentry{Manipulate (simple ok) ±SD}
\addplot[color=orange] table [x=Cycles, y expr=\thisrow{Return Avg}/1000000, col sep=semicolon] {src/performance/stat.csv};
\addlegendentry{Manipulate (simple return)}
\addplot[name path=d_top,color=orange!50,forget plot] table [x=Cycles, y expr=(\thisrow{Return Avg} + \thisrow{Return SD}) / 1000000, col sep=semicolon] {src/performance/stat.csv};
\addplot[name path=d_down,color=orange!50,forget plot] table [x=Cycles, y expr=(\thisrow{Return Avg} - \thisrow{Return SD}) / 1000000, col sep=semicolon] {src/performance/stat.csv};
\addplot[orange!20,fill opacity=0.2] fill between[of=d_top and d_down];
\addlegendentry{Manipulate (simple return) ±SD}
\addplot[color=cyan] table [x=Cycles, y expr=\thisrow{PyOk Avg}/1000000, col sep=semicolon] {src/performance/stat.csv};
\addlegendentry{Manipulate (Python ok)}
\addplot[name path=d_top,color=cyan!50,forget plot] table [x=Cycles, y expr=(\thisrow{PyOk Avg} + \thisrow{PyOk SD}) / 1000000, col sep=semicolon] {src/performance/stat.csv};
\addplot[name path=d_down,color=cyan!50,forget plot] table [x=Cycles, y expr=(\thisrow{PyOk Avg} - \thisrow{PyOk SD}) / 1000000, col sep=semicolon] {src/performance/stat.csv};
\addplot[cyan!20,fill opacity=0.2] fill between[of=d_top and d_down];
\addlegendentry{Manipulate (Python ok) ±SD}
\addplot[color=magenta] table [x=Cycles, y expr=\thisrow{PyReturn Avg}/1000000, col sep=semicolon] {src/performance/stat.csv};
\addlegendentry{Manipulate (Python return)}
\addplot[name path=d_top,color=magenta!50,forget plot] table [x=Cycles, y expr=(\thisrow{PyReturn Avg} + \thisrow{PyReturn SD}) / 1000000, col sep=semicolon] {src/performance/stat.csv};
\addplot[name path=d_down,color=magenta!50,forget plot] table [x=Cycles, y expr=(\thisrow{PyReturn Avg} - \thisrow{PyReturn SD}) / 1000000, col sep=semicolon] {src/performance/stat.csv};
\addplot[magenta!20,fill opacity=0.2] fill between[of=d_top and d_down];
\addlegendentry{Manipulate (Python return) ±SD}
\end{axis}
\end{tikzpicture}
\caption{Execution times of a simple program using \texttt{intercept.so} with different manipulation modes.}
\label{fig:manipulate-performance}
\end{figure}

View File

@@ -1,11 +1,19 @@
\chapter{Conclusion}\label{ch:conclusion} \chapter{Conclusion}\label{ch:conclusion}
This work presented \texttt{intercept.so}, a shared object file intended to be preloaded using \texttt{LD\_PRELOAD}, which may be used to intercept function calls on Linux systems. The primary goal of this work was to support the Operating Systems course by providing a practical and reliable way to automatically test students' C programs.
Furthermore, a tool to use this shared object easier---the \texttt{intercept} Python program---was presented. Exercises in this course often involve low-level concepts such as semaphores, sockets, and shared memory, which are difficult to test automatically with conventional approaches.
The motivation was therefore to develop a technique that allows intercepting function calls in order to verify whether students invoked the correct functions with appropriate arguments and in the correct order.
To address these challenges, this work presented \texttt{intercept.so}, a shared object file intended to be preloaded using \texttt{LD\_PRELOAD}, which may be used to intercept function calls on Linux systems.
Furthermore, a supporting Python program, \texttt{intercept}, was presented to make the shared object easier to use.
By using preloading to hook or intercept function calls, the overhead and performance degradation remain negligible for the purpose of testing student submissions. By using preloading to hook or intercept function calls, the overhead and performance degradation remain negligible for the purpose of testing student submissions.
To make use of intercepted function calls, some techniques of automatic testing of simple C programs were discussed. To make use of intercepted function calls, some techniques of automatic testing of simple C programs were discussed.
In addition, the work has shown that creating an automated testing tool for the Operating Systems course assignments is both feasible and practical.
The evaluation indicates that performance overhead is negligible and therefore not a hindrance to real-world use.
Finally, since the approach relies on standard and portable mechanisms, the solution can be considered future-proof and adaptable to other environments.
The source code of the programs developed in this work is attached below. The source code of the programs developed in this work is attached below.
(Not all PDF viewers may open/download attachments.) (Not all PDF viewers may open/download attachments.)

View File

@@ -96,5 +96,79 @@
month = jun, month = jun,
articleno = {ISSTA005}, articleno = {ISSTA005},
numpages = {21}, numpages = {21},
keywords = {DataHook, Hooking technique, Software analysis, Software debugging, System call} keywords = {DataHook, Hooking technique, Software analysis, Software debugging, System call},
}
@article{lopez2017,
title={A survey on function and system call hooking approaches},
author={Lopez, Juan and Babun, Leonardo and Aksu, Hidayet and Uluagac, A. Selcuk},
journal={Journal of Hardware and Systems Security},
volume={1},
number={2},
pages={114--136},
year={2017},
publisher={Springer},
}
@masterthesis{kern2023,
author = {Patrick Kern},
title = {Injecting Shared Libraries with LD\_PRELOAD for Cyber Deception},
school = {TU Wien},
year = {2023},
}
@inproceedings{guo2011cde,
title={CDE: Using system call interposition to automatically create portable software packages},
author={Guo, Philip J. and Engler, Dawson},
booktitle={2011 USENIX Annual Technical Conference (USENIX ATC 11)},
year={2011},
}
@inproceedings{detours,
title={Detours: Binary interception of Win32 functions},
author={Galen Hunt and Doug Brubacher},
booktitle={Windows NT 3rd symposium},
year={1999},
}
@inproceedings{spillane2007,
author = {Spillane, Richard P. and Wright, Charles P. and Sivathanu, Gopalan and Zadok, Erez},
title = {Rapid file system development using ptrace},
year = {2007},
isbn = {9781595937513},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/1281700.1281722},
doi = {10.1145/1281700.1281722},
booktitle = {Proceedings of the 2007 Workshop on Experimental Computer Science},
pages = {22es},
keywords = {rapid prototyping, monitors},
location = {San Diego, California},
series = {ExpCS '07},
}
@inproceedings{spif,
author = {Sze, Wai Kit and Sekar, R.},
title = {Provenance-based Integrity Protection for Windows},
year = {2015},
isbn = {9781450336826},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/2818000.2818011},
doi = {10.1145/2818000.2818011},
booktitle = {Proceedings of the 31st Annual Computer Security Applications Conference},
pages = {211220},
numpages = {10},
location = {Los Angeles, CA, USA},
series = {ACSAC '15},
}
@inproceedings{ostia,
title={Ostia: A Delegating Architecture for Secure System Call Interposition},
author={Garfinkel, Tal and Pfaff, Ben and Rosenblum, Mendel},
booktitle={NDSS},
year={2004},
}
@inproceedings{fraser2000,
author={Fraser, T. and Badger, L. and Feldman, M.},
booktitle={Proceedings DARPA Information Survivability Conference and Exposition. DISCEX'00},
title={Hardening COTS software with generic software wrappers},
year={2000},
volume={2},
number={},
pages={323-337 vol.2},
doi={10.1109/DISCEX.2000.821530},
} }

View File

@@ -0,0 +1,50 @@
13622572;13051468;13095925;12945342;13356884;13055206;13531465;12814286;13043964;13449695;13303249;13379327;13261578;12912337;13658542;13114171;13320623;13093931;13274123;13263783;13845597;7108521;13084774;13711175;13856729;13002533;13144190;13722588;13259404;13010249
16613354;16087649;16349369;16448322;16951474;16161683;16759850;17038243;16348257;16186121;16572935;16076177;17043172;16433073;16303239;16394117;16342025;16325623;16898380;16467069;16134580;16353007;16034335;16669093;16057050;16616671;16293972;16396452;16764238;16569779
19543979;19540142;19332557;19761473;19466227;19659454;20171953;19865025;19956213;19851187;20080635;19905864;19906455;19330492;20089001;19812322;19788546;19644405;19375620;19543017;20151493;20259615;20920313;20331795;19522507;20520493;19888952;19599377;20488341;20161844
23351694;22687969;23798736;24163918;23657740;23144059;24094823;22596651;22802954;22975089;23150061;24120904;23301927;22581883;23355091;22843523;23997994;25033915;23114522;22966653;23550432;23033193;22654815;22695705;22496827;22431981;23032192;22928489;23051779;22992263
26870686;26306627;27097198;29707237;29526635;26295204;25770812;26097518;28083541;26116356;25892148;26067420;26521605;25895455;26176472;26373206;26755451;26284223;25707728;26317739;27324963;27794618;26280546;26676458;27129872;28031470;28134300;26546925;26967886;26809357
29423715;29693120;29487019;29498080;30052441;30800640;29841179;29501476;30368688;30126937;31832943;29197754;29224236;29767325;29153608;29752627;31028455;29415038;31336906;29932277;29605429;29829045;29993065;30032553;28966664;29247272;27118901;30263793;29791823;29220429
32154760;32377876;32456349;32697129;32624687;32348118;32394559;32440648;33043744;32638855;33242282;32647472;33406491;33213506;32719242;33230729;32715194;32781453;32804297;32791363;32737657;33708551;33284845;32071218;32525113;32679524;33029647;32795671;32742157;35060077
35908410;35699864;35456199;35468814;35612163;35918350;36259325;37486659;37110876;36433865;35661750;35718160;35715194;35530884;36183588;35310024;36098412;36426141;36063463;36291429;36015760;35730454;35991844;35875848;37427093;38957868;36243435;35673884;35977526;36490747
39887491;38749521;39013376;41040829;42470287;38850609;39364641;39382897;38519223;39022394;39441571;38973618;39442954;38556035;39533049;39608597;39357137;39313071;39459085;39436020;38932198;38690166;39261630;39553189;39560484;38410121;39260899;39549292;40444167;40023797
42495977;42392576;43299654;42350003;43178990;42396624;42713372;42383328;43491079;42075759;50776695;42882141;42590863;42496569;44734243;41930024;44205502;45305667;46179952;42146526;42726518;44367338;42857092;42262242;43367347;42079646;42190753;47466241;42376095;44373659
45209670;46375914;44762358;46361667;45386796;45456561;45515396;46019529;46207687;51697202;45591154;45390393;44571375;46397016;45072844;45933852;45355294;45640169;45693914;45210532;45971546;46628106;45825451;45673695;44643306;45714515;45256041;44902652;45441944;47710527
49131619;48472103;48002867;49753581;49407586;48379111;48826995;49280408;48883124;48036523;47718033;48691631;49595393;50638838;49418298;48805132;48495008;48945045;48087623;49033217;49800904;48636854;50098384;49632816;49330146;48655420;49330216;48638899;49051483;50294237
52102673;52218920;51817426;51940897;56952962;52235732;51092643;51247816;51817858;51696812;53100309;51730858;52053327;52131539;58700088;51483496;52005734;52825984;52364504;52558041;51209802;51120168;51558462;53913013;51902493;51513435;53206045;53969233;52276723;52180535
56340307;56302053;57469629;57441254;56964154;55476032;55860702;56343354;55847536;56911632;55529135;57125539;55692885;54537732;55492103;56742191;58799383;55275381;58614442;56168041;55204783;55724988;55895461;55553593;57900340;54928193;56165447;54856363;54548042;55989644
58416727;58021075;59125489;58419382;58065822;57638239;61770868;58849651;58022909;58013019;63528826;58296833;58351941;58324768;58793642;58091994;58092725;65033000;60926472;60141331;58682615;59088547;59666454;59446866;59219382;58433921;57496182;58591388;58603261;58332233
63359325;62200486;61418672;61952733;61899089;66339678;61818862;61597089;61452588;62784084;60525930;61276835;63110511;61023080;62080392;61757031;62227128;61163725;62200497;63064160;62153675;62183694;61428381;61516703;61574586;62177722;65392311;61451607;62512746;64735901
64595277;64688368;67218793;64104780;64015385;63743235;70296224;65548616;64350089;63767383;64632640;64848490;64755459;66148726;65864151;65544738;64251116;64891084;67764046;64807742;66133406;65804886;65352043;66721554;63754206;64693539;68620175;64597993;64414094;65552164
69482478;68437319;67282397;68094491;67174497;73166462;68094150;72845636;68290343;68379507;69109631;67913479;67018262;68402613;69541954;67852660;69393394;66816840;71185268;67980378;69014946;68014465;67559378;67556542;68388154;67908930;70011720;67924470;68491094;69310223
70962565;72069403;70761362;72807913;72102918;72510824;71001050;72387683;71291096;76940472;73221020;75844946;70801281;75598105;73752796;71933258;71207192;71717076;72183105;75151675;70339460;70909091;70903961;70861418;70642351;70678652;70322427;70942396;73165531;71584138
75287299;76363047;74328279;75408305;74937016;77055046;75074243;77561123;75502659;74046199;73559510;79007093;74409107;75272881;77523500;79125614;75529922;74208966;73590941;75724942;74825740;74084544;74140684;78166394;74697058;74627894;76464074;75280165;76801392;78086247
78075938;78202354;80179870;77770633;78085276;79019869;76740132;77986593;79956795;85945634;79989359;78808847;79465588;77416431;78372837;81247734;80383037;77953279;79203187;80481368;76737959;78187296;77754872;77405311;77425389;77714132;77583457;77173308;79439617;77923742
80595051;82478844;80352297;81944312;83944503;79530024;78634217;80353600;80111658;82518251;83887661;85427255;84292511;80011542;80534703;84993148;80681920;80899655;81112461;80480979;80136987;81782738;80960313;81036372;85660580;84079376;80473965;81226853;81093723;82220321
83207205;84334945;84309265;85290869;84986405;83760585;85174452;89507142;84073335;86404030;88646032;84994151;85152589;86792707;84141277;83681871;88791435;84548301;84161738;86718032;83356868;83518924;84969934;83348161;83251633;83074707;89510819;84071430;83805463;87259017
86102682;90399562;88043367;87659559;95273376;86947590;87377719;89403690;89406485;86845130;86830231;87054508;85889446;88021584;86052425;88607026;89547481;88715218;89702242;90340678;88616355;86842806;91853107;87246363;89122993;86954674;90312623;88085309;89511611;88692133
90385034;98742042;91701321;92086412;90949875;91055682;89904617;90849440;89790575;90257897;91355878;89506641;92341049;89808360;91614803;90710860;91856143;89910038;90222598;91273788;90803290;90570876;91336831;90940738;90940588;89852676;93210284;90712133;98174996;90303966
94368974;96012619;94343163;95231036;94494839;92740879;92988722;98712384;93113295;93990596;94426617;93774104;95812490;94728635;94153043;94244411;93048829;92587500;96120741;95144126;93932744;96425275;96126772;94617048;93431435;95364346;93929137;94206488;93588262;94536722
99565027;96761580;99778524;99509980;98232569;96573905;97757923;96543886;97465172;98553535;97904289;97475262;96739137;96349186;96883337;97443430;99263159;98907565;96850534;96076495;100650574;96284079;97891103;97623662;96056997;96474591;99497175;95579035;99146401;96503027
98925471;99786260;99730882;99494791;100633822;106028232;101593454;102457639;101029193;102119690;100458861;100264462;102238692;100390709;101232600;100047509;103263461;103730883;99476275;100176992;100330521;101192583;103271998;101887808;99734809;100616640;104505313;99457399;101667569;101743526
103457950;107902848;103541694;109332156;103724680;104202983;104820378;106967815;103042420;103787153;104232751;103801280;104136043;103123930;102208294;107328018;104725392;103034715;104831780;103532035;103097147;105236569;102391360;101480204;103106816;105860907;106394587;103641920;103507477;102790209
104360020;108875606;106381872;105480234;108378045;109550301;105815419;106254895;105864514;109186853;105822282;111819377;106187344;106318219;106780490;106094713;105785269;105865316;105853893;107582694;107813104;105775611;106040908;107545502;105959650;108734040;106328118;107414447;108061208;107897970
111100595;109640538;109355593;111930273;109515955;108271909;110745814;115038906;109038323;109628405;109584078;108943559;110770492;110034387;110386263;109001161;109164349;109439145;109601423;111516396;111959400;111495165;109237282;109777135;109593156;110132979;110975652;108438585;109254486;110293602
116521488;113936457;111686399;118259758;115161235;118658636;112544572;114400311;117431603;113817855;113687922;116080829;112527298;116100036;112718361;111368349;111679374;112850609;112959992;112877412;112958309;117635430;116568740;112470337;113503964;115166906;116037464;124832226;114424228;112868965
115790863;123623629;119068616;117349383;114768900;120919104;115155414;115693814;115516558;115230250;115509274;115747669;118800082;117084055;116734394;119117330;114972066;118168020;117552359;116338291;115609159;115908973;117256312;115595843;116720887;115481420;118908594;116418438;116493083;117063756
118715628;119089506;120132801;119821594;125412869;120587087;126841755;125893766;118296129;121295128;121081993;121617537;122328022;127671944;119616554;122593120;120835973;121521420;119362238;120039329;121203239;122855982;128858829;120832435;120286571;119812797;118786296;121083996;119443187;119582247
122549514;121650922;122158532;124755707;121931339;123748082;123891733;123546138;121951028;122857796;123285861;128906842;121921399;121791206;122674278;124775115;122093435;125159605;122667996;124489378;123111691;121821075;121936839;120237386;122086382;121078556;121713945;121382469;127094248;122033478
127438439;132396559;127836916;127429222;125552471;125640152;126525980;129088568;130422749;124874710;127222679;128725269;130088958;127439902;130325981;124842347;131700230;125130879;130072145;126328845;127516582;125014693;124744365;127598691;126233660;125541340;124598080;128946450;124748985;131733375
132295662;129646826;133344488;134021718;129049932;128337674;128586007;134367483;130575097;130241065;137711745;131617930;133627790;128750349;128082926;128718416;130622800;128696493;131363554;131397070;129904889;129926552;127895020;129087206;127150458;139230497;130987581;130077947;128448890;133216648
134171601;130918797;132368284;131637950;135933306;134696695;135686204;133726353;145815649;130583393;130815005;136295903;132883369;130769836;132543546;132233612;133652980;135041607;132505302;134761802;133519870;137561752;131030816;131950359;134052088;133335391;131993343;130931171;135141313;132628252
135541052;136128136;135548527;135027120;138316385;136399666;138643673;137125462;138266878;134244744;135800017;135507126;136452609;135274572;137218283;136780520;140624336;140127887;140079884;134515622;135889381;134850686;140391441;135982112;136180589;135916805;133680263;134973585;139314410;133918999
138986712;142403285;136345391;141014136;142132968;138336083;138282929;143684313;142643473;138306556;137962003;137474834;138780440;139353307;138125803;140626470;137669964;136825477;141730403;138491196;139834355;137730742;138574970;127215035;140933028;139617893;137024746;139184378;140716455;138911696
141531165;141613555;140548418;140228233;142061659;141065205;141599278;141352285;143772806;153580583;144616762;139724070;141148047;141291337;145657002;144605249;143885055;145189800;142350853;145952537;143419207;145123471;143594268;143710745;140689814;149554402;145406893;141377755;141331716;146599999
147503772;145770622;145375232;158056542;149419137;143973859;148110837;155944995;144314202;143831922;144102940;143864254;145018606;147169245;150113545;147784544;146858680;145973526;143527928;155422244;147389816;147246036;145717538;145839355;146014747;145418425;145575181;145108942;145763899;145884033
151411509;148403135;147849315;151406520;150073051;150873211;149887570;148307630;146098945;157760067;145892252;148016333;149132549;151615229;147483625;148831123;148091361;153088252;147631425;151973289;150891981;151121900;147934647;147601187;146474130;150304998;147221217;148939958;149797800;147234724
153451774;151637227;150783492;152830363;156110749;151563424;153166128;154282946;157617206;150539969;150632019;151966220;153188133;159235271;156361269;150838092;151260185;150743118;150064706;152044966;153287549;159403261;151105545;153375230;151452823;151781283;151591644;152311377;151741416;150639709
153076329;155566784;156124471;154405842;158103200;156951595;155082591;154198859;155552649;155615271;153550987;154061051;155091671;154024380;156497862;154408830;159849166;152754907;154893285;154991947;154392900;153815215;160860870;150805777;170084061;146224858;153299159;158595214;155664471;163205442
143852183;162824250;159635073;159650794;159174064;156748195;163199933;156500723;159362533;157486645;158547975;157957203;164252366;159573495;156461097;161633301;156021782;155265988;157401532;158051649;159042521;165826047;157148239;157825970;165535200;156797155;157607795;158665026;157471751;158782887
159714273;161728470;159700717;160074216;161652793;160270709;162664145;161454216;160341017;165961535;161094095;161452825;165691689;159136329;162627475;161829430;160766648;159780315;160582178;160890099;163931108;162110800;159825224;165406334;162609071;166525377;163241986;161031908;160006949;161035375
165221115;163162842;164451185;165014864;164883458;165847727;162739669;165497706;165598383;163909731;164345581;164160871;163782944;166123047;163264313;163883731;165573065;172214453;167402311;162743629;165347956;162457622;164043194;164251719;164065908;163486278;162498974;164038775;168172084;164464486
167690276;167102249;167820870;170278973;166506028;169813566;166558290;170883853;167968420;167029950;169331367;166428718;168518943;167480669;170254036;166923864;166964083;169504746;168660700;170289206;167027727;168448598;166166889;165999363;172418838;167987449;167806757;169921030;166448109;166777391
175653105;175399992;170659521;170181248;171324087;170480933;171005285;172378843;168423813;172148535;171628211;172161791;171806919;169181761;170259052;175676985;170281425;173142765;172841778;171032801;172025507;173463501;170760621;178233481;173665114;173743948;174209616;173827752;182049953;169462681
1 13622572 13051468 13095925 12945342 13356884 13055206 13531465 12814286 13043964 13449695 13303249 13379327 13261578 12912337 13658542 13114171 13320623 13093931 13274123 13263783 13845597 7108521 13084774 13711175 13856729 13002533 13144190 13722588 13259404 13010249
2 16613354 16087649 16349369 16448322 16951474 16161683 16759850 17038243 16348257 16186121 16572935 16076177 17043172 16433073 16303239 16394117 16342025 16325623 16898380 16467069 16134580 16353007 16034335 16669093 16057050 16616671 16293972 16396452 16764238 16569779
3 19543979 19540142 19332557 19761473 19466227 19659454 20171953 19865025 19956213 19851187 20080635 19905864 19906455 19330492 20089001 19812322 19788546 19644405 19375620 19543017 20151493 20259615 20920313 20331795 19522507 20520493 19888952 19599377 20488341 20161844
4 23351694 22687969 23798736 24163918 23657740 23144059 24094823 22596651 22802954 22975089 23150061 24120904 23301927 22581883 23355091 22843523 23997994 25033915 23114522 22966653 23550432 23033193 22654815 22695705 22496827 22431981 23032192 22928489 23051779 22992263
5 26870686 26306627 27097198 29707237 29526635 26295204 25770812 26097518 28083541 26116356 25892148 26067420 26521605 25895455 26176472 26373206 26755451 26284223 25707728 26317739 27324963 27794618 26280546 26676458 27129872 28031470 28134300 26546925 26967886 26809357
6 29423715 29693120 29487019 29498080 30052441 30800640 29841179 29501476 30368688 30126937 31832943 29197754 29224236 29767325 29153608 29752627 31028455 29415038 31336906 29932277 29605429 29829045 29993065 30032553 28966664 29247272 27118901 30263793 29791823 29220429
7 32154760 32377876 32456349 32697129 32624687 32348118 32394559 32440648 33043744 32638855 33242282 32647472 33406491 33213506 32719242 33230729 32715194 32781453 32804297 32791363 32737657 33708551 33284845 32071218 32525113 32679524 33029647 32795671 32742157 35060077
8 35908410 35699864 35456199 35468814 35612163 35918350 36259325 37486659 37110876 36433865 35661750 35718160 35715194 35530884 36183588 35310024 36098412 36426141 36063463 36291429 36015760 35730454 35991844 35875848 37427093 38957868 36243435 35673884 35977526 36490747
9 39887491 38749521 39013376 41040829 42470287 38850609 39364641 39382897 38519223 39022394 39441571 38973618 39442954 38556035 39533049 39608597 39357137 39313071 39459085 39436020 38932198 38690166 39261630 39553189 39560484 38410121 39260899 39549292 40444167 40023797
10 42495977 42392576 43299654 42350003 43178990 42396624 42713372 42383328 43491079 42075759 50776695 42882141 42590863 42496569 44734243 41930024 44205502 45305667 46179952 42146526 42726518 44367338 42857092 42262242 43367347 42079646 42190753 47466241 42376095 44373659
11 45209670 46375914 44762358 46361667 45386796 45456561 45515396 46019529 46207687 51697202 45591154 45390393 44571375 46397016 45072844 45933852 45355294 45640169 45693914 45210532 45971546 46628106 45825451 45673695 44643306 45714515 45256041 44902652 45441944 47710527
12 49131619 48472103 48002867 49753581 49407586 48379111 48826995 49280408 48883124 48036523 47718033 48691631 49595393 50638838 49418298 48805132 48495008 48945045 48087623 49033217 49800904 48636854 50098384 49632816 49330146 48655420 49330216 48638899 49051483 50294237
13 52102673 52218920 51817426 51940897 56952962 52235732 51092643 51247816 51817858 51696812 53100309 51730858 52053327 52131539 58700088 51483496 52005734 52825984 52364504 52558041 51209802 51120168 51558462 53913013 51902493 51513435 53206045 53969233 52276723 52180535
14 56340307 56302053 57469629 57441254 56964154 55476032 55860702 56343354 55847536 56911632 55529135 57125539 55692885 54537732 55492103 56742191 58799383 55275381 58614442 56168041 55204783 55724988 55895461 55553593 57900340 54928193 56165447 54856363 54548042 55989644
15 58416727 58021075 59125489 58419382 58065822 57638239 61770868 58849651 58022909 58013019 63528826 58296833 58351941 58324768 58793642 58091994 58092725 65033000 60926472 60141331 58682615 59088547 59666454 59446866 59219382 58433921 57496182 58591388 58603261 58332233
16 63359325 62200486 61418672 61952733 61899089 66339678 61818862 61597089 61452588 62784084 60525930 61276835 63110511 61023080 62080392 61757031 62227128 61163725 62200497 63064160 62153675 62183694 61428381 61516703 61574586 62177722 65392311 61451607 62512746 64735901
17 64595277 64688368 67218793 64104780 64015385 63743235 70296224 65548616 64350089 63767383 64632640 64848490 64755459 66148726 65864151 65544738 64251116 64891084 67764046 64807742 66133406 65804886 65352043 66721554 63754206 64693539 68620175 64597993 64414094 65552164
18 69482478 68437319 67282397 68094491 67174497 73166462 68094150 72845636 68290343 68379507 69109631 67913479 67018262 68402613 69541954 67852660 69393394 66816840 71185268 67980378 69014946 68014465 67559378 67556542 68388154 67908930 70011720 67924470 68491094 69310223
19 70962565 72069403 70761362 72807913 72102918 72510824 71001050 72387683 71291096 76940472 73221020 75844946 70801281 75598105 73752796 71933258 71207192 71717076 72183105 75151675 70339460 70909091 70903961 70861418 70642351 70678652 70322427 70942396 73165531 71584138
20 75287299 76363047 74328279 75408305 74937016 77055046 75074243 77561123 75502659 74046199 73559510 79007093 74409107 75272881 77523500 79125614 75529922 74208966 73590941 75724942 74825740 74084544 74140684 78166394 74697058 74627894 76464074 75280165 76801392 78086247
21 78075938 78202354 80179870 77770633 78085276 79019869 76740132 77986593 79956795 85945634 79989359 78808847 79465588 77416431 78372837 81247734 80383037 77953279 79203187 80481368 76737959 78187296 77754872 77405311 77425389 77714132 77583457 77173308 79439617 77923742
22 80595051 82478844 80352297 81944312 83944503 79530024 78634217 80353600 80111658 82518251 83887661 85427255 84292511 80011542 80534703 84993148 80681920 80899655 81112461 80480979 80136987 81782738 80960313 81036372 85660580 84079376 80473965 81226853 81093723 82220321
23 83207205 84334945 84309265 85290869 84986405 83760585 85174452 89507142 84073335 86404030 88646032 84994151 85152589 86792707 84141277 83681871 88791435 84548301 84161738 86718032 83356868 83518924 84969934 83348161 83251633 83074707 89510819 84071430 83805463 87259017
24 86102682 90399562 88043367 87659559 95273376 86947590 87377719 89403690 89406485 86845130 86830231 87054508 85889446 88021584 86052425 88607026 89547481 88715218 89702242 90340678 88616355 86842806 91853107 87246363 89122993 86954674 90312623 88085309 89511611 88692133
25 90385034 98742042 91701321 92086412 90949875 91055682 89904617 90849440 89790575 90257897 91355878 89506641 92341049 89808360 91614803 90710860 91856143 89910038 90222598 91273788 90803290 90570876 91336831 90940738 90940588 89852676 93210284 90712133 98174996 90303966
26 94368974 96012619 94343163 95231036 94494839 92740879 92988722 98712384 93113295 93990596 94426617 93774104 95812490 94728635 94153043 94244411 93048829 92587500 96120741 95144126 93932744 96425275 96126772 94617048 93431435 95364346 93929137 94206488 93588262 94536722
27 99565027 96761580 99778524 99509980 98232569 96573905 97757923 96543886 97465172 98553535 97904289 97475262 96739137 96349186 96883337 97443430 99263159 98907565 96850534 96076495 100650574 96284079 97891103 97623662 96056997 96474591 99497175 95579035 99146401 96503027
28 98925471 99786260 99730882 99494791 100633822 106028232 101593454 102457639 101029193 102119690 100458861 100264462 102238692 100390709 101232600 100047509 103263461 103730883 99476275 100176992 100330521 101192583 103271998 101887808 99734809 100616640 104505313 99457399 101667569 101743526
29 103457950 107902848 103541694 109332156 103724680 104202983 104820378 106967815 103042420 103787153 104232751 103801280 104136043 103123930 102208294 107328018 104725392 103034715 104831780 103532035 103097147 105236569 102391360 101480204 103106816 105860907 106394587 103641920 103507477 102790209
30 104360020 108875606 106381872 105480234 108378045 109550301 105815419 106254895 105864514 109186853 105822282 111819377 106187344 106318219 106780490 106094713 105785269 105865316 105853893 107582694 107813104 105775611 106040908 107545502 105959650 108734040 106328118 107414447 108061208 107897970
31 111100595 109640538 109355593 111930273 109515955 108271909 110745814 115038906 109038323 109628405 109584078 108943559 110770492 110034387 110386263 109001161 109164349 109439145 109601423 111516396 111959400 111495165 109237282 109777135 109593156 110132979 110975652 108438585 109254486 110293602
32 116521488 113936457 111686399 118259758 115161235 118658636 112544572 114400311 117431603 113817855 113687922 116080829 112527298 116100036 112718361 111368349 111679374 112850609 112959992 112877412 112958309 117635430 116568740 112470337 113503964 115166906 116037464 124832226 114424228 112868965
33 115790863 123623629 119068616 117349383 114768900 120919104 115155414 115693814 115516558 115230250 115509274 115747669 118800082 117084055 116734394 119117330 114972066 118168020 117552359 116338291 115609159 115908973 117256312 115595843 116720887 115481420 118908594 116418438 116493083 117063756
34 118715628 119089506 120132801 119821594 125412869 120587087 126841755 125893766 118296129 121295128 121081993 121617537 122328022 127671944 119616554 122593120 120835973 121521420 119362238 120039329 121203239 122855982 128858829 120832435 120286571 119812797 118786296 121083996 119443187 119582247
35 122549514 121650922 122158532 124755707 121931339 123748082 123891733 123546138 121951028 122857796 123285861 128906842 121921399 121791206 122674278 124775115 122093435 125159605 122667996 124489378 123111691 121821075 121936839 120237386 122086382 121078556 121713945 121382469 127094248 122033478
36 127438439 132396559 127836916 127429222 125552471 125640152 126525980 129088568 130422749 124874710 127222679 128725269 130088958 127439902 130325981 124842347 131700230 125130879 130072145 126328845 127516582 125014693 124744365 127598691 126233660 125541340 124598080 128946450 124748985 131733375
37 132295662 129646826 133344488 134021718 129049932 128337674 128586007 134367483 130575097 130241065 137711745 131617930 133627790 128750349 128082926 128718416 130622800 128696493 131363554 131397070 129904889 129926552 127895020 129087206 127150458 139230497 130987581 130077947 128448890 133216648
38 134171601 130918797 132368284 131637950 135933306 134696695 135686204 133726353 145815649 130583393 130815005 136295903 132883369 130769836 132543546 132233612 133652980 135041607 132505302 134761802 133519870 137561752 131030816 131950359 134052088 133335391 131993343 130931171 135141313 132628252
39 135541052 136128136 135548527 135027120 138316385 136399666 138643673 137125462 138266878 134244744 135800017 135507126 136452609 135274572 137218283 136780520 140624336 140127887 140079884 134515622 135889381 134850686 140391441 135982112 136180589 135916805 133680263 134973585 139314410 133918999
40 138986712 142403285 136345391 141014136 142132968 138336083 138282929 143684313 142643473 138306556 137962003 137474834 138780440 139353307 138125803 140626470 137669964 136825477 141730403 138491196 139834355 137730742 138574970 127215035 140933028 139617893 137024746 139184378 140716455 138911696
41 141531165 141613555 140548418 140228233 142061659 141065205 141599278 141352285 143772806 153580583 144616762 139724070 141148047 141291337 145657002 144605249 143885055 145189800 142350853 145952537 143419207 145123471 143594268 143710745 140689814 149554402 145406893 141377755 141331716 146599999
42 147503772 145770622 145375232 158056542 149419137 143973859 148110837 155944995 144314202 143831922 144102940 143864254 145018606 147169245 150113545 147784544 146858680 145973526 143527928 155422244 147389816 147246036 145717538 145839355 146014747 145418425 145575181 145108942 145763899 145884033
43 151411509 148403135 147849315 151406520 150073051 150873211 149887570 148307630 146098945 157760067 145892252 148016333 149132549 151615229 147483625 148831123 148091361 153088252 147631425 151973289 150891981 151121900 147934647 147601187 146474130 150304998 147221217 148939958 149797800 147234724
44 153451774 151637227 150783492 152830363 156110749 151563424 153166128 154282946 157617206 150539969 150632019 151966220 153188133 159235271 156361269 150838092 151260185 150743118 150064706 152044966 153287549 159403261 151105545 153375230 151452823 151781283 151591644 152311377 151741416 150639709
45 153076329 155566784 156124471 154405842 158103200 156951595 155082591 154198859 155552649 155615271 153550987 154061051 155091671 154024380 156497862 154408830 159849166 152754907 154893285 154991947 154392900 153815215 160860870 150805777 170084061 146224858 153299159 158595214 155664471 163205442
46 143852183 162824250 159635073 159650794 159174064 156748195 163199933 156500723 159362533 157486645 158547975 157957203 164252366 159573495 156461097 161633301 156021782 155265988 157401532 158051649 159042521 165826047 157148239 157825970 165535200 156797155 157607795 158665026 157471751 158782887
47 159714273 161728470 159700717 160074216 161652793 160270709 162664145 161454216 160341017 165961535 161094095 161452825 165691689 159136329 162627475 161829430 160766648 159780315 160582178 160890099 163931108 162110800 159825224 165406334 162609071 166525377 163241986 161031908 160006949 161035375
48 165221115 163162842 164451185 165014864 164883458 165847727 162739669 165497706 165598383 163909731 164345581 164160871 163782944 166123047 163264313 163883731 165573065 172214453 167402311 162743629 165347956 162457622 164043194 164251719 164065908 163486278 162498974 164038775 168172084 164464486
49 167690276 167102249 167820870 170278973 166506028 169813566 166558290 170883853 167968420 167029950 169331367 166428718 168518943 167480669 170254036 166923864 166964083 169504746 168660700 170289206 167027727 168448598 166166889 165999363 172418838 167987449 167806757 169921030 166448109 166777391
50 175653105 175399992 170659521 170181248 171324087 170480933 171005285 172378843 168423813 172148535 171628211 172161791 171806919 169181761 170259052 175676985 170281425 173142765 172841778 171032801 172025507 173463501 170760621 178233481 173665114 173743948 174209616 173827752 182049953 169462681

View File

@@ -0,0 +1,50 @@
13293759;13073590;13025155;13588724;13167112;13142995;13018222;13109019;13565248;13188594;13648711;12835836;12977393;13006980;13709780;13444583;12784937;13380027;13146031;13330591;12959748;12918337;13025606;13138246;13195668;13021929;13187071;13241047;13024504;13162062
16148395;16131542;16831116;16291344;16491484;16145670;16149788;16425656;15707686;16767342;16787281;16416588;16403542;16345469;16765980;16113126;16750459;16893087;16471555;16487496;16441607;16785447;17140019;16287897;16157834;15812962;16461516;16313618;16211348;16807069
19626377;19756991;19101002;20034572;19044322;19132805;19942282;19454511;19192741;19429092;20142714;24682736;21195046;23255884;20784956;19152643;18901854;18906803;17534689;18262227;18373785;18459402;18829513;18348045;18638551;18627861;18208722;18276625;18422891;17911123
21262898;21222348;21340369;20944638;22235675;20914929;20799083;21237148;21593131;21065483;21344818;21218491;21290181;21394856;22507104;21978253;20528216;22313957;23055403;20541161;20505311;22567282;20486444;22184736;21402801;21259421;21876345;21410406;21345158;20846146
24295572;23761019;24330560;24656405;24476314;24689349;24155509;24346641;24221928;24933886;23540639;26004855;24097346;25580417;24590436;26893909;23447668;24148375;23645434;24209113;23874871;24287516;24393252;25745820;24096744;24814073;23524809;24309659;24581509;24174486
28027789;27688508;28249873;27167853;27626516;27385136;26914608;26068709;27384856;27766149;26997490;27609683;29858389;27315129;28071856;27578773;29230434;27659632;26648961;26673108;27258830;27533065;27351832;28318176;27111292;28970127;27470944;26388072;27385858;27610196
30281634;30429643;29110761;30304839;30107885;29666464;32222378;30598863;30499389;30419503;30060393;30385166;30474060;29429373;29415265;30128165;31564355;30116182;28798072;31405436;29987230;29989134;31356701;29375227;31264872;31532885;32014524;30829152;31997601;31448109
35611777;35519107;36007790;36264641;34842808;35099930;36548494;35746941;36093717;35402069;35977141;39007258;35527243;36086624;35046506;34579865;35054301;36300340;34387240;35082436;34396979;35520340;34909850;35257958;36317093;35433691;36040284;36032769;35644011;35843850
39350779;38404123;37870172;40214964;39559326;38772422;39016177;40246345;38809664;39245043;37711973;39334738;38118757;40042979;38847458;42125670;42408020;38935990;38782391;39061555;38674731;42649511;39108838;39020365;39102215;38866745;39800536;38237258;38567312;39375107
41531312;40708076;42343756;41869079;41300050;41977261;42531652;39708557;44147984;42911222;43987220;41776649;45570067;42464101;42106132;40295963;42991539;43447318;42582211;43409514;41747513;42494029;42862136;40535670;42463279;43102886;42571781;43869301;42479191;42247729
47600686;45592631;45196168;44184115;46188804;44817580;46083689;44018571;44496444;45272778;45900462;45933095;45154377;45470784;43960299;46489059;45878509;46201929;45660413;44345339;44073740;45572763;45841397;43608442;42667928;45567763;42609214;42717686;41828392;42524950
43563786;45938296;44871214;46492386;45360730;45426477;45594034;46390698;45559557;45551552;47306153;44695001;45329098;44285623;45448341;45609284;45986771;43144548;45226488;44961261;44368725;43526554;46666896;46962313;46744819;45480093;43860725;47584716;48214895;48500943
51876847;52351602;52121473;51765740;51446106;51782673;51577302;53319750;52287958;52172823;51799295;50637189;50761863;51222451;51826197;52742955;50060986;52198043;52496745;51270935;49661136;51484993;51942755;50213773;51775689;56577803;54044143;51090934;52220878;50974788
56007101;53572423;55100052;55428302;54446728;55902216;53920192;54837129;54498629;55323308;55097326;57179376;53422221;54244594;55463450;55142635;55311946;54227280;55996671;56075214;55892557;55003884;54914361;55079282;57285854;55094842;56376110;55732455;54983224;54548918
58086276;58788916;57464894;58395679;57712276;58852630;59480875;58723378;58603324;57987022;57645055;59284693;58990048;57131854;57049945;58061217;57525042;59203474;58010217;58367825;58598685;57547025;58972364;56723187;58052590;59172133;57438152;58986822;59212932;58502738
61496596;61318388;60620608;62090103;61874803;64982183;60872288;59946263;60544950;61941404;62539290;60437531;67235457;61244675;60939841;61322808;62307898;62396972;60880064;62853092;62930793;61538699;62307468;66614486;61674344;61189718;59972765;61270074;62523819;60731084
66525072;65435959;64664805;66020067;64562285;65748438;63722007;70809426;65789548;64967495;64194638;63566904;65073381;64936154;65035428;65389268;64164921;63533189;64551855;65851519;65077120;65849916;64137667;64821842;65302378;65333218;65043364;65462230;63389138;64501457
68721245;68000219;68518830;69621591;68044876;68064355;68146224;68232733;68582325;65887289;66537917;67156945;67799868;68353658;70216722;67899664;68478091;68444216;68134882;69221111;68997604;69060286;67296668;66950292;68544431;68740764;68998457;68488973;68022613;67699614
70303451;71210691;72063053;71293652;69977265;70806523;70433255;71952116;70670878;71373418;71468243;71523480;71378257;71813115;71586904;71957637;70457532;71839517;72663854;71916116;70772075;71258804;71483042;70207424;70791143;71032995;70946216;71399329;71212514;70347648
73755904;75924563;74807214;74362958;73537127;73446130;72923592;75081640;75377727;75396804;74785602;74108783;74756335;74778158;75339342;73676930;74141757;73418457;74866531;75425089;75777516;74585042;74285658;76561936;74847353;72912610;75724995;76737980;75442694;74902962
75745093;78984741;78601554;79022274;76556736;77271190;79856772;77693163;75557778;76010330;76886951;78478834;78797977;75685959;78541477;78016373;75781735;78184711;76347088;75875638;77231903;77108924;78310807;77376916;75233817;79288875;76540776;79163701;77865890;81477743
80635471;80493754;80150175;82408588;81550715;81270900;83089927;81260229;82986404;82941768;83453156;85106158;81947109;79782878;81611263;81052013;81400953;80580574;80651593;84468605;81419119;80174462;81113663;81469658;81978499;80759253;80290539;82099215;80827856;81932560
86680900;83847605;84087693;84219951;84113103;84260931;83940756;86630933;84677173;82959393;84906760;85400042;85273405;84075039;83192779;81377098;84609912;85326429;82753361;84024791;85075981;83962179;85477754;85282914;83928293;84528763;83795494;83915668;83666051;82509176
86362469;87878365;89146378;88575164;87093074;86993971;88384162;86241103;87954434;86768351;87156858;88941920;87520127;88164904;87636264;88411906;86661452;88049669;86988320;88621825;86807517;87048819;86482053;89620203;90826245;87721099;87098375;88143073;87295179;86850531
90577831;90340447;91342150;91517663;90168922;89460842;91183892;89873397;90700991;90533685;100498746;90051333;90039601;89589463;90487254;90543083;92326881;91068648;90442086;91331941;91203059;91083667;91816766;90710288;90429821;90427708;90534326;91582910;90596166;89989313
94242677;95983011;93534998;97282294;94903556;94169195;94465382;93722202;94234993;93216647;94364255;92924968;95835083;93790766;95492155;92556820;93335729;94511933;94489559;96074108;94321832;93646736;94212479;94532143;93414834;95148574;93395896;95009152;95191708;95150097
101281313;97084239;98263058;99464861;98710340;97303246;95437318;97199645;96183794;96561981;97047759;98249812;97017810;97503146;97596678;97527915;98117103;98480772;96005536;96710550;97119358;98420755;97767021;97016518;96954797;98825214;96691484;97448540;98861786;97794224
99309860;100087587;104834503;102229383;97657738;101879921;98129959;101047418;101325260;99720120;100579405;98560238;100964687;100793723;101338917;101866055;101022900;100503698;99581430;101586460;101515561;100022209;100835926;100681295;98890182;100773614;103146111;101245054;100423441;101263600
103176861;101274241;107428121;103315632;103758806;105303118;104288770;102952373;105369597;104304800;103077217;103848381;103882317;103635055;103282106;103593864;102755218;102779326;103354487;103493609;104168034;105559377;104154778;104210748;105059202;104195868;103018753;102406720;104887838;103763987
104479031;108352143;107994386;107468270;105887428;107362624;106737465;106180469;107073360;109656307;107228211;107485073;106957936;107216429;106270584;106894421;104872188;106487478;106229875;106874262;108010929;105365509;108020628;106951913;107506385;106372945;107730031;107526634;107081556;106517006
111913128;110898731;109714701;111470044;110336785;114364027;112039054;115399778;111663442;111220257;108837601;110860065;110009597;111128649;110467329;110668331;109557956;109770400;110101426;111319591;110246108;110741705;110485394;110736995;108765430;107881757;111064454;109046759;107417291;115020930
115090414;115000560;113113690;113325493;116011421;114351473;113767706;114167846;114176883;115255016;113504822;114037933;112493782;114606351;113207954;113978156;112543349;117086577;113520113;111003685;114529240;114800720;110866087;114413505;115105534;117672501;118024858;116668773;114187524;113851669
117432001;119698572;116823475;116160332;120375872;118038494;118141736;119408375;115911406;116999829;118967545;115747407;116380461;116169960;114445338;116870145;116178247;116001832;116299863;115127287;115440338;121794198;116453173;114403135;115901918;116042222;118475947;115959711;117076789;116536045
120230289;119313601;118434577;119956204;119558699;121880707;122571414;120375612;118963659;119436491;120477401;121968358;119370322;121176724;118761885;119830719;119763899;120230620;123017103;120867121;120443836;121770252;120466239;120362807;119976424;118650519;17400042;121149712;121562848;119045710
127147218;122654968;122584781;123604159;125278614;124305776;122124182;123138019;122541687;124211042;123719113;122033115;122846742;121853194;126183599;123281359;124459497;122762347;124541587;122441421;122102941;124382697;123237184;123049808;123715005;123535214;125472422;119224999;126962347;122937077
126026062;126820972;125297070;125944924;126879876;125668544;128516569;128245710;125272693;126081410;128558651;125918622;130798128;127379521;126333922;126700948;126907381;125944964;126932790;125233066;128036502;127372016;134243436;124204139;125431002;128345756;130350475;126937420;127124013;127932951
133940286;127082152;131642364;128342109;131778720;133685849;129934344;132108533;128611845;130025281;130274387;129941868;130885608;129516700;130055190;131565374;130743772;130530627;132663406;130629118;126012707;128514505;134436804;128782037;130103814;129699125;129852504;131278104;128792137;121975213
130958080;132410433;131103764;132495167;136005554;133724435;131782648;143681031;132918684;133946107;138074959;131233367;134548131;134829601;132602808;134151618;132311129;132416835;133380445;132932862;134893545;134673526;134236414;134513354;132922562;134440972;135645191;134135938;134708234;134951839
135037687;134701030;136007397;136928243;136591346;136208590;136444600;135512653;137763301;134978170;135173151;138792218;136297514;136765936;136395284;136748643;136671603;136982720;137000935;135700499;136081132;134896331;134871142;136590555;135777159;136830282;135893415;137024181;136295629;135405664
139263948;137593771;138042476;140229641;138897374;138958523;139463468;141608710;138312533;139392009;139347361;139674278;140022488;138628409;140630082;139504488;138952361;140332633;138329366;138776819;139001527;138404682;139347261;143028550;147144807;138634391;139868638;140802469;139693827;139574855
143216837;141511081;142243779;145327012;142649411;142172801;141026315;140815635;145104298;143876964;144341611;142399113;142555858;143299278;144109238;132331590;148986499;146170818;142683237;141685080;142878157;142640223;141818320;142960367;144204784;142905000;142064410;141939997;141201788;140802409
146754757;149508156;147901042;146177161;150913547;145474841;145292345;147100711;146131371;144682155;147425495;146581569;146887256;145882426;148307084;144821387;145410225;145929989;148376129;148017059;147056947;145540950;147119488;146098778;146252798;145682827;145185617;144036406;146517123;146068850
149140159;151260865;150753075;150463400;150096263;150159867;149218582;153450294;149410656;148457908;150132274;149196579;150075904;149484901;147550269;149687627;147900702;149873158;149445053;149695652;147867798;149034713;146295993;152552334;148656736;150036857;150884731;148465614;145516623;149787652
154687387;153290883;152982722;153173925;154023823;151197923;151075834;151594546;150089922;154414786;153252498;154975669;157253621;152534930;151418822;151178094;151983574;154008312;152977142;153392302;153697487;153203082;154605908;155593534;154681595;152964137;152980699;149385618;153699050;153091775
153765660;156015918;152704651;156083861;156804586;155109570;154471917;155995288;153660464;152854052;156349789;152914871;153600968;151276626;154029013;155225646;153973194;153257419;155404986;156189697;155295343;155190949;156987433;154718989;160283911;156710322;154452329;157501104;155282217;160709491
160357685;158227210;160072228;160163376;155267959;158169728;158944499;158188626;160437411;153475204;161465375;158253873;159852259;159680354;156678190;156628052;158438592;159686216;157448823;161403275;157802722;159049764;158610258;158004897;160229495;159584197;160321144;160037541;159104030;158764308
161526906;163006591;166927397;164468261;161394317;163339821;163058182;162970000;160321115;166133509;162525954;159893379;164348769;161770410;163902098;164906106;166187765;163576612;161331254;163447551;161594567;159776192;163897969;158191762;161851428;163253072;163133127;163424246;161870556;163356484
165402193;165676348;167694603;166326224;165327938;165218806;166042602;166459074;165459094;163389899;166995641;165258934;165079263;163165571;167691567;169061529;168578317;164809708;165191632;166095806;165478903;165697438;163092499;163989398;162096778;165990491;164847862;164361454;164459264;165855437
166302719;171449445;168446700;170049526;173827253;170562186;168704984;171085947;171160463;167124070;169020680;168600630;167565873;169585902;168732257;167603867;168582475;166624447;169468483;169942748;169498862;171722699;165196032;170458814;168776994;172456721;168030108;170350193;167387796;168873022
172249586;172854977;170788097;172906768;172915946;170279554;172401653;172376374;171588688;170625239;173866209;169334281;171883172;177166786;173873403;174937769;172629678;171411763;173121527;170239216;172972156;170475738;171420260;171661269;171306869;173665278;172436591;172686088;173077291;173355323
1 13293759 13073590 13025155 13588724 13167112 13142995 13018222 13109019 13565248 13188594 13648711 12835836 12977393 13006980 13709780 13444583 12784937 13380027 13146031 13330591 12959748 12918337 13025606 13138246 13195668 13021929 13187071 13241047 13024504 13162062
2 16148395 16131542 16831116 16291344 16491484 16145670 16149788 16425656 15707686 16767342 16787281 16416588 16403542 16345469 16765980 16113126 16750459 16893087 16471555 16487496 16441607 16785447 17140019 16287897 16157834 15812962 16461516 16313618 16211348 16807069
3 19626377 19756991 19101002 20034572 19044322 19132805 19942282 19454511 19192741 19429092 20142714 24682736 21195046 23255884 20784956 19152643 18901854 18906803 17534689 18262227 18373785 18459402 18829513 18348045 18638551 18627861 18208722 18276625 18422891 17911123
4 21262898 21222348 21340369 20944638 22235675 20914929 20799083 21237148 21593131 21065483 21344818 21218491 21290181 21394856 22507104 21978253 20528216 22313957 23055403 20541161 20505311 22567282 20486444 22184736 21402801 21259421 21876345 21410406 21345158 20846146
5 24295572 23761019 24330560 24656405 24476314 24689349 24155509 24346641 24221928 24933886 23540639 26004855 24097346 25580417 24590436 26893909 23447668 24148375 23645434 24209113 23874871 24287516 24393252 25745820 24096744 24814073 23524809 24309659 24581509 24174486
6 28027789 27688508 28249873 27167853 27626516 27385136 26914608 26068709 27384856 27766149 26997490 27609683 29858389 27315129 28071856 27578773 29230434 27659632 26648961 26673108 27258830 27533065 27351832 28318176 27111292 28970127 27470944 26388072 27385858 27610196
7 30281634 30429643 29110761 30304839 30107885 29666464 32222378 30598863 30499389 30419503 30060393 30385166 30474060 29429373 29415265 30128165 31564355 30116182 28798072 31405436 29987230 29989134 31356701 29375227 31264872 31532885 32014524 30829152 31997601 31448109
8 35611777 35519107 36007790 36264641 34842808 35099930 36548494 35746941 36093717 35402069 35977141 39007258 35527243 36086624 35046506 34579865 35054301 36300340 34387240 35082436 34396979 35520340 34909850 35257958 36317093 35433691 36040284 36032769 35644011 35843850
9 39350779 38404123 37870172 40214964 39559326 38772422 39016177 40246345 38809664 39245043 37711973 39334738 38118757 40042979 38847458 42125670 42408020 38935990 38782391 39061555 38674731 42649511 39108838 39020365 39102215 38866745 39800536 38237258 38567312 39375107
10 41531312 40708076 42343756 41869079 41300050 41977261 42531652 39708557 44147984 42911222 43987220 41776649 45570067 42464101 42106132 40295963 42991539 43447318 42582211 43409514 41747513 42494029 42862136 40535670 42463279 43102886 42571781 43869301 42479191 42247729
11 47600686 45592631 45196168 44184115 46188804 44817580 46083689 44018571 44496444 45272778 45900462 45933095 45154377 45470784 43960299 46489059 45878509 46201929 45660413 44345339 44073740 45572763 45841397 43608442 42667928 45567763 42609214 42717686 41828392 42524950
12 43563786 45938296 44871214 46492386 45360730 45426477 45594034 46390698 45559557 45551552 47306153 44695001 45329098 44285623 45448341 45609284 45986771 43144548 45226488 44961261 44368725 43526554 46666896 46962313 46744819 45480093 43860725 47584716 48214895 48500943
13 51876847 52351602 52121473 51765740 51446106 51782673 51577302 53319750 52287958 52172823 51799295 50637189 50761863 51222451 51826197 52742955 50060986 52198043 52496745 51270935 49661136 51484993 51942755 50213773 51775689 56577803 54044143 51090934 52220878 50974788
14 56007101 53572423 55100052 55428302 54446728 55902216 53920192 54837129 54498629 55323308 55097326 57179376 53422221 54244594 55463450 55142635 55311946 54227280 55996671 56075214 55892557 55003884 54914361 55079282 57285854 55094842 56376110 55732455 54983224 54548918
15 58086276 58788916 57464894 58395679 57712276 58852630 59480875 58723378 58603324 57987022 57645055 59284693 58990048 57131854 57049945 58061217 57525042 59203474 58010217 58367825 58598685 57547025 58972364 56723187 58052590 59172133 57438152 58986822 59212932 58502738
16 61496596 61318388 60620608 62090103 61874803 64982183 60872288 59946263 60544950 61941404 62539290 60437531 67235457 61244675 60939841 61322808 62307898 62396972 60880064 62853092 62930793 61538699 62307468 66614486 61674344 61189718 59972765 61270074 62523819 60731084
17 66525072 65435959 64664805 66020067 64562285 65748438 63722007 70809426 65789548 64967495 64194638 63566904 65073381 64936154 65035428 65389268 64164921 63533189 64551855 65851519 65077120 65849916 64137667 64821842 65302378 65333218 65043364 65462230 63389138 64501457
18 68721245 68000219 68518830 69621591 68044876 68064355 68146224 68232733 68582325 65887289 66537917 67156945 67799868 68353658 70216722 67899664 68478091 68444216 68134882 69221111 68997604 69060286 67296668 66950292 68544431 68740764 68998457 68488973 68022613 67699614
19 70303451 71210691 72063053 71293652 69977265 70806523 70433255 71952116 70670878 71373418 71468243 71523480 71378257 71813115 71586904 71957637 70457532 71839517 72663854 71916116 70772075 71258804 71483042 70207424 70791143 71032995 70946216 71399329 71212514 70347648
20 73755904 75924563 74807214 74362958 73537127 73446130 72923592 75081640 75377727 75396804 74785602 74108783 74756335 74778158 75339342 73676930 74141757 73418457 74866531 75425089 75777516 74585042 74285658 76561936 74847353 72912610 75724995 76737980 75442694 74902962
21 75745093 78984741 78601554 79022274 76556736 77271190 79856772 77693163 75557778 76010330 76886951 78478834 78797977 75685959 78541477 78016373 75781735 78184711 76347088 75875638 77231903 77108924 78310807 77376916 75233817 79288875 76540776 79163701 77865890 81477743
22 80635471 80493754 80150175 82408588 81550715 81270900 83089927 81260229 82986404 82941768 83453156 85106158 81947109 79782878 81611263 81052013 81400953 80580574 80651593 84468605 81419119 80174462 81113663 81469658 81978499 80759253 80290539 82099215 80827856 81932560
23 86680900 83847605 84087693 84219951 84113103 84260931 83940756 86630933 84677173 82959393 84906760 85400042 85273405 84075039 83192779 81377098 84609912 85326429 82753361 84024791 85075981 83962179 85477754 85282914 83928293 84528763 83795494 83915668 83666051 82509176
24 86362469 87878365 89146378 88575164 87093074 86993971 88384162 86241103 87954434 86768351 87156858 88941920 87520127 88164904 87636264 88411906 86661452 88049669 86988320 88621825 86807517 87048819 86482053 89620203 90826245 87721099 87098375 88143073 87295179 86850531
25 90577831 90340447 91342150 91517663 90168922 89460842 91183892 89873397 90700991 90533685 100498746 90051333 90039601 89589463 90487254 90543083 92326881 91068648 90442086 91331941 91203059 91083667 91816766 90710288 90429821 90427708 90534326 91582910 90596166 89989313
26 94242677 95983011 93534998 97282294 94903556 94169195 94465382 93722202 94234993 93216647 94364255 92924968 95835083 93790766 95492155 92556820 93335729 94511933 94489559 96074108 94321832 93646736 94212479 94532143 93414834 95148574 93395896 95009152 95191708 95150097
27 101281313 97084239 98263058 99464861 98710340 97303246 95437318 97199645 96183794 96561981 97047759 98249812 97017810 97503146 97596678 97527915 98117103 98480772 96005536 96710550 97119358 98420755 97767021 97016518 96954797 98825214 96691484 97448540 98861786 97794224
28 99309860 100087587 104834503 102229383 97657738 101879921 98129959 101047418 101325260 99720120 100579405 98560238 100964687 100793723 101338917 101866055 101022900 100503698 99581430 101586460 101515561 100022209 100835926 100681295 98890182 100773614 103146111 101245054 100423441 101263600
29 103176861 101274241 107428121 103315632 103758806 105303118 104288770 102952373 105369597 104304800 103077217 103848381 103882317 103635055 103282106 103593864 102755218 102779326 103354487 103493609 104168034 105559377 104154778 104210748 105059202 104195868 103018753 102406720 104887838 103763987
30 104479031 108352143 107994386 107468270 105887428 107362624 106737465 106180469 107073360 109656307 107228211 107485073 106957936 107216429 106270584 106894421 104872188 106487478 106229875 106874262 108010929 105365509 108020628 106951913 107506385 106372945 107730031 107526634 107081556 106517006
31 111913128 110898731 109714701 111470044 110336785 114364027 112039054 115399778 111663442 111220257 108837601 110860065 110009597 111128649 110467329 110668331 109557956 109770400 110101426 111319591 110246108 110741705 110485394 110736995 108765430 107881757 111064454 109046759 107417291 115020930
32 115090414 115000560 113113690 113325493 116011421 114351473 113767706 114167846 114176883 115255016 113504822 114037933 112493782 114606351 113207954 113978156 112543349 117086577 113520113 111003685 114529240 114800720 110866087 114413505 115105534 117672501 118024858 116668773 114187524 113851669
33 117432001 119698572 116823475 116160332 120375872 118038494 118141736 119408375 115911406 116999829 118967545 115747407 116380461 116169960 114445338 116870145 116178247 116001832 116299863 115127287 115440338 121794198 116453173 114403135 115901918 116042222 118475947 115959711 117076789 116536045
34 120230289 119313601 118434577 119956204 119558699 121880707 122571414 120375612 118963659 119436491 120477401 121968358 119370322 121176724 118761885 119830719 119763899 120230620 123017103 120867121 120443836 121770252 120466239 120362807 119976424 118650519 17400042 121149712 121562848 119045710
35 127147218 122654968 122584781 123604159 125278614 124305776 122124182 123138019 122541687 124211042 123719113 122033115 122846742 121853194 126183599 123281359 124459497 122762347 124541587 122441421 122102941 124382697 123237184 123049808 123715005 123535214 125472422 119224999 126962347 122937077
36 126026062 126820972 125297070 125944924 126879876 125668544 128516569 128245710 125272693 126081410 128558651 125918622 130798128 127379521 126333922 126700948 126907381 125944964 126932790 125233066 128036502 127372016 134243436 124204139 125431002 128345756 130350475 126937420 127124013 127932951
37 133940286 127082152 131642364 128342109 131778720 133685849 129934344 132108533 128611845 130025281 130274387 129941868 130885608 129516700 130055190 131565374 130743772 130530627 132663406 130629118 126012707 128514505 134436804 128782037 130103814 129699125 129852504 131278104 128792137 121975213
38 130958080 132410433 131103764 132495167 136005554 133724435 131782648 143681031 132918684 133946107 138074959 131233367 134548131 134829601 132602808 134151618 132311129 132416835 133380445 132932862 134893545 134673526 134236414 134513354 132922562 134440972 135645191 134135938 134708234 134951839
39 135037687 134701030 136007397 136928243 136591346 136208590 136444600 135512653 137763301 134978170 135173151 138792218 136297514 136765936 136395284 136748643 136671603 136982720 137000935 135700499 136081132 134896331 134871142 136590555 135777159 136830282 135893415 137024181 136295629 135405664
40 139263948 137593771 138042476 140229641 138897374 138958523 139463468 141608710 138312533 139392009 139347361 139674278 140022488 138628409 140630082 139504488 138952361 140332633 138329366 138776819 139001527 138404682 139347261 143028550 147144807 138634391 139868638 140802469 139693827 139574855
41 143216837 141511081 142243779 145327012 142649411 142172801 141026315 140815635 145104298 143876964 144341611 142399113 142555858 143299278 144109238 132331590 148986499 146170818 142683237 141685080 142878157 142640223 141818320 142960367 144204784 142905000 142064410 141939997 141201788 140802409
42 146754757 149508156 147901042 146177161 150913547 145474841 145292345 147100711 146131371 144682155 147425495 146581569 146887256 145882426 148307084 144821387 145410225 145929989 148376129 148017059 147056947 145540950 147119488 146098778 146252798 145682827 145185617 144036406 146517123 146068850
43 149140159 151260865 150753075 150463400 150096263 150159867 149218582 153450294 149410656 148457908 150132274 149196579 150075904 149484901 147550269 149687627 147900702 149873158 149445053 149695652 147867798 149034713 146295993 152552334 148656736 150036857 150884731 148465614 145516623 149787652
44 154687387 153290883 152982722 153173925 154023823 151197923 151075834 151594546 150089922 154414786 153252498 154975669 157253621 152534930 151418822 151178094 151983574 154008312 152977142 153392302 153697487 153203082 154605908 155593534 154681595 152964137 152980699 149385618 153699050 153091775
45 153765660 156015918 152704651 156083861 156804586 155109570 154471917 155995288 153660464 152854052 156349789 152914871 153600968 151276626 154029013 155225646 153973194 153257419 155404986 156189697 155295343 155190949 156987433 154718989 160283911 156710322 154452329 157501104 155282217 160709491
46 160357685 158227210 160072228 160163376 155267959 158169728 158944499 158188626 160437411 153475204 161465375 158253873 159852259 159680354 156678190 156628052 158438592 159686216 157448823 161403275 157802722 159049764 158610258 158004897 160229495 159584197 160321144 160037541 159104030 158764308
47 161526906 163006591 166927397 164468261 161394317 163339821 163058182 162970000 160321115 166133509 162525954 159893379 164348769 161770410 163902098 164906106 166187765 163576612 161331254 163447551 161594567 159776192 163897969 158191762 161851428 163253072 163133127 163424246 161870556 163356484
48 165402193 165676348 167694603 166326224 165327938 165218806 166042602 166459074 165459094 163389899 166995641 165258934 165079263 163165571 167691567 169061529 168578317 164809708 165191632 166095806 165478903 165697438 163092499 163989398 162096778 165990491 164847862 164361454 164459264 165855437
49 166302719 171449445 168446700 170049526 173827253 170562186 168704984 171085947 171160463 167124070 169020680 168600630 167565873 169585902 168732257 167603867 168582475 166624447 169468483 169942748 169498862 171722699 165196032 170458814 168776994 172456721 168030108 170350193 167387796 168873022
50 172249586 172854977 170788097 172906768 172915946 170279554 172401653 172376374 171588688 170625239 173866209 169334281 171883172 177166786 173873403 174937769 172629678 171411763 173121527 170239216 172972156 170475738 171420260 171661269 171306869 173665278 172436591 172686088 173077291 173355323

View File

@@ -0,0 +1,50 @@
17216356;16955417;17116330;17316731;17063448;17122082;16805635;17508706;16852286;17592139;17356259;16894588;17223499;16915630;17074489;16664359;17287775;17252766;16800475;17329266;17173382;17119116;16925368;16969945;16852787;17040584;17339566;16683788;17333795;17653930
23794712;23862985;24060801;24371546;24444849;23795733;24303864;23634319;23978861;23562759;24610382;23791736;24009901;23799321;24105698;24221785;23706109;23873575;26407646;24416855;24397186;23775815;24226393;24448667;24329915;23720327;24178219;23862223;23813308;24431523
30559812;30788056;30593116;31121687;31389429;31431912;30999669;30909744;30594479;30462602;31829908;31038164;30603146;31046741;30487701;30999139;31045579;31297750;31217193;31039617;30594439;30834498;30814107;30605350;30854526;30821221;30938230;31733190;32656410;31472822
37320142;37958487;37255877;37484643;38858081;38217552;37863632;38122016;38612051;40952955;37276878;37806471;37992082;37981963;37890875;39330993;37599668;37658722;40429926;37753538;40256678;38064624;37285335;38065496;37701035;37711426;37290124;37628053;37941895;38169970
45862577;45620616;48323676;43992582;45198353;45139068;44564227;45449933;44785388;44189907;45677929;45412160;46317886;44943125;44625326;44126193;44510883;44121754;45188945;45570659;44327255;44878500;47583093;44008162;45249273;44445836;44285193;44244964;48182131;41330793
50926221;51787770;54909217;51294730;51477787;53681223;51634763;51675041;51594504;50792540;52002930;51898446;52168523;51307395;51298537;52171418;53492856;51311563;54976237;51456235;51555297;50907364;53966158;51791719;51732443;52999393;52085101;51615806;51646857;51435274
61338712;59022056;59238308;58122191;61895789;60887143;58939886;58189122;61152019;60553733;58627707;58702804;58892112;58266283;57741009;59228760;58352060;59916380;58301662;57940417;59091091;59026194;57507383;59298806;59619651;58011717;59350688;58856083;59352070;58475822
65709445;66250580;64801114;65457575;68168890;65682242;66409380;65733943;65243157;66239007;65141267;65247374;65098905;65668986;66026203;64768912;65709366;64511239;68741978;64764312;66518252;66803358;65328292;65096430;65519706;65603760;65597938;64715978;67647895;66410472
71990893;72053765;71700988;72379130;72087101;71774531;71766084;73482701;73950995;72589370;71967357;71708141;71016644;71946857;71617786;72070368;72876530;70810681;72048235;73180753;72697912;72463003;73770403;71450840;71484195;71889385;71929173;73608056;72346827;72323842
78834035;80121866;78668663;78062893;78451670;79032402;78406492;78971885;84900744;78418045;78811572;78611602;81212743;77987375;78669836;80508321;78759711;79319533;86634435;79063433;79616372;79106608;79646330;80233675;79172246;79374179;79997334;79920615;80541084;79062401
85327196;87119161;86098340;85895233;85591061;85343718;86349901;85628304;85623284;85919982;85596672;85926144;87175820;86457620;86995760;86283231;86241650;86257040;87043232;87570941;86270455;85819216;85225789;86468111;85840668;86206801;86103670;85654966;85237472;86921265
92972493;93933327;92611870;94000538;91486316;94488289;92429184;93282869;93139309;92718919;92898089;92781291;94069703;91924180;94036728;92989407;93872228;93911143;92957224;93198013;92051859;91661828;92183896;95554939;92728738;93006430;92936284;92430487;92493901;94113398
98808432;95982081;99309660;99810166;100205126;102976820;99400718;100508337;98945390;102426968;99386089;100475643;99261957;106011697;99799044;99485432;99146071;100553426;102147443;100443601;100136964;99621027;101525059;98961632;103117945;98681817;98664041;100996660;99208173;99736803
108415124;107416407;108071243;106024202;106472787;107212880;106227438;108647226;114776207;106767562;106040785;106745198;106247227;105411818;106228260;111033650;106252177;105979746;106645334;110791908;107695081;111459580;106116774;113281983;106161120;110456725;106755969;106679832;106653520;106330330
115006566;113537592;113166679;114422668;113110329;113667105;113394403;113205475;115630503;113634060;113367610;112763854;112417218;113215605;114902514;113739396;113392800;117462015;113756610;114739657;113718716;114154696;117746328;113401688;112643008;114108736;115438199;112440965;113513846;114074570
121230623;119343032;120345287;120657916;121651724;119848618;120345206;118642847;119515739;121551688;124974793;119272955;122770014;120873988;120441915;119663607;119012829;121458507;121330718;118995295;118532101;120907634;119237837;127198779;120001016;127675570;119749595;123089808;121776007;121819181
127976526;127916740;126696811;127802237;126718854;125889387;129328783;125831203;128777618;127878876;127564754;126552860;126765856;128530526;128686260;129115758;128049047;128311861;126326679;133265990;125971908;128565244;127321540;126933503;126028038;127990534;125669228;131198569;127154274;126797498
133585604;131281832;134820902;133375203;133861301;135041943;135585313;134715687;140205150;134769301;133823708;133372307;134319654;134941127;134995944;133728593;132741087;133526919;133352990;132973571;134814630;133047575;135345746;135913643;133881109;133836413;133426113;136501499;133568851;136396915
142422534;141449296;141176605;141492491;140759652;140878334;140365093;141501439;141722359;149706396;142102620;143672392;140621102;139987937;141071400;140148250;141644397;139825841;141974521;141583108;140928401;142551887;141106949;140073765;141477602;142551125;141302691;141624869;139651562;140648316
146058985;147107980;146037042;149132728;147791303;147068263;148657040;147084525;148395421;153201031;147888292;147719102;147563599;153780872;148130153;152894152;149100816;146324123;145902250;146578879;147412254;146097180;155828294;150412615;151915865;146673353;148932188;149010651;146766345;152658574
156504392;154877390;162629625;156627843;155127447;154439737;156324962;152580972;153456700;158732076;154307569;152876849;153663493;155513691;153125464;153552617;160719461;153664415;153872190;155221451;155197484;154992194;160876879;153037032;156411091;155194859;155014738;155464806;153624227;153268073
166231509;163654134;161693320;169244704;162148397;160490154;159765932;164658251;161255868;160475475;160699172;162005158;160076969;160099232;163440227;159432943;177949256;163416099;161810329;161262410;164671227;160026059;161262781;161423845;161191502;162136805;161593916;160859335;163122097;161303701
168165981;166961192;168155170;167792813;168696636;168057820;169642771;167504662;167941574;169168125;167838092;167815067;166752876;171815176;171153536;166989598;167674583;171863311;167535862;170248582;169725582;166667159;178263911;170634013;168978366;167622292;169211410;167503439;167623443;171756262
176194696;182108457;174906784;174992923;180392541;175300633;172326364;174478369;175972734;173890022;174041147;176428382;180423852;176064482;174756392;174819144;176601510;180225255;182668199;175012782;180580087;175494842;174041218;177072909;175160200;174535682;176954989;173702477;174055595;176303459
181792291;182919449;183311894;182993603;183574956;182991830;182997090;186238871;181651787;184508076;182250074;184779496;181863290;182177142;186236948;184266796;183444312;180766542;182181400;185290362;185148155;184057909;182089350;180634023;182168455;180698148;189251936;182302326;180621479;187393653
190420966;188207971;187586148;190661044;188213041;193567962;192431486;195171037;188552613;189216027;189143906;187985448;188261335;187351501;188590015;189125841;187668129;193453148;189802710;193398632;192355809;193892956;188948676;190345880;187126011;190774405;188697195;187381740;186797251;189952934
195191227;195157021;200918615;195581198;194386318;196075552;194956048;196149226;194682074;194006147;194688797;197438439;200930518;201318445;195973272;195114749;196350308;200200545;203603480;197761559;197081734;199667837;194544026;204422497;196203641;196287786;197774706;196200666;200992430;194112314
203626325;201243789;203170196;216353691;201079780;210599020;200784023;202753713;204994814;206152360;200360137;201941971;204829281;203256363;202540928;201566539;203348854;207135658;204589103;205399703;201724126;207400724;205181658;203206877;202338855;201285692;204866303;202536911;202504678;201313236
206350186;208478496;208124796;209074138;211361538;209582659;215846953;209799412;208902593;210648568;208100920;213036143;215106500;209165396;208337712;211711400;211050933;210301711;206187148;208964084;211961638;209155667;210463878;212114295;223823246;208584904;211486091;205834842;210055492;209841214
219531859;216939213;217121580;213635893;217187819;216707472;219096951;218039018;215550767;214392197;214081983;216964543;216378921;215668637;220105948;215205334;216593309;216791396;211163803;217429631;216092643;216225041;220354474;217242947;218511400;206682546;215852204;219796576;216700038;220144284
224334453;223222245;230419649;224972758;221115326;225405162;222765465;226762548;224042655;221702973;226018818;223817456;239499834;222577037;223960885;224680058;223170013;226721648;223363901;223725236;232805962;224692582;221962098;224862203;234124593;220872434;225296029;222678425;225767518;224344233
228766275;232841611;230385522;230237133;228574271;234491899;231016613;231687451;228209199;228927800;229747619;231527409;229041632;230113092;233502751;237737739;231152398;229536277;229374401;228683294;229977167;230447854;231426723;228704575;228484055;230935385;228984140;231833065;229190472;228242876
239616993;235951175;236028335;236510235;236999269;237228807;235664967;235382806;236519624;236090537;236022775;238406993;240199609;236486950;238887020;236605771;235192336;239328090;236069045;237848575;236126638;239025570;235917630;234010993;238372747;235541256;237601643;241447433;237564572;233562528
246775701;241270287;242937899;244740824;248353257;242775571;243190511;243670387;245016581;242893101;241387646;244937067;243869876;244074244;242250078;243181083;245671669;243595731;243808657;243761524;248116175;243105376;242620119;241856280;244429256;244461289;243256119;246257862;242322890;244380261
250473622;253263171;255709722;250377325;250582765;251875055;250047021;264639964;248671558;249885085;252361914;254215268;249624617;252395270;250253423;258972764;249201773;249539722;251975020;257798996;248951425;250675095;249266459;254265727;246218666;250901417;245390752;248639907;247636751;248859315
257608154;258671377;256549129;257592914;253721486;260842080;257864143;257655767;257541845;260874383;255188686;260049625;259711325;261529179;262650145;259918499;256215409;263509772;257824947;261923058;257001662;262660516;258648452;258400118;256541354;259363747;256265556;255403355;257805258;257578096
269925631;265072519;269217621;263715813;268511845;266576511;264468812;263143177;271047088;267667138;264674151;262909581;264530892;264681306;263080004;261604566;264931464;264706074;264508700;272767653;261734420;263671147;265559168;267624194;262471938;265567574;265403884;245022514;250730765;264017382
270480895;271188995;273413272;278167502;270542875;270321795;271067908;271997231;278521482;269376941;269807842;269650846;276051927;270113137;270311624;271659522;275126693;269256297;270673520;271245035;271162233;269734169;269907076;270699190;281981770;270622431;273969357;268925112;272507436;270912766
287228600;276384346;279519528;279757422;275789806;277128857;277552323;278861130;282206766;277366216;274667300;276407664;278977187;278587185;277941776;277085927;279375993;276744630;277606470;274441497;285700878;281904823;277254743;280619415;278131201;279113378;285021791;278085672;275937361;278571799
284038030;289354960;284890913;288323037;285439121;286192591;285211056;286795476;284250352;287925549;285962040;283503434;293772633;286489487;285094456;283733431;284816092;285672062;283982276;284470918;282840107;284911166;287315886;284010890;289943680;284375419;283984948;284704251;282886074;284290804
289525894;293200941;302801906;295425960;292762866;293959259;293372864;294221049;292820015;294215638;291715691;289163864;290914999;299175991;288729657;291166719;291085680;268550218;289786055;300172583;290276762;293715808;294119285;303412790;289573719;290961496;294290417;290562697;292302670;291171394
297394000;308779054;301249548;304836003;295485887;301829388;299870929;295955051;300056980;307413007;301293612;296488109;296471978;298751233;300836629;301104963;297199826;298990598;301676647;296809353;301678589;300086955;297798782;298214433;307282607;298329686;302456936;302946280;299242355;304207679
304529757;303703185;304687854;295212544;309663608;305231534;304533080;306091401;306854679;305949172;307223387;304906178;311615212;304390612;306307500;305280977;305372816;303246129;305676498;306267189;305953738;313665388;306789518;305050206;303455214;306789607;307465004;305132905;305832259;304364977
310731984;318297228;322294303;314749789;319081618;309847288;314951563;312006237;315733997;312863770;314527643;315955508;311128634;312452366;311284438;311310408;315152531;319490301;284197801;311612927;308025631;313926037;316462704;315623367;316428347;314539633;313468144;310795781;313906167;310813815
316206874;320897361;318837082;319544922;321507129;326771315;320785521;318668542;313862178;323956234;320043413;316580720;317638182;319876005;318109640;317089040;321779066;324665114;324802842;319344036;20802600;324898428;317720740;317982670;318701832;316367701;316664781;318140918;318531149;316584211
326440543;324808129;326115920;327239481;325586778;333262557;335536371;326355435;326906299;318384149;297674420;325392156;330073385;331814130;325338471;328055228;326759932;328850208;340636494;326368949;325323389;327610450;327192795;325701105;327120173;323259603;329155362;324615708;327008413;327013814
332268081;330538458;332114180;336987444;331628151;341172164;332086555;331755359;331128497;331396909;330442277;333994114;332746390;331942662;337795547;330347902;329199262;333050061;332865331;331670751;334731831;334783131;334845121;330055069;334228999;332304666;330725766;335912041;333701068;333142549
334635961;343115718;335572066;341129073;335530174;338042834;346284808;339413226;339443375;339655588;341441070;340253003;341316086;336155041;339596943;339331946;342168888;341901296;340653893;340873671;340809446;345654434;339413303;340871597;340234213;341966572;341418092;335932794;337646115;346991540
350134319;345312185;348360769;344785146;346156681;343593923;353763385;345554776;346614623;345096493;347288116;351547653;349451224;347118284;347055200;349498215;339113523;345837225;345319445;344136939;348025542;343649086;348462694;369445143;347215751;344617886;349206634;346095877;350053485;349356064
354332249;355884145;355950635;356160324;349996864;355103272;357894734;357087832;354300435;355912579;350221951;352601341;355234325;352979177;356330182;353996110;355329640;351454965;349794306;358937796;360477148;356239995;351716413;354844012;352884160;352274802;354124779;352987992;350130809;353125209
1 17216356 16955417 17116330 17316731 17063448 17122082 16805635 17508706 16852286 17592139 17356259 16894588 17223499 16915630 17074489 16664359 17287775 17252766 16800475 17329266 17173382 17119116 16925368 16969945 16852787 17040584 17339566 16683788 17333795 17653930
2 23794712 23862985 24060801 24371546 24444849 23795733 24303864 23634319 23978861 23562759 24610382 23791736 24009901 23799321 24105698 24221785 23706109 23873575 26407646 24416855 24397186 23775815 24226393 24448667 24329915 23720327 24178219 23862223 23813308 24431523
3 30559812 30788056 30593116 31121687 31389429 31431912 30999669 30909744 30594479 30462602 31829908 31038164 30603146 31046741 30487701 30999139 31045579 31297750 31217193 31039617 30594439 30834498 30814107 30605350 30854526 30821221 30938230 31733190 32656410 31472822
4 37320142 37958487 37255877 37484643 38858081 38217552 37863632 38122016 38612051 40952955 37276878 37806471 37992082 37981963 37890875 39330993 37599668 37658722 40429926 37753538 40256678 38064624 37285335 38065496 37701035 37711426 37290124 37628053 37941895 38169970
5 45862577 45620616 48323676 43992582 45198353 45139068 44564227 45449933 44785388 44189907 45677929 45412160 46317886 44943125 44625326 44126193 44510883 44121754 45188945 45570659 44327255 44878500 47583093 44008162 45249273 44445836 44285193 44244964 48182131 41330793
6 50926221 51787770 54909217 51294730 51477787 53681223 51634763 51675041 51594504 50792540 52002930 51898446 52168523 51307395 51298537 52171418 53492856 51311563 54976237 51456235 51555297 50907364 53966158 51791719 51732443 52999393 52085101 51615806 51646857 51435274
7 61338712 59022056 59238308 58122191 61895789 60887143 58939886 58189122 61152019 60553733 58627707 58702804 58892112 58266283 57741009 59228760 58352060 59916380 58301662 57940417 59091091 59026194 57507383 59298806 59619651 58011717 59350688 58856083 59352070 58475822
8 65709445 66250580 64801114 65457575 68168890 65682242 66409380 65733943 65243157 66239007 65141267 65247374 65098905 65668986 66026203 64768912 65709366 64511239 68741978 64764312 66518252 66803358 65328292 65096430 65519706 65603760 65597938 64715978 67647895 66410472
9 71990893 72053765 71700988 72379130 72087101 71774531 71766084 73482701 73950995 72589370 71967357 71708141 71016644 71946857 71617786 72070368 72876530 70810681 72048235 73180753 72697912 72463003 73770403 71450840 71484195 71889385 71929173 73608056 72346827 72323842
10 78834035 80121866 78668663 78062893 78451670 79032402 78406492 78971885 84900744 78418045 78811572 78611602 81212743 77987375 78669836 80508321 78759711 79319533 86634435 79063433 79616372 79106608 79646330 80233675 79172246 79374179 79997334 79920615 80541084 79062401
11 85327196 87119161 86098340 85895233 85591061 85343718 86349901 85628304 85623284 85919982 85596672 85926144 87175820 86457620 86995760 86283231 86241650 86257040 87043232 87570941 86270455 85819216 85225789 86468111 85840668 86206801 86103670 85654966 85237472 86921265
12 92972493 93933327 92611870 94000538 91486316 94488289 92429184 93282869 93139309 92718919 92898089 92781291 94069703 91924180 94036728 92989407 93872228 93911143 92957224 93198013 92051859 91661828 92183896 95554939 92728738 93006430 92936284 92430487 92493901 94113398
13 98808432 95982081 99309660 99810166 100205126 102976820 99400718 100508337 98945390 102426968 99386089 100475643 99261957 106011697 99799044 99485432 99146071 100553426 102147443 100443601 100136964 99621027 101525059 98961632 103117945 98681817 98664041 100996660 99208173 99736803
14 108415124 107416407 108071243 106024202 106472787 107212880 106227438 108647226 114776207 106767562 106040785 106745198 106247227 105411818 106228260 111033650 106252177 105979746 106645334 110791908 107695081 111459580 106116774 113281983 106161120 110456725 106755969 106679832 106653520 106330330
15 115006566 113537592 113166679 114422668 113110329 113667105 113394403 113205475 115630503 113634060 113367610 112763854 112417218 113215605 114902514 113739396 113392800 117462015 113756610 114739657 113718716 114154696 117746328 113401688 112643008 114108736 115438199 112440965 113513846 114074570
16 121230623 119343032 120345287 120657916 121651724 119848618 120345206 118642847 119515739 121551688 124974793 119272955 122770014 120873988 120441915 119663607 119012829 121458507 121330718 118995295 118532101 120907634 119237837 127198779 120001016 127675570 119749595 123089808 121776007 121819181
17 127976526 127916740 126696811 127802237 126718854 125889387 129328783 125831203 128777618 127878876 127564754 126552860 126765856 128530526 128686260 129115758 128049047 128311861 126326679 133265990 125971908 128565244 127321540 126933503 126028038 127990534 125669228 131198569 127154274 126797498
18 133585604 131281832 134820902 133375203 133861301 135041943 135585313 134715687 140205150 134769301 133823708 133372307 134319654 134941127 134995944 133728593 132741087 133526919 133352990 132973571 134814630 133047575 135345746 135913643 133881109 133836413 133426113 136501499 133568851 136396915
19 142422534 141449296 141176605 141492491 140759652 140878334 140365093 141501439 141722359 149706396 142102620 143672392 140621102 139987937 141071400 140148250 141644397 139825841 141974521 141583108 140928401 142551887 141106949 140073765 141477602 142551125 141302691 141624869 139651562 140648316
20 146058985 147107980 146037042 149132728 147791303 147068263 148657040 147084525 148395421 153201031 147888292 147719102 147563599 153780872 148130153 152894152 149100816 146324123 145902250 146578879 147412254 146097180 155828294 150412615 151915865 146673353 148932188 149010651 146766345 152658574
21 156504392 154877390 162629625 156627843 155127447 154439737 156324962 152580972 153456700 158732076 154307569 152876849 153663493 155513691 153125464 153552617 160719461 153664415 153872190 155221451 155197484 154992194 160876879 153037032 156411091 155194859 155014738 155464806 153624227 153268073
22 166231509 163654134 161693320 169244704 162148397 160490154 159765932 164658251 161255868 160475475 160699172 162005158 160076969 160099232 163440227 159432943 177949256 163416099 161810329 161262410 164671227 160026059 161262781 161423845 161191502 162136805 161593916 160859335 163122097 161303701
23 168165981 166961192 168155170 167792813 168696636 168057820 169642771 167504662 167941574 169168125 167838092 167815067 166752876 171815176 171153536 166989598 167674583 171863311 167535862 170248582 169725582 166667159 178263911 170634013 168978366 167622292 169211410 167503439 167623443 171756262
24 176194696 182108457 174906784 174992923 180392541 175300633 172326364 174478369 175972734 173890022 174041147 176428382 180423852 176064482 174756392 174819144 176601510 180225255 182668199 175012782 180580087 175494842 174041218 177072909 175160200 174535682 176954989 173702477 174055595 176303459
25 181792291 182919449 183311894 182993603 183574956 182991830 182997090 186238871 181651787 184508076 182250074 184779496 181863290 182177142 186236948 184266796 183444312 180766542 182181400 185290362 185148155 184057909 182089350 180634023 182168455 180698148 189251936 182302326 180621479 187393653
26 190420966 188207971 187586148 190661044 188213041 193567962 192431486 195171037 188552613 189216027 189143906 187985448 188261335 187351501 188590015 189125841 187668129 193453148 189802710 193398632 192355809 193892956 188948676 190345880 187126011 190774405 188697195 187381740 186797251 189952934
27 195191227 195157021 200918615 195581198 194386318 196075552 194956048 196149226 194682074 194006147 194688797 197438439 200930518 201318445 195973272 195114749 196350308 200200545 203603480 197761559 197081734 199667837 194544026 204422497 196203641 196287786 197774706 196200666 200992430 194112314
28 203626325 201243789 203170196 216353691 201079780 210599020 200784023 202753713 204994814 206152360 200360137 201941971 204829281 203256363 202540928 201566539 203348854 207135658 204589103 205399703 201724126 207400724 205181658 203206877 202338855 201285692 204866303 202536911 202504678 201313236
29 206350186 208478496 208124796 209074138 211361538 209582659 215846953 209799412 208902593 210648568 208100920 213036143 215106500 209165396 208337712 211711400 211050933 210301711 206187148 208964084 211961638 209155667 210463878 212114295 223823246 208584904 211486091 205834842 210055492 209841214
30 219531859 216939213 217121580 213635893 217187819 216707472 219096951 218039018 215550767 214392197 214081983 216964543 216378921 215668637 220105948 215205334 216593309 216791396 211163803 217429631 216092643 216225041 220354474 217242947 218511400 206682546 215852204 219796576 216700038 220144284
31 224334453 223222245 230419649 224972758 221115326 225405162 222765465 226762548 224042655 221702973 226018818 223817456 239499834 222577037 223960885 224680058 223170013 226721648 223363901 223725236 232805962 224692582 221962098 224862203 234124593 220872434 225296029 222678425 225767518 224344233
32 228766275 232841611 230385522 230237133 228574271 234491899 231016613 231687451 228209199 228927800 229747619 231527409 229041632 230113092 233502751 237737739 231152398 229536277 229374401 228683294 229977167 230447854 231426723 228704575 228484055 230935385 228984140 231833065 229190472 228242876
33 239616993 235951175 236028335 236510235 236999269 237228807 235664967 235382806 236519624 236090537 236022775 238406993 240199609 236486950 238887020 236605771 235192336 239328090 236069045 237848575 236126638 239025570 235917630 234010993 238372747 235541256 237601643 241447433 237564572 233562528
34 246775701 241270287 242937899 244740824 248353257 242775571 243190511 243670387 245016581 242893101 241387646 244937067 243869876 244074244 242250078 243181083 245671669 243595731 243808657 243761524 248116175 243105376 242620119 241856280 244429256 244461289 243256119 246257862 242322890 244380261
35 250473622 253263171 255709722 250377325 250582765 251875055 250047021 264639964 248671558 249885085 252361914 254215268 249624617 252395270 250253423 258972764 249201773 249539722 251975020 257798996 248951425 250675095 249266459 254265727 246218666 250901417 245390752 248639907 247636751 248859315
36 257608154 258671377 256549129 257592914 253721486 260842080 257864143 257655767 257541845 260874383 255188686 260049625 259711325 261529179 262650145 259918499 256215409 263509772 257824947 261923058 257001662 262660516 258648452 258400118 256541354 259363747 256265556 255403355 257805258 257578096
37 269925631 265072519 269217621 263715813 268511845 266576511 264468812 263143177 271047088 267667138 264674151 262909581 264530892 264681306 263080004 261604566 264931464 264706074 264508700 272767653 261734420 263671147 265559168 267624194 262471938 265567574 265403884 245022514 250730765 264017382
38 270480895 271188995 273413272 278167502 270542875 270321795 271067908 271997231 278521482 269376941 269807842 269650846 276051927 270113137 270311624 271659522 275126693 269256297 270673520 271245035 271162233 269734169 269907076 270699190 281981770 270622431 273969357 268925112 272507436 270912766
39 287228600 276384346 279519528 279757422 275789806 277128857 277552323 278861130 282206766 277366216 274667300 276407664 278977187 278587185 277941776 277085927 279375993 276744630 277606470 274441497 285700878 281904823 277254743 280619415 278131201 279113378 285021791 278085672 275937361 278571799
40 284038030 289354960 284890913 288323037 285439121 286192591 285211056 286795476 284250352 287925549 285962040 283503434 293772633 286489487 285094456 283733431 284816092 285672062 283982276 284470918 282840107 284911166 287315886 284010890 289943680 284375419 283984948 284704251 282886074 284290804
41 289525894 293200941 302801906 295425960 292762866 293959259 293372864 294221049 292820015 294215638 291715691 289163864 290914999 299175991 288729657 291166719 291085680 268550218 289786055 300172583 290276762 293715808 294119285 303412790 289573719 290961496 294290417 290562697 292302670 291171394
42 297394000 308779054 301249548 304836003 295485887 301829388 299870929 295955051 300056980 307413007 301293612 296488109 296471978 298751233 300836629 301104963 297199826 298990598 301676647 296809353 301678589 300086955 297798782 298214433 307282607 298329686 302456936 302946280 299242355 304207679
43 304529757 303703185 304687854 295212544 309663608 305231534 304533080 306091401 306854679 305949172 307223387 304906178 311615212 304390612 306307500 305280977 305372816 303246129 305676498 306267189 305953738 313665388 306789518 305050206 303455214 306789607 307465004 305132905 305832259 304364977
44 310731984 318297228 322294303 314749789 319081618 309847288 314951563 312006237 315733997 312863770 314527643 315955508 311128634 312452366 311284438 311310408 315152531 319490301 284197801 311612927 308025631 313926037 316462704 315623367 316428347 314539633 313468144 310795781 313906167 310813815
45 316206874 320897361 318837082 319544922 321507129 326771315 320785521 318668542 313862178 323956234 320043413 316580720 317638182 319876005 318109640 317089040 321779066 324665114 324802842 319344036 20802600 324898428 317720740 317982670 318701832 316367701 316664781 318140918 318531149 316584211
46 326440543 324808129 326115920 327239481 325586778 333262557 335536371 326355435 326906299 318384149 297674420 325392156 330073385 331814130 325338471 328055228 326759932 328850208 340636494 326368949 325323389 327610450 327192795 325701105 327120173 323259603 329155362 324615708 327008413 327013814
47 332268081 330538458 332114180 336987444 331628151 341172164 332086555 331755359 331128497 331396909 330442277 333994114 332746390 331942662 337795547 330347902 329199262 333050061 332865331 331670751 334731831 334783131 334845121 330055069 334228999 332304666 330725766 335912041 333701068 333142549
48 334635961 343115718 335572066 341129073 335530174 338042834 346284808 339413226 339443375 339655588 341441070 340253003 341316086 336155041 339596943 339331946 342168888 341901296 340653893 340873671 340809446 345654434 339413303 340871597 340234213 341966572 341418092 335932794 337646115 346991540
49 350134319 345312185 348360769 344785146 346156681 343593923 353763385 345554776 346614623 345096493 347288116 351547653 349451224 347118284 347055200 349498215 339113523 345837225 345319445 344136939 348025542 343649086 348462694 369445143 347215751 344617886 349206634 346095877 350053485 349356064
50 354332249 355884145 355950635 356160324 349996864 355103272 357894734 357087832 354300435 355912579 350221951 352601341 355234325 352979177 356330182 353996110 355329640 351454965 349794306 358937796 360477148 356239995 351716413 354844012 352884160 352274802 354124779 352987992 350130809 353125209

View File

@@ -0,0 +1,50 @@
15890167;15247295;15576857;15468806;15231023;15375524;15391145;15516609;15416153;15887994;15829860;15639409;15374953;15447464;15403739;15105588;15476682;15602187;15150826;15891209;16475920;15653807;16096571;15555885;15207126;15419470;16043276;15674127;15522731;15577839
20582869;20760525;20847295;20951267;23177759;21412617;20556057;21038818;21312572;21152470;21205052;20733953;20946468;20503964;21436513;21057334;21336028;21145756;21249238;20829590;20984802;21204861;20907262;20824671;21090860;20681912;20770455;20950265;20536859;21494316
26235492;25985354;26497072;25739775;26261552;26337020;25981066;26144184;26367689;26029269;26208239;26380615;26352019;26528634;26640191;26018308;26606856;25885179;26021073;26532881;26106641;25663757;27053106;26323042;26182398;25878997;30120398;26676311;26025532;26636864
31593050;31131539;32291191;31419391;32308124;31227306;31982499;31483355;31993250;31929064;31665541;30864649;33171527;32038417;34752681;30946148;31957109;30996095;31359403;31860711;32207898;31308915;32370476;31400143;33603229;34934084;32627206;30765175;33653758;34008649
36945947;36229972;36815113;39786557;37750176;36488957;36564063;37724355;36359254;37058877;36695238;37111661;40659800;39072284;36917462;37548001;37479909;36942731;36920147;36245993;41423660;36772750;37630893;37459969;37197098;36520318;38167599;37147450;36975535;37077263
42900950;41934726;44029400;41798490;41681211;45518234;41679017;41414060;43873096;42640752;41225863;41572950;42986917;42415333;41681682;42123904;43223990;41904266;41485860;42735697;42124706;42099467;42069448;42602337;42480019;41987348;41397258;42008319;42502673;47869298
47271012;47562861;48077113;47221575;47066042;48079949;46725918;48215023;46390565;47521780;50017938;47571497;47605834;47550066;48917352;47382389;47785134;47272714;48673747;47241113;46985805;47270681;47954364;47451443;46895038;46805794;49968332;46717962;48607908;47805894
53702082;54610273;52199722;52380826;53161107;53713193;52502723;52522762;54071432;52468827;53012838;52852826;54036334;52293014;52723984;52108535;52965275;52415653;51818238;53292272;53534365;55922472;52979823;54430232;52728323;52812828;52370916;51935406;54533001;52685029
57656463;57173941;58150917;57938362;57483355;59007848;57772449;57343773;58694607;58643307;60396586;58868365;57322211;57202888;58292252;57956047;58263737;65261513;59545757;57529024;58435041;57913333;58501541;57584983;59579302;57198169;60099146;58216535;57834450;58671011
65259298;62488435;62701690;62363391;67199822;62744294;63297412;61997798;64057866;63502272;62592237;63191606;64035021;66413379;62723012;63729274;64179552;63079908;64519606;63373059;63507712;63306449;63867483;64211425;65111519;63032305;63444449;62838658;63766787;63240882
68919876;69193259;70826524;68740306;69778019;71533332;68496210;68208619;67840591;68499335;71127300;68554964;68226173;67961567;69137440;70194271;68980073;76521529;70594522;68642364;72895749;67364803;75714666;72664839;69087352;68068425;69848577;69245771;67927019;67353080
73972448;73754303;76863115;75558311;75089697;73803308;73677123;72718442;75520837;72045550;74166987;74288384;76468997;75952098;73259738;76945916;73732190;73390453;74017125;74222846;75343181;72775353;73912250;73373049;68088775;75334874;75823898;72825351;75097522;77213017
79762699;77878926;80164993;81274166;78694325;79084756;78439989;78918723;80086640;79026774;95463586;79147559;78080118;78359041;80911218;79188369;79527690;79143200;79611183;83418067;82852474;78387256;79851251;78653405;78245760;79194661;83885107;78424208;79537689;78836773
85009730;85473444;85956937;84388278;86443365;85862153;84265348;85429628;86014680;85769852;89528521;83798247;84900086;83645399;83724564;84732238;86617716;86403948;89213437;84923943;85831061;84933291;84383097;85123912;85040389;87202446;84542990;86277511;84407004;84534723
89043004;88957708;91141757;88937108;89904244;90388499;89876630;88909283;90389771;88805652;90795361;90223246;89943760;88436882;90979901;91892581;92363208;88862712;91621733;90346266;95711558;95609909;90941456;90869846;89604720;90098181;90776254;89312349;89494464;89957217
97622744;93073162;97798668;95487821;95344712;97940453;95485277;94426422;94521757;93376404;105940785;94329653;95249667;94660257;95542548;95769701;96886298;97089765;94580752;94784470;96648334;95623175;98211462;96310015;95511978;94606923;94516988;95405710;98110966;96141375
99538379;106219207;102047502;100533309;99044767;99294484;102017523;99426702;99187816;102729562;99391192;99114653;100704854;100581263;101548418;101257973;100286398;101165161;99207043;101314763;102471398;99112228;103257702;99267701;99590370;100392655;102240538;99683001;102243394;99586563
108446000;107218215;106512789;105822242;105424767;107204267;106829175;107082620;106881047;105749441;105283582;110213936;107114632;104543689;107951353;107941314;108198546;105010519;106523890;108046730;109853683;110561043;109727197;108363046;108066468;106711837;104443303;106555893;107006471;106296938
112992283;113802013;112449274;111438804;111124452;110313470;112584258;110853583;114376653;112487780;109370581;111232081;111675826;110875836;112765521;110017262;113644746;111669163;111105504;111553447;112749139;114083020;112898500;111877639;109783506;109590679;111572083;110145522;111907278;114427111
117145822;116968988;114544199;117405148;119068741;116050807;114781351;114954238;117523128;117303279;116242600;115774558;116894442;117099602;116850897;116867479;117030156;116942736;115489652;115128999;120948978;114970951;119924670;115673902;117191831;117387423;115034725;117452460;116218373;115414486
125029034;123458260;122103198;121454604;121254403;121381671;122437190;121527355;126623032;121407652;121772153;121416941;125018664;120012622;122504231;123195909;121345261;122891485;123504220;123059122;120780348;123136603;121690764;121830998;120884392;120274823;122690012;126826288;121673480;121083379
130273289;126015396;125362634;127872689;127446617;126461066;126103478;128155931;125876125;127425396;126539539;134252849;127896856;129008132;124913147;133293278;131231117;125797171;126465114;125427911;129475634;128744298;126316924;126611649;132549458;126666747;128440025;125328778;126337143;129157955
130977913;134528486;135474772;130985217;134372663;131311904;134112445;130091404;132622570;131813853;135622981;132561210;132556732;130015877;131944186;131468379;134018682;130834493;132670023;140692496;131594475;130501624;133956992;133911654;138583122;130785668;132287457;132039753;129305301;131168044
138703187;136402992;138459962;138110201;138907485;139273649;135870243;137202100;139217520;136774356;139013251;136930950;137330991;136199946;136563123;135134257;139321643;152626286;135275242;135889721;139832128;135135319;138179125;135742964;138884750;139343615;141481775;137789585;145569836;137649211
157758714;144817739;145287415;144932322;141337083;141659110;145056645;142644411;143199264;141928656;147904769;141940849;142859831;141732573;142613492;143228501;142206537;142707865;146337072;146235253;139633400;141265803;144639100;144604444;145383041;141881283;144108556;142357151;143904158;145469079
154908435;154078768;148582260;146739957;149783161;147902825;149710619;147104097;149709959;146580085;148077615;147352291;152582450;147901853;147428009;146996518;159265341;159492233;146200395;150772000;148488977;148331260;148502203;147438279;154276422;146215424;147306071;146143043;151455883;149158624
152545627;151553033;154806997;152103045;153166789;152302975;151579022;151784353;152216165;151492855;157494958;154024150;152117101;152805865;153347582;152788962;153406106;153062165;153783010;150410895;156462956;154721270;154813320;155860181;155526140;157831284;158246865;154628439;151423249;147790606
159892323;160597438;160155817;158030893;160764423;157776647;156633920;157110228;163367971;157801185;164307542;157665210;161432085;159785515;165383651;157156869;161291050;160180074;158357841;160893816;160847305;157827046;157946408;161490750;163608168;157727572;161717973;158183831;159913694;157495489
163190113;162527240;166101099;162508424;164279508;162556197;175082924;162854839;165045420;163246874;168607256;164883835;164054418;165566097;165647555;167013198;166675840;163608048;164709486;164022957;165184832;162392899;165193870;166696700;164906259;165955376;165799751;165125848;162976897;163790474
172999501;171771106;170048396;169801164;174295467;169656162;168504956;171815522;169516589;169851442;174009290;168854428;171084617;168888534;180950474;167160405;169430751;168911389;169016614;170224479;172039147;167701760;169463004;175075668;168280299;168792938;175149923;171342029;169389802;169442965
175521448;172736658;173671220;177978439;175093593;176356707;181799079;174298113;174561547;180187116;180608517;173405051;177795963;172833526;177326157;175086109;173743531;184363018;177032995;173947248;173622656;175408447;176787647;173554643;173560034;171794010;175450559;174284225;175985573;178363169
183419338;177961094;180376825;182561966;181480698;178212946;180973509;178553840;184472472;177743120;179971675;179578809;183220120;180408948;177989610;181720846;183080326;180777386;178941476;179865107;180801042;182053445;179319003;179684926;180871800;179277351;184680728;179971715;182236201;181876579
187544141;182583829;187038124;182875788;183868253;183418666;184249868;192960061;186658223;190364741;187593096;182910596;186482521;186987135;186483372;183564952;183104493;183031121;187521256;184368118;185132548;189092160;191233474;190087570;185057352;187572035;194055247;185326627;182792455;188854415
198685826;198021121;190372907;188366825;193295846;187881508;191990160;191543570;189436931;187538089;189385420;188057532;192217203;190059906;189872410;202429255;193528680;187494944;191539191;190026742;191440738;186139131;189142587;189426891;190362817;190250899;188456610;189106287;192983026;189556174
196330283;200214517;200742386;193060637;199010228;196527588;197751093;195661318;194000139;192498702;196597964;194671589;196529100;196461077;197674304;194992043;194410640;197482349;198218124;196080355;194030659;199917197;206351433;195486377;193808816;197587634;198172334;194360031;194659986;193426691
203906075;201702989;203618685;196858442;200509763;197732998;201722067;202915463;205549960;214283961;199438042;197887780;204746413;200042190;199361282;203909551;210788986;205110353;200403414;199374248;204026098;200354159;202070265;203803565;205303399;200253532;203800799;201959569;202396421;199537506
206573155;207800859;210711324;205198585;208522777;205510022;213012191;207097047;208534650;204391581;205578696;207815848;207501535;207133658;206475124;210766392;205997833;213237149;205596871;207521103;209769919;202541574;209401399;207739780;204843733;217217541;205361222;209512927;207465896;207259142
214942074;210663922;213624996;211237761;215372513;211603413;222493068;213427882;218473330;210090764;210320692;212578024;216749478;210750170;213604365;216937545;212640946;212376441;214756972;209164378;218417831;212826949;209940631;210484882;214946162;211211600;211009345;212690593;216205517;217811108
218866355;216257830;223778464;214618713;224399395;216416859;216760389;214599906;214858170;220415336;221300111;216535230;217211749;216258490;226544478;218110020;214875143;214514420;218174236;213914770;217307536;216781029;217530761;218350299;215268430;217138496;225272117;221900392;217382331;216998403
221808432;225871796;223393262;221733396;222789374;219206729;222706393;224694209;235159015;224256977;222539858;220987912;225188593;224246256;221185457;228672797;221718086;223362041;229564967;224034422;226855674;220592862;227720711;223554246;222908507;224037048;222237830;220197823;227818631;222577412
222473208;225440435;229414573;230760478;227226176;227174065;231336010;230015355;227901864;227698597;228047828;228551520;228463529;226676234;230252958;231500892;235299028;224898657;233371670;226940349;229167612;228504228;228197761;228154166;228301573;226892596;229658569;227627429;226806057;227103235
235098957;234791989;236535438;233017318;236907444;232236666;231999303;232108356;235993452;236829562;234036175;232927112;236446605;236072777;234659480;230891924;236469911;231267666;237144686;230769756;233736872;243189072;233542572;233648880;238122994;231504999;234688046;229358654;234153474;235114868
236695280;241124176;246418660;243480992;241827187;238004573;240988682;242348223;241408570;236669790;241346770;236124156;239150808;236091373;242462065;239072816;238628319;238010324;240894127;240272144;236083887;237791618;239672345;237769164;241904678;237859821;242528514;237122122;239636164;242121952
244246464;245447266;242180766;241492514;250701691;244651755;241019412;239249581;246849680;240688086;241545728;243602899;245673075;242409522;241004252;250000705;251283526;240953703;239901151;241700620;254444249;239820604;240456214;244728765;244980255;242406075;248421134;238703646;242546960;241113695
250358853;252991295;256861241;250744845;249919436;248943874;250532741;246230322;250689958;246086071;249235011;246410173;252435282;246813098;252665671;251135157;245220042;246685780;250476161;246262445;249944184;245767229;253523994;247596415;249122452;247180455;268012546;252839168;250506951;247839560
258515678;255127351;258955696;254929936;257120708;255260410;251038578;251595313;260031844;250808930;254935016;251289568;259027632;255518956;252075913;246677056;256439341;249725069;252087416;257319427;259038108;258461814;254816898;263053978;260230594;256285701;250760969;251863198;261576438;255489159
259321952;263157220;272091170;260371930;259655502;261236025;263857305;262687715;259170527;258860603;264639611;265202478;256972983;257182030;263181238;256587892;258218211;261507725;270820172;260866925;257210917;258769045;261769726;261496413;253811309;270609021;260821256;256978755;258132254;260367212
269766659;276595133;264859481;262269320;273838428;264149377;263233691;263289309;265181649;266004584;268310019;273395936;272923906;262079551;267123386;263578424;265421077;263970278;263576039;264467026;266602721;262467839;261393944;267669901;269241426;264429344;269717555;268683909;267981609;266332845
269295882;269933656;270469120;269883778;269199344;267957123;249796162;267844783;269603533;268826979;272428882;275080932;268788032;268638531;274391609;276691945;273982291;269626067;266799235;268074241;269502226;266269533;277943886;275201319;273155099;267433111;273326603;268854473;270295282;273872838
274518336;276481394;288608270;272996229;281990727;274486455;273340120;271979287;279091163;281867607;271331644;272972824;279792281;279090092;273962884;272123177;283408151;275907086;270838692;248005141;282220165;270342455;275627731;274080193;283139528;270895374;277110943;276570359;278170059;272635617
1 15890167 15247295 15576857 15468806 15231023 15375524 15391145 15516609 15416153 15887994 15829860 15639409 15374953 15447464 15403739 15105588 15476682 15602187 15150826 15891209 16475920 15653807 16096571 15555885 15207126 15419470 16043276 15674127 15522731 15577839
2 20582869 20760525 20847295 20951267 23177759 21412617 20556057 21038818 21312572 21152470 21205052 20733953 20946468 20503964 21436513 21057334 21336028 21145756 21249238 20829590 20984802 21204861 20907262 20824671 21090860 20681912 20770455 20950265 20536859 21494316
3 26235492 25985354 26497072 25739775 26261552 26337020 25981066 26144184 26367689 26029269 26208239 26380615 26352019 26528634 26640191 26018308 26606856 25885179 26021073 26532881 26106641 25663757 27053106 26323042 26182398 25878997 30120398 26676311 26025532 26636864
4 31593050 31131539 32291191 31419391 32308124 31227306 31982499 31483355 31993250 31929064 31665541 30864649 33171527 32038417 34752681 30946148 31957109 30996095 31359403 31860711 32207898 31308915 32370476 31400143 33603229 34934084 32627206 30765175 33653758 34008649
5 36945947 36229972 36815113 39786557 37750176 36488957 36564063 37724355 36359254 37058877 36695238 37111661 40659800 39072284 36917462 37548001 37479909 36942731 36920147 36245993 41423660 36772750 37630893 37459969 37197098 36520318 38167599 37147450 36975535 37077263
6 42900950 41934726 44029400 41798490 41681211 45518234 41679017 41414060 43873096 42640752 41225863 41572950 42986917 42415333 41681682 42123904 43223990 41904266 41485860 42735697 42124706 42099467 42069448 42602337 42480019 41987348 41397258 42008319 42502673 47869298
7 47271012 47562861 48077113 47221575 47066042 48079949 46725918 48215023 46390565 47521780 50017938 47571497 47605834 47550066 48917352 47382389 47785134 47272714 48673747 47241113 46985805 47270681 47954364 47451443 46895038 46805794 49968332 46717962 48607908 47805894
8 53702082 54610273 52199722 52380826 53161107 53713193 52502723 52522762 54071432 52468827 53012838 52852826 54036334 52293014 52723984 52108535 52965275 52415653 51818238 53292272 53534365 55922472 52979823 54430232 52728323 52812828 52370916 51935406 54533001 52685029
9 57656463 57173941 58150917 57938362 57483355 59007848 57772449 57343773 58694607 58643307 60396586 58868365 57322211 57202888 58292252 57956047 58263737 65261513 59545757 57529024 58435041 57913333 58501541 57584983 59579302 57198169 60099146 58216535 57834450 58671011
10 65259298 62488435 62701690 62363391 67199822 62744294 63297412 61997798 64057866 63502272 62592237 63191606 64035021 66413379 62723012 63729274 64179552 63079908 64519606 63373059 63507712 63306449 63867483 64211425 65111519 63032305 63444449 62838658 63766787 63240882
11 68919876 69193259 70826524 68740306 69778019 71533332 68496210 68208619 67840591 68499335 71127300 68554964 68226173 67961567 69137440 70194271 68980073 76521529 70594522 68642364 72895749 67364803 75714666 72664839 69087352 68068425 69848577 69245771 67927019 67353080
12 73972448 73754303 76863115 75558311 75089697 73803308 73677123 72718442 75520837 72045550 74166987 74288384 76468997 75952098 73259738 76945916 73732190 73390453 74017125 74222846 75343181 72775353 73912250 73373049 68088775 75334874 75823898 72825351 75097522 77213017
13 79762699 77878926 80164993 81274166 78694325 79084756 78439989 78918723 80086640 79026774 95463586 79147559 78080118 78359041 80911218 79188369 79527690 79143200 79611183 83418067 82852474 78387256 79851251 78653405 78245760 79194661 83885107 78424208 79537689 78836773
14 85009730 85473444 85956937 84388278 86443365 85862153 84265348 85429628 86014680 85769852 89528521 83798247 84900086 83645399 83724564 84732238 86617716 86403948 89213437 84923943 85831061 84933291 84383097 85123912 85040389 87202446 84542990 86277511 84407004 84534723
15 89043004 88957708 91141757 88937108 89904244 90388499 89876630 88909283 90389771 88805652 90795361 90223246 89943760 88436882 90979901 91892581 92363208 88862712 91621733 90346266 95711558 95609909 90941456 90869846 89604720 90098181 90776254 89312349 89494464 89957217
16 97622744 93073162 97798668 95487821 95344712 97940453 95485277 94426422 94521757 93376404 105940785 94329653 95249667 94660257 95542548 95769701 96886298 97089765 94580752 94784470 96648334 95623175 98211462 96310015 95511978 94606923 94516988 95405710 98110966 96141375
17 99538379 106219207 102047502 100533309 99044767 99294484 102017523 99426702 99187816 102729562 99391192 99114653 100704854 100581263 101548418 101257973 100286398 101165161 99207043 101314763 102471398 99112228 103257702 99267701 99590370 100392655 102240538 99683001 102243394 99586563
18 108446000 107218215 106512789 105822242 105424767 107204267 106829175 107082620 106881047 105749441 105283582 110213936 107114632 104543689 107951353 107941314 108198546 105010519 106523890 108046730 109853683 110561043 109727197 108363046 108066468 106711837 104443303 106555893 107006471 106296938
19 112992283 113802013 112449274 111438804 111124452 110313470 112584258 110853583 114376653 112487780 109370581 111232081 111675826 110875836 112765521 110017262 113644746 111669163 111105504 111553447 112749139 114083020 112898500 111877639 109783506 109590679 111572083 110145522 111907278 114427111
20 117145822 116968988 114544199 117405148 119068741 116050807 114781351 114954238 117523128 117303279 116242600 115774558 116894442 117099602 116850897 116867479 117030156 116942736 115489652 115128999 120948978 114970951 119924670 115673902 117191831 117387423 115034725 117452460 116218373 115414486
21 125029034 123458260 122103198 121454604 121254403 121381671 122437190 121527355 126623032 121407652 121772153 121416941 125018664 120012622 122504231 123195909 121345261 122891485 123504220 123059122 120780348 123136603 121690764 121830998 120884392 120274823 122690012 126826288 121673480 121083379
22 130273289 126015396 125362634 127872689 127446617 126461066 126103478 128155931 125876125 127425396 126539539 134252849 127896856 129008132 124913147 133293278 131231117 125797171 126465114 125427911 129475634 128744298 126316924 126611649 132549458 126666747 128440025 125328778 126337143 129157955
23 130977913 134528486 135474772 130985217 134372663 131311904 134112445 130091404 132622570 131813853 135622981 132561210 132556732 130015877 131944186 131468379 134018682 130834493 132670023 140692496 131594475 130501624 133956992 133911654 138583122 130785668 132287457 132039753 129305301 131168044
24 138703187 136402992 138459962 138110201 138907485 139273649 135870243 137202100 139217520 136774356 139013251 136930950 137330991 136199946 136563123 135134257 139321643 152626286 135275242 135889721 139832128 135135319 138179125 135742964 138884750 139343615 141481775 137789585 145569836 137649211
25 157758714 144817739 145287415 144932322 141337083 141659110 145056645 142644411 143199264 141928656 147904769 141940849 142859831 141732573 142613492 143228501 142206537 142707865 146337072 146235253 139633400 141265803 144639100 144604444 145383041 141881283 144108556 142357151 143904158 145469079
26 154908435 154078768 148582260 146739957 149783161 147902825 149710619 147104097 149709959 146580085 148077615 147352291 152582450 147901853 147428009 146996518 159265341 159492233 146200395 150772000 148488977 148331260 148502203 147438279 154276422 146215424 147306071 146143043 151455883 149158624
27 152545627 151553033 154806997 152103045 153166789 152302975 151579022 151784353 152216165 151492855 157494958 154024150 152117101 152805865 153347582 152788962 153406106 153062165 153783010 150410895 156462956 154721270 154813320 155860181 155526140 157831284 158246865 154628439 151423249 147790606
28 159892323 160597438 160155817 158030893 160764423 157776647 156633920 157110228 163367971 157801185 164307542 157665210 161432085 159785515 165383651 157156869 161291050 160180074 158357841 160893816 160847305 157827046 157946408 161490750 163608168 157727572 161717973 158183831 159913694 157495489
29 163190113 162527240 166101099 162508424 164279508 162556197 175082924 162854839 165045420 163246874 168607256 164883835 164054418 165566097 165647555 167013198 166675840 163608048 164709486 164022957 165184832 162392899 165193870 166696700 164906259 165955376 165799751 165125848 162976897 163790474
30 172999501 171771106 170048396 169801164 174295467 169656162 168504956 171815522 169516589 169851442 174009290 168854428 171084617 168888534 180950474 167160405 169430751 168911389 169016614 170224479 172039147 167701760 169463004 175075668 168280299 168792938 175149923 171342029 169389802 169442965
31 175521448 172736658 173671220 177978439 175093593 176356707 181799079 174298113 174561547 180187116 180608517 173405051 177795963 172833526 177326157 175086109 173743531 184363018 177032995 173947248 173622656 175408447 176787647 173554643 173560034 171794010 175450559 174284225 175985573 178363169
32 183419338 177961094 180376825 182561966 181480698 178212946 180973509 178553840 184472472 177743120 179971675 179578809 183220120 180408948 177989610 181720846 183080326 180777386 178941476 179865107 180801042 182053445 179319003 179684926 180871800 179277351 184680728 179971715 182236201 181876579
33 187544141 182583829 187038124 182875788 183868253 183418666 184249868 192960061 186658223 190364741 187593096 182910596 186482521 186987135 186483372 183564952 183104493 183031121 187521256 184368118 185132548 189092160 191233474 190087570 185057352 187572035 194055247 185326627 182792455 188854415
34 198685826 198021121 190372907 188366825 193295846 187881508 191990160 191543570 189436931 187538089 189385420 188057532 192217203 190059906 189872410 202429255 193528680 187494944 191539191 190026742 191440738 186139131 189142587 189426891 190362817 190250899 188456610 189106287 192983026 189556174
35 196330283 200214517 200742386 193060637 199010228 196527588 197751093 195661318 194000139 192498702 196597964 194671589 196529100 196461077 197674304 194992043 194410640 197482349 198218124 196080355 194030659 199917197 206351433 195486377 193808816 197587634 198172334 194360031 194659986 193426691
36 203906075 201702989 203618685 196858442 200509763 197732998 201722067 202915463 205549960 214283961 199438042 197887780 204746413 200042190 199361282 203909551 210788986 205110353 200403414 199374248 204026098 200354159 202070265 203803565 205303399 200253532 203800799 201959569 202396421 199537506
37 206573155 207800859 210711324 205198585 208522777 205510022 213012191 207097047 208534650 204391581 205578696 207815848 207501535 207133658 206475124 210766392 205997833 213237149 205596871 207521103 209769919 202541574 209401399 207739780 204843733 217217541 205361222 209512927 207465896 207259142
38 214942074 210663922 213624996 211237761 215372513 211603413 222493068 213427882 218473330 210090764 210320692 212578024 216749478 210750170 213604365 216937545 212640946 212376441 214756972 209164378 218417831 212826949 209940631 210484882 214946162 211211600 211009345 212690593 216205517 217811108
39 218866355 216257830 223778464 214618713 224399395 216416859 216760389 214599906 214858170 220415336 221300111 216535230 217211749 216258490 226544478 218110020 214875143 214514420 218174236 213914770 217307536 216781029 217530761 218350299 215268430 217138496 225272117 221900392 217382331 216998403
40 221808432 225871796 223393262 221733396 222789374 219206729 222706393 224694209 235159015 224256977 222539858 220987912 225188593 224246256 221185457 228672797 221718086 223362041 229564967 224034422 226855674 220592862 227720711 223554246 222908507 224037048 222237830 220197823 227818631 222577412
41 222473208 225440435 229414573 230760478 227226176 227174065 231336010 230015355 227901864 227698597 228047828 228551520 228463529 226676234 230252958 231500892 235299028 224898657 233371670 226940349 229167612 228504228 228197761 228154166 228301573 226892596 229658569 227627429 226806057 227103235
42 235098957 234791989 236535438 233017318 236907444 232236666 231999303 232108356 235993452 236829562 234036175 232927112 236446605 236072777 234659480 230891924 236469911 231267666 237144686 230769756 233736872 243189072 233542572 233648880 238122994 231504999 234688046 229358654 234153474 235114868
43 236695280 241124176 246418660 243480992 241827187 238004573 240988682 242348223 241408570 236669790 241346770 236124156 239150808 236091373 242462065 239072816 238628319 238010324 240894127 240272144 236083887 237791618 239672345 237769164 241904678 237859821 242528514 237122122 239636164 242121952
44 244246464 245447266 242180766 241492514 250701691 244651755 241019412 239249581 246849680 240688086 241545728 243602899 245673075 242409522 241004252 250000705 251283526 240953703 239901151 241700620 254444249 239820604 240456214 244728765 244980255 242406075 248421134 238703646 242546960 241113695
45 250358853 252991295 256861241 250744845 249919436 248943874 250532741 246230322 250689958 246086071 249235011 246410173 252435282 246813098 252665671 251135157 245220042 246685780 250476161 246262445 249944184 245767229 253523994 247596415 249122452 247180455 268012546 252839168 250506951 247839560
46 258515678 255127351 258955696 254929936 257120708 255260410 251038578 251595313 260031844 250808930 254935016 251289568 259027632 255518956 252075913 246677056 256439341 249725069 252087416 257319427 259038108 258461814 254816898 263053978 260230594 256285701 250760969 251863198 261576438 255489159
47 259321952 263157220 272091170 260371930 259655502 261236025 263857305 262687715 259170527 258860603 264639611 265202478 256972983 257182030 263181238 256587892 258218211 261507725 270820172 260866925 257210917 258769045 261769726 261496413 253811309 270609021 260821256 256978755 258132254 260367212
48 269766659 276595133 264859481 262269320 273838428 264149377 263233691 263289309 265181649 266004584 268310019 273395936 272923906 262079551 267123386 263578424 265421077 263970278 263576039 264467026 266602721 262467839 261393944 267669901 269241426 264429344 269717555 268683909 267981609 266332845
49 269295882 269933656 270469120 269883778 269199344 267957123 249796162 267844783 269603533 268826979 272428882 275080932 268788032 268638531 274391609 276691945 273982291 269626067 266799235 268074241 269502226 266269533 277943886 275201319 273155099 267433111 273326603 268854473 270295282 273872838
50 274518336 276481394 288608270 272996229 281990727 274486455 273340120 271979287 279091163 281867607 271331644 272972824 279792281 279090092 273962884 272123177 283408151 275907086 270838692 248005141 282220165 270342455 275627731 274080193 283139528 270895374 277110943 276570359 278170059 272635617

View File

@@ -1,51 +1,51 @@
Cycles;Baseline Avg;Baseline SD;Intercept Avg;Intercept SD;Stderr Avg;Stderr SD;File Avg;File SD Cycles;Baseline Avg;Baseline SD;Intercept Avg;Intercept SD;Stderr Avg;Stderr SD;File Avg;File SD;Ok Avg;Ok SD;Return Avg;Return SD;PyOk Avg;PyOk SD;PyReturn Avg;PyReturn SD
100;394522;59714;10427113;462988;11575964;253473;11831990;348689 100;394522;59714;10427113;462988;11575964;253473;11831990;348689;13076474;1162271;13177050;232828;17114683;255467;15571675;304178
200;684480;89390;10728908;272181;14325139;305707;13554674;460807 200;684480;89390;10728908;272181;14325139;305707;13554674;460807;16456310;289818;16431464;328445;24131234;520354;21056080;487110
300;1004806;131581;10962041;312386;17027194;323923;15330088;441731 300;1004806;131581;10962041;312386;17027194;323923;15330088;441731;19882310;382739;19387692;1501689;31026008;469559;26380650;771419
400;1304127;83545;11372661;270890;19712621;347909;17249057;900721 400;1304127;83545;11372661;270890;19712621;347909;17249057;900721;23220259;603311;21422406;658317;38149373;939016;32128353;1107946
500;1592256;105898;11709378;273902;22697282;462435;18822538;574087 500;1592256;105898;11709378;273902;22697282;462435;18822538;574087;26851989;1010867;24460937;758839;45071880;1339034;37456301;1244316
600;1895442;130464;12047917;247568;25117703;456337;20575498;266024 600;1895442;130464;12047917;247568;25117703;456337;20575498;266024;29783448;831999;27577395;793483;52053112;1097029;42532242;1356564
700;2213827;104975;12361110;300385;27882492;634943;22382673;573662 700;2213827;104975;12361110;300385;27882492;634943;22382673;573662;32845440;559622;30507109;895084;59129922;1097927;47687095;863862
800;2628305;201520;12754461;245304;30815541;974036;24578416;1370113 800;2628305;201520;12754461;245304;30815541;974036;24578416;1370113;36157934;750879;35652768;860188;65820532;998922;53092810;938485
900;2825817;162314;12993031;356629;33225179;414261;26037719;462749 900;2825817;162314;12993031;356629;33225179;414261;26037719;462749;39436945;796004;39342039;1201289;72232752;767761;58484564;1533793
1000;3108772;170260;13431961;307448;35931523;507563;27869838;962124 1000;3108772;170260;13431961;307448;35931523;507563;27869838;962124;43469749;1907452;42401106;1213179;79670603;1840701;63659220;1148797
1100;3406111;146170;13777606;306016;38686328;485222;29861891;980317 1100;3406111;146170;13777606;306016;38686328;485222;29861891;980317;45853904;1279935;44848600;1390247;86139757;621780;69738219;2240494
1200;3725777;156594;14126528;277721;41647628;705704;31178678;460041 1200;3725777;156594;14126528;277721;41647628;705704;31178678;460041;49035716;695564;45621733;1325123;93095429;902275;74307838;1794152
1300;4087469;156785;14358058;280611;44086243;460197;32979343;423141 1300;4087469;156785;14358058;280611;44086243;460197;32979343;423141;52497584;1632619;51856861;1275990;100191141;1814128;80135020;3262696
1400;4292505;167374;14846268;296761;46809938;541389;34869115;432616 1400;4292505;167374;14846268;296761;46809938;541389;34869115;432616;56190011;1089663;55203609;914387;107766603;2362379;85479265;1389504
1500;4572214;225571;15114237;287681;49361025;279845;37212031;1781779 1500;4572214;225571;15114237;287681;49361025;279845;37212031;1781779;59116185;1689085;58285709;749010;113992447;1269982;90473175;1713998
1600;4923082;174615;15460129;327486;52305548;611924;38625303;1135684 1600;4923082;174615;15460129;327486;52305548;611924;38625303;1135684;62279307;1274413;61953282;1695522;121063828;2245106;96033275;2312777
1700;5166483;153378;15791758;298803;54938031;513068;40254955;949560 1700;5166483;153378;15791758;298803;54938031;513068;40254955;949560;65382680;1506830;65115356;1331748;127720565;1626984;100748551;1649820
1800;5497751;209020;16085585;366356;58477674;1507994;41892868;498818 1800;5497751;209020;16085585;366356;58477674;1507994;41892868;498818;68688056;1504520;68228749;880714;134391688;1582336;107186154;1589397
1900;5805956;193667;16427008;257386;60505802;716086;43707906;813608 1900;5805956;193667;16427008;257386;60505802;716086;43707906;813608;72153172;1749906;71204672;639830;141534098;1787621;111845567;1418496
2000;6059830;149468;16976318;415427;63510717;1323394;45371320;371778 2000;6059830;149468;16976318;415427;63510717;1323394;45371320;371778;75689663;1580709;74722980;979545;148737463;2653304;116676154;1474490
2100;6377742;190684;17196797;289761;66726951;1794964;47414718;1348167 2100;6377742;190684;17196797;289761;66726951;1794964;47414718;1348167;78754328;1798845;77583191;1497809;155363324;2473707;122408936;1673891
2200;6623121;189853;17470183;303551;68567720;1023095;49269993;1644584 2200;6623121;189853;17470183;303551;68567720;1023095;49269993;1644584;81715194;1847263;81630235;1266921;162580027;3575716;127848212;2435339
2300;6952906;176805;17876859;336883;69392158;10556124;50527003;363668 2300;6952906;176805;17876859;336883;69392158;10556124;50527003;363668;85161444;1925442;84283344;1124784;168991977;2334144;132760346;2491277
2400;7288966;221144;18215274;381104;73997790;1207150;53676400;2638128 2400;7288966;221144;18215274;381104;73997790;1207150;53676400;2638128;88515266;1956049;87714794;1047669;176316871;2664706;138427180;3428852
2500;7687086;214686;18630693;393414;76931585;1135647;55006778;2629415 2500;7687086;214686;18630693;393414;76931585;1135647;55006778;2629415;91372314;2103385;91015096;1907795;183353388;2070291;143987804;3191243
2600;7632633;363416;18909524;344719;79271877;687461;55975072;345029 2600;7632633;363416;18909524;344719;79271877;687461;55975072;345029;94539841;1303073;94438459;1044190;189836061;2321304;149616169;3588693
2700;8174560;181199;19231438;387669;82347089;1557451;57872052;490032 2700;8174560;181199;19231438;387669;82347089;1557451;57872052;490032;97678038;1347481;97621552;1146042;197259039;2894388;153469866;2291787
2800;8447899;213732;19670216;328248;84893831;1408698;59542864;265835 2800;8447899;213732;19670216;328248;84893831;1408698;59542864;265835;101249601;1661554;100727209;1440325;203936177;3275245;159844758;2318524
2900;8804464;218130;19956270;431572;87686022;1182234;61601833;981957 2900;8804464;218130;19956270;431572;87686022;1182234;61601833;981957;104308050;1786214;103876640;1148094;210448418;3403192;165006808;2449638
3000;9010784;248166;20376781;336594;91068853;1782507;63178755;558420 3000;9010784;248166;20376781;336594;91068853;1782507;63178755;558420;106994264;1560907;106959716;1037735;216539614;2782129;170782294;2861060
3100;9331103;266569;20577490;278614;93221976;1568136;65392427;2128048 3100;9331103;266569;20577490;278614;93221976;1568136;65392427;2128048;110128834;1347250;110771591;1790119;225322807;4036079;175905233;2913873
3200;9778768;280983;20965405;359323;95722907;1632923;67069912;1365944 3200;9778768;280983;20965405;359323;95722907;1632923;67069912;1365944;114724502;2801907;114345455;1651313;230459357;2103196;180736097;1911002
3300;9909117;283939;21283196;422513;98212371;671946;68701884;1196483 3300;9909117;283939;21283196;422513;98212371;671946;68701884;1196483;116953218;1948013;116975388;1719466;237007031;1793911;186427075;3133767
3400;10253423;272824;21563196;476725;100947909;1262629;70202232;398452 3400;10253423;272824;21563196;476725;100947909;1262629;70202232;398452;121516666;2752272;116900460;18828606;243965577;1742249;190953641;3516285
3500;10549094;282951;22085786;363989;103828023;1230160;72095327;1412804 3500;10549094;282951;22085786;363989;103828023;1230160;72095327;1412804;122976733;1810316;123544404;1617207;251422319;3911285;196557186;2842641
3600;10932319;280437;22273127;312981;106331558;513011;74155843;1156209 3600;10932319;280437;22273127;312981;106331558;513011;74155843;1156209;127525307;2349155;127181318;1985368;258570335;2400550;202445599;3652985
3700;11219472;293693;22752743;363381;109179786;1510549;75889598;1338718 3700;11219472;293693;22752743;363381;109179786;1510549;75889598;1338718;130899357;2840471;130113483;2428192;264318118;5261600;207869651;2975572
3800;11514828;307166;22943067;418169;111560051;338207;77553942;1357759 3800;11514828;307166;22943067;418169;111560051;338207;77553942;1357759;133639518;2945802;134020974;2403253;271979896;3103527;213578445;3157841
3900;11824172;343282;23547573;417688;115156892;1981115;79134316;992767 3900;11824172;343282;23547573;417688;115156892;1981115;79134316;992767;136624026;1986892;136212234;920525;278799056;3039350;218077995;3368338
4000;12123878;296372;23814232;375398;117444661;1697465;80847115;834244 4000;12123878;296372;23814232;375398;117444661;1697465;80847115;834244;138963968;2892888;139715392;1778420;285639371;2351648;224054024;3285788
4100;12526596;347080;24076190;411786;120001747;1042786;83079117;1736204 4100;12526596;347080;24076190;411786;120001747;1042786;83079117;1736204;143419406;2973443;142664064;2611749;292438496;5864424;228461888;2473895
4200;12715912;279629;24341732;416874;122699007;1258274;85512780;2631994 4200;12715912;279629;24341732;416874;122699007;1258274;85512780;2631994;147069820;3579741;146571150;1463553;300491237;3464580;234442167;2762145
4300;13111242;258811;24656266;428479;125560493;1443093;85918169;297761 4300;13111242;258811;24656266;428479;125560493;1443093;85918169;297761;149378298;2451718;149485075;1587550;305708071;2985253;239783643;2561444
4400;13303073;325634;25067172;387431;127711585;372280;87929683;975369 4400;13303073;325634;25067172;387431;127711585;372280;87929683;975369;152833570;2522128;153113653;1656150;313055332;6297144;243740800;3929135
4500;13697463;356756;25683108;375100;130526503;693141;89582972;505995 4500;13697463;356756;25683108;375100;130526503;693141;89582972;505995;155724988;4075062;155227342;2044938;309578675;54625956;250101014;4378895
4600;13977464;344027;25925755;460848;133495971;1127336;91597602;1157872 4600;13977464;344027;25925755;460848;133495971;1127336;91597602;1157872;158610112;3912888;158811576;1730808;326519995;6710607;255335223;3916086
4700;14213956;470038;25919071;354324;136075667;1366941;93461991;1220158 4700;14213956;470038;25919071;354324;136075667;1366941;93461991;1220158;161771244;2003348;162846180;1940000;332985345;2558187;261185171;4275170
4800;14576705;375812;26600502;505971;139289408;1414807;94883034;524994 4800;14576705;375812;26600502;505971;139289408;1414807;94883034;524994;164754921;1944789;165493142;1553616;340248426;2999981;266618479;3845083
4900;14708572;286603;26813061;385730;142436712;2843052;96930580;1047072 4900;14708572;286603;26813061;385730;142436712;2843052;96930580;1047072;168167032;1638428;169239730;1898011;347728876;4980985;270105550;4902415
5000;15199882;359091;27142509;386736;145702391;3939916;98716605;1358384 5000;15199882;359091;27142509;386736;145702391;3939916;98716605;1358384;172570367;2825799;172350252;1561780;354276939;2652007;275452799;6886489
1 Cycles Baseline Avg Baseline SD Intercept Avg Intercept SD Stderr Avg Stderr SD File Avg File SD Ok Avg Ok SD Return Avg Return SD PyOk Avg PyOk SD PyReturn Avg PyReturn SD
2 100 394522 59714 10427113 462988 11575964 253473 11831990 348689 13076474 1162271 13177050 232828 17114683 255467 15571675 304178
3 200 684480 89390 10728908 272181 14325139 305707 13554674 460807 16456310 289818 16431464 328445 24131234 520354 21056080 487110
4 300 1004806 131581 10962041 312386 17027194 323923 15330088 441731 19882310 382739 19387692 1501689 31026008 469559 26380650 771419
5 400 1304127 83545 11372661 270890 19712621 347909 17249057 900721 23220259 603311 21422406 658317 38149373 939016 32128353 1107946
6 500 1592256 105898 11709378 273902 22697282 462435 18822538 574087 26851989 1010867 24460937 758839 45071880 1339034 37456301 1244316
7 600 1895442 130464 12047917 247568 25117703 456337 20575498 266024 29783448 831999 27577395 793483 52053112 1097029 42532242 1356564
8 700 2213827 104975 12361110 300385 27882492 634943 22382673 573662 32845440 559622 30507109 895084 59129922 1097927 47687095 863862
9 800 2628305 201520 12754461 245304 30815541 974036 24578416 1370113 36157934 750879 35652768 860188 65820532 998922 53092810 938485
10 900 2825817 162314 12993031 356629 33225179 414261 26037719 462749 39436945 796004 39342039 1201289 72232752 767761 58484564 1533793
11 1000 3108772 170260 13431961 307448 35931523 507563 27869838 962124 43469749 1907452 42401106 1213179 79670603 1840701 63659220 1148797
12 1100 3406111 146170 13777606 306016 38686328 485222 29861891 980317 45853904 1279935 44848600 1390247 86139757 621780 69738219 2240494
13 1200 3725777 156594 14126528 277721 41647628 705704 31178678 460041 49035716 695564 45621733 1325123 93095429 902275 74307838 1794152
14 1300 4087469 156785 14358058 280611 44086243 460197 32979343 423141 52497584 1632619 51856861 1275990 100191141 1814128 80135020 3262696
15 1400 4292505 167374 14846268 296761 46809938 541389 34869115 432616 56190011 1089663 55203609 914387 107766603 2362379 85479265 1389504
16 1500 4572214 225571 15114237 287681 49361025 279845 37212031 1781779 59116185 1689085 58285709 749010 113992447 1269982 90473175 1713998
17 1600 4923082 174615 15460129 327486 52305548 611924 38625303 1135684 62279307 1274413 61953282 1695522 121063828 2245106 96033275 2312777
18 1700 5166483 153378 15791758 298803 54938031 513068 40254955 949560 65382680 1506830 65115356 1331748 127720565 1626984 100748551 1649820
19 1800 5497751 209020 16085585 366356 58477674 1507994 41892868 498818 68688056 1504520 68228749 880714 134391688 1582336 107186154 1589397
20 1900 5805956 193667 16427008 257386 60505802 716086 43707906 813608 72153172 1749906 71204672 639830 141534098 1787621 111845567 1418496
21 2000 6059830 149468 16976318 415427 63510717 1323394 45371320 371778 75689663 1580709 74722980 979545 148737463 2653304 116676154 1474490
22 2100 6377742 190684 17196797 289761 66726951 1794964 47414718 1348167 78754328 1798845 77583191 1497809 155363324 2473707 122408936 1673891
23 2200 6623121 189853 17470183 303551 68567720 1023095 49269993 1644584 81715194 1847263 81630235 1266921 162580027 3575716 127848212 2435339
24 2300 6952906 176805 17876859 336883 69392158 10556124 50527003 363668 85161444 1925442 84283344 1124784 168991977 2334144 132760346 2491277
25 2400 7288966 221144 18215274 381104 73997790 1207150 53676400 2638128 88515266 1956049 87714794 1047669 176316871 2664706 138427180 3428852
26 2500 7687086 214686 18630693 393414 76931585 1135647 55006778 2629415 91372314 2103385 91015096 1907795 183353388 2070291 143987804 3191243
27 2600 7632633 363416 18909524 344719 79271877 687461 55975072 345029 94539841 1303073 94438459 1044190 189836061 2321304 149616169 3588693
28 2700 8174560 181199 19231438 387669 82347089 1557451 57872052 490032 97678038 1347481 97621552 1146042 197259039 2894388 153469866 2291787
29 2800 8447899 213732 19670216 328248 84893831 1408698 59542864 265835 101249601 1661554 100727209 1440325 203936177 3275245 159844758 2318524
30 2900 8804464 218130 19956270 431572 87686022 1182234 61601833 981957 104308050 1786214 103876640 1148094 210448418 3403192 165006808 2449638
31 3000 9010784 248166 20376781 336594 91068853 1782507 63178755 558420 106994264 1560907 106959716 1037735 216539614 2782129 170782294 2861060
32 3100 9331103 266569 20577490 278614 93221976 1568136 65392427 2128048 110128834 1347250 110771591 1790119 225322807 4036079 175905233 2913873
33 3200 9778768 280983 20965405 359323 95722907 1632923 67069912 1365944 114724502 2801907 114345455 1651313 230459357 2103196 180736097 1911002
34 3300 9909117 283939 21283196 422513 98212371 671946 68701884 1196483 116953218 1948013 116975388 1719466 237007031 1793911 186427075 3133767
35 3400 10253423 272824 21563196 476725 100947909 1262629 70202232 398452 121516666 2752272 116900460 18828606 243965577 1742249 190953641 3516285
36 3500 10549094 282951 22085786 363989 103828023 1230160 72095327 1412804 122976733 1810316 123544404 1617207 251422319 3911285 196557186 2842641
37 3600 10932319 280437 22273127 312981 106331558 513011 74155843 1156209 127525307 2349155 127181318 1985368 258570335 2400550 202445599 3652985
38 3700 11219472 293693 22752743 363381 109179786 1510549 75889598 1338718 130899357 2840471 130113483 2428192 264318118 5261600 207869651 2975572
39 3800 11514828 307166 22943067 418169 111560051 338207 77553942 1357759 133639518 2945802 134020974 2403253 271979896 3103527 213578445 3157841
40 3900 11824172 343282 23547573 417688 115156892 1981115 79134316 992767 136624026 1986892 136212234 920525 278799056 3039350 218077995 3368338
41 4000 12123878 296372 23814232 375398 117444661 1697465 80847115 834244 138963968 2892888 139715392 1778420 285639371 2351648 224054024 3285788
42 4100 12526596 347080 24076190 411786 120001747 1042786 83079117 1736204 143419406 2973443 142664064 2611749 292438496 5864424 228461888 2473895
43 4200 12715912 279629 24341732 416874 122699007 1258274 85512780 2631994 147069820 3579741 146571150 1463553 300491237 3464580 234442167 2762145
44 4300 13111242 258811 24656266 428479 125560493 1443093 85918169 297761 149378298 2451718 149485075 1587550 305708071 2985253 239783643 2561444
45 4400 13303073 325634 25067172 387431 127711585 372280 87929683 975369 152833570 2522128 153113653 1656150 313055332 6297144 243740800 3929135
46 4500 13697463 356756 25683108 375100 130526503 693141 89582972 505995 155724988 4075062 155227342 2044938 309578675 54625956 250101014 4378895
47 4600 13977464 344027 25925755 460848 133495971 1127336 91597602 1157872 158610112 3912888 158811576 1730808 326519995 6710607 255335223 3916086
48 4700 14213956 470038 25919071 354324 136075667 1366941 93461991 1220158 161771244 2003348 162846180 1940000 332985345 2558187 261185171 4275170
49 4800 14576705 375812 26600502 505971 139289408 1414807 94883034 524994 164754921 1944789 165493142 1553616 340248426 2999981 266618479 3845083
50 4900 14708572 286603 26813061 385730 142436712 2843052 96930580 1047072 168167032 1638428 169239730 1898011 347728876 4980985 270105550 4902415
51 5000 15199882 359091 27142509 386736 145702391 3939916 98716605 1358384 172570367 2825799 172350252 1561780 354276939 2652007 275452799 6886489

View File

@@ -10,7 +10,7 @@
\begin{filecontents*}[overwrite]{\jobname.xmpdata} \begin{filecontents*}[overwrite]{\jobname.xmpdata}
\Author{\authorname} % The author's name in the document properties. \Author{\authorname} % The author's name in the document properties.
\Title{Intercepting and Manipulating System/Function Calls in Linux Systems} % The document's title in the document properties. \Title{Intercepting and Manipulating System/Function Calls in Linux Systems} % The document's title in the document properties.
\Language{de-AT} % The document's language in the document properties. Select 'en-US', 'en-GB', or 'de-AT'. \Language{en-US} % The document's language in the document properties. Select 'en-US', 'en-GB', or 'de-AT'.
\Keywords{system call\sep syscall\sep function call\sep intercept\sep hook} % The document's keywords in the document properties (separated by '\sep '). \Keywords{system call\sep syscall\sep function call\sep intercept\sep hook} % The document's keywords in the document properties (separated by '\sep ').
\Publisher{TU Wien} % The document's publisher in the document properties. \Publisher{TU Wien} % The document's publisher in the document properties.
\Subject{Thesis} % The document's subject in the document properties. \Subject{Thesis} % The document's subject in the document properties.
@@ -99,7 +99,7 @@
% Required data. % Required data.
\setregnumber{12119052} \setregnumber{12119052}
\setdate{19}{08}{2025} % Set date with 3 arguments: {day}{month}{year}. \setdate{04}{09}{2025} % Set date with 3 arguments: {day}{month}{year}.
\settitle{\thesistitle}{Abfangen und Manipulieren von\\System-/Funktionsaufrufen in\\Linux-Systemen} % Sets English and German version of the title (both can be English or German). If your title contains commas, enclose it with additional curvy brackets (i.e., {{your title}}) or define it as a macro as done with \thesistitle. \settitle{\thesistitle}{Abfangen und Manipulieren von\\System-/Funktionsaufrufen in\\Linux-Systemen} % Sets English and German version of the title (both can be English or German). If your title contains commas, enclose it with additional curvy brackets (i.e., {{your title}}) or define it as a macro as done with \thesistitle.
%\setsubtitle{Optional Subtitle of the Thesis}{Optionaler Untertitel der Arbeit} % Sets English and German version of the subtitle (both can be English or German). %\setsubtitle{Optional Subtitle of the Thesis}{Optionaler Untertitel der Arbeit} % Sets English and German version of the subtitle (both can be English or German).
@@ -158,19 +158,19 @@
% Switch to arabic numbering and start the enumeration of chapters in the table of content. % Switch to arabic numbering and start the enumeration of chapters in the table of content.
\mainmatter \mainmatter
\input{src/01.introduction} \input{src/01.introduction}
\input{src/02.intercept} \input{src/02.related-work}
\input{src/03.manipulate} \input{src/03.intercept}
\input{src/04.related-work} \input{src/04.manipulate}
\input{src/05.evaluation} \input{src/05.evaluation}
\input{src/06.conclusion} \input{src/06.conclusion}
\backmatter \backmatter
% Declare the use of AI tools as mentioned in the statement of originality. % Declare the use of AI tools as mentioned in the statement of originality.
% Use either the English aitools or the German kitools. % Use either the English aitools or the German kitools.
\begin{aitools} %\begin{aitools}
No generative AI tools were used in and for this work whatsoever. % No generative AI tools were used in and for this work whatsoever.
The only exception was the use of ChatGPT for proofreading and refining of the abstract. % The only exception was the use of ChatGPT for proofreading and refining of the abstract.
\end{aitools} %\end{aitools}
%\begin{kitools} %\begin{kitools}
%\todo{Ihr Text hier.} %\todo{Ihr Text hier.}
@@ -180,7 +180,7 @@
\listoffigures % Starred version, i.e., \listoffigures*, removes the toc entry. \listoffigures % Starred version, i.e., \listoffigures*, removes the toc entry.
% Use an optional list of tables. % Use an optional list of tables.
\cleardoublepage % Start list of tables on the next empty right hand page. %\cleardoublepage % Start list of tables on the next empty right hand page.
\listoftables % Starred version, i.e., \listoftables*, removes the toc entry. \listoftables % Starred version, i.e., \listoftables*, removes the toc entry.
% Use an optional list of algorithms. % Use an optional list of algorithms.
@@ -188,7 +188,7 @@
%\addcontentsline{toc}{chapter}{List of Algorithms} %\addcontentsline{toc}{chapter}{List of Algorithms}
% Use an optional list of listings. % Use an optional list of listings.
\cleardoublepage %\cleardoublepage
\listof{listing}{\listoflistingscaption} \listof{listing}{\listoflistingscaption}
\addcontentsline{toc}{chapter}{\listoflistingscaption} \addcontentsline{toc}{chapter}{\listoflistingscaption}

View File

@@ -408,23 +408,18 @@
oder dem Sinn nach entnommen sind, auf jeden Fall unter Angabe oder dem Sinn nach entnommen sind, auf jeden Fall unter Angabe
der Quelle als Entlehnung kenntlich gemacht habe.}]{Statement}% der Quelle als Entlehnung kenntlich gemacht habe.}]{Statement}%
\CreatePolylingual[ \CreatePolylingual[
english={I further declare that I have used generative AI tools only as an aid, english={
and that my own intellectual and creative efforts predominate in this I further declare that I have used generative AI tools only as an aid, and that my own intellectual and creative efforts predominate in this work.
work. In the appendix ``Overview of Generative AI Tools Used'' I have %In the appendix ``Overview of Generative AI Tools Used'' I have listed all generative AI tools that were used in the creation of this work, and indicated where in the work they were used.
listed all generative AI tools that were used in the creation of this %If whole passages of text were used without substantial changes, I have indicated the input (prompts) I formulated and the IT application used with its product name and version number/date.
work, and indicated where in the work they were used. If whole passages The only use of a generative AI tool was ChatGPT, which was used for proof reading, for rephrasing single sentences and paragraphs, and to create the abstract.
of text were used without substantial changes, I have indicated the },
input (prompts) I formulated and the IT application used with its naustrian={
product name and version number/date.}, Ich erkl\"are weiters, dass ich mich generativer KI-Tools lediglich als Hilfsmittel bedient habe und in der vorliegenden Arbeit mein gestalterischer Einfluss \"uberwiegt.
naustrian={Ich erkl\"are weiters, dass ich mich generativer KI-Tools lediglich als %Im Anhang \glqq\"Ubersicht verwendeter Hilfsmittel\grqq\ habe ich alle generativen KI-Tools gelistet, die verwendet wurden, und angegeben, wo und wie sie verwendet wurden.
Hilfsmittel bedient habe und in der vorliegenden Arbeit mein %F\"ur Textpassagen, die ohne substantielle \"Anderungen \"ubernommen wurden, haben ich jeweils die von mir formulierten Eingaben (Prompts) und die verwendete IT-Anwendung mit ihrem Produktnamen und Versionsnummer/Datum angegeben.
gestalterischer Einfluss \"uberwiegt. Im Anhang \glqq\"Ubersicht verwendeter Das einzige verwendete generative KI-Tool war ChatGPT, welches zum Korrekturlesen, bei der Umformulierung einzelner Sätze und Paragraphen, und zum Erstellen der Kurzfassung verwenet wurde.
Hilfsmittel\grqq\ habe ich alle generativen KI-Tools gelistet, die verwendet }]{AIStatement}%
wurden, und angegeben, wo und wie sie verwendet wurden. F\"ur
Textpassagen, die ohne substantielle \"Anderungen \"ubernommen wurden, haben
ich jeweils die von mir formulierten Eingaben (Prompts) und die
verwendete IT-Anwendung mit ihrem Produktnamen und Versionsnummer/Datum
angegeben.}]{AIStatement}%
\CreatePolylingual[ \CreatePolylingual[
english=Overview of Gen. AI Tools Used, english=Overview of Gen. AI Tools Used,
naustrian=Übersicht verwendeter Hilfsmittel]{AIToolsChapter}% naustrian=Übersicht verwendeter Hilfsmittel]{AIToolsChapter}%