Commit 3e25c3327a2d4954ea9b005c5505069d9969b402

Authored by pifou
1 parent 0007fb16

Big upload

Network/Makefile
... ... @@ -18,13 +18,9 @@ all: $(LIB)
18 18 $(LIB): sender.o sniffer.o tcpserver.o
19 19 rm -f $@
20 20 $(CLIBS) $(LDIR)$@ $^
21   -<<<<<<< HEAD
22 21 ranlib $(LDIR)$@
23 22 rm -f *.o
24   -=======
25   - ranlib $(LDIR)$@
26   ->>>>>>> 52d8a1eaf954b611aaf0861144b440a15f7c517d
27   -
  23 +
28 24  
29 25 tcpserver.o: tcpserver.c
30 26 $(CC) -o $@ -c $^ -I$(IDIR) $(CFLAGS)
... ...
Network/sender.c
... ... @@ -9,18 +9,11 @@
9 9 #include <errno.h>
10 10  
11 11  
12   -<<<<<<< HEAD
13 12 int initializeSocketUDP(char* service)
14 13 {
15 14 int sock_id;
16 15 struct addrinfo precisions, *resultat=NULL, *origine; // On stocke dans précisions nos besoins pour le socket, dans resultat l'adresse qui respectera les requêtes
17   -=======
18 16  
19   -int initializeSocketUDP(char* service)
20   -{
21   - int sock_id;
22   - struct addrinfo precisions, *resultat=NULL, *origine; // On stocke dans précisions nos besoins pour le socket, dans resultat l'adresse qui respectera les reqêtes
23   ->>>>>>> 52d8a1eaf954b611aaf0861144b440a15f7c517d
24 17  
25 18 memset(&precisions, 0, sizeof precisions);
26 19 precisions.ai_family = AF_UNSPEC;
... ... @@ -77,16 +70,10 @@ int sendUDPBroadcast(char* message, int port)
77 70 int sock_id=initializeSocketUDP( tmp_str );
78 71  
79 72 printf("Initialize via Broadcast %d\n", sock_id);
80   -<<<<<<< HEAD
81 73  
82   - int status;
83   - if((status=sendto(sock_id, message, sizeof(message), 0, (struct sockaddr*) &addrUDP, sizeof(addrUDP))) < 0) { fprintf(stderr, "Erreur sendto %d\n", status); return(-1);}
  74 + if(sendto(sock_id, message, sizeof(message), 0, (struct sockaddr*) &addrUDP, sizeof(addrUDP)) < 0) { fprintf(stderr, "Erreur sendto\n"); return(-1);}
84 75  
85   -=======
86 76  
87   - if(sendto(sock_id, message, sizeof(message), 0, (struct sockaddr*) &addrUDP, sizeof(addrUDP)) < 0) { fprintf(stderr, "Erreur sendto\n"); return(-1);}
88   -
89   ->>>>>>> 52d8a1eaf954b611aaf0861144b440a15f7c517d
90 77 close(sock_id);
91 78 return 0;
92 79 }
... ... @@ -105,27 +92,14 @@ int sendUDPUnicast(char* address, char* message, int port)
105 92 sprintf(tmp_str, "%d", port);
106 93 int sock_id=initializeSocketUDP( tmp_str );
107 94 printf("Initialize via Unicast %d\n", sock_id);
108   -<<<<<<< HEAD
109 95  
110 96 if(sendto(sock_id, message, sizeof(message), 0, (struct sockaddr*) &addrUDP, sizeof(addrUDP)) < 0 ) { fprintf(stderr, "Error sendto %d\n", errno); return(-1); }
111 97  
112   -=======
113   -
114   - if(sendto(sock_id, message, sizeof(message), 0, (struct sockaddr*) &addrUDP, sizeof(addrUDP)) < 0 ) { fprintf(stderr, "Error sendto\n"); return(-1); }
115   -
116   - close(sock_id);
117   - return 0;
118   -}
119   ->>>>>>> 52d8a1eaf954b611aaf0861144b440a15f7c517d
120   -
121 98 close(sock_id);
  99 +
122 100 return 0;
123 101 }
124 102  
125   -<<<<<<< HEAD
126   -
127   -=======
128   ->>>>>>> 52d8a1eaf954b611aaf0861144b440a15f7c517d
129 103 /*
130 104  
131 105 int main(void)
... ...
Network/sender.o deleted
No preview for this file type
Network/sniffer.o deleted
No preview for this file type
Network/tcpserver.c 100644 → 100755
Network/tcpserver.o deleted
No preview for this file type
Page.html 0 → 100755
... ... @@ -0,0 +1,10 @@
  1 +<!doctype html>
  2 +<html>
  3 + <head>
  4 + <meta charset ="utf-8">
  5 + <title> Interface Tangible </title>
  6 + </meta>
  7 + </head>
  8 + <body>
  9 + </body>
  10 +</html>
... ...
Sioux/Page.html 100644 → 100755
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
... ... @@ -11,13 +11,17 @@
11 11  
12 12 #define MAC_SIZE 6
13 13 #define IPV4_SIZE 4
14   -bool isComMem = false;
15   -uint8 comMem[2]; //Commande en mémoire
  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é
  16 +
16 17 SOCKET sUDP=0;
17 18 SOCKET sTCP=1;
  19 +
  20 +uint8 comMem[2]; //Commande en mémoire
  21 +
18 22 uint8_t addr[IPV4_SIZE];
19 23 uint16_t port;
20   -bool sleep = true; //Etat de l'interface : true = mode sommeil / false = mode eveillé
  24 +
21 25  
22 26 void request(uint8 rq [2])
23 27 {
... ... @@ -28,40 +32,41 @@ void request(uint8 rq [2])
28 32 comMem[0] = rq[0]; comMem[1] = rq [1];
29 33 }
30 34  
31   - uint8 com = rq [0] && 0xE0; // récupération de la commande
32   - uint16 per = rq[0] && 0x1F; // récupération du pourcentage
33   - per = per << 8;
34   - per += rq[1];
35   - per = (100*per)/8192; //2^13 = 100 %
36   -
37   - switch(com)
  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)
38 42 {
39 43  
40 44 case 0:
41   - printf("REQUEST STATUS");
  45 + printf("REQUEST STATUS\n");
  46 + //ENVOI TCP ICI , renvoi x = 0x01
  47 + comMem[0] = rq[0]; comMem[1] = rq [1]; //save
42 48 break;
43 49  
44 50 case 2:
45   - if (per == 0x0001)
  51 + printf("SET / UNSET SLEEP\n");
  52 + if (y == 0x0001)
46 53 {
47   - sleep = false;
48   - printf("MODE EVEILLE");
  54 + sleep = false;
  55 + printf("MODE EVEILLE\n");
49 56 }
50   - else if (per == 0x0000)
  57 + else if (y == 0x0000)
51 58 {
52   - sleep = true;
53   - printf("MODE SOMMEIL");
  59 + sleep = true;
  60 + printf("MODE SOMMEIL\n");
54 61 }
55 62 comMem[0] = rq[0]; comMem[1] = rq [1]; //save
56 63 break;
57 64  
58 65 case 3:
59   -
60   - break;
61   - case 4:
62   -
  66 + // ENVOI TCP ICI , envoi de comMem[2]
63 67 break;
64 68 case 5:
  69 + //Envoi à l'interface secondaire ordre + pourcentage.
65 70  
66 71 break;
67 72 }
... ... @@ -80,28 +85,25 @@ int main(void)
80 85 uint8 buf[2];
81 86 uint16 datasize;
82 87  
83   -
84   - uint8 comtest[2] = {0b00000000,0b00000000}
85   - init_printf();
86   - ethernet_init(mac,ip,gateway,mask);
87   - if (!socket(sUDP,Sn_MR_UDP,2020,0))
88   - {
89   - return -1;
90   - }
91   - if (!socket(sTCP,Sn_MR_TCP,2020,0))
92   - {
93   - return -1;
94   - }
  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 + }
95 98  
96   - while(1)
  99 + while(1)
  100 + {
  101 + if((datasize=recvfrom(sUDP,buf,sizeof(buf),addr,&port)) == 3)
97 102 {
98   - /* if((datasize=recvfrom(sUDP,buf,sizeof(buf),addr,&port)) == 3) */
99   - /* { */
100   - /* request(comtest); */
101   - /* } */
102   - request(comtest);
  103 + request(buf);
103 104 }
104   - close(sTCP);
105   - close(sUDP);
106   - return 0;
  105 + }
  106 + close(sTCP);
  107 + close(sUDP);
  108 + return 0;
