diff --git a/laborator/content/apel-functii/README.md b/laborator/content/apel-functii/README.md index 6036278b..872c8f80 100644 --- a/laborator/content/apel-functii/README.md +++ b/laborator/content/apel-functii/README.md @@ -420,7 +420,7 @@ Implementați funcția `toupper` astfel încât translatarea să aibă loc doar ### Bonus: rot13 -Realizați și folosiți o funcție care face translatarea [rot13](http://www.decode.org/) a unui șir. +Realizați și folosiți o funcție care face translatarea [rot13](https://rot13.com/) a unui șir. ### Bonus: rot13++ diff --git a/laborator/content/buffer-overflow/1-data-buffer/data_buffer b/laborator/content/buffer-overflow/1-data-buffer/data_buffer new file mode 100755 index 00000000..b14f5fbd Binary files /dev/null and b/laborator/content/buffer-overflow/1-data-buffer/data_buffer differ diff --git a/laborator/content/buffer-overflow/2-3-4-stack-buffer/stack_buffer b/laborator/content/buffer-overflow/2-3-4-stack-buffer/stack_buffer new file mode 100755 index 00000000..88e2d58a Binary files /dev/null and b/laborator/content/buffer-overflow/2-3-4-stack-buffer/stack_buffer differ diff --git a/laborator/content/buffer-overflow/2-3-4-stack-buffer/stack_buffer.asm b/laborator/content/buffer-overflow/2-3-4-stack-buffer/stack_buffer.asm index ce109d6d..a5dd8c8e 100644 --- a/laborator/content/buffer-overflow/2-3-4-stack-buffer/stack_buffer.asm +++ b/laborator/content/buffer-overflow/2-3-4-stack-buffer/stack_buffer.asm @@ -32,6 +32,7 @@ main: ; Initialize local variable. mov dword [ebp-4], 0xCAFEBABE + ; Fill data in buffer: buffer[i] = i+1 ; Use ebx as buffer base address, ecx as index and dl as value. @@ -46,7 +47,7 @@ fill_byte: inc ecx cmp ecx, 64 jl fill_byte - + mov dword [ebx+ecx], 0xDEADBEEF ; Print data in buffer. push buffer_intro_message call printf @@ -67,7 +68,9 @@ print_byte: pop ecx ; restore ecx inc ecx - cmp ecx, 64 + ;cmp ecx, 64 + ;je change_variable + cmp ecx, 68 jl print_byte ; Print new line. C equivalent instruction is puts(""). @@ -81,6 +84,12 @@ print_byte: push var_message_and_format call printf add esp, 8 + +; change_variable: +; push eax +; xor eax,eax +; mov al, +; mov byte [ebx+ecx],eax leave ret diff --git a/laborator/content/buffer-overflow/5-6-read-stdin/payload b/laborator/content/buffer-overflow/5-6-read-stdin/payload new file mode 100644 index 00000000..378f94e2 --- /dev/null +++ b/laborator/content/buffer-overflow/5-6-read-stdin/payload @@ -0,0 +1 @@ +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFLOW diff --git a/laborator/content/buffer-overflow/5-6-read-stdin/read_stdin b/laborator/content/buffer-overflow/5-6-read-stdin/read_stdin new file mode 100755 index 00000000..098ab656 Binary files /dev/null and b/laborator/content/buffer-overflow/5-6-read-stdin/read_stdin differ diff --git a/laborator/content/interactiune-c-assembly/4-5-max-c-calls/.gitignore b/laborator/content/interactiune-c-assembly/1-2-max-c-calls/.gitignore similarity index 100% rename from laborator/content/interactiune-c-assembly/4-5-max-c-calls/.gitignore rename to laborator/content/interactiune-c-assembly/1-2-max-c-calls/.gitignore diff --git a/laborator/content/interactiune-c-assembly/4-5-max-c-calls/Makefile b/laborator/content/interactiune-c-assembly/1-2-max-c-calls/Makefile similarity index 100% rename from laborator/content/interactiune-c-assembly/4-5-max-c-calls/Makefile rename to laborator/content/interactiune-c-assembly/1-2-max-c-calls/Makefile diff --git a/laborator/content/interactiune-c-assembly/1-2-max-c-calls/main.c b/laborator/content/interactiune-c-assembly/1-2-max-c-calls/main.c new file mode 100644 index 00000000..26fb335c --- /dev/null +++ b/laborator/content/interactiune-c-assembly/1-2-max-c-calls/main.c @@ -0,0 +1,15 @@ +#include + +unsigned int get_max(unsigned int *arr, unsigned int len, unsigned int *pos); + +int main(void) +{ + unsigned int arr[] = { 19, 7, 129, 87, 54, 218, 67, 12, 19, 99 }; + unsigned int max, pos; + + max = get_max(arr, 10, &pos); + + printf("max: %u at position %u\n", max, pos); + + return 0; +} \ No newline at end of file diff --git a/laborator/content/interactiune-c-assembly/4-5-max-c-calls/max.asm b/laborator/content/interactiune-c-assembly/1-2-max-c-calls/max.asm similarity index 71% rename from laborator/content/interactiune-c-assembly/4-5-max-c-calls/max.asm rename to laborator/content/interactiune-c-assembly/1-2-max-c-calls/max.asm index c485b02b..484d242e 100644 --- a/laborator/content/interactiune-c-assembly/4-5-max-c-calls/max.asm +++ b/laborator/content/interactiune-c-assembly/1-2-max-c-calls/max.asm @@ -8,22 +8,28 @@ get_max: ; save ebx in callee push ebx - + push edx ; [ebp+8] is array pointer ; [ebp+12] is array length - + ; [ebp+16] maximum position mov ebx, [ebp+8] mov ecx, [ebp+12] + mov edx, [ebp+16] xor eax, eax compare: cmp eax, [ebx+ecx*4-4] jge check_end mov eax, [ebx+ecx*4-4] + mov [edx], ecx + check_end: loopnz compare - + mov ecx, [edx] + dec ecx + mov [edx], ecx + pop edx pop ebx leave - ret + ret \ No newline at end of file diff --git a/laborator/content/interactiune-c-assembly/1-inline-for/.gitignore b/laborator/content/interactiune-c-assembly/1-inline-for/.gitignore deleted file mode 100644 index 0c1c1e91..00000000 --- a/laborator/content/interactiune-c-assembly/1-inline-for/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/inline_for.asm diff --git a/laborator/content/interactiune-c-assembly/1-inline-for/inline_for.c b/laborator/content/interactiune-c-assembly/1-inline-for/inline_for.c deleted file mode 100644 index ed02ca5e..00000000 --- a/laborator/content/interactiune-c-assembly/1-inline-for/inline_for.c +++ /dev/null @@ -1,28 +0,0 @@ -#include - -#define NUM 100 - -int main(void) -{ - size_t n = NUM; - size_t sum = 0; - - - - __asm__ ( - "xor eax, eax\n\t" /* collect the sum in eax */ - /* use ecx to go through items, start from n */ - "mov ecx, %1\n" - "add_to_sum:\n\t" - "add eax, ecx\n\t" - "loopnz add_to_sum\n\t" - /* place sum in output register */ - "mov %0, eax\n\t" - : "=r" (sum) /* output variable */ - : "r" (n) /* input variable */ - : "eax", "ecx" ); /* registers used in the assembly code */ - - printf("sum(%u): %u\n", n, sum); - - return 0; -} diff --git a/laborator/content/interactiune-c-assembly/2-inline-rotate/.gitignore b/laborator/content/interactiune-c-assembly/2-inline-rotate/.gitignore deleted file mode 100644 index 1398922c..00000000 --- a/laborator/content/interactiune-c-assembly/2-inline-rotate/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/inline_rotate.asm diff --git a/laborator/content/interactiune-c-assembly/2-inline-rotate/inline_rotate.c b/laborator/content/interactiune-c-assembly/2-inline-rotate/inline_rotate.c deleted file mode 100644 index e5b59b43..00000000 --- a/laborator/content/interactiune-c-assembly/2-inline-rotate/inline_rotate.c +++ /dev/null @@ -1,32 +0,0 @@ -#include - -#define NUM 0x12345678 - -int main(void) -{ - size_t n = NUM; - size_t rot_left = 0; - size_t rot_right = 0; - - __asm__ ("" - /* TODO: Use rol instruction to shift n by 8 bits left. - * Place result in rot_left variable. - */ - - /* TODO: Use ror instruction to shift n by 8 bits right. - * Place result in rot_right variable. - */ - /* TODO: Declare output variables - preceded by ':'. */ - /* TODO: Declare input variables - preceded by ':'. */ - /* TODO: Declared used registers - preceded by ':'. */ - ); - - /* NOTE: Output variables are passed by address, input variables - * are passed by value. - */ - - printf("init: 0x%08x, rot_left: 0x%08x, rot_right: 0x%08x\n", - n, rot_left, rot_right); - - return 0; -} diff --git a/laborator/content/interactiune-c-assembly/3-inline-cpuid/.gitignore b/laborator/content/interactiune-c-assembly/3-inline-cpuid/.gitignore deleted file mode 100644 index e03ed5d1..00000000 --- a/laborator/content/interactiune-c-assembly/3-inline-cpuid/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/inline_cpuid.asm diff --git a/laborator/content/interactiune-c-assembly/3-inline-cpuid/Makefile b/laborator/content/interactiune-c-assembly/3-inline-cpuid/Makefile deleted file mode 100644 index aedda455..00000000 --- a/laborator/content/interactiune-c-assembly/3-inline-cpuid/Makefile +++ /dev/null @@ -1,3 +0,0 @@ -PROGNAME := inline_cpuid -include ../../utils/Makefile.generic - diff --git a/laborator/content/interactiune-c-assembly/3-inline-cpuid/inline_cpuid.c b/laborator/content/interactiune-c-assembly/3-inline-cpuid/inline_cpuid.c deleted file mode 100644 index ae6b2fec..00000000 --- a/laborator/content/interactiune-c-assembly/3-inline-cpuid/inline_cpuid.c +++ /dev/null @@ -1,19 +0,0 @@ -#include - -int main(void) -{ - char cpuid_str[13]; - - __asm__ ("" - /* TODO: Make cpuid call and copy string in cpuid_str. - * eax needs to be 0 - * After cpuid call string is placed in (ebx, edx, ecx). - */ - ); - - cpuid_str[12] = '\0'; - - printf("CPUID string: %s\n", cpuid_str); - - return 0; -} diff --git a/laborator/content/interactiune-c-assembly/1-inline-for/Makefile b/laborator/content/interactiune-c-assembly/3-stack-frame/Makefile similarity index 61% rename from laborator/content/interactiune-c-assembly/1-inline-for/Makefile rename to laborator/content/interactiune-c-assembly/3-stack-frame/Makefile index c6ae534d..d42e5912 100644 --- a/laborator/content/interactiune-c-assembly/1-inline-for/Makefile +++ b/laborator/content/interactiune-c-assembly/3-stack-frame/Makefile @@ -1,3 +1,3 @@ -PROGNAME := inline_for +PROGNAME := stack-frame include ../../utils/Makefile.generic diff --git a/laborator/content/interactiune-c-assembly/3-stack-frame/main.c b/laborator/content/interactiune-c-assembly/3-stack-frame/main.c new file mode 100644 index 00000000..73c6ebbb --- /dev/null +++ b/laborator/content/interactiune-c-assembly/3-stack-frame/main.c @@ -0,0 +1,18 @@ +#include + +void print_hello(void); + +void asm_call_wrapper(void) +{ + print_hello(); + printf(" world"); +} + + +int main(void) +{ + asm_call_wrapper(); + printf("!\n"); + + return 0; +} diff --git a/laborator/content/interactiune-c-assembly/3-stack-frame/print-hello.asm b/laborator/content/interactiune-c-assembly/3-stack-frame/print-hello.asm new file mode 100644 index 00000000..85307267 --- /dev/null +++ b/laborator/content/interactiune-c-assembly/3-stack-frame/print-hello.asm @@ -0,0 +1,19 @@ +extern printf + +section .data + message db "Hello", 0 + +section .text + +global print_hello + +; TODO: Adăugați instrucțiunea lipsă +print_hello: + push ebp + mov ebp, esp + push message + call printf + add esp, 4 + + leave + ret \ No newline at end of file diff --git a/laborator/content/interactiune-c-assembly/6-7-max-assembly-calls/.gitignore b/laborator/content/interactiune-c-assembly/4-5-max-assembly-calls/.gitignore similarity index 100% rename from laborator/content/interactiune-c-assembly/6-7-max-assembly-calls/.gitignore rename to laborator/content/interactiune-c-assembly/4-5-max-assembly-calls/.gitignore diff --git a/laborator/content/interactiune-c-assembly/6-7-max-assembly-calls/Makefile b/laborator/content/interactiune-c-assembly/4-5-max-assembly-calls/Makefile similarity index 100% rename from laborator/content/interactiune-c-assembly/6-7-max-assembly-calls/Makefile rename to laborator/content/interactiune-c-assembly/4-5-max-assembly-calls/Makefile diff --git a/laborator/content/interactiune-c-assembly/6-7-max-assembly-calls/main.asm b/laborator/content/interactiune-c-assembly/4-5-max-assembly-calls/main.asm similarity index 79% rename from laborator/content/interactiune-c-assembly/6-7-max-assembly-calls/main.asm rename to laborator/content/interactiune-c-assembly/4-5-max-assembly-calls/main.asm index 3a083d08..2d159472 100644 --- a/laborator/content/interactiune-c-assembly/6-7-max-assembly-calls/main.asm +++ b/laborator/content/interactiune-c-assembly/4-5-max-assembly-calls/main.asm @@ -4,9 +4,8 @@ extern get_max section .data arr: dd 19, 7, 129, 87, 54, 218, 67, 12, 19, 99 len: equ $-arr - - print_format: db "max: %u", 13, 10, 0 - + pos: dd 0 + print_format: db "max: %u at position:%u", 13, 10, 0 section .text global main @@ -20,17 +19,18 @@ main: ; using shr 2 (shift right with 2 bits). mov eax, len shr eax, 2 - + push pos push eax push arr call get_max - add esp, 8 + add esp, 12 ; Print max. + push dword[pos] push eax push print_format call printf add esp, 8 leave - ret + re \ No newline at end of file diff --git a/laborator/content/interactiune-c-assembly/4-5-max-assembly-calls/max.c b/laborator/content/interactiune-c-assembly/4-5-max-assembly-calls/max.c new file mode 100644 index 00000000..541c448e --- /dev/null +++ b/laborator/content/interactiune-c-assembly/4-5-max-assembly-calls/max.c @@ -0,0 +1,15 @@ +#include + +unsigned int get_max(unsigned int *arr, unsigned int len, unsigned int *pos) +{ + unsigned int max = 0; + size_t i; + + for (i = 0; i < len; i++) + if (max < arr[i]) { + max = arr[i]; + *pos = i; + } + + return max; +} \ No newline at end of file diff --git a/laborator/content/interactiune-c-assembly/4-5-max-c-calls/main.c b/laborator/content/interactiune-c-assembly/4-5-max-c-calls/main.c deleted file mode 100644 index 339b872d..00000000 --- a/laborator/content/interactiune-c-assembly/4-5-max-c-calls/main.c +++ /dev/null @@ -1,15 +0,0 @@ -#include - -unsigned int get_max(unsigned int *arr, unsigned int len); - -int main(void) -{ - unsigned int arr[] = { 19, 7, 129, 87, 54, 218, 67, 12, 19, 99 }; - unsigned int max; - - max = get_max(arr, 10); - - printf("max: %u\n", max); - - return 0; -} diff --git a/laborator/content/interactiune-c-assembly/6-7-max-assembly-calls/max.c b/laborator/content/interactiune-c-assembly/6-7-max-assembly-calls/max.c deleted file mode 100644 index 7fa7eb47..00000000 --- a/laborator/content/interactiune-c-assembly/6-7-max-assembly-calls/max.c +++ /dev/null @@ -1,13 +0,0 @@ -#include - -unsigned int get_max(unsigned int *arr, unsigned int len) -{ - unsigned int max = 0; - size_t i; - - for (i = 0; i < len; i++) - if (max < arr[i]) - max = arr[i]; - - return max; -} diff --git a/laborator/content/interactiune-c-assembly/2-inline-rotate/Makefile b/laborator/content/interactiune-c-assembly/6-7-regs-preserve/Makefile similarity index 59% rename from laborator/content/interactiune-c-assembly/2-inline-rotate/Makefile rename to laborator/content/interactiune-c-assembly/6-7-regs-preserve/Makefile index e79bba7b..20628a18 100644 --- a/laborator/content/interactiune-c-assembly/2-inline-rotate/Makefile +++ b/laborator/content/interactiune-c-assembly/6-7-regs-preserve/Makefile @@ -1,3 +1,3 @@ -PROGNAME := inline_rotate +PROGNAME := regs-preserve include ../../utils/Makefile.generic diff --git a/laborator/content/interactiune-c-assembly/6-7-regs-preserve/double_array.c b/laborator/content/interactiune-c-assembly/6-7-regs-preserve/double_array.c new file mode 100644 index 00000000..9492d55c --- /dev/null +++ b/laborator/content/interactiune-c-assembly/6-7-regs-preserve/double_array.c @@ -0,0 +1,9 @@ +#include + +void double_array(unsigned int *array, unsigned int len) +{ + size_t i; + + for (i = 0; i < len; i++) + *(array + i) *= 2; +} \ No newline at end of file diff --git a/laborator/content/interactiune-c-assembly/6-7-regs-preserve/main.asm b/laborator/content/interactiune-c-assembly/6-7-regs-preserve/main.asm new file mode 100644 index 00000000..d926e854 --- /dev/null +++ b/laborator/content/interactiune-c-assembly/6-7-regs-preserve/main.asm @@ -0,0 +1,73 @@ +extern printf +extern double_array + +section .data + myarray dd 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 + myarray_len dd 10 + + format_string db "%d ", 0 + newline db 13, 10, 0 + + +section .text + + +print_reverse_array: + push ebp + mov ebp, esp + + ; save ebx in callee + push ebx + + ; [ebp+8] is array pointer + ; [ebp+12] is array length + mov ebx, [ebp+8] + mov ecx, [ebp+12] + xor eax, eax + +next: + +; TODO1: Decomentați următoarele două linii comentate + push ecx + push dword [ebx+ecx*4-4] + push format_string + call printf + add esp, 8 + pop ecx + loop next + + push newline + call printf + add esp, 4 + + pop ebx + + leave + ret + + +global main + +main: + push ebp + mov ebp, esp + + mov edx, [myarray_len] + lea eax, [myarray] + +; TODO2: Decomentați această secvență de cod + push edx + push eax + call double_array + add esp, 8 + + pop eax + pop edx + push edx + push eax + call print_reverse_array + add esp, 8 + + + leave + ret \ No newline at end of file diff --git a/laborator/content/interactiune-c-assembly/README.md b/laborator/content/interactiune-c-assembly/README.md index 57925ac8..eaabf1fd 100644 --- a/laborator/content/interactiune-c-assembly/README.md +++ b/laborator/content/interactiune-c-assembly/README.md @@ -67,83 +67,12 @@ main Remarcați faptul că procedura este declarată ca fiind globală și se numește `main` - punctul de pornire al oricărui program C. Din moment ce în C parametrii sunt puși pe stivă în ordine inversă, offsetul stringului este pus prima oară, urmat de offsetul șirului de formatare. Funcția C poate fi apelată după aceea, însa stiva trebuie restaurată la ieșirea din funcție. Când se face linkarea codului assembly trebuie inclusă și biblioteca standard C (sau biblioteca care conține funcțiile pe care le folosiți). -## Inline assembly -În primul rând, ce este “inline”? - -Termenul `inline` este un cuvânt cheie în limbajul C și este folosit în declararea funcțiilor. În momentul în care compilatorul găsește o funcție declarată ca fiind inline, acesta va înlocui toate apelurile către funcția respectivă cu corpul funcției. Avantajul principal al funcțiilor inline este acela că se pierde overheadul rezultat din apelul unei funcții. Pe de altă parte, dimensiunea binarului va fi mai mare. -> **NOTE:** Nu are sens să declarăm ca fiind inline funcțiile recursive. De ce? - -Acum este ușor să ghicim la ce se referă expresia “inline assembly”: un set de instrucțiuni assembly scrise ca funcții inline. Inline assembly este folosit ca o metoda de optimizare și este foarte des întâlnit în system programming. - -În programele C/C++ se pot insera instrucțiuni în limbaje de asamblare folosing cuvântul cheie “asm”. - -Pentru mai multe detalii, consultați [linkul](https://www.codeproject.com/Articles/15971/Using-Inline-Assembly-in-C-C) pentru gcc sau [linkul](https://docs.microsoft.com/en-us/cpp/assembler/inline/inline-assembler?redirectedfrom=MSDN&view=msvc-160) pentru cl. - ## Exerciții > **IMPORTANT:** În cadrul laboratoarelor vom folosi repository-ul de git al materiei IOCLA - [https://github.com/systems-cs-pub-ro/iocla](https://github.com/systems-cs-pub-ro/iocla). Repository-ul este clonat pe desktop-ul mașinii virtuale. Pentru a îl actualiza, folosiți comanda `git pull origin master` din interiorul directorului în care se află repository-ul (`~/Desktop/iocla`). Recomandarea este să îl actualizați cât mai frecvent, înainte să începeți lucrul, pentru a vă asigura că aveți versiunea cea mai recentă. Dacă doriți să descărcați repository-ul în altă locație, folosiți comanda `git clone https://github.com/systems-cs-pub-ro/iocla ${target}`.Pentru mai multe informații despre folosirea utilitarului `git`, urmați ghidul de la [Git Immersion](https://gitimmersion.com/). -### 1. Tutorial: Buclă for în inline assembly -În subdirectorul `1-inline-for/` din arhiva de sarcini a laboratorului aveți o implementare a unei bucle for folosind inline assembly. - -Urmăriți codul și compilați-l și rulați-l într-un terminal. Pentru a-l compila rulați comanda -```bash -make -``` -În urma rulării comenzii rezultă executabilul `inline_for` pe care îl putem executa folosind comanda -```bash -./inline_for -``` -Urmăriți în cod partea de inline assembly din blockul ce începe cu `asm`. Înțelegeți modul în care funcționează inline assembly înainte de a trece la exercițiul următor. -> **TIP:** -> Structura generală a unei directive de inline assembly este următoarea: -> ```C -> __asm__ ( AssemblerTemplate -> : OutputOperands -> [ : InputOperands -> [ : Clobbers ]] -> ) -> ``` -> `AssemblerTemplate` este un string care constituie instrucțiunile in limbaj de asamblare executate de programul vostru. `gcc` nu va ține cont de spațiile albe din acest string, din cauza aceasta trebuie sa marcați fiecare instrucțiune cu `\n` (opțional `\t` pentru indentare). -> -> `OutputOperands` și `InputOperands` reprezintă variabilele de ieșire, respectiv intrare ale rutinei voastre. Convențional, variabilele de ieșire sunt transferate prin referință, iar cele de intrare prin valoare. Pentru variabilele de ieșire, folosiți declarații de forma `"=r" ()`, iar pentru variabile de intrare, `"r" ()`. -> -> Prin `Clobbers` menționați registrele pe care îi folosiți în rutina voastră de asamblare, și în felul acesta instruiți compilatorul să nu se atingă de ei. Altfel, sunt șanse să îi folosească în alte scopuri. -> -> În instrucțiuni, trebuie să înlocuiți aparițiile variabilelor din program (e.g. `sum`), cu registrul aferent (e.g. `%0`). Registrele de tip general (`"r"`) sunt numerotați crescător începând cu 0, în ordinea declarațiilor. Există și posibilitatea de a mapa explicit o variabilă la un anumit registru (e.g. `"=a" (var)` va mapa variabila `var` la registrul `eax`), însă, pentru simplitate, în laborator folosim doar mapări la registrele generale. -> -> Pentru debugging, puteți inspecta fișierul de assembly generat de `gcc` - acesta se generază executând comanda: -> ```bash -> make asm -> ``` - -### 2. Rotație în inline assembly -În limbajul C avem suport pentru operații de shiftare pe biți dar nu avem suport pentru operații de rotație pe biți. Acest lucru în ciuda prezenței operațiilor de rotație pe biți la nivelul procesorului. - -În subdirectorul `2-inline-rotate/` găsiți un schelet de cod pe care să îl folosiți pentru a implementa, folosind mnemonicile `rol` și respectiv `ror`, rotații pe biți. O descriere scurtă a acestor instrucțiuni găsiți [aici](https://en.wikibooks.org/wiki/X86_Assembly/Shift_and_Rotate#Rotate_Instructions). - -Pentru compilare folosiți comanda `make`. -> **TIP:** -> La o implementare corectă a rotației cu 8 biți la stânga și dreapta, în urma rulării executabilului `./inline_rotate`, veți obține un rezultat de forma: -> ```bash -> ./inline_rotate -> init: 0x12345678, rot_left: 0x34567812, rot_right: 0x78123456 -> ``` - -### 3. CPUID în inline assembly -La nivelul procesoarelor moderne există o instrucțiune simplă, accesibilă doar din limbaj de asamblare, care oferă informații despre procesor numită `cpuid`. - -În subdirectorul `3-inline-cpuid/` găsiți un schelet de cod pe care să îl folosiți pentru obținerea vendor ID string-ului procesorului folosind instrucțiunea `cpuid`. Completați scheletul și faceți programul să afișeze informațiile dorite. - -Pentru compilare folosiți comanda `make`. - -> **TIP:** -> Pentru informații despre instrucțiunea `cpuid` consultați și aceste link-uri: -> - http://wiki.osdev.org/CPUID -> - https://en.wikipedia.org/wiki/CPUID#EAX.3D0:_Get_vendor_ID - -### 4. Tutorial: Calcul maxim în assembly cu apel din C -În subdirectorul `4-5-max-c-calls/` din arhiva de sarcini a laboratorului găsiți o implementare de calcul a maximului unui număr în care funcția `main()` este definită în C de unde se apelează funcția `get_max()` definită în limbaj de asamblare. +### 1. Tutorial: Calcul maxim în assembly cu apel din C +În subdirectorul `1-2-max-c-calls/` din arhiva de sarcini a laboratorului găsiți o implementare de calcul a maximului unui număr în care funcția `main()` este definită în C de unde se apelează funcția `get_max()` definită în limbaj de asamblare. Urmăriți codul din cele două fișiere și modul în care se transmit argumentele funcției și valoarea de retur. @@ -161,7 +90,7 @@ make > **IMPORTANT:** > Valoarea de retur a unei funcții este plasată în registrul `eax`. -### 5. Extindere calcul maxim în assembly cu apel din C +### 2. Extindere calcul maxim în assembly cu apel din C Extindeți programul de la exercițiul anterior (în limbaj de asamblare și C) astfel încât funcția `get_max()` să aibă acum semnătura `unsigned int get_max(unsigned int *arr, unsigned int len, unsigned int *pos)`. Al treilea argument al funcției este adresa în care se va reține poziția din vector pe care se găsește maximul. La afișare se va afișa și poziția din vector pe care se găsește maximul. @@ -175,8 +104,20 @@ La afișare se va afișa și poziția din vector pe care se găsește maximul. > max = get_max(arr, 10, &pos); > ``` -### 6. Tutorial: Calcul maxim în C cu apel din assembly -În subdirectorul `6-7-max-assembly-calls/` din arhiva de sarcini a laboratorului găsiți o implementare de calcul a maximului unui număr în care funcția `main()` este definită în limbaj de asamblare de unde se apelează funcția `get_max()` definită în C. +### 3. Depanare stack frame corupt +În subdirectorul `3-stack-frame/` din arhiva de sarcini a laboratorului găsiți un program C care implementează afișarea stringului `Hello world!` printr-un apel al funcției `print_hello()` definită în assembly pentru prima parte a mesajului, urmat de două apeluri ale funcției `printf()` direct din codul C. + +Compilați și rulați programul. Ce observați? Mesajul printat nu este cel așteptat deoarece din codul assembly lipsește o instrucțiune. + +Folosiți GDB pentru a inspecta adresa din vârful stivei înainte de execuția instrucțiunii `ret` din funcția `print_hello()`. Către ce pointează? Urmăriți valorile registrelor EBP si ESP pe parcursul execuției acestei funcții. Ce ar trebui să se afle în vârful stivei după execuția instrucțiunii `leave`? + +Găsiți instrucțiunea lipsă și rerulați executabilul. + +> **TIP:** +> Pentru a putea restaura stiva la starea sa de la începutul funcției curente, instrucțiunea `leave` se bazează pe faptul că frame pointerul funcției a fost setat. + +### 4. Tutorial: Calcul maxim în C cu apel din assembly +În subdirectorul `4-5-max-assembly-calls/` din arhiva de sarcini a laboratorului găsiți o implementare de calcul a maximului unui număr în care funcția `main()` este definită în limbaj de asamblare de unde se apelează funcția `get_max()` definită în C. Urmăriți codul din cele două fișiere și modul în care se transmit argumentele funcției și valoarea de retur. @@ -184,7 +125,7 @@ Compilați și rulați programul. > **IMPORTANT:** > Acordați atenție înțelegerii codului înainte de a trece la exercițiul următor. -### 7. Extindere calcul maxim în C cu apel din assembly +### 5. Extindere calcul maxim în C cu apel din assembly Extindeți programul de la exercițiul anterior (în limbaj de asamblare și C) astfel încât funcția `get_max()` să aibă acum semnătura `unsigned int get_max(unsigned int *arr, unsigned int len, unsigned int *pos)`. Al treilea argument al funcției este adresa în care se va reține poziția din vector pe care se găsește maximul. La afișare se va afișa și poziția din vector pe care se găsește maximul. @@ -197,6 +138,20 @@ La afișare se va afișa și poziția din vector pe care se găsește maximul. > > Pentru afișare modificați șirul `print_format` și apelul `printf` în fișierul assembly (`main.asm`) ca să permită afișare a două valori: maximul și poziția. +### 6. Tutorial: Conservare registre +În subdirectorul `6-7-regs-preserve/` din arhiva de sarcini a laboratorului găsiți funcția `print_reverse_array()` implementată printr-un simplu loop ce face apeluri repetate ale funcției `printf()`. + +Urmăriți codul din fișierul `main.asm`, compilați și rulați programul. Ce s-a întâmplat? Programul rulează la infinit. Acest lucru se întămplă deoarece funcția `printf()` nu conservă valoarea din registrul `ECX`, folosit aici ca și contor. + +Decomentați liniile marcate cu `TODO1` și rerulați programul. + +### 7. Depanare SEGFAULT +Decomentați liniile marcate cu `TODO2` în fișierul assembly de la exercițiul anterior. Secvența de cod realizează un apel al funcției `double_array()`, implementată în C, chiar înainte de afișarea vectorului folosind funcția văzută anterior. + +Compilați și rulați programul. Pentru depanarea segfault-ului puteți folosi utilitarul `objdump` pentru a urmări codul în limbaj de asamblare corespunzător funcției `double_array()`. Observați care din registrele folosite înainte și după apel sunt modificate de această funcție. + +Adăugați în fișierul assembly instrucțiunile pentru conservarea și restaurarea registrelor necesare. + ### 8. Bonus: Calcul maxim în assembly cu apel din C pe 64 de biți Intrați în subdirectorul `8-max-c-calls-x64/` și faceți implementarea calculului maximului în limbaj de asamblare pe un sistem pe 64 de biți. Porniți de la programul de la exercițiile 4 și 5 în așa fel încât să îl rulați folosind un sistem pe 64 de biți. diff --git a/laborator/content/stiva/README.md b/laborator/content/stiva/README.md index 933c6635..eaf6be2e 100644 --- a/laborator/content/stiva/README.md +++ b/laborator/content/stiva/README.md @@ -158,9 +158,9 @@ Dupa cum putem observa, registrul ebp defineste stack frame-ul fiecarei functii. > ### 0. Recapitulare: Media aritmetică a elementelor dintr-un vector -Pornind de la exercițiul `0-recap-mean.asm` din arhiva de laborator, implementați codul lipsă, marcat de comentarii de tip `TODO`, pentru a realiza un program care calculează media aritmetică a elementelor dintr-un vector. Afișați doar partea întreagă a mediei (câtul împărțirii). +Pornind de la exercițiul `0-recap-mean.asm` din arhiva de laborator, implementați codul lipsă, marcat de comentarii de tip `TODO`, pentru a realiza un program care calculează media aritmetică a elementelor dintr-un vector. Afișați partea întreagă a mediei (câtul împărțirii) cu primele 5 zecimale exacte din partea fracționară. (pentru a calcula prima cifră din partea fracționară trebuie să înmulțiti restul obținut cu 10, urmat de o împarțire cu același împărțitor). -> **NOTE:** Dacă ați făcut calculul corect, suma elementelor vectorului va fi `3735` iar media aritmetică a elementelor din vector va fi `287`. +> **NOTE:** Dacă ați făcut calculul corect, suma elementelor vectorului va fi `3735` iar media aritmetică a elementelor din vector va fi `287.30769`. ### 1. Max diff --git a/teme/tema-1/.gitignore b/teme/tema-1/.gitignore new file mode 100644 index 00000000..30503b57 --- /dev/null +++ b/teme/tema-1/.gitignore @@ -0,0 +1,6 @@ +memCheck +valgrind-out.txt +OUTPUTS/* +!OUTPUTS/.gitkeep +main +*.o diff --git a/teme/tema-1/DEV_OUTPUT/dev_test1 b/teme/tema-1/DEV_OUTPUT/dev_test1 new file mode 100644 index 00000000..2ad12b1e --- /dev/null +++ b/teme/tema-1/DEV_OUTPUT/dev_test1 @@ -0,0 +1,15 @@ +Tipul 3 +Florin pentru Bodo +1000 +1000 + +Tipul 2 +Cata pentru Octi +100 +100 + +Tipul 1 +Andrei pentru Andrei +100 +10 + diff --git a/teme/tema-1/DEV_OUTPUT/dev_test2 b/teme/tema-1/DEV_OUTPUT/dev_test2 new file mode 100644 index 00000000..17249dcc --- /dev/null +++ b/teme/tema-1/DEV_OUTPUT/dev_test2 @@ -0,0 +1,25 @@ +Tipul 1 +AndreeaBanasdasdasdanaCorinaGiorgiana pentru CataasdasdasdasdadasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdassdlinFlorinNeaguTeoDorian +12 +-128 + +Tipul 3 +asdoalsknfajcvnadjkcnbajkfcnasjkfnasjldnasokldaskdnask pentru xlmcnalkcnoakskscbasjlkcnasjlmcbabskjcbasjkasdasdasdasdfbaskhjdfbasjkdbasjkdbasjkd +12415123 +3211253 + +Tipul 1 +AndreeaBanasdasdasdanaCorinaGiorgiana pentru CataasdasdasdasdadasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdassdlinFlorinNeaguTeoDorian +12 +-128 + +Tipul 3 +asdoalsknfajcvnadjkcnbajkfcnasjkfnasjldnasokldaskdnask pentru xlmcnalkcnoakskscbasjlkcnasjlmcbabskjcbasjkasdasdasdasdfbaskhjdfbasjkdbasjkdbasjkd +12415123 +3211253 + +Tipul 2 +as;dmaslk;dmaslk;dmaskldmaslk.dmaslkmdaslkdmaslkdmaslkd pentru aslkdkjaslkfmaslk,cma,.mxzm,ncajkslncm,asndlkasjdf +-32768 +1231231 + diff --git a/teme/tema-1/DEV_OUTPUT/dev_test3 b/teme/tema-1/DEV_OUTPUT/dev_test3 new file mode 100644 index 00000000..8acf610b --- /dev/null +++ b/teme/tema-1/DEV_OUTPUT/dev_test3 @@ -0,0 +1,5 @@ +Tipul 1 +aksdjmaskolcnmasklcnasjklcnjasjkndjaksdkj pentru saokcnaskocnklasmcm,xzncmkzxncjoadsoidjasjfnajfbaiofjoaigjaoidjfjkandfajksdioasklbckjancjkaxjfkjasdsjfkasnmkacnbasdasdasfafacasdfddassdassadasd +8 +12 + diff --git a/teme/tema-1/DEV_OUTPUT/dev_test4 b/teme/tema-1/DEV_OUTPUT/dev_test4 new file mode 100644 index 00000000..1cb1a78a --- /dev/null +++ b/teme/tema-1/DEV_OUTPUT/dev_test4 @@ -0,0 +1,15 @@ +Tipul 1 +Ana pentru Banana +1 +1 + +Tipul 1 +George pentru Bombardierul +2 +2 + +Tipul 1 +Catalin pentru Sultanul +127 +3 + diff --git a/teme/tema-1/DEV_OUTPUT/dev_test5 b/teme/tema-1/DEV_OUTPUT/dev_test5 new file mode 100644 index 00000000..430ed1d6 --- /dev/null +++ b/teme/tema-1/DEV_OUTPUT/dev_test5 @@ -0,0 +1,25 @@ +Tipul 2 +Teo pentru Tudor +1131 +123123 + +Tipul 2 +Octavia pentru Catalin +12 +121 + +Tipul 3 +Bi pentru Florin +1233 +1223 + +Tipul 2 +Teo pentru Tudor +1131 +123123 + +Tipul 3 +Bi pentru Florin +1233 +1223 + diff --git a/teme/tema-1/DEV_OUTPUT/dev_test6 b/teme/tema-1/DEV_OUTPUT/dev_test6 new file mode 100644 index 00000000..bf70f2c7 --- /dev/null +++ b/teme/tema-1/DEV_OUTPUT/dev_test6 @@ -0,0 +1,20 @@ +Tipul 3 +Ana pentru Sertaru +2312112 +123123 + +Tipul 3 +Ana pentru Sertaru +2312112 +123123 + +Tipul 2 +Stefan pentru Sultan +32537 +32999 + +Tipul 2 +Stefan pentru Sultan +32537 +32999 + diff --git a/teme/tema-1/DEV_OUTPUT/dev_test7 b/teme/tema-1/DEV_OUTPUT/dev_test7 new file mode 100644 index 00000000..53a19307 --- /dev/null +++ b/teme/tema-1/DEV_OUTPUT/dev_test7 @@ -0,0 +1,2525 @@ +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalk +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalk +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalk +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalk +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalk +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalk +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalk +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalk +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalk +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalk +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalk +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalk +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalk +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalk +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalk +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalk +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalk +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalk +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalk +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +123 +123 + diff --git a/teme/tema-1/DEV_OUTPUT/dev_test8 b/teme/tema-1/DEV_OUTPUT/dev_test8 new file mode 100644 index 00000000..91bfa716 --- /dev/null +++ b/teme/tema-1/DEV_OUTPUT/dev_test8 @@ -0,0 +1,5 @@ +Tipul 2 +aslkdmas,mnasmcnaljsnfalsjnfaljsjknfasljkhfasjkbaksjnbdjashdbhjasdgbjhabdhjashbdjnasbdjasdb pentru asldnasmdnasm,ncjzxkjbnckjashbndfiuashukhsdjkasbfjhagvfgjhasgfjkashbdansbdaskhjhgdauskjgfashkj +1 +1 + diff --git a/teme/tema-1/DEV_OUTPUT/dev_test9 b/teme/tema-1/DEV_OUTPUT/dev_test9 new file mode 100644 index 00000000..3c082a41 --- /dev/null +++ b/teme/tema-1/DEV_OUTPUT/dev_test9 @@ -0,0 +1,150 @@ +Tipul 1 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdjasdasd pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +124 +124 + +Tipul 3 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdjasdas pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +125 +125 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdjasdasd pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +126 +126 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdasdasdja pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +127 +127 + +Tipul 1 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdjasdasd pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +-128 +-128 + +Tipul 1 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdjasdasd pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +124 +124 + +Tipul 3 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdjasdas pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +125 +125 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdjasdasd pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +126 +126 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdasdasdja pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +127 +127 + +Tipul 1 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdjasdasd pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +-128 +-128 + +Tipul 3 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdjasdas pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +125 +125 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdjasdasd pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +126 +126 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdasdasdja pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +127 +127 + +Tipul 1 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdjasdasd pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +-128 +-128 + +Tipul 3 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdjasdas pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +125 +125 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdjasdasd pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +126 +126 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdasdasdja pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +127 +127 + +Tipul 1 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdjasdasd pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +-128 +-128 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdjasdasd pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +126 +126 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdasdasdja pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +127 +127 + +Tipul 1 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdjasdasd pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +-128 +-128 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdjasdasd pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +126 +126 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdasdasdja pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +127 +127 + +Tipul 1 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdjasdasd pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +-128 +-128 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdasdasdja pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +127 +127 + +Tipul 1 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdjasdasd pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +-128 +-128 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdasdasdja pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +127 +127 + +Tipul 1 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdjasdasd pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +-128 +-128 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdasdasdja pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +127 +127 + +Tipul 2 +asdasdadascascasdasklnasksocjaoijoiasskjdoiasdasdasdja pentru asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +127 +127 + diff --git a/teme/tema-1/INPUTS/test1 b/teme/tema-1/INPUTS/test1 new file mode 100644 index 00000000..221d309d --- /dev/null +++ b/teme/tema-1/INPUTS/test1 @@ -0,0 +1,5 @@ +insert 3 Florin 1000 1000 Bodo +insert 2 Cata 100 100 Octi +insert 1 Andrei 100 10 Andrei +print +exit diff --git a/teme/tema-1/INPUTS/test2 b/teme/tema-1/INPUTS/test2 new file mode 100644 index 00000000..b09608ad --- /dev/null +++ b/teme/tema-1/INPUTS/test2 @@ -0,0 +1,6 @@ +insert 1 AndreeaBanasdasdasdanaCorinaGiorgiana 12 128 CataasdasdasdasdadasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdassdlinFlorinNeaguTeoDorian +insert 3 asdoalsknfajcvnadjkcnbajkfcnasjkfnasjldnasokldaskdnask 12415123 3211253 xlmcnalkcnoakskscbasjlkcnasjlmcbabskjcbasjkasdasdasdasdfbaskhjdfbasjkdbasjkdbasjkd +print +insert 2 as;dmaslk;dmaslk;dmaskldmaslk.dmaslkmdaslkdmaslkdmaslkd 32768 1231231 aslkdkjaslkfmaslk,cma,.mxzm,ncajkslncm,asndlkasjdf +print +exit diff --git a/teme/tema-1/INPUTS/test3 b/teme/tema-1/INPUTS/test3 new file mode 100644 index 00000000..66fc26ea --- /dev/null +++ b/teme/tema-1/INPUTS/test3 @@ -0,0 +1,5 @@ +insert 1 aksdjmaskolcnmasklcnasjklcnjasjkndjaksdkj 100283912 12 saokcnaskocnklasmcm,xzncmkzxncjoadsoidjasjfnajfbaiofjoaigjaoidjfjkandfajksdioasklbckjancjkaxjfkjasdsjfkasnmkacnbasdasdasfafacasdfddassdassadasd +insert 3 Andrei 100283912 12312312 Teo +delete_at 1 +print +exit diff --git a/teme/tema-1/INPUTS/test4 b/teme/tema-1/INPUTS/test4 new file mode 100644 index 00000000..8ea027c2 --- /dev/null +++ b/teme/tema-1/INPUTS/test4 @@ -0,0 +1,9 @@ +insert 1 Ana 1 1 Banana +insert 1 George 2 2 Bombardierul +insert 1 Catalin -129 3 Sultanul +print +delete_at 1 +delete_at 1 +delete_at 0 +print +exit diff --git a/teme/tema-1/INPUTS/test5 b/teme/tema-1/INPUTS/test5 new file mode 100644 index 00000000..0df716fa --- /dev/null +++ b/teme/tema-1/INPUTS/test5 @@ -0,0 +1,7 @@ +insert 2 Octavia 12 121 Catalin +insert 3 Bi 1233 1223 Florin +insert_at 0 2 Teo 1131 123123 Tudor +print +delete_at 1 +print +exit diff --git a/teme/tema-1/INPUTS/test6 b/teme/tema-1/INPUTS/test6 new file mode 100644 index 00000000..01f9c320 --- /dev/null +++ b/teme/tema-1/INPUTS/test6 @@ -0,0 +1,7 @@ +insert 3 Ana 2312112 123123 Sertaru +find 0 +insert_at 1000 2 Stefan -32999 32999 Sultan +print +delete_at 0 +print +exit diff --git a/teme/tema-1/INPUTS/test7 b/teme/tema-1/INPUTS/test7 new file mode 100644 index 00000000..c951cf56 --- /dev/null +++ b/teme/tema-1/INPUTS/test7 @@ -0,0 +1,170 @@ +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalk +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +print +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalk +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalk +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalk +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalk +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalk +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdj 123 123 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +delete_at 0 +print +find 5 +delete_at 0 +print +delete_at 0 +print +exit diff --git a/teme/tema-1/INPUTS/test8 b/teme/tema-1/INPUTS/test8 new file mode 100644 index 00000000..5db3d2c5 --- /dev/null +++ b/teme/tema-1/INPUTS/test8 @@ -0,0 +1,7 @@ +insert 1 asdasdaslkdasklcmsal.,cmaslm,casp;kfmk;afaslkfmaslnfdaslkfnasklfnasdklfnask;fnask;faspk;f 2 3 askdjnaslkcnxmcasdlasnldkasnlkdasldkasndfm,asbmnxzbcmcsgfhjbsdamnfbamnbdamnscnmxznbchjkasbf +insert 2 aslkdmas,mnasmcnaljsnfalsjnfaljsjknfasljkhfasjkbaksjnbdjashdbhjasdgbjhabdhjashbdjnasbdjasdb 1 1 asldnasmdnasm,ncjzxkjbnckjashbndfiuashukhsdjkasbfjhagvfgjhasgfjkashbdansbdaskhjhgdauskjgfashkj +find 1 +delete_at 0 +delete_at 0 +print +exit diff --git a/teme/tema-1/INPUTS/test9 b/teme/tema-1/INPUTS/test9 new file mode 100644 index 00000000..dd68859d --- /dev/null +++ b/teme/tema-1/INPUTS/test9 @@ -0,0 +1,32 @@ +insert 1 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdjasdasd 124 124 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 3 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdjasdas 125 125 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdjasdasd 126 126 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 2 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdasdasdja 127 127 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +insert 1 asdasdadascascasdasklnasksocjaoijoiasskjdoiasdjasdasd 128 128 asdamscmaskcmaskcmasklcmaskldmaskldmakfmakslfmaskldmasm,cxnasmlcnalkfnalkd +print +find 0 +find 1 +find 2 +find 3 +find 4 +delete_at 0 +print +find 0 +find 1 +find 2 +find 3 +delete_at 0 +print +find 0 +find 1 +find 2 +delete_at 0 +print +find 0 +find 1 +delete_at 1 +print +find 0 +delete_at 0 +print +exit diff --git a/teme/tema-1/Makefile b/teme/tema-1/Makefile new file mode 100644 index 00000000..67436721 --- /dev/null +++ b/teme/tema-1/Makefile @@ -0,0 +1,28 @@ +CC = gcc +CFLAGS = -Wall -g + +build: main.o + $(CC) -o main $^ + +main.o: main.c + $(CC) $(CFLAGS) -c $^ + +run: build + ./main + +checker: + ./checker.py + +check: build + valgrind --leak-check=full \ + --show-leak-kinds=all \ + --track-origins=yes \ + --verbose \ + --log-file=valgrind-out.txt \ + ./main + +clean: + rm -f valgrind-out.txt + rm -f *.o main + +.PHONY: clean check checker run build diff --git a/teme/tema-2/skel/.keep b/teme/tema-1/OUTPUTS/.gitkeep similarity index 100% rename from teme/tema-2/skel/.keep rename to teme/tema-1/OUTPUTS/.gitkeep diff --git a/teme/tema-1/checker.py b/teme/tema-1/checker.py new file mode 100755 index 00000000..b4c6b3aa --- /dev/null +++ b/teme/tema-1/checker.py @@ -0,0 +1,160 @@ +#!/usr/bin/env python + +import subprocess +import shutil +import os +import sys +from collections import namedtuple + +# Asta e pentru generatiile urmatoare care vor sa se joace mai tare cu valgrind +test_tuple = namedtuple("Test", "name, error") + +runExec = "./main" +useShell = True +inputFileName = "input" +memoryPass = True +numPassed = 0 +memory_shame_list = [] +size_header = 60 + +# Static files +INPUT_FILE = "INPUTS/" +OUTPUTS_FILE = "OUTPUTS/" +DEV_FILE = "DEV_OUTPUT/" +MEMORY_CHECK_FILE = "memCheck" +README_FILE = "README" + + +## Date pentru fiecare file +number_tests_passed = 0 +number_tests = 0 +nl = "\n" +memory_score = 20 +readme_score = 10 + + +def calculate_score_without_memory(): + """ + Returns: + int: The score of the person without memory points + """ + return ( + (70.0 / number_tests) * number_tests_passed + + (readme_score if has_readme() else 0) + if number_tests_passed > 0 + else 0 + ) + + +def calculate_score(): + """ + Returns: + int: The total score of the person + """ + score = calculate_score_without_memory() + return score + (memory_score if len(memory_shame_list) == 0 and score >= 50 else 0) + + +def has_readme(): + for file in os.listdir(os.getcwd()): + if file.startswith("README"): + return True + return False + + +## Initialisation in the beggining +if not os.path.exists(OUTPUTS_FILE): + os.mkdir(OUTPUTS_FILE) + +rc = subprocess.call("make", shell=useShell) +if not os.path.exists(runExec): + sys.stderr.write( + "The file %s is missing and could not be created with make" % runExec + ) + sys.exit(-1) + +if not os.path.exists(INPUT_FILE): + sys.stderr.write("Could not find the inputs file.....how did you manage that?") + sys.exit(-1) + +## Start of the horror +print("\n======================= Tema 1 IOCLA =======================\n") + +regular_tests = sorted(os.listdir(INPUT_FILE)) +number_tests = len(regular_tests) + +for name_file in regular_tests: + shutil.copy(INPUT_FILE + name_file, inputFileName) + + proc = os.popen( + 'valgrind --leak-check=full \ + --show-leak-kinds=all --track-origins=yes \ + --log-file="memCheck" ' + + runExec + + " < " + + inputFileName + ) + result = proc.read().strip() + proc.close() + with open(OUTPUTS_FILE + "output_" + name_file, "w") as f: + f.write(result) + + with open(DEV_FILE + "dev_" + name_file, "r") as dev: + if dev.read().strip() == result: + print( + "TEST " + + name_file + + "." * (size_header - len(name_file) - 12) + + " PASSED" + ) + number_tests_passed += 1 + numPassed += 1 + else: + print( + "TEST " + + name_file + + "." * (size_header - len(name_file) - 12) + + " FAILED" + ) + + ## memory check + with open("memCheck", "r") as mem: + mem_str = mem.read().strip() + if "All heap blocks were freed" not in mem_str: + memory_shame_list.append(test_tuple(name_file, "memory not freed")) + elif "Invalid read" in mem_str: + memory_shame_list.append( + test_tuple(name_file, "not enough memory allocated string") + ) +if len(memory_shame_list) == 0 and calculate_score_without_memory() >= 50: + print("Test memory.......................................... PASSED") +elif calculate_score_without_memory() < 50: + print("Test memory.......................................... FAILED") + print("You need at least 50 points to get memory points") +else: + print("Test memory.......................................... FAILED") + +for shame in memory_shame_list: + print("Failed Test: " + shame.name + "-- probable problem: " + shame.error) + + +## Readme +print("\n======================= README Check =======================\n") +if has_readme(): + print(README_FILE + " present. Good job!") +else: + print("No readme is a crime towards humanity") + +## The long awaited +print( + "\n======================= Score ======================= " + str(calculate_score()) + "p/100\n" +) + +## Cleanup +if os.path.exists(MEMORY_CHECK_FILE): + os.remove(MEMORY_CHECK_FILE) +if os.path.exists(runExec): + os.remove(runExec) +if os.path.exists("input"): + os.remove("input") + diff --git a/teme/tema-1/main.c b/teme/tema-1/main.c new file mode 100644 index 00000000..1efd8ea5 --- /dev/null +++ b/teme/tema-1/main.c @@ -0,0 +1,33 @@ +#include +#include +#include +#include "structs.h" + +int add_last(void **arr, int *len, data_structure *data) +{ + +} + +int add_at(void **arr, int *len, data_structure *data, int index) +{ + +} + +void find(void *data_block, int len, int index) +{ + +} + +int delete_at(void **arr, int *len, int index) +{ + +} + +int main() { + // the vector of bytes u have to work with + // good luck :) + void *arr = NULL; + int len = 0; + + return 0; +} diff --git a/teme/tema-1/skel/.gitignore b/teme/tema-1/skel/.gitignore deleted file mode 100644 index b1f03cc3..00000000 --- a/teme/tema-1/skel/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -tema -input -memCheck diff --git a/teme/tema-1/skel/DEV_OUTPUT/dev_cd_and_rmdir b/teme/tema-1/skel/DEV_OUTPUT/dev_cd_and_rmdir deleted file mode 100644 index da8ff2b0..00000000 --- a/teme/tema-1/skel/DEV_OUTPUT/dev_cd_and_rmdir +++ /dev/null @@ -1,4 +0,0 @@ -d2 -f1 -Could not find the dir -f1 diff --git a/teme/tema-1/skel/DEV_OUTPUT/dev_cd_inside_dir b/teme/tema-1/skel/DEV_OUTPUT/dev_cd_inside_dir deleted file mode 100644 index 8e1e71d5..00000000 --- a/teme/tema-1/skel/DEV_OUTPUT/dev_cd_inside_dir +++ /dev/null @@ -1 +0,0 @@ -f1 diff --git a/teme/tema-1/skel/DEV_OUTPUT/dev_cd_no_found b/teme/tema-1/skel/DEV_OUTPUT/dev_cd_no_found deleted file mode 100644 index 29e67bcc..00000000 --- a/teme/tema-1/skel/DEV_OUTPUT/dev_cd_no_found +++ /dev/null @@ -1,2 +0,0 @@ -No directories found! -d1 diff --git a/teme/tema-1/skel/DEV_OUTPUT/dev_cd_return b/teme/tema-1/skel/DEV_OUTPUT/dev_cd_return deleted file mode 100644 index a12cc016..00000000 --- a/teme/tema-1/skel/DEV_OUTPUT/dev_cd_return +++ /dev/null @@ -1,2 +0,0 @@ -f1 -d1 diff --git a/teme/tema-1/skel/DEV_OUTPUT/dev_dir_file_used_name b/teme/tema-1/skel/DEV_OUTPUT/dev_dir_file_used_name deleted file mode 100644 index 9cfc87e9..00000000 --- a/teme/tema-1/skel/DEV_OUTPUT/dev_dir_file_used_name +++ /dev/null @@ -1,8 +0,0 @@ -f1 -f2 -d1 -d2 -f1 -f2 -d1 -d2 diff --git a/teme/tema-1/skel/DEV_OUTPUT/dev_dir_used_name b/teme/tema-1/skel/DEV_OUTPUT/dev_dir_used_name deleted file mode 100644 index cf4f2ac5..00000000 --- a/teme/tema-1/skel/DEV_OUTPUT/dev_dir_used_name +++ /dev/null @@ -1,4 +0,0 @@ -d1 -d2 -d1 -d2 diff --git a/teme/tema-1/skel/DEV_OUTPUT/dev_mkdir b/teme/tema-1/skel/DEV_OUTPUT/dev_mkdir deleted file mode 100644 index 6f185297..00000000 --- a/teme/tema-1/skel/DEV_OUTPUT/dev_mkdir +++ /dev/null @@ -1 +0,0 @@ -d1 diff --git a/teme/tema-1/skel/DEV_OUTPUT/dev_mkdir_same_name b/teme/tema-1/skel/DEV_OUTPUT/dev_mkdir_same_name deleted file mode 100644 index 17bea68b..00000000 --- a/teme/tema-1/skel/DEV_OUTPUT/dev_mkdir_same_name +++ /dev/null @@ -1,2 +0,0 @@ -Directory already exists -d1 diff --git a/teme/tema-1/skel/DEV_OUTPUT/dev_mv_dir b/teme/tema-1/skel/DEV_OUTPUT/dev_mv_dir deleted file mode 100644 index e22a0392..00000000 --- a/teme/tema-1/skel/DEV_OUTPUT/dev_mv_dir +++ /dev/null @@ -1,4 +0,0 @@ -d1 -d2 -d2 -d3 diff --git a/teme/tema-1/skel/DEV_OUTPUT/dev_mv_dir_file_used_name b/teme/tema-1/skel/DEV_OUTPUT/dev_mv_dir_file_used_name deleted file mode 100644 index e34efab5..00000000 --- a/teme/tema-1/skel/DEV_OUTPUT/dev_mv_dir_file_used_name +++ /dev/null @@ -1,10 +0,0 @@ -d1 -d2 -f1 -f2 -File/Director already exists -File/Director already exists -d1 -d2 -f1 -f2 diff --git a/teme/tema-1/skel/DEV_OUTPUT/dev_mv_dir_used_name b/teme/tema-1/skel/DEV_OUTPUT/dev_mv_dir_used_name deleted file mode 100644 index 20cefb9b..00000000 --- a/teme/tema-1/skel/DEV_OUTPUT/dev_mv_dir_used_name +++ /dev/null @@ -1,5 +0,0 @@ -d1 -d2 -File/Director already exists -d1 -d2 diff --git a/teme/tema-1/skel/DEV_OUTPUT/dev_mv_empty_dir b/teme/tema-1/skel/DEV_OUTPUT/dev_mv_empty_dir deleted file mode 100644 index ddbe444a..00000000 --- a/teme/tema-1/skel/DEV_OUTPUT/dev_mv_empty_dir +++ /dev/null @@ -1,2 +0,0 @@ -d1 -d2 diff --git a/teme/tema-1/skel/DEV_OUTPUT/dev_mv_file b/teme/tema-1/skel/DEV_OUTPUT/dev_mv_file deleted file mode 100644 index 6781974b..00000000 --- a/teme/tema-1/skel/DEV_OUTPUT/dev_mv_file +++ /dev/null @@ -1,4 +0,0 @@ -f1 -f2 -f2 -f3 diff --git a/teme/tema-1/skel/DEV_OUTPUT/dev_mv_file_used_name b/teme/tema-1/skel/DEV_OUTPUT/dev_mv_file_used_name deleted file mode 100644 index ac6be429..00000000 --- a/teme/tema-1/skel/DEV_OUTPUT/dev_mv_file_used_name +++ /dev/null @@ -1,5 +0,0 @@ -f1 -f2 -File/Director already exists -f1 -f2 diff --git a/teme/tema-1/skel/DEV_OUTPUT/dev_mv_no_file b/teme/tema-1/skel/DEV_OUTPUT/dev_mv_no_file deleted file mode 100644 index d1157977..00000000 --- a/teme/tema-1/skel/DEV_OUTPUT/dev_mv_no_file +++ /dev/null @@ -1,3 +0,0 @@ -d1 -File/Director not found -d1 diff --git a/teme/tema-1/skel/DEV_OUTPUT/dev_mv_rm b/teme/tema-1/skel/DEV_OUTPUT/dev_mv_rm deleted file mode 100644 index 70a390af..00000000 --- a/teme/tema-1/skel/DEV_OUTPUT/dev_mv_rm +++ /dev/null @@ -1,3 +0,0 @@ -f1 -f2 -f2 diff --git a/teme/tema-1/skel/DEV_OUTPUT/dev_mv_rmdir b/teme/tema-1/skel/DEV_OUTPUT/dev_mv_rmdir deleted file mode 100644 index 93f74313..00000000 --- a/teme/tema-1/skel/DEV_OUTPUT/dev_mv_rmdir +++ /dev/null @@ -1,5 +0,0 @@ -d1 -d2 -d2 -d3 -d2 diff --git a/teme/tema-1/skel/DEV_OUTPUT/dev_pwd_complex b/teme/tema-1/skel/DEV_OUTPUT/dev_pwd_complex deleted file mode 100644 index c27872b1..00000000 --- a/teme/tema-1/skel/DEV_OUTPUT/dev_pwd_complex +++ /dev/null @@ -1 +0,0 @@ -/home/d1/d2/d3/d4/d5 diff --git a/teme/tema-1/skel/DEV_OUTPUT/dev_pwd_home b/teme/tema-1/skel/DEV_OUTPUT/dev_pwd_home deleted file mode 100644 index 05280cb0..00000000 --- a/teme/tema-1/skel/DEV_OUTPUT/dev_pwd_home +++ /dev/null @@ -1 +0,0 @@ -/home diff --git a/teme/tema-1/skel/DEV_OUTPUT/dev_rm_multiple_files b/teme/tema-1/skel/DEV_OUTPUT/dev_rm_multiple_files deleted file mode 100644 index 22398874..00000000 --- a/teme/tema-1/skel/DEV_OUTPUT/dev_rm_multiple_files +++ /dev/null @@ -1,4 +0,0 @@ -f1 -f2 -f3 -f1 diff --git a/teme/tema-1/skel/DEV_OUTPUT/dev_rm_no_file b/teme/tema-1/skel/DEV_OUTPUT/dev_rm_no_file deleted file mode 100644 index 4054711f..00000000 --- a/teme/tema-1/skel/DEV_OUTPUT/dev_rm_no_file +++ /dev/null @@ -1,3 +0,0 @@ -d1 -Could not find the file -d1 diff --git a/teme/tema-1/skel/DEV_OUTPUT/dev_rm_no_found b/teme/tema-1/skel/DEV_OUTPUT/dev_rm_no_found deleted file mode 100644 index 0939677a..00000000 --- a/teme/tema-1/skel/DEV_OUTPUT/dev_rm_no_found +++ /dev/null @@ -1,2 +0,0 @@ -Could not find the file -f1 diff --git a/teme/tema-1/skel/DEV_OUTPUT/dev_rm_one_file b/teme/tema-1/skel/DEV_OUTPUT/dev_rm_one_file deleted file mode 100644 index 70a390af..00000000 --- a/teme/tema-1/skel/DEV_OUTPUT/dev_rm_one_file +++ /dev/null @@ -1,3 +0,0 @@ -f1 -f2 -f2 diff --git a/teme/tema-1/skel/DEV_OUTPUT/dev_rmdir_multiple_dirs b/teme/tema-1/skel/DEV_OUTPUT/dev_rmdir_multiple_dirs deleted file mode 100644 index adc0ff96..00000000 --- a/teme/tema-1/skel/DEV_OUTPUT/dev_rmdir_multiple_dirs +++ /dev/null @@ -1,5 +0,0 @@ -d1 -d2 -d3 -d1 -d3 diff --git a/teme/tema-1/skel/DEV_OUTPUT/dev_rmdir_no_dir b/teme/tema-1/skel/DEV_OUTPUT/dev_rmdir_no_dir deleted file mode 100644 index 61f100ca..00000000 --- a/teme/tema-1/skel/DEV_OUTPUT/dev_rmdir_no_dir +++ /dev/null @@ -1,2 +0,0 @@ -Could not find the dir -d1 diff --git a/teme/tema-1/skel/DEV_OUTPUT/dev_rmdir_no_found b/teme/tema-1/skel/DEV_OUTPUT/dev_rmdir_no_found deleted file mode 100644 index be4e6209..00000000 --- a/teme/tema-1/skel/DEV_OUTPUT/dev_rmdir_no_found +++ /dev/null @@ -1,3 +0,0 @@ -Could not find the dir -d1 -d2 diff --git a/teme/tema-1/skel/DEV_OUTPUT/dev_rmdir_one_dir b/teme/tema-1/skel/DEV_OUTPUT/dev_rmdir_one_dir deleted file mode 100644 index 11c004aa..00000000 --- a/teme/tema-1/skel/DEV_OUTPUT/dev_rmdir_one_dir +++ /dev/null @@ -1,3 +0,0 @@ -d1 -d2 -d1 diff --git a/teme/tema-1/skel/DEV_OUTPUT/dev_touch b/teme/tema-1/skel/DEV_OUTPUT/dev_touch deleted file mode 100644 index 8e1e71d5..00000000 --- a/teme/tema-1/skel/DEV_OUTPUT/dev_touch +++ /dev/null @@ -1 +0,0 @@ -f1 diff --git a/teme/tema-1/skel/DEV_OUTPUT/dev_touch_same_name b/teme/tema-1/skel/DEV_OUTPUT/dev_touch_same_name deleted file mode 100644 index 0163d07f..00000000 --- a/teme/tema-1/skel/DEV_OUTPUT/dev_touch_same_name +++ /dev/null @@ -1,2 +0,0 @@ -File already exists -f1 diff --git a/teme/tema-1/skel/DEV_OUTPUT/dev_tree_complex b/teme/tema-1/skel/DEV_OUTPUT/dev_tree_complex deleted file mode 100644 index 533f7259..00000000 --- a/teme/tema-1/skel/DEV_OUTPUT/dev_tree_complex +++ /dev/null @@ -1,8 +0,0 @@ -d1 - da - db - dc - fc - fb - fa -d2 diff --git a/teme/tema-1/skel/DEV_OUTPUT/dev_tree_simple b/teme/tema-1/skel/DEV_OUTPUT/dev_tree_simple deleted file mode 100644 index 97a60e86..00000000 --- a/teme/tema-1/skel/DEV_OUTPUT/dev_tree_simple +++ /dev/null @@ -1,2 +0,0 @@ -d1 -f1 diff --git a/teme/tema-1/skel/INPUTS/cd_and_rmdir b/teme/tema-1/skel/INPUTS/cd_and_rmdir deleted file mode 100644 index 3d0b618e..00000000 --- a/teme/tema-1/skel/INPUTS/cd_and_rmdir +++ /dev/null @@ -1,12 +0,0 @@ -mkdir d1 -cd d1 -touch f1 -mkdir d2 -ls -rmdir d2 -rmdir d2 -ls -cd .. -rmdir d1 -ls -stop diff --git a/teme/tema-1/skel/INPUTS/cd_inside_dir b/teme/tema-1/skel/INPUTS/cd_inside_dir deleted file mode 100644 index c2c9e459..00000000 --- a/teme/tema-1/skel/INPUTS/cd_inside_dir +++ /dev/null @@ -1,5 +0,0 @@ -mkdir d1 -cd d1 -touch f1 -ls -stop diff --git a/teme/tema-1/skel/INPUTS/cd_no_found b/teme/tema-1/skel/INPUTS/cd_no_found deleted file mode 100644 index deb2d032..00000000 --- a/teme/tema-1/skel/INPUTS/cd_no_found +++ /dev/null @@ -1,4 +0,0 @@ -mkdir d1 -cd d2 -ls -stop diff --git a/teme/tema-1/skel/INPUTS/cd_return b/teme/tema-1/skel/INPUTS/cd_return deleted file mode 100644 index 28ea4314..00000000 --- a/teme/tema-1/skel/INPUTS/cd_return +++ /dev/null @@ -1,11 +0,0 @@ -mkdir d1 -cd d1 -touch f1 -ls -cd .. -cd .. -cd .. -cd .. -cd .. -ls -stop diff --git a/teme/tema-1/skel/INPUTS/mkdir b/teme/tema-1/skel/INPUTS/mkdir deleted file mode 100644 index 53aebec9..00000000 --- a/teme/tema-1/skel/INPUTS/mkdir +++ /dev/null @@ -1,3 +0,0 @@ -mkdir d1 -ls -stop diff --git a/teme/tema-1/skel/INPUTS/mkdir_same_name b/teme/tema-1/skel/INPUTS/mkdir_same_name deleted file mode 100644 index 6afd8bad..00000000 --- a/teme/tema-1/skel/INPUTS/mkdir_same_name +++ /dev/null @@ -1,4 +0,0 @@ -mkdir d1 -mkdir d1 -ls -stop diff --git a/teme/tema-1/skel/INPUTS/mv_dir b/teme/tema-1/skel/INPUTS/mv_dir deleted file mode 100644 index 1b1f2941..00000000 --- a/teme/tema-1/skel/INPUTS/mv_dir +++ /dev/null @@ -1,11 +0,0 @@ -mkdir d1 -mkdir d2 -cd d1 -touch f1 -cd .. -ls -mv d1 d3 -ls -cd d2 -ls -stop diff --git a/teme/tema-1/skel/INPUTS/mv_dir_file_used_name b/teme/tema-1/skel/INPUTS/mv_dir_file_used_name deleted file mode 100644 index ecd47d16..00000000 --- a/teme/tema-1/skel/INPUTS/mv_dir_file_used_name +++ /dev/null @@ -1,9 +0,0 @@ -touch f1 -touch f2 -mkdir d1 -mkdir d2 -ls -mv d1 f1 -mv f1 d2 -ls -stop diff --git a/teme/tema-1/skel/INPUTS/mv_dir_used_name b/teme/tema-1/skel/INPUTS/mv_dir_used_name deleted file mode 100644 index a4cbd7a7..00000000 --- a/teme/tema-1/skel/INPUTS/mv_dir_used_name +++ /dev/null @@ -1,6 +0,0 @@ -mkdir d1 -mkdir d2 -ls -mv d1 d2 -ls -stop diff --git a/teme/tema-1/skel/INPUTS/mv_empty_dir b/teme/tema-1/skel/INPUTS/mv_empty_dir deleted file mode 100644 index cafe1bfc..00000000 --- a/teme/tema-1/skel/INPUTS/mv_empty_dir +++ /dev/null @@ -1,5 +0,0 @@ -mkdir d1 -ls -mv d1 d2 -ls -stop diff --git a/teme/tema-1/skel/INPUTS/mv_file b/teme/tema-1/skel/INPUTS/mv_file deleted file mode 100644 index c426c6f3..00000000 --- a/teme/tema-1/skel/INPUTS/mv_file +++ /dev/null @@ -1,6 +0,0 @@ -touch f1 -touch f2 -ls -mv f1 f3 -ls -stop diff --git a/teme/tema-1/skel/INPUTS/mv_file_used_name b/teme/tema-1/skel/INPUTS/mv_file_used_name deleted file mode 100644 index fffea133..00000000 --- a/teme/tema-1/skel/INPUTS/mv_file_used_name +++ /dev/null @@ -1,6 +0,0 @@ -touch f1 -touch f2 -ls -mv f1 f2 -ls -stop diff --git a/teme/tema-1/skel/INPUTS/mv_no_file b/teme/tema-1/skel/INPUTS/mv_no_file deleted file mode 100644 index e8033999..00000000 --- a/teme/tema-1/skel/INPUTS/mv_no_file +++ /dev/null @@ -1,5 +0,0 @@ -mkdir d1 -ls -mv d2 d3 -ls -stop diff --git a/teme/tema-1/skel/INPUTS/mv_rm b/teme/tema-1/skel/INPUTS/mv_rm deleted file mode 100644 index bd5282fc..00000000 --- a/teme/tema-1/skel/INPUTS/mv_rm +++ /dev/null @@ -1,7 +0,0 @@ -touch f1 -touch f2 -ls -mv f1 f3 -rm f3 -ls -stop diff --git a/teme/tema-1/skel/INPUTS/mv_rmdir b/teme/tema-1/skel/INPUTS/mv_rmdir deleted file mode 100644 index 2f666b3e..00000000 --- a/teme/tema-1/skel/INPUTS/mv_rmdir +++ /dev/null @@ -1,8 +0,0 @@ -mkdir d1 -mkdir d2 -ls -mv d1 d3 -ls -rmdir d3 -ls -stop diff --git a/teme/tema-1/skel/INPUTS/pwd_complex b/teme/tema-1/skel/INPUTS/pwd_complex deleted file mode 100644 index f09e7b61..00000000 --- a/teme/tema-1/skel/INPUTS/pwd_complex +++ /dev/null @@ -1,12 +0,0 @@ -mkdir d1 -cd d1 -mkdir d2 -cd d2 -mkdir d3 -cd d3 -mkdir d4 -cd d4 -mkdir d5 -cd d5 -pwd -stop diff --git a/teme/tema-1/skel/INPUTS/pwd_home b/teme/tema-1/skel/INPUTS/pwd_home deleted file mode 100644 index c2ac45c2..00000000 --- a/teme/tema-1/skel/INPUTS/pwd_home +++ /dev/null @@ -1,2 +0,0 @@ -pwd -stop diff --git a/teme/tema-1/skel/INPUTS/rm_multiple_files b/teme/tema-1/skel/INPUTS/rm_multiple_files deleted file mode 100644 index c4daf695..00000000 --- a/teme/tema-1/skel/INPUTS/rm_multiple_files +++ /dev/null @@ -1,10 +0,0 @@ -touch f1 -touch f2 -touch f3 -ls -rm f3 -rm f2 -ls -rm f1 -ls -stop diff --git a/teme/tema-1/skel/INPUTS/rm_no_file b/teme/tema-1/skel/INPUTS/rm_no_file deleted file mode 100644 index b35d0e9b..00000000 --- a/teme/tema-1/skel/INPUTS/rm_no_file +++ /dev/null @@ -1,6 +0,0 @@ -mkdir d1 -ls -rm d1 -ls -stop - diff --git a/teme/tema-1/skel/INPUTS/rm_no_found b/teme/tema-1/skel/INPUTS/rm_no_found deleted file mode 100644 index 0ddce2b1..00000000 --- a/teme/tema-1/skel/INPUTS/rm_no_found +++ /dev/null @@ -1,4 +0,0 @@ -touch f1 -rm f2 -ls -stop diff --git a/teme/tema-1/skel/INPUTS/rm_one_file b/teme/tema-1/skel/INPUTS/rm_one_file deleted file mode 100644 index 8a1c9a78..00000000 --- a/teme/tema-1/skel/INPUTS/rm_one_file +++ /dev/null @@ -1,6 +0,0 @@ -touch f1 -touch f2 -ls -rm f1 -ls -stop diff --git a/teme/tema-1/skel/INPUTS/rmdir_multiple_dirs b/teme/tema-1/skel/INPUTS/rmdir_multiple_dirs deleted file mode 100644 index b77626e8..00000000 --- a/teme/tema-1/skel/INPUTS/rmdir_multiple_dirs +++ /dev/null @@ -1,10 +0,0 @@ -mkdir d1 -mkdir d2 -mkdir d3 -ls -rmdir d2 -ls -rmdir d1 -rmdir d3 -ls -stop diff --git a/teme/tema-1/skel/INPUTS/rmdir_no_dir b/teme/tema-1/skel/INPUTS/rmdir_no_dir deleted file mode 100644 index 4764b487..00000000 --- a/teme/tema-1/skel/INPUTS/rmdir_no_dir +++ /dev/null @@ -1,4 +0,0 @@ -touch d1 -rmdir d1 -ls -stop diff --git a/teme/tema-1/skel/INPUTS/rmdir_no_found b/teme/tema-1/skel/INPUTS/rmdir_no_found deleted file mode 100644 index becc707b..00000000 --- a/teme/tema-1/skel/INPUTS/rmdir_no_found +++ /dev/null @@ -1,5 +0,0 @@ -mkdir d1 -mkdir d2 -rmdir d3 -ls -stop diff --git a/teme/tema-1/skel/INPUTS/rmdir_one_dir b/teme/tema-1/skel/INPUTS/rmdir_one_dir deleted file mode 100644 index 1cc532b8..00000000 --- a/teme/tema-1/skel/INPUTS/rmdir_one_dir +++ /dev/null @@ -1,6 +0,0 @@ -mkdir d1 -mkdir d2 -ls -rmdir d2 -ls -stop diff --git a/teme/tema-1/skel/INPUTS/touch b/teme/tema-1/skel/INPUTS/touch deleted file mode 100644 index 7bcad2cc..00000000 --- a/teme/tema-1/skel/INPUTS/touch +++ /dev/null @@ -1,3 +0,0 @@ -touch f1 -ls -stop diff --git a/teme/tema-1/skel/INPUTS/touch_same_name b/teme/tema-1/skel/INPUTS/touch_same_name deleted file mode 100644 index c01611c8..00000000 --- a/teme/tema-1/skel/INPUTS/touch_same_name +++ /dev/null @@ -1,4 +0,0 @@ -touch f1 -touch f1 -ls -stop diff --git a/teme/tema-1/skel/INPUTS/tree_complex b/teme/tema-1/skel/INPUTS/tree_complex deleted file mode 100644 index e1b84c13..00000000 --- a/teme/tema-1/skel/INPUTS/tree_complex +++ /dev/null @@ -1,29 +0,0 @@ -mkdir d1 -mkdir d2 -cd d1 -mkdir da -touch fa -cd da -mkdir db -touch fb -cd db -mkdir dc -touch fc -cd .. -cd .. -cd .. -cd .. -cd .. -cd .. -cd .. -cd .. -cd .. -cd .. -cd .. -stiu........ -nu_mai_stiu_sa_numar_ayaye -help_will_come -tree -cd d2 -tree -stop diff --git a/teme/tema-1/skel/INPUTS/tree_simple b/teme/tema-1/skel/INPUTS/tree_simple deleted file mode 100644 index 3318e9f8..00000000 --- a/teme/tema-1/skel/INPUTS/tree_simple +++ /dev/null @@ -1,4 +0,0 @@ -mkdir d1 -touch f1 -tree -stop diff --git a/teme/tema-1/skel/Makefile b/teme/tema-1/skel/Makefile deleted file mode 100644 index eb7385cb..00000000 --- a/teme/tema-1/skel/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -build: - gcc tema1.c -g -o tema - -clean: - rm tema - -checker: - python3 checker.py diff --git a/teme/tema-1/skel/OUTPUTS/.gitignore b/teme/tema-1/skel/OUTPUTS/.gitignore deleted file mode 100644 index 94548af5..00000000 --- a/teme/tema-1/skel/OUTPUTS/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -* -*/ -!.gitignore diff --git a/teme/tema-1/skel/checker.py b/teme/tema-1/skel/checker.py deleted file mode 100644 index 708fcd91..00000000 --- a/teme/tema-1/skel/checker.py +++ /dev/null @@ -1,213 +0,0 @@ -#!/usr/bin/env python - -import subprocess -import shutil -import os -import sys -from collections import namedtuple - - -#Dataclasses do be looking good -class Task: - def __init__(self, name="", max_points=0, number_tests=0, number_tests_passed=0): - self.name = name - self.max_points = max_points - self.number_tests = number_tests - self.number_tests_passed = number_tests_passed - - @property - def score_task(self): - return (self.max_points / self.number_tests) * self.number_tests_passed - -# Asta e pentru generatiile urmatoare care vor sa se joace mai tare cu valgrind -test_tuple = namedtuple("Test", "name, error") - -runExec = "./tema" -useShell = True -inputFileName = "input" -memoryPass = True -numPassed = 0 -memory_shame_list = [] -size_header = 60 - -#Static files -INPUT_FILE = "INPUTS/" -OUTPUTS_FILE = "OUTPUTS/" -DEV_FILE = "DEV_OUTPUT/" -MEMORY_CHECK_FILE = "memCheck" -README_FILE = "README" - - -## Date pentru fiecare file -list_tasks = {} -list_tasks["ls_mkdir_touch"] = Task(name="ls_mkdir_touch", max_points=30, number_tests = 4) -list_tasks["cd"] = Task(name="cd", max_points=5, number_tests=4) -list_tasks["rm"]= Task(name="rm", max_points=5, number_tests=4) -list_tasks["rmdir"] = Task(name="rmdir", max_points=10, number_tests=4) -list_tasks["tree"] = Task(name="tree", max_points=10, number_tests=2) -list_tasks["pwd"] = Task(name="pwd", max_points=10, number_tests=2) -list_tasks["mv"]=Task(name="mv", max_points=20, number_tests=9) -nl = "\n" -memory_score = 20 -readme_score = 10 - - -def add_passed_test(name: str): - """ - Incrementeaza cantitatea de teste trecute dintr-o anumita categorie - Args: - name (str): Numele testului - - Returns: - NONE: Nu intoarce nimic, modifica campul de teste trecute din clasa - """ - - if name.startswith("ls_") or name.startswith("touch") or name.startswith("mkdir"): - list_tasks["ls_mkdir_touch"].number_tests_passed += 1 - elif name.startswith("cd_"): - list_tasks["cd"].number_tests_passed += 1 - elif name.startswith("rm_"): - list_tasks["rm"].number_tests_passed += 1 - elif name.startswith("rmdir_"): - list_tasks["rmdir"].number_tests_passed += 1 - elif name.startswith("tree_"): - list_tasks["tree"].number_tests_passed += 1 - elif name.startswith("pwd_"): - list_tasks["pwd"].number_tests_passed += 1 - elif name.startswith("mv_"): - list_tasks["mv"].number_tests_passed += 1 - - -def calculate_score_without_memory() -> int: - """ - Returns: - int: The score of the person without memory points - """ - return sum([task.score_task for task in list_tasks.values()]) +\ - (readme_score if os.path.exists(README_FILE) else 0) - -def calculate_score() -> int: - """ - Returns: - int: The total score of the person - """ - return calculate_score_without_memory() +\ - (memory_score if len(memory_shame_list) == 0 and calculate_score_without_memory() >= 50 else 0) - - -## Initialisation in the beggining -if not os.path.exists(OUTPUTS_FILE): - os.mkdir(OUTPUTS_FILE) - -if not os.path.exists(runExec): - rc = subprocess.call("make", shell=useShell) - if rc != 0: - sys.stderr.write("make failed with status %d\n" % rc) - sys.exit(rc) - -if not os.path.exists(runExec): - sys.stderr.write("The file %s is missing and could not be created with make" % runExec) - sys.exit(-1) - -if not os.path.exists(INPUT_FILE): - sys.stderr.write("Could not find the inputs file.....how did you manage that?") - sys.exit(-1) - -## Start of the horror -print("\n======================= Tema 1 IOCLA =======================\n") - -regular_tests = [x for x in sorted(os.listdir(INPUT_FILE)) if not x.startswith("mv_")] - - -for name_file in regular_tests: - shutil.copy(INPUT_FILE + name_file, inputFileName) - - proc = os.popen('valgrind --leak-check=full \ - --show-leak-kinds=all --track-origins=yes \ - --log-file=\"memCheck\" ' - + runExec + " < " + inputFileName) - result = proc.read().strip() - proc.close() - with open(OUTPUTS_FILE + "output_" + name_file, "w") as f: - f.write(result) - - with open(DEV_FILE + "dev_" + name_file, "r") as dev: - if dev.read().strip() == result: - print("TEST " + name_file + "." *(size_header - len(name_file) - 12) + " PASSED") - add_passed_test(name_file) - numPassed += 1 - else: - print("TEST " + name_file + "." *(size_header - len(name_file) - 12) + " FAILED") - - ## memory check - with open("memCheck", "r") as mem: - mem_str = mem.read().strip() - if "All heap blocks were freed" not in mem_str: - memory_shame_list.append(test_tuple(name_file, "memory not freed")) - elif "Invalid read" in mem_str: - memory_shame_list.append(test_tuple(name_file, "not enough memory allocated string")) - -print("\n========================== BONUS ===========================\n") - -bonus_tests = [x for x in sorted(os.listdir(INPUT_FILE)) if x.startswith("mv_")] -for name_file in bonus_tests: - shutil.copy(INPUT_FILE + name_file, inputFileName) - - proc = os.popen('valgrind --leak-check=full \ - --show-leak-kinds=all --track-origins=yes \ - --log-file=\"memCheck\" ' - + runExec + " < " + inputFileName) - result = proc.read().strip() - proc.close() - with open(OUTPUTS_FILE + "output_" + name_file, "w") as f: - f.write(result) - - with open(DEV_FILE + "dev_" + name_file, "r") as dev: - if dev.read().strip() == result: - print("TEST " + name_file + "." *(size_header - len(name_file) - 12) + " PASSED") - add_passed_test(name_file) - numPassed += 1 - else: - print("TEST " + name_file + "." *(size_header - len(name_file) - 12) + " FAILED") - - ## memory check - with open("memCheck", "r") as mem: - mem_str = mem.read().strip() - if "All heap blocks were freed" not in mem_str: - memory_shame_list.append(test_tuple(name_file, "memory not freed")) - elif "Invalid read" in mem_str: - memory_shame_list.append(test_tuple(name_file, "not enough memory allocated string")) - -## Memory check -print("\n======================= Memory Check =======================\n") - -if len(memory_shame_list) == 0 and calculate_score_without_memory() >= 50: - if numPassed == len(os.listdir(INPUT_FILE)): - print(f"Very few people have gone as far as you have.{nl}Good Job! I hope you are proud of yourself the least I can give {nl}you is {memory_score}p!") - else: - print(f"No memory problems, really good job! - {memory_score}p!") -else: - print(f"At least 50 points are necessary in order to get the points for memory.{nl}") - -for shame in memory_shame_list: - print("Failed Test: " + shame.name + "-- probable problem: " + shame.error) - - -## Readme -print("\n======================= README Check =======================\n") -if not os.path.exists(README_FILE): - print("NO README MAKES ME SAD :((((") -else: - print(README_FILE + " present. Good job!") - -## The long awaited -print(f"{nl}======================= Score ==================== {calculate_score()}p/120p{nl}") - -## Cleanup -if os.path.exists(MEMORY_CHECK_FILE): - os.remove(MEMORY_CHECK_FILE) -if os.path.exists(runExec): - os.remove(runExec) -if os.path.exists("input"): - os.remove("input") - diff --git a/teme/tema-1/skel/tema1.c b/teme/tema-1/skel/tema1.c deleted file mode 100644 index c937ab52..00000000 --- a/teme/tema-1/skel/tema1.c +++ /dev/null @@ -1,55 +0,0 @@ -#include -#include -#include - -#define MAX_INPUT_LINE_SIZE 300 - -struct Dir; -struct File; - -typedef struct Dir{ - char *name; - struct Dir* parent; - struct File* head_children_files; - struct Dir* head_children_dirs; - struct Dir* next; -} Dir; - -typedef struct File { - char *name; - struct Dir* parent; - struct File* next; -} File; - -void touch (Dir* parent, char* name) {} - -void mkdir (Dir* parent, char* name) {} - -void ls (Dir* parent) {} - -void rm (Dir* parent, char* name) {} - -void rmdir (Dir* parent, char* name) {} - -void cd(Dir** target, char *name) {} - -char *pwd (Dir* target) {} - -void stop (Dir* target) {} - -void tree (Dir* target, int level) {} - -void mv(Dir* parent, char *oldname, char *newname) {} - -int main () { - do - { - /* - Summary: - Reads from stdin a string and breaks it down into command and in - case it needs into a name. - */ - } while (/*condition*/); - - return 0; -} diff --git a/teme/tema-1/structs.h b/teme/tema-1/structs.h new file mode 100644 index 00000000..c0d08f3f --- /dev/null +++ b/teme/tema-1/structs.h @@ -0,0 +1,9 @@ +typedef struct head { + unsigned char type; + unsigned int len; +} head; + +typedef struct data_structure { + head *header; + void *data; +} data_structure; diff --git a/teme/tema-2/checker.sh b/teme/tema-2/checker.sh new file mode 100755 index 00000000..bad4d93a --- /dev/null +++ b/teme/tema-2/checker.sh @@ -0,0 +1,38 @@ +#!/bin/bash + +TASK1=1 +TASK2=2 +TASK3=3 +TASK4=4 + +if (test $# -eq 0) || (test $1 -eq $TASK1); then + cd task-1 + make build > /dev/null 2>/dev/null + ./checker + make clean > /dev/null 2>/dev/null + cd .. +fi + +if (test $# -eq 0) || (test $1 -eq $TASK2); then + cd task-2 + make build > /dev/null 2> /dev/null + ./checker + make clean > /dev/null 2> /dev/null + cd .. +fi + +if (test $# -eq 0) || (test $1 -eq $TASK3); then + cd task-3 + make check_beaufort > /dev/null 2> /dev/null + ./check_beaufort + make clean > /dev/null 2> /dev/null + cd .. +fi + +if (test $# -eq 0) || (test $1 -eq $TASK4); then + cd task-4 + make check_spiral > /dev/null 2> /dev/null + ./check_spiral + make clean > /dev/null 2> /dev/null + cd .. +fi \ No newline at end of file diff --git a/teme/tema-2/skel/io.mac b/teme/tema-2/include/io.mac similarity index 100% rename from teme/tema-2/skel/io.mac rename to teme/tema-2/include/io.mac diff --git a/teme/tema-2/skel/ages.asm b/teme/tema-2/skel/ages.asm deleted file mode 100644 index 9a5bdbec..00000000 --- a/teme/tema-2/skel/ages.asm +++ /dev/null @@ -1,33 +0,0 @@ -; This is your structure -struc my_date - .day: resw 1 - .month: resw 1 - .year: resd 1 -endstruc - -section .text - global ages - -; void ages(int len, struct my_date* present, struct my_date* dates, int* all_ages); -ages: - ;; DO NOT MODIFY - push ebp - mov ebp, esp - pusha - - mov edx, [ebp + 8] ; len - mov esi, [ebp + 12] ; present - mov edi, [ebp + 16] ; dates - mov ecx, [ebp + 20] ; all_ages - ;; DO NOT MODIFY - - ;; TODO: Implement ages - ;; FREESTYLE STARTS HERE - - - ;; FREESTYLE ENDS HERE - ;; DO NOT MODIFY - popa - leave - ret - ;; DO NOT MODIFY diff --git a/teme/tema-2/skel/cache.asm b/teme/tema-2/skel/cache.asm deleted file mode 100644 index f8414b19..00000000 --- a/teme/tema-2/skel/cache.asm +++ /dev/null @@ -1,37 +0,0 @@ -;; defining constants, you can use these as immediate values in your code -CACHE_LINES EQU 100 -CACHE_LINE_SIZE EQU 8 -OFFSET_BITS EQU 3 -TAG_BITS EQU 29 ; 32 - OFSSET_BITS - - -section .text - global load - extern printf - -;; void load(char* reg, char** tags, char cache[CACHE_LINES][CACHE_LINE_SIZE], char* address, int to_replace); -load: - ;; DO NOT MODIFY - push ebp - mov ebp, esp - pusha - - mov eax, [ebp + 8] ; address of reg - mov ebx, [ebp + 12] ; tags - mov ecx, [ebp + 16] ; cache - mov edx, [ebp + 20] ; address - mov edi, [ebp + 24] ; to_replace (index of the cache line that needs to be replaced in case of a cache MISS) - ;; DO NOT MODIFY - - ;; TODO: Implment load - ;; FREESTYLE STARTS HERE - - - ;; FREESTYLE ENDS HERE - ;; DO NOT MODIFY - popa - leave - ret - ;; DO NOT MODIFY - - diff --git a/teme/tema-2/skel/checker.c b/teme/tema-2/skel/checker.c deleted file mode 100644 index 4e57e4d3..00000000 --- a/teme/tema-2/skel/checker.c +++ /dev/null @@ -1,399 +0,0 @@ -#include -#include -#include -#include -#include "checker.h" - -double score; -int len_cheie; -int len_haystack; - -void prepare_files(char *file_prefix, char infile_name[20], char outfile_name[20], char reffile_name[20], int i, int task4) -{ - int len = strlen(file_prefix); - - if (!task4) - memset(infile_name, 0, 20); - - memset(outfile_name, 0, 20); - memset(reffile_name, 0, 20); - - file_prefix[len - 1] = '0' + i; - - if (!task4) - { - strncpy(infile_name, "input/", 6); - strncat(infile_name, file_prefix, len); - strncat(infile_name, "_in\0", 4); - } - - strncpy(outfile_name, "output/", 7); - strncat(outfile_name, file_prefix, len); - strncat(outfile_name, "_out\0", 5); - - strncpy(reffile_name, "ref/", 4); - strncat(reffile_name, file_prefix, len); - strncat(reffile_name, "_ref\0", 5); -} - -void close_files(FILE *infile, FILE *outfile, FILE *reffile) -{ - fclose(infile); - fclose(outfile); - fclose(reffile); -} - -void test_rotp() -{ - FILE *infile, *outfile, *reffile; - char file_prefix[6] = "rotpx", - infile_name[25], - outfile_name[25], - reffile_name[25], - *plaintext, *key, *ciphertext, *reftext; - int len; - - for (int i = 0; i < ROTP_TESTS; i++) - { - prepare_files(file_prefix, infile_name, outfile_name, reffile_name, i, 0); - - infile = fopen(infile_name, "r"); - outfile = fopen(outfile_name, "w+"); - reffile = fopen(reffile_name, "r"); - - fscanf(infile, "%d\n", &len); - - plaintext = calloc(len, sizeof(*plaintext)); - key = calloc(len, sizeof(*key)); - ciphertext = calloc(len, sizeof(*ciphertext)); - reftext = calloc(len, sizeof(*reftext)); - - fread(plaintext, sizeof(char), len, infile); - fgetc(infile); - fread(key, sizeof(char), len, infile); - fgetc(infile); - - rotp(ciphertext, plaintext, key, len); - - fwrite(ciphertext, sizeof(char), len, outfile); - - fread(reftext, sizeof(char), len, reffile); - - if (memcmp(ciphertext, reftext, len) == 0) - { - score += ROTP_SCORE; - printf("ROTP test %d\t\t\t\t\tPASSED %.1f / %.1f \n", i, ROTP_SCORE, ROTP_SCORE); - } - else - { - printf("ROTP test %d\t\t\t\t\tFAILED 0 / %.1f \n", i, ROTP_SCORE); - } - - close_files(infile, outfile, reffile); - - free(plaintext); - free(ciphertext); - free(key); - free(reftext); - } -} - -void test_ages() -{ - FILE *infile, *outfile, *reffile; - char file_prefix[6] = "agesx", - infile_name[20], - outfile_name[20], - reffile_name[20]; - int len; - struct my_struct present; - for (int i = 0; i < AGES_TESTS; i++) - { - prepare_files(file_prefix, infile_name, outfile_name, reffile_name, i, 0); - - infile = fopen(infile_name, "r"); - outfile = fopen(outfile_name, "w+"); - reffile = fopen(reffile_name, "r"); - - struct my_struct *dates = malloc(30 * sizeof(struct my_struct)); - - int *all_ages = malloc(30 * sizeof(int)); - int *ref_ages = malloc(30 * sizeof(int)); - - fscanf(infile, "%d", &len); - fscanf(infile, "%hd%hd%d", &present.day, &present.month, &present.year); - for (int j = 0; j < len; j++) - { - fscanf(infile, "%hd%hd%d", &dates[j].day, &dates[j].month, &dates[j].year); - fscanf(reffile, "%d", &ref_ages[j]); - } - - ages(len, &present, dates, all_ages); - - int verif = 0; - for (int j = 0; j < len; j++) - { - fprintf(outfile, "%d\n", all_ages[j]); - if (all_ages[j] != ref_ages[j]) - verif++; - } - - if (!verif) - { - score += AGES_SCORE; - printf("AGES test %d\t\t\t\t\tPASSED %.1f / %.1f \n", i, AGES_SCORE, AGES_SCORE); - } - else - { - printf("AGES test %d\t\t\t\t\tFAILED 0 / %.1f \n", i, AGES_SCORE); - } - - close_files(infile, outfile, reffile); - - free(dates); - free(all_ages); - free(ref_ages); - } -} - -void test_column() -{ - FILE *infile, *outfile, *reffile; - char file_prefix[6] = "colux", - infile_name[25], - outfile_name[25], - reffile_name[25], - *plaintext, *key, *ciphertext, *reftext; - int len_plain, len_key; - - for (int i = 0; i < COLUMNAR_TESTS; i++) - { - prepare_files(file_prefix, infile_name, outfile_name, reffile_name, i, 0); - - infile = fopen(infile_name, "r"); - outfile = fopen(outfile_name, "w+"); - reffile = fopen(reffile_name, "r"); - - fscanf(infile, "%d %d\n", &len_plain, &len_key); - - plaintext = calloc(len_plain + 1, sizeof(*plaintext)); - key = calloc(len_key + 1, sizeof(*key)); - ciphertext = calloc(len_plain, sizeof(*ciphertext)); - reftext = calloc(len_plain, sizeof(*reftext)); - - fread(plaintext, sizeof(char), len_plain, infile); - fgetc(infile); - fgetc(infile); - fread(key, sizeof(char), len_key, infile); - fgetc(infile); - fgetc(infile); - - int *cheie_fin = malloc(len_key * sizeof(int)); - for (int i = 0; i < len_key; i++) - { - int minim = 0; - for (int j = 0; j < len_key; j++) - { - if (key[j] < key[minim]) - { - minim = j; - } - } - cheie_fin[i] = minim; - key[minim] = '}'; - } - len_haystack = len_plain; - len_cheie = len_key; - columnar_transposition(cheie_fin, plaintext, ciphertext); - - fwrite(ciphertext, sizeof(char), len_plain, outfile); - - fread(reftext, sizeof(char), len_plain, reffile); - - if (memcmp(ciphertext, reftext, len_plain) == 0) - { - score += COLUMNAR_SCORE; - printf("COLUMNAR test %d\t\t\t\t\tPASSED %.1f / %.1f \n", i, COLUMNAR_SCORE, COLUMNAR_SCORE); - } - else - { - printf("COLUMNAR test %d\t\t\t\t\tFAILED 0 / %.1f \n", i, COLUMNAR_SCORE); - } - - close_files(infile, outfile, reffile); - - free(plaintext); - free(ciphertext); - free(key); - free(reftext); - } -} - -void test_cache() -{ - FILE *infile, *outfile, *reffile; - char file_prefix[7] = "cachex", - infile_name[20], - outfile_name[20], - reffile_name[20]; - unsigned long i = 0, j = 0; - char reg; - unsigned long memory0_start = 0, memory1_start = 0; - char memory0[16 * 16 + 8]; - char memory1[48 * 48 + 8]; - - // Make sure the first valid address is always ending in 000 (divisible with 8). - for (i = 0; i < 8; i++) - { - if (((unsigned long)&(memory0[i])) % 8 == 0) { - memory0_start = i; - } - if (((unsigned long)&(memory1[i])) % 8 == 0) - { - memory1_start = i; - } - - } - - // Read the memory content. - infile = fopen("input/cacheA_in", "r"); - for (j = memory0_start; j < 16 * 16 + memory0_start; j++) - { - fscanf(infile, "%hhu", &(memory0[j])); - } - fclose(infile); - infile = fopen("input/cacheB_in", "r"); - for (j = memory1_start; j < 48 * 48 + memory1_start; j++) - { - fscanf(infile, "%hhu", &(memory1[j])); - } - fclose(infile); - - // Initialize empty tags vector and create empty cache - char **tags = malloc(CACHE_LINES * sizeof(char *)); - for (i = 0; i < CACHE_LINES; i++) - tags[i] = 0; - - // Initialize empty cache - char cache[CACHE_LINES][CACHE_LINE_SIZE]; - for (i = 0; i < CACHE_LINES; i++) - { - for (j = 0; j < CACHE_LINE_SIZE; j++) - { - cache[i][j] = 0; - } - } - - // Build the address we want to get data from. CHANGE x and y to move trough memory. - int x[10] = {0, 2, 2, 0, 14, 47, 22, 10, 10, 47}; - int y[10] = {1, 4, 4, 1, 14, 3, 25, 0, 0, 47}; - int to_replace[10] = {7, 7, 17, 12, 13, 14, 2, 15, 10, 11}; - - /* - Testing. We are interested in checking the value brought in the register. - Also, we need to check that the tag was modified and a line was brought - from memory to cache in case of a CACHE MISS. - */ - int pass; - char *address; - for (i = 0; i < 10; i++) - { - prepare_files(file_prefix, infile_name, outfile_name, reffile_name, i, 1); - - outfile = fopen(outfile_name, "w+"); - reffile = fopen(reffile_name, "r"); - - int verif = 0; - int check; - pass = 0; - if (i < 5) - address = (char *)(memory0 + memory0_start + 16 * x[i] + y[i]); - else - address = (char *)(memory1 + memory1_start + 48 * x[i] + y[i]); - load(®, tags, cache, address, to_replace[i]); - - fprintf(outfile, "%hhu\n", reg); - fscanf(reffile, "%u", &check); - if (check != reg) - verif = 1; - for (j = 0; j < CACHE_LINE_SIZE; j++) - { - fprintf(outfile, "%hhu", cache[to_replace[i]][j]); - fscanf(reffile, "%u", &check); - if (check != cache[to_replace[i]][j]) - verif = 1; - if (j < CACHE_LINE_SIZE - 1) - fprintf(outfile, " "); - } - fprintf(outfile, "\n"); - fclose(outfile); - fclose(reffile); - - if (!verif) - { - score += CACHE_SCORE; - printf("CACHE test %ld\t\t\t\t\tPASSED %.1f / %.1f \n", i, CACHE_SCORE, CACHE_SCORE); - } - else - { - printf("CACHE test %ld\t\t\t\t\tFAILED 0 / %.1f \n", i, CACHE_SCORE); - } - } - -} - -int main(int argc, char *argv[]) -{ - printf("--------------------------------------------------------------------\n"); - printf("----------------------- TEMA 2 - IOCLA - 2021 ----------------------\n"); - printf("--------------------- 22 NOV 2021 - 12 DEC 2021 --------------------\n"); - printf("--------------------------------------------------------------------\n"); - printf("--------------- Introducere in limbajul de asamblare ---------------\n"); - printf("--------------- Rolul registrelor. Moduri de adresare --------------\n"); - printf("-------------------- Structuri. Vectori. Siruri --------------------\n"); - printf("--------------------------------------------------------------------\n"); - - if (argc == 1 || !strncmp(argv[1], "1", 1)) - { - test_rotp(); - printf("--------------------------------------------------------------------\n"); - } - - if (argc == 1 || !strncmp(argv[1], "2", 1)) - { - test_ages(); - printf("--------------------------------------------------------------------\n"); - } - - if (argc == 1 || !strncmp(argv[1], "3", 1)) - { - test_column(); - printf("--------------------------------------------------------------------\n"); - } - - if (argc == 1 || !strncmp(argv[1], "4", 1)) - { - test_cache(); - printf("--------------------------------------------------------------------\n"); - } - - if (access("README", F_OK) != -1) - { - score += 10; - printf("README\t\t\t\t\tI SEE A README :)) 10 / 10 \n"); - } - else - { - printf("README\t\t\t\t\tNO README? WHY? :(( 0 / 10 \n"); - } - printf("--------------------------------------------------------------------\n"); - - if (score != MAX_SCORE) - printf("YOUR SCORE: %.1f / %.1f :(( Try harder! Sleep is for the weak!\n", score, MAX_SCORE); - else - printf("YOUR SCORE: %.1f / %.1f :)) Well done! Sweet dreams! \n", score, MAX_SCORE); - - printf("--------------------------------------------------------------------\n"); - - return 0; -} diff --git a/teme/tema-2/skel/checker.h b/teme/tema-2/skel/checker.h deleted file mode 100644 index 4152aa5f..00000000 --- a/teme/tema-2/skel/checker.h +++ /dev/null @@ -1,33 +0,0 @@ -#ifndef CHECKER_H -#define CHECKER_H - -#define ROTP_TESTS 10 -#define AGES_TESTS 10 -#define COLUMNAR_TESTS 10 -#define CACHE_TESTS 10 - -#define ROTP_SCORE 1.0 -#define AGES_SCORE 1.5 -#define COLUMNAR_SCORE 2.5 -#define CACHE_SCORE 4.0 - -#define CACHE_LINES 100 -#define CACHE_LINE_SIZE 8 - -#define MAX_SCORE 100.0 - -struct my_struct{ - short day; - short month; - int year; -} __attribute__((packed)); - -void rotp(char *ciphertext, char *plaintext, char *key, int len); - -void ages(int len, struct my_struct* present, struct my_struct* dates, int* all_ages); - -void columnar_transposition(int key[], char *haystack, char *ciphertext); - -void load(char* reg, char** tags, char cache[CACHE_LINES][CACHE_LINE_SIZE], char* address, int to_replace); - -#endif \ No newline at end of file diff --git a/teme/tema-2/skel/columnar.asm b/teme/tema-2/skel/columnar.asm deleted file mode 100644 index d65ef486..00000000 --- a/teme/tema-2/skel/columnar.asm +++ /dev/null @@ -1,28 +0,0 @@ -section .data - extern len_cheie, len_haystack - -section .text - global columnar_transposition - -;; void columnar_transposition(int key[], char *haystack, char *ciphertext); -columnar_transposition: - ;; DO NOT MODIFY - push ebp - mov ebp, esp - pusha - - mov edi, [ebp + 8] ;key - mov esi, [ebp + 12] ;haystack - mov ebx, [ebp + 16] ;ciphertext - ;; DO NOT MODIFY - - ;; TODO: Implment columnar_transposition - ;; FREESTYLE STARTS HERE - - - ;; FREESTYLE ENDS HERE - ;; DO NOT MODIFY - popa - leave - ret - ;; DO NOT MODIFY \ No newline at end of file diff --git a/teme/tema-2/skel/input/ages0_in b/teme/tema-2/skel/input/ages0_in deleted file mode 100644 index c4bcabf0..00000000 --- a/teme/tema-2/skel/input/ages0_in +++ /dev/null @@ -1,5 +0,0 @@ -3 -22 11 2021 -01 12 2001 -31 12 1999 -25 12 2005 \ No newline at end of file diff --git a/teme/tema-2/skel/input/ages1_in b/teme/tema-2/skel/input/ages1_in deleted file mode 100644 index 71367382..00000000 --- a/teme/tema-2/skel/input/ages1_in +++ /dev/null @@ -1,6 +0,0 @@ -4 -15 03 2021 -18 03 2008 -20 03 2006 -15 03 2012 -29 03 2021 diff --git a/teme/tema-2/skel/input/ages2_in b/teme/tema-2/skel/input/ages2_in deleted file mode 100644 index 34ce7fd2..00000000 --- a/teme/tema-2/skel/input/ages2_in +++ /dev/null @@ -1,6 +0,0 @@ -4 -06 06 2021 -01 05 2002 -11 02 2000 -01 01 1990 -26 05 1993 diff --git a/teme/tema-2/skel/input/ages3_in b/teme/tema-2/skel/input/ages3_in deleted file mode 100644 index 2f36a786..00000000 --- a/teme/tema-2/skel/input/ages3_in +++ /dev/null @@ -1,14 +0,0 @@ -12 -09 04 2020 -15 01 1940 -19 10 1953 -20 10 1958 -30 11 1964 -24 04 1967 -16 07 1982 -14 11 1983 -23 11 1987 -22 11 1995 -16 08 2002 -23 02 2004 -28 06 2009 diff --git a/teme/tema-2/skel/input/ages4_in b/teme/tema-2/skel/input/ages4_in deleted file mode 100644 index 6335e4a2..00000000 --- a/teme/tema-2/skel/input/ages4_in +++ /dev/null @@ -1,14 +0,0 @@ -12 -17 08 2000 -11 08 1959 -26 08 1959 -21 10 1960 -20 11 1964 -28 10 1966 -03 06 1968 -31 12 1968 -09 05 1969 -03 05 1973 -04 12 1973 -01 09 1978 -25 06 1979 \ No newline at end of file diff --git a/teme/tema-2/skel/input/ages5_in b/teme/tema-2/skel/input/ages5_in deleted file mode 100644 index f5ce3998..00000000 --- a/teme/tema-2/skel/input/ages5_in +++ /dev/null @@ -1,15 +0,0 @@ -13 -02 08 2019 -24 07 1979 -08 02 1982 -16 07 1984 -13 03 1987 -09 11 1987 -24 06 1993 -07 09 1994 -13 05 1996 -04 10 2001 -07 11 2011 -04 10 2013 -25 06 2015 -09 05 2017 \ No newline at end of file diff --git a/teme/tema-2/skel/input/ages6_in b/teme/tema-2/skel/input/ages6_in deleted file mode 100644 index 7843c953..00000000 --- a/teme/tema-2/skel/input/ages6_in +++ /dev/null @@ -1,11 +0,0 @@ -9 -19 09 1987 -12 05 1958 -07 12 1959 -02 03 1962 -24 06 1963 -06 05 1964 -11 05 1964 -22 09 1967 -11 10 1971 -25 08 1972 \ No newline at end of file diff --git a/teme/tema-2/skel/input/ages7_in b/teme/tema-2/skel/input/ages7_in deleted file mode 100644 index a5a5ba3c..00000000 --- a/teme/tema-2/skel/input/ages7_in +++ /dev/null @@ -1,18 +0,0 @@ -16 -13 02 2004 -06 04 1973 -26 09 1973 -24 02 1975 -06 05 1977 -26 01 1979 -05 09 1980 -03 08 1981 -26 10 1983 -08 02 1984 -12 04 1985 -05 04 1989 -21 06 1991 -04 09 1996 -19 04 1999 -21 11 2001 -24 11 2003 \ No newline at end of file diff --git a/teme/tema-2/skel/input/ages8_in b/teme/tema-2/skel/input/ages8_in deleted file mode 100644 index 89ec7592..00000000 --- a/teme/tema-2/skel/input/ages8_in +++ /dev/null @@ -1,17 +0,0 @@ -15 -08 12 1992 -20 05 1957 -21 10 1957 -29 12 1958 -17 06 1959 -08 08 1960 -27 01 1961 -08 03 1968 -04 04 1973 -03 09 1973 -04 02 1974 -17 02 1975 -27 04 1981 -09 02 1983 -25 03 1983 -31 10 1986 \ No newline at end of file diff --git a/teme/tema-2/skel/input/ages9_in b/teme/tema-2/skel/input/ages9_in deleted file mode 100644 index f084e494..00000000 --- a/teme/tema-2/skel/input/ages9_in +++ /dev/null @@ -1,12 +0,0 @@ -10 -24 12 2009 -06 05 1987 -04 06 1990 -24 10 1990 -05 12 1990 -16 08 1991 -30 07 1993 -09 08 1996 -20 09 1999 -14 01 2000 -30 04 2001 \ No newline at end of file diff --git a/teme/tema-2/skel/input/cacheA_in b/teme/tema-2/skel/input/cacheA_in deleted file mode 100644 index 280bdbb2..00000000 --- a/teme/tema-2/skel/input/cacheA_in +++ /dev/null @@ -1,16 +0,0 @@ -8 3 9 7 7 0 0 9 7 3 5 0 8 0 7 5 -6 0 9 1 5 4 3 7 4 9 9 2 8 9 2 3 -0 6 0 7 3 1 8 4 0 5 5 3 3 2 0 9 -9 5 8 6 1 8 4 1 1 5 4 8 3 1 1 5 -7 4 2 3 8 4 2 5 9 4 3 5 9 4 1 5 -3 2 5 5 7 8 1 9 7 2 4 0 2 7 9 3 -7 2 7 2 1 9 7 3 3 5 7 9 3 1 5 3 -4 3 6 0 4 3 7 5 3 7 7 4 5 7 4 7 -5 3 1 2 4 6 4 1 5 2 8 7 8 2 8 5 -4 1 3 3 8 8 4 6 4 6 4 9 9 5 7 5 -6 3 2 4 7 5 5 4 0 8 5 5 9 6 4 2 -4 0 6 2 5 8 9 3 4 8 0 1 6 6 6 6 -9 4 4 6 4 4 8 1 6 3 0 9 6 7 9 1 -5 5 2 7 5 1 4 8 5 8 1 8 4 8 4 0 -7 6 0 3 5 6 5 1 5 9 3 8 1 9 8 0 -1 4 8 8 8 7 6 0 5 4 3 1 8 3 8 8 diff --git a/teme/tema-2/skel/input/cacheB_in b/teme/tema-2/skel/input/cacheB_in deleted file mode 100644 index 5425dec9..00000000 --- a/teme/tema-2/skel/input/cacheB_in +++ /dev/null @@ -1,48 +0,0 @@ -1 6 3 9 0 1 0 7 0 7 4 1 1 9 4 3 0 8 5 8 5 8 4 9 9 2 1 3 3 3 1 0 8 7 8 0 6 2 7 5 4 9 0 1 5 9 4 4 -5 4 4 4 1 0 1 3 4 7 2 3 4 7 7 7 3 3 3 7 0 7 6 6 7 3 9 7 7 7 4 5 0 1 9 3 2 6 7 4 6 5 1 7 3 9 4 4 -3 5 4 2 4 1 4 6 3 4 9 0 7 2 8 6 6 3 1 5 7 7 5 7 2 6 5 2 4 2 5 9 8 4 2 4 2 6 3 0 3 2 4 6 1 8 4 6 -3 5 7 5 1 9 4 7 8 1 4 2 7 2 9 9 4 9 8 9 3 6 7 9 2 5 1 5 7 7 2 9 2 4 9 9 9 1 8 9 8 9 9 3 6 8 9 2 -8 5 5 4 8 1 6 8 5 1 4 6 6 8 9 4 4 1 4 7 9 0 4 7 7 2 2 8 0 7 6 2 0 0 4 9 6 6 4 7 9 5 4 3 6 9 0 2 -9 5 0 7 7 7 3 0 9 5 2 9 7 9 6 2 9 2 6 5 2 7 7 7 2 7 1 7 4 1 1 5 6 3 1 0 9 7 2 7 1 6 7 6 9 6 3 5 -6 9 8 8 9 4 5 3 9 3 7 5 9 1 8 1 0 3 9 1 7 0 7 1 4 8 7 4 5 9 5 7 0 3 1 0 6 1 6 8 5 6 1 5 9 8 9 9 -4 1 6 8 7 3 3 9 3 1 0 3 8 7 8 4 6 3 3 6 9 0 4 7 2 3 5 0 1 8 3 3 2 3 1 2 6 6 4 0 5 9 1 2 2 5 7 0 -7 6 8 7 4 5 0 5 4 5 8 2 7 1 8 0 0 2 8 4 9 7 3 3 4 2 4 4 2 8 6 1 2 1 3 3 3 9 9 1 8 3 3 8 1 6 7 4 -9 2 4 6 8 7 2 9 0 9 2 1 5 1 1 1 3 8 4 5 9 2 1 2 7 3 7 4 2 9 3 6 8 7 9 5 3 5 8 9 3 9 8 0 2 1 5 9 -0 3 8 4 2 4 8 5 0 4 0 8 0 6 9 5 2 5 7 6 9 0 4 7 1 6 3 6 1 2 1 7 2 4 9 0 7 2 4 5 8 9 3 3 4 4 9 1 -5 6 1 0 8 1 6 9 6 5 6 5 7 4 7 2 7 0 1 2 4 3 2 1 8 4 2 0 3 1 6 2 7 6 5 8 2 2 1 4 6 6 1 7 0 4 5 9 -9 0 2 9 7 2 4 3 3 1 2 2 9 3 1 1 3 7 5 7 6 3 4 2 7 1 4 8 0 3 8 7 4 5 8 9 5 8 8 7 2 7 4 8 3 3 3 7 -1 6 3 1 0 8 0 9 8 5 7 2 6 5 8 0 6 7 5 5 6 7 1 7 9 0 7 7 9 2 4 4 6 6 6 4 1 5 5 4 4 3 3 0 8 7 7 0 -5 8 2 0 8 7 2 4 9 1 8 1 3 2 4 6 7 1 0 3 8 9 4 7 4 5 5 2 1 3 1 4 5 2 9 4 2 7 6 5 7 3 6 1 0 6 1 3 -1 0 5 9 4 7 1 9 6 0 8 3 4 8 4 5 9 5 2 2 6 6 8 1 4 3 6 4 0 6 7 9 5 4 0 0 8 8 6 8 9 1 6 6 2 0 8 5 -6 6 5 2 9 6 4 9 5 4 8 0 0 7 5 8 2 6 6 6 8 9 2 2 5 0 1 4 9 5 4 3 8 6 5 3 7 9 8 7 0 8 6 6 8 7 7 4 -8 5 3 9 8 2 7 8 1 9 4 8 1 6 7 1 3 0 3 8 3 9 9 6 3 9 3 1 4 1 9 2 8 1 9 4 3 5 6 4 6 4 1 0 3 0 6 9 -6 7 1 6 3 8 4 9 7 1 9 9 7 5 7 4 5 2 3 0 2 4 1 8 3 1 8 2 9 0 2 7 6 7 4 1 0 3 1 7 6 0 5 5 8 1 6 7 -5 0 0 9 4 6 6 1 0 4 1 3 1 0 5 5 0 7 8 4 6 2 9 2 4 4 9 9 1 8 7 5 5 3 3 1 0 4 5 6 7 3 9 5 0 2 9 5 -2 6 3 7 0 3 6 2 4 1 1 7 8 4 1 1 7 5 2 4 0 6 0 8 6 0 8 5 0 2 8 1 4 8 7 5 5 4 9 4 4 3 6 4 9 3 5 9 -0 3 8 9 4 8 4 6 2 4 5 7 9 3 4 6 4 5 2 3 3 1 4 1 0 0 1 1 1 6 3 5 2 8 9 7 6 5 1 0 1 4 7 2 7 7 7 7 -6 0 0 7 6 1 1 6 0 6 4 0 6 7 2 0 0 3 8 1 9 7 5 8 9 3 3 9 5 3 0 6 5 8 2 0 9 7 4 8 2 6 3 8 3 9 8 7 -9 4 4 8 1 4 6 1 5 5 1 4 1 5 9 5 8 0 8 6 0 2 3 1 3 4 1 3 9 7 8 5 0 9 3 5 4 6 4 4 5 2 1 5 9 4 1 7 -7 6 8 7 7 6 9 5 9 0 8 0 8 9 0 3 0 9 8 4 9 2 6 4 6 3 1 0 0 7 0 3 4 6 7 5 9 5 7 0 7 3 3 2 2 7 9 1 -1 0 8 2 8 7 8 0 3 5 9 0 0 3 3 1 7 5 0 7 7 0 5 8 4 8 5 2 8 1 2 6 0 8 9 2 4 8 3 9 7 5 7 3 4 5 7 0 -1 7 9 2 5 6 2 4 5 5 1 8 4 6 1 3 6 9 4 1 3 4 8 6 2 9 4 8 8 8 6 9 4 3 7 4 0 2 3 3 7 1 7 2 4 7 3 9 -7 6 8 8 8 8 4 0 1 4 0 4 0 8 9 0 2 7 6 8 9 8 9 3 7 6 5 5 1 9 7 9 3 4 7 2 3 8 0 1 4 6 5 2 0 0 4 1 -1 0 5 0 2 3 6 0 2 2 4 4 0 7 4 7 8 9 2 4 7 7 8 4 9 2 5 7 5 5 0 3 6 1 1 5 4 8 7 3 1 4 0 7 1 7 4 8 -1 9 5 8 9 1 8 7 5 0 5 5 6 8 6 5 5 8 1 9 5 9 4 5 3 0 1 6 8 2 5 8 1 0 1 4 3 1 4 4 2 7 7 7 9 3 3 7 -2 1 3 8 2 1 2 6 7 7 7 1 6 2 9 8 1 7 0 6 4 9 9 0 0 3 7 3 8 0 4 7 5 1 5 6 5 9 1 1 2 9 6 6 5 1 0 9 -5 6 6 0 6 8 6 4 0 4 4 6 6 1 8 4 9 5 4 9 1 6 0 5 5 3 9 6 3 3 6 7 7 8 0 9 3 4 4 4 7 6 6 0 5 8 9 7 -3 0 8 7 3 3 8 0 7 3 5 9 3 5 6 5 8 0 7 4 8 0 2 1 3 3 8 6 2 3 4 6 8 2 9 4 7 9 4 6 0 9 5 1 1 8 9 0 -3 7 6 0 3 0 4 4 9 9 6 5 6 9 5 7 9 6 0 0 5 2 7 9 2 0 7 3 3 0 9 8 2 2 5 0 9 8 1 5 3 5 3 4 2 4 1 8 -6 9 9 5 8 9 7 7 0 0 7 2 2 1 2 7 1 7 1 0 4 8 9 5 0 4 1 8 3 1 4 0 4 0 1 8 1 8 9 5 6 4 6 3 9 5 5 8 -4 9 5 9 7 2 6 5 5 4 3 6 0 1 0 1 5 6 7 7 3 3 8 2 9 8 8 9 1 6 5 0 4 9 8 2 4 8 3 1 7 4 6 8 7 8 5 7 -7 5 9 7 9 3 7 7 3 5 9 9 5 1 6 2 9 4 2 5 1 6 5 8 0 1 7 7 6 6 3 2 8 5 8 8 0 6 7 8 9 9 0 7 8 2 5 9 -3 1 5 9 0 6 6 6 3 6 8 1 5 5 2 0 4 7 7 2 3 6 0 3 6 4 3 9 6 3 7 6 6 6 5 9 3 3 9 3 2 5 7 3 0 8 7 7 -5 3 2 9 6 5 5 2 8 9 8 0 0 8 0 6 4 9 6 4 7 7 4 4 4 6 6 8 7 0 3 6 8 4 4 6 0 3 0 0 7 6 2 8 3 0 9 6 -0 1 5 5 0 6 9 2 1 4 5 8 7 2 5 2 3 4 1 2 7 8 6 3 8 6 6 4 3 0 7 8 7 4 2 9 8 0 6 4 7 1 3 8 8 3 5 5 -0 9 9 7 5 7 1 1 7 0 7 4 1 4 5 6 2 5 4 8 1 9 5 5 3 3 2 8 2 0 9 1 3 7 0 4 0 8 5 1 2 2 6 8 9 3 4 0 -5 5 1 3 3 4 9 2 4 7 3 0 6 1 6 5 3 6 9 6 0 3 6 5 8 1 5 2 2 7 5 1 3 8 7 2 5 0 3 9 4 7 9 8 2 2 5 3 -0 6 8 4 2 3 8 0 8 9 3 2 3 3 2 7 0 4 3 9 0 9 7 3 2 1 4 3 2 3 4 9 0 1 4 5 7 0 4 3 1 3 0 5 8 6 9 1 -7 1 5 3 4 9 4 4 2 9 9 5 2 4 0 6 0 2 1 4 0 4 1 3 6 6 7 5 6 8 4 0 3 1 5 6 7 1 0 7 4 1 4 9 2 2 9 1 -5 2 9 1 5 3 5 8 8 8 5 2 0 5 0 2 2 0 6 8 4 2 0 1 1 0 1 2 6 9 3 0 9 8 6 4 6 9 7 6 2 4 6 0 1 8 1 4 -6 6 0 6 2 3 5 1 5 8 2 0 1 7 2 0 9 4 8 3 2 7 8 0 7 4 3 3 7 0 3 1 5 3 3 4 9 3 0 3 6 2 0 2 5 8 8 2 -3 8 4 2 1 5 3 5 5 7 8 7 3 6 9 2 2 8 1 6 3 7 1 0 5 7 7 7 0 6 4 3 3 2 6 4 8 3 7 4 5 9 8 9 7 2 4 0 -2 3 6 6 2 1 7 3 7 9 8 9 4 3 6 5 9 1 9 2 0 4 6 2 3 6 5 3 7 9 0 5 9 1 4 3 4 5 5 4 3 6 7 0 7 0 0 9 \ No newline at end of file diff --git a/teme/tema-2/skel/input/colu0_in b/teme/tema-2/skel/input/colu0_in deleted file mode 100644 index 57504c7d..00000000 --- a/teme/tema-2/skel/input/colu0_in +++ /dev/null @@ -1,3 +0,0 @@ -24 5 -Hai sa dam mana cu mana! -cheie \ No newline at end of file diff --git a/teme/tema-2/skel/input/colu1_in b/teme/tema-2/skel/input/colu1_in deleted file mode 100644 index 5c1e7924..00000000 --- a/teme/tema-2/skel/input/colu1_in +++ /dev/null @@ -1,3 +0,0 @@ -27 5 -Nu te intreba nimeni nimic! -cheie \ No newline at end of file diff --git a/teme/tema-2/skel/input/colu2_in b/teme/tema-2/skel/input/colu2_in deleted file mode 100644 index c6c8eacf..00000000 --- a/teme/tema-2/skel/input/colu2_in +++ /dev/null @@ -1,3 +0,0 @@ -25 6 -Esti inginer in pana mea! -sertar \ No newline at end of file diff --git a/teme/tema-2/skel/input/colu3_in b/teme/tema-2/skel/input/colu3_in deleted file mode 100644 index 6f359a6f..00000000 --- a/teme/tema-2/skel/input/colu3_in +++ /dev/null @@ -1,3 +0,0 @@ -26 6 -V-am pus de cat ati stiut. -fpghea \ No newline at end of file diff --git a/teme/tema-2/skel/input/colu4_in b/teme/tema-2/skel/input/colu4_in deleted file mode 100644 index 8ead5935..00000000 --- a/teme/tema-2/skel/input/colu4_in +++ /dev/null @@ -1,3 +0,0 @@ -61 8 -Incarcam codul pe fpga si vom vedea cum se aprind beculetele. -vierilog \ No newline at end of file diff --git a/teme/tema-2/skel/input/colu5_in b/teme/tema-2/skel/input/colu5_in deleted file mode 100644 index 38307777..00000000 --- a/teme/tema-2/skel/input/colu5_in +++ /dev/null @@ -1,3 +0,0 @@ -21 9 -Nu este laptopul meu! -santinela \ No newline at end of file diff --git a/teme/tema-2/skel/input/colu6_in b/teme/tema-2/skel/input/colu6_in deleted file mode 100644 index d24c5082..00000000 --- a/teme/tema-2/skel/input/colu6_in +++ /dev/null @@ -1,3 +0,0 @@ -43 6 -Ana ar vrea mere, dar nu mai sunt la piata. -clasic \ No newline at end of file diff --git a/teme/tema-2/skel/input/colu7_in b/teme/tema-2/skel/input/colu7_in deleted file mode 100644 index 2644ce9b..00000000 --- a/teme/tema-2/skel/input/colu7_in +++ /dev/null @@ -1,3 +0,0 @@ -73 6 -Nu incepe niciodata cu nu se poate, ci incepe cu sa vedem - Nicolae Iorga -citate \ No newline at end of file diff --git a/teme/tema-2/skel/input/colu8_in b/teme/tema-2/skel/input/colu8_in deleted file mode 100644 index 802447a8..00000000 --- a/teme/tema-2/skel/input/colu8_in +++ /dev/null @@ -1,3 +0,0 @@ -40 7 -Care este cel mai bun sistem de operare? -depinde \ No newline at end of file diff --git a/teme/tema-2/skel/input/colu9_in b/teme/tema-2/skel/input/colu9_in deleted file mode 100644 index 6c56a8b4..00000000 --- a/teme/tema-2/skel/input/colu9_in +++ /dev/null @@ -1,3 +0,0 @@ -89 8 -We cannot solve problems with the kind of thinking we employed when we came up with them. -einstein \ No newline at end of file diff --git a/teme/tema-2/skel/input/rotp0_in b/teme/tema-2/skel/input/rotp0_in deleted file mode 100644 index 5d6376f2..00000000 --- a/teme/tema-2/skel/input/rotp0_in +++ /dev/null @@ -1,3 +0,0 @@ -20 -Dar cine te intreba? -Nimeni nu te-ntreba. diff --git a/teme/tema-2/skel/input/rotp1_in b/teme/tema-2/skel/input/rotp1_in deleted file mode 100644 index 1e7bc706..00000000 --- a/teme/tema-2/skel/input/rotp1_in +++ /dev/null @@ -1,3 +0,0 @@ -36 -When I dance, they call me Macarena! -And the boys, they say que soy buena diff --git a/teme/tema-2/skel/input/rotp2_in b/teme/tema-2/skel/input/rotp2_in deleted file mode 100644 index 260b2b6b..00000000 --- a/teme/tema-2/skel/input/rotp2_in +++ /dev/null @@ -1,3 +0,0 @@ -26 -Let it goooo, let it goooo -Can't hold me back anymore diff --git a/teme/tema-2/skel/input/rotp3_in b/teme/tema-2/skel/input/rotp3_in deleted file mode 100644 index 9aa7eab8..00000000 --- a/teme/tema-2/skel/input/rotp3_in +++ /dev/null @@ -1,3 +0,0 @@ -33 -Party rock's in the house tonight -Everybody just have a good time ! \ No newline at end of file diff --git a/teme/tema-2/skel/input/rotp4_in b/teme/tema-2/skel/input/rotp4_in deleted file mode 100644 index 119f2d99..00000000 --- a/teme/tema-2/skel/input/rotp4_in +++ /dev/null @@ -1,3 +0,0 @@ -37 -I'm an artist. The track is my canvas -and the ca is my brush. - Graham Hill \ No newline at end of file diff --git a/teme/tema-2/skel/input/rotp5_in b/teme/tema-2/skel/input/rotp5_in deleted file mode 100644 index e4aec9e7..00000000 --- a/teme/tema-2/skel/input/rotp5_in +++ /dev/null @@ -1,3 +0,0 @@ -15 -My name is Bond - James Bond.. \ No newline at end of file diff --git a/teme/tema-2/skel/input/rotp6_in b/teme/tema-2/skel/input/rotp6_in deleted file mode 100644 index c3e284c7..00000000 --- a/teme/tema-2/skel/input/rotp6_in +++ /dev/null @@ -1,3 +0,0 @@ -41 -If you no longer go for a gap that exists -... you are no longer a racing driver ... diff --git a/teme/tema-2/skel/input/rotp7_in b/teme/tema-2/skel/input/rotp7_in deleted file mode 100644 index 1e972e79..00000000 --- a/teme/tema-2/skel/input/rotp7_in +++ /dev/null @@ -1,3 +0,0 @@ -21 -Who let the dogs out? -Who who who who who?? \ No newline at end of file diff --git a/teme/tema-2/skel/input/rotp8_in b/teme/tema-2/skel/input/rotp8_in deleted file mode 100644 index a3739a38..00000000 --- a/teme/tema-2/skel/input/rotp8_in +++ /dev/null @@ -1,3 +0,0 @@ -19 -Just leave me alone - I know what to do diff --git a/teme/tema-2/skel/input/rotp9_in b/teme/tema-2/skel/input/rotp9_in deleted file mode 100644 index 020ba2c6..00000000 --- a/teme/tema-2/skel/input/rotp9_in +++ /dev/null @@ -1,3 +0,0 @@ -30 -Scooby Dooby Doo where are you -We need some help from you now diff --git a/teme/tema-2/skel/ref/ages0_ref b/teme/tema-2/skel/ref/ages0_ref deleted file mode 100644 index 9e0eff8c..00000000 --- a/teme/tema-2/skel/ref/ages0_ref +++ /dev/null @@ -1,3 +0,0 @@ -19 -21 -15 diff --git a/teme/tema-2/skel/ref/ages1_ref b/teme/tema-2/skel/ref/ages1_ref deleted file mode 100644 index 0dbf1d26..00000000 --- a/teme/tema-2/skel/ref/ages1_ref +++ /dev/null @@ -1,4 +0,0 @@ -12 -14 -9 -0 diff --git a/teme/tema-2/skel/ref/ages2_ref b/teme/tema-2/skel/ref/ages2_ref deleted file mode 100644 index 93144391..00000000 --- a/teme/tema-2/skel/ref/ages2_ref +++ /dev/null @@ -1,4 +0,0 @@ -19 -21 -31 -28 diff --git a/teme/tema-2/skel/ref/ages3_ref b/teme/tema-2/skel/ref/ages3_ref deleted file mode 100644 index 3aa2c40f..00000000 --- a/teme/tema-2/skel/ref/ages3_ref +++ /dev/null @@ -1,12 +0,0 @@ -80 -66 -61 -55 -52 -37 -36 -32 -24 -17 -16 -10 diff --git a/teme/tema-2/skel/ref/ages4_ref b/teme/tema-2/skel/ref/ages4_ref deleted file mode 100644 index 7604597a..00000000 --- a/teme/tema-2/skel/ref/ages4_ref +++ /dev/null @@ -1,12 +0,0 @@ -41 -40 -39 -35 -33 -32 -31 -31 -27 -26 -21 -21 diff --git a/teme/tema-2/skel/ref/ages5_ref b/teme/tema-2/skel/ref/ages5_ref deleted file mode 100644 index 24ffbed1..00000000 --- a/teme/tema-2/skel/ref/ages5_ref +++ /dev/null @@ -1,13 +0,0 @@ -40 -37 -35 -32 -31 -26 -24 -23 -17 -7 -5 -4 -2 diff --git a/teme/tema-2/skel/ref/ages6_ref b/teme/tema-2/skel/ref/ages6_ref deleted file mode 100644 index 3c06cb03..00000000 --- a/teme/tema-2/skel/ref/ages6_ref +++ /dev/null @@ -1,9 +0,0 @@ -29 -27 -25 -24 -23 -23 -19 -15 -15 diff --git a/teme/tema-2/skel/ref/ages7_ref b/teme/tema-2/skel/ref/ages7_ref deleted file mode 100644 index 5b6c0fd7..00000000 --- a/teme/tema-2/skel/ref/ages7_ref +++ /dev/null @@ -1,16 +0,0 @@ -30 -30 -28 -26 -25 -23 -22 -20 -20 -18 -14 -12 -7 -4 -2 -0 diff --git a/teme/tema-2/skel/ref/ages8_ref b/teme/tema-2/skel/ref/ages8_ref deleted file mode 100644 index 0fd2bb6b..00000000 --- a/teme/tema-2/skel/ref/ages8_ref +++ /dev/null @@ -1,15 +0,0 @@ -35 -35 -33 -33 -32 -31 -24 -19 -19 -18 -17 -11 -9 -9 -6 diff --git a/teme/tema-2/skel/ref/ages9_ref b/teme/tema-2/skel/ref/ages9_ref deleted file mode 100644 index da5c4e3c..00000000 --- a/teme/tema-2/skel/ref/ages9_ref +++ /dev/null @@ -1,10 +0,0 @@ -22 -19 -19 -19 -18 -16 -13 -10 -9 -8 diff --git a/teme/tema-2/skel/ref/cache0_ref b/teme/tema-2/skel/ref/cache0_ref deleted file mode 100644 index a40d8214..00000000 --- a/teme/tema-2/skel/ref/cache0_ref +++ /dev/null @@ -1,2 +0,0 @@ -3 -8 3 9 7 7 0 0 9 diff --git a/teme/tema-2/skel/ref/cache1_ref b/teme/tema-2/skel/ref/cache1_ref deleted file mode 100644 index d44f202e..00000000 --- a/teme/tema-2/skel/ref/cache1_ref +++ /dev/null @@ -1,2 +0,0 @@ -3 -0 6 0 7 3 1 8 4 diff --git a/teme/tema-2/skel/ref/cache2_ref b/teme/tema-2/skel/ref/cache2_ref deleted file mode 100644 index 04e4b960..00000000 --- a/teme/tema-2/skel/ref/cache2_ref +++ /dev/null @@ -1,2 +0,0 @@ -3 -0 0 0 0 0 0 0 0 diff --git a/teme/tema-2/skel/ref/cache3_ref b/teme/tema-2/skel/ref/cache3_ref deleted file mode 100644 index a40d8214..00000000 --- a/teme/tema-2/skel/ref/cache3_ref +++ /dev/null @@ -1,2 +0,0 @@ -3 -8 3 9 7 7 0 0 9 diff --git a/teme/tema-2/skel/ref/cache4_ref b/teme/tema-2/skel/ref/cache4_ref deleted file mode 100644 index 841e3081..00000000 --- a/teme/tema-2/skel/ref/cache4_ref +++ /dev/null @@ -1,2 +0,0 @@ -8 -5 9 3 8 1 9 8 0 diff --git a/teme/tema-2/skel/ref/cache5_ref b/teme/tema-2/skel/ref/cache5_ref deleted file mode 100644 index 4537e001..00000000 --- a/teme/tema-2/skel/ref/cache5_ref +++ /dev/null @@ -1,2 +0,0 @@ -6 -2 3 6 6 2 1 7 3 diff --git a/teme/tema-2/skel/ref/cache6_ref b/teme/tema-2/skel/ref/cache6_ref deleted file mode 100644 index 6f2139f2..00000000 --- a/teme/tema-2/skel/ref/cache6_ref +++ /dev/null @@ -1,2 +0,0 @@ -3 -9 3 3 9 5 3 0 6 diff --git a/teme/tema-2/skel/ref/cache7_ref b/teme/tema-2/skel/ref/cache7_ref deleted file mode 100644 index 0a5bb857..00000000 --- a/teme/tema-2/skel/ref/cache7_ref +++ /dev/null @@ -1,2 +0,0 @@ -0 -0 3 8 4 2 4 8 5 diff --git a/teme/tema-2/skel/ref/cache8_ref b/teme/tema-2/skel/ref/cache8_ref deleted file mode 100644 index 0865e0c4..00000000 --- a/teme/tema-2/skel/ref/cache8_ref +++ /dev/null @@ -1,2 +0,0 @@ -0 -0 0 0 0 0 0 0 0 diff --git a/teme/tema-2/skel/ref/cache9_ref b/teme/tema-2/skel/ref/cache9_ref deleted file mode 100644 index 11d9ab25..00000000 --- a/teme/tema-2/skel/ref/cache9_ref +++ /dev/null @@ -1,2 +0,0 @@ -9 -3 6 7 0 7 0 0 9 diff --git a/teme/tema-2/skel/ref/colu0_ref b/teme/tema-2/skel/ref/colu0_ref deleted file mode 100644 index 15119a11..00000000 --- a/teme/tema-2/skel/ref/colu0_ref +++ /dev/null @@ -1 +0,0 @@ -Ha aidauasmama mcn an ! \ No newline at end of file diff --git a/teme/tema-2/skel/ref/colu1_ref b/teme/tema-2/skel/ref/colu1_ref deleted file mode 100644 index 5b1e1384..00000000 --- a/teme/tema-2/skel/ref/colu1_ref +++ /dev/null @@ -1 +0,0 @@ -N ei c naeierniiuibmn!tt nm \ No newline at end of file diff --git a/teme/tema-2/skel/ref/colu2_ref b/teme/tema-2/skel/ref/colu2_ref deleted file mode 100644 index 4422710d..00000000 --- a/teme/tema-2/skel/ref/colu2_ref +++ /dev/null @@ -1 +0,0 @@ - epesgiatin iraaEn n!in m \ No newline at end of file diff --git a/teme/tema-2/skel/ref/colu3_ref b/teme/tema-2/skel/ref/colu3_ref deleted file mode 100644 index 1434981f..00000000 --- a/teme/tema-2/skel/ref/colu3_ref +++ /dev/null @@ -1 +0,0 @@ -p tu eaiVucita tsmd t-sa . \ No newline at end of file diff --git a/teme/tema-2/skel/ref/colu4_ref b/teme/tema-2/skel/ref/colu4_ref deleted file mode 100644 index 48394799..00000000 --- a/teme/tema-2/skel/ref/colu4_ref +++ /dev/null @@ -1 +0,0 @@ -cofva blmpse nenc ee erugmcpc.cla urua vmiladpo aeeI eidsdt \ No newline at end of file diff --git a/teme/tema-2/skel/ref/colu5_ref b/teme/tema-2/skel/ref/colu5_ref deleted file mode 100644 index 98a9d0ad..00000000 --- a/teme/tema-2/skel/ref/colu5_ref +++ /dev/null @@ -1 +0,0 @@ -upulmelsp t!tuNaeeo \ No newline at end of file diff --git a/teme/tema-2/skel/ref/colu6_ref b/teme/tema-2/skel/ref/colu6_ref deleted file mode 100644 index c15ea3e0..00000000 --- a/teme/tema-2/skel/ref/colu6_ref +++ /dev/null @@ -1 +0,0 @@ -arrratiA md u .r usaaaa,n ltnveamnp ee i a \ No newline at end of file diff --git a/teme/tema-2/skel/ref/colu7_ref b/teme/tema-2/skel/ref/colu7_ref deleted file mode 100644 index d0fa83ef..00000000 --- a/teme/tema-2/skel/ref/colu7_ref +++ /dev/null @@ -1 +0,0 @@ -i dueei ooNecauoce dNeacitnp cue agupi aipsei eocst eamcInna ,ncv-lr \ No newline at end of file diff --git a/teme/tema-2/skel/ref/colu8_ref b/teme/tema-2/skel/ref/colu8_ref deleted file mode 100644 index b2d8b8bb..00000000 --- a/teme/tema-2/skel/ref/colu8_ref +++ /dev/null @@ -1 +0,0 @@ -Ctm reluepaeasdas nmeec s e ebto?r iier \ No newline at end of file diff --git a/teme/tema-2/skel/ref/colu9_ref b/teme/tema-2/skel/ref/colu9_ref deleted file mode 100644 index 04a75142..00000000 --- a/teme/tema-2/skel/ref/colu9_ref +++ /dev/null @@ -1 +0,0 @@ -Wtp efnphai.nve dn dephe rw glemtnemt ke e soikt oneho shoimwcwmcobtihwy allhnieewut \ No newline at end of file diff --git a/teme/tema-2/skel/ref/rotp0_ref b/teme/tema-2/skel/ref/rotp0_ref deleted file mode 100644 index d558ff3b..00000000 Binary files a/teme/tema-2/skel/ref/rotp0_ref and /dev/null differ diff --git a/teme/tema-2/skel/ref/rotp1_ref b/teme/tema-2/skel/ref/rotp1_ref deleted file mode 100644 index 526f6e89..00000000 Binary files a/teme/tema-2/skel/ref/rotp1_ref and /dev/null differ diff --git a/teme/tema-2/skel/ref/rotp2_ref b/teme/tema-2/skel/ref/rotp2_ref deleted file mode 100644 index 2eed5252..00000000 Binary files a/teme/tema-2/skel/ref/rotp2_ref and /dev/null differ diff --git a/teme/tema-2/skel/ref/rotp3_ref b/teme/tema-2/skel/ref/rotp3_ref deleted file mode 100644 index d2de4c2b..00000000 Binary files a/teme/tema-2/skel/ref/rotp3_ref and /dev/null differ diff --git a/teme/tema-2/skel/ref/rotp4_ref b/teme/tema-2/skel/ref/rotp4_ref deleted file mode 100644 index f114e001..00000000 Binary files a/teme/tema-2/skel/ref/rotp4_ref and /dev/null differ diff --git a/teme/tema-2/skel/ref/rotp5_ref b/teme/tema-2/skel/ref/rotp5_ref deleted file mode 100644 index fe4bc28c..00000000 Binary files a/teme/tema-2/skel/ref/rotp5_ref and /dev/null differ diff --git a/teme/tema-2/skel/ref/rotp6_ref b/teme/tema-2/skel/ref/rotp6_ref deleted file mode 100644 index b91b1f98..00000000 Binary files a/teme/tema-2/skel/ref/rotp6_ref and /dev/null differ diff --git a/teme/tema-2/skel/ref/rotp7_ref b/teme/tema-2/skel/ref/rotp7_ref deleted file mode 100644 index 518077e3..00000000 Binary files a/teme/tema-2/skel/ref/rotp7_ref and /dev/null differ diff --git a/teme/tema-2/skel/ref/rotp8_ref b/teme/tema-2/skel/ref/rotp8_ref deleted file mode 100644 index 243d02c7..00000000 --- a/teme/tema-2/skel/ref/rotp8_ref +++ /dev/null @@ -1 +0,0 @@ -jTOE WMOO'E \ No newline at end of file diff --git a/teme/tema-2/skel/ref/rotp9_ref b/teme/tema-2/skel/ref/rotp9_ref deleted file mode 100644 index 0ecda9a8..00000000 Binary files a/teme/tema-2/skel/ref/rotp9_ref and /dev/null differ diff --git a/teme/tema-2/skel/rotp.asm b/teme/tema-2/skel/rotp.asm deleted file mode 100644 index a3faa595..00000000 --- a/teme/tema-2/skel/rotp.asm +++ /dev/null @@ -1,26 +0,0 @@ -section .text - global rotp - -;; void rotp(char *ciphertext, char *plaintext, char *key, int len); -rotp: - ;; DO NOT MODIFY - push ebp - mov ebp, esp - pusha - - mov edx, [ebp + 8] ; ciphertext - mov esi, [ebp + 12] ; plaintext - mov edi, [ebp + 16] ; key - mov ecx, [ebp + 20] ; len - ;; DO NOT MODIFY - - ;; TODO: Implment rotp - ;; FREESTYLE STARTS HERE - - - ;; FREESTYLE ENDS HERE - ;; DO NOT MODIFY - popa - leave - ret - ;; DO NOT MODIFY \ No newline at end of file diff --git a/teme/tema-2/task-1/Makefile b/teme/tema-2/task-1/Makefile new file mode 100644 index 00000000..2e1a49e4 --- /dev/null +++ b/teme/tema-2/task-1/Makefile @@ -0,0 +1,22 @@ +.PHONY: all clean run build + +all: checker + +build: checker + +run: checker + ./checker + +simple.o: simple.asm + nasm -f elf $^ -o $@ + +check_simple_cipher.o: check_simple_cipher.c + gcc -c -g -m32 $^ -o $@ + +checker: check_simple_cipher.o simple.o + gcc -m32 -g $^ -o $@ + rm *.o + +clean: + rm -f checker + rm -f output/simple-* \ No newline at end of file diff --git a/teme/tema-2/task-1/README.md b/teme/tema-2/task-1/README.md new file mode 100644 index 00000000..73be78c6 --- /dev/null +++ b/teme/tema-2/task-1/README.md @@ -0,0 +1,26 @@ +# Task 1 - simple cipher # +Acest algoritm de criptare presupune shiftarea la dreapta in cadrul alfabetului a +fiecarui caracter de un anumit numar de ori. + +De exemplu, textul "ANABANANA" se transforma in "BOBCBOBOB" cand pasul este 1. + +Astfel, o criptare cu pas 26 nu modifica litera intrucat alfabetul englez are 26 de caractere. + +Pentru acest task, va trebui să implementați în fișierul `simple.asm` funcția `simple()` +care criptează un string în clar folosind metoda descrisă mai sus. + +Antetul funcției este: + +``` +void simple(int n, char* plain, char* enc_string, int step); +``` + +Semnificatia argumentelor este: +- **n** dimensiunea textului +- **plain** string-ul care trebuie criptat +- **enc_string** adresa la care se va scrie textul criptat +- **step** cu cat se shifteaza fiecare caracter + +Restrictii: +- se vor folosi toate **majusculele** alfabetului englez +- shiftarea se realizeaza **strict** in cadrul alfabetului \ No newline at end of file diff --git a/teme/tema-2/task-1/check_simple_cipher.c b/teme/tema-2/task-1/check_simple_cipher.c new file mode 100644 index 00000000..ba22b76d --- /dev/null +++ b/teme/tema-2/task-1/check_simple_cipher.c @@ -0,0 +1,70 @@ +#include +#include +#include + +void simple(int n, char* plain, char* enc_string, int step); + +void readInput(char *filename, int *len, int *step, char* plain) { + int i, j; + + FILE *f = fopen(filename, "r"); + + /* read the plain text */ + fscanf(f, "%d %d", len, step); + fscanf(f, "%s", plain); + fclose(f); +} + +void readRef(char *filename, char *ref_string) { + FILE *f = fopen(filename, "r"); + + /* read the encrypted text */ + fscanf(f, "%s", ref_string); + + fclose(f); +} + +void printOutput(char *filename, char *string) { + FILE *f = fopen(filename, "w"); + + fprintf(f, "%s", string); + + fclose(f); +} + +int main(int argc, char **argv) { + int i = 0; + int len, step; + float score = 0; + + char plain[10001]; + char enc_string[10001]; + char ref_string[10001]; + char input_file[30], output_file[30], ref_file[30]; + + printf("--------------TASK 1--------------\n"); + for (i = 0; i < 10; i++) { + sprintf(input_file, "input/simple-%d.in", i); + readInput(input_file, &len, &step, plain); + + memset(ref_string, 0, 10001); + sprintf(ref_file, "ref/simple-%d.ref", i); + readRef(ref_file, ref_string); + + memset(enc_string, 0, 10001); + simple(len, plain, enc_string, step); + + sprintf(output_file, "output/simple-%d.out", i); + printOutput(output_file, enc_string); + + if (strcmp(enc_string, ref_string)) { + printf("TEST %d..................FAILED: 0.00p\n", i); + } else { + score += 1; + printf("TEST %d..................PASSED: 1.00p\n", i); + } + } + printf("TASK 1 SCORE: %.2f\n\n", score); + + return 0; +} \ No newline at end of file diff --git a/teme/tema-2/task-1/input/simple-0.in b/teme/tema-2/task-1/input/simple-0.in new file mode 100644 index 00000000..44dbe7f4 --- /dev/null +++ b/teme/tema-2/task-1/input/simple-0.in @@ -0,0 +1,2 @@ +25 15 +THYROPARATHYROIDECTOMIZED \ No newline at end of file diff --git a/teme/tema-2/task-1/input/simple-1.in b/teme/tema-2/task-1/input/simple-1.in new file mode 100644 index 00000000..b826dd8c --- /dev/null +++ b/teme/tema-2/task-1/input/simple-1.in @@ -0,0 +1,3 @@ +45 +1 +PNEUMONOULTRAMICROSCOPICSILICOVOLCANOCONIOSIS \ No newline at end of file diff --git a/teme/tema-2/task-1/input/simple-2.in b/teme/tema-2/task-1/input/simple-2.in new file mode 100644 index 00000000..46db0b4b --- /dev/null +++ b/teme/tema-2/task-1/input/simple-2.in @@ -0,0 +1,2 @@ +28 8 +ANTIDISESTABLISHMENTARIANISM \ No newline at end of file diff --git a/teme/tema-2/task-1/input/simple-3.in b/teme/tema-2/task-1/input/simple-3.in new file mode 100644 index 00000000..e596fd87 --- /dev/null +++ b/teme/tema-2/task-1/input/simple-3.in @@ -0,0 +1,2 @@ +21 17 +INCOMPREHENSIBILITIES \ No newline at end of file diff --git a/teme/tema-2/task-1/input/simple-4.in b/teme/tema-2/task-1/input/simple-4.in new file mode 100644 index 00000000..a1c79027 --- /dev/null +++ b/teme/tema-2/task-1/input/simple-4.in @@ -0,0 +1,2 @@ +27 10 +HONORIFICABILITUDINITATIBUS \ No newline at end of file diff --git a/teme/tema-2/task-1/input/simple-5.in b/teme/tema-2/task-1/input/simple-5.in new file mode 100644 index 00000000..58e8b805 --- /dev/null +++ b/teme/tema-2/task-1/input/simple-5.in @@ -0,0 +1,2 @@ +17 1 +SUBDERMATOGLYPHIC \ No newline at end of file diff --git a/teme/tema-2/task-1/input/simple-6.in b/teme/tema-2/task-1/input/simple-6.in new file mode 100644 index 00000000..d6fb136b --- /dev/null +++ b/teme/tema-2/task-1/input/simple-6.in @@ -0,0 +1,2 @@ +29 0 +FLOCCINAUCINIHILIPILIFICATION \ No newline at end of file diff --git a/teme/tema-2/task-1/input/simple-7.in b/teme/tema-2/task-1/input/simple-7.in new file mode 100644 index 00000000..215231f8 --- /dev/null +++ b/teme/tema-2/task-1/input/simple-7.in @@ -0,0 +1,2 @@ +30 5 +PSEUDOPSEUDOHYPOPARATHYROIDISM \ No newline at end of file diff --git a/teme/tema-2/task-1/input/simple-8.in b/teme/tema-2/task-1/input/simple-8.in new file mode 100644 index 00000000..3651e794 --- /dev/null +++ b/teme/tema-2/task-1/input/simple-8.in @@ -0,0 +1,2 @@ +34 20 +SUPERCALIFRAGILISTICEXPIALIDOCIOUS \ No newline at end of file diff --git a/teme/tema-2/task-1/input/simple-9.in b/teme/tema-2/task-1/input/simple-9.in new file mode 100644 index 00000000..de2ab901 --- /dev/null +++ b/teme/tema-2/task-1/input/simple-9.in @@ -0,0 +1,2 @@ +17 2 +SESQUIPEDALIANISM \ No newline at end of file diff --git a/teme/tema-2/task-1/output/dummy b/teme/tema-2/task-1/output/dummy new file mode 100644 index 00000000..421376db --- /dev/null +++ b/teme/tema-2/task-1/output/dummy @@ -0,0 +1 @@ +dummy diff --git a/teme/tema-2/task-1/ref/simple-0.ref b/teme/tema-2/task-1/ref/simple-0.ref new file mode 100644 index 00000000..08c4d613 --- /dev/null +++ b/teme/tema-2/task-1/ref/simple-0.ref @@ -0,0 +1 @@ +IWNGDEPGPIWNGDXSTRIDBXOTS \ No newline at end of file diff --git a/teme/tema-2/task-1/ref/simple-1.ref b/teme/tema-2/task-1/ref/simple-1.ref new file mode 100644 index 00000000..10977278 --- /dev/null +++ b/teme/tema-2/task-1/ref/simple-1.ref @@ -0,0 +1 @@ +QOFVNPOPVMUSBNJDSPTDPQJDTJMJDPWPMDBOPDPOJPTJT \ No newline at end of file diff --git a/teme/tema-2/task-1/ref/simple-2.ref b/teme/tema-2/task-1/ref/simple-2.ref new file mode 100644 index 00000000..fea8d2b1 --- /dev/null +++ b/teme/tema-2/task-1/ref/simple-2.ref @@ -0,0 +1 @@ +IVBQLQAMABIJTQAPUMVBIZQIVQAU \ No newline at end of file diff --git a/teme/tema-2/task-1/ref/simple-3.ref b/teme/tema-2/task-1/ref/simple-3.ref new file mode 100644 index 00000000..a8024b8c --- /dev/null +++ b/teme/tema-2/task-1/ref/simple-3.ref @@ -0,0 +1 @@ +ZETFDGIVYVEJZSZCZKZVJ \ No newline at end of file diff --git a/teme/tema-2/task-1/ref/simple-4.ref b/teme/tema-2/task-1/ref/simple-4.ref new file mode 100644 index 00000000..ea6bef30 --- /dev/null +++ b/teme/tema-2/task-1/ref/simple-4.ref @@ -0,0 +1 @@ +RYXYBSPSMKLSVSDENSXSDKDSLEC \ No newline at end of file diff --git a/teme/tema-2/task-1/ref/simple-5.ref b/teme/tema-2/task-1/ref/simple-5.ref new file mode 100644 index 00000000..ccadc783 --- /dev/null +++ b/teme/tema-2/task-1/ref/simple-5.ref @@ -0,0 +1 @@ +TVCEFSNBUPHMZQIJD \ No newline at end of file diff --git a/teme/tema-2/task-1/ref/simple-6.ref b/teme/tema-2/task-1/ref/simple-6.ref new file mode 100644 index 00000000..746fb7a0 --- /dev/null +++ b/teme/tema-2/task-1/ref/simple-6.ref @@ -0,0 +1 @@ +FLOCCINAUCINIHILIPILIFICATION \ No newline at end of file diff --git a/teme/tema-2/task-1/ref/simple-7.ref b/teme/tema-2/task-1/ref/simple-7.ref new file mode 100644 index 00000000..1517860a --- /dev/null +++ b/teme/tema-2/task-1/ref/simple-7.ref @@ -0,0 +1 @@ +UXJZITUXJZITMDUTUFWFYMDWTNINXR \ No newline at end of file diff --git a/teme/tema-2/task-1/ref/simple-8.ref b/teme/tema-2/task-1/ref/simple-8.ref new file mode 100644 index 00000000..56ccce94 --- /dev/null +++ b/teme/tema-2/task-1/ref/simple-8.ref @@ -0,0 +1 @@ +MOJYLWUFCZLUACFCMNCWYRJCUFCXIWCIOM \ No newline at end of file diff --git a/teme/tema-2/task-1/ref/simple-9.ref b/teme/tema-2/task-1/ref/simple-9.ref new file mode 100644 index 00000000..432e0a5b --- /dev/null +++ b/teme/tema-2/task-1/ref/simple-9.ref @@ -0,0 +1 @@ +UGUSWKRGFCNKCPKUO \ No newline at end of file diff --git a/teme/tema-2/task-1/simple.asm b/teme/tema-2/task-1/simple.asm new file mode 100644 index 00000000..c0192541 --- /dev/null +++ b/teme/tema-2/task-1/simple.asm @@ -0,0 +1,33 @@ +%include "../include/io.mac" + +section .text + global simple + extern printf + +simple: + ;; DO NOT MODIFY + push ebp + mov ebp, esp + pusha + + mov ecx, [ebp + 8] ; len + mov esi, [ebp + 12] ; plain + mov edi, [ebp + 16] ; enc_string + mov edx, [ebp + 20] ; step + + ;; DO NOT MODIFY + + ;; Your code starts here + + + + + ;; Your code ends here + + ;; DO NOT MODIFY + + popa + leave + ret + + ;; DO NOT MODIFY diff --git a/teme/tema-2/skel/Makefile b/teme/tema-2/task-2/Makefile similarity index 53% rename from teme/tema-2/skel/Makefile rename to teme/tema-2/task-2/Makefile index f8f25d96..7818a76b 100644 --- a/teme/tema-2/skel/Makefile +++ b/teme/tema-2/task-2/Makefile @@ -7,28 +7,22 @@ build: checker run: checker ./checker -rotp.o: rotp.asm +points-distance.o: points-distance.asm nasm -f elf $^ -o $@ -ages.o: ages.asm +road.o: road.asm nasm -f elf $^ -o $@ -columnar.o: columnar.asm +is_square.o: is_square.asm nasm -f elf $^ -o $@ -cache.o: cache.asm - nasm -f elf $^ -o $@ - - -checker.o: checker.c +check_points.o: check_points.c gcc -c -g -m32 $^ -o $@ - - -checker: checker.o ages.o rotp.o columnar.o cache.o +checker: check_points.o points-distance.o road.o is_square.o gcc -m32 -g $^ -o $@ rm *.o clean: rm -f checker - rm -f output/* + rm -f output/points-* \ No newline at end of file diff --git a/teme/tema-2/task-2/README.md b/teme/tema-2/task-2/README.md new file mode 100644 index 00000000..97c3a8cf --- /dev/null +++ b/teme/tema-2/task-2/README.md @@ -0,0 +1,69 @@ +# Task 2 - Points # +Prin intermediul acestui task se doreste aprofundarea lucrului cu structuri. + +Se da structura unui punct in coordonate carteziene: +``` + struct point{ + short x; + short y; + }; +``` + +## Exercitiul 1 ## +Pentru aceasta parte a task-ului aveti de implementat functia *points_distance()* +din fisierul *points-distance.asm* care va calcula distanta dintre doua puncte aflate +pe o dreapta paralela cu axele. + +Antetul functiei este: +``` +int points_distance(struct point *p, int *rez); +``` + +Semnificatia argumentelor este: +- **p** adresa de inceput a vectorului de puncte +- **rez** distanta dintre cele doau puncte + +## Exercitiul 2 ## +In continuarea exercitiului 1, acum trebuie sa implementati functia *road()* din +fisierul *road.asm* care va calcula distanta dintre punctele vecine dintr-un vector. + +Astfel, pentru un vector de 4 puncte se vor calcula 3 distante: *(0,1)* , *(1,2)*, +*(2,3)*. + +Antetul functiei este: +``` +void road(struct point* points, int len, int* distances); +``` + +Semnificatia argumentelor este: +- **points** adresa de inceput a vectorului de puncte +- **len** numarul de puncte +- **distances** adresa de inceput a vectorului de distantele + +**Observatie** + + Lungimea vectorului de distante este cu 1 mai mica decat lungimea vectoului + de puncte. + +## Exercitiul 3 ## + +Ultima parte a task-ului presupune analizarea fiecarei distante calculate anterior +pentru a determina daca este patrat perfect. Trebuie sa implementati functia +*is_square()* din fisierul *is_square.asm*. + +Antetul functiei este: +``` +void is_square(int *dist, int n, int *rez); +``` +Semnificatia argumentelor este: +- **dist** adresa de inceput a vectorului de distante aflate la exercitiul 2 +- **n** lungimea vectorului +- **rez** adresa de inceput a vectorului rezultat in urma verificarilor + +**Nota** Un patrat perfect va fi notat cu 1, iar restul numerelor cu 0. + +**ATENTIE** + + - Pentru obtinerea punctalului maxim pe acest task trebuie realizate toate exercitiile + - Punctajul pentru ex 2 nu se acorda fara rezolvarea ex 1, iar pentru ex3 + trebuie rezolvate si ex2 si ex1 diff --git a/teme/tema-2/task-2/check_points.c b/teme/tema-2/task-2/check_points.c new file mode 100644 index 00000000..846fe296 --- /dev/null +++ b/teme/tema-2/task-2/check_points.c @@ -0,0 +1,135 @@ +#include +#include +#include + +typedef struct point{ + short x; + short y; +} __attribute__((packed)); + +void points_distance(struct point *p, int *rez); +void road(struct point* points, int len, int* distances); +void is_square(int *dist, int n, int *rez); + +void readInput(char *filename, int *nr, struct point *pointArr) { + int i, j; + + FILE *f = fopen(filename, "r"); + + /* read points */ + fscanf(f, "%d", nr); + for(int i = 0 ; i < *nr ; i++) + fscanf(f, "%hd%hd", &pointArr[i].x, &pointArr[i].y); + fclose(f); +} + +void readRef(char *filename, int *nr, int *d1_ref, int *dist_ref, int *sq_ref) { + FILE *f = fopen(filename, "r"); + + /* read the encrypted text */ + fscanf(f, "%d", d1_ref); + for(int i = 0 ; i < *nr - 1 ; i++) + fscanf(f, "%d", &dist_ref[i]); + for(int i = 0 ; i < *nr - 1 ; i++) + fscanf(f, "%d", &sq_ref[i]); + fclose(f); +} + +void printOutput(char *filename, int *nr, int *d1, int *dist, int *sq, int okay1, int okay2) { + FILE *f = fopen(filename, "w"); + + fprintf(f, "%d\n", *d1); + + if(okay1) + for(int i = 0 ; i < *nr - 1 ; i++) + fprintf(f, "%d ", dist[i]); + fprintf(f, "\n"); + + if(okay2) + for(int i = 0 ; i < *nr - 1; i++) + fprintf(f, "%d ", sq[i]); + + fclose(f); +} + +int main(int argc, char **argv) { + int i = 0; + int nr; + float score = 0; + + struct point p[10]; + int dist_ref[10], dist[10]; + int sq_ref[10], sq[10]; + int *d1 = malloc(1 * sizeof(int)); + int *d1_ref = malloc(1 * sizeof(int)); + char input_file[30], output_file[30], ref_file[30]; + + printf("--------------TASK 2--------------\n"); + for (i = 0; i < 10; i++) { + printf("--TEST %d--------------------------\n", i); + /* read input */ + sprintf(input_file, "input/points-%d.in", i); + readInput(input_file, &nr, p); + + /* read ref */ + sprintf(ref_file, "ref/points-%d.ref", i); + readRef(ref_file, &nr, d1_ref, dist_ref, sq_ref); + + /* do task 1 */ + int *task1 = malloc(1 * sizeof(int)); + points_distance(p, d1); + + + int okay1 = 1; + int okay2 = 0; + if(*d1 != *d1_ref){ + okay1 = 0; + printf("TEST %d_1................FAILED: 0.00p\n", i); + printf("TEST %d_2................FAILED: 0.00p\n", i); + printf("TEST %d_3................FAILED: 0.00p\n", i); + } else { + score += 0.5; + printf("TEST %d_1................PASSED: 0.50p\n", i); + } + + if(okay1){ + /* do task 2 */ + road(p, nr, dist); + + okay2 = 1; + for(int j = 0 ; j < nr - 1; j++) + if(dist[j] != dist_ref[j]) + okay2 = 0; + + + if(okay2){ + score += 0.75; + printf("TEST %d_2................PASSED: 0.75p\n", i); + } else { + printf("TEST %d_2................FAILED: 0.00p\n", i); + printf("TEST %d_3................FAILED: 0.00p\n", i); + } + + if(okay2){ + /* do task 3*/ + is_square(dist, nr-1, sq); + int okay3 = 1; + for(int j = 0 ; j < nr - 1; j++) + if(sq[j] != sq_ref[j]) + okay3 = 0; + if(okay3){ + score += 1.25; + printf("TEST %d_3................PASSED: 1.25p\n", i); + } else { + printf("TEST %d_3................FAILED: 0.00p\n", i); + } + } + } + + sprintf(output_file, "output/points-%d.out", i); + printOutput(output_file, &nr, d1, dist, sq, okay1, okay2); + } + printf("TASK 2 SCORE: %.2f\n\n", score); + + return 0; +} diff --git a/teme/tema-2/task-2/input/points-0.in b/teme/tema-2/task-2/input/points-0.in new file mode 100644 index 00000000..cc4dc563 --- /dev/null +++ b/teme/tema-2/task-2/input/points-0.in @@ -0,0 +1,4 @@ +3 +1 1 +50 1 +1 1 \ No newline at end of file diff --git a/teme/tema-2/task-2/input/points-1.in b/teme/tema-2/task-2/input/points-1.in new file mode 100644 index 00000000..65b1a933 --- /dev/null +++ b/teme/tema-2/task-2/input/points-1.in @@ -0,0 +1,8 @@ +7 +1 3 +1 5 +8 5 +24 5 +24 14 +10 14 +10 10 \ No newline at end of file diff --git a/teme/tema-2/task-2/input/points-2.in b/teme/tema-2/task-2/input/points-2.in new file mode 100644 index 00000000..d8f293fe --- /dev/null +++ b/teme/tema-2/task-2/input/points-2.in @@ -0,0 +1,6 @@ +5 +3 12 +17 12 +17 13 +17 25 +1 25 \ No newline at end of file diff --git a/teme/tema-2/task-2/input/points-3.in b/teme/tema-2/task-2/input/points-3.in new file mode 100644 index 00000000..078542dd --- /dev/null +++ b/teme/tema-2/task-2/input/points-3.in @@ -0,0 +1,3 @@ +2 +1 9 +10 9 \ No newline at end of file diff --git a/teme/tema-2/task-2/input/points-4.in b/teme/tema-2/task-2/input/points-4.in new file mode 100644 index 00000000..51f75749 --- /dev/null +++ b/teme/tema-2/task-2/input/points-4.in @@ -0,0 +1,5 @@ +4 +12 9 +12 25 +10 25 +10 4 \ No newline at end of file diff --git a/teme/tema-2/task-2/input/points-5.in b/teme/tema-2/task-2/input/points-5.in new file mode 100644 index 00000000..d7721f73 --- /dev/null +++ b/teme/tema-2/task-2/input/points-5.in @@ -0,0 +1,4 @@ +3 +1 2 +2 2 +2 2 \ No newline at end of file diff --git a/teme/tema-2/task-2/input/points-6.in b/teme/tema-2/task-2/input/points-6.in new file mode 100644 index 00000000..e8ddd194 --- /dev/null +++ b/teme/tema-2/task-2/input/points-6.in @@ -0,0 +1,5 @@ +4 +9 8 +9 12 +16 12 +20 12 \ No newline at end of file diff --git a/teme/tema-2/task-2/input/points-7.in b/teme/tema-2/task-2/input/points-7.in new file mode 100644 index 00000000..3f598513 --- /dev/null +++ b/teme/tema-2/task-2/input/points-7.in @@ -0,0 +1,11 @@ +8 +1 2 +5 2 +5 10 +2 10 +2 7 +9 7 +9 6 +10 6 +10 4 +4 4 \ No newline at end of file diff --git a/teme/tema-2/task-2/input/points-8.in b/teme/tema-2/task-2/input/points-8.in new file mode 100644 index 00000000..0d1c7c5e --- /dev/null +++ b/teme/tema-2/task-2/input/points-8.in @@ -0,0 +1,7 @@ +6 +1 1 +2 1 +2 8 +7 8 +7 24 +7 20 \ No newline at end of file diff --git a/teme/tema-2/task-2/input/points-9.in b/teme/tema-2/task-2/input/points-9.in new file mode 100644 index 00000000..66699026 --- /dev/null +++ b/teme/tema-2/task-2/input/points-9.in @@ -0,0 +1,6 @@ +5 +7 4 +12 4 +12 20 +15 20 +15 15 \ No newline at end of file diff --git a/teme/tema-2/task-2/is_square.asm b/teme/tema-2/task-2/is_square.asm new file mode 100644 index 00000000..e3fc6510 --- /dev/null +++ b/teme/tema-2/task-2/is_square.asm @@ -0,0 +1,29 @@ +%include "../include/io.mac" + +section .text + global is_square + extern printf + +is_square: + ;; DO NOT MODIFY + push ebp + mov ebp, esp + pusha + + mov ebx, [ebp + 8] ; dist + mov eax, [ebp + 12] ; nr + mov ecx, [ebp + 16] ; sq + ;; DO NOT MODIFY + + ;; Your code starts here + + + + + ;; Your code ends here + + ;; DO NOT MODIFY + popa + leave + ret + ;; DO NOT MODIFY \ No newline at end of file diff --git a/teme/tema-2/task-2/output/dummy b/teme/tema-2/task-2/output/dummy new file mode 100644 index 00000000..421376db --- /dev/null +++ b/teme/tema-2/task-2/output/dummy @@ -0,0 +1 @@ +dummy diff --git a/teme/tema-2/task-2/points-distance.asm b/teme/tema-2/task-2/points-distance.asm new file mode 100644 index 00000000..78f6adc0 --- /dev/null +++ b/teme/tema-2/task-2/points-distance.asm @@ -0,0 +1,35 @@ +%include "../include/io.mac" + +struc point + .x: resw 1 + .y: resw 1 +endstruc + +section .text + global points_distance + extern printf + +points_distance: + ;; DO NOT MODIFY + + push ebp + mov ebp, esp + pusha + + mov ebx, [ebp + 8] ; points + mov eax, [ebp + 12] ; distance + ;; DO NOT MODIFY + + ;; Your code starts here + + + + + ;; Your code ends here + + ;; DO NOT MODIFY + popa + leave + ret + + ;; DO NOT MODIFY \ No newline at end of file diff --git a/teme/tema-2/task-2/ref/points-0.ref b/teme/tema-2/task-2/ref/points-0.ref new file mode 100644 index 00000000..1e8ac54d --- /dev/null +++ b/teme/tema-2/task-2/ref/points-0.ref @@ -0,0 +1,3 @@ +49 +49 49 +1 1 \ No newline at end of file diff --git a/teme/tema-2/task-2/ref/points-1.ref b/teme/tema-2/task-2/ref/points-1.ref new file mode 100644 index 00000000..41f573ee --- /dev/null +++ b/teme/tema-2/task-2/ref/points-1.ref @@ -0,0 +1,3 @@ +2 +2 7 16 9 14 4 +0 0 1 1 0 1 \ No newline at end of file diff --git a/teme/tema-2/task-2/ref/points-2.ref b/teme/tema-2/task-2/ref/points-2.ref new file mode 100644 index 00000000..6c8f03f9 --- /dev/null +++ b/teme/tema-2/task-2/ref/points-2.ref @@ -0,0 +1,3 @@ +14 +14 1 12 16 +0 1 0 1 \ No newline at end of file diff --git a/teme/tema-2/task-2/ref/points-3.ref b/teme/tema-2/task-2/ref/points-3.ref new file mode 100644 index 00000000..8ee8565b --- /dev/null +++ b/teme/tema-2/task-2/ref/points-3.ref @@ -0,0 +1,3 @@ +9 +9 +1 \ No newline at end of file diff --git a/teme/tema-2/task-2/ref/points-4.ref b/teme/tema-2/task-2/ref/points-4.ref new file mode 100644 index 00000000..531ad6d7 --- /dev/null +++ b/teme/tema-2/task-2/ref/points-4.ref @@ -0,0 +1,3 @@ +16 +16 2 21 +1 0 0 \ No newline at end of file diff --git a/teme/tema-2/task-2/ref/points-5.ref b/teme/tema-2/task-2/ref/points-5.ref new file mode 100644 index 00000000..167c8c4f --- /dev/null +++ b/teme/tema-2/task-2/ref/points-5.ref @@ -0,0 +1,3 @@ +1 +1 0 +1 1 \ No newline at end of file diff --git a/teme/tema-2/task-2/ref/points-6.ref b/teme/tema-2/task-2/ref/points-6.ref new file mode 100644 index 00000000..4cd3fb83 --- /dev/null +++ b/teme/tema-2/task-2/ref/points-6.ref @@ -0,0 +1,3 @@ +4 +4 7 4 +1 0 1 \ No newline at end of file diff --git a/teme/tema-2/task-2/ref/points-7.ref b/teme/tema-2/task-2/ref/points-7.ref new file mode 100644 index 00000000..2337ab41 --- /dev/null +++ b/teme/tema-2/task-2/ref/points-7.ref @@ -0,0 +1,3 @@ +4 +4 8 3 3 7 1 1 +1 0 0 0 0 1 1 \ No newline at end of file diff --git a/teme/tema-2/task-2/ref/points-8.ref b/teme/tema-2/task-2/ref/points-8.ref new file mode 100644 index 00000000..aac06715 --- /dev/null +++ b/teme/tema-2/task-2/ref/points-8.ref @@ -0,0 +1,3 @@ +1 +1 7 5 16 4 +1 0 0 1 1 \ No newline at end of file diff --git a/teme/tema-2/task-2/ref/points-9.ref b/teme/tema-2/task-2/ref/points-9.ref new file mode 100644 index 00000000..545fcbd5 --- /dev/null +++ b/teme/tema-2/task-2/ref/points-9.ref @@ -0,0 +1,3 @@ +5 +5 16 3 5 +0 1 0 0 \ No newline at end of file diff --git a/teme/tema-2/task-2/road.asm b/teme/tema-2/task-2/road.asm new file mode 100644 index 00000000..2583b1c8 --- /dev/null +++ b/teme/tema-2/task-2/road.asm @@ -0,0 +1,34 @@ +%include "../include/io.mac" + +struc point + .x: resw 1 + .y: resw 1 +endstruc + +section .text + global road + extern printf + +road: + ;; DO NOT MODIFY + push ebp + mov ebp, esp + pusha + + mov eax, [ebp + 8] ; points + mov ecx, [ebp + 12] ; len + mov ebx, [ebp + 16] ; distances + ;; DO NOT MODIFY + + ;; Your code starts here + + + + + ;; Your code ends here + + ;; DO NOT MODIFY + popa + leave + ret + ;; DO NOT MODIFY \ No newline at end of file diff --git a/teme/tema-2/task-3/Makefile b/teme/tema-2/task-3/Makefile new file mode 100644 index 00000000..ea8ba5b4 --- /dev/null +++ b/teme/tema-2/task-3/Makefile @@ -0,0 +1,14 @@ +check_beaufort: beaufort.o checker.o + gcc -m32 -g $^ -o $@ + +beaufort.o: beaufort.asm + nasm -f elf $^ -o $@ + +checker.o: check_beaufort.c + gcc -c -g -m32 $^ -o $@ + +clean: + rm check_beaufort + rm beaufort.o + rm checker.o + rm output/beaufort* diff --git a/teme/tema-2/task-3/README.md b/teme/tema-2/task-3/README.md new file mode 100644 index 00000000..ed4cdc0e --- /dev/null +++ b/teme/tema-2/task-3/README.md @@ -0,0 +1,46 @@ +# Task 3 - Beaufort Encryption # +Algoritmul de criptare Beaufort pleacă de la un string în clar (numit și plain text) +și un string secundar numit cheie și obține un text criptat, de lungime identică cu string-ul în clar, +prin înlocuirea caracter cu caracter a literelor din textul inițial. +Spre exemplu, să zicem că vrem să criptăm textul `DEFENDTHEEASTWALLOFTHECASTLE`, utilizând cheia +`FORTIFICATION`. + +Regula după care se face înlocuirea folosește o matrice de caractere, numită *tabula recta*, +în care fiecare linie și fiecare coloană au asociate câte o literă a alfabetului limbii engleze. +Aceasta are formatul de mai jos: + +![](./img/Beaufort-1.png) + +Criptarea fiecărui caracter se realizează aplicând următorii pași: +- asociem fiecărui caracter din textul în clar un caracter din cheie, +repetând cheia pentru a acoperi tot string-ul inițial +``` +DEFENDTHEEASTWALLOFTHECASTLE +FORTIFICATIONFORTIFICATIONFO +``` +- mergem în `tabula recta` pe coloana asociată literei pe care vrem să o criptăm +- coborâm pe această coloană până când găsim litera asociată din cheie +- litera asociată liniei pe care am ajuns reprezintă caracterul criptat +Pentru caracterul `D`: + +![](./img/beaufort-2.png) + +Criptând fiecare caracter folosind pașii de mai sus, obținem string-ul cripta. Pe exemplul nostru: +``` +CKMPVCPVWPIWUJOGIUAPVWRIWUUK +``` + +Pentru acest task, va trebui să implementați în fișierul `beaufort.asm` funcția +`beaufort()` care criptează un string în clar folosind metoda descrisă mai sus. +Antetul funcției este: +``` +beaufort(int len_plain, char *plain, int len_key, char *key, char tabula_recta[26][26], char *enc) +``` +Semnificația argumentelor este: +- **len_plain** și **plain**: dimensiunea textului în clar și string-ul în clar (adresa primului element) +- **len_key** și **key**: dimensiunea cheii și string-ul care reprezintă cheia (adresa primului element) +- **tabula_recta**: o matrice (**alocată static**) de 26 X 26 de caractere ale limbii engleze, cu conținutul din figurile de mai sus +- **enc**: adresa la care va trebui să scrieți textul criptat + +**Note** +În funcție de cum considerați că vă e mai ușor, puteți evita utilizarea argumentului *char tabula_recta[26][26]*, utilizând anumite corelări logice între linia și coloana matricii și conținutul ei. Ambele metode de rezolvare vor fi considerate la fel de corecte :) \ No newline at end of file diff --git a/teme/tema-2/task-3/beaufort.asm b/teme/tema-2/task-3/beaufort.asm new file mode 100644 index 00000000..f8d4f43b --- /dev/null +++ b/teme/tema-2/task-3/beaufort.asm @@ -0,0 +1,30 @@ +%include "../include/io.mac" + +section .text + global beaufort + extern printf + +; void beaufort(int len_plain, char *plain, int len_key, char *key, char tabula_recta[26][26], char *enc) ; +beaufort: + ;; DO NOT MODIFY + push ebp + mov ebp, esp + pusha + + mov eax, [ebp + 8] ; len_plain + mov ebx, [ebp + 12] ; plain (address of first element in string) + mov ecx, [ebp + 16] ; len_key + mov edx, [ebp + 20] ; key (address of first element in matrix) + mov edi, [ebp + 24] ; tabula_recta + mov esi, [ebp + 28] ; enc + ;; DO NOT MODIFY + ;; TODO: Implement spiral encryption + ;; FREESTYLE STARTS HERE + + + ;; FREESTYLE ENDS HERE + ;; DO NOT MODIFY + popa + leave + ret + ;; DO NOT MODIFY diff --git a/teme/tema-2/task-3/check_beaufort.c b/teme/tema-2/task-3/check_beaufort.c new file mode 100644 index 00000000..344ec276 --- /dev/null +++ b/teme/tema-2/task-3/check_beaufort.c @@ -0,0 +1,82 @@ +#include +#include +#include + +void beaufort(int len_plain, char *plain, int len_key, char *key, char tabula_recta[26][26], char *enc); + +void readInput(char *filename, int *len_plain, int *len_key, char *plain, char *key, char tabula_recta[26][26]) { + int i, j; + + FILE *f = fopen(filename, "r"); + /* read the plain text */ + fscanf(f, "%d %d", len_plain, len_key); + fscanf(f, "%s", plain); + /* read the key */ + fscanf(f, "%s", key); + fclose(f); + + /* read the tabula recta */ + f = fopen("input/tabula_recta", "r"); + for (i = 0; i < 26; i++) { + for (j = 0; j < 26; j++) { + fscanf(f, "%c", &(tabula_recta[i][j])); + fgetc(f); + } + } + fclose(f); +} + +void readRef(char *filename, char *ref_string) { + FILE *f = fopen(filename, "r"); + + /* read the encrypted text */ + fscanf(f, "%s", ref_string); + + fclose(f); +} + +void printOutput(char *filename, char *string) { + FILE *f = fopen(filename, "w"); + + fprintf(f, "%s", string); + + fclose(f); +} + +int main(int argc, char **argv) { + int i = 0; + int len_plain, len_key; + float score = 0; + char key[10001]; + char plain[10001]; + char tabula_recta[26][26]; + char enc_string[10001]; + char ref_string[10001]; + char input_file[30], output_file[30], ref_file[30]; + + printf("--------------TASK 3--------------\n"); + for (i = 0; i < 10; i++) { + sprintf(input_file, "input/beaufort-%d.in", i); + readInput(input_file, &len_plain, &len_key, plain, key, tabula_recta); + + memset(ref_string, 0, 10001); + sprintf(ref_file, "ref/beaufort-%d.ref", i); + readRef(ref_file, ref_string); + + memset(enc_string, 0, 10001); + beaufort(len_plain, plain, len_key, key, tabula_recta, enc_string); + + sprintf(output_file, "output/beaufort-%d.out", i); + printOutput(output_file, enc_string); + + if (strcmp(enc_string, ref_string)) { + printf("TEST %d..................FAILED: 0.00p\n", i); + } else { + score += 2.5; + printf("TEST %d..................PASSED: 2.50p\n", i); + } + } + printf("TASK 3 SCORE: %.2f\n\n", score); + + return 0; +} \ No newline at end of file diff --git a/teme/tema-2/task-3/img/Beaufort-1.png b/teme/tema-2/task-3/img/Beaufort-1.png new file mode 100644 index 00000000..bd4d157f Binary files /dev/null and b/teme/tema-2/task-3/img/Beaufort-1.png differ diff --git a/teme/tema-2/task-3/img/beaufort-2.png b/teme/tema-2/task-3/img/beaufort-2.png new file mode 100644 index 00000000..11e819cf Binary files /dev/null and b/teme/tema-2/task-3/img/beaufort-2.png differ diff --git a/teme/tema-2/task-3/input/beaufort-0.in b/teme/tema-2/task-3/input/beaufort-0.in new file mode 100644 index 00000000..101c7df9 --- /dev/null +++ b/teme/tema-2/task-3/input/beaufort-0.in @@ -0,0 +1,3 @@ +28 13 +DEFENDTHEEASTWALLOFTHECASTLE +FORTIFICATION diff --git a/teme/tema-2/task-3/input/beaufort-1.in b/teme/tema-2/task-3/input/beaufort-1.in new file mode 100644 index 00000000..44fde588 --- /dev/null +++ b/teme/tema-2/task-3/input/beaufort-1.in @@ -0,0 +1,3 @@ +22 4 +VREAUSABEAUCUFRATIIMEI +GREI diff --git a/teme/tema-2/task-3/input/beaufort-2.in b/teme/tema-2/task-3/input/beaufort-2.in new file mode 100644 index 00000000..11081210 --- /dev/null +++ b/teme/tema-2/task-3/input/beaufort-2.in @@ -0,0 +1,3 @@ +17 8 +CINEIUBESTESILASA +PEDEAPSA diff --git a/teme/tema-2/task-3/input/beaufort-3.in b/teme/tema-2/task-3/input/beaufort-3.in new file mode 100644 index 00000000..6ed804e4 --- /dev/null +++ b/teme/tema-2/task-3/input/beaufort-3.in @@ -0,0 +1,3 @@ +23 6 +HAIINMERCEDESHAIINAVION +MILION diff --git a/teme/tema-2/task-3/input/beaufort-4.in b/teme/tema-2/task-3/input/beaufort-4.in new file mode 100644 index 00000000..54214015 --- /dev/null +++ b/teme/tema-2/task-3/input/beaufort-4.in @@ -0,0 +1,3 @@ +24 3 +FORTZASTEAUAFORTZASTEAUA +HEY diff --git a/teme/tema-2/task-3/input/beaufort-5.in b/teme/tema-2/task-3/input/beaufort-5.in new file mode 100644 index 00000000..d6a55f2d --- /dev/null +++ b/teme/tema-2/task-3/input/beaufort-5.in @@ -0,0 +1,3 @@ +40 2 +BIBLIOTECINULIBRARIIESTIINGINERINPANAMEA +RD diff --git a/teme/tema-2/task-3/input/beaufort-6.in b/teme/tema-2/task-3/input/beaufort-6.in new file mode 100644 index 00000000..74c91e48 --- /dev/null +++ b/teme/tema-2/task-3/input/beaufort-6.in @@ -0,0 +1,3 @@ +25 8 +GUCCIGUCCIGUCCIBALENCIAGA +DESIGNER diff --git a/teme/tema-2/task-3/input/beaufort-7.in b/teme/tema-2/task-3/input/beaufort-7.in new file mode 100644 index 00000000..331b7647 --- /dev/null +++ b/teme/tema-2/task-3/input/beaufort-7.in @@ -0,0 +1,3 @@ +64 17 +WKJGEXKYITQYNQTEWBGIGOWTCNTHVSOEPDMSGVOBGVTEGWKBWRZWMSMYPXJUMVGY +MZGVYBCRKOASPUOJI diff --git a/teme/tema-2/task-3/input/beaufort-8.in b/teme/tema-2/task-3/input/beaufort-8.in new file mode 100644 index 00000000..07aedd58 --- /dev/null +++ b/teme/tema-2/task-3/input/beaufort-8.in @@ -0,0 +1,3 @@ +100 21 +NKIVUIJPDPZCOFPZIRJFFHFUBEJXAXHPYHNKLBOODVBACGZESUQJJACERZYQFBIMHVJXKOUPCYUPPLLHIGNPFNMBOZWNZLQDNZVS +QHBEDBQTYYVOUDIPSUBQL diff --git a/teme/tema-2/task-3/input/beaufort-9.in b/teme/tema-2/task-3/input/beaufort-9.in new file mode 100644 index 00000000..dcbd3189 --- /dev/null +++ b/teme/tema-2/task-3/input/beaufort-9.in @@ -0,0 +1,3 @@ +200 47 +DEZVVJLGIUQWHOYCAIISEISWUBRKXSWMYDANPPMXBJBJXMSMBHAVGOPVUUIFSXFYYUVQOUOXSSZZKLHTIHFHOWXWNBMPRXDKKGAJDPBQGLPRYIAREOWWBPQCOJUKAXBXJUCPXFCEBYDLAOJKLVVCURZDUKUXYMGGGJGWEOYEAFARGOWOBTRSPAABQCMGCXXMXXVGYDCV +PCDECFKFCGZJLYELDCWJABTXXQGIXWHAXQCTSIYLNESIJIS diff --git a/teme/tema-2/task-3/input/tabula_recta b/teme/tema-2/task-3/input/tabula_recta new file mode 100644 index 00000000..d55b349e --- /dev/null +++ b/teme/tema-2/task-3/input/tabula_recta @@ -0,0 +1,26 @@ +A B C D E F G H I J K L M N O P Q R S T U V W X Y Z +B C D E F G H I J K L M N O P Q R S T U V W X Y Z A +C D E F G H I J K L M N O P Q R S T U V W X Y Z A B +D E F G H I J K L M N O P Q R S T U V W X Y Z A B C +E F G H I J K L M N O P Q R S T U V W X Y Z A B C D +F G H I J K L M N O P Q R S T U V W X Y Z A B C D E +G H I J K L M N O P Q R S T U V W X Y Z A B C D E F +H I J K L M N O P Q R S T U V W X Y Z A B C D E F G +I J K L M N O P Q R S T U V W X Y Z A B C D E F G H +J K L M N O P Q R S T U V W X Y Z A B C D E F G H I +K L M N O P Q R S T U V W X Y Z A B C D E F G H I J +L M N O P Q R S T U V W X Y Z A B C D E F G H I J K +M N O P Q R S T U V W X Y Z A B C D E F G H I J K L +N O P Q R S T U V W X Y Z A B C D E F G H I J K L M +O P Q R S T U V W X Y Z A B C D E F G H I J K L M N +P Q R S T U V W X Y Z A B C D E F G H I J K L M N O +Q R S T U V W X Y Z A B C D E F G H I J K L M N O P +R S T U V W X Y Z A B C D E F G H I J K L M N O P Q +S T U V W X Y Z A B C D E F G H I J K L M N O P Q R +T U V W X Y Z A B C D E F G H I J K L M N O P Q R S +U V W X Y Z A B C D E F G H I J K L M N O P Q R S T +V W X Y Z A B C D E F G H I J K L M N O P Q R S T U +W X Y Z A B C D E F G H I J K L M N O P Q R S T U V +X Y Z A B C D E F G H I J K L M N O P Q R S T U V W +Y Z A B C D E F G H I J K L M N O P Q R S T U V W X +Z A B C D E F G H I J K L M N O P Q R S T U V W X Y diff --git a/teme/tema-2/skel/output/.dummy b/teme/tema-2/task-3/output/dummy similarity index 100% rename from teme/tema-2/skel/output/.dummy rename to teme/tema-2/task-3/output/dummy diff --git a/teme/tema-2/task-3/ref/beaufort-0.ref b/teme/tema-2/task-3/ref/beaufort-0.ref new file mode 100644 index 00000000..d03ccb26 --- /dev/null +++ b/teme/tema-2/task-3/ref/beaufort-0.ref @@ -0,0 +1 @@ +CKMPVCPVWPIWUJOGIUAPVWRIWUUK diff --git a/teme/tema-2/task-3/ref/beaufort-1.ref b/teme/tema-2/task-3/ref/beaufort-1.ref new file mode 100644 index 00000000..1919beed --- /dev/null +++ b/teme/tema-2/task-3/ref/beaufort-1.ref @@ -0,0 +1 @@ +LAAIMZEHCRKGMMNINJWWCJ diff --git a/teme/tema-2/task-3/ref/beaufort-2.ref b/teme/tema-2/task-3/ref/beaufort-2.ref new file mode 100644 index 00000000..50dadc49 --- /dev/null +++ b/teme/tema-2/task-3/ref/beaufort-2.ref @@ -0,0 +1 @@ +NWQASVRWXLZMSESIP diff --git a/teme/tema-2/task-3/ref/beaufort-3.ref b/teme/tema-2/task-3/ref/beaufort-3.ref new file mode 100644 index 00000000..19610d74 --- /dev/null +++ b/teme/tema-2/task-3/ref/beaufort-3.ref @@ -0,0 +1 @@ +FIDABBIRJELJUBLAGAMNDUB diff --git a/teme/tema-2/task-3/ref/beaufort-4.ref b/teme/tema-2/task-3/ref/beaufort-4.ref new file mode 100644 index 00000000..ef7151d2 --- /dev/null +++ b/teme/tema-2/task-3/ref/beaufort-4.ref @@ -0,0 +1 @@ +CQHOFYPLUHKYCQHOFYPLUHKY diff --git a/teme/tema-2/task-3/ref/beaufort-5.ref b/teme/tema-2/task-3/ref/beaufort-5.ref new file mode 100644 index 00000000..39eca553 --- /dev/null +++ b/teme/tema-2/task-3/ref/beaufort-5.ref @@ -0,0 +1 @@ +QVQSJPYZPVEJGVQMRMJVNLYVJQLVEZAVEORQRRND diff --git a/teme/tema-2/task-3/ref/beaufort-6.ref b/teme/tema-2/task-3/ref/beaufort-6.ref new file mode 100644 index 00000000..872f5ffe --- /dev/null +++ b/teme/tema-2/task-3/ref/beaufort-6.ref @@ -0,0 +1 @@ +XKQGYHKPBWMOELWQDTOVEFELD diff --git a/teme/tema-2/task-3/ref/beaufort-7.ref b/teme/tema-2/task-3/ref/beaufort-7.ref new file mode 100644 index 00000000..1060bce7 --- /dev/null +++ b/teme/tema-2/task-3/ref/beaufort-7.ref @@ -0,0 +1 @@ +QPXPUESTCVKUCEVFMLTYPKFJPXVTXXGKUFAHAAKAWWRKUWFTSSJQNOJAMFIQCFMR diff --git a/teme/tema-2/task-3/ref/beaufort-8.ref b/teme/tema-2/task-3/ref/beaufort-8.ref new file mode 100644 index 00000000..a2bdd3e4 --- /dev/null +++ b/teme/tema-2/task-3/ref/beaufort-8.ref @@ -0,0 +1 @@ +DXTJJTHEVJWMGYTQKDSLGJCHDZSTTBRGQNQYERGNNQPHZYEXYZIPMOSZRQUEWPDEAGVGRCZJWXUFOXELMVDWLUPDPCUGZNFLHENX diff --git a/teme/tema-2/task-3/ref/beaufort-9.ref b/teme/tema-2/task-3/ref/beaufort-9.ref new file mode 100644 index 00000000..940d95b2 --- /dev/null +++ b/teme/tema-2/task-3/ref/beaufort-9.ref @@ -0,0 +1 @@ +MYEJHWZZUMJNEKGJDUORWTBBDPPYAELOZNCGDTMOMVRZMWADBWEHZWQHMFBGGHGFECOKNZJAYOJYMWTEIVOLUCORRRWURVMSTYCWHQBQTYWHGDDLSVEFSIHOSZDMHDWTTZQTBGLARKGXSBTTTHKILLHWPBEHNRWQDRVXTJSCISWQUJUOSZRGWNERSHWMNFGSFIPZEDXO diff --git a/teme/tema-2/task-4/Makefile b/teme/tema-2/task-4/Makefile new file mode 100644 index 00000000..ad1c6a9d --- /dev/null +++ b/teme/tema-2/task-4/Makefile @@ -0,0 +1,14 @@ +check_spiral: spiral.o checker.o + gcc -m32 -g $^ -o $@ + +spiral.o: spiral.asm + nasm -f elf $^ -o $@ + +checker.o: check_spiral.c + gcc -c -g -m32 $^ -o $@ + +clean: + rm check_spiral + rm checker.o + rm spiral.o + rm output/spiral* diff --git a/teme/tema-2/task-4/README.md b/teme/tema-2/task-4/README.md new file mode 100644 index 00000000..5b059aa3 --- /dev/null +++ b/teme/tema-2/task-4/README.md @@ -0,0 +1,38 @@ +# Task 4 - Spiral Encryption # +O criptare prin substituție (în care înlocuim caracter cu caracter literele din +textul în clar) e cu atât mai eficientă cu cât unui atacator îi e mai greu să +decodifice mesajul inițial, chiar dacă are acces la cheie și la mesajul criptat. +Pentru asta, putem alege moduri cât mai "ezoterice" de utilizare a cheii, iar +*spiral encryption* e un algoritm care face tocmai acest lucru. + +Vom pleca de la un text în clar de dimensiune N ^ 2. Cheia în acest caz va fi o +matrice de întregi de dimensiune N * N. Un caracter din textul în clar va fi criptat +adunând la codul său ASCII valoarea întreagă din cheie care îi corespunde. Spre exemplu, +dacă pentru caracterul `A` avem asociată în cheie valoarea 2, caracterul criptat va fi `C`. +De asemenea, dacă avem caracterul `Z` cu cheia asociată 1, caracterul criptat va fi `[`. + +Partea specială la acest algoritm este modul în care asociem caracterelor din textul plain +valori din cheie. Pentru asta, vom parcurge textul în clar secvențial (de la primul la +ultimul caracter), iar în același timp vom parcurge cheia în spirală, similar cu figura de mai +jos: + +![](./img/spiral.jpeg) + +Astfel, ținând cont de dimensiunea matricii care reprezintă cheia și de dimensiunea textului (mereu vor fi corelate astfel încât numărul de elemente din matrice să fie +egal cu numărul de litere din text) obținem un întregul text criptat. + +Pe exemplul de mai sus, rezultatul va fi: +``` +MUeVSVWb\i^KU^DYbbLYXRH_D +``` + +Sarcina voastră este să completați funcția `spiral()` din fișierul `spiral.asm`, +astfel încât aceasta să cripteze un text în clar cu ajutorul unei chei date, folosind algoritmul prezentat mai sus. Antetul funcției este: +``` +void spiral(int N, char *plain, int key[N][N], char *enc_string) +``` +Semnificația argumentelor este: +- **N**: dimensiunea textului în clar va fi N ^ 2, iar dimensiunea cheii va fi N * N +- **plain**: textul în clar, conținând N ^ 2 caractere +- **key**: matricea (**alocată static**) care stochează cheia +- **enc_string**: adresa de start a șirului de caractere în care va trebui să întoarceți rezultatul (textul criptat) diff --git a/teme/tema-2/task-4/check_spiral.c b/teme/tema-2/task-4/check_spiral.c new file mode 100644 index 00000000..4d0b103b --- /dev/null +++ b/teme/tema-2/task-4/check_spiral.c @@ -0,0 +1,81 @@ +#include +#include +#include + +void spiral(int N, char *plain, int *key, char *enc_string); + +void readInput(char *filename, int *N, char *plain, int *key) { + int i, j; + FILE *f = fopen(filename, "r"); + + /* read the plain text */ + fscanf(f, "%d", N); + fscanf(f, "%s", plain); + + /* read the key matrix */ + plain[*N * *N] = '\0'; + for (i = 0; i < *N; i++) { + for (j = 0; j < *N; j++) { + fscanf(f, "%d", &(key[i * *N + j])); + } + } + + fclose(f); +} + +void readRef(char *filename, char *ref_string) { + int i, j; + FILE *f = fopen(filename, "r"); + + /* read the encrypted text */ + fscanf(f, "%s", ref_string); + + fclose(f); +} + +void printOutput(char *filename, char *string) { + FILE *f = fopen(filename, "w"); + + fprintf(f, "%s", string); + + fclose(f); +} + +int main(int argc, char **argv) { + int i = 0; + int N; + float score = 0; + char plain[10001]; + char enc_string[10001]; + char ref_string[10001]; + char input_file[30], output_file[30], ref_file[30]; + int key[1000]; + + printf("--------------TASK 4--------------\n"); + for (i = 0; i <= 9; i++) { + sprintf(input_file, "input/spiral-%d.in", i); + + sprintf(ref_file, "ref/spiral-%d.ref", i); + readRef(ref_file, ref_string); + + memset(enc_string, 0, 10001); + + readInput(input_file, &N, plain, key); + + spiral(N, plain, key, enc_string); + + sprintf(output_file, "output/spiral-%d.out", i); + printOutput(output_file, enc_string); + + if (strcmp(enc_string, ref_string)) { + printf("TEST %d..................FAILED: 0.00p\n", i); + } else { + score += 3; + printf("TEST %d..................PASSED: 3.00p\n", i); + } + } + printf("TASK 4 SCORE: %.2f\n\n", score); + + + return 0; +} \ No newline at end of file diff --git a/teme/tema-2/task-4/img/spiral.jpeg b/teme/tema-2/task-4/img/spiral.jpeg new file mode 100644 index 00000000..311bba85 Binary files /dev/null and b/teme/tema-2/task-4/img/spiral.jpeg differ diff --git a/teme/tema-2/task-4/input/spiral-0.in b/teme/tema-2/task-4/input/spiral-0.in new file mode 100644 index 00000000..603aecf9 --- /dev/null +++ b/teme/tema-2/task-4/input/spiral-0.in @@ -0,0 +1,3 @@ +1 +W +7 diff --git a/teme/tema-2/task-4/input/spiral-1.in b/teme/tema-2/task-4/input/spiral-1.in new file mode 100644 index 00000000..a4cd1603 --- /dev/null +++ b/teme/tema-2/task-4/input/spiral-1.in @@ -0,0 +1,4 @@ +2 +SLIK +14 7 +7 15 diff --git a/teme/tema-2/task-4/input/spiral-2.in b/teme/tema-2/task-4/input/spiral-2.in new file mode 100644 index 00000000..00eb9cb6 --- /dev/null +++ b/teme/tema-2/task-4/input/spiral-2.in @@ -0,0 +1,5 @@ +3 +UWMBJDEBP +3 4 11 +14 15 3 +1 3 16 diff --git a/teme/tema-2/task-4/input/spiral-3.in b/teme/tema-2/task-4/input/spiral-3.in new file mode 100644 index 00000000..9515c6e4 --- /dev/null +++ b/teme/tema-2/task-4/input/spiral-3.in @@ -0,0 +1,6 @@ +4 +LCIAZPJYCVSDDGTZ +5 6 17 16 +5 2 13 14 +17 3 12 4 +13 4 0 17 diff --git a/teme/tema-2/task-4/input/spiral-4.in b/teme/tema-2/task-4/input/spiral-4.in new file mode 100644 index 00000000..098a1ef5 --- /dev/null +++ b/teme/tema-2/task-4/input/spiral-4.in @@ -0,0 +1,7 @@ +5 +AHUQEMOTMVXBNLAMZNATFBFXD +12 13 16 5 14 +12 8 20 11 9 +3 7 0 5 8 +18 2 16 18 14 +7 9 6 19 15 diff --git a/teme/tema-2/task-4/input/spiral-5.in b/teme/tema-2/task-4/input/spiral-5.in new file mode 100644 index 00000000..54eae47e --- /dev/null +++ b/teme/tema-2/task-4/input/spiral-5.in @@ -0,0 +1,8 @@ +6 +RVTFOCWKSFJMCUTVNMZSXRIXHJWUIWPCINBE +0 0 7 8 6 2 +13 17 17 3 12 9 +8 17 3 17 13 5 +13 2 2 15 7 4 +9 16 5 8 13 13 +2 7 6 0 10 16 diff --git a/teme/tema-2/task-4/input/spiral-6.in b/teme/tema-2/task-4/input/spiral-6.in new file mode 100644 index 00000000..e08514ea --- /dev/null +++ b/teme/tema-2/task-4/input/spiral-6.in @@ -0,0 +1,9 @@ +7 +FASVKTLJUMTJSFXELHMEEPNDOUXFRXOTLXJANKNOSWLYJZBGB +5 3 20 0 15 0 14 +5 15 12 1 17 7 10 +14 5 5 2 11 12 10 +9 18 10 19 4 10 13 +7 10 17 13 8 14 16 +9 0 9 9 6 9 18 +2 7 16 7 7 20 11 diff --git a/teme/tema-2/task-4/input/spiral-7.in b/teme/tema-2/task-4/input/spiral-7.in new file mode 100644 index 00000000..10db10e5 --- /dev/null +++ b/teme/tema-2/task-4/input/spiral-7.in @@ -0,0 +1,10 @@ +8 +TMDKIVJDHWXQRFNQHQHHZZGTFUWCKJQSQXGIJGDKZDQSHLBXEPRGHGZVEKTLHWYG +12 3 14 20 1 3 3 6 +20 13 17 11 16 12 2 1 +9 8 11 12 15 16 3 1 +5 13 6 20 13 14 13 19 +16 12 1 13 10 5 11 20 +0 9 12 13 1 2 12 13 +4 4 8 9 8 3 20 4 +10 6 18 18 13 0 5 11 diff --git a/teme/tema-2/task-4/input/spiral-8.in b/teme/tema-2/task-4/input/spiral-8.in new file mode 100644 index 00000000..681856ff --- /dev/null +++ b/teme/tema-2/task-4/input/spiral-8.in @@ -0,0 +1,11 @@ +9 +ZGKKCALCZOBOWSLCXCJEBKQXONYMDFKGZQOWUIVQRKBJSXMNKSVWQAPUIRPCVGFVAYDQYDIRFJSHACJZF +3 4 15 19 16 14 16 19 19 +11 6 0 13 9 5 2 8 6 +11 17 10 12 6 6 10 20 4 +11 7 16 0 1 8 1 4 13 +2 9 12 11 13 20 20 4 4 +14 20 9 20 3 18 2 7 4 +16 2 2 1 11 16 20 20 9 +19 5 14 12 7 20 7 2 4 +20 9 4 15 14 13 3 20 3 diff --git a/teme/tema-2/task-4/input/spiral-9.in b/teme/tema-2/task-4/input/spiral-9.in new file mode 100644 index 00000000..b0ebba6e --- /dev/null +++ b/teme/tema-2/task-4/input/spiral-9.in @@ -0,0 +1,12 @@ +10 +BPZRWKNKXKIBVCAMCVWEPMGBADXJBFAIFMZZTZTQQCGRBSAJFPFURQOAAHQSAQGNLJKBRIGOUJUQPPOSSVSJGZMADSKGHRFDOYJS +4 9 20 10 10 16 17 16 9 11 +10 9 1 16 14 10 20 3 7 3 +20 17 17 14 16 19 3 5 4 8 +12 3 17 1 13 16 13 19 9 0 +17 18 15 2 8 0 11 12 4 18 +2 7 11 15 13 16 7 0 4 16 +17 13 11 8 17 13 15 17 12 0 +11 19 2 19 1 19 1 1 12 16 +20 10 11 18 10 3 16 9 2 1 +19 14 2 2 9 10 10 5 4 8 diff --git a/teme/tema-2/task-4/output/dummy b/teme/tema-2/task-4/output/dummy new file mode 100644 index 00000000..421376db --- /dev/null +++ b/teme/tema-2/task-4/output/dummy @@ -0,0 +1 @@ +dummy diff --git a/teme/tema-2/task-4/ref/spiral-0.ref b/teme/tema-2/task-4/ref/spiral-0.ref new file mode 100644 index 00000000..d7d51648 --- /dev/null +++ b/teme/tema-2/task-4/ref/spiral-0.ref @@ -0,0 +1 @@ +^ diff --git a/teme/tema-2/task-4/ref/spiral-1.ref b/teme/tema-2/task-4/ref/spiral-1.ref new file mode 100644 index 00000000..982225d3 --- /dev/null +++ b/teme/tema-2/task-4/ref/spiral-1.ref @@ -0,0 +1 @@ +aSXR diff --git a/teme/tema-2/task-4/ref/spiral-2.ref b/teme/tema-2/task-4/ref/spiral-2.ref new file mode 100644 index 00000000..f582852a --- /dev/null +++ b/teme/tema-2/task-4/ref/spiral-2.ref @@ -0,0 +1 @@ +X[XEZGFP_ diff --git a/teme/tema-2/task-4/ref/spiral-3.ref b/teme/tema-2/task-4/ref/spiral-3.ref new file mode 100644 index 00000000..d87456c1 --- /dev/null +++ b/teme/tema-2/task-4/ref/spiral-3.ref @@ -0,0 +1 @@ +QIZQhT[YGcdIFT`] diff --git a/teme/tema-2/task-4/ref/spiral-4.ref b/teme/tema-2/task-4/ref/spiral-4.ref new file mode 100644 index 00000000..0e331991 --- /dev/null +++ b/teme/tema-2/task-4/ref/spiral-4.ref @@ -0,0 +1 @@ +MUeVSVWb\i^KU^DYbbLYXRH_D diff --git a/teme/tema-2/task-4/ref/spiral-5.ref b/teme/tema-2/task-4/ref/spiral-5.ref new file mode 100644 index 00000000..f5c3d8ad --- /dev/null +++ b/teme/tema-2/task-4/ref/spiral-5.ref @@ -0,0 +1 @@ +RV[NUE`PWSZWC[[XWZb`icLdUQd]NgRTL_QG diff --git a/teme/tema-2/task-4/ref/spiral-6.ref b/teme/tema-2/task-4/ref/spiral-6.ref new file mode 100644 index 00000000..b00c96c8 --- /dev/null +++ b/teme/tema-2/task-4/ref/spiral-6.ref @@ -0,0 +1 @@ +KDgVZTZT_Zd\^Z_L\OONLY\I^aYWYdYbU^SJNU`TXYW]RgSQU diff --git a/teme/tema-2/task-4/ref/spiral-7.ref b/teme/tema-2/task-4/ref/spiral-7.ref new file mode 100644 index 00000000..011ad7b6 --- /dev/null +++ b/teme/tema-2/task-4/ref/spiral-7.ref @@ -0,0 +1 @@ +`PR_JYMJIXke_JYVH^ZZ`dKTVZ`WX[\c]ZJVUSXNbMYWQXO`P\aWVL\WRWUR\dcT diff --git a/teme/tema-2/task-4/ref/spiral-8.ref b/teme/tema-2/task-4/ref/spiral-8.ref new file mode 100644 index 00000000..4d4c4c82 --- /dev/null +++ b/teme/tema-2/task-4/ref/spiral-8.ref @@ -0,0 +1 @@ +]KZ^SO\VmUF\[WUG[WMRPZUacai[FQVR`Q\`ZK^eVOI^U_aUWa[YeJWfS^VI`HZXUiOR[MUbFK[\SF^eS diff --git a/teme/tema-2/task-4/ref/spiral-9.ref b/teme/tema-2/task-4/ref/spiral-9.ref new file mode 100644 index 00000000..5378eb0e --- /dev/null +++ b/teme/tema-2/task-4/ref/spiral-9.ref @@ -0,0 +1 @@ +FYn\a[_[aVLJVUQMSW_IUWQKCFf]VQRKWYnd][d_[WJYF\ENR\H^bTYSLRd`HcJ_]X[UUNZ[U[VRcQbU^ab[Hg]NOZZTYZUFWYZ` diff --git a/teme/tema-2/task-4/spiral.asm b/teme/tema-2/task-4/spiral.asm new file mode 100644 index 00000000..2e0e7ba1 --- /dev/null +++ b/teme/tema-2/task-4/spiral.asm @@ -0,0 +1,28 @@ +%include "../include/io.mac" + +section .text + global spiral + extern printf + +; void spiral(int N, char *plain, int key[N][N], char *enc_string); +spiral: + ;; DO NOT MODIFY + push ebp + mov ebp, esp + pusha + + mov eax, [ebp + 8] ; N (size of key line) + mov ebx, [ebp + 12] ; plain (address of first element in string) + mov ecx, [ebp + 16] ; key (address of first element in matrix) + mov edx, [ebp + 20] ; enc_string (address of first element in string) + ;; DO NOT MODIFY + ;; TODO: Implement spiral encryption + ;; FREESTYLE STARTS HERE + + + ;; FREESTYLE ENDS HERE + ;; DO NOT MODIFY + popa + leave + ret + ;; DO NOT MODIFY diff --git a/teme/tema-3/bonus_64bit/task_64bit.md b/teme/tema-3/bonus_64bit/task_64bit.md index 41692aed..1cfda94b 100644 --- a/teme/tema-3/bonus_64bit/task_64bit.md +++ b/teme/tema-3/bonus_64bit/task_64bit.md @@ -15,6 +15,17 @@ Prin intercalare se intelege crearea unui nou vector, care contine, alternativ, Daca un vector este mai lung decat celalalt, elementele lui vor fi puse la finalul vectorului rezultat. +Antetul functiei este `void intertwine(int *v1, int n1, int *v2, int n2, int *v);` + +Semnificatia parametrilor: + v1 -> adresa primului vector + n1 -> lungimea primului vector + v2 -> adresa celui de-al doilea vector + n2 -> lungimea celui de-al doilea vector + v -> adresa vectorului rezultat. + +Atentie, functia nu returneaza nimic, rezultatul intercalarii se va salva in vectorul v, transims ca parametru. + ## Punctare -Acest task valoreaza 10 puncte, dintre care un punct e pentru descrierea implementarii si coding style. \ No newline at end of file +Acest task valoreaza 10 puncte, dintre care un punct e pentru descrierea implementarii si coding style. diff --git a/teme/tema-3/bonus_vectorial/task.md b/teme/tema-3/bonus_vectorial/task.md index 24ecabcb..6de2c16b 100644 --- a/teme/tema-3/bonus_vectorial/task.md +++ b/teme/tema-3/bonus_vectorial/task.md @@ -27,6 +27,14 @@ Functia are urmatorul antet: `void vectorial_ops(int s, int A[], int B[], int C[], int n, int D[])` +Semnificatia parametrilor este: + s -> un scalar + A,B,C -> vectori + n -> lungimea vectorilor + D -> vectorul rezultat + +Atentie, functia nu returneaza nimic, rezultatul calculului se salveaza in vectorul D, transmis ca parametru! + ## Observatii - Puteti folosi oricare set de instructiuni SIMD pentru realizarea acestui task, in functie de ce aveti disponibil pe masina locala. Pentru a afla ce capabilitati are procesorul vostru, folositi comanda `cat /proc/cpuinfo`.