// File: massykezzoul[P]jeu-de-la-vie/option/option.cpp
// Function: Option_tab::Option_tab()
Option_tab::Option_tab():nb(0){
	// Définition des options disponible
	Option opt1(Option::HELP,"help",'h',Option::NOPE,
		"Affiche les aides du programme");
	
	Option opt2(Option::VERSION,"version",'v',Option::NOPE,
		"Affiche la version du programme"); 
	
	Option opt3(Option::DIMENSION,"dimension",'d',Option::INT,
		"Precisé la dimension du tableau, Doit etre entre 3 et N"); 
	
	Option opt4(Option::CONFIG,"config",'c',Option::STR,
		"Donne le fichier de configuration");
	
	Option opt5(Option::PROBABILITY,"probability",'p',Option::FLOAT,
		"Spécifié le pourcentage de cellule vivante dans la population");

	Option opt6(Option::SPEED,"speed",'s',Option::INT,
		"Spécifié la vitesse de défilement des generations.(en ms)");
	/* 
	Pour l'ajout d'une option : 
	Option opt7(Option::Id*,"nom de l'option**",'raccourci**',Option::type_argument,
		"courte description");

		* L'identifiant de l'option (voir 'option.h' ligne:6)
		** Doivent ếtre Unique
	*/

	// Ajout des option définit dans un tableau d'option
	add(opt1);
	add(opt2);
	add(opt3);
	add(opt4);
	add(opt5);
	add(opt6);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x480, %rsp            # imm = 0x480
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x3f8(%rbp)
movq $0x0, (%rax)
addq $0x8, %rax
movq %rax, -0x3f0(%rbp)
movq %rax, %rcx
addq $0x320, %rcx            # imm = 0x320
movq %rcx, -0x3e8(%rbp)
movq %rax, -0x3e0(%rbp)
movq -0x3e0(%rbp), %rdi
movq %rdi, -0x400(%rbp)
callq 0x8550
jmp 0x8ad9
movq -0x3e8(%rbp), %rcx
movq -0x400(%rbp), %rax
addq $0x50, %rax
cmpq %rcx, %rax
movq %rax, -0x3e0(%rbp)
jne 0x8ac4
leaq -0x89(%rbp), %rdi
movq %rdi, -0x408(%rbp)
callq 0x3400
movq -0x408(%rbp), %rdx
leaq 0x1a3d(%rip), %rsi      # 0xa555
leaq -0x88(%rbp), %rdi
callq 0x6a60
jmp 0x8b26
leaq -0xb1(%rbp), %rdi
movq %rdi, -0x410(%rbp)
callq 0x3400
movq -0x410(%rbp), %rdx
leaq 0x1a13(%rip), %rsi      # 0xa55a
leaq -0xb0(%rbp), %rdi
callq 0x6a60
jmp 0x8b55
leaq -0x68(%rbp), %rdi
xorl %esi, %esi
leaq -0x88(%rbp), %rdx
movl $0x68, %ecx
movl $0x4, %r8d
leaq -0xb0(%rbp), %r9
callq 0x8580
jmp 0x8b7b
leaq -0xb0(%rbp), %rdi
callq 0x3160
leaq -0xb1(%rbp), %rdi
callq 0x3290
leaq -0x88(%rbp), %rdi
callq 0x3160
leaq -0x89(%rbp), %rdi
callq 0x3290
leaq -0x129(%rbp), %rdi
movq %rdi, -0x418(%rbp)
callq 0x3400
movq -0x418(%rbp), %rdx
leaq 0x19ad(%rip), %rsi      # 0xa579
leaq -0x128(%rbp), %rdi
callq 0x6a60
jmp 0x8bda
leaq -0x151(%rbp), %rdi
movq %rdi, -0x420(%rbp)
callq 0x3400
movq -0x420(%rbp), %rdx
leaq 0x1986(%rip), %rsi      # 0xa581
leaq -0x150(%rbp), %rdi
callq 0x6a60
jmp 0x8c09
leaq -0x108(%rbp), %rdi
movl $0x1, %esi
leaq -0x128(%rbp), %rdx
movl $0x76, %ecx
movl $0x4, %r8d
leaq -0x150(%rbp), %r9
callq 0x8580
jmp 0x8c35
leaq -0x150(%rbp), %rdi
callq 0x3160
leaq -0x151(%rbp), %rdi
callq 0x3290
leaq -0x128(%rbp), %rdi
callq 0x3160
leaq -0x129(%rbp), %rdi
callq 0x3290
leaq -0x1c9(%rbp), %rdi
movq %rdi, -0x428(%rbp)
callq 0x3400
movq -0x428(%rbp), %rdx
leaq 0x191b(%rip), %rsi      # 0xa5a1
leaq -0x1c8(%rbp), %rdi
callq 0x6a60
jmp 0x8c94
leaq -0x1f1(%rbp), %rdi
movq %rdi, -0x430(%rbp)
callq 0x3400
movq -0x430(%rbp), %rdx
leaq 0x18f6(%rip), %rsi      # 0xa5ab
leaq -0x1f0(%rbp), %rdi
callq 0x6a60
jmp 0x8cc3
leaq -0x1a8(%rbp), %rdi
movl $0x2, %esi
leaq -0x1c8(%rbp), %rdx
movl $0x64, %ecx
xorl %r8d, %r8d
leaq -0x1f0(%rbp), %r9
callq 0x8580
jmp 0x8cec
leaq -0x1f0(%rbp), %rdi
callq 0x3160
leaq -0x1f1(%rbp), %rdi
callq 0x3290
leaq -0x1c8(%rbp), %rdi
callq 0x3160
leaq -0x1c9(%rbp), %rdi
callq 0x3290
leaq -0x269(%rbp), %rdi
movq %rdi, -0x438(%rbp)
callq 0x3400
movq -0x438(%rbp), %rdx
leaq 0x18a7(%rip), %rsi      # 0xa5e4
leaq -0x268(%rbp), %rdi
callq 0x6a60
jmp 0x8d4b
leaq -0x291(%rbp), %rdi
movq %rdi, -0x440(%rbp)
callq 0x3400
movq -0x440(%rbp), %rdx
leaq 0x187f(%rip), %rsi      # 0xa5eb
leaq -0x290(%rbp), %rdi
callq 0x6a60
jmp 0x8d7a
leaq -0x248(%rbp), %rdi
leaq -0x268(%rbp), %rdx
movl $0x63, %ecx
movl $0x3, %r8d
leaq -0x290(%rbp), %r9
movl %r8d, %esi
callq 0x8580
jmp 0x8da4
leaq -0x290(%rbp), %rdi
callq 0x3160
leaq -0x291(%rbp), %rdi
callq 0x3290
leaq -0x268(%rbp), %rdi
callq 0x3160
leaq -0x269(%rbp), %rdi
callq 0x3290
leaq -0x309(%rbp), %rdi
movq %rdi, -0x448(%rbp)
callq 0x3400
movq -0x448(%rbp), %rdx
leaq 0x1818(%rip), %rsi      # 0xa60d
leaq -0x308(%rbp), %rdi
callq 0x6a60
jmp 0x8e03
leaq -0x331(%rbp), %rdi
movq %rdi, -0x450(%rbp)
callq 0x3400
movq -0x450(%rbp), %rdx
leaq 0x17f5(%rip), %rsi      # 0xa619
leaq -0x330(%rbp), %rdi
callq 0x6a60
jmp 0x8e32
leaq -0x2e8(%rbp), %rdi
movl $0x4, %esi
leaq -0x308(%rbp), %rdx
movl $0x70, %ecx
movl $0x1, %r8d
leaq -0x330(%rbp), %r9
callq 0x8580
jmp 0x8e5e
leaq -0x330(%rbp), %rdi
callq 0x3160
leaq -0x331(%rbp), %rdi
callq 0x3290
leaq -0x308(%rbp), %rdi
callq 0x3160
leaq -0x309(%rbp), %rdi
callq 0x3290
leaq -0x3a9(%rbp), %rdi
movq %rdi, -0x458(%rbp)
callq 0x3400
movq -0x458(%rbp), %rdx
leaq 0x17aa(%rip), %rsi      # 0xa659
leaq -0x3a8(%rbp), %rdi
callq 0x6a60
jmp 0x8ebd
leaq -0x3d1(%rbp), %rdi
movq %rdi, -0x460(%rbp)
callq 0x3400
movq -0x460(%rbp), %rdx
leaq 0x1781(%rip), %rsi      # 0xa65f
leaq -0x3d0(%rbp), %rdi
callq 0x6a60
jmp 0x8eec
leaq -0x388(%rbp), %rdi
movl $0x5, %esi
leaq -0x3a8(%rbp), %rdx
movl $0x73, %ecx
xorl %r8d, %r8d
leaq -0x3d0(%rbp), %r9
callq 0x8580
jmp 0x8f15
leaq -0x3d0(%rbp), %rdi
callq 0x3160
leaq -0x3d1(%rbp), %rdi
callq 0x3290
leaq -0x3a8(%rbp), %rdi
callq 0x3160
leaq -0x3a9(%rbp), %rdi
callq 0x3290
movq -0x3f8(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0x9340
jmp 0x8f57
movq -0x3f8(%rbp), %rdi
leaq -0x108(%rbp), %rsi
callq 0x9340
jmp 0x8f6c
movq -0x3f8(%rbp), %rdi
leaq -0x1a8(%rbp), %rsi
callq 0x9340
jmp 0x8f81
movq -0x3f8(%rbp), %rdi
leaq -0x248(%rbp), %rsi
callq 0x9340
jmp 0x8f96
movq -0x3f8(%rbp), %rdi
leaq -0x2e8(%rbp), %rsi
callq 0x9340
jmp 0x8fab
movq -0x3f8(%rbp), %rdi
leaq -0x388(%rbp), %rsi
callq 0x9340
jmp 0x8fc0
leaq -0x388(%rbp), %rdi
callq 0x6b90
leaq -0x2e8(%rbp), %rdi
callq 0x6b90
leaq -0x248(%rbp), %rdi
callq 0x6b90
leaq -0x1a8(%rbp), %rdi
callq 0x6b90
leaq -0x108(%rbp), %rdi
callq 0x6b90
leaq -0x68(%rbp), %rdi
callq 0x6b90
addq $0x480, %rsp            # imm = 0x480
popq %rbp
retq
movq -0x3f0(%rbp), %rcx
movq %rax, %rsi
movq -0x400(%rbp), %rax
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
cmpq %rax, %rcx
movq %rax, -0x468(%rbp)
je 0x9063
movq -0x468(%rbp), %rdi
addq $-0x50, %rdi
movq %rdi, -0x470(%rbp)
callq 0x6b90
movq -0x3f0(%rbp), %rcx
movq -0x470(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x468(%rbp)
jne 0x9032
jmp 0x9328
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
jmp 0x90b4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
jmp 0x909c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
leaq -0xb0(%rbp), %rdi
callq 0x3160
leaq -0xb1(%rbp), %rdi
callq 0x3290
leaq -0x88(%rbp), %rdi
callq 0x3160
leaq -0x89(%rbp), %rdi
callq 0x3290
jmp 0x92e1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
jmp 0x9111
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
jmp 0x90f9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
leaq -0x150(%rbp), %rdi
callq 0x3160
leaq -0x151(%rbp), %rdi
callq 0x3290
leaq -0x128(%rbp), %rdi
callq 0x3160
leaq -0x129(%rbp), %rdi
callq 0x3290
jmp 0x92d8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
jmp 0x916e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
jmp 0x9156
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
leaq -0x1f0(%rbp), %rdi
callq 0x3160
leaq -0x1f1(%rbp), %rdi
callq 0x3290
leaq -0x1c8(%rbp), %rdi
callq 0x3160
leaq -0x1c9(%rbp), %rdi
callq 0x3290
jmp 0x92cc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
jmp 0x91cb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
jmp 0x91b3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
leaq -0x290(%rbp), %rdi
callq 0x3160
leaq -0x291(%rbp), %rdi
callq 0x3290
leaq -0x268(%rbp), %rdi
callq 0x3160
leaq -0x269(%rbp), %rdi
callq 0x3290
jmp 0x92c0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
jmp 0x9228
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
jmp 0x9210
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
leaq -0x330(%rbp), %rdi
callq 0x3160
leaq -0x331(%rbp), %rdi
callq 0x3290
leaq -0x308(%rbp), %rdi
callq 0x3160
leaq -0x309(%rbp), %rdi
callq 0x3290
jmp 0x92b4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
jmp 0x9282
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
jmp 0x926a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
leaq -0x3d0(%rbp), %rdi
callq 0x3160
leaq -0x3d1(%rbp), %rdi
callq 0x3290
leaq -0x3a8(%rbp), %rdi
callq 0x3160
leaq -0x3a9(%rbp), %rdi
callq 0x3290
jmp 0x92a8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
leaq -0x388(%rbp), %rdi
callq 0x6b90
leaq -0x2e8(%rbp), %rdi
callq 0x6b90
leaq -0x248(%rbp), %rdi
callq 0x6b90
leaq -0x1a8(%rbp), %rdi
callq 0x6b90
leaq -0x108(%rbp), %rdi
callq 0x6b90
leaq -0x68(%rbp), %rdi
callq 0x6b90
movq -0x3f0(%rbp), %rax
addq $0x320, %rax            # imm = 0x320
movq %rax, -0x478(%rbp)
movq -0x478(%rbp), %rdi
addq $-0x50, %rdi
movq %rdi, -0x480(%rbp)
callq 0x6b90
movq -0x3f0(%rbp), %rcx
movq -0x480(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x478(%rbp)
jne 0x92f5
jmp 0x9328
movq -0x10(%rbp), %rdi
callq 0x33f0
nopw %cs:(%rax,%rax)