107 109 }
... ...
Tangible/tangibleInterface.hex 100755 → 100644
... ... @@ -5,533 +5,546 @@
5 5 :100040000C9451000C9451000C9451000C945100EC
6 6 :100050000C9451000C9451000C9451000C945100DC
7 7 :100060000C9451000C94510011241FBECFEFD8E026
8   -:10007000DEBFCDBF13E0A0E0B1E0E4E1FFE102C0EC
9   -:1000800005900D92A635B107D9F723E0A6E5B3E0B8
10   -:1000900001C01D92A939B207E1F70E94060C0C9429
11   -:1000A000880F0C9400000895E82FF0E0E957FC4F0A
12   -:1000B00080810895E82FF0E0E957FC4F60830895B0
13   -:1000C000E82FF0E0EE0FFF1FE959FC4F808191818E
14   -:1000D0000895E82FF0E0EE0FFF1FE159FC4F8081FB
15   -:1000E00091810895E82FF0E0EE0FFF1FE958FC4FD3
16   -:1000F000808191810895E82FF0E0EE0FFF1FE15815
17   -:10010000FC4F808191810895E82FF0E0EE0FFF1FF2
18   -:10011000E95AFC4F808191810895E82FF0E0EE0FBD
19   -:10012000FF1FE15AFC4F80819181089524B12C6218
20   -:1001300024B92A9A25B1277D25B920E52CBD2A9816
21   -:1001400020EF2EBD0DB407FEFDCF9EBD0DB407FE02
22   -:10015000FDCF8EBD0DB407FEFDCF6EBD0DB407FE05
23   -:10016000FDCF2A9A81E0089524B12C6224B92A9AFD
24   -:1001700025B1277D25B920E52CBD2A982FE02EBD7D
25   -:100180000DB407FEFDCF9EBD0DB407FEFDCF8EBDA5
26   -:100190000DB407FEFDCF1EBC0DB407FEFDCF8EB51E
27   -:1001A0002A9A089524B12C6224B92A9A25B1277D70
28   -:1001B00025B920E52CBDFB019B01240F351F60EF05
29   -:1001C000E217F307A9F02A986EBD0DB407FEFDCF24
30   -:1001D0009EBD0DB407FEFDCF8EBD0DB407FEFDCF55
31   -:1001E00071917EBD0DB407FEFDCF2A9A0196E8CF2E
32   -:1001F000CA01089524B12C6224B92A9A25B1277D19
33   -:1002000025B920E52CBDFB019B01240F351F6FE0B4
34   -:10021000E217F307B1F02A986EBD0DB407FEFDCFCB
35   -:100220009EBD0DB407FEFDCF8EBD0DB407FEFDCF04
36   -:100230001EBC0DB407FEFDCF7EB571932A9A0196C0
37   -:10024000E7CFCA0108952F923F924F925F926F922B
38   -:100250007F928F929F92AF92BF92CF92DF92EF9256
39   -:10026000FF920F931F93CF93DF93CDB7DEB72897FD
40   -:100270000FB6F894DEBF0FBECDBF282E362E86E116
41   -:1002800091E00E94A30C622D8BE190E00E94960009
42   -:10029000632D8AE190E00E94960080E090E49093C4
43   -:1002A000600380935F0380E090E69093580380930F
44   -:1002B000570381E291E00E94A30C87E5882E83E03A
45   -:1002C000982E9FE5A92E93E0B92E2FE633E03887CC
46   -:1002D0002F8307E613E027E7C22E23E0D22E3FE765
47   -:1002E000E32E33E0F32E1A821982412C512C1C820A
48   -:1002F0001B82612C712C222D30E03E832D83232C18
49   -:10030000312CAF81B88511961C921E92F801118292
50   -:1003100010822B813C8121153042B4F58D819E8164
51   -:10032000098002C0959587950A94E2F78370992712
52   -:1003300082309105A9F083309105D9F0019739F009
53   -:1003400080E094E08D939C93EFEFF3E01AC0E0E03F
54   -:10035000F8E0AF81B885ED93FC93EFEFF7E011C0C3
55   -:10036000E0E0F0E1AF81B885ED93FC93EFEFFFE0C3
56   -:1003700008C0E0E0F0E2AF81B885ED93FC93EFEFC9
57   -:10038000FFE1D701ED93FC934114F0E25F069CF589
58   -:10039000C101098002C0959587950A94E2F78370A0
59   -:1003A000992782309105A9F083309105D1F001970A
60   -:1003B00041F0E0E0F4E0D801ED93FC93EFEFF3E0DF
61   -:1003C00017C0E0E0F8E0D801ED93FC93EFEFF7E021
62   -:1003D0000FC0E0E0F0E1D801ED93FC93EFEFFFE018
63   -:1003E00007C0E0E0F0E2D801ED93FC93EFEFFFE10E
64   -:1003F000D601ED93FC93AF81B8858D919D91B8871F
65   -:10040000AF832B813C81280F391F3C832B83D8017C
66   -:100410002D913D918D01420E531E61147104D9F04E
67   -:10042000EF81F885349760817181F50132974081C1
68   -:100430005181460F571FF50151834083FD013497C9
69   -:1004400060817181F401329740815181460F571FBD
70   -:10045000D4014D935C93F40160817181F2E08F0EC1
71   -:10046000911CD5014C9111965C91B2E0AB0EB11C80
72   -:100470003F932F939F938F937F936F935F934F93AC
73   -:100480007F926F92AAE4B1E0BF93AF930E948D0C6C
74   -:10049000FFEF6F1A7F0A29813A812E5F3F4F3A831F
75   -:1004A000298332E0C30ED11C42E0E40EF11C0FB6EA
76   -:1004B000F894DEBF0FBECDBF94E06916710409F059
77   -:1004C00020CF28960FB6F894DEBF0FBECDBFDF91C8
78   -:1004D000CF911F910F91FF90EF90DF90CF90BF9041
79   -:1004E000AF909F908F907F906F905F904F903F90D4
80   -:1004F0002F900895682F80E090E80C94960080E893
81   -:100500000C947A02CF93DF93EC01688181E090E054
82   -:100510000E949600698182E090E00E9496006A81C4
83   -:1005200083E090E00E9496006B8184E090E0DF9190
84   -:10053000CF910C949600CF93DF93EC0181E090E093
85   -:100540000E94B400888382E090E00E94B400898316
86   -:1005500083E090E00E94B4008A8384E090E00E94EF
87   -:10056000B4008B83DF91CF910895CF93DF93EC019B
88   -:10057000688185E090E00E949600698186E090E0C5
89   -:100580000E9496006A8187E090E00E9496006B814D
90   -:1005900088E090E0DF91CF910C949600CF93DF93A9
91   -:1005A000EC01688189E090E00E94960069818AE010
92   -:1005B00090E00E9496006A818BE090E00E94960095
93   -:1005C0006B818CE090E00E9496006C818DE090E061
94   -:1005D0000E9496006D818EE090E0DF91CF910C94A7
95   -:1005E0009600CF93DF93EC0168818FE090E00E944A
96   -:1005F0009600698180E190E00E9496006A8181E125
97   -:1006000090E00E9496006B8182E190E0DF91CF91B3
98   -:100610000C94960085E190E00C94B400CF93C82F21
99   -:10062000692F87E190E00E9496006C2F88E190E0AE
100   -:10063000CF910C949600682F89E190E00C9496007D
101   -:10064000682F86E190E00C949600CF93DF93EC0145
102   -:1006500081E090E00E94B400888382E090E00E94F4
103   -:10066000B400898383E090E00E94B4008A8384E030
104   -:1006700090E00E94B4008B83DF91CF910895CF93D7
105   -:10068000DF93EC0185E090E00E94B400888386E06F
106   -:1006900090E00E94B400898387E090E00E94B4005B
107   -:1006A0008A8388E090E00E94B4008B83DF91CF9131
108   -:1006B0000895CF93DF93EC0189E090E00E94B400AD
109   -:1006C00088838AE090E00E94B40089838BE090E008
110   -:1006D0000E94B4008A838CE090E00E94B4008B8377
111   -:1006E0008DE090E00E94B4008C838EE090E00E9448
112   -:1006F000B4008D83DF91CF910895CF93DF93EC0108
113   -:100700008FE090E00E94B400888380E190E00E9436
114   -:10071000B400898381E190E00E94B4008A8382E181
115   -:1007200090E00E94B4008B83DF91CF9108950F93E6
116   -:100730001F93CF93DF938B01C82FD0E02496DC2F3B
117   -:10074000CC27CE0106960E94B400F8018083CE012A
118   -:1007500007960E94B400F8018183CE0108960E949A
119   -:10076000B400F8018283CE0109960E94B400F8011A
120   -:100770008383CE010A960E94B400F8018483CE01DF
121   -:100780000B960E94B400F8018583DF91CF911F91F1
122   -:100790000F9108950F931F93CF93DF938B01C82F71
123   -:1007A000D0E02496DC2FCC27FB016081CE01069699
124   -:1007B0000E949600F8016181CE0107960E94960082
125   -:1007C000F8016281CE0108960E949600F8016381CB
126   -:1007D000CE0109960E949600F8016481CE010A9626
127   -:1007E0000E949600F8016581CE010B96DF91CF91B2
128   -:1007F0001F910F910C9496000F931F93CF93DF934B
129   -:100800008B01C82FD0E02496DC2FCC27CE010C968C
130   -:100810000E94B400F8018083CE010D960E94B400BE
131   -:10082000F8018183CE010E960E94B400F801828304
132   -:10083000CE010F960E94B400F8018383DF91CF911F
133   -:100840001F910F9108950F931F93CF93DF938B0107
134   -:10085000C82FD0E02496DC2FCC27FB016081CE018D
135   -:100860000C960E949600F8016181CE010D960E94BF
136   -:100870009600F8016281CE010E960E949600F80162
137   -:100880006381CE010F96DF91CF911F910F910C9450
138   -:1008900096000F931F93CF93DF938B01C82FD0E067
139   -:1008A0002496DC2FCC27CE0140960E94B400F8019C
140   -:1008B0008083CE0141960E94B400F8018183DF91CC
141   -:1008C000CF911F910F9108950F931F93CF93DF93B3
142   -:1008D0008B01C82FD0E02496DC2FCC27FB01608150
143   -:1008E000CE0140960E949600F8016181CE014196AA
144   -:1008F000DF91CF911F910F910C9496001F93CF938E
145   -:10090000DF93162F672FC82FD0E02496DC2FCC273B
146   -:10091000CE0142960E949600612FCE014396DF9150
147   -:10092000CF911F910C94960090E0982F88278A5EB3
148   -:100930009B4F0C94960090E0982F88278C5E9B4FDD
149   -:100940000C94960090E0982F88278E5F9B4F0C9414
150   -:10095000B40090E0982F88278D5F9B4F0C94B400D3
151   -:10096000CF92DF92EF92FF920F931F93CF93DF937B
152   -:10097000C82FD0E02496DC2FCC277E0180E2E80E41
153   -:10098000F11CA19600E010E0C7010E94B400C82E3F
154   -:10099000D12CDC2CCC24CE010E94B400C80ED11C7A
155   -:1009A000C114D10461F0C7010E94B400082F10E007
156   -:1009B000102F0027CE010E94B400080F111D0C1546
157   -:1009C0001D0511F7C801DF91CF911F910F91FF9085
158   -:1009D000EF90DF90CF900895CF92DF92EF92FF9249
159   -:1009E0000F931F93CF93DF93C82FD0E02496DC2F73
160   -:1009F000CC277E0186E2E80EF11CA79600E010E00D
161   -:100A0000C7010E94B400C82ED12CDC2CCC24CE010E
162   -:100A10000E94B400C80ED11CC114D10461F0C701FA
163   -:100A20000E94B400082F10E0102F0027CE010E9472
164   -:100A3000B400080F111D0C151D0511F7C801DF9139
165   -:100A4000CF911F910F91FF90EF90DF90CF9008957D
166   -:100A5000CF92DF92EF92FF920F931F93CF93DF938A
167   -:100A6000E82FF0E0EE0FFF1FDF01A158BC4F8D9182
168   -:100A70009C91DA01A823B923EF01C15ADC4FE88029
169   -:100A8000F980CD018E0D9F1DE159FC4FC081D181B0
170   -:100A9000AD01420F531FC417D50778F489016B01CC
171   -:100AA000CA1BDB0BAE010E94D200A8014C1B5D0BE0
172   -:100AB000B6016C0F7D1FC70101C0A901DF91CF9165
173   -:100AC0001F910F91FF90EF90DF90CF900C94D20088
174   -:100AD0008F929F92BF92CF92DF92EF92FF920F93ED
175   -:100AE0001F93CF93DF9300D0CDB7DEB7B82E7A0136
176   -:100AF00090E00496982E8824640184E2C80ED11CEC
177   -:100B0000C60169837A830E94B400082F10E0102F79
178   -:100B1000002785E2880E911CC4010E94B400080FD2
179   -:100B2000111D9701A80169817A818B2D0E942805EA
180   -:100B30000E0D1F1D612FC6010E949600602FC4017B
181   -:100B40000F900F90DF91CF911F910F91FF90EF9039
182   -:100B5000DF90CF90BF909F908F900C949600AF92B3
183   -:100B6000BF92CF92DF92EF92FF920F931F93CF939A
184   -:100B7000DF93DA01A901E82FF0E0EE0FFF1FEF018C
185   -:100B8000C958DC4F888199816B01C822D922EF01B5
186   -:100B9000C95ADC4FE880F980C6018E0D9F1DE959C6
187   -:100BA000FC4FC081D1819601240F351FC217D30796
188   -:100BB00080F48A015D01CC19DD09AE01BD010E94FE
189   -:100BC000FA00A8014C1B5D0BB5016C0F7D1FC7011E
190   -:100BD00001C0BD01DF91CF911F910F91FF90EF9068
191   -:100BE000DF90CF90BF90AF900C94FA009F92AF929D
192   -:100BF000BF92CF92DF92EF92FF920F931F93CF930A
193   -:100C0000DF93982E6B017A01082F10E00C5F1F4FC5
194   -:100C1000102F0027580188E2A80EB11CC5010E94C0
195   -:100C2000B400C82FD0E0DC2FCC27075D1F4FC801D0
196   -:100C30000E94B400C80FD11DDF93CF938BE691E0E3
197   -:100C40009F938F930E948D0C9701A601BE01892D61
198   -:100C50000E94AF05CE0DDF1D6D2FC5010E949600CD
199   -:100C60000F900F900F900F906C2FC801DF91CF91D4
200   -:100C70001F910F91FF90EF90DF90CF90BF90AF90BA
201   -:100C80009F900C9496000F931F93CF93DF93C82FE0
202   -:100C900083E891E00E94A30CD0E02496DC2FCC27BF
203   -:100CA0008E010F5F1F4F60E1C8010E949600C801CE
204   -:100CB0000E94B4008111FBCF6FEFCE010296DF914D
205   -:100CC000CF911F910F910C949600CF92DF92EF92EB
206   -:100CD000FF920F931F93CF93DF93C82FC62E8A01E5
207   -:100CE000D22E8CE891E00E94A30C8FEF8C0DEC2E9D
208   -:100CF000F12C8530D0F58C2F0E944306E701249615
209   -:100D0000DC2FCC276C2D6D29CE010E949600CE01E0
210   -:100D100004969E012B5F3F4F69010115110529F0D3
211   -:100D2000612F0E949600602F0FC020918B0330919D
212   -:100D30008C032F5F3F4F30938C0320938B03632FE3
213   -:100D40000E94960060918B03C6010E9496008E015E
214   -:100D50000F5F1F4F61E0C8010E949600C8010E940A
215   -:100D6000B4008111FBCF11E001C010E0E70124962F
216   -:100D7000DC2FCC27CE010E94B400082FCE010396B1
217   -:100D80000E94B4001F920F931F928F9386E991E007
218   -:100D90009F938F930E948D0C0F900F900F900F9048
219   -:100DA0000F900F90812FDF91CF911F910F91FF90A6
220   -:100DB000EF90DF90CF9008950F931F93CF93DF9321
221   -:100DC000C82F87EB91E00E94A30CD0E02496DC2F83
222   -:100DD000CC278E010D5F1F4FC8010E94B4008331E4
223   -:100DE000D9F4219662E0CE010E949600CE010E94C5
224   -:100DF000B4008111FBCFC8010E94B4001F928F93F1
225   -:100E000081EC91E09F938F930E948D0C0F900F9037
226   -:100E10000F900F9081E005C08FEC91E00E94A30C31
227   -:100E200080E0DF91CF911F910F910895CF93DF93D1
228   -:100E3000C82F86EE91E00E94A30CD0E0DC2FCC27D7
229   -:100E4000CD5FDB4FCE010E94B4008431B1F4CE01FE
230   -:100E50000E94B4008731D9F7CE010E94B4001F92DE
231   -:100E60008F9381EC91E09F938F930E948D0C0F9054
232   -:100E70000F900F900F9081E005C080EF91E00E94ED
233   -:100E8000A30C80E0DF91CF910895EF92FF920F9332
234   -:100E90001F93CF93DF93C82F8B017A0188E092E0F4
235   -:100EA0000E94A30CF80160816F3F51F481818F3F54
236   -:100EB00099F482818F3F81F483818F3F69F40FC061
237   -:100EC00061110AC0F8018181811106C082818111FE
238   -:100ED00003C08381882319F0E114F10431F48FEC0D
239   -:100EE00091E00E94A30C80E02FC0D0E02496DC2F7C
240   -:100EF000CC27CE010C960E949600F8016181CE01AC
241   -:100F00000D960E949600F8016281CE010E960E9415
242   -:100F10009600F8016381CE010F960E9496006F2D16
243   -:100F2000CE0140960E9496006E2DCE0141960E9401
244   -:100F30009600219664E0CE010E949600CE010E94A8
245   -:100F4000B4008111FBCF81E0DF91CF911F910F9110
246   -:100F5000FF90EF900895CF93DF93C82F85E092E044
247   -:100F60000E94A30CD0E0DC2FCC27CF5FDB4F68E0E2
248   -:100F7000CE010E949600CE010E94B4008111FBCFE9
249   -:100F8000DF91CF9108958F929F92AF92BF92CF92AF
250   -:100F9000DF92EF92FF921F93CF93DF93182F4B01B5
251   -:100FA0007A0180E393E00E94A30C812F0E946900E4
252   -:100FB0008E159F0520F4812F0E9469007C01C12FAE
253   -:100FC000D0E02496DC2FCC275E0183E0A80EB11C74
254   -:100FD000812F0E94B0046C01C5010E94B4008731CA
255   -:100FE000A9F08C3199F0DF92CF921F921F9383E189
256   -:100FF00092E09F938F930E948D0C0F900F900F9013
257   -:101000000F900F900F90E12CF12C03C0CE14DF0451
258   -:10101000F8F2A701B401812F0E9468056E018FEFDD
259   -:10102000C81AD80A60E2C6010E949600C6010E9452
260   -:10103000B4008111FBCF2296CE010E94B40084FD42
261   -:101040000FC0C5010E94B4008111F6CF8BE392E07E
262   -:101050000E94A30C812F0E94430680E090E005C00F
263   -:1010600060E1CE010E949600C701DF91CF911F91F0
264   -:10107000FF90EF90DF90CF90BF90AF909F908F90B8
265   -:101080000895BF92CF92DF92EF92FF920F931F933A
266   -:10109000CF93DF93B82E6B018A01C82FD0E024963E
267   -:1010A000DC2FCC277E0183E0E80EF11CC7010E94F3
268   -:1010B000B400873191F0C7010E94B4001F928F9352
269   -:1010C00089E492E09F938F930E948D0C0F900F9074
270   -:1010D0000F900F908FEF9FEF26C080E00E94EC04EE
271   -:1010E0007C0118161906ECF48CE592E00E94A30C22
272   -:1010F000E016F10620F00115110589F001C0870105
273   -:10110000A801B6018B2D0E94F605219660E4CE0160
274   -:101110000E949600CE010E94B4008111FBCFC8014D
275   -:1011200002C080E090E0DF91CF911F910F91FF907E
276   -:10113000EF90DF90CF90BF9008958F929F92BF92D3
277   -:10114000CF92DF92EF92FF920F931F93CF93DF9393
278   -:10115000B82E4B01EA01790184E692E00E94A30CCB
279   -:101160008B2D0E9469008C179D0728F48B2D0E94FF
280   -:1011700069006C0101C06E01F7016081611109C055
281   -:101180008181811106C08281811103C083818823FE
282   -:1011900031F00115110519F0C114D10429F5DF93BF
283   -:1011A000CF931F930F93F70183811F928F938281B7
284   -:1011B0001F928F9381811F928F931F926F931F9223
285   -:1011C000BF928EE692E09F938F930E948D0C8FECDE
286   -:1011D00091E00E94A30C8DB79EB740960FB6F8948D
287   -:1011E0009EBF0FBE8DBF49C0CB2DD0E02496DC2F13
288   -:1011F000CC27CE010C960E949600F7016181CE01AA
289   -:101200000D960E949600F7016281CE010E960E9413
290   -:101210009600F7016381CE010F960E949600612F20
291   -:10122000CE0140960E949600602FCE0141960E940A
292   -:101230009600A601B4018B2D0E9468058E010F5FF8
293   -:101240001F4F60E2C8010E949600C8010E94B400CE
294   -:101250008111FBCF2296CE010E94B40084FD10C004
295   -:10126000CE010E94B40083FFF6CF8AE493E00E948F
296   -:10127000A30C68E1CE010E94960080E090E005C0DA
297   -:1012800060E1CE010E949600C601DF91CF911F91CF
298   -:101290000F91FF90EF90DF90CF90BF909F908F9035
299   -:1012A00008952F923F924F925F926F927F928F920A
300   -:1012B0009F92AF92BF92CF92DF92EF92FF920F93E5
301   -:1012C0001F93CF93DF93CDB7DEB72A970FB6F8946D
302   -:1012D000DEBF0FBECDBF782E4B016A0179011A87A0
303   -:1012E00009870E94EC04892B09F42BC186E992E05E
304   -:1012F0000E94A30C872D0E94EC04682E392ECD2865
305   -:1013000009F417C1472C512C84E0480E511C542C71
306   -:101310004424520198E2A90EB11CC5010E94B400F8
307   -:10132000082F10E0102F00276201E9E2CE0ED11C39
308   -:10133000C6010E94B400080F111D3F926F921F93C7
309   -:101340000F9382EA92E09F938F930E948D0CC201CB
310   -:101350000E94B4000F900F900F900F900F900F907D
311   -:101360008770833009F464C0843009F4ABC08230E4
312   -:1013700009F0D0C028E030E0AE014F5F5F4FB80108
313   -:10138000872D0E94AF051801F8E02F0E311C8981CE
314   -:10139000F70180838A8181838B8182838C8183831F
315   -:1013A0008D8190E0982F88272E81820F911DE985ED
316   -:1013B000FA85918380830F8110E0102F00278885A4
317   -:1013C000080F111D1F930F9382EC92E09F938F9350
318   -:1013D0000E948D0CE985FA8581818F9380818F939E
319   -:1013E00088ED92E09F938F930E948D0CF70183818B
320   -:1013F0001F928F9382811F928F9381811F928F936F
321   -:1014000080811F928F938BEE92E09F938F930E9427
322   -:101410008D0C9801A401B101872D0E94AF057101C7
323   -:10142000E00EF11E6F2DC5010E9496006E2D41C089
324   -:1014300026E030E0AE014F5F5F4FB801872D0E947C
325   -:10144000AF05180196E0290E311C8981F7018083D0
326   -:101450008A8181838B8182838C8183830D8110E0DB
327   -:10146000102F00278E81080F111D85E093E00E9448
328   -:10147000A30CF70183811F928F9382811F928F9318
329   -:1014800081811F928F9380811F928F938BEE92E0C8
330   -:101490009F938F930E948D0C9801A401B101872D19
331   -:1014A0000E94AF05200E311E632DC5010E949600DB
332   -:1014B000622DC6010E9496000FB6F894DEBF0FBEE3
333   -:1014C000CDBF2AC022E030E0AE014F5F5F4FB801D0
334   -:1014D000872D0E94AF05780192E0E90EF11C098189
335   -:1014E00010E0902F88270A8110E002501109080FA0
336   -:1014F000191F9801A401B701872D0E94AF05E00EC6
337   -:10150000F11E6F2DC5010E9496006E2DC6010E942E
338   -:10151000960002C000E010E0EFEF4E1A5E0A60E4B1
339   -:10152000C2010E949600C2010E94B4008111FBCF4B
340   -:1015300002C000E010E089E193E00E94A30CC80122
341   -:1015400002C080E090E02A960FB6F894DEBF0FBE8E
342   -:10155000CDBFDF91CF911F910F91FF90EF90DF9062
343   -:10156000CF90BF90AF909F908F907F906F905F9043
344   -:101570004F903F902F900895CF92DF92FF920F935C
345   -:101580001F93CF93DF93F82E6B01EA018CE293E077
346   -:101590000E94A30C8F2D0E9469008C179D0728F4D0
347   -:1015A0008F2D0E9469008C0101C08E01011511056B
348   -:1015B00089F41F921F92DF93CF9388E393E09F9368
349   -:1015C0008F930E948D0C0F900F900F900F900F90A3
350   -:1015D0000F9030C0A801B6018F2D0E946805CF2D55
351   -:1015E000D0E02496DC2FCC276E018FEFC81AD80AE2
352   -:1015F00060E2C6010E949600C6010E94B4008111FB
353   -:10160000FBCF6E0182E0C80ED11C2396C6010E945A
354   -:10161000B40084FD12C0CE010E94B400C6010E9435
355   -:10162000B40083FFF3CF86E493E00E94A30C8F2DD8
356   -:101630000E94430680E090E005C060E1C6010E9480
357   -:101640009600C801DF91CF911F910F91FF90DF901D
358   -:10165000CF900895CF92DF92EF92FF920F931F9356
359   -:10166000CF93DF936C017B018A01E9010E947F0225
360   -:1016700065E585E50E942301C6010E94CE02C701EF
361   -:101680000E94F102C8010E948202CE01DF91CF9137
362   -:101690001F910F91FF90EF90DF90CF900C94B502C7
363   -:1016A0008093BB0084E88093BC008091BC0087FFDE
364   -:1016B000FCCF08951092B9008CE08093B80084E0CC
365   -:1016C0008093BC000895CF9394EA9093BC009091CE
366   -:1016D000BC0097FFFCCF9091B900987F983011F033
367   -:1016E00080E015C0C62F880F0E94500B8091B90072
368   -:1016F000887F8831A9F78C2F0E94500B8091B90008
369   -:10170000887F883269F784E98093BC0081E0CF91BB
370   -:101710000895CF93DF9394EA9093BC009091BC001E
371   -:1017200097FFFCCF9091B900987F983011F080E03E
372   -:101730001EC0C42FD62F880F0E94500B8091B90075
373   -:10174000887F8831A1F78D2F0E94500B8091B900BE
374   -:10175000887F883261F78C2F0E94500B8091B900EE
375   -:10176000887F883221F784E98093BC0081E0DF9193
376   -:10177000CF910895092E000CAA0BBB0B9C01AD0163
377   -:1017800084E0220F331F441F551F8A95D1F760E074
378   -:1017900074E284EF90E00E946B0C21503109309389
379   -:1017A000C5002093C40088E18093C10086E0809347
380   -:1017B000C200E0ECF0E080818D7F808308959091FD
381   -:1017C000C00095FFFCCF8093C6000895CF93C82F2B
382   -:1017D0008A3019F48DE00E94DF0B8C2F0E94DF0B02
383   -:1017E00080E090E0CF9108958091C00087FFFCCF0A
384   -:1017F0008091C600089580E895E20E94BA0B82E0CD
385   -:1018000091E0909396038093950308950F931F930F
386   -:10181000CF93DF93CDB7DEB764970FB6F894DEBFF2
387   -:101820000FBECDBF86E0E0E1F1E0DE011196019050
388   -:101830000D928A95E1F72CEA2F879AE1988B81E93E
389   -:10184000898B3DEC3A8B2B879C878D878EEF8E871B
390   -:101850008FEF8F83888789871A860E94FB0B9E01F2
391   -:10186000295F3F4FAE01455F5F4FBE01615F7F4F14
392   -:10187000CE0101960E942A0B20E044EE57E062E080
393   -:10188000809156030E9465068823C1F020E044EE53
394   -:1018900057E061E0809101010E946506882371F0A4
395   -:1018A00001E913E02DE833E042E050E0BE016D5E57
396   -:1018B0007F4F809156030E945109F2CF8FEF9FEF27
397   -:1018C00064960FB6F894DEBF0FBECDBFDF91CF9107
398   -:1018D0001F910F910895A1E21A2EAA1BBB1BFD01B7
399   -:1018E0000DC0AA1FBB1FEE1FFF1FA217B307E407FF
400   -:1018F000F50720F0A21BB30BE40BF50B661F771F57
401   -:10190000881F991F1A9469F7609570958095909536
402   -:101910009B01AC01BD01CF010895A0E0B0E0E3E977
403   -:10192000FCE00C94610FAE014B5F5F4FFA016191D7
404   -:101930007191AF0180919503909196030E94D30C11
405   -:10194000E2E00C947D0F0F931F93CF93DF93E09110
406   -:101950009503F0919603238121FF1BC08C01D0E0F9
407   -:10196000C0E0F80181918F01609195037091960319
408   -:10197000DB011896ED91FC911997882331F00995B8
409   -:10198000892B79F3DFEFCFEFECCF8AE00995892B34
410   -:1019900019F08FEF9FEF02C08D2F9C2FDF91CF9119
411   -:1019A0001F910F910895ACE0B0E0E9EDFCE00C94DC
412   -:1019B000510F7C016B018A01FC0117821682838121
413   -:1019C00081FFBDC1CE0101964C01F7019381F60163
414   -:1019D00093FD859193FF81916F01882309F4ABC139
415   -:1019E000853239F493FD859193FF81916F018532A2
416   -:1019F00029F4B70190E00E94BB0EE7CF512C312CA7
417   -:101A000020E02032A0F48B3269F030F4803259F0BB
418   -:101A1000833269F420612CC08D3239F0803339F47F
419   -:101A2000216026C02260246023C0286021C027FDD9
420   -:101A300027C030ED380F3A3078F426FF06C0FAE0C0
421   -:101A40005F9E300D1124532E13C08AE0389E300D56
422   -:101A50001124332E20620CC08E3221F426FD6BC17E
423   -:101A6000206406C08C3611F4206802C0883641F428
424   -:101A7000F60193FD859193FF81916F018111C1CF93
425   -:101A8000982F9F7D9554933028F40C5F1F4FFFE3F0
426   -:101A9000F9830DC0833631F0833771F0833509F057
427   -:101AA0005BC022C0F801808189830E5F1F4F4424F0
428   -:101AB0004394512C540115C03801F2E06F0E711C93
429   -:101AC000F801A080B18026FF03C0652D70E002C040
430   -:101AD0006FEF7FEFC5012C870E94B00E2C018301B0
431   -:101AE0002C852F77222E17C03801F2E06F0E711C63
432   -:101AF000F801A080B18026FF03C0652D70E002C010
433   -:101B00006FEF7FEFC5012C870E94A50E2C012C855D
434   -:101B10002068222E830123FC1BC0832D90E04816F1
435   -:101B20005906B0F4B70180E290E00E94BB0E3A94EF
436   -:101B3000F4CFF50127FC859127FE81915F01B70164
437   -:101B400090E00E94BB0E31103A94F1E04F1A510818
438   -:101B50004114510471F7E5C0843611F0893639F526
439   -:101B6000F80127FF07C060817181828193810C5F3A
440   -:101B70001F4F08C060817181072E000C880B990BE4
441   -:101B80000E5F1F4F2F76722E97FF09C0909580959C
442   -:101B9000709561957F4F8F4F9F4F2068722E2AE07E
443   -:101BA00030E0A4010E94F30EA82EA81844C0853787
444   -:101BB00029F42F7EB22E2AE030E025C0F22FF97FE3
445   -:101BC000BF2E8F36C1F018F4883579F0B4C0803755
446   -:101BD00019F0883721F0AFC02F2F2061B22EB4FE4C
447   -:101BE0000DC08B2D8460B82E09C024FF0AC09F2F22
448   -:101BF0009660B92E06C028E030E005C020E130E054
449   -:101C000002C020E132E0F801B7FE07C060817181B7
450   -:101C1000828193810C5F1F4F06C06081718180E0DB
451   -:101C200090E00E5F1F4FA4010E94F30EA82EA8188B
452   -:101C3000FB2DFF777F2E76FE0BC0372D3E7FA51440
453   -:101C400050F474FE0AC072FC08C0372D3E7E05C0F9
454   -:101C5000BA2C372D03C0BA2C01C0B52C34FF0DC0EF
455   -:101C6000FE01EA0DF11D8081803311F4397E09C037
456   -:101C700032FF06C0B394B39404C0832F867809F072
457   -:101C8000B39433FD13C030FF06C05A2CB31418F4BC
458   -:101C9000530C5B18B32CB31468F4B70180E290E0E6
459   -:101CA0003C870E94BB0EB3943C85F5CFB31410F46F
460   -:101CB0003B1801C0312C34FF12C0B70180E390E023
461   -:101CC0003C870E94BB0E3C8532FF17C031FD03C02C
462   -:101CD00088E790E002C088E590E0B7010CC0832F50
463   -:101CE000867859F031FF02C08BE201C080E237FDF7
464   -:101CF0008DE2B70190E00E94BB0EA51438F4B70145
465   -:101D000080E390E00E94BB0E5A94F7CFAA94F401AE
466   -:101D1000EA0DF11D8081B70190E00E94BB0EA11079
467   -:101D2000F5CF332009F451CEB70180E290E00E9454
468   -:101D3000BB0E3A94F6CFF7018681978102C08FEFF0
469   -:101D40009FEF2C96E2E10C946D0FFC010590615021
470   -:101D500070400110D8F7809590958E0F9F1F0895C1
471   -:101D6000FC016150704001900110D8F7809590956A
472   -:101D70008E0F9F1F08950F931F93CF93DF93FB0147
473   -:101D8000238121FD03C08FEF9FEF28C022FF16C0E3
474   -:101D900046815781248135814217530744F4A0813D
475   -:101DA000B1819D012F5F3F4F318320838C9326812A
476   -:101DB00037812F5F3F4F3783268310C0EB01092FF8
477   -:101DC000182F0084F185E02D0995892BE1F68E818D
478   -:101DD0009F8101969F838E83812F902FDF91CF91DA
479   -:101DE0001F910F910895FA01AA27283051F120314F
480   -:101DF00081F1E8946F936E7F6E5F7F4F8F4F9F4F9F
481   -:101E0000AF4FB1E03ED0B4E03CD0670F781F891FE0
482   -:101E10009A1FA11D680F791F8A1F911DA11D6A0FAE
483   -:101E2000711D811D911DA11D20D009F468943F9161
484   -:101E30002AE0269F11243019305D3193DEF6CF0160
485   -:101E40000895462F4770405D4193B3E00FD0C9F726
486   -:101E5000F6CF462F4F70405D4A3318F0495D31FD93
487   -:101E60004052419302D0A9F7EACFB4E0A6959795E6
488   -:101E7000879577956795BA95C9F7009761057105BC
489   -:101E800008959B01AC010A2E069457954795379506
490   -:101E90002795BA95C9F7620F731F841F951FA01D60
491   -:101EA00008952F923F924F925F926F927F928F92FE
492   -:101EB0009F92AF92BF92CF92DF92EF92FF920F93D9
493   -:101EC0001F93CF93DF93CDB7DEB7CA1BDB0B0FB6E3
494   -:101ED000F894DEBF0FBECDBF09942A8839884888A0
495   -:101EE0005F846E847D848C849B84AA84B984C88436
496   -:101EF000DF80EE80FD800C811B81AA81B981CE0F2D
497   -:101F0000D11D0FB6F894DEBF0FBECDBFED01089511
498   -:041F1000F894FFCF73
499   -:101F140001010000000200000000E60B00000000C8
500   -:101F2400A0BDCDDDEDFD737973696E697428290D4B
501   -:101F3400004368616E6E656C203A2053454E442020
502   -:101F44004D454D2053495A45203A20524543562089
503   -:101F54004D454D2053495A450D002564203A20250E
504   -:101F64002E3478203A20252E3478203A20252E3419
505   -:101F740078203A20252E34780D0A004953525F52B6
506   -:101F8400583A2072645F707472203A20252E347897
507   -:101F94000D0A00636C6F736528290D00736F636B02
508   -:101FA400657428290D00536E5F5352203D20252E61
509   -:101FB4003278202C2050726F746F636F6C203D2038
510   -:101FC400252E32780D0A006C697374656E28290D0C
511   -:101FD40000737461747573203D2025780D0A0046E2
512   -:101FE40061696C5B696E76616C69642069702C70E0
513   -:101FF4006F72745D0D0061636365707428290D0050
514   -:102004004661696C5B6E6F74206C697374656E698C
515   -:102014006E675D0D00646973636F6E6E656374282B
516   -:10202400290D00736F636B657420256420667265E7
517   -:102034006573697A652825642920656D7074792033
518   -:102044006F72206572726F720D0A00534F434B5FBB
519   -:10205400434C4F5345442E0D004261642073746118
520   -:10206400747573203D20253032780A0072656376DA
521   -:1020740028290D0073656E64746F28290D0025648A
522   -:10208400204661696C5B252E32782E252E32782EFF
523   -:10209400252E32782E252E32782C20252E642C20C5
524   -:1020A40025645D0D0A007265637666726F6D28297A
525   -:1020B4000D004953525F52583A2072645F70747233
526   -:1020C400203A20252E34782073697A653D25640DE5
527   -:1020D4000A00554450206D736720232564206172E3
528   -:1020E40072697665640D0A00736F757263652050BA
529   -:1020F4006F7274203A2025750D0A00736F75726330
530   -:1021040065204950203A2025642E25642E25642E0E
531   -:1021140025640D0A00495020524157206D736720F1
532   -:10212400617272697665640D007265637666726FBA
533   -:102134006D282920656E64202E2E0D0069676D7050
534   -:1021440073656E6428290D002564204661696C5B03
535   -:1021540025645D0D0A0069676D7073656E642066A1
536   -:0621640061696C2E0D0004
  8 +:10007000DEBFCDBF13E0A0E0B1E0EEEAFFE102C0D9
  9 +:1000800005900D92A239B107D9F723E0A2E9B3E0B8
  10 +:1000900001C01D92A83DB207E1F70E944D0C0C94DF
  11 +:1000A000D50F0C9400000F931F93CF93DF938C0117
  12 +:1000B0008091930381110AC081E080939303F8013A
  13 +:1000C00080818093CA0381818093CB03F801C08132
  14 +:1000D00091818C2F82958695877019F0823021F05E
  15 +:1000E00025C086E191E019C0CF71D0E0DC2FCC278C
  16 +:1000F000C90FD11D85E291E00E94F00CC130D105FD
  17 +:1001000029F41092010187E391E007C0CD2B39F467
  18 +:1001100081E08093010184E491E00E94F00CF801F9
  19 +:1001200080818093CA0381818093CB03DF91CF913B
  20 +:100130001F910F910895E82FF0E0EC53FC4F808160
  21 +:100140000895E82FF0E0EC53FC4F60830895E82F0A
  22 +:10015000F0E0EE0FFF1FEC55FC4F80819181089578
  23 +:10016000E82FF0E0EE0FFF1FE455FC4F80819181F6
  24 +:100170000895E82FF0E0EE0FFF1FEC54FC4F808154
  25 +:1001800091810895E82FF0E0EE0FFF1FE454FC4F3B
  26 +:10019000808191810895E82FF0E0EE0FFF1FEC566B
  27 +:1001A000FC4F808191810895E82FF0E0EE0FFF1F52
  28 +:1001B000E456FC4F80819181089524B12C6224B9CA
  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 +:10030000F894DEBF0FBECDBF282E362E81E591E0DA
  50 +:100310000E94F00C622D8BE190E00E94DD00632DC5
  51 +:100320008AE190E00E94DD0080E090E490939D03DC
  52 +:1003300080939C0380E090E69093950380939403D0
  53 +:100340008CE591E00E94F00C84E9882E83E0982EE1
  54 +:100350009CE9A92E93E0B92E2CEA33E038872F834D
  55 +:1003600004EA13E024EBC22E23E0D22E3CEBE32E72
  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 +:100510006F92A5E8B1E0BF93AF930E94DA0CFFEFB2
  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 +:100AF000F0E0EE0FFF1FDF01A454BC4F8D919C91DD
  177 +:100B0000DA01A823B923EF01C456DC4FE880F9804D
  178 +:100B1000CD018E0D9F1DE455FC4FC081D181AD01EB
  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 +:100BF000CF92DF92EF92FF920F931F93CF93DF93E9
  193 +:100C0000DA01A901E82FF0E0EE0FFF1FEF01CC544D
  194 +:100C1000DC4F888199816B01C822D922EF01CC5623
  195 +:100C2000DC4FE880F980C6018E0D9F1DEC55FC4F0E
  196 +:100C3000C081D1819601240F351FC217D30780F4DC
  197 +:100C40008A015D01CC19DD09AE01BD010E9441019F
  198 +:100C5000A8014C1B5D0BB5016C0F7D1FC70101C0C6
  199 +:100C6000BD01DF91CF911F910F91FF90EF90DF9029
  200 +:100C7000CF90BF90AF900C9441019F92AF92BF92E2
  201 +:100C8000CF92DF92EF92FF920F931F93CF93DF9358
  202 +:100C9000982E6B017A01082F10E00C5F1F4F102F68
  203 +:100CA0000027580188E2A80EB11CC5010E94FB0074
  204 +:100CB000C82FD0E0DC2FCC27075D1F4FC8010E9452
  205 +:100CC000FB00C80FD11DDF93CF9386EA91E09F937D
  206 +:100CD0008F930E94DA0C9701A601BE01892D0E9414
  207 +:100CE000F605CE0DDF1D6D2FC5010E94DD000F90B2
  208 +:100CF0000F900F900F906C2FC801DF91CF911F9133
  209 +:100D00000F91FF90EF90DF90CF90BF90AF909F90AA
  210 +:100D10000C94DD000F931F93CF93DF93C82F8EEBBE
  211 +:100D200091E00E94F00CD0E02496DC2FCC278E01BD
  212 +:100D30000F5F1F4F60E1C8010E94DD00C8010E94E3
  213 +:100D4000FB008111FBCF6FEFCE010296DF91CF91B7
  214 +:100D50001F910F910C94DD00CF92DF92EF92FF92E2
  215 +:100D60000F931F93CF93DF93C82FC62E8A01D22EE5
  216 +:100D700087EC91E00E94F00C8FEF8C0DEC2EF12CA3
  217 +:100D80008530D0F58C2F0E948A06E7012496DC2F4F
  218 +:100D9000CC276C2D6D29CE010E94DD00CE0104967A
  219 +:100DA0009E012B5F3F4F69010115110529F0612F4D
  220 +:100DB0000E94DD00602F0FC02091C8033091C9034D
  221 +:100DC0002F5F3F4F3093C9032093C803632F0E94C6
  222 +:100DD000DD006091C803C6010E94DD008E010F5F37
  223 +:100DE0001F4F61E0C8010E94DD00C8010E94FB00A6
  224 +:100DF0008111FBCF11E001C010E0E7012496DC2F48
  225 +:100E0000CC27CE010E94FB00082FCE0103960E9442
  226 +:100E1000FB001F920F931F928F9381ED91E09F93A0
  227 +:100E20008F930E94DA0C0F900F900F900F900F90FD
  228 +:100E30000F90812FDF91CF911F910F91FF90EF9035
  229 +:100E4000DF90CF9008950F931F93CF93DF93C82F18
  230 +:100E500082EF91E00E94F00CD0E02496DC2FCC27AA
  231 +:100E60008E010D5F1F4FC8010E94FB008331D9F432
  232 +:100E7000219662E0CE010E94DD00CE010E94FB00BF
  233 +:100E80008111FBCFC8010E94FB001F928F938CEF52
  234 +:100E900091E09F938F930E94DA0C0F900F900F9028
  235 +:100EA0000F9081E005C08AE092E00E94F00C80E0A3
  236 +:100EB000DF91CF911F910F910895CF93DF93C82FAA
  237 +:100EC00081E292E00E94F00CD0E0DC2FCC27CD5FD5
  238 +:100ED000DB4FCE010E94FB008431B1F4CE010E94B1
  239 +:100EE000FB008731D9F7CE010E94FB001F928F9340
  240 +:100EF0008CEF91E09F938F930E94DA0C0F900F90EC
  241 +:100F00000F900F9081E005C08BE292E00E94F00C00
  242 +:100F100080E0DF91CF910895EF92FF920F931F939E
  243 +:100F2000CF93DF93C82F8B017A0183E492E00E9474
  244 +:100F3000F00CF80160816F3F51F481818F3F99F48B
  245 +:100F400082818F3F81F483818F3F69F40FC06111EB
  246 +:100F50000AC0F8018181811106C08281811103C01C
  247 +:100F60008381882319F0E114F10431F48AE092E0DE
  248 +:100F70000E94F00C80E02FC0D0E02496DC2FCC271C
  249 +:100F8000CE010C960E94DD00F8016181CE010D9624
  250 +:100F90000E94DD00F8016281CE010E960E94DD0004
  251 +:100FA000F8016381CE010F960E94DD006F2DCE0106
  252 +:100FB00040960E94DD006E2DCE0141960E94DD001C
  253 +:100FC000219664E0CE010E94DD00CE010E94FB006C
  254 +:100FD0008111FBCF81E0DF91CF911F910F91FF90A5
  255 +:100FE000EF900895CF93DF93C82F80E492E00E94A2
  256 +:100FF000F00CD0E0DC2FCC27CF5FDB4F68E0CE01D8
  257 +:101000000E94DD00CE010E94FB008111FBCFDF9129
  258 +:10101000CF9108958F929F92AF92BF92CF92DF921D
  259 +:10102000EF92FF921F93CF93DF93182F4B017A011A
  260 +:101030008BE693E00E94F00C812F0E94B0008E1589
  261 +:101040009F0520F4812F0E94B0007C01C12FD0E0C9
  262 +:101050002496DC2FCC275E0183E0A80EB11C812FE3
  263 +:101060000E94F7046C01C5010E94FB008731A9F0C2
  264 +:101070008C3199F0DF92CF921F921F938EE492E011
  265 +:101080009F938F930E94DA0C0F900F900F900F9008
  266 +:101090000F900F90E12CF12C03C0CE14DF04F8F276
  267 +:1010A000A701B401812F0E94AF056E018FEFC81A0E
  268 +:1010B000D80A60E2C6010E94DD00C6010E94FB0062
  269 +:1010C0008111FBCF2296CE010E94FB0084FD0FC050
  270 +:1010D000C5010E94FB008111F6CF86E792E00E94D5
  271 +:1010E000F00C812F0E948A0680E090E005C060E14C
  272 +:1010F000CE010E94DD00C701DF91CF911F91FF90CB
  273 +:10110000EF90DF90CF90BF90AF909F908F90089519
  274 +:10111000BF92CF92DF92EF92FF920F931F93CF93E4
  275 +:10112000DF93B82E6B018A01C82FD0E02496DC2F04
  276 +:10113000CC277E0183E0E80EF11CC7010E94FB0072
  277 +:10114000873191F0C7010E94FB001F928F9384E8C2
  278 +:1011500092E09F938F930E94DA0C0F900F900F9064
  279 +:101160000F908FEF9FEF26C080E00E9433057C0137
  280 +:1011700018161906ECF487E992E00E94F00CE016CC
  281 +:10118000F10620F00115110589F001C08701A801C1
  282 +:10119000B6018B2D0E943D06219660E4CE010E948F
  283 +:1011A000DD00CE010E94FB008111FBCFC80102C00F
  284 +:1011B00080E090E0DF91CF911F910F91FF90EF9031
  285 +:1011C000DF90CF90BF9008958F929F92BF92CF9261
  286 +:1011D000DF92EF92FF920F931F93CF93DF93B82E7E
  287 +:1011E0004B01EA0179018FE992E00E94F00C8B2D0E
  288 +:1011F0000E94B0008C179D0728F48B2D0E94B00030
  289 +:101200006C0101C06E01F7016081611109C081812B
  290 +:10121000811106C08281811103C08381882331F04E
  291 +:101220000115110519F0C114D10429F5DF93CF93ED
  292 +:101230001F930F93F70183811F928F9382811F92D7
  293 +:101240008F9381811F928F931F926F931F92BF92F2
  294 +:1012500089EA92E09F938F930E94DA0C8AE092E0F1
  295 +:101260000E94F00C8DB79EB740960FB6F8949EBFC3
  296 +:101270000FBE8DBF49C0CB2DD0E02496DC2FCC27EC
  297 +:10128000CE010C960E94DD00F7016181CE010D9622
  298 +:101290000E94DD00F7016281CE010E960E94DD0002
  299 +:1012A000F7016381CE010F960E94DD00612FCE0110
  300 +:1012B00040960E94DD00602FCE0141960E94DD0025
  301 +:1012C000A601B4018B2D0E94AF058E010F5F1F4F49
  302 +:1012D00060E2C8010E94DD00C8010E94FB0081118C
  303 +:1012E000FBCF2296CE010E94FB0084FD10C0CE01F0
  304 +:1012F0000E94FB0083FFF6CF85E893E00E94F00C8C
  305 +:1013000068E1CE010E94DD0080E090E005C060E170
  306 +:10131000CE010E94DD00C601DF91CF911F910F9198
  307 +:10132000FF90EF90DF90CF90BF909F908F900895A7
  308 +:101330002F923F924F925F926F927F928F929F92E5
  309 +:10134000AF92BF92CF92DF92EF92FF920F931F93D3
  310 +:10135000CF93DF93CDB7DEB72A970FB6F894DEBFF1
  311 +:101360000FBECDBF782E4B016A0179011A8709871C
  312 +:101370000E943305892B09F42BC181ED92E00E9474
  313 +:10138000F00C872D0E943305682E392ECD2809F4E4
  314 +:1013900017C1472C512C84E0480E511C542C442476
  315 +:1013A000520198E2A90EB11CC5010E94FB00082F52
  316 +:1013B00010E0102F00276201E9E2CE0ED11CC60119
  317 +:1013C0000E94FB00080F111D3F926F921F930F9315
  318 +:1013D0008DED92E09F938F930E94DA0CC2010E94E0
  319 +:1013E000FB000F900F900F900F900F900F90877051
  320 +:1013F000833009F464C0843009F4ABC0823009F052
  321 +:10140000D0C028E030E0AE014F5F5F4FB801872DBC
  322 +:101410000E94F6051801F8E02F0E311C8981F701B2
  323 +:1014200080838A8181838B8182838C8183838D8178
  324 +:1014300090E0982F88272E81820F911DE985FA85EB
  325 +:10144000918380830F8110E0102F00278885080F7B
  326 +:10145000111D1F930F938DEF92E09F938F930E9426
  327 +:10146000DA0CE985FA8581818F9380818F9383E1FE
  328 +:1014700093E09F938F930E94DA0CF70183811F9270
  329 +:101480008F9382811F928F9381811F928F9380818E
  330 +:101490001F928F9386E293E09F938F930E94DA0CC2
  331 +:1014A0009801A401B101872D0E94F6057101E00E9B
  332 +:1014B000F11E6F2DC5010E94DD006E2D41C026E09A
  333 +:1014C00030E0AE014F5F5F4FB801872D0E94F605F7
  334 +:1014D000180196E0290E311C8981F70180838A81E9
  335 +:1014E00081838B8182838C8183830D8110E0102F17
  336 +:1014F00000278E81080F111D80E493E00E94F00CFC
  337 +:10150000F70183811F928F9382811F928F93818134
  338 +:101510001F928F9380811F928F9386E293E09F9317
  339 +:101520008F930E94DA0C9801A401B101872D0E94CB
  340 +:10153000F605200E311E632DC5010E94DD00622DCF
  341 +:10154000C6010E94DD000FB6F894DEBF0FBECDBF0E
  342 +:101550002AC022E030E0AE014F5F5F4FB801872D17
  343 +:101560000E94F605780192E0E90EF11C098110E075
  344 +:10157000902F88270A8110E002501109080F191FC7
  345 +:101580009801A401B701872D0E94F605E00EF11E17
  346 +:101590006F2DC5010E94DD006E2DC6010E94DD0089
  347 +:1015A00002C000E010E0EFEF4E1A5E0A60E4C201F4
  348 +:1015B0000E94DD00C2010E94FB008111FBCF02C02E
  349 +:1015C00000E010E084E593E00E94F00CC80102C046
  350 +:1015D00080E090E02A960FB6F894DEBF0FBECDBF34
  351 +:1015E000DF91CF911F910F91FF90EF90DF90CF90FF
  352 +:1015F000BF90AF909F908F907F906F905F904F9033
  353 +:101600003F902F900895CF92DF92FF920F931F93F8
  354 +:10161000CF93DF93F82E6B01EA0187E693E00E94F7
  355 +:10162000F00C8F2D0E94B0008C179D0728F48F2D91
  356 +:101630000E94B0008C0101C08E010115110589F4D2
  357 +:101640001F921F92DF93CF9383E793E09F938F9333
  358 +:101650000E94DA0C0F900F900F900F900F900F9048
  359 +:1016600030C0A801B6018F2D0E94AF05CF2DD0E06C
  360 +:101670002496DC2FCC276E018FEFC81AD80A60E2BF
  361 +:10168000C6010E94DD00C6010E94FB008111FBCF54
  362 +:101690006E0182E0C80ED11C2396C6010E94FB0099
  363 +:1016A00084FD12C0CE010E94FB00C6010E94FB0017
  364 +:1016B00083FFF3CF81E893E00E94F00C8F2D0E940E
  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 +:1018200084EF90E00E94B80C215031093093C5003C
  388 +:101830002093C40088E18093C10086E08093C200B9
  389 +:10184000E0ECF0E080818D7F808308959091C0006E
  390 +:1018500095FFFCCF8093C6000895CF93C82F8A30A0
  391 +:1018600019F48DE00E94260C8C2F0E94260C80E03B
  392 +:1018700090E0CF9108958091C00087FFFCCF8091C8
  393 +:10188000C600089580E895E20E94010C82E091E094
  394 +:101890009093D5038093D40308950F931F93CF9310
  395 +:1018A000DF93CDB7DEB764970FB6F894DEBF0FBEF7
  396 +:1018B000CDBF86E0E0E1F1E0DE01119601900D92EE
  397 +:1018C0008A95E1F72CEA2F879AE1988B81E9898B39
  398 +:1018D0003DEC3A8B2B879C878D878EEF8E878FEF21
  399 +:1018E0008F83888789871A860E94420C9E01295F10
  400 +:1018F0003F4FAE01455F5F4FBE01615F7F4FCE013D
  401 +:1019000001960E94710B20E044EE57E062E0809166
  402 +:1019100092030E94AC068823F1F020E044EE57E0E9
  403 +:1019200061E0809100010E94AC068823A1F000EDE7
  404 +:1019300013E02CEC33E042E050E0BE016D5E7F4FDF
  405 +:10194000809192030E949809039789F7CE014396EC
  406 +:101950000E945300ECCF8FEF9FEF64960FB6F89480
  407 +:10196000DEBF0FBECDBFDF91CF911F910F910895C4
  408 +:10197000A1E21A2EAA1BBB1BFD010DC0AA1FBB1F93
  409 +:10198000EE1FFF1FA217B307E407F50720F0A21B05
  410 +:10199000B30BE40BF50B661F771F881F991F1A9472
  411 +:1019A00069F760957095809590959B01AC01BD019C
  412 +:1019B000CF010895A0E0B0E0E0EEFCE00C94AE0FA3
  413 +:1019C000AE014B5F5F4FFA0161917191AF01809160
  414 +:1019D000D4039091D5030E94200DE2E00C94CA0F2D
  415 +:1019E0000F931F93CF93DF93E091D403F091D5032E
  416 +:1019F000238121FF1BC08C01D0E0C0E0F801819160
  417 +:101A00008F016091D4037091D503DB011896ED919D
  418 +:101A1000FC911997882331F00995892B79F3DFEF31
  419 +:101A2000CFEFECCF8AE00995892B19F08FEF9FEF6C
  420 +:101A300002C08D2F9C2FDF91CF911F910F910895A0
  421 +:101A4000ACE0B0E0E6E2FDE00C949E0F7C016B019F
  422 +:101A50008A01FC0117821682838181FFBDC1CE01FC
  423 +:101A600001964C01F7019381F60193FD859193FF57
  424 +:101A700081916F01882309F4ABC1853239F493FD5C
  425 +:101A8000859193FF81916F01853229F4B70190E030
  426 +:101A90000E94080FE7CF512C312C20E02032A0F417
  427 +:101AA0008B3269F030F4803259F0833269F420616E
  428 +:101AB0002CC08D3239F0803339F4216026C0226089
  429 +:101AC000246023C0286021C027FD27C030ED380FD7
  430 +:101AD0003A3078F426FF06C0FAE05F9E300D1124FC
  431 +:101AE000532E13C08AE0389E300D1124332E20620D
  432 +:101AF0000CC08E3221F426FD6BC1206406C08C36EA
  433 +:101B000011F4206802C0883641F4F60193FD8591F6
  434 +:101B100093FF81916F018111C1CF982F9F7D9554C3
  435 +:101B2000933028F40C5F1F4FFFE3F9830DC0833619
  436 +:101B300031F0833771F0833509F05BC022C0F801C2
  437 +:101B4000808189830E5F1F4F44244394512C54019C
  438 +:101B500015C03801F2E06F0E711CF801A080B18051
  439 +:101B600026FF03C0652D70E002C06FEF7FEFC50157
  440 +:101B70002C870E94FD0E2C0183012C852F77222EAD
  441 +:101B800017C03801F2E06F0E711CF801A080B1801F
  442 +:101B900026FF03C0652D70E002C06FEF7FEFC50127
  443 +:101BA0002C870E94F20E2C012C852068222E8301A6
  444 +:101BB00023FC1BC0832D90E048165906B0F4B701F2
  445 +:101BC00080E290E00E94080F3A94F4CFF50127FCE0
  446 +:101BD000859127FE81915F01B70190E00E94080F77
  447 +:101BE00031103A94F1E04F1A51084114510471F741
  448 +:101BF000E5C0843611F0893639F5F80127FF07C0B2
  449 +:101C000060817181828193810C5F1F4F08C0608168
  450 +:101C10007181072E000C880B990B0E5F1F4F2F76DA
  451 +:101C2000722E97FF09C090958095709561957F4FB2
  452 +:101C30008F4F9F4F2068722E2AE030E0A4010E944F
  453 +:101C4000400FA82EA81844C0853729F42F7EB22E45
  454 +:101C50002AE030E025C0F22FF97FBF2E8F36C1F089
  455 +:101C600018F4883579F0B4C0803719F0883721F03E
  456 +:101C7000AFC02F2F2061B22EB4FE0DC08B2D84601B
  457 +:101C8000B82E09C024FF0AC09F2F9660B92E06C047
  458 +:101C900028E030E005C020E130E002C020E132E081
  459 +:101CA000F801B7FE07C060817181828193810C5F6A
  460 +:101CB0001F4F06C06081718180E090E00E5F1F4F72
  461 +:101CC000A4010E94400FA82EA818FB2DFF777F2E9D
  462 +:101CD00076FE0BC0372D3E7FA51450F474FE0AC06B
  463 +:101CE00072FC08C0372D3E7E05C0BA2C372D03C0CC
  464 +:101CF000BA2C01C0B52C34FF0DC0FE01EA0DF11D58
  465 +:101D00008081803311F4397E09C032FF06C0B3945C
  466 +:101D1000B39404C0832F867809F0B39433FD13C0C5
  467 +:101D200030FF06C05A2CB31418F4530C5B18B32CB4
  468 +:101D3000B31468F4B70180E290E03C870E94080F7A
  469 +:101D4000B3943C85F5CFB31410F43B1801C0312C8B
  470 +:101D500034FF12C0B70180E390E03C870E94080F77
  471 +:101D60003C8532FF17C031FD03C088E790E002C018
  472 +:101D700088E590E0B7010CC0832F867859F031FFD9
  473 +:101D800002C08BE201C080E237FD8DE2B70190E036
  474 +:101D90000E94080FA51438F4B70180E390E00E9478
  475 +:101DA000080F5A94F7CFAA94F401EA0DF11D80812F
  476 +:101DB000B70190E00E94080FA110F5CF332009F47D
  477 +:101DC00051CEB70180E290E00E94080F3A94F6CF1E
  478 +:101DD000F7018681978102C08FEF9FEF2C96E2E199
  479 +:101DE0000C94BA0FFC010590615070400110D8F7B7
  480 +:101DF000809590958E0F9F1F0895FC016150704053
  481 +:101E000001900110D8F7809590958E0F9F1F08952F
  482 +:101E10000F931F93CF93DF93FB01238121FD03C019
  483 +:101E20008FEF9FEF28C022FF16C046815781248183
  484 +:101E300035814217530744F4A081B1819D012F5F82
  485 +:101E40003F4F318320838C93268137812F5F3F4F13
  486 +:101E50003783268310C0EB01092F182F0084F185EA
  487 +:101E6000E02D0995892BE1F68E819F8101969F8354
  488 +:101E70008E83812F902FDF91CF911F910F91089525
  489 +:101E8000FA01AA27283051F1203181F1E8946F93AB
  490 +:101E90006E7F6E5F7F4F8F4F9F4FAF4FB1E03ED051
  491 +:101EA000B4E03CD0670F781F891F9A1FA11D680FEF
  492 +:101EB000791F8A1F911DA11D6A0F711D811D911D22
  493 +:101EC000A11D20D009F468943F912AE0269F112497
  494 +:101ED0003019305D3193DEF6CF010895462F4770FB
  495 +:101EE000405D4193B3E00FD0C9F7F6CF462F4F7056
  496 +:101EF000405D4A3318F0495D31FD4052419302D0B4
  497 +:101F0000A9F7EACFB4E0A695979587957795679559
  498 +:101F1000BA95C9F700976105710508959B01AC0159
  499 +:101F20000A2E06945795479537952795BA95C9F780
  500 +:101F3000620F731F841F951FA01D08952F923F925B
  501 +:101F40004F925F926F927F928F929F92AF92BF92C9
  502 +:101F5000CF92DF92EF92FF920F931F93CF93DF9375
  503 +:101F6000CDB7DEB7CA1BDB0B0FB6F894DEBF0FBED2
  504 +:101F7000CDBF09942A88398848885F846E847D841F
  505 +:101F80008C849B84AA84B984C884DF80EE80FD8021
  506 +:101F90000C811B81AA81B981CE0FD11D0FB6F89497
  507 +:0E1FA000DEBF0FBECDBFED010895F894FFCF58
  508 +:101FAE00010100000002000000002D0C00000000E6
  509 +:101FBE00A0BDCDDDEDFD5245515545535420535432
  510 +:101FCE004154555300534554202F20554E534554DC
  511 +:101FDE0020534C454550004D4F44452045564549EC
  512 +:101FEE004C4C45004D4F444520534F4D4D45494CAB
  513 +:101FFE0000737973696E697428290D004368616EE8
  514 +:10200E006E656C203A2053454E44204D454D20536D
  515 +:10201E00495A45203A2052454356204D454D2053AE
  516 +:10202E00495A450D002564203A20252E3478203A51
  517 +:10203E0020252E3478203A20252E3478203A20255B
  518 +:10204E002E34780D0A004953525F52583A2072646A
  519 +:10205E005F707472203A20252E34780D0A00636C5E
  520 +:10206E006F736528290D00736F636B657428290DD6
  521 +:10207E0000536E5F5352203D20252E3278202C20A7
  522 +:10208E0050726F746F636F6C203D20252E32780D69
  523 +:10209E000A006C697374656E28290D00737461747F
  524 +:1020AE007573203D2025780D0A004661696C5B69C9
  525 +:1020BE006E76616C69642069702C706F72745D0D40
  526 +:1020CE000061636365707428290D004661696C5B5D
  527 +:1020DE006E6F74206C697374656E696E675D0D004A
  528 +:1020EE00646973636F6E6E65637428290D00736F78
  529 +:1020FE00636B6574202564206672656573697A6505
  530 +:10210E002825642920656D707479206F72206572A0
  531 +:10211E00726F720D0A00534F434B5F434C4F534542
  532 +:10212E00442E0D0042616420737461747573203DFA
  533 +:10213E0020253032780A007265637628290D0073E7
  534 +:10214E00656E64746F28290D002564204661696CE4
  535 +:10215E005B252E32782E252E32782E252E32782E95
  536 +:10216E00252E32782C20252E642C2025645D0D0A18
  537 +:10217E00007265637666726F6D28290D00495352A1
  538 +:10218E005F52583A2072645F707472203A20252E86
  539 +:10219E0034782073697A653D25640D0A00554450E4
  540 +:1021AE00206D7367202325642061727269766564E1
  541 +:1021BE000D0A00736F7572636520506F7274203A4A
  542 +:1021CE002025750D0A00736F7572636520495020C6
  543 +:1021DE003A2025642E25642E25642E25640D0A00D2
  544 +:1021EE00495020524157206D736720617272697693
  545 +:1021FE0065640D007265637666726F6D28292065C1
  546 +:10220E006E64202E2E0D0069676D7073656E6428E6
  547 +:10221E00290D002564204661696C5B25645D0D0AFD
  548 +:10222E000069676D7073656E64206661696C2E0D52
  549 +:02223E0000009E
