Commit a69a94a7be2bbd51fb9c7aaf1b69b39db37babe0
Ajout de gestion de requêtes
Showing
32 changed files
with
1348 additions
and
724 deletions
Show diff stats
Sioux/client.c renamed to Network/client.c
Network/sender.c
... | ... | @@ -20,8 +20,8 @@ int initializeSocketUDP(char* service) |
20 | 20 | precisions.ai_socktype = SOCK_DGRAM; |
21 | 21 | //precisions.ai_flags = AI_PASSIVE; |
22 | 22 | |
23 | - | |
24 | - if(getaddrinfo("192.168.0.14", service, &precisions, &origine)<0) { fprintf(stderr, "Erreur getaddrinfo\n"); return(-1); } | |
23 | +/*"172.26.145.35"*/ | |
24 | + if(getaddrinfo(NULL, service, &precisions, &origine)<0) { fprintf(stderr, "Erreur getaddrinfo\n"); return(-1); } | |
25 | 25 | |
26 | 26 | int n=0; |
27 | 27 | |
... | ... | @@ -46,7 +46,10 @@ int initializeSocketUDP(char* service) |
46 | 46 | |
47 | 47 | int val=1; |
48 | 48 | |
49 | - if(setsockopt(sock_id, SOL_SOCKET, SO_REUSEADDR|SO_BROADCAST, &val, sizeof(val))<0) { fprintf(stderr, "Erreur setsockopt\n"); return(-1); } | |
49 | + if(setsockopt(sock_id, SOL_SOCKET, SO_BROADCAST, &val, sizeof(val))<0) { fprintf(stderr, "Erreur setsockopt\n"); return(-1); } | |
50 | + | |
51 | + if(setsockopt(sock_id, SOL_SOCKET, SO_REUSEADDR, &val, sizeof(val))<0) { fprintf(stderr, "Erreur setsockopt\n"); return(-1); } | |
52 | + | |
50 | 53 | |
51 | 54 | if(bind(sock_id, resultat->ai_addr, resultat->ai_addrlen)) { fprintf(stderr, "Erreur bind\n"); return(-1); } |
52 | 55 | |
... | ... | @@ -60,7 +63,7 @@ int sendUDPBroadcast(char* message, int port) |
60 | 63 | { |
61 | 64 | static struct sockaddr_in addrUDP; |
62 | 65 | addrUDP.sin_family=AF_INET; |
63 | - addrUDP.sin_port=htons(port); | |
66 | + addrUDP.sin_port=htons(port); // Converti au format réseau | |
64 | 67 | |
65 | 68 | struct in_addr tmpadd={0xffffffff}; |
66 | 69 | addrUDP.sin_addr=tmpadd; |
... | ... | @@ -110,3 +113,4 @@ int main(void) |
110 | 113 | } |
111 | 114 | |
112 | 115 | */ |
116 | + | ... | ... |
Network/sender.o deleted
No preview for this file type
Network/sniffer.c
... | ... | @@ -5,62 +5,42 @@ |
5 | 5 | #include <netinet/in.h> |
6 | 6 | #include <arpa/inet.h> |
7 | 7 | |
8 | -#define SZ_DEV 10 | |
8 | +#define SZ_DEV_PCAP 10 | |
9 | + | |
9 | 10 | |
10 | -/* | |
11 | 11 | // Fonction lors de la detection d'un paquet |
12 | -void arp_detect(u_char *args, const struct pcap_pkthdr *header, const u_char *packet) | |
12 | +void arp_detect(/*u_char *args, const struct pcap_pkthdr *header, const u_char *packet*/) | |
13 | 13 | { |
14 | 14 | static int num=0, loop=1; |
15 | 15 | num++; |
16 | 16 | printf("Voici le paquet arp numéro : %d\n", num); |
17 | 17 | |
18 | - if(num==10) { loop++; num=0; printf("10 paquets ARP ont été reçus !\n");} | |
18 | + if(num==10) { loop++; num=0; printf("10 paquets ARP ont été reçus pour la boucle %d !\n", loop);} | |
19 | 19 | } |
20 | 20 | |
21 | -*/ | |
22 | -/* | |
23 | - | |
24 | -int main(int argc, char *argv[]) | |
25 | -{ | |
26 | - int cnt=10; // Correspond au nombre de paquets arp | |
27 | - | |
21 | +int initialize_sniffer(pcap_t** dev_handle, char dev[]) | |
22 | +{ | |
28 | 23 | bpf_u_int32 mask; // Masque de l'adresse réseau de l'interface à sniffer |
29 | 24 | bpf_u_int32 net; // Adresse réseau de l'interface à sniffer |
30 | 25 | |
31 | 26 | char ip[18]="null"; |
32 | 27 | |
33 | - char dev[SZ_DEV]; // Nom de l'interface à sniffer | |
34 | - pcap_t *dev_handle; // Handle vers le device (correspondant à l'interface à sniffer) | |
35 | - | |
36 | 28 | struct bpf_program filter; // Filtre défini par une structure |
37 | 29 | char buf_err[PCAP_ERRBUF_SIZE]; // Buffer qui stockera les erreurs rencontrées le cas échéant |
38 | - | |
39 | - int dev_donne=0; // Vérifie si le device a été donné | |
40 | 30 | int status; |
41 | 31 | |
42 | - for(int i=1; i<argc-1; i++) | |
43 | - { | |
44 | - if(strcmp(argv[i], "-dev")==0 || strcmp(argv[i], "-d")==0) | |
45 | - { | |
46 | - strcpy(dev, argv[i+1]); | |
47 | - dev_donne=1; | |
48 | - } | |
49 | - } | |
50 | 32 | |
51 | 33 | |
52 | - if(!dev_donne) | |
53 | - strcpy(dev, "eth0"); | |
54 | 34 | |
55 | - printf("Device: %s\n", dev); | |
56 | - | |
57 | - | |
58 | 35 | // Permet d'obtenir l'adresse ip de l'interface demandée*/ |
59 | 36 | /* pcap permet de lister les interfaces et obtenir les adresses ip de ces dernières |
60 | 37 | * On utilise la fonction pcap_findalldevs |
61 | - *//* | |
38 | + */ | |
39 | + | |
40 | + | |
62 | 41 | |
63 | 42 | pcap_if_t* interfaces; |
43 | + | |
64 | 44 | if(pcap_findalldevs(&interfaces, buf_err)!=0) { printf("%s\n", buf_err); return(EXIT_FAILURE); } |
65 | 45 | |
66 | 46 | for(pcap_if_t* i=interfaces; i!=NULL; i=i->next) |
... | ... | @@ -82,7 +62,7 @@ int main(int argc, char *argv[]) |
82 | 62 | |
83 | 63 | |
84 | 64 | // Création du handle du device |
85 | - if ((dev_handle=pcap_create(dev, buf_err))==NULL) | |
65 | + if ((*dev_handle=pcap_create(dev, buf_err))==NULL) | |
86 | 66 | { |
87 | 67 | //printf("%s\n", buf_err); |
88 | 68 | fprintf(stderr, "Le handle n'a pas pu être créé sur le device %s. Vérifiez s'il est bien existant.\n", dev); |
... | ... | @@ -91,7 +71,7 @@ int main(int argc, char *argv[]) |
91 | 71 | |
92 | 72 | |
93 | 73 | // Activation du device |
94 | - if ((status=pcap_activate(dev_handle))!=0) | |
74 | + if ((status=pcap_activate(*dev_handle))!=0) | |
95 | 75 | { |
96 | 76 | fprintf(stderr, "Le sniffer ne peut être activé sur le device %s\n Code d'erreur : %d \n", dev, status); |
97 | 77 | |
... | ... | @@ -111,6 +91,7 @@ int main(int argc, char *argv[]) |
111 | 91 | printf("Masque : %d.%d.%d.%d \n", mask & 0xff, (mask >> 8) & 0xff, (mask >> 16) & 0xff, (mask >> 24) & 0xff); |
112 | 92 | |
113 | 93 | |
94 | + // Conception du filtre (on vérifie si on a la bonne ip) | |
114 | 95 | char filter_str[50]="arp"; |
115 | 96 | if( strcmp(ip,"null")!=0 ) |
116 | 97 | { |
... | ... | @@ -120,26 +101,74 @@ int main(int argc, char *argv[]) |
120 | 101 | |
121 | 102 | |
122 | 103 | // "Analyse" du filtre de paquets de type arp |
123 | - if(pcap_compile(dev_handle, &filter, filter_str, 0, net)==-1) | |
104 | + if(pcap_compile(*dev_handle, &filter, filter_str, 0, net)==-1) | |
124 | 105 | { |
125 | - fprintf(stderr, "Le filtre n'a pas pu être analysé : %s\n", pcap_geterr(dev_handle)); | |
106 | + fprintf(stderr, "Le filtre n'a pas pu être analysé : %s\n", pcap_geterr(*dev_handle)); | |
126 | 107 | return(EXIT_FAILURE); |
127 | 108 | } |
128 | 109 | |
129 | 110 | |
130 | 111 | // Installation du filtre de paquets |
131 | - if(pcap_setfilter(dev_handle, &filter) == -1) | |
112 | + if(pcap_setfilter(*dev_handle, &filter) == -1) | |
132 | 113 | { |
133 | - fprintf(stderr, "Impossible d'installer le filtre : %s\n", pcap_geterr(dev_handle)); | |
114 | + fprintf(stderr, "Impossible d'installer le filtre : %s\n", pcap_geterr(*dev_handle)); | |
134 | 115 | return(EXIT_FAILURE); |
135 | 116 | } |
136 | 117 | |
118 | + return 0; | |
119 | + | |
120 | + | |
121 | +} | |
122 | + | |
123 | +int ecouteReseau(int argc, char* argv[]) | |
124 | +{ | |
125 | + int cnt=10; // Correspond au nombre de paquets arp | |
137 | 126 | |
138 | - struct pcap_pkthdr packet_header; // Header du paquet comportant des informations sur la réception du paquet (temps de reception etc...) | |
139 | - const u_char *packet; // Contenant du paquet | |
127 | + char dev[SZ_DEV_PCAP]; // Nom de l'interface à sniffer | |
128 | + pcap_t *dev_handle; // Handle vers le device (correspondant à l'interface à sniffer) | |
140 | 129 | |
141 | - pcap_loop(dev_handle, 10, arp_detect, NULL); // Boucle jusque 10 paquets arp reçus | |
142 | - | |
130 | + | |
131 | + | |
132 | + // Vérifie si le device a été donné | |
133 | + // ------------------------ | |
134 | + | |
135 | + int dev_donne=0; | |
136 | + | |
137 | + for(int i=1; i<argc-1; i++) | |
138 | + { | |
139 | + if(strcmp(argv[i], "-dev")==0 || strcmp(argv[i], "-d")==0) | |
140 | + { | |
141 | + strcpy(dev, argv[i+1]); | |
142 | + dev_donne=1; | |
143 | + } | |
144 | + } | |
145 | + | |
146 | + if(!dev_donne) | |
147 | + strcpy(dev, "eth0"); | |
148 | + | |
149 | + printf("Device: %s\n", dev); | |
150 | + | |
151 | + // ------------------------ | |
152 | + | |
153 | + | |
154 | + | |
155 | + | |
156 | + // struct pcap_pkthdr packet_header; // Header du paquet comportant des informations sur la réception du paquet (temps de reception etc...) | |
157 | + // const u_char *packet; // Contenant du paquet | |
158 | + | |
159 | + if(initialize_sniffer(&dev_handle, dev)!=0) return(-1); | |
160 | + | |
161 | + pcap_loop(dev_handle, cnt, arp_detect, NULL); // Boucle jusque 10 paquets arp reçus | |
162 | + | |
163 | + return 0; | |
164 | +} | |
165 | + | |
166 | +/* | |
167 | + | |
168 | +int main(int argc, char *argv[]) | |
169 | +{ | |
170 | + ecouteReseau(argc, argv); | |
171 | + | |
143 | 172 | return(0); |
144 | 173 | } |
145 | 174 | ... | ... |
Network/sniffer.o deleted
No preview for this file type
... | ... | @@ -65,6 +65,16 @@ int boucleServeur(int socket, void(* fctConnex)(int)) |
65 | 65 | { |
66 | 66 | int sock_dial; |
67 | 67 | |
68 | + //On utilisera la structure Arg_Thread (définie dans libthrd.h) qui comprend la socket de dialogue et le tableau pointeurs vers une structure donnant les infos des interfaces. | |
69 | + //En effet, cette structure d'informations d'interface permet d'être utilisée comme une base de données, comprenant l'adresse de l'interface et son statut | |
70 | + //Les threads partageant la mémoire, ces infos seront partagées. | |
71 | + Arg_Thread arg_sock_interf; | |
72 | + | |
73 | + //On initialise les interfaces | |
74 | + for(int i=0; i<20; i++) | |
75 | + arg_sock_interf.interfaces[i]=NULL; | |
76 | + | |
77 | + | |
68 | 78 | printf("------- Début boucle serveur TCP -------\n\n"); |
69 | 79 | |
70 | 80 | while(1) |
... | ... | @@ -73,7 +83,9 @@ int boucleServeur(int socket, void(* fctConnex)(int)) |
73 | 83 | if((sock_dial=accept(socket, NULL, NULL)) < 0){ fprintf(stderr, "Error accept dialogue\n"); return -1; } |
74 | 84 | printf("Dialogue ACCEPTED\n"); |
75 | 85 | |
76 | - lanceThread((void*)fctConnex, (void*)&sock_dial, sizeof(sock_dial)); | |
86 | + arg_sock_interf.socket=sock_dial; | |
87 | + | |
88 | + lanceThread((void*)fctConnex, (void*)&arg_sock_interf, sizeof(arg_sock_interf)); | |
77 | 89 | } |
78 | 90 | } |
79 | 91 | ... | ... |
Network/tcpserver.o deleted
No preview for this file type
... | ... | @@ -3,8 +3,133 @@ |
3 | 3 | <head> |
4 | 4 | <meta charset ="utf-8"> |
5 | 5 | <title> Interface Tangible </title> |
6 | +<!-- | |
7 | + <style> | |
8 | + | |
9 | + body | |
10 | + { | |
11 | + font-family: 'lato', sans-serif; | |
12 | + } | |
13 | + | |
14 | + | |
15 | + .container | |
16 | + { | |
17 | + max-width: 1000px; | |
18 | + margin-left: auto; | |
19 | + margin-right: auto; | |
20 | + padding-left: 10px; | |
21 | + padding-right: 10px; | |
22 | + } | |
23 | + | |
24 | + h2 | |
25 | + { | |
26 | + font-size: 26px; | |
27 | + margin: 20px 0; | |
28 | + text-align: center; | |
29 | + } | |
30 | + | |
31 | + | |
32 | + li | |
33 | + { | |
34 | + border-radius: 3px; | |
35 | + padding: 25px 30px; | |
36 | + display: flex; | |
37 | + justify-content: space-between; | |
38 | + margin-bottom: 25px; | |
39 | + } | |
40 | + | |
41 | + .table-entete | |
42 | + { | |
43 | + background-color: #95A5A6; | |
44 | + font-size: 14px; | |
45 | + text-transform: uppercase; | |
46 | + letter-spacing: 0.03em; | |
47 | + } | |
48 | + | |
49 | + .table-ligne | |
50 | + { | |
51 | + background-color: #ffffff; | |
52 | + box-shadow: 0px 0px 9px 0px rgba(0,0,0,0.1); | |
53 | + } | |
54 | + | |
55 | + .nom | |
56 | + { | |
57 | + flex-basis: 40%; | |
58 | + } | |
59 | + | |
60 | + .etat | |
61 | + { | |
62 | + flex-basis: 60%; | |
63 | + } | |
64 | + | |
65 | + @media all and (max-width: 767px) | |
66 | + { | |
67 | + .table-entete | |
68 | + { | |
69 | + display: none; | |
70 | + } | |
71 | + | |
72 | + .table-ligne | |
73 | + { | |
74 | + | |
75 | + } | |
76 | + | |
77 | + li | |
78 | + { | |
79 | + display: block; | |
80 | + } | |
81 | + | |
82 | + .col | |
83 | + { | |
84 | + flex-basis: 100%; | |
85 | + } | |
86 | + | |
87 | + .col | |
88 | + { | |
89 | + display: flex; | |
90 | + padding: 10px 0; | |
91 | + &:before | |
92 | + { | |
93 | + color: #6C7A89; | |
94 | + padding-right: 10px; | |
95 | + content: attr(data-label); | |
96 | + flex-basis: 50%; | |
97 | + text-align: right; | |
98 | + } | |
99 | + } | |
100 | + } | |
101 | + | |
102 | + | |
103 | + | |
104 | + </style> | |
105 | + --> | |
6 | 106 | </meta> |
7 | 107 | </head> |
8 | 108 | <body> |
109 | + <div class="container"> | |
110 | + <h2>Interfaces Tangibles</h2> | |
111 | + <ul class="tableau"> | |
112 | + <li class="table-entete"> | |
113 | + <div class="col nom">Interfaces</div> | |
114 | + <div class="col etat">Etat</div> | |
115 | + </li> | |
116 | + <li class="table-ligne"> | |
117 | + <div class="col nom" data-label="Nom">42235</div> | |
118 | + <div class="col etat" data-label="Customer Name">John Doe</div> | |
119 | + </li> | |
120 | + <li class="table-ligne"> | |
121 | + <div class="col nom" data-label="Nom">42442</div> | |
122 | + <div class="col etat" data-label="Customer Name">Jennifer Smith</div> | |
123 | + </li> | |
124 | + <li class="table-ligne"> | |
125 | + <div class="col nom" data-label="Nom">42257</div> | |
126 | + <div class="col etat" data-label="Customer Name">John Smith</div> | |
127 | + </li> | |
128 | + <li class="table-ligne"> | |
129 | + <div class="col nom" data-label="Nom">42311</div> | |
130 | + <div class="col etat" data-label="Customer Name">John Carpenter</div> | |
131 | + </li> | |
132 | + </ul> | |
133 | + </div> | |
9 | 134 | </body> |
10 | 135 | </html> | ... | ... |
... | ... | @@ -0,0 +1,102 @@ |
1 | + | |
2 | + | |
3 | +body | |
4 | +{ | |
5 | + font-family: 'lato', sans-serif; | |
6 | +} | |
7 | + | |
8 | + | |
9 | +.container | |
10 | +{ | |
11 | + max-width: 1000px; | |
12 | + margin-left: auto; | |
13 | + margin-right: auto; | |
14 | + padding-left: 10px; | |
15 | + padding-right: 10px; | |
16 | +} | |
17 | + | |
18 | +h2 | |
19 | +{ | |
20 | + font-size: 26px; | |
21 | + margin: 20px 0; | |
22 | + text-align: center; | |
23 | +} | |
24 | + | |
25 | + | |
26 | +li | |
27 | +{ | |
28 | + border-radius: 3px; | |
29 | + padding: 25px 30px; | |
30 | + display: flex; | |
31 | + justify-content: space-between; | |
32 | + margin-bottom: 25px; | |
33 | +} | |
34 | + | |
35 | +.table-entete | |
36 | +{ | |
37 | + background-color: #95A5A6; | |
38 | + font-size: 14px; | |
39 | + text-transform: uppercase; | |
40 | + letter-spacing: 0.03em; | |
41 | +} | |
42 | + | |
43 | +.table-ligne | |
44 | +{ | |
45 | + background-color: #ffffff; | |
46 | + box-shadow: 0px 0px 9px 0px rgba(0,0,0,0.1); | |
47 | +} | |
48 | + | |
49 | +.nom | |
50 | +{ | |
51 | + flex-basis: 40%; | |
52 | +} | |
53 | + | |
54 | +.etat | |
55 | + { | |
56 | + flex-basis: 60%; | |
57 | +} | |
58 | + | |
59 | +.no_inter | |
60 | +{ | |
61 | + text-align: center; | |
62 | + flex-basis: 100%; | |
63 | +} | |
64 | + | |
65 | +@media all and (max-width: 767px) | |
66 | +{ | |
67 | + .table-entete | |
68 | + { | |
69 | + display: none; | |
70 | + } | |
71 | + | |
72 | + .table-ligne | |
73 | + { | |
74 | + | |
75 | + } | |
76 | + | |
77 | + li | |
78 | + { | |
79 | + display: block; | |
80 | + } | |
81 | + | |
82 | + .col | |
83 | + { | |
84 | + flex-basis: 100%; | |
85 | + } | |
86 | + | |
87 | + .col | |
88 | + { | |
89 | + display: flex; | |
90 | + padding: 10px 0; | |
91 | + &:before | |
92 | + { | |
93 | + color: #6C7A89; | |
94 | + padding-right: 10px; | |
95 | + content: attr(data-label); | |
96 | + flex-basis: 50%; | |
97 | + text-align: right; | |
98 | + } | |
99 | + } | |
100 | +} | |
101 | + | |
102 | + | ... | ... |
Sioux/client deleted
No preview for this file type
... | ... | @@ -0,0 +1,117 @@ |
1 | +#include "http.h" | |
2 | + | |
3 | + | |
4 | +void freePage(struct PageWeb** page) | |
5 | +{ | |
6 | + if(*page!=NULL) | |
7 | + { | |
8 | + if((*page)->html_contents!=NULL) free((*page)->html_contents); | |
9 | + free(*page); | |
10 | + } | |
11 | +} | |
12 | + | |
13 | + | |
14 | + | |
15 | +void getWeb(char* pageName, struct PageWeb** page) | |
16 | +{ | |
17 | + *page=malloc(sizeof(struct PageWeb)); | |
18 | + | |
19 | + FILE* pageFile=fopen(pageName, "r+"); | |
20 | + | |
21 | + if(pageFile!=NULL) | |
22 | + { | |
23 | + fseek(pageFile, 0L, SEEK_END); | |
24 | + long nbr_char=ftell(pageFile); | |
25 | + fseek(pageFile, 0L, SEEK_SET); | |
26 | + | |
27 | + | |
28 | + (*page)->html_contents=malloc(nbr_char*sizeof(char)); | |
29 | + fread(((*page)->html_contents),1,nbr_char,pageFile); | |
30 | + | |
31 | + fclose(pageFile); | |
32 | + } | |
33 | + else | |
34 | + { | |
35 | + char erreur[]="<h1> 404 PAGE NOT FOUND </h1>\r\n\r\n La page que vous cherchez n'a pas été trouvée, sans doute parce que vous êtes nul."; | |
36 | + (*page)->html_contents=malloc(strlen(erreur)*sizeof(char)); | |
37 | + strcpy((*page)->html_contents, erreur); | |
38 | + } | |
39 | + | |
40 | + (*page)->size=strlen(((*page)->html_contents)); | |
41 | + | |
42 | + | |
43 | +} | |
44 | + | |
45 | +void createPage(struct PageWeb** page, struct interface_info* interfaces[20]) | |
46 | +{ | |
47 | + *page=malloc(sizeof(struct PageWeb)); | |
48 | + | |
49 | + (*page)->html_contents=malloc(BUFF_SIZE*sizeof(char)); | |
50 | + | |
51 | + strcpy((*page)->html_contents,""); | |
52 | + | |
53 | + //Header de la page | |
54 | + strcat((*page)->html_contents,"<!doctype html>\r\n<html>\r\n<head>\r\n<meta charset =\"utf-8\">\r\n<title> Interfaces Tangibles </title>\r\n</meta>"); | |
55 | + | |
56 | + // Intégration de la fiche de style | |
57 | + FILE* css_file=fopen("../Sioux/Tableau.css", "r+"); | |
58 | + | |
59 | + if(css_file!=NULL) | |
60 | + { | |
61 | + char style_str[BUFF_SIZE]; | |
62 | + | |
63 | + strcat((*page)->html_contents,"<style>"); | |
64 | + | |
65 | + fseek(css_file, 0L, SEEK_END); | |
66 | + long nbr_char=ftell(css_file); | |
67 | + fseek(css_file, 0L, SEEK_SET); | |
68 | + | |
69 | + fread(style_str,1,nbr_char,css_file); | |
70 | + | |
71 | + strcat((*page)->html_contents,style_str); | |
72 | + | |
73 | + strcat((*page)->html_contents,"</style>"); | |
74 | + fclose(css_file); | |
75 | + | |
76 | + } | |
77 | + | |
78 | + strcat((*page)->html_contents,"</head><body><div class=\"container\"><h2>Interfaces Tangibles</h2><ul class=\"tableau\">"); | |
79 | + strcat((*page)->html_contents,"<li class=\"table-entete\"><div class=\"col nom\">Interfaces</div><div class=\"col etat\">Etat</div></li>"); | |
80 | + | |
81 | + int nbr_interfaces=0; | |
82 | + | |
83 | + while(interfaces[nbr_interfaces]!=NULL) | |
84 | + nbr_interfaces++; | |
85 | + | |
86 | + if(nbr_interfaces==0) | |
87 | + strcat((*page)->html_contents,"<li class=\"table-ligne\">\n<div class=\"no_inter\" data-label=\"NoInter\"> Aucune interface </div>"); | |
88 | + else | |
89 | + { | |
90 | + for(int i=0; i<nbr_interfaces; i++) | |
91 | + { | |
92 | + if(interfaces[i]->status >= 0) | |
93 | + { | |
94 | + strcat((*page)->html_contents,"<li class=\"table-ligne\">\n<div class=\"col nom\" data-label=\"Nom\">"); | |
95 | + strcat((*page)->html_contents,interfaces[i]->adresse); | |
96 | + switch(interfaces[i]->status) | |
97 | + { | |
98 | + case(0): | |
99 | + strcat((*page)->html_contents,"</div>\n<div class=\"col etat\" style=\"color: red\" data-label=\"Etat\">Mode Sommeil</div>\n"); | |
100 | + break; | |
101 | + case(1): | |
102 | + strcat((*page)->html_contents,"</div>\n<div class=\"col etat\" style=\"color: green\" data-label=\"Etat\">Mode Eveillé</div>\n"); | |
103 | + break; | |
104 | + } | |
105 | + strcat((*page)->html_contents,"</li>"); | |
106 | + } | |
107 | + } | |
108 | + } | |
109 | + | |
110 | + strcat((*page)->html_contents,"</ul>\n</div>\n</body>\n</html>"); | |
111 | + | |
112 | + (*page)->size=strlen(((*page)->html_contents)); | |
113 | + | |
114 | +} | |
115 | + | |
116 | + | |
117 | + | ... | ... |
Sioux/sioux deleted
No preview for this file type
Sioux/threadsSocket.c deleted
... | ... | @@ -1,21 +0,0 @@ |
1 | -#include <stdio.h> | |
2 | -#include <stdlib.h> | |
3 | -#include <pthread.h> | |
4 | - | |
5 | - | |
6 | -int lanceThread(void(* fonction) (void *), void* arg, int size) | |
7 | -{ | |
8 | - pthread_t thr_id; | |
9 | - | |
10 | - if(pthread_create(&thr_id, NULL, fonction, arg)!=0) { fprintf(stderr, "Le thread n'a pas pu être créé.\n"); return -1; } | |
11 | - | |
12 | - pthread_detach(thr_id); | |
13 | - | |
14 | - | |
15 | - | |
16 | -} | |
17 | - | |
18 | -int main(void) | |
19 | -{ | |
20 | - | |
21 | -} |
Tangible/tangibleInterface
No preview for this file type
Tangible/tangibleInterface.c
1 | 1 | #include <avr/io.h> |
2 | 2 | #include <util/delay.h> |
3 | 3 | #include <stdio.h> |
4 | - | |
4 | +#include <string.h> | |
5 | +#include <stdlib.h> | |
6 | +#include <stdbool.h> | |
5 | 7 | #include "serial.h" |
6 | 8 | #include "ethernet.h" |
7 | 9 | #include "w5100.h" |
... | ... | @@ -9,65 +11,102 @@ |
9 | 11 | |
10 | 12 | #define MAC_SIZE 6 |
11 | 13 | #define IPV4_SIZE 4 |
14 | +bool isComMem = false; // Commande déjà enregistrée ou non? | |
15 | +bool sleep = true; //Etat de l'interface : true = mode sommeil / false = mode eveillé | |
12 | 16 | |
13 | -int main(void) | |
17 | +SOCKET sUDP=0; | |
18 | +SOCKET sTCP=1; | |
19 | + | |
20 | +uint8 comMem[2]; //Commande en mémoire | |
21 | + | |
22 | +uint8_t addr[IPV4_SIZE]; | |
23 | +uint16_t port; | |
24 | + | |
25 | + | |
26 | +void request(uint8 rq [2]) | |
14 | 27 | { |
15 | - uint8 com[4],per[14]; | |
28 | + | |
29 | + if (!isComMem) //Aucune commande en mémoire | |
30 | + { | |
31 | + isComMem = true; | |
32 | + comMem[0] = rq[0]; comMem[1] = rq [1]; | |
33 | + } | |
34 | + | |
35 | + uint8 x = rq [0] & 0xE0; //Récupération de la commande | |
36 | + x = x >> 5; | |
37 | + uint16 y = rq[0] & 0x1F; //Récupération du pourcentage | |
38 | + y = y << 8; | |
39 | + y += rq[1]; | |
40 | + uint16 per = (100*y)/8192; //2^13 = 100 % | |
41 | + switch(x) | |
42 | + { | |
43 | + | |
44 | + case 0: | |
45 | + printf("REQUEST STATUS\n"); | |
46 | + //ENVOI TCP ICI , renvoi x = 0x01 | |
47 | + comMem[0] = rq[0]; comMem[1] = rq [1]; //save | |
48 | + break; | |
49 | + | |
50 | + case 2: | |
51 | + printf("SET / UNSET SLEEP\n"); | |
52 | + if (y == 0x0001) | |
53 | + { | |
54 | + sleep = false; | |
55 | + printf("MODE EVEILLE\n"); | |
56 | + } | |
57 | + else if (y == 0x0000) | |
58 | + { | |
59 | + sleep = true; | |
60 | + printf("MODE SOMMEIL\n"); | |
61 | + } | |
62 | + comMem[0] = rq[0]; comMem[1] = rq [1]; //save | |
63 | + break; | |
64 | + | |
65 | + case 3: | |
66 | + // ENVOI TCP ICI , envoi de comMem[2] | |
67 | + break; | |
68 | + case 5: | |
69 | + //Envoi à l'interface secondaire ordre + pourcentage. | |
70 | + | |
71 | + break; | |
72 | + } | |
73 | + | |
74 | + | |
75 | + | |
76 | +} | |
77 | + | |
78 | +int main(void) | |
79 | +{ | |
16 | 80 | uint8_t mac[MAC_SIZE] = {0xA0,0xBD,0xCD,0xDD,0xED,0xFD}; |
17 | 81 | uint8_t ip[IPV4_SIZE] = {172,26,145,205}; |
18 | 82 | uint8_t gateway[4] = {172,26,145,254}; |
19 | 83 | uint8_t mask[4] = {255,255,255,0}; |
20 | - int isUDP = 0; | |
21 | - const char answer [16] = "I'm ok"; | |
22 | 84 | |
23 | - uint8 buf[16]; | |
24 | - uint8_t addr[IPV4_SIZE]; | |
25 | - uint16_t port; | |
85 | + uint8 buf[2]; | |
26 | 86 | uint16 datasize; |
27 | - uint8_t addrpifou[IPV4_SIZE]={172,26,145,35}; | |
28 | - uint16 size; | |
29 | - SOCKET sUDP=0; | |
30 | - SOCKET sTCP=1; | |
31 | - init_printf(); | |
32 | - ethernet_init(mac,ip,gateway,mask); | |
33 | - if (!socket(sUDP,Sn_MR_UDP,2020,0)) | |
34 | - { | |
35 | - return -1; | |
36 | - } | |
37 | - if (!socket(sTCP,Sn_MR_TCP,2020,0)) | |
38 | - { | |
39 | - return -1; | |
40 | - } | |
41 | - while(1) | |
87 | + | |
88 | + init_printf(); | |
89 | + ethernet_init(mac,ip,gateway,mask); | |
90 | + if (!socket(sUDP,Sn_MR_UDP,2020,0)) | |
91 | + { | |
92 | + return -1; | |
93 | + } | |
94 | + if (!socket(sTCP,Sn_MR_TCP,2020,0)) | |
95 | + { | |
96 | + return -1; | |
97 | + } | |
98 | + | |
99 | + while(1) | |
100 | + { | |
101 | + if((datasize=recvfrom(sUDP,buf,sizeof(buf),addr,&port)) == 2) | |
42 | 102 | { |
43 | - if((datasize=recvfrom(sUDP,buf,sizeof(buf),addr,&port)) == 17) | |
44 | - { | |
45 | - com[0]=buf[0]; | |
46 | - com[1]=buf[1]; | |
47 | - com[2]=buf[2]; | |
48 | - com[3]='\0'; | |
49 | - per[0]=buf[3]; | |
50 | - per[1]=buf[4]; | |
51 | - per[2]=buf[5]; | |
52 | - per[3]=buf[6]; | |
53 | - per[4]=buf[7]; | |
54 | - per[5]=buf[8]; | |
55 | - per[6]=buf[9]; | |
56 | - per[7]=buf[10]; | |
57 | - per[8]=buf[11]; | |
58 | - per[9]=buf[12]; | |
59 | - per[10]=buf[13]; | |
60 | - per[11]=buf[14]; | |
61 | - per[12]=buf[15]; | |
62 | - per[13]='\0'; | |
63 | - printf("Com : %s\n",com); | |
64 | - printf("Per : %s\n",per); | |
65 | - } | |
103 | + printf("RECEIVED\n"); | |
104 | + request(buf); | |
66 | 105 | } |
67 | - printf("RESET\n"); | |
68 | - close(sTCP); | |
69 | - close(sUDP); | |
70 | - return 0; | |
106 | + if (datasize!=0) | |
107 | + printf(" DATASIZE = %d\n",datasize); | |
108 | + } | |
109 | + close(sTCP); | |
110 | + close(sUDP); | |
111 | + return 0; | |
71 | 112 | } |
72 | - | |
73 | -//send(sTCP,(uint8*)answer, (uint16)sizeof(answer)); | ... | ... |
... | ... | @@ -5,544 +5,551 @@ |
5 | 5 | :100040000C9451000C9451000C9451000C945100EC |
6 | 6 | :100050000C9451000C9451000C9451000C945100DC |
7 | 7 | :100060000C9451000C94510011241FBECFEFD8E026 |
8 | -:10007000DEBFCDBF13E0A0E0B1E0EEEBFFE102C0D8 | |
9 | -:1000800005900D92A836B107D9F723E0A8E6B3E0B2 | |
10 | -:1000900001C01D92A43AB207E1F70E94050C0C942E | |
11 | -:1000A000DD0F0C940000E82FF0E0E856FC4F808153 | |
12 | -:1000B0000895E82FF0E0E856FC4F60830895E82F9C | |
13 | -:1000C000F0E0EE0FFF1FE858FC4F8081918108950A | |
14 | -:1000D000E82FF0E0EE0FFF1FE058FC4F8081918188 | |
15 | -:1000E0000895E82FF0E0EE0FFF1FE857FC4F8081E6 | |
16 | -:1000F00091810895E82FF0E0EE0FFF1FE057FC4FCD | |
17 | -:10010000808191810895E82FF0E0EE0FFF1FE859FC | |
18 | -:10011000FC4F808191810895E82FF0E0EE0FFF1FE2 | |
19 | -:10012000E059FC4F80819181089524B12C6224B95B | |
20 | -:100130002A9A25B1277D25B920E52CBD2A9820EFE4 | |
21 | -:100140002EBD0DB407FEFDCF9EBD0DB407FEFDCF45 | |
22 | -:100150008EBD0DB407FEFDCF6EBD0DB407FEFDCF05 | |
23 | -:100160002A9A81E0089524B12C6224B92A9A25B1F3 | |
24 | -:10017000277D25B920E52CBD2A982FE02EBD0DB492 | |
25 | -:1001800007FEFDCF9EBD0DB407FEFDCF8EBD0DB4A5 | |
26 | -:1001900007FEFDCF1EBC0DB407FEFDCF8EB52A9A1B | |
27 | -:1001A000089524B12C6224B92A9A25B1277D25B956 | |
28 | -:1001B00020E52CBDFB019B01240F351F60EFE217EA | |
29 | -:1001C000F307A9F02A986EBD0DB407FEFDCF9EBDC2 | |
30 | -:1001D0000DB407FEFDCF8EBD0DB407FEFDCF7191AE | |
31 | -:1001E0007EBD0DB407FEFDCF2A9A0196E8CFCA0165 | |
32 | -:1001F000089524B12C6224B92A9A25B1277D25B906 | |
33 | -:1002000020E52CBDFB019B01240F351F6FE0E21799 | |
34 | -:10021000F307B1F02A986EBD0DB407FEFDCF9EBD69 | |
35 | -:100220000DB407FEFDCF8EBD0DB407FEFDCF1EBC85 | |
36 | -:100230000DB407FEFDCF7EB571932A9A0196E7CFE4 | |
37 | -:10024000CA0108952F923F924F925F926F927F92D0 | |
38 | -:100250008F929F92AF92BF92CF92DF92EF92FF92D6 | |
39 | -:100260000F931F93CF93DF93CDB7DEB728970FB6C9 | |
40 | -:10027000F894DEBF0FBECDBF282E362E88E291E067 | |
41 | -:100280000E94F80C622D8BE190E00E949500632D96 | |
42 | -:100290008AE190E00E94950080E090E490937103E1 | |
43 | -:1002A0008093700380E090E69093690380936803E5 | |
44 | -:1002B00083E391E00E94F80C88E6882E83E0982E74 | |
45 | -:1002C00090E7A92E93E0B92E20E833E038872F83FA | |
46 | -:1002D00008E713E028E8C22E23E0D22E30E9E32E0F | |
47 | -:1002E00033E0F32E1A821982412C512C1C821B827E | |
48 | -:1002F000612C712C222D30E03E832D83232C312C58 | |
49 | -:10030000AF81B88511961C921E92F801118210825D | |
50 | -:100310002B813C8121153042B4F58D819E8109806D | |
51 | -:1003200002C0959587950A94E2F7837099278230E9 | |
52 | -:100330009105A9F083309105D9F0019739F080E05B | |
53 | -:1003400094E08D939C93EFEFF3E01AC0E0E0F8E0C7 | |
54 | -:10035000AF81B885ED93FC93EFEFF7E011C0E0E0DB | |
55 | -:10036000F0E1AF81B885ED93FC93EFEFFFE008C0BB | |
56 | -:10037000E0E0F0E2AF81B885ED93FC93EFEFFFE1B1 | |
57 | -:10038000D701ED93FC934114F0E25F069CF5C101A7 | |
58 | -:10039000098002C0959587950A94E2F783709927A2 | |
59 | -:1003A00082309105A9F083309105D1F0019741F099 | |
60 | -:1003B000E0E0F4E0D801ED93FC93EFEFF3E017C039 | |
61 | -:1003C000E0E0F8E0D801ED93FC93EFEFF7E00FC029 | |
62 | -:1003D000E0E0F0E1D801ED93FC93EFEFFFE007C020 | |
63 | -:1003E000E0E0F0E2D801ED93FC93EFEFFFE1D601FE | |
64 | -:1003F000ED93FC93AF81B8858D919D91B887AF83C4 | |
65 | -:100400002B813C81280F391F3C832B83D8012D91F0 | |
66 | -:100410003D918D01420E531E61147104D9F0EF819C | |
67 | -:10042000F885349760817181F5013297408151815F | |
68 | -:10043000460F571FF50151834083FD0134976081BA | |
69 | -:100440007181F401329740815181460F571FD401C9 | |
70 | -:100450004D935C93F40160817181F2E08F0E911CE9 | |
71 | -:10046000D5014C9111965C91B2E0AB0EB11C3F935B | |
72 | -:100470002F939F938F937F936F935F934F937F926D | |
73 | -:100480006F92ACE5B1E0BF93AF930E94E20CFFEF37 | |
74 | -:100490006F1A7F0A29813A812E5F3F4F3A83298361 | |
75 | -:1004A00032E0C30ED11C42E0E40EF11C0FB6F8940A | |
76 | -:1004B000DEBF0FBECDBF94E06916710409F020CFF6 | |
77 | -:1004C00028960FB6F894DEBF0FBECDBFDF91CF9157 | |
78 | -:1004D0001F910F91FF90EF90DF90CF90BF90AF9062 | |
79 | -:1004E0009F908F907F906F905F904F903F902F9054 | |
80 | -:1004F0000895682F80E090E80C94950080E80C94B3 | |
81 | -:100500007902CF93DF93EC01688181E090E00E9453 | |
82 | -:100510009500698182E090E00E9495006A8183E005 | |
83 | -:1005200090E00E9495006B8184E090E0DF91CF9194 | |
84 | -:100530000C949500CF93DF93EC0181E090E00E9452 | |
85 | -:10054000B300888382E090E00E94B300898383E057 | |
86 | -:1005500090E00E94B3008A8384E090E00E94B300A0 | |
87 | -:100560008B83DF91CF910895CF93DF93EC01688166 | |
88 | -:1005700085E090E00E949500698186E090E00E940D | |
89 | -:1005800095006A8187E090E00E9495006B8188E089 | |
90 | -:1005900090E0DF91CF910C949500CF93DF93EC0125 | |
91 | -:1005A000688189E090E00E94950069818AE090E08E | |
92 | -:1005B0000E9495006A818BE090E00E9495006B811B | |
93 | -:1005C0008CE090E00E9495006C818DE090E00E94AC | |
94 | -:1005D00095006D818EE090E0DF91CF910C949500B5 | |
95 | -:1005E000CF93DF93EC0168818FE090E00E9495004B | |
96 | -:1005F000698180E190E00E9495006A8181E190E04C | |
97 | -:100600000E9495006B8182E190E0DF91CF910C9484 | |
98 | -:10061000950085E190E00C94B300CF93C82F692F2B | |
99 | -:1006200087E190E00E9495006C2F88E190E0CF91E7 | |
100 | -:100630000C949500682F89E190E00C949500682F48 | |
101 | -:1006400086E190E00C949500CF93DF93EC0181E07C | |
102 | -:1006500090E00E94B300888382E090E00E94B300A3 | |
103 | -:10066000898383E090E00E94B3008A8384E090E075 | |
104 | -:100670000E94B3008B83DF91CF910895CF93DF93D6 | |
105 | -:10068000EC0185E090E00E94B300888386E090E072 | |
106 | -:100690000E94B300898387E090E00E94B3008A83C0 | |
107 | -:1006A00088E090E00E94B3008B83DF91CF910895A2 | |
108 | -:1006B000CF93DF93EC0189E090E00E94B300888340 | |
109 | -:1006C0008AE090E00E94B30089838BE090E00E9472 | |
110 | -:1006D000B3008A838CE090E00E94B3008B838DE0AE | |
111 | -:1006E00090E00E94B3008C838EE090E00E94B30003 | |
112 | -:1006F0008D83DF91CF910895CF93DF93EC018FE04D | |
113 | -:1007000090E00E94B300888380E190E00E94B300F3 | |
114 | -:10071000898381E190E00E94B3008A8382E190E0C6 | |
115 | -:100720000E94B3008B83DF91CF9108950F931F93A5 | |
116 | -:10073000CF93DF938B01C82FD0E02496DC2FCC27FA | |
117 | -:10074000CE0106960E94B300F8018083CE01079681 | |
118 | -:100750000E94B300F8018183CE0108960E94B30085 | |
119 | -:10076000F8018283CE0109960E94B300F8018383C9 | |
120 | -:10077000CE010A960E94B300F8018483CE010B9645 | |
121 | -:100780000E94B300F8018583DF91CF911F910F91F3 | |
122 | -:1007900008950F931F93CF93DF938B01C82FD0E061 | |
123 | -:1007A0002496DC2FCC27FB016081CE0106960E94A7 | |
124 | -:1007B0009500F8016181CE0107960E949500F8012D | |
125 | -:1007C0006281CE0108960E949500F8016381CE01F6 | |
126 | -:1007D00009960E949500F8016481CE010A960E9454 | |
127 | -:1007E0009500F8016581CE010B96DF91CF911F91A5 | |
128 | -:1007F0000F910C9495000F931F93CF93DF938B0170 | |
129 | -:10080000C82FD0E02496DC2FCC27CE010C960E9476 | |
130 | -:10081000B300F8018083CE010D960E94B300F80169 | |
131 | -:100820008183CE010E960E94B300F8018283CE012F | |
132 | -:100830000F960E94B300F8018383DF91CF911F913F | |
133 | -:100840000F9108950F931F93CF93DF938B01C82FC0 | |
134 | -:10085000D0E02496DC2FCC27FB016081CE010C96E2 | |
135 | -:100860000E949500F8016181CE010D960E949500CD | |
136 | -:10087000F8016281CE010E960E949500F801638115 | |
137 | -:10088000CE010F96DF91CF911F910F910C9495009F | |
138 | -:100890000F931F93CF93DF938B01C82FD0E0249643 | |
139 | -:1008A000DC2FCC27CE0140960E94B300F801808354 | |
140 | -:1008B000CE0141960E94B300F8018183DF91CF9170 | |
141 | -:1008C0001F910F9108950F931F93CF93DF938B0187 | |
142 | -:1008D000C82FD0E02496DC2FCC27FB016081CE010D | |
143 | -:1008E00040960E949500F8016181CE014196DF910A | |
144 | -:1008F000CF911F910F910C9495001F93CF93DF938D | |
145 | -:10090000162F672FC82FD0E02496DC2FCC27CE01DE | |
146 | -:1009100042960E949500612FCE014396DF91CF91C0 | |
147 | -:100920001F910C94950090E0982F88278A5E9B4F2A | |
148 | -:100930000C94950090E0982F88278C5E9B4F0C9428 | |
149 | -:10094000950090E0982F88278E5F9B4F0C94B30002 | |
150 | -:1009500090E0982F88278D5F9B4F0C94B300CF9227 | |
151 | -:10096000DF92EF92FF920F931F93CF93DF93C82FE5 | |
152 | -:10097000D0E02496DC2FCC277E0180E2E80EF11C2B | |
153 | -:10098000A19600E010E0C7010E94B300C82ED12C50 | |
154 | -:10099000DC2CCC24CE010E94B300C80ED11CC114A3 | |
155 | -:1009A000D10461F0C7010E94B300082F10E0102F9E | |
156 | -:1009B0000027CE010E94B300080F111D0C151D0564 | |
157 | -:1009C00011F7C801DF91CF911F910F91FF90EF9028 | |
158 | -:1009D000DF90CF900895CF92DF92EF92FF920F9326 | |
159 | -:1009E0001F93CF93DF93C82FD0E02496DC2FCC2722 | |
160 | -:1009F0007E0186E2E80EF11CA79600E010E0C70138 | |
161 | -:100A00000E94B300C82ED12CDC2CCC24CE010E9435 | |
162 | -:100A1000B300C80ED11CC114D10461F0C7010E94FB | |
163 | -:100A2000B300082F10E0102F0027CE010E94B30062 | |
164 | -:100A3000080F111D0C151D0511F7C801DF91CF918D | |
165 | -:100A40001F910F91FF90EF90DF90CF900895CF927C | |
166 | -:100A5000DF92EF92FF920F931F93CF93DF93E82FD4 | |
167 | -:100A6000F0E0EE0FFF1FDF01A057BC4F8D919C916E | |
168 | -:100A7000DA01A823B923EF01C059DC4FE880F980DF | |
169 | -:100A8000CD018E0D9F1DE058FC4FC081D181AD017D | |
170 | -:100A9000420F531FC417D50778F489016B01CA1B95 | |
171 | -:100AA000DB0BAE010E94D100A8014C1B5D0BB6010F | |
172 | -:100AB0006C0F7D1FC70101C0A901DF91CF911F916C | |
173 | -:100AC0000F91FF90EF90DF90CF900C94D1008F9218 | |
174 | -:100AD0009F92BF92CF92DF92EF92FF920F931F935C | |
175 | -:100AE000CF93DF9300D0CDB7DEB7B82E7A0190E078 | |
176 | -:100AF0000496982E8824640184E2C80ED11CC60195 | |
177 | -:100B000069837A830E94B300082F10E0102F00271A | |
178 | -:100B100085E2880E911CC4010E94B300080F111DCC | |
179 | -:100B20009701A80169817A818B2D0E9427050E0DFE | |
180 | -:100B30001F1D612FC6010E949500602FC4010F90F8 | |
181 | -:100B40000F90DF91CF911F910F91FF90EF90DF9069 | |
182 | -:100B5000CF90BF909F908F900C949500AF92BF92D2 | |
183 | -:100B6000CF92DF92EF92FF920F931F93CF93DF9379 | |
184 | -:100B7000DA01A901E82FF0E0EE0FFF1FEF01C857DF | |
185 | -:100B8000DC4F888199816B01C822D922EF01C859B5 | |
186 | -:100B9000DC4FE880F980C6018E0D9F1DE858FC4FA0 | |
187 | -:100BA000C081D1819601240F351FC217D30780F46D | |
188 | -:100BB0008A015D01CC19DD09AE01BD010E94F90079 | |
189 | -:100BC000A8014C1B5D0BB5016C0F7D1FC70101C057 | |
190 | -:100BD000BD01DF91CF911F910F91FF90EF90DF90BA | |
191 | -:100BE000CF90BF90AF900C94F9009F92AF92BF92BC | |
8 | +:10007000DEBFCDBF13E0A0E0B1E0E4EEFFE102C0DF | |
9 | +:1000800005900D92AA3AB107D9F723E0AAEAB3E0A6 | |
10 | +:1000900001C01D92A03FB207E1F70E944D0C0C94E5 | |
11 | +:1000A000F00F0C9400000F931F93CF93DF938C01FC | |
12 | +:1000B0008091AB0381110AC081E08093AB03F8010A | |
13 | +:1000C00080818093E20381818093E303F801C08102 | |
14 | +:1000D00091818C2F82958695877019F0823021F05E | |
15 | +:1000E00025C086E191E019C0CF71D0E0DC2FCC278C | |
16 | +:1000F000C90FD11D85E291E00E940B0DC130D105E1 | |
17 | +:1001000029F41092010187E391E007C0CD2B39F467 | |
18 | +:1001100081E08093010184E491E00E940B0DF801DD | |
19 | +:1001200080818093E20381818093E303DF91CF910B | |
20 | +:100130001F910F910895E82FF0E0E452FC4F808169 | |
21 | +:100140000895E82FF0E0E452FC4F60830895E82F13 | |
22 | +:10015000F0E0EE0FFF1FE454FC4F80819181089581 | |
23 | +:10016000E82FF0E0EE0FFF1FEC53FC4F80819181F0 | |
24 | +:100170000895E82FF0E0EE0FFF1FE453FC4F80815D | |
25 | +:1001800091810895E82FF0E0EE0FFF1FEC52FC4F35 | |
26 | +:10019000808191810895E82FF0E0EE0FFF1FE45574 | |
27 | +:1001A000FC4F808191810895E82FF0E0EE0FFF1F52 | |
28 | +:1001B000EC54FC4F80819181089524B12C6224B9C4 | |
29 | +:1001C0002A9A25B1277D25B920E52CBD2A9820EF54 | |
30 | +:1001D0002EBD0DB407FEFDCF9EBD0DB407FEFDCFB5 | |
31 | +:1001E0008EBD0DB407FEFDCF6EBD0DB407FEFDCF75 | |
32 | +:1001F0002A9A81E0089524B12C6224B92A9A25B163 | |
33 | +:10020000277D25B920E52CBD2A982FE02EBD0DB401 | |
34 | +:1002100007FEFDCF9EBD0DB407FEFDCF8EBD0DB414 | |
35 | +:1002200007FEFDCF1EBC0DB407FEFDCF8EB52A9A8A | |
36 | +:10023000089524B12C6224B92A9A25B1277D25B9C5 | |
37 | +:1002400020E52CBDFB019B01240F351F60EFE21759 | |
38 | +:10025000F307A9F02A986EBD0DB407FEFDCF9EBD31 | |
39 | +:100260000DB407FEFDCF8EBD0DB407FEFDCF71911D | |
40 | +:100270007EBD0DB407FEFDCF2A9A0196E8CFCA01D4 | |
41 | +:10028000089524B12C6224B92A9A25B1277D25B975 | |
42 | +:1002900020E52CBDFB019B01240F351F6FE0E21709 | |
43 | +:1002A000F307B1F02A986EBD0DB407FEFDCF9EBDD9 | |
44 | +:1002B0000DB407FEFDCF8EBD0DB407FEFDCF1EBCF5 | |
45 | +:1002C0000DB407FEFDCF7EB571932A9A0196E7CF54 | |
46 | +:1002D000CA0108952F923F924F925F926F927F9240 | |
47 | +:1002E0008F929F92AF92BF92CF92DF92EF92FF9246 | |
48 | +:1002F0000F931F93CF93DF93CDB7DEB728970FB639 | |
49 | +:10030000F894DEBF0FBECDBF282E362E8AE691E0D0 | |
50 | +:100310000E940B0D622D8BE190E00E94DD00632DA9 | |
51 | +:100320008AE190E00E94DD0080E090E49093B503C4 | |
52 | +:100330008093B40380E090E69093AD038093AC0388 | |
53 | +:1003400085E791E00E940B0D8CEA882E83E0982EC1 | |
54 | +:1003500094EBA92E93E0B92E24EC33E038872F8359 | |
55 | +:100360000CEB13E02CECC22E23E0D22E34EDE32E66 | |
56 | +:1003700033E0F32E1A821982412C512C1C821B82ED | |
57 | +:10038000612C712C222D30E03E832D83232C312CC7 | |
58 | +:10039000AF81B88511961C921E92F80111821082CD | |
59 | +:1003A0002B813C8121153042B4F58D819E810980DD | |
60 | +:1003B00002C0959587950A94E2F783709927823059 | |
61 | +:1003C0009105A9F083309105D9F0019739F080E0CB | |
62 | +:1003D00094E08D939C93EFEFF3E01AC0E0E0F8E037 | |
63 | +:1003E000AF81B885ED93FC93EFEFF7E011C0E0E04B | |
64 | +:1003F000F0E1AF81B885ED93FC93EFEFFFE008C02B | |
65 | +:10040000E0E0F0E2AF81B885ED93FC93EFEFFFE120 | |
66 | +:10041000D701ED93FC934114F0E25F069CF5C10116 | |
67 | +:10042000098002C0959587950A94E2F78370992711 | |
68 | +:1004300082309105A9F083309105D1F0019741F008 | |
69 | +:10044000E0E0F4E0D801ED93FC93EFEFF3E017C0A8 | |
70 | +:10045000E0E0F8E0D801ED93FC93EFEFF7E00FC098 | |
71 | +:10046000E0E0F0E1D801ED93FC93EFEFFFE007C08F | |
72 | +:10047000E0E0F0E2D801ED93FC93EFEFFFE1D6016D | |
73 | +:10048000ED93FC93AF81B8858D919D91B887AF8333 | |
74 | +:100490002B813C81280F391F3C832B83D8012D9160 | |
75 | +:1004A0003D918D01420E531E61147104D9F0EF810C | |
76 | +:1004B000F885349760817181F501329740815181CF | |
77 | +:1004C000460F571FF50151834083FD01349760812A | |
78 | +:1004D0007181F401329740815181460F571FD40139 | |
79 | +:1004E0004D935C93F40160817181F2E08F0E911C59 | |
80 | +:1004F000D5014C9111965C91B2E0AB0EB11C3F93CB | |
81 | +:100500002F939F938F937F936F935F934F937F92DC | |
82 | +:100510006F92AEE9B1E0BF93AF930E94F50CFFEF8D | |
83 | +:100520006F1A7F0A29813A812E5F3F4F3A832983D0 | |
84 | +:1005300032E0C30ED11C42E0E40EF11C0FB6F89479 | |
85 | +:10054000DEBF0FBECDBF94E06916710409F020CF65 | |
86 | +:1005500028960FB6F894DEBF0FBECDBFDF91CF91C6 | |
87 | +:100560001F910F91FF90EF90DF90CF90BF90AF90D1 | |
88 | +:100570009F908F907F906F905F904F903F902F90C3 | |
89 | +:100580000895682F80E090E80C94DD0080E80C94DA | |
90 | +:10059000C102CF93DF93EC01688181E090E00E947B | |
91 | +:1005A000DD00698182E090E00E94DD006A8183E0E5 | |
92 | +:1005B00090E00E94DD006B8184E090E0DF91CF91BC | |
93 | +:1005C0000C94DD00CF93DF93EC0181E090E00E947A | |
94 | +:1005D000FB00888382E090E00E94FB00898383E037 | |
95 | +:1005E00090E00E94FB008A8384E090E00E94FB0080 | |
96 | +:1005F0008B83DF91CF910895CF93DF93EC016881D6 | |
97 | +:1006000085E090E00E94DD00698186E090E00E9434 | |
98 | +:10061000DD006A8187E090E00E94DD006B8188E068 | |
99 | +:1006200090E0DF91CF910C94DD00CF93DF93EC014C | |
100 | +:10063000688189E090E00E94DD0069818AE090E0B5 | |
101 | +:100640000E94DD006A818BE090E00E94DD006B81FA | |
102 | +:100650008CE090E00E94DD006C818DE090E00E94D3 | |
103 | +:10066000DD006D818EE090E0DF91CF910C94DD0094 | |
104 | +:10067000CF93DF93EC0168818FE090E00E94DD0072 | |
105 | +:10068000698180E190E00E94DD006A8181E190E073 | |
106 | +:100690000E94DD006B8182E190E0DF91CF910C94AC | |
107 | +:1006A000DD0085E190E00C94FB00CF93C82F692F0B | |
108 | +:1006B00087E190E00E94DD006C2F88E190E0CF910F | |
109 | +:1006C0000C94DD00682F89E190E00C94DD00682F28 | |
110 | +:1006D00086E190E00C94DD00CF93DF93EC0181E0A4 | |
111 | +:1006E00090E00E94FB00888382E090E00E94FB0083 | |
112 | +:1006F000898383E090E00E94FB008A8384E090E09D | |
113 | +:100700000E94FB008B83DF91CF910895CF93DF93FD | |
114 | +:10071000EC0185E090E00E94FB00888386E090E099 | |
115 | +:100720000E94FB00898387E090E00E94FB008A839F | |
116 | +:1007300088E090E00E94FB008B83DF91CF910895C9 | |
117 | +:10074000CF93DF93EC0189E090E00E94FB00888367 | |
118 | +:100750008AE090E00E94FB0089838BE090E00E9499 | |
119 | +:10076000FB008A838CE090E00E94FB008B838DE08D | |
120 | +:1007700090E00E94FB008C838EE090E00E94FB00E2 | |
121 | +:100780008D83DF91CF910895CF93DF93EC018FE0BC | |
122 | +:1007900090E00E94FB00888380E190E00E94FB00D3 | |
123 | +:1007A000898381E190E00E94FB008A8382E190E0EE | |
124 | +:1007B0000E94FB008B83DF91CF9108950F931F93CD | |
125 | +:1007C000CF93DF938B01C82FD0E02496DC2FCC276A | |
126 | +:1007D000CE0106960E94FB00F8018083CE010796A9 | |
127 | +:1007E0000E94FB00F8018183CE0108960E94FB0065 | |
128 | +:1007F000F8018283CE0109960E94FB00F8018383F1 | |
129 | +:10080000CE010A960E94FB00F8018483CE010B966C | |
130 | +:100810000E94FB00F8018583DF91CF911F910F911A | |
131 | +:1008200008950F931F93CF93DF938B01C82FD0E0D0 | |
132 | +:100830002496DC2FCC27FB016081CE0106960E9416 | |
133 | +:10084000DD00F8016181CE0107960E94DD00F8010C | |
134 | +:100850006281CE0108960E94DD00F8016381CE011D | |
135 | +:1008600009960E94DD00F8016481CE010A960E947B | |
136 | +:10087000DD00F8016581CE010B96DF91CF911F91CC | |
137 | +:100880000F910C94DD000F931F93CF93DF938B0197 | |
138 | +:10089000C82FD0E02496DC2FCC27CE010C960E94E6 | |
139 | +:1008A000FB00F8018083CE010D960E94FB00F80149 | |
140 | +:1008B0008183CE010E960E94FB00F8018283CE0157 | |
141 | +:1008C0000F960E94FB00F8018383DF91CF911F9167 | |
142 | +:1008D0000F9108950F931F93CF93DF938B01C82F30 | |
143 | +:1008E000D0E02496DC2FCC27FB016081CE010C9652 | |
144 | +:1008F0000E94DD00F8016181CE010D960E94DD00AD | |
145 | +:10090000F8016281CE010E960E94DD00F80163813C | |
146 | +:10091000CE010F96DF91CF911F910F910C94DD00C6 | |
147 | +:100920000F931F93CF93DF938B01C82FD0E02496B2 | |
148 | +:10093000DC2FCC27CE0140960E94FB00F80180837B | |
149 | +:10094000CE0141960E94FB00F8018183DF91CF9197 | |
150 | +:100950001F910F9108950F931F93CF93DF938B01F6 | |
151 | +:10096000C82FD0E02496DC2FCC27FB016081CE017C | |
152 | +:1009700040960E94DD00F8016181CE014196DF9131 | |
153 | +:10098000CF911F910F910C94DD001F93CF93DF93B4 | |
154 | +:10099000162F672FC82FD0E02496DC2FCC27CE014E | |
155 | +:1009A00042960E94DD00612FCE014396DF91CF91E8 | |
156 | +:1009B0001F910C94DD0090E0982F88278A5E9B4F52 | |
157 | +:1009C0000C94DD0090E0982F88278C5E9B4F0C9450 | |
158 | +:1009D000DD0090E0982F88278E5F9B4F0C94FB00E2 | |
159 | +:1009E00090E0982F88278D5F9B4F0C94FB00CF924F | |
160 | +:1009F000DF92EF92FF920F931F93CF93DF93C82F55 | |
161 | +:100A0000D0E02496DC2FCC277E0180E2E80EF11C9A | |
162 | +:100A1000A19600E010E0C7010E94FB00C82ED12C77 | |
163 | +:100A2000DC2CCC24CE010E94FB00C80ED11CC114CA | |
164 | +:100A3000D10461F0C7010E94FB00082F10E0102FC5 | |
165 | +:100A40000027CE010E94FB00080F111D0C151D058B | |
166 | +:100A500011F7C801DF91CF911F910F91FF90EF9097 | |
167 | +:100A6000DF90CF900895CF92DF92EF92FF920F9395 | |
168 | +:100A70001F93CF93DF93C82FD0E02496DC2FCC2791 | |
169 | +:100A80007E0186E2E80EF11CA79600E010E0C701A7 | |
170 | +:100A90000E94FB00C82ED12CDC2CCC24CE010E945D | |
171 | +:100AA000FB00C80ED11CC114D10461F0C7010E9423 | |
172 | +:100AB000FB00082F10E0102F0027CE010E94FB0042 | |
173 | +:100AC000080F111D0C151D0511F7C801DF91CF91FD | |
174 | +:100AD0001F910F91FF90EF90DF90CF900895CF92EC | |
175 | +:100AE000DF92EF92FF920F931F93CF93DF93E82F44 | |
176 | +:100AF000F0E0EE0FFF1FDF01AC52BC4F8D919C91D7 | |
177 | +:100B0000DA01A823B923EF01CC54DC4FE880F98047 | |
178 | +:100B1000CD018E0D9F1DEC53FC4FC081D181AD01E5 | |
179 | +:100B2000420F531FC417D50778F489016B01CA1B04 | |
180 | +:100B3000DB0BAE010E941901A8014C1B5D0BB60135 | |
181 | +:100B40006C0F7D1FC70101C0A901DF91CF911F91DB | |
182 | +:100B50000F91FF90EF90DF90CF900C9419018F923E | |
183 | +:100B60009F92BF92CF92DF92EF92FF920F931F93CB | |
184 | +:100B7000CF93DF9300D0CDB7DEB7B82E7A0190E0E7 | |
185 | +:100B80000496982E8824640184E2C80ED11CC60104 | |
186 | +:100B900069837A830E94FB00082F10E0102F002742 | |
187 | +:100BA00085E2880E911CC4010E94FB00080F111DF4 | |
188 | +:100BB0009701A80169817A818B2D0E946F050E0D26 | |
189 | +:100BC0001F1D612FC6010E94DD00602FC4010F9020 | |
190 | +:100BD0000F90DF91CF911F910F91FF90EF90DF90D9 | |
191 | +:100BE000CF90BF909F908F900C94DD00AF92BF92FA | |
192 | 192 | :100BF000CF92DF92EF92FF920F931F93CF93DF93E9 |
193 | -:100C0000982E6B017A01082F10E00C5F1F4F102FF8 | |
194 | -:100C10000027580188E2A80EB11CC5010E94B3004C | |
195 | -:100C2000C82FD0E0DC2FCC27075D1F4FC8010E94E2 | |
196 | -:100C3000B300C80FD11DDF93CF938DE791E09F9351 | |
197 | -:100C40008F930E94E20C9701A601BE01892D0E949C | |
198 | -:100C5000AE05CE0DDF1D6D2FC5010E9495000F90D2 | |
199 | -:100C60000F900F900F906C2FC801DF91CF911F91C3 | |
200 | -:100C70000F91FF90EF90DF90CF90BF90AF909F903B | |
201 | -:100C80000C9495000F931F93CF93DF93C82F85E9A2 | |
202 | -:100C900091E00E94F80CD0E02496DC2FCC278E0146 | |
203 | -:100CA0000F5F1F4F60E1C8010E949500C8010E94BC | |
204 | -:100CB000B3008111FBCF6FEFCE010296DF91CF9190 | |
205 | -:100CC0001F910F910C949500CF92DF92EF92FF92BB | |
206 | -:100CD0000F931F93CF93DF93C82FC62E8A01D22E76 | |
207 | -:100CE0008EE991E00E94F80C8FEF8C0DEC2EF12C28 | |
208 | -:100CF0008530D0F58C2F0E944206E7012496DC2F28 | |
209 | -:100D0000CC276C2D6D29CE010E949500CE01049652 | |
210 | -:100D10009E012B5F3F4F69010115110529F0612FDD | |
211 | -:100D20000E949500602F0FC020919C0330919D037D | |
212 | -:100D30002F5F3F4F30939D0320939C03632F0E94AE | |
213 | -:100D4000950060919C03C6010E9495008E010F5F83 | |
214 | -:100D50001F4F61E0C8010E949500C8010E94B300C6 | |
215 | -:100D60008111FBCF11E001C010E0E7012496DC2FD8 | |
216 | -:100D7000CC27CE010E94B300082FCE0103960E941B | |
217 | -:100D8000B3001F920F931F928F9388EA91E09F9375 | |
218 | -:100D90008F930E94E20C0F900F900F900F900F9086 | |
219 | -:100DA0000F90812FDF91CF911F910F91FF90EF90C6 | |
220 | -:100DB000DF90CF9008950F931F93CF93DF93C82FA9 | |
221 | -:100DC00089EC91E00E94F80CD0E02496DC2FCC272F | |
222 | -:100DD0008E010D5F1F4FC8010E94B3008331D9F40B | |
223 | -:100DE000219662E0CE010E949500CE010E94B300E0 | |
224 | -:100DF0008111FBCFC8010E94B3001F928F9383ED36 | |
225 | -:100E000091E09F938F930E94E20C0F900F900F90B0 | |
226 | -:100E10000F9081E005C081EE91E00E94F80C80E027 | |
227 | -:100E2000DF91CF911F910F910895CF93DF93C82F3A | |
228 | -:100E300088EF91E00E94F80CD0E0DC2FCC27CD5F4A | |
229 | -:100E4000DB4FCE010E94B3008431B1F4CE010E9489 | |
230 | -:100E5000B3008731D9F7CE010E94B3001F928F9360 | |
231 | -:100E600083ED91E09F938F930E94E20C0F900F907F | |
232 | -:100E70000F900F9081E005C082E092E00E94F80C94 | |
233 | -:100E800080E0DF91CF910895EF92FF920F931F932F | |
234 | -:100E9000CF93DF93C82F8B017A018AE192E00E9401 | |
235 | -:100EA000F80CF80160816F3F51F481818F3F99F414 | |
236 | -:100EB00082818F3F81F483818F3F69F40FC061117C | |
237 | -:100EC0000AC0F8018181811106C08281811103C0AD | |
238 | -:100ED0008381882319F0E114F10431F481EE91E06B | |
239 | -:100EE0000E94F80C80E02FC0D0E02496DC2FCC27A5 | |
240 | -:100EF000CE010C960E949500F8016181CE010D96FD | |
241 | -:100F00000E949500F8016281CE010E960E94950024 | |
242 | -:100F1000F8016381CE010F960E9495006F2DCE01DE | |
243 | -:100F200040960E9495006E2DCE0141960E9495003C | |
244 | -:100F3000219664E0CE010E949500CE010E94B3008C | |
245 | -:100F40008111FBCF81E0DF91CF911F910F91FF9035 | |
246 | -:100F5000EF900895CF93DF93C82F87E192E00E942E | |
247 | -:100F6000F80CD0E0DC2FCC27CF5FDB4F68E0CE0160 | |
248 | -:100F70000E949500CE010E94B3008111FBCFDF914A | |
249 | -:100F8000CF9108958F929F92AF92BF92CF92DF92AE | |
250 | -:100F9000EF92FF921F93CF93DF93182F4B017A01AB | |
251 | -:100FA00082E493E00E94F80C812F0E9468008E1565 | |
252 | -:100FB0009F0520F4812F0E9468007C01C12FD0E0A2 | |
253 | -:100FC0002496DC2FCC275E0183E0A80EB11C812F74 | |
254 | -:100FD0000E94AF046C01C5010E94B3008731A9F0E3 | |
255 | -:100FE0008C3199F0DF92CF921F921F9385E292E0AD | |
256 | -:100FF0009F938F930E94E20C0F900F900F900F9091 | |
257 | -:101000000F900F90E12CF12C03C0CE14DF04F8F206 | |
258 | -:10101000A701B401812F0E9467056E018FEFC81AE6 | |
259 | -:10102000D80A60E2C6010E949500C6010E94B30082 | |
260 | -:101030008111FBCF2296CE010E94B30084FD0FC028 | |
261 | -:10104000C5010E94B3008111F6CF8DE492E00E94A9 | |
262 | -:10105000F80C812F0E94420680E090E005C060E11C | |
263 | -:10106000CE010E949500C701DF91CF911F91FF90A3 | |
264 | -:10107000EF90DF90CF90BF90AF909F908F900895AA | |
265 | -:10108000BF92CF92DF92EF92FF920F931F93CF9375 | |
266 | -:10109000DF93B82E6B018A01C82FD0E02496DC2F95 | |
267 | -:1010A000CC277E0183E0E80EF11CC7010E94B3004B | |
268 | -:1010B000873191F0C7010E94B3001F928F938BE597 | |
269 | -:1010C00092E09F938F930E94E20C0F900F900F90ED | |
270 | -:1010D0000F908FEF9FEF26C080E00E94EB047C0111 | |
271 | -:1010E00018161906ECF48EE692E00E94F80CE01651 | |
272 | -:1010F000F10620F00115110589F001C08701A80152 | |
273 | -:10110000B6018B2D0E94F505219660E4CE010E9468 | |
274 | -:101110009500CE010E94B3008111FBCFC80102C02F | |
275 | -:1011200080E090E0DF91CF911F910F91FF90EF90C1 | |
276 | -:10113000DF90CF90BF9008958F929F92BF92CF92F1 | |
277 | -:10114000DF92EF92FF920F931F93CF93DF93B82E0E | |
278 | -:101150004B01EA01790186E792E00E94F80C8B2DA1 | |
279 | -:101160000E9468008C179D0728F48B2D0E94680050 | |
280 | -:101170006C0101C06E01F7016081611109C08181BC | |
281 | -:10118000811106C08281811103C08381882331F0DF | |
282 | -:101190000115110519F0C114D10429F5DF93CF937E | |
283 | -:1011A0001F930F93F70183811F928F9382811F9268 | |
284 | -:1011B0008F9381811F928F931F926F931F92BF9283 | |
285 | -:1011C00080E892E09F938F930E94E20C81EE91E081 | |
286 | -:1011D0000E94F80C8DB79EB740960FB6F8949EBF4C | |
287 | -:1011E0000FBE8DBF49C0CB2DD0E02496DC2FCC277D | |
288 | -:1011F000CE010C960E949500F7016181CE010D96FB | |
289 | -:101200000E949500F7016281CE010E960E94950022 | |
290 | -:10121000F7016381CE010F960E949500612FCE01E8 | |
291 | -:1012200040960E949500602FCE0141960E94950045 | |
292 | -:10123000A601B4018B2D0E9467058E010F5F1F4F21 | |
293 | -:1012400060E2C8010E949500C8010E94B3008111AC | |
294 | -:10125000FBCF2296CE010E94B30084FD10C0CE01C8 | |
295 | -:101260000E94B30083FFF6CF8CE593E00E94F80C58 | |
296 | -:1012700068E1CE010E94950080E090E005C060E149 | |
297 | -:10128000CE010E949500C601DF91CF911F910F9171 | |
298 | -:10129000FF90EF90DF90CF90BF909F908F90089538 | |
299 | -:1012A0002F923F924F925F926F927F928F929F9276 | |
300 | -:1012B000AF92BF92CF92DF92EF92FF920F931F9364 | |
301 | -:1012C000CF93DF93CDB7DEB72A970FB6F894DEBF82 | |
302 | -:1012D0000FBECDBF782E4B016A0179011A870987AD | |
303 | -:1012E0000E94EB04892B09F42BC188EA92E00E944A | |
304 | -:1012F000F80C872D0E94EB04682E392ECD2809F4B6 | |
305 | -:1013000017C1472C512C84E0480E511C542C442406 | |
306 | -:10131000520198E2A90EB11CC5010E94B300082F2A | |
307 | -:1013200010E0102F00276201E9E2CE0ED11CC601A9 | |
308 | -:101330000E94B300080F111D3F926F921F930F93ED | |
309 | -:1013400084EB92E09F938F930E94E20CC2010E9473 | |
310 | -:10135000B3000F900F900F900F900F900F90877029 | |
311 | -:10136000833009F464C0843009F4ABC0823009F0E2 | |
312 | -:10137000D0C028E030E0AE014F5F5F4FB801872D4D | |
313 | -:101380000E94AE051801F8E02F0E311C8981F7018B | |
314 | -:1013900080838A8181838B8182838C8183838D8109 | |
315 | -:1013A00090E0982F88272E81820F911DE985FA857C | |
316 | -:1013B000918380830F8110E0102F00278885080F0C | |
317 | -:1013C000111D1F930F9384ED92E09F938F930E94C2 | |
318 | -:1013D000E20CE985FA8581818F9380818F938AEE73 | |
319 | -:1013E00092E09F938F930E94E20CF70183811F92FA | |
320 | -:1013F0008F9382811F928F9381811F928F9380811F | |
321 | -:101400001F928F938DEF92E09F938F930E94E20C37 | |
322 | -:101410009801A401B101872D0E94AE057101E00E73 | |
323 | -:10142000F11E6F2DC5010E9495006E2D41C026E072 | |
324 | -:1014300030E0AE014F5F5F4FB801872D0E94AE05CF | |
325 | -:10144000180196E0290E311C8981F70180838A8179 | |
326 | -:1014500081838B8182838C8183830D8110E0102FA7 | |
327 | -:1014600000278E81080F111D87E193E00E94F80C80 | |
328 | -:10147000F70183811F928F9382811F928F938181C5 | |
329 | -:101480001F928F9380811F928F938DEF92E09F9395 | |
330 | -:101490008F930E94E20C9801A401B101872D0E9454 | |
331 | -:1014A000AE05200E311E632DC5010E949500622DF0 | |
332 | -:1014B000C6010E9495000FB6F894DEBF0FBECDBFE7 | |
333 | -:1014C0002AC022E030E0AE014F5F5F4FB801872DA8 | |
334 | -:1014D0000E94AE05780192E0E90EF11C098110E04E | |
335 | -:1014E000902F88270A8110E002501109080F191F58 | |
336 | -:1014F0009801A401B701872D0E94AE05E00EF11EF0 | |
337 | -:101500006F2DC5010E9495006E2DC6010E949500A9 | |
338 | -:1015100002C000E010E0EFEF4E1A5E0A60E4C20184 | |
339 | -:101520000E949500C2010E94B3008111FBCF02C04E | |
340 | -:1015300000E010E08BE293E00E94F80CC80102C0CA | |
341 | -:1015400080E090E02A960FB6F894DEBF0FBECDBFC4 | |
342 | -:10155000DF91CF911F910F91FF90EF90DF90CF908F | |
343 | -:10156000BF90AF909F908F907F906F905F904F90C3 | |
344 | -:101570003F902F900895CF92DF92FF920F931F9389 | |
345 | -:10158000CF93DF93F82E6B01EA018EE393E00E9484 | |
346 | -:10159000F80C8F2D0E9468008C179D0728F48F2D62 | |
347 | -:1015A0000E9468008C0101C08E010115110589F4AB | |
348 | -:1015B0001F921F92DF93CF938AE493E09F938F93C0 | |
349 | -:1015C0000E94E20C0F900F900F900F900F900F90D1 | |
350 | -:1015D00030C0A801B6018F2D0E946705CF2DD0E045 | |
351 | -:1015E0002496DC2FCC276E018FEFC81AD80A60E250 | |
352 | -:1015F000C6010E949500C6010E94B3008111FBCF75 | |
353 | -:101600006E0182E0C80ED11C2396C6010E94B30071 | |
354 | -:1016100084FD12C0CE010E94B300C6010E94B30037 | |
355 | -:1016200083FFF3CF88E593E00E94F80C8F2D0E9492 | |
356 | -:10163000420680E090E005C060E1C6010E9495008E | |
357 | -:10164000C801DF91CF911F910F91FF90DF90CF9054 | |
358 | -:101650000895CF92DF92EF92FF920F931F93CF9353 | |
359 | -:10166000DF936C017B018A01E9010E947E0265E53E | |
360 | -:1016700085E50E942201C6010E94CD02C7010E9499 | |
361 | -:10168000F002C8010E948102CE01DF91CF911F912B | |
362 | -:101690000F91FF90EF90DF90CF900C94B402809365 | |
363 | -:1016A000BB0084E88093BC008091BC0087FFFCCF26 | |
364 | -:1016B00008951092B9008CE08093B80084E0809384 | |
365 | -:1016C000BC000895CF9394EA9093BC009091BC0025 | |
366 | -:1016D00097FFFCCF9091B900987F983011F080E08F | |
367 | -:1016E00015C0C62F880F0E944F0B8091B900887FCC | |
368 | -:1016F0008831A9F78C2F0E944F0B8091B900887F09 | |
369 | -:10170000883269F784E98093BC0081E0CF91089525 | |
370 | -:10171000CF93DF9394EA9093BC009091BC0097FF25 | |
371 | -:10172000FCCF9091B900987F983011F080E01EC0F6 | |
372 | -:10173000C42FD62F880F0E944F0B8091B900887F4D | |
373 | -:101740008831A1F78D2F0E944F0B8091B900887FBF | |
374 | -:10175000883261F78C2F0E944F0B8091B900887FEF | |
375 | -:10176000883221F784E98093BC0081E0DF91CF913A | |
376 | -:101770000895092E000CAA0BBB0B9C01AD0184E05F | |
377 | -:10178000220F331F441F551F8A95D1F760E074E282 | |
378 | -:1017900084EF90E00E94C00C215031093093C500C5 | |
379 | -:1017A0002093C40088E18093C10086E08093C2004A | |
380 | -:1017B000E0ECF0E080818D7F808308959091C000FF | |
381 | -:1017C00095FFFCCF8093C6000895CF93C82F8A3031 | |
382 | -:1017D00019F48DE00E94DE0B8C2F0E94DE0B80E05E | |
383 | -:1017E00090E0CF9108958091C00087FFFCCF809159 | |
384 | -:1017F000C600089580E895E20E94B90B80E091E070 | |
385 | -:101800009093A1038093A00308958F929F92AF922B | |
386 | -:10181000BF92CF92DF92EF92FF920F931F93CF93DD | |
387 | -:10182000DF93CDB7DEB7EA970FB6F894DEBF0FBEF1 | |
388 | -:10183000CDBF86E0EEE0F1E0DE015F9601900D9213 | |
389 | -:101840008A95E1F72CEA29AB9AE19AAB81E98BAB57 | |
390 | -:101850003DEC3CAB2DA79EA78FA78EEF88AB8FEFFB | |
391 | -:1018600089A78AA78BA71CA60E94FA0B9E01275D59 | |
392 | -:101870003F4FAE01435D5F4FBE016F5C7F4FCE01B6 | |
393 | -:101880004F960E94290B20E044EE57E062E080E092 | |
394 | -:101890000E946406882309F45EC020E044EE57E00D | |
395 | -:1018A00061E081E00E946406882309F454C04E017F | |
396 | -:1018B00085E3880E911C84E1A82E81E0B82E6E018C | |
397 | -:1018C00091E1C90ED11C9EE1E92E91E0F92E8E0125 | |
398 | -:1018D000075C1F4F9E012B5D3F4F40E150E0BE0172 | |
399 | -:1018E0006F5F7F4F80E00E945009419781F78981A7 | |
400 | -:1018F0008DAB8A818EAB8B818FAB18AE8C81898B3F | |
401 | -:101900008D818A8B8E818B8B8F818C8B88858D8B43 | |
402 | -:1019100089858E8B8A858F8B8B85888F8C85898F27 | |
403 | -:101920008D858A8F8E858B8F8F858C8F88898D8F03 | |
404 | -:101930001E8E9F928F92BF92AF920E94E20CDF9216 | |
405 | -:10194000CF92FF92EF920E94E20C0FB6F894DEBFA6 | |
406 | -:101950000FBECDBFBCCF8FEF9FEFEA960FB6F894C6 | |
407 | -:10196000DEBF0FBECDBFDF91CF911F910F91FF90D2 | |
408 | -:10197000EF90DF90CF90BF90AF909F908F900895A1 | |
409 | -:10198000A1E21A2EAA1BBB1BFD010DC0AA1FBB1F83 | |
410 | -:10199000EE1FFF1FA217B307E407F50720F0A21BF5 | |
411 | -:1019A000B30BE40BF50B661F771F881F991F1A9462 | |
412 | -:1019B00069F760957095809590959B01AC01BD018C | |
413 | -:1019C000CF010895A0E0B0E0E8EEFCE00C94B60F83 | |
414 | -:1019D000AE014B5F5F4FFA0161917191AF01809150 | |
415 | -:1019E000A0039091A1030E94280DE2E00C94D20F75 | |
416 | -:1019F0000F931F93CF93DF93E091A003F091A10386 | |
417 | -:101A0000238121FF1BC08C01D0E0C0E0F80181914F | |
418 | -:101A10008F016091A0037091A103DB011896ED91F5 | |
419 | -:101A2000FC911997882331F00995892B79F3DFEF21 | |
420 | -:101A3000CFEFECCF8AE00995892B19F08FEF9FEF5C | |
421 | -:101A400002C08D2F9C2FDF91CF911F910F91089590 | |
422 | -:101A5000ACE0B0E0EEE2FDE00C94A60F7C016B017F | |
423 | -:101A60008A01FC0117821682838181FFBDC1CE01EC | |
424 | -:101A700001964C01F7019381F60193FD859193FF47 | |
425 | -:101A800081916F01882309F4ABC1853239F493FD4C | |
426 | -:101A9000859193FF81916F01853229F4B70190E020 | |
427 | -:101AA0000E94100FE7CF512C312C20E02032A0F4FF | |
428 | -:101AB0008B3269F030F4803259F0833269F420615E | |
429 | -:101AC0002CC08D3239F0803339F4216026C0226079 | |
430 | -:101AD000246023C0286021C027FD27C030ED380FC7 | |
431 | -:101AE0003A3078F426FF06C0FAE05F9E300D1124EC | |
432 | -:101AF000532E13C08AE0389E300D1124332E2062FD | |
433 | -:101B00000CC08E3221F426FD6BC1206406C08C36D9 | |
434 | -:101B100011F4206802C0883641F4F60193FD8591E6 | |
435 | -:101B200093FF81916F018111C1CF982F9F7D9554B3 | |
436 | -:101B3000933028F40C5F1F4FFFE3F9830DC0833609 | |
437 | -:101B400031F0833771F0833509F05BC022C0F801B2 | |
438 | -:101B5000808189830E5F1F4F44244394512C54018C | |
439 | -:101B600015C03801F2E06F0E711CF801A080B18041 | |
440 | -:101B700026FF03C0652D70E002C06FEF7FEFC50147 | |
441 | -:101B80002C870E94050F2C0183012C852F77222E94 | |
442 | -:101B900017C03801F2E06F0E711CF801A080B1800F | |
443 | -:101BA00026FF03C0652D70E002C06FEF7FEFC50117 | |
444 | -:101BB0002C870E94FA0E2C012C852068222E83018E | |
445 | -:101BC00023FC1BC0832D90E048165906B0F4B701E2 | |
446 | -:101BD00080E290E00E94100F3A94F4CFF50127FCC8 | |
447 | -:101BE000859127FE81915F01B70190E00E94100F5F | |
448 | -:101BF00031103A94F1E04F1A51084114510471F731 | |
449 | -:101C0000E5C0843611F0893639F5F80127FF07C0A1 | |
450 | -:101C100060817181828193810C5F1F4F08C0608158 | |
451 | -:101C20007181072E000C880B990B0E5F1F4F2F76CA | |
452 | -:101C3000722E97FF09C090958095709561957F4FA2 | |
453 | -:101C40008F4F9F4F2068722E2AE030E0A4010E943F | |
454 | -:101C5000480FA82EA81844C0853729F42F7EB22E2D | |
455 | -:101C60002AE030E025C0F22FF97FBF2E8F36C1F079 | |
456 | -:101C700018F4883579F0B4C0803719F0883721F02E | |
457 | -:101C8000AFC02F2F2061B22EB4FE0DC08B2D84600B | |
458 | -:101C9000B82E09C024FF0AC09F2F9660B92E06C037 | |
459 | -:101CA00028E030E005C020E130E002C020E132E071 | |
460 | -:101CB000F801B7FE07C060817181828193810C5F5A | |
461 | -:101CC0001F4F06C06081718180E090E00E5F1F4F62 | |
462 | -:101CD000A4010E94480FA82EA818FB2DFF777F2E85 | |
463 | -:101CE00076FE0BC0372D3E7FA51450F474FE0AC05B | |
464 | -:101CF00072FC08C0372D3E7E05C0BA2C372D03C0BC | |
465 | -:101D0000BA2C01C0B52C34FF0DC0FE01EA0DF11D47 | |
466 | -:101D10008081803311F4397E09C032FF06C0B3944C | |
467 | -:101D2000B39404C0832F867809F0B39433FD13C0B5 | |
468 | -:101D300030FF06C05A2CB31418F4530C5B18B32CA4 | |
469 | -:101D4000B31468F4B70180E290E03C870E94100F62 | |
470 | -:101D5000B3943C85F5CFB31410F43B1801C0312C7B | |
471 | -:101D600034FF12C0B70180E390E03C870E94100F5F | |
472 | -:101D70003C8532FF17C031FD03C088E790E002C008 | |
473 | -:101D800088E590E0B7010CC0832F867859F031FFC9 | |
474 | -:101D900002C08BE201C080E237FD8DE2B70190E026 | |
475 | -:101DA0000E94100FA51438F4B70180E390E00E9460 | |
476 | -:101DB000100F5A94F7CFAA94F401EA0DF11D808117 | |
477 | -:101DC000B70190E00E94100FA110F5CF332009F465 | |
478 | -:101DD00051CEB70180E290E00E94100F3A94F6CF06 | |
479 | -:101DE000F7018681978102C08FEF9FEF2C96E2E189 | |
480 | -:101DF0000C94C20FFC010590615070400110D8F79F | |
481 | -:101E0000809590958E0F9F1F0895FC016150704042 | |
482 | -:101E100001900110D8F7809590958E0F9F1F08951F | |
483 | -:101E20000F931F93CF93DF93FB01238121FD03C009 | |
484 | -:101E30008FEF9FEF28C022FF16C046815781248173 | |
485 | -:101E400035814217530744F4A081B1819D012F5F72 | |
486 | -:101E50003F4F318320838C93268137812F5F3F4F03 | |
487 | -:101E60003783268310C0EB01092F182F0084F185DA | |
488 | -:101E7000E02D0995892BE1F68E819F8101969F8344 | |
489 | -:101E80008E83812F902FDF91CF911F910F91089515 | |
490 | -:101E9000FA01AA27283051F1203181F1E8946F939B | |
491 | -:101EA0006E7F6E5F7F4F8F4F9F4FAF4FB1E03ED041 | |
492 | -:101EB000B4E03CD0670F781F891F9A1FA11D680FDF | |
493 | -:101EC000791F8A1F911DA11D6A0F711D811D911D12 | |
494 | -:101ED000A11D20D009F468943F912AE0269F112487 | |
495 | -:101EE0003019305D3193DEF6CF010895462F4770EB | |
496 | -:101EF000405D4193B3E00FD0C9F7F6CF462F4F7046 | |
497 | -:101F0000405D4A3318F0495D31FD4052419302D0A3 | |
498 | -:101F1000A9F7EACFB4E0A695979587957795679549 | |
499 | -:101F2000BA95C9F700976105710508959B01AC0149 | |
500 | -:101F30000A2E06945795479537952795BA95C9F770 | |
501 | -:101F4000620F731F841F951FA01D08952F923F924B | |
502 | -:101F50004F925F926F927F928F929F92AF92BF92B9 | |
503 | -:101F6000CF92DF92EF92FF920F931F93CF93DF9365 | |
504 | -:101F7000CDB7DEB7CA1BDB0B0FB6F894DEBF0FBEC2 | |
505 | -:101F8000CDBF09942A88398848885F846E847D840F | |
506 | -:101F90008C849B84AA84B984C884DF80EE80FD8011 | |
507 | -:101FA0000C811B81AA81B981CE0FD11D0FB6F89487 | |
508 | -:0E1FB000DEBF0FBECDBFED010895F894FFCF48 | |
509 | -:101FBE000000000200000000E50B00000000A0BDC4 | |
510 | -:101FCE00CDDDEDFD436F6D203A2025730A0050657F | |
511 | -:101FDE0072203A2025730A00737973696E6974282A | |
512 | -:101FEE00290D004368616E6E656C203A2053454E94 | |
513 | -:101FFE0044204D454D2053495A45203A20524543E1 | |
514 | -:10200E0056204D454D2053495A450D002564203A22 | |
515 | -:10201E0020252E3478203A20252E3478203A20257B | |
516 | -:10202E002E3478203A20252E34780D0A004953524A | |
517 | -:10203E005F52583A2072645F707472203A20252ED7 | |
518 | -:10204E0034780D0A00636C6F736528290D00736F69 | |
519 | -:10205E00636B657428290D00536E5F5352203D202B | |
520 | -:10206E00252E3278202C2050726F746F636F6C2087 | |
521 | -:10207E003D20252E32780D0A006C697374656E282A | |
522 | -:10208E00290D00737461747573203D2025780D0A37 | |
523 | -:10209E00004661696C5B696E76616C69642069707B | |
524 | -:1020AE002C706F72745D0D00616363657074282906 | |
525 | -:1020BE000D004661696C5B6E6F74206C697374659C | |
526 | -:1020CE006E696E675D0D00646973636F6E6E656336 | |
527 | -:1020DE007428290D00736F636B6574202564206668 | |
528 | -:1020EE0072656573697A652825642920656D70743B | |
529 | -:1020FE0079206F72206572726F720D0A00534F4312 | |
530 | -:10210E004B5F434C4F5345442E0D00426164207388 | |
531 | -:10211E007461747573203D20253032780A00726523 | |
532 | -:10212E00637628290D0073656E64746F28290D007F | |
533 | -:10213E002564204661696C5B252E32782E252E3261 | |
534 | -:10214E00782E252E32782E252E32782C20252E64B0 | |
535 | -:10215E002C2025645D0D0A007265637666726F6DC4 | |
536 | -:10216E0028290D004953525F52583A2072645F700D | |
537 | -:10217E007472203A20252E34782073697A653D25B5 | |
538 | -:10218E00640D0A00554450206D736720232564208A | |
539 | -:10219E00617272697665640D0A00736F757263659C | |
540 | -:1021AE0020506F7274203A2025750D0A00736F75DA | |
541 | -:1021BE00726365204950203A2025642E25642E2511 | |
542 | -:1021CE00642E25640D0A00495020524157206D732C | |
543 | -:1021DE006720617272697665640D0072656376665A | |
544 | -:1021EE00726F6D282920656E64202E2E0D00696792 | |
545 | -:1021FE006D7073656E6428290D0025642046616933 | |
546 | -:10220E006C5B25645D0D0A0069676D7073656E64A5 | |
547 | -:08221E00206661696C2E0D00C1 | |
193 | +:100C0000DA01A901E82FF0E0EE0FFF1FEF01C45356 | |
194 | +:100C1000DC4F888199816B01C822D922EF01C4552C | |
195 | +:100C2000DC4FE880F980C6018E0D9F1DE454FC4F17 | |
196 | +:100C3000C081D1819601240F351FC217D30780F4DC | |
197 | +:100C40008A015D01CC19DD09AE01BD010E9441019F | |
198 | +:100C5000A8014C1B5D0BB5016C0F7D1FC70101C0C6 | |
199 | +:100C6000BD01DF91CF911F910F91FF90EF90DF9029 | |
200 | +:100C7000CF90BF90AF900C9441019F92AF92BF92E2 | |
201 | +:100C8000CF92DF92EF92FF920F931F93CF93DF9358 | |
202 | +:100C9000982E6B017A01082F10E00C5F1F4F102F68 | |
203 | +:100CA0000027580188E2A80EB11CC5010E94FB0074 | |
204 | +:100CB000C82FD0E0DC2FCC27075D1F4FC8010E9452 | |
205 | +:100CC000FB00C80FD11DDF93CF938FEB91E09F9373 | |
206 | +:100CD0008F930E94F50C9701A601BE01892D0E94F9 | |
207 | +:100CE000F605CE0DDF1D6D2FC5010E94DD000F90B2 | |
208 | +:100CF0000F900F900F906C2FC801DF91CF911F9133 | |
209 | +:100D00000F91FF90EF90DF90CF90BF90AF909F90AA | |
210 | +:100D10000C94DD000F931F93CF93DF93C82F87EDC3 | |
211 | +:100D200091E00E940B0DD0E02496DC2FCC278E01A1 | |
212 | +:100D30000F5F1F4F60E1C8010E94DD00C8010E94E3 | |
213 | +:100D4000FB008111FBCF6FEFCE010296DF91CF91B7 | |
214 | +:100D50001F910F910C94DD00CF92DF92EF92FF92E2 | |
215 | +:100D60000F931F93CF93DF93C82FC62E8A01D22EE5 | |
216 | +:100D700080EE91E00E940B0D8FEF8C0DEC2EF12C8C | |
217 | +:100D80008530D0F58C2F0E948A06E7012496DC2F4F | |
218 | +:100D9000CC276C2D6D29CE010E94DD00CE0104967A | |
219 | +:100DA0009E012B5F3F4F69010115110529F0612F4D | |
220 | +:100DB0000E94DD00602F0FC02091E0033091E1031D | |
221 | +:100DC0002F5F3F4F3093E1032093E003632F0E9496 | |
222 | +:100DD000DD006091E003C6010E94DD008E010F5F1F | |
223 | +:100DE0001F4F61E0C8010E94DD00C8010E94FB00A6 | |
224 | +:100DF0008111FBCF11E001C010E0E7012496DC2F48 | |
225 | +:100E0000CC27CE010E94FB00082FCE0103960E9442 | |
226 | +:100E1000FB001F920F931F928F938AEE91E09F9396 | |
227 | +:100E20008F930E94F50C0F900F900F900F900F90E2 | |
228 | +:100E30000F90812FDF91CF911F910F91FF90EF9035 | |
229 | +:100E4000DF90CF9008950F931F93CF93DF93C82F18 | |
230 | +:100E50008BE092E00E940B0DD0E02496DC2FCC2793 | |
231 | +:100E60008E010D5F1F4FC8010E94FB008331D9F432 | |
232 | +:100E7000219662E0CE010E94DD00CE010E94FB00BF | |
233 | +:100E80008111FBCFC8010E94FB001F928F9385E167 | |
234 | +:100E900092E09F938F930E94F50C0F900F900F900C | |
235 | +:100EA0000F9081E005C083E292E00E940B0D80E08C | |
236 | +:100EB000DF91CF911F910F910895CF93DF93C82FAA | |
237 | +:100EC0008AE392E00E940B0DD0E0DC2FCC27CD5FAF | |
238 | +:100ED000DB4FCE010E94FB008431B1F4CE010E94B1 | |
239 | +:100EE000FB008731D9F7CE010E94FB001F928F9340 | |
240 | +:100EF00085E192E09F938F930E94F50C0F900F90E5 | |
241 | +:100F00000F900F9081E005C084E492E00E940B0DE9 | |
242 | +:100F100080E0DF91CF910895EF92FF920F931F939E | |
243 | +:100F2000CF93DF93C82F8B017A018CE592E00E946A | |
244 | +:100F30000B0DF80160816F3F51F481818F3F99F46F | |
245 | +:100F400082818F3F81F483818F3F69F40FC06111EB | |
246 | +:100F50000AC0F8018181811106C08281811103C01C | |
247 | +:100F60008381882319F0E114F10431F483E292E0E3 | |
248 | +:100F70000E940B0D80E02FC0D0E02496DC2FCC2700 | |
249 | +:100F8000CE010C960E94DD00F8016181CE010D9624 | |
250 | +:100F90000E94DD00F8016281CE010E960E94DD0004 | |
251 | +:100FA000F8016381CE010F960E94DD006F2DCE0106 | |
252 | +:100FB00040960E94DD006E2DCE0141960E94DD001C | |
253 | +:100FC000219664E0CE010E94DD00CE010E94FB006C | |
254 | +:100FD0008111FBCF81E0DF91CF911F910F91FF90A5 | |
255 | +:100FE000EF900895CF93DF93C82F89E592E00E9498 | |
256 | +:100FF0000B0DD0E0DC2FCC27CF5FDB4F68E0CE01BC | |
257 | +:101000000E94DD00CE010E94FB008111FBCFDF9129 | |
258 | +:10101000CF9108958F929F92AF92BF92CF92DF921D | |
259 | +:10102000EF92FF921F93CF93DF93182F4B017A011A | |
260 | +:1010300084E893E00E940B0D812F0E94B0008E1572 | |
261 | +:101040009F0520F4812F0E94B0007C01C12FD0E0C9 | |
262 | +:101050002496DC2FCC275E0183E0A80EB11C812FE3 | |
263 | +:101060000E94F7046C01C5010E94FB008731A9F0C2 | |
264 | +:101070008C3199F0DF92CF921F921F9387E692E016 | |
265 | +:101080009F938F930E94F50C0F900F900F900F90ED | |
266 | +:101090000F900F90E12CF12C03C0CE14DF04F8F276 | |
267 | +:1010A000A701B401812F0E94AF056E018FEFC81A0E | |
268 | +:1010B000D80A60E2C6010E94DD00C6010E94FB0062 | |
269 | +:1010C0008111FBCF2296CE010E94FB0084FD0FC050 | |
270 | +:1010D000C5010E94FB008111F6CF8FE892E00E94CB | |
271 | +:1010E0000B0D812F0E948A0680E090E005C060E130 | |
272 | +:1010F000CE010E94DD00C701DF91CF911F91FF90CB | |
273 | +:10110000EF90DF90CF90BF90AF909F908F90089519 | |
274 | +:10111000BF92CF92DF92EF92FF920F931F93CF93E4 | |
275 | +:10112000DF93B82E6B018A01C82FD0E02496DC2F04 | |
276 | +:10113000CC277E0183E0E80EF11CC7010E94FB0072 | |
277 | +:10114000873191F0C7010E94FB001F928F938DE9B8 | |
278 | +:1011500092E09F938F930E94F50C0F900F900F9049 | |
279 | +:101160000F908FEF9FEF26C080E00E9433057C0137 | |
280 | +:1011700018161906ECF480EB92E00E940B0DE016B5 | |
281 | +:10118000F10620F00115110589F001C08701A801C1 | |
282 | +:10119000B6018B2D0E943D06219660E4CE010E948F | |
283 | +:1011A000DD00CE010E94FB008111FBCFC80102C00F | |
284 | +:1011B00080E090E0DF91CF911F910F91FF90EF9031 | |
285 | +:1011C000DF90CF90BF9008958F929F92BF92CF9261 | |
286 | +:1011D000DF92EF92FF920F931F93CF93DF93B82E7E | |
287 | +:1011E0004B01EA01790188EB92E00E940B0D8B2DF7 | |
288 | +:1011F0000E94B0008C179D0728F48B2D0E94B00030 | |
289 | +:101200006C0101C06E01F7016081611109C081812B | |
290 | +:10121000811106C08281811103C08381882331F04E | |
291 | +:101220000115110519F0C114D10429F5DF93CF93ED | |
292 | +:101230001F930F93F70183811F928F9382811F92D7 | |
293 | +:101240008F9381811F928F931F926F931F92BF92F2 | |
294 | +:1012500082EC92E09F938F930E94F50C83E292E0E0 | |
295 | +:101260000E940B0D8DB79EB740960FB6F8949EBFA7 | |
296 | +:101270000FBE8DBF49C0CB2DD0E02496DC2FCC27EC | |
297 | +:10128000CE010C960E94DD00F7016181CE010D9622 | |
298 | +:101290000E94DD00F7016281CE010E960E94DD0002 | |
299 | +:1012A000F7016381CE010F960E94DD00612FCE0110 | |
300 | +:1012B00040960E94DD00602FCE0141960E94DD0025 | |
301 | +:1012C000A601B4018B2D0E94AF058E010F5F1F4F49 | |
302 | +:1012D00060E2C8010E94DD00C8010E94FB0081118C | |
303 | +:1012E000FBCF2296CE010E94FB0084FD10C0CE01F0 | |
304 | +:1012F0000E94FB0083FFF6CF8EE993E00E940B0D66 | |
305 | +:1013000068E1CE010E94DD0080E090E005C060E170 | |
306 | +:10131000CE010E94DD00C601DF91CF911F910F9198 | |
307 | +:10132000FF90EF90DF90CF90BF909F908F900895A7 | |
308 | +:101330002F923F924F925F926F927F928F929F92E5 | |
309 | +:10134000AF92BF92CF92DF92EF92FF920F931F93D3 | |
310 | +:10135000CF93DF93CDB7DEB72A970FB6F894DEBFF1 | |
311 | +:101360000FBECDBF782E4B016A0179011A8709871C | |
312 | +:101370000E943305892B09F42BC18AEE92E00E946A | |
313 | +:101380000B0D872D0E943305682E392ECD2809F4C8 | |
314 | +:1013900017C1472C512C84E0480E511C542C442476 | |
315 | +:1013A000520198E2A90EB11CC5010E94FB00082F52 | |
316 | +:1013B00010E0102F00276201E9E2CE0ED11CC60119 | |
317 | +:1013C0000E94FB00080F111D3F926F921F930F9315 | |
318 | +:1013D00086EF92E09F938F930E94F50CC2010E94CA | |
319 | +:1013E000FB000F900F900F900F900F900F90877051 | |
320 | +:1013F000833009F464C0843009F4ABC0823009F052 | |
321 | +:10140000D0C028E030E0AE014F5F5F4FB801872DBC | |
322 | +:101410000E94F6051801F8E02F0E311C8981F701B2 | |
323 | +:1014200080838A8181838B8182838C8183838D8178 | |
324 | +:1014300090E0982F88272E81820F911DE985FA85EB | |
325 | +:10144000918380830F8110E0102F00278885080F7B | |
326 | +:10145000111D1F930F9386E193E09F938F930E943A | |
327 | +:10146000F50CE985FA8581818F9380818F938CE2D9 | |
328 | +:1014700093E09F938F930E94F50CF70183811F9255 | |
329 | +:101480008F9382811F928F9381811F928F9380818E | |
330 | +:101490001F928F938FE393E09F938F930E94F50C9D | |
331 | +:1014A0009801A401B101872D0E94F6057101E00E9B | |
332 | +:1014B000F11E6F2DC5010E94DD006E2D41C026E09A | |
333 | +:1014C00030E0AE014F5F5F4FB801872D0E94F605F7 | |
334 | +:1014D000180196E0290E311C8981F70180838A81E9 | |
335 | +:1014E00081838B8182838C8183830D8110E0102F17 | |
336 | +:1014F00000278E81080F111D89E593E00E940B0DD6 | |
337 | +:10150000F70183811F928F9382811F928F93818134 | |
338 | +:101510001F928F9380811F928F938FE393E09F930D | |
339 | +:101520008F930E94F50C9801A401B101872D0E94B0 | |
340 | +:10153000F605200E311E632DC5010E94DD00622DCF | |
341 | +:10154000C6010E94DD000FB6F894DEBF0FBECDBF0E | |
342 | +:101550002AC022E030E0AE014F5F5F4FB801872D17 | |
343 | +:101560000E94F605780192E0E90EF11C098110E075 | |
344 | +:10157000902F88270A8110E002501109080F191FC7 | |
345 | +:101580009801A401B701872D0E94F605E00EF11E17 | |
346 | +:101590006F2DC5010E94DD006E2DC6010E94DD0089 | |
347 | +:1015A00002C000E010E0EFEF4E1A5E0A60E4C201F4 | |
348 | +:1015B0000E94DD00C2010E94FB008111FBCF02C02E | |
349 | +:1015C00000E010E08DE693E00E940B0DC80102C020 | |
350 | +:1015D00080E090E02A960FB6F894DEBF0FBECDBF34 | |
351 | +:1015E000DF91CF911F910F91FF90EF90DF90CF90FF | |
352 | +:1015F000BF90AF909F908F907F906F905F904F9033 | |
353 | +:101600003F902F900895CF92DF92FF920F931F93F8 | |
354 | +:10161000CF93DF93F82E6B01EA0180E893E00E94FC | |
355 | +:101620000B0D8F2D0E94B0008C179D0728F48F2D75 | |
356 | +:101630000E94B0008C0101C08E010115110589F4D2 | |
357 | +:101640001F921F92DF93CF938CE893E09F938F9329 | |
358 | +:101650000E94F50C0F900F900F900F900F900F902D | |
359 | +:1016600030C0A801B6018F2D0E94AF05CF2DD0E06C | |
360 | +:101670002496DC2FCC276E018FEFC81AD80A60E2BF | |
361 | +:10168000C6010E94DD00C6010E94FB008111FBCF54 | |
362 | +:101690006E0182E0C80ED11C2396C6010E94FB0099 | |
363 | +:1016A00084FD12C0CE010E94FB00C6010E94FB0017 | |
364 | +:1016B00083FFF3CF8AE993E00E940B0D8F2D0E94E8 | |
365 | +:1016C0008A0680E090E005C060E1C6010E94DD006E | |
366 | +:1016D000C801DF91CF911F910F91FF90DF90CF90C4 | |
367 | +:1016E0000895CF92DF92EF92FF920F931F93CF93C3 | |
368 | +:1016F000DF936C017B018A01E9010E94C60265E566 | |
369 | +:1017000085E50E946A01C6010E941503C7010E9477 | |
370 | +:101710003803C8010E94C902CE01DF91CF911F9109 | |
371 | +:101720000F91FF90EF90DF90CF900C94FC0280938C | |
372 | +:10173000BB0084E88093BC008091BC0087FFFCCF95 | |
373 | +:1017400008951092B9008CE08093B80084E08093F3 | |
374 | +:10175000BC000895CF9394EA9093BC009091BC0094 | |
375 | +:1017600097FFFCCF9091B900987F983011F080E0FE | |
376 | +:1017700015C0C62F880F0E94970B8091B900887FF3 | |
377 | +:101780008831A9F78C2F0E94970B8091B900887F30 | |
378 | +:10179000883269F784E98093BC0081E0CF91089595 | |
379 | +:1017A000CF93DF9394EA9093BC009091BC0097FF95 | |
380 | +:1017B000FCCF9091B900987F983011F080E01EC066 | |
381 | +:1017C000C42FD62F880F0E94970B8091B900887F75 | |
382 | +:1017D0008831A1F78D2F0E94970B8091B900887FE7 | |
383 | +:1017E000883261F78C2F0E94970B8091B900887F17 | |
384 | +:1017F000883221F784E98093BC0081E0DF91CF91AA | |
385 | +:101800000895092E000CAA0BBB0B9C01AD0184E0CE | |
386 | +:10181000220F331F441F551F8A95D1F760E074E2F1 | |
387 | +:1018200084EF90E00E94D30C215031093093C50021 | |
388 | +:101830002093C40088E18093C10086E08093C200B9 | |
389 | +:10184000E0ECF0E080818D7F808308959091C0006E | |
390 | +:1018500095FFFCCF8093C6000895CF93C82F8A30A0 | |
391 | +:1018600019F48DE00E94260C8C2F0E94260C80E03B | |
392 | +:1018700090E0CF9108958091C00087FFFCCF8091C8 | |
393 | +:10188000C600089580E895E20E94010C82E091E094 | |
394 | +:101890009093ED038093EC030895EF92FF920F93E2 | |
395 | +:1018A0001F93CF93DF93CDB7DEB764970FB6F8944D | |
396 | +:1018B000DEBF0FBECDBF86E0E0E1F1E0DE011196B4 | |
397 | +:1018C00001900D928A95E1F72CEA2F879AE1988B87 | |
398 | +:1018D00081E9898B3DEC3A8B2B879C878D878EEF36 | |
399 | +:1018E0008E878FEF8F83888789871A860E94420CA4 | |
400 | +:1018F0009E01295F3F4FAE01455F5F4FBE01615FB3 | |
401 | +:101900007F4FCE0101960E94710B20E044EE57E01C | |
402 | +:1019100062E08091AA030E94AC068823A9F120E02E | |
403 | +:1019200044EE57E061E0809100010E94AC068823FC | |
404 | +:1019300059F18AE5E82E81E0F82E08EE13E024EE56 | |
405 | +:1019400033E042E050E0BE016D5E7F4F8091AA031C | |
406 | +:101950000E9498098C018230910549F481E591E05B | |
407 | +:101960000E940B0DCE0143960E94530002C0892BAA | |
408 | +:1019700021F31F930F93FF92EF920E94F50C0F90AB | |
409 | +:101980000F900F900F90D9CF8FEF9FEF64960FB607 | |
410 | +:10199000F894DEBF0FBECDBFDF91CF911F910F91A5 | |
411 | +:1019A000FF90EF900895A1E21A2EAA1BBB1BFD0128 | |
412 | +:1019B0000DC0AA1FBB1FEE1FFF1FA217B307E4072E | |
413 | +:1019C000F50720F0A21BB30BE40BF50B661F771F86 | |
414 | +:1019D000881F991F1A9469F7609570958095909566 | |
415 | +:1019E0009B01AC01BD01CF010895A0E0B0E0EBEF99 | |
416 | +:1019F000FCE00C94C90FAE014B5F5F4FFA0161919F | |
417 | +:101A00007191AF018091EC039091ED030E943B0D29 | |
418 | +:101A1000E2E00C94E50F0F931F93CF93DF93E091D7 | |
419 | +:101A2000EC03F091ED03238121FF1BC08C01D0E07A | |
420 | +:101A3000C0E0F80181918F016091EC037091ED039A | |
421 | +:101A4000DB011896ED91FC911997882331F00995E7 | |
422 | +:101A5000892B79F3DFEFCFEFECCF8AE00995892B63 | |
423 | +:101A600019F08FEF9FEF02C08D2F9C2FDF91CF9148 | |
424 | +:101A70001F910F910895ACE0B0E0E1E4FDE00C941B | |
425 | +:101A8000B90F7C016B018A01FC01178216828381E8 | |
426 | +:101A900081FFBDC1CE0101964C01F7019381F60192 | |
427 | +:101AA00093FD859193FF81916F01882309F4ABC168 | |
428 | +:101AB000853239F493FD859193FF81916F018532D1 | |
429 | +:101AC00029F4B70190E00E94230FE7CF512C312C6D | |
430 | +:101AD00020E02032A0F48B3269F030F4803259F0EB | |
431 | +:101AE000833269F420612CC08D3239F0803339F4AF | |
432 | +:101AF000216026C02260246023C0286021C027FD09 | |
433 | +:101B000027C030ED380F3A3078F426FF06C0FAE0EF | |
434 | +:101B10005F9E300D1124532E13C08AE0389E300D85 | |
435 | +:101B20001124332E20620CC08E3221F426FD6BC1AD | |
436 | +:101B3000206406C08C3611F4206802C0883641F457 | |
437 | +:101B4000F60193FD859193FF81916F018111C1CFC2 | |
438 | +:101B5000982F9F7D9554933028F40C5F1F4FFFE31F | |
439 | +:101B6000F9830DC0833631F0833771F0833509F086 | |
440 | +:101B70005BC022C0F801808189830E5F1F4F44241F | |
441 | +:101B80004394512C540115C03801F2E06F0E711CC2 | |
442 | +:101B9000F801A080B18026FF03C0652D70E002C06F | |
443 | +:101BA0006FEF7FEFC5012C870E94180F2C01830176 | |
444 | +:101BB0002C852F77222E17C03801F2E06F0E711C92 | |
445 | +:101BC000F801A080B18026FF03C0652D70E002C03F | |
446 | +:101BD0006FEF7FEFC5012C870E940D0F2C012C8524 | |
447 | +:101BE0002068222E830123FC1BC0832D90E0481621 | |
448 | +:101BF0005906B0F4B70180E290E00E94230F3A94B6 | |
449 | +:101C0000F4CFF50127FC859127FE81915F01B70193 | |
450 | +:101C100090E00E94230F31103A94F1E04F1A5108DE | |
451 | +:101C20004114510471F7E5C0843611F0893639F555 | |
452 | +:101C3000F80127FF07C060817181828193810C5F69 | |
453 | +:101C40001F4F08C060817181072E000C880B990B13 | |
454 | +:101C50000E5F1F4F2F76722E97FF09C090958095CB | |
455 | +:101C6000709561957F4F8F4F9F4F2068722E2AE0AD | |
456 | +:101C700030E0A4010E945B0FA82EA81844C085374D | |
457 | +:101C800029F42F7EB22E2AE030E025C0F22FF97F12 | |
458 | +:101C9000BF2E8F36C1F018F4883579F0B4C0803784 | |
459 | +:101CA00019F0883721F0AFC02F2F2061B22EB4FE7B | |
460 | +:101CB0000DC08B2D8460B82E09C024FF0AC09F2F51 | |
461 | +:101CC0009660B92E06C028E030E005C020E130E083 | |
462 | +:101CD00002C020E132E0F801B7FE07C060817181E7 | |
463 | +:101CE000828193810C5F1F4F06C06081718180E00B | |
464 | +:101CF00090E00E5F1F4FA4010E945B0FA82EA81852 | |
465 | +:101D0000FB2DFF777F2E76FE0BC0372D3E7FA5146F | |
466 | +:101D100050F474FE0AC072FC08C0372D3E7E05C028 | |
467 | +:101D2000BA2C372D03C0BA2C01C0B52C34FF0DC01E | |
468 | +:101D3000FE01EA0DF11D8081803311F4397E09C066 | |
469 | +:101D400032FF06C0B394B39404C0832F867809F0A1 | |
470 | +:101D5000B39433FD13C030FF06C05A2CB31418F4EB | |
471 | +:101D6000530C5B18B32CB31468F4B70180E290E015 | |
472 | +:101D70003C870E94230FB3943C85F5CFB31410F435 | |
473 | +:101D80003B1801C0312C34FF12C0B70180E390E052 | |
474 | +:101D90003C870E94230F3C8532FF17C031FD03C0F2 | |
475 | +:101DA00088E790E002C088E590E0B7010CC0832F7F | |
476 | +:101DB000867859F031FF02C08BE201C080E237FD26 | |
477 | +:101DC0008DE2B70190E00E94230FA51438F4B7010B | |
478 | +:101DD00080E390E00E94230F5A94F7CFAA94F40175 | |
479 | +:101DE000EA0DF11D8081B70190E00E94230FA11040 | |
480 | +:101DF000F5CF332009F451CEB70180E290E00E9484 | |
481 | +:101E0000230F3A94F6CFF7018681978102C08FEFB6 | |
482 | +:101E10009FEF2C96E2E10C94D50FFC0105906150E8 | |
483 | +:101E200070400110D8F7809590958E0F9F1F0895F0 | |
484 | +:101E3000FC016150704001900110D8F78095909599 | |
485 | +:101E40008E0F9F1F08950F931F93CF93DF93FB0176 | |
486 | +:101E5000238121FD03C08FEF9FEF28C022FF16C012 | |
487 | +:101E600046815781248135814217530744F4A0816C | |
488 | +:101E7000B1819D012F5F3F4F318320838C93268159 | |
489 | +:101E800037812F5F3F4F3783268310C0EB01092F27 | |
490 | +:101E9000182F0084F185E02D0995892BE1F68E81BC | |
491 | +:101EA0009F8101969F838E83812F902FDF91CF9109 | |
492 | +:101EB0001F910F910895FA01AA27283051F120317E | |
493 | +:101EC00081F1E8946F936E7F6E5F7F4F8F4F9F4FCE | |
494 | +:101ED000AF4FB1E03ED0B4E03CD0670F781F891F10 | |
495 | +:101EE0009A1FA11D680F791F8A1F911DA11D6A0FDE | |
496 | +:101EF000711D811D911DA11D20D009F468943F9191 | |
497 | +:101F00002AE0269F11243019305D3193DEF6CF018F | |
498 | +:101F10000895462F4770405D4193B3E00FD0C9F755 | |
499 | +:101F2000F6CF462F4F70405D4A3318F0495D31FDC2 | |
500 | +:101F30004052419302D0A9F7EACFB4E0A695979515 | |
501 | +:101F4000879577956795BA95C9F7009761057105EB | |
502 | +:101F500008959B01AC010A2E069457954795379535 | |
503 | +:101F60002795BA95C9F7620F731F841F951FA01D8F | |
504 | +:101F700008952F923F924F925F926F927F928F922D | |
505 | +:101F80009F92AF92BF92CF92DF92EF92FF920F9308 | |
506 | +:101F90001F93CF93DF93CDB7DEB7CA1BDB0B0FB612 | |
507 | +:101FA000F894DEBF0FBECDBF09942A8839884888CF | |
508 | +:101FB0005F846E847D848C849B84AA84B984C88465 | |
509 | +:101FC000DF80EE80FD800C811B81AA81B981CE0F5C | |
510 | +:101FD000D11D0FB6F894DEBF0FBECDBFED01089541 | |
511 | +:041FE000F894FFCFA3 | |
512 | +:101FE400010100000002000000002D0C00000000B0 | |
513 | +:101FF400A0BDCDDDEDFD52455155455354205354FC | |
514 | +:102004004154555300534554202F20554E534554A5 | |
515 | +:1020140020534C454550004D4F44452045564549B5 | |
516 | +:102024004C4C45004D4F444520534F4D4D45494C74 | |
517 | +:1020340000524543454956454400204441544153C8 | |
518 | +:10204400495A45203D2025640A00737973696E69F5 | |
519 | +:102054007428290D004368616E6E656C203A205324 | |
520 | +:10206400454E44204D454D2053495A45203A20526F | |
521 | +:10207400454356204D454D2053495A450D0025648E | |
522 | +:10208400203A20252E3478203A20252E3478203A00 | |
523 | +:1020940020252E3478203A20252E34780D0A004944 | |
524 | +:1020A40053525F52583A2072645F707472203A201F | |
525 | +:1020B400252E34780D0A00636C6F736528290D0092 | |
526 | +:1020C400736F636B657428290D00536E5F53522040 | |
527 | +:1020D4003D20252E3278202C2050726F746F636F50 | |
528 | +:1020E4006C203D20252E32780D0A006C69737465CE | |
529 | +:1020F4006E28290D00737461747573203D20257852 | |
530 | +:102104000D0A004661696C5B696E76616C696420D6 | |
531 | +:1021140069702C706F72745D0D0061636365707417 | |
532 | +:1021240028290D004661696C5B6E6F74206C6973BD | |
533 | +:1021340074656E696E675D0D00646973636F6E6EBE | |
534 | +:1021440065637428290D00736F636B6574202564BF | |
535 | +:10215400206672656573697A652825642920656D32 | |
536 | +:10216400707479206F72206572726F720D0A005359 | |
537 | +:102174004F434B5F434C4F5345442E0D0042616423 | |
538 | +:1021840020737461747573203D20253032780A0001 | |
539 | +:102194007265637628290D0073656E64746F28294F | |
540 | +:1021A4000D002564204661696C5B252E32782E254E | |
541 | +:1021B4002E32782E252E32782E252E32782C20257C | |
542 | +:1021C4002E642C2025645D0D0A00726563766672A8 | |
543 | +:1021D4006F6D28290D004953525F52583A2072649A | |
544 | +:1021E4005F707472203A20252E34782073697A65E2 | |
545 | +:1021F4003D25640D0A00554450206D736720232546 | |
546 | +:102204006420617272697665640D0A00736F757279 | |
547 | +:10221400636520506F7274203A2025750D0A00738F | |
548 | +:102224006F75726365204950203A2025642E256419 | |
549 | +:102234002E25642E25640D0A004950205241572052 | |
550 | +:102244006D736720617272697665640D00726563EF | |
551 | +:102254007666726F6D282920656E64202E2E0D001F | |
552 | +:1022640069676D7073656E6428290D0025642046C6 | |
553 | +:1022740061696C5B25645D0D0A0069676D70736547 | |
554 | +:0A2284006E64206661696C2E0D0087 | |
548 | 555 | :00000001FF | ... | ... |
No preview for this file type
Threads/Makefile
... | ... | @@ -14,15 +14,18 @@ LDFLAGS=-lpthread |
14 | 14 | |
15 | 15 | all: $(LIB) |
16 | 16 | |
17 | -$(LIB): threadSocket.o | |
17 | +$(LIB): http.o threadSocket.o | |
18 | 18 | rm -f $@ |
19 | 19 | $(CLIBS) $(LDIR)$@ $^ |
20 | 20 | ranlib $(LDIR)$@ |
21 | 21 | rm -f *.o |
22 | - | |
22 | + | |
23 | + | |
23 | 24 | threadSocket.o: threadSocket.c |
24 | - $(CC) -o $@ -c $^ $(CFLAGS) $(LDFLAGS) | |
25 | + $(CC) -o $@ -c $^ -I$(IDIR) $(CFLAGS) | |
25 | 26 | |
27 | +http.o: ../Sioux/http.c | |
28 | + $(CC) -o $@ -c $^ -I$(IDIR) $(CFLAGS) | |
26 | 29 | |
27 | 30 | # |
28 | 31 | # La cible de nettoyage | ... | ... |
1 | +#include <sys/types.h> | |
2 | +#include <sys/socket.h> | |
3 | +#include <arpa/inet.h> | |
4 | +#include <netdb.h> | |
1 | 5 | #include <stdio.h> |
2 | 6 | #include <stdlib.h> |
3 | 7 | #include <pthread.h> |
4 | 8 | #include <string.h> |
5 | 9 | #include <unistd.h> |
10 | +#include <time.h> | |
11 | +#include "http.h" | |
12 | +#include "libnet.h" | |
13 | +#include "libthrd.h" | |
6 | 14 | |
7 | -#define BUFF_SIZE 1000 | |
8 | 15 | |
16 | +void vider_interfaces(struct interface_info* interfaces[20]) | |
17 | +{ | |
18 | + for(int i=0; i<20; i++) | |
19 | + { | |
20 | + if(interfaces[i]!=NULL) | |
21 | + { | |
22 | + free(interfaces[i]); | |
23 | + interfaces[i]=NULL; | |
24 | + } | |
25 | + } | |
26 | +} | |
9 | 27 | |
10 | 28 | |
29 | +int httpReponse(FILE* sockdial_stream, struct interface_info* interfaces[20]) | |
30 | +{ | |
31 | + char message[]={0x00,0x00}; | |
11 | 32 | |
12 | -struct PageWeb | |
13 | -{ | |
14 | - int size; | |
15 | - char* html_contents; | |
16 | -}; | |
33 | + sendUDPBroadcast(message, 2020); | |
17 | 34 | |
35 | + struct PageWeb* page; | |
18 | 36 | |
37 | + sleep(0.5); // Temps d'attente avant de recevoir les informations | |
19 | 38 | |
39 | + createPage(&page, interfaces); // Permet de creer la pageweb (http.c) | |
20 | 40 | |
21 | -void freePage(struct PageWeb** page) | |
22 | -{ | |
23 | - if(*page!=NULL) | |
24 | - { | |
25 | - if((*page)->html_contents!=NULL) free((*page)->html_contents); | |
26 | - free(*page); | |
27 | - } | |
28 | -} | |
41 | + char buffer[BUFF_SIZE]; // Le buffer de message pour l'emission | |
42 | + // char buff_rec[BUFF_SIZE]; // Le buffer de message à la reception | |
29 | 43 | |
44 | + strcat(buffer,"HTTP/1.1 200 OK\r\nServer: Serveur Sioux\r\nContent-Type: text/html; charset=UTF-8\r\nConnection: Keep-alive\r\n\r\n"); // Header HTTP | |
30 | 45 | |
46 | + fprintf(sockdial_stream, "%s", buffer); | |
31 | 47 | |
32 | -void getWeb(char* pageName, struct PageWeb** page) | |
33 | -{ | |
34 | - *page=malloc(sizeof(struct PageWeb)); | |
48 | + strcpy(buffer, page->html_contents); | |
35 | 49 | |
36 | - FILE* pageFile=fopen(pageName, "r+"); | |
50 | + fprintf(sockdial_stream, "%s", buffer); | |
37 | 51 | |
38 | - if(pageFile!=NULL) | |
39 | - { | |
40 | - fseek(pageFile, 0L, SEEK_END); | |
41 | - long nbr_char=ftell(pageFile); | |
42 | - fseek(pageFile, 0L, SEEK_SET); | |
52 | + freePage(&page); | |
43 | 53 | |
54 | + return 0; | |
55 | +} | |
44 | 56 | |
45 | - (*page)->html_contents=malloc(nbr_char*sizeof(char)); | |
46 | - fread(((*page)->html_contents),1,nbr_char,pageFile); | |
47 | 57 | |
48 | - (*page)->size=strlen(((*page)->html_contents)); | |
49 | - fclose(pageFile); | |
50 | - } | |
51 | - else | |
58 | + | |
59 | + | |
60 | +int interfaceReponse(FILE* sockdial_stream, char packet[BUFF_SIZE], struct interface_info* interfaces[20], char adresse[20]) | |
61 | +{ | |
62 | + printf("Interface : %s - Adresse : %s\n", packet, adresse); | |
63 | + | |
64 | + char buffer[BUFF_SIZE]; | |
65 | + | |
66 | + int i=0; | |
67 | + while(interfaces[i]!=NULL && strcmp(adresse,interfaces[i]->adresse)!=0) | |
52 | 68 | { |
53 | - char erreur[]="<h1> 404 PAGE NOT FOUND </h1>\r\n\r\n La page que vous cherchez n'a pas été trouvée, sans doute parce que vous êtes nul."; | |
54 | - (*page)->html_contents=malloc(strlen(erreur)*sizeof(char)); | |
55 | - strcpy((*page)->html_contents, erreur); | |
69 | + i++; | |
56 | 70 | } |
57 | 71 | |
58 | -} | |
72 | + if(interfaces[0]!=NULL) | |
73 | + printf("Il y a %d associations\n", i+1); | |
74 | + else | |
75 | + printf("Il n'y aucune association\n"); | |
59 | 76 | |
60 | 77 | |
78 | + if(interfaces[i]!=NULL) | |
79 | + interfaces[i]->status=-1; | |
61 | 80 | |
62 | 81 | |
63 | -void* reponseConnexion(void* sock) | |
64 | -{ | |
65 | - printf("Connected\n"); // Affiche le fait que qqn soit connecté | |
82 | + if(strlen(packet)>=2 && packet[0]=='A' && (packet[1]=='A' || packet[1]=='B') ) | |
83 | + { | |
84 | + //L'interface a correctement répondu, on la rajoute à la liste des interfaces | |
85 | + printf("L'interface a correctement répondu\n"); | |
66 | 86 | |
67 | - struct PageWeb* page; | |
87 | + if(interfaces[i]==NULL) | |
88 | + { | |
89 | + interfaces[i]=malloc(sizeof(struct interface_info)); | |
90 | + strcpy(interfaces[i]->adresse, adresse); | |
91 | + } | |
68 | 92 | |
69 | - getWeb("../Sioux/Page.html", &page); | |
93 | + if(packet[1]==0x01) | |
94 | + interfaces[i]->status=1; | |
95 | + else | |
96 | + interfaces[i]->status=0; | |
70 | 97 | |
71 | - char buff_rec[BUFF_SIZE]; | |
72 | - char buffer[BUFF_SIZE]; | |
98 | + } | |
99 | + else // L'interface n a pas correctement répondu | |
100 | + return -1; | |
73 | 101 | |
74 | - strcat(buffer,"HTTP/1.1 200 OK\r\nServer: Serveur fait maison\r\nContent-Type: text/html; charset=UTF-8\r\nConnection: Keep-alive\r\n\r\n"); | |
75 | - strcat(buffer, page->html_contents); | |
76 | 102 | |
77 | - freePage(&page); | |
78 | 103 | |
79 | - FILE* sockdial_stream = fdopen(*((int*)(sock)), "a+"); | |
80 | - | |
81 | - printf("Sock : %d // Stream : %p \n", *((int*)(sock)), sockdial_stream); | |
82 | - | |
83 | - fprintf(sockdial_stream, "%s", buffer); | |
104 | + strcpy(buffer, "\x60\x00"); // Demande la commande en mémoire | |
105 | + | |
106 | + fprintf(sockdial_stream, "%s", buffer); // Transmission du message | |
107 | + | |
108 | + fgets(packet, BUFF_SIZE, sockdial_stream); // Attente de reception du message | |
109 | + | |
110 | + | |
84 | 111 | |
85 | - printf("WAIT\n"); | |
112 | + if( strlen(packet)>=2 && (packet[0]&0xE0)==0x10 ) | |
113 | + interfaces[i]->commande = (packet[0]&0x01)*256+packet[1]; | |
114 | + else | |
115 | + { | |
116 | + interfaces[i]->commande = -1; | |
117 | + return -1; // Si le message n'est pas reçu correctement | |
118 | + } | |
119 | + | |
120 | + return 0; | |
121 | +} | |
122 | + | |
123 | + | |
124 | + | |
125 | +void* reponseConnexion(void* arg_sock_interf) | |
126 | +{ | |
127 | + Arg_Thread *argument=(Arg_Thread*)(arg_sock_interf); | |
128 | + int sock=argument->socket; | |
129 | + | |
130 | + printf("Connected\n"); // Affiche le fait que qqn soit connecté | |
131 | + | |
132 | + FILE* sockdial_stream = fdopen(sock, "a+"); | |
133 | + | |
134 | + char buff_rec[BUFF_SIZE]; // Le buffer de message à la reception | |
135 | + // char buffer[BUFF_SIZE]; // Le buffer de message pour l'emission | |
86 | 136 | |
87 | 137 | fgets(buff_rec, BUFF_SIZE, sockdial_stream); |
88 | 138 | |
89 | - printf("Le message reçu : %s", buff_rec); | |
139 | + printf("Le message reçu : %s\n", buff_rec); | |
90 | 140 | |
91 | - fprintf(sockdial_stream, "Ceci est une réponse du serveur TCP.\n"); | |
141 | + //Distingue la requête HTTP... | |
142 | + if(strstr(buff_rec, "GET")!=NULL && strstr(buff_rec, "HTTP")!=NULL) | |
143 | + { | |
144 | + vider_interfaces(argument->interfaces); | |
145 | + httpReponse(sockdial_stream, argument->interfaces); | |
146 | + } | |
147 | + else //.. d'une requête interface | |
148 | + { | |
149 | + struct sockaddr_storage tmp_addr; | |
150 | + socklen_t addr_len=sizeof(tmp_addr); | |
151 | + if(getpeername(sock, (struct sockaddr*)&tmp_addr, &addr_len)==0) | |
152 | + { | |
153 | + char adresse[20]; | |
154 | + sprintf(adresse, "%s", inet_ntoa(((struct sockaddr_in*)&tmp_addr)->sin_addr)); | |
155 | + interfaceReponse(sockdial_stream, buff_rec, argument->interfaces, adresse); | |
156 | + } | |
157 | + } | |
158 | + | |
159 | + printf("Sock : %d // Stream : %p \n", sock, sockdial_stream); | |
92 | 160 | |
93 | - strcpy(buffer, "START"); | |
94 | 161 | printf("Fin de la connexion\n"); |
162 | + | |
95 | 163 | fclose(sockdial_stream); |
164 | + | |
96 | 165 | pthread_exit(NULL); |
97 | 166 | } |
98 | 167 | |
99 | 168 | |
100 | 169 | |
101 | - | |
102 | 170 | int lanceThread(void(* fonction) (void *), void* arg, int size) |
103 | 171 | { |
104 | 172 | pthread_t thr_id; | ... | ... |
... | ... | @@ -2,7 +2,7 @@ |
2 | 2 | CC=gcc |
3 | 3 | CFLAGS=-W -Wall -Wextra -g |
4 | 4 | CLIBS=ar -rcs |
5 | -LIB=libnet.a | |
5 | +LIB=libnet.a libthrd.a | |
6 | 6 | LDIR=../libs/ |
7 | 7 | LIBS=$(LDIR)libnet.a $(LDIR)libthrd.a |
8 | 8 | IDIR=../includes/ |
... | ... | @@ -10,9 +10,16 @@ LDFLAGS=-lpthread -lpcap |
10 | 10 | |
11 | 11 | |
12 | 12 | |
13 | -all: test | |
13 | +all: sonde serverTCP | |
14 | 14 | |
15 | -test: test.c | |
15 | +serverTCP: serverTCP.c | |
16 | + cd ../Threads/ && make | |
17 | + cd ../Network/ && make | |
18 | + $(CC) -o $@ $< -I$(IDIR) -L$(LDIR) $(LDIR)libthrd.a $(LDIR)libnet.a $(CFLAGS) $(LDFLAGS) | |
19 | + rm -f *.o | |
20 | + | |
21 | + | |
22 | +sonde: sonde.c | |
16 | 23 | cd ../Threads/ && make |
17 | 24 | cd ../Network/ && make |
18 | 25 | $(CC) -o $@ $< -I$(IDIR) $(LDIR)libnet.a $(LDIR)libthrd.a $(CFLAGS) $(LDFLAGS) |
... | ... | @@ -25,5 +32,9 @@ test: test.c |
25 | 32 | clean: |
26 | 33 | cd ../Threads/ && make clean |
27 | 34 | cd ../Network/ && make clean |
28 | - rm -f *.o test | |
35 | + rm -f *.o sonde serverTCP | |
36 | + | |
37 | + | |
38 | +# cd ../Threads/ && make | |
39 | +# cd ../Network/ && make | |
29 | 40 | ... | ... |
No preview for this file type
bin/test.c renamed to bin/serverTCP.c
... | ... | @@ -5,7 +5,7 @@ |
5 | 5 | #include <string.h> |
6 | 6 | #include <signal.h> |
7 | 7 | #include "libnet.h" |
8 | - | |
8 | +#include <time.h> | |
9 | 9 | |
10 | 10 | int sock_fd; |
11 | 11 | |
... | ... | @@ -24,7 +24,7 @@ void handler(int sig) |
24 | 24 | |
25 | 25 | void argPortParsing(int argc, char* argv[], char* port) |
26 | 26 | { |
27 | - struct option port_arg={"port", 1, NULL, 'p'}; | |
27 | + struct option port_arg={"port", 1, NULL, 'p'}; // | |
28 | 28 | char opt; |
29 | 29 | int longindex; |
30 | 30 | |
... | ... | @@ -32,7 +32,7 @@ void argPortParsing(int argc, char* argv[], char* port) |
32 | 32 | |
33 | 33 | if(opt=='p') |
34 | 34 | { |
35 | - strcpy(port, optarg); | |
35 | + strcpy(port, optarg); //optarg est une variable instanciée dans la librairie getopt | |
36 | 36 | printf("%s\n", optarg); |
37 | 37 | } |
38 | 38 | else |
... | ... | @@ -44,6 +44,7 @@ void argPortParsing(int argc, char* argv[], char* port) |
44 | 44 | |
45 | 45 | int main(int argc, char* argv[]) |
46 | 46 | { |
47 | + | |
47 | 48 | char port[10]="80"; |
48 | 49 | argPortParsing(argc, argv, port); |
49 | 50 | |
... | ... | @@ -53,10 +54,7 @@ int main(int argc, char* argv[]) |
53 | 54 | if( (sock_fd=initialisationServeur(port)) ==-1 ) { fprintf(stderr, "Initialisation du serveur impossible\n"); return -1; } |
54 | 55 | |
55 | 56 | boucleServeur(sock_fd, (void*)&reponseConnexion); |
56 | - | |
57 | 57 | |
58 | - sendUDPBroadcast("BroadWesh", 2020); | |
59 | - sendUDPUnicast("192.168.0.37", "Coucou", 2020); | |
60 | 58 | return 0; |
61 | 59 | } |
62 | 60 | ... | ... |
No preview for this file type
... | ... | @@ -0,0 +1,73 @@ |
1 | +#include <stdlib.h> | |
2 | +#include <stdio.h> | |
3 | +#include <unistd.h> | |
4 | +#include <getopt.h> | |
5 | +#include <string.h> | |
6 | +#include <signal.h> | |
7 | +#include "libnet.h" | |
8 | +#include <time.h> | |
9 | + | |
10 | +int sock_fd; | |
11 | + | |
12 | +struct sigaction action; | |
13 | + | |
14 | +void handler(int sig) | |
15 | +{ | |
16 | + if(sig==SIGINT) | |
17 | + { | |
18 | + printf("\nINTERRUPTION SOCKET : %d\n\n", sock_fd); | |
19 | + close(sock_fd); | |
20 | + exit(1); | |
21 | + } | |
22 | +} | |
23 | + | |
24 | + | |
25 | +void argPortParsing(int argc, char* argv[], char* port) | |
26 | +{ | |
27 | + struct option port_arg={"port", 1, NULL, 'p'}; // | |
28 | + char opt; | |
29 | + int longindex; | |
30 | + | |
31 | + while( (opt=getopt_long(argc, argv, "p:", &port_arg, &longindex)) !='p' && opt!=-1) {} | |
32 | + | |
33 | + if(opt=='p') | |
34 | + { | |
35 | + strcpy(port, optarg); | |
36 | + printf("%s\n", optarg); | |
37 | + } | |
38 | + else | |
39 | + { | |
40 | + printf("La syntaxe doit être de la forme %s -p <port> ou %s --port <port>\n\n", argv[0], argv[0]); | |
41 | + } | |
42 | +} | |
43 | + | |
44 | + | |
45 | +int main(int argc, char* argv[]) | |
46 | +{ | |
47 | +/* | |
48 | + char port[10]="80"; | |
49 | + argPortParsing(argc, argv, port); | |
50 | + | |
51 | + action.sa_handler=&handler; | |
52 | + sigaction(SIGINT, &action, NULL); | |
53 | + | |
54 | + if( (sock_fd=initialisationServeur(port)) ==-1 ) { fprintf(stderr, "Initialisation du serveur impossible\n"); return -1; } | |
55 | + | |
56 | + boucleServeur(sock_fd, (void*)&reponseConnexion); | |
57 | + | |
58 | + | |
59 | + sendUDPBroadcast("BroadWesh", 2020); | |
60 | + sendUDPUnicast("192.168.0.37", "Coucou", 2020); | |
61 | + */ | |
62 | + | |
63 | + char msg[2] = {0x40,0x01}; | |
64 | + | |
65 | + while(1) | |
66 | + { | |
67 | + if(ecouteReseau(argc, argv)!=0){ return -1;} | |
68 | + if(sendUDPBroadcast(msg, 2020)){ return -1;} | |
69 | + //sendUDPUnicast("172.26.145.205",msg, 2020); | |
70 | + } | |
71 | + return 0; | |
72 | +} | |
73 | + | ... | ... |
bin/test deleted
No preview for this file type
... | ... | @@ -0,0 +1,36 @@ |
1 | +#ifndef __HTTP_H__ | |
2 | +#define __HTTP_H__ | |
3 | + | |
4 | +#include <stdio.h> | |
5 | +#include <stdlib.h> | |
6 | +#include <pthread.h> | |
7 | +#include <string.h> | |
8 | +#include <unistd.h> | |
9 | +#include <time.h> | |
10 | + | |
11 | + | |
12 | +#define BUFF_SIZE 100000 | |
13 | + | |
14 | + | |
15 | +struct interface_info | |
16 | +{ | |
17 | + char adresse[20]; | |
18 | + int status; | |
19 | + int commande; | |
20 | +}; | |
21 | + | |
22 | + | |
23 | + | |
24 | +struct PageWeb | |
25 | +{ | |
26 | + int size; | |
27 | + char* html_contents; | |
28 | +}; | |
29 | + | |
30 | + | |
31 | + | |
32 | +void freePage(struct PageWeb** page); | |
33 | +void getWeb(char* pageName, struct PageWeb** page); | |
34 | +void createPage(struct PageWeb** page, struct interface_info* interfaces[20]); | |
35 | + | |
36 | +#endif | ... | ... |
1 | 1 | #ifndef __LIBNET_H__ |
2 | 2 | #define __LIBNET_H__ |
3 | 3 | |
4 | +#include <pcap.h> | |
5 | + | |
6 | + | |
4 | 7 | int boucleServeur(int socket, void(* fctConnex)(int)); |
5 | 8 | int lanceThread(void(* fonction) (void *), void* arg, int size); |
6 | 9 | void* reponseConnexion(void* sock); |
... | ... | @@ -8,6 +11,10 @@ int initialisationServeur(char* service); |
8 | 11 | int initializeSocketUDP(char* service); |
9 | 12 | int sendUDPBroadcast(char* message, int port); |
10 | 13 | int sendUDPUnicast(char* address, char* message, int port); |
14 | +void arp_detect(u_char *args, const struct pcap_pkthdr *header, const u_char *packet); | |
15 | +int initialize_sniffer(pcap_t** dev_handle, char dev[]); | |
16 | +int ecouteReseau(int argc, char* argv[]); | |
17 | + | |
11 | 18 | |
12 | 19 | |
13 | 20 | #endif | ... | ... |
1 | 1 | #ifndef __LIBTHRD_H__ |
2 | 2 | #define __LIBTHRD_H__ |
3 | 3 | |
4 | -void* reponseConnexion(void* sock); | |
4 | +#include "http.h" | |
5 | + | |
6 | +typedef struct{int socket; struct interface_info* interfaces[20];} Arg_Thread; | |
7 | + | |
8 | +void* reponseConnexion(void* arg_sock_interf); | |
5 | 9 | |
6 | 10 | int lanceThread(void(* fonction) (void *), void* arg, int size); |
7 | 11 | ... | ... |
libs/libnet.a
No preview for this file type
libs/libthrd.a
No preview for this file type