537 550 :00000001FF
... ...
Tangible/tangibleInterface.o 100755 → 100644
No preview for this file type
Threads/Page.html 100644 → 100755
Threads/threadSocket.c 100644 → 100755
... ... @@ -4,16 +4,66 @@
4 4 #include <string.h>
5 5 #include <unistd.h>
6 6  
7   -#define BUFF_SIZE 1000
  7 +#define BUFF_SIZE 100000
  8 +
  9 +struct PageWeb
  10 +{
  11 + int size;
  12 + char* html_contents;
  13 +};
  14 +
  15 +
  16 +void getWeb(char* pageName, struct PageWeb** page)
  17 +{
  18 + printf("Test\n");
  19 + *page=malloc(sizeof(struct PageWeb));
  20 + printf("Test ouh\n");
  21 + FILE* pageFile=NULL;
  22 + printf("Test 1");
  23 + free((*page)->html_contents);
  24 +
  25 + if((pageFile=fopen(pageName,"r"))!=NULL)
  26 + {
  27 + fseek(pageFile, 0L, SEEK_END);
  28 + long nbr_char=ftell(pageFile);
  29 + fseek(pageFile, 0L, SEEK_SET);
  30 +printf("Test 2");
  31 + (*page)->html_contents=malloc(nbr_char*sizeof(char));
  32 + fread(((*page)->html_contents),1,nbr_char,pageFile);
  33 +
  34 + (*page)->size=strlen(((*page)->html_contents));
  35 + }
  36 + else
  37 + {
  38 +printf("Test 3");
  39 + char erreur[]="La page n'a pas été trouvée\n";
  40 + (*page)->html_contents=malloc(strlen(erreur)*sizeof(char));
  41 + strcat((*page)->html_contents, "La page n'a pas été trouvée\n");
  42 + }
  43 + printf("Test 4");
  44 + fclose(pageFile);
  45 +}
8 46  
9 47 void* reponseConnexion(void* sock)
10 48 {
11 49  
12 50 printf("Connected\n");
13   -<<<<<<< HEAD
  51 +
  52 + struct PageWeb* page=malloc(sizeof(struct PageWeb*));
  53 +
  54 + getWeb("../Sidoux/Page.html", &page);
  55 +
14 56 char buff_rec[BUFF_SIZE];
15   - char 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\nPOST /Page.html HTTP/1.1\r\n\r\n";
  57 + char buffer[BUFF_SIZE];
  58 +
  59 + 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");
16 60  
  61 + printf("Test10\n");
  62 + printf("%s", page->html_contents);
  63 +
  64 + strcat(buffer, page->html_contents);
  65 +
  66 + free(page);
17 67  
18 68 FILE* sockdial_stream = fdopen(*((int*)(sock)), "a+");
19 69  
... ... @@ -32,25 +82,7 @@ void* reponseConnexion(void* sock)
32 82 fprintf(sockdial_stream, "Ceci est une réponse du serveur TCP.\n");
33 83  
34 84 //}
35   -=======
36   - char buffer[BUFF_SIZE];
37   -
38   - FILE* sockdial_stream = fdopen(*((int*)(sock)), "a+");
39 85  
40   - printf("Sock : %d // Stream : %p \n", *((int*)(sock)), sockdial_stream);
41   -
42   - while(strcmp(buffer, "EXIT\n")!=0)
43   - {
44   - printf("WAIT\n");
45   - fgets(buffer, BUFF_SIZE, sockdial_stream);
46   -
47   - printf("Le message reçu : %s", buffer);
48   -
49   - fprintf(sockdial_stream, "Ceci est une réponse du serveur TCP.\n");
50   -
51   - }
52   ->>>>>>> 52d8a1eaf954b611aaf0861144b440a15f7c517d
53   -
54 86 strcpy(buffer, "START");
55 87 printf("Fin de la connexion\n");
56 88 fclose(sockdial_stream);
... ...
bin/Makefile 100644 → 100755
No preview for this file type
bin/test.c 100644 → 100755
1 1 #include <stdlib.h>
2 2 #include <stdio.h>
3   -<<<<<<< HEAD
4 3 #include <unistd.h>
5 4 #include <getopt.h>
6 5 #include <string.h>
... ... @@ -23,13 +22,6 @@ void handler(int sig)
23 22 }
24 23  
25 24  
26   -=======
27   -#include <getopt.h>
28   -#include <string.h>
29   -#include "libnet.h"
30   -
31   -
32   ->>>>>>> 52d8a1eaf954b611aaf0861144b440a15f7c517d
33 25 void argPortParsing(int argc, char* argv[], char* port)
34 26 {
35 27 struct option port_arg={"port", 1, NULL, 'p'};
... ... @@ -55,7 +47,6 @@ int main(int argc, char* argv[])
55 47 char port[10]="80";
56 48 argPortParsing(argc, argv, port);
57 49  
58   -<<<<<<< HEAD
59 50 action.sa_handler=&handler;
60 51 sigaction(SIGINT, &action, NULL);
61 52  
... ... @@ -66,19 +57,6 @@ int main(int argc, char* argv[])
66 57  
67 58 sendUDPBroadcast("BroadWesh", 2020);
68 59 sendUDPUnicast("192.168.0.37", "Coucou", 2020);
69   -=======
70   -
71   - int sock_fd=initialisationServeur(port);
72   -
73   - if( sock_fd==-1 ) { fprintf(stderr, "Initialisation du serveur impossible\n"); return -1; }
74   -
75   -
76   - boucleServeur(sock_fd, (void*)&reponseConnexion);
77   -
78   -
79   - sendUDPBroadcast("BroadWesh", 2020);
80   -
81   ->>>>>>> 52d8a1eaf954b611aaf0861144b440a15f7c517d
82 60 return 0;
83 61 }
84 62  
... ...
includes/libnet.h 100644 → 100755
includes/libthrd.h 100644 → 100755
libs/libnet.a 100644 → 100755
No preview for this file type
libs/libthrd.a 100644 → 100755
No preview for this file type