From 649c2c2f58399a7e0ad4d1b8c1f5e03460f6b139 Mon Sep 17 00:00:00 2001 From: Klagarge Date: Wed, 31 Jan 2024 13:54:26 +0100 Subject: [PATCH] add SDi/IOT_Technologies --- infotro/README.md | 6 +- infotro/SDi/README.md | 8 ++ infotro/SDi/bluetooth.md | 4 + infotro/SDi/iot_technologies.md | 121 +++++++++++++++++++++++++++ infotro/SDi/protocol_developement.md | 4 + infotro/SDi/xml_example.png | Bin 0 -> 49279 bytes infotro/_navbar.md | 3 + 7 files changed, 144 insertions(+), 2 deletions(-) create mode 100644 infotro/SDi/README.md create mode 100644 infotro/SDi/bluetooth.md create mode 100644 infotro/SDi/iot_technologies.md create mode 100644 infotro/SDi/protocol_developement.md create mode 100644 infotro/SDi/xml_example.png diff --git a/infotro/README.md b/infotro/README.md index e98fd92..0efec6e 100644 --- a/infotro/README.md +++ b/infotro/README.md @@ -7,8 +7,10 @@ ## [SDi - Système Distribué](/infotro/SDi/) -- [Transmission process](/infotro/SDi/transmission_process.md) - +- [Transmission process](/infotro/SDi/transmission_process.md) +- [IOT Technologies](/infotro/SDi/iot_technologies.md) +- [Protocol development](/infotro/SDi/protocol_development.md) +- [Bluetooth](/infotro/SDi/bluetooth.md) ## [Eln - Électronique](/infotro/Eln/) - [AD/DA](/infotro/Eln/ADDA) diff --git a/infotro/SDi/README.md b/infotro/SDi/README.md new file mode 100644 index 0000000..70b8805 --- /dev/null +++ b/infotro/SDi/README.md @@ -0,0 +1,8 @@ +

+SDi - Système Distribué +

+ +- [Transmission process](/infotro/SDi/transmission_process.md) +- [IOT Technologies](/infotro/SDi/iot_technologies.md) +- [Protocol development](/infotro/SDi/protocol_development.md) +- [Bluetooth](/infotro/SDi/bluetooth.md) \ No newline at end of file diff --git a/infotro/SDi/bluetooth.md b/infotro/SDi/bluetooth.md new file mode 100644 index 0000000..84629e1 --- /dev/null +++ b/infotro/SDi/bluetooth.md @@ -0,0 +1,4 @@ +

+Bluetooth +

+ diff --git a/infotro/SDi/iot_technologies.md b/infotro/SDi/iot_technologies.md new file mode 100644 index 0000000..afeecb8 --- /dev/null +++ b/infotro/SDi/iot_technologies.md @@ -0,0 +1,121 @@ +

+IOT Technologies +

+ +## Serialisattion +Sérialiser est nécessaire pour deux principales raisons : + +1. **Communication entre systèmes :** Lorsque des objets résident en mémoire vive (RAM) et doivent être échangés avec +d'autres systèmes via des canaux de communication, la sérialisation les convertit en séquences d'octets pouvant être +transmises efficacement. + +2. **Stockage persistant :** Parfois, il est nécessaire de conserver des objets au-delà de l'exécution du programme, +les stockant dans une mémoire persistante (comme le stockage de masse). La sérialisation permet de traduire ces objets +en un format pouvant être stocké et récupéré ultérieurement. + +## Basé texte ou binaire +- **Encodage des données :** + - **Texte :** Les données sont encodées sous forme de flux de caractères imprimables (comme dans XML ou JSON). + - **Binaire :** Les données sont encodées sous forme de flux d'octets, sans nécessiter de représenter les caractères imprimables. + +- **Lisibilité et Efficacité :** + - **Texte :** Lisible par les humains, facilite le débogage. Cependant, peut être moins compact, nécessitant plus de bande passante. + - **Binaire :** Plus compact, nécessite moins de bande passante. Cependant, illisible pour les humains, compliquant le débogage. + +### Sérialisation basée texte +La sérialisation basée texte est généralement utilisée pour les données structurées, comme les documents XML ou JSON. +Ces formats sont lisibles par les humains, ce qui facilite le débogage. Cependant, ils sont moins compacts que les +formats binaires, nécessitant plus de bande passante. + +#### XML (eXtensible Markup Language) +XML est un langage de balisage qui définit un ensemble de règles pour l'encodage de documents dans un format qui est +à la fois humain et machine lisible. Il est largement utilisé pour représenter des données structurées et pour échanger +des informations sur Internet. XML est un format de données ouvert et indépendant du logiciel et du matériel. + +1. **Structure :** +XML utilise des balises pour définir des éléments structurés. Chaque élément a une balise d'ouverture et une balise de fermeture. Les balises peuvent contenir des données ou d'autres balises. + +2. **Attributs :** +Les éléments peuvent avoir des attributs qui fournissent des informations supplémentaires. +Les attributs sont définis à l'intérieur de la balise d'ouverture. + +3. **Hiérarchie :** +Les éléments peuvent être imbriqués pour créer une structure hiérarchique, formant ainsi un arbre de données. + +4. **Document XML :** +Un document XML commence souvent par une déclaration indiquant la version d'XML utilisée. Ensuite, il a un élément racine qui contient tous les autres éléments du document. + +5. **Namespace :** +Les espaces de noms (namespace) permettent d'éviter les conflits de noms en associant un préfixe à un espace de noms unique. + +6. **Caractères d'échappement :** +Certains caractères spéciaux (comme `<`, `>`, `"`, `'`, `&`) doivent être échappés pour éviter toute confusion avec la syntaxe XML. + +7. **Validation :** +La validité d'un document XML peut être vérifiée en le comparant à un schéma XML (XSD) qui définit la structure attendue du document. + +***Éléments :*** +```xml + + data + +``` + +***Attributs :*** +```xml + + data + +``` + +***Namespace :*** +```xml + + + data + + +``` + +
+ Exemple + +```xml + + + + For ever + Pavarotti + + + No, la morte + 3:50 + + + Che voi m 'amate + 2:55 + + + 30 + + +``` + +![xml_example.png](xml_example.png) + +
+ + + +En résumé, XML offre une syntaxe flexible pour décrire des données structurées de manière lisible par les humains et +interprétable par les machines, facilitant l'échange d'informations entre systèmes hétérogènes. + + +#### JSON (JavaScript Object Notation) +JSON est un format de données léger et facile à lire et à écrire. Il est basé sur un sous-ensemble du langage de +programmation JavaScript, Standard ECMA-262 3ème édition - Décembre 1999. JSON est un format de données texte qui +est complètement indépendant du langage mais utilise des conventions familières aux programmeurs de la famille de +langages C, y compris C, C++, C#, Java, JavaScript, Perl, Python et bien d'autres. Ces propriétés font de JSON un +langage d'échange de données idéal. + + diff --git a/infotro/SDi/protocol_developement.md b/infotro/SDi/protocol_developement.md new file mode 100644 index 0000000..867ae50 --- /dev/null +++ b/infotro/SDi/protocol_developement.md @@ -0,0 +1,4 @@ +

+Protocol developement +

+ diff --git a/infotro/SDi/xml_example.png b/infotro/SDi/xml_example.png new file mode 100644 index 0000000000000000000000000000000000000000..f3934ff370fa879bc0996f4753d974a339f36874 GIT binary patch literal 49279 zcmd3NgpHyF)qX@y!bAc90LWo#5A*;4d@cY07zQT7 zU4e3&H2?s3VYVtNx-b0*+z&teWPhAT6fYTl9}wsxX*=7b7k0Mg|}QCCE9RtCx$OM-27028r;C2CNVJ z^0d3pw!EUv(_}lZhj`B_-aVD&d*xpA0z)hR?jz+(tVZuJ&1yTD?D~3UUEvm&Y)}36 zz?#7>AASIrYy4{X!v-bUdfV0Xqt_~5d2at${t-uH7JVGEUf$!J{+5DNR@~B3Z|?`^ zi*MsCZlH?T9O?l`1nsj=0i5gQt-fz7j0?Yw%AJs+d>wiFJdL>{UlJ4Za4M^kTRnwy zD%Y#Nd3`IRL-xGwg91z>#ncMwCX`J=8@m9yLd{l4kPba@(t{FtG>;#4NJGX6Q$43H z<*PUU5@UjiN-C?HCjo!uVWl-ySSn~4xv6Q5gfHdyKX~Dp9$nEaT{;>9w-86-r}->U zAJYAjT6g=5g?+rvUtbfQ5hxY-N41G{w(YIe^r>dK;*$#iD%hU2TESx{DA5VZ-qVrlo5TLO~AzZ~$Nrl%D!bZcO_ovsg9O?9|s;m(y@? z@>p8UmX{R>AwyFLklzucG2B~kI1vJ!J&!r>St&kT`d;=(H;VL5*Kh8RY6wkyBnelj z5X7roiG!Fk+A*=j@2VhGb0C*LMXusc*7}-deqG&{)77=DQ|*zxbH!L5*#Ez;+)R!# zVxGe9(a?&7;(G7H&96E6YfL2*i-LTxHFb3dAk1#KQ-0rQ^h8QLl~i+cK4)7E!{B|d zDrYt{l-ZG}i-QYh_OyxmvbJ*1X*Rj>dDa%zD2T~L1pECgeG;95o<=A=5Q|jPGoS^G zNMuM0Je)50woOd@xqhIqO1YK18aaGog_{MZAtI{(9&vZzuKYX3Dm}Q?-@hXn*Y)4H zG53LHdQ=Y6eCKF1590$K7%LaDG$8IQDgxtbqGAS9^YK&j@l-ojGEvcck}ysXTe;r; zqtwb56Vr2>9q+e{V+3bjLud{Y-+1GSL`q`0fBcoB!N2X_bX82bB2iL4BpFLZzEL!9g^Q!DK&xe z8Jv3xD8>d4BJrQzv73R;i5o9@(2DpOFy`pkNez3 z!qfio-*t9<@SpzWmIJRN6MJ8b9&pYXp{+xRd1QXQL_g!4`{Z~LU=3Y37Mgeq6A9@7 z_8?>sjb7E$;wdLhWGMrA>wn07SPKgBPg9+DimkSauMIk!!x>sLCXTr*b)C=rN7JF} zp;3>K>+bV+j{BGWEPAa_viop}$GbX}O`U;COyH*P!j$MKG!>evaW&9M?RbU@bkG-M z8s7T|;hoz|L6}b~0@XM?Lu;ed6kVjD!YY4vqOsiQA4C-afMhWgBfmvg!j;XZ<=xO5hoW4k{{FStN)42n$C2lG zRXKgi5I*v&@L+XQi&Quel&6Gw%?0YR(5CE`Qhi{JkFVUyIr21$Ac&F-xCJH#RkbY0 zQ4%N3bt;HCMd(GKap6cFQ(M-0+^no@5$9luL+yHna*h zekowe6tSM8sNMtFf{l{-ull21bk%&&s*+n2e+bBWV>9B2=wNb@)(?1W>ARzA@i{o$ z^NW91i!78+`~6-IR=Zp|)KxpyMWNQ^(PW6o71D}iPyfxp*?E&9<<>&af%I zzZjJw9RvMgqi%Y;I9L|mvJA%rz*(V7>LsRT{ucLL(1e_GJLniRDCEj>Ai;0YJDbNg zDe`p|ac%G_nKlzUI;dK$Xd{bmxc)xR`Exbt&+He8c%Sif@YrpS5s@}rU5p3`Mltud zEDs)`-`m2^)$G~FC^Cih-{!`4Pl_uT!M7#Hw_YOfL;BJt0<^?yb{t}Z1e+;{4d?@z z(bKB~9rer_a&NCSlSCMU(E;FvSgRO2-@;}+%nuG`U4L~;&?cGF{lV!1a-X9ixnuCE zBct7DqPDlMX5W={1TwI9p7wG`UPWR!zWVS)^})9Kz`X1XaxQ8%;Zor?&$&DI-f%d! zar%8;W;+fHD(zpWJqs5OZcJV{dlkEWYO%!ydjU=rDok@um zj2DH_fA_CuWDK3MCfOy+o@)rQ*A!KG)Y}`o_UbZ=h!7J8&!3s=H99M&DaPJ6moIEo z3}1OSDpC|b_=SyHGF6Bt;EtR)H6A=5M0-b{6+Sc~1u1MT|FO=yS~foW{&bTODR*D~yxO5&-10KvQu@+OgncA^;dSIn z=6*+1M5v6ApAVh&y?`o9NDNPvGvxJE{36w4UR+&Bt~o<3-gnN6gSu$!{^Z%9-HbON zUU#=5+C{O^OY`rArXS?$)2O_NTtTqN#ZFl?HiLD7PI!7N+6AwS0IYtyaY;{P)52vI z9gX!zhqY6RiMfX?4`DnFzHzt{8f?&0&$uu|1oq46uNiIN48qE!94U^&|8!I8wzElb zVFp!d4a41~Z|~&5(zMAm)S1a_rYd?1^BFv0cv(12vr`rKMBhuzEg?jEzj=D$^m{?M zHH>pkIX0D?8J`A-ausTcSpo3%LqnsY_xbOMTwH0rNnau+ zwpVVY#G^&mtKSa%ho^zv2X6)R4*!F?wZcH-vwwYsmH8nXd2O)ggY!(lVWr%p#r-$K zM(82MV2mi|T<5;xNy0w-R0r*X(O?vN?x)*Cm&`^T^r;ii>n&T-DHtnVW^%gsDC9z2 z!1jnU$Ydu#aM00ArF=G%C_Vl15{9vsFE*$uW*7TbNG4C0`x#ZBiBSAou2zjjU4NycI+l2TSJaMj&`Zdvea8%$}@@`R(df{&NwQM^_&ss zDSP8#O{P*BXBsrj8CCzL$oyl;3@pi~iSs!vwnqPJ1(D&(4Bxf?vI-zTaJA-{E?yCH zCczu}ai8Z+Ky)2NODxZU&E-Sw|0W{;4;{ggl55xe&&Y#{#Qpuh#%q!idqY)XZvy&% z#{b28kkq(6=_P=V0(s5!txtVst~%(9b}6qMCv>&JD5V`Uuyf1GB5CR-XE>2Da;@P~QfhkO)eW;b+9Po|r`*1R!4X_M!qtn?M3A{E?8d6TxjMv9i+F2v%}3NIXPX+;~9tGsfRZ@ zs`>;4+O6sA4GR7Hn63HniwD6NN3-kv zem<`FcX9r2r6i80HU8^Uz5Te+|NY=^KmLdZ`=1GB=7}DXzZ}3(%4^=}Ra4cn{T~sw zglq(ER&n3BA+IG=zWVizZS1zA{tyK|`1(}@wpI&FQ`GaO3V-e(Sm~SQwXpq~aRKj< z$P>yk54_&KDT+0RYnD9SeAb}b-_{*3~L6}oca|pPf;Gu z;*Z0hbmAOs(`KSPApx2{m}pZhSLEMGlR+}4(loQyB>UuRe~d}9(Vt)- zIZ{oR*eY0aTY(OWQwi>&xucyy62$aY2AlAFdFWMKSJVyz*gF3)#g-X#>P z0q%u#Rln4M=2Kd3X$P@2(3kZ~#^59xRy+rRF9EWY5*M8AV1g_g%fAMkSNNR`&!C$G zVEHQ4k~7c=wIbiy1hfY-xB-4d0F1yQ_Qwdzw2v~`YlMbWEiEb`G@LU)7SfhNa<({> zjfiC?&<+t8a)f7n;yartc7>;DH`(x;2CY2hVBI>0uIL)j@QSGQow`Xzyy=zpC6b>$ zhC1S7ZTtjZ5o`93WZez+Sx9=-o&X78>&|p`>6qUqTI|Os%HLb&th>c`Rorqe7&6PN zFmpt0Ns3gHCGEZ%hF|7&2_Ml%IwRoT7F&{@q7U}G%Ke4QQc^$OM+{z8qpr1^xtIh4 zrwq{_o>F&N)Y&7N6|pn|MYng8yL5L*!8742c*%FY`PY5Kh&gLxU~n)6(np*iIHD#9 zVC@hpZ9;E}wBY5mG!I_!Y=T}*1 zj5be;@hSZcM1$di*ay4!s7hwK?7d|z6-eFzM|pw~m;ssDzkjR0T^q=W!yL3^|J>^~ zG_Ui5-9|R@ZchmGssdYMp=gMA%aq7#_AsAMlj9(0I;)t1j_#z#oDXB|;E(89?7EHACLWmw&b!O+|&4Z8m@#v_ehctijlTifF@(?nd8B_@FNRAD#HWg%F9WXX8!#Y zlf}TJ!o`z*S@u^KA7eOno?z0sm@BJ@=kih$`EDBTFMji zPp6o2NnBMxubw7Lk?=KxTOOh{RvT8AcT*YW3t|YjC^r)OEmF^CrJ7NwO!Cz|VaIiV z9<%bWaa(X^cytot3XzH*f+U)B94YN9MT+3D%_@Oy9ho)EGI6QGfh8(7h}lYz^GFa=L5}Pmn6#0b z)u0eSnuH9k_Z#m6?=+EEQ7UfX!4<%#ZH=Gi;+J$?nY(yjkjoM6%*Nr5Wh*THRGN5E za4d=KBg)!rMs?}%T5C#wDF#N?Qz-s*17FR4Sbi-}UJ=wBM<*vC7i~ttV&;9D7BHZ4 zd!sUFzG2qY#e46xzQX05#!RNh!7~a7t5ms+@}oSm;3)JTNcOuOVi{zl&BE zhUx$&Y{(hg=q?HZ5fuEv>3C9{_I9nPq6f9*VT1sp*Bv68-tVs1@@S7fL@@hYwZMmG zBHssBhcW~%t-id&2Ykc>DyZGdc3|uEC-KW5*bhnVn2YC+^*sw<8*c*)=Bp2x*f(1b zXi$c$Bpj{WdB;fm3B{W`1070vkV(^MMks7M= z-45Cn22DNqq*{G4y2x=)yzp4b?Na@_o9~6~*fV9HU?u_zo7trN+Vz2e`+?*o&Jbn0 z?W^rvaz^r({H=fXce@=_?8iRbo2B=BjY63c-I?!fzLe%kS+q6Psp-t8#KUBY%~Y$2sDc0GeJ|_ubgu@4 zs9L?c@cLcyYy30{W`Sy!CQK(sVY*$qPB#8M-@AEE&Nwo}|U}-s(%9O?qX&{DQj6JY8W| z{lq$o#iYAA>#xKqFrd3uQ*V0X7&9-S6k=nQ(}#dAqeipB&eJw(_`u?Fs)09l++h9c zc?e*f-?74~Z|a?wD_#kLGnR_np#!YyZRF`a>jvKQYzWlo2=rAzcRLk zsAsav+7C*VywWrA?47WW(x;&zjt2aZ(z}5Z8ZQ{?D^lJN_DwpTk}h7k^HY}EzVdnN zy(xXKebi!Hn^(pUH8PV#!9_*nU}D%*8`8)+Wq4h!%*`ON=P=dKQ}{?yVme4H`9*SL zV1?!dHhVMxSl=8sp z^^N(t_Fnf_$+3XuE?FzO2V0x&270x)mk2ZX+Hr@tDh{#%Qd;L@Nr!A{WP)$}P>=pa zOzQ{82wmSfS!mWB`GLHP=YPjI|J2}{AB3UX6cckl9%s+*_4$B$8@|8SKP8$vEqV~= z)ne~rf7<2?VKcQ1FH$?Tlf|EFBaAvzIc@X!-k|ij)dfQKJ)frP+wiK7Z6Z%0?75{i z>zKc}O;-R@>(Pc~e$gQ3OKRcpsC3BIqz))| zaii-Id5}x$kNg}oab!QRm-|gqQ#PVSAy_sHe)P$`P=n8Ni;&1W@KKAYqm%wR{8pK` zgS{hlMk>(}}{iNGdYJk26{KY3;jk|&)*k(<}_;UKQ_G9i}|HrHw0!+D=x>}tw) z^2X$3JZ2NT(X$n=L1TohS>nMV=UvfevuZt;;MObvf6Q>?1kE_X?;+i1kDGVzq4SrZ z7|ZJS^TWUX$g=pk?Ygg~s!C!PqPIyW_}@AVyhZbTpNDj&6Oct{I>&w(z0xERmW;oG z{35->yo${@pgMCmiiI5wsH8eyFe|g75Ay1%8lHzwbj=jvjZi;5}8@7x;SRuJ?#9tBI&ls#1$tV>)8&QhiMu)VULQ zG<`LyLU}RfUae|BeNTW4v^5srQ*4J18>_!7Xqw3q89{l1OJ#z^ewJBL9&Zs%DQCRL z#ZOojOpIh|XcdEqvw{$RSTB5P{)=*La!FnV_lR|2%lhVGR5{PF!X6?RWp$8u3|e#>j{*ZWXbq zj^@Dv_wbM~G%;k~c5-1}7R!L;AxPkP*z*(kDec>C2zsYWSjDYJIKt`C(y(bJC6S);MZoAbE4# z3zXHY_%=M_jEhop?X8_rjyzJ6gvWH zYdhgVd60idyOvCav_)3^R;<9>M|l6{zdz3LIo!p5ETK931in=geP`dL#r|A?O3VgL zNqdrFANXnXO);x?(3=i=3jF$UdB+lg;*bU(LoGw%B$XacQpp>F(-P5VWA(u|Y4-4| zEjcoEJ|$D4mSjugCq&fm40x^O?CxOV+Z7wuGuz_FLQYo6I}@Tk5bOrtFoR8Z`#0GN zE}DM$r}(r*Ye-@Z%!D=ExautG#tvH4uP~w9*}1a!_Nd4lRgZl*SGQwI5nTgbGs}kh z_(EFFS81B{FQpiuY-%!XpanJ689O^^M!a``e4b`@Q}WtM?tlgcJGz#_((l1HS#_mW z34sqk^fu$p9fm*eusgR1_BiX<`GnW&99@1+p=XCo>@FF=KV#GXVWiw?(b@*<+=j~6 z60VlkO2z6@3x%93cPbD*k*vMCd77Wz@d`dmlBwH6rI414@F?&+A!L~&4z=qf`)4!P z3N3~ysgrz52^&a!rz5gXlKLbgNY}V`CpWhgCK>*QK7@Cb*X-@{K8?+(2-TaE`~xLB zK8K&TS%}i<-OaBc33PKT_OYiz`l0H8LvwjCI&QVNTI&e-Qz_oOpO%GU-*Fy@52gT6 z0OXT3naUaOWNNRa{&*W(!Ea?h?R}F1nh6Koy2Y@_(0R88jS28Mb6(BUn3PZdO1P!t zj7}HY_@)p)?1f|pZ9Jl(VgE&m^agAf_^UZdz|7(vqN&I0ZfTcRZr(g8qqiD}T7s~T zoC8r$6>;86q}V4WK`EOwa~Vza8qfCO@qVnxPdxv-FLT;rO?Xv=mspMIerJEVF zjhv=5uB%60A%8k6n>xCL1)x5`)bg4B!<^PrDif-hn0@_YzxRZLAK$jL@W@T3adZM- z4owX&3VwNkKc%|To!d^|BRP3^qoqSII|xX#PC_Pmu*Pm4aeP@>cS7U!VTO0klDCXH zIq6*fGyR6InjTfq6t<-;t*HU-jUfPQ3ydq6hx-smdxcV(t3`+;Ue}rmjey^ee$@d{ zcR!&y1UX9(0ZwD|48w={`gm^#r<~(#y(y7{m02(-+kD&5i#J+Tq6BBaZH?erlG@L4 zy41qR)OOo%k8bu7lbu$GQYOev*9`BoytRp!#OFpl+2onQz~}Rqw!v|ebEqSHF)dR# zJEmYU5zh~=c5G;pk2L2MalEYKEXQ@FZS5NgDVZ1*!|*}8fEEF>m&P@{KF_GN zk(FHMsn$ctsA~@&j+4-bm%%b4Y~(H7bPpRG3%6EFLVo$Pz_j8f5n^Suq+i32CvvM{ z4PYd%ZuOv7;`L4V!-7yBu`+9Mwgzb&U_SN1=4RSoCRdiiHU-Q;H6`4#>l6Ae|CpzT z$GxwvxYp4YMBex@Jh~$Ur;j|=CR{I-M0M3}bfP`{1tzbO=A5fjG+fG}vN_@U%O!3u z!-GK7h;2v<3mrqe@#*Ch>FxrjxID2y%lNAX(Ax>%&J&n)mk^LnWx{yM2xme)>wCwx z&qI`|mCuiGdsM}oj;pHbo)LqG;(c|4O-Som^_I-NAmLSeJ(*A!?7IWs>n-V-Jxa%5 zDUa2mgy&LRwY2~uJMsgy?CjGve!qdoMqnlu-9+eA8VLA=D>8U-->+K2({v1Jaf1u> z;p7iyl4nDeGfnBOIcz)rR7xj`!$7igY3D5Q%XrB7HQ)lYZ z0f!bKQb`P(e^Hd`8Hin@2iVdc)g=x0Sx;mX#i#q6e#1L!lj~bV=;d*i(gbSf zcHwT7CD7p+>8tsR*_Wu!%gwL#XBW`2Py6u_m#40bym2Wn%+7-ORcuA$j6BTP)`8&h z_+ce12<;32v+ch%*JBRkODHSmlC4q!M>#Ah8w`iVI#y|IfJJdGzKIk)mE*`%)0=Ln zB_v`G_mQ`}biyr@^(dwN`+jW6GGWE%& z4+NJlJ1X`ET7Tm|KUb8t^kxu;cx_Ktwi|p!2xd8UY+g}dmWpsbxOV%FHUiVp=YuXn zU%*0IBCb7c)a((L3SlqPeDAFwWH+7=bKiMx`OHmFcy~h58Z0|h8Yp>jDaSd< zZn)JW;Aze)8RD1yDFlDg`ZxO)z6Ap~h1K*+nU(NYBQg!TwvUs~y(l%EWuB0q|4!1? z>lnA^?ll~h@5!9}zQAlJ3F0(#pZ5tyrlW>Gcwn?C$3NM zZ&T{uF}3HqQKH9x%NYrGKkZ>tEOg}Z6wRc<@#qZUP+0(FqSAza9P?GR7S7zbFZxf> z@KHph8#rCp_8k|sJ9WaoQ1VLIIZ(sw1d;*gRP)>pq=jd@qU3rJZ|K_=>DPk>+N)pZ zI-UB~koXWFr8wBYElLn}im%~t&6pE<d>>V!dD6YJ#q-3;`$?&yw|rMFcErEbFK#C%SJc{rbKPrbr6}ob-pkGL#AI z1-+VrG!rN(!0$r4`QnG)_aV#c;|AK_&~S{?&%cMr5yXwzgMvD zr-4&KAaX=;=4H39D;j`#SptQSFS9N2TAoAOOu)u)p6$;Y10;WE0RfbwGoU9!&1=&W zl&8VN)$zkx3j9fmC)2k4d+P{q-XVOBdO|mAr3pK5`6|AXj&f(93a7tdna=%SwmVH3 zna^TyPU?49Bj~~yFBg5Dii1Uel|DOZNAfbh6!XW#O4~f4iwdNlg(9H%dmV~=lvYIu zi^=rZy26N|E1e=z&Z+&dW3GZ^(9ZGxgWZcRvx!wtPJ-BMY73&;6W!|HuM%+Bq0`TK zq=+lHuj88%rjr@PnrubsdObsdOw&T6|EOV@FzCBzAw+i%rc%n`32a&?I;gt+jK2AW zgfy*m)z*&F&Tg>=Z(rHihj&8-br3-0(0XV74Q`UsVlS8hEMm0lxR8J>- z{rr{>AhXZt_2#V+Z%I!Vgo~SnVACN@fVL!l`k0ABnv<#r;lm$SrB{kdE&=4 z2-rF&ybO7$8z{GbKix0m4(F;$t0+QL#f5C~1EQP|Vn&z(K~8d1uzlRVB@3mDpKOY) zi_uYZvWN^OG@&0OjIQ@n$x;asM^NVP5k;SfJnaoTKI)2YeDcZTR&f`k6l9L#usMHM zc@3e(?OCCJrgf`kfE7R7`+qGFIZ0$8KCWujYs%P?A#LOfcAs+&z6r9sCv8xdPq zLV@0{h)ij$6DwY;TWdmW4^^q)UhMj4^L$%=MHm_FB{Q0lbaxiIo^IaTmcSQ zWD3yHxM^W;j&C>Of#y^HiKP@oKN-kRZi zOM)bua3EHKKsx@B=xgNT_z-8Ji*+}(WOM}#AODMsWyHhyn}lQz2YN)5TYdD+(x}Ue zt4}lgMG>M_FZ0QPDwVWfEW*Bwlr23QKPLGaOgM7|*7TiDdK}B+X_ZO!Sf^65vFZ=G z6pJdX%M|X=xGJI4i=Ok9Jov&zVLW9b1_=LLLv-g3ry<@~gmj~oK0q*MLt>-w_H`nt zC*{7^mjx=pKXqbvRj-K+kpy$f^awPD;K!M4F8!)KQ64ryea1FZ8u| z0E?|G^0iGIemZ6@6Ft*tjc-lg*nB^^ul=kUwdOE)w&n=0(cTxb<1l}wko`cAqaJ8T zZgr>>Gpyv+ffq4+!PZC-cWGCzCKqA-AUFT}$zN|^4gMK@?GgF>vAe1CCPn8o35$`p zK?4h}ON=E16K%uEM-**48kSN2pcycsi_TONla75VTM0brWzLk_0EJKV&4P9;=Tf_}lS^0U*pvfa@i+fJeu(gF5V6ydV``ZqU+ zJssyJ?IV5_ja@+qKGWAq@qK7+UmKa_AtUX-wa6Z};Y+w@1xMGz^$1-^7yl}sKLpD+ zT%3t^Dq}_9;#iIGbL*8rh~)<)9QY$5FHptnAzKfSdvMD2pma@E8u@3fQb(OhcRrzu z*Wy_bW?$VK*Bh^#{vD>pLHm!t7bDjG%?HEwBJ@4Yw8W{)5*#@dV`tEfHVUF#nk`hY zaN_x~tm2}+u-)dv`lCkq?^SHiM>k${4w?%67!ozxwPY^yB!M9B@DlaloT)3%e03t; z=Am1y!77Qs)LK8^!PC9ZDlWz?oLxh@hZ0i{aegm1WMplXB74$|=ov!ohi~PV?>;g0 z_?`NbKDM4nx)$E5E+A78<4YNKtN~%EM->|rpD@FB10AG2jJ;;s zA-J6OpIZd=HQS`rrA4#+R#PkHf;kSKWN=7;n{&N>=O<-s-z5vf z)5V#jg2EF9dQ)s^zOciLz{)`|ImMS|@}=PMlQY-L+tK&f8ER1{mw0~wRvO+-!nM=| z_rU6WiU9;&MsYdCU{Dc)KZFoXs+$opNCkNp>T}mKWBSNp*}x&t?=V*>D_%{Y*)3;rd?QNdG}V%i=L&RT!T{XGb@_LcBk2|U zfXTalF$eF}k?PQLk!)zWr?q{m<;x3%-jryb9bx)mxHCy1_mVumrpWQR4_&wQgvfQ2 z+u~fLA!yMWW}dc7<9%un{Ek%AbnuPnco%wvoMKRcd`Z~wZ`M(0&@vtSu6LS8=j{7t z+d%$pC_c?m#7Y4YF7|P$=dA^PrsmrOIb!=vRN=||-pmN|X?_lm`ate*rq*+tv!GY) zX$4Ys1`QuEn%%~;clAt)j{Po>;X848bh`cRSXJQ4NU&9lH2mCAu(mO_rxwXQ^tg_~@np%=A>7B+4Q5aY5hG0- zJqgej9S)4}oe|2*PPw^z<8jEcl?v}Wmdk2lC6A=QMbF5mI zLx}~f1k-9FC-PjdU=DJDus}VA(Ko+_30$o%Dg<^&I)^`O9T=ZgHsi=1?o}5)Q6UPr zWFBu4^JP&`_dJ*gSk(}%+G#lrLtB&ZJ#9KPIE`IIG))&Gq?dz3va2gZDC06Ym zzIu)=TNF}nM2Iml{NB|a$;Bi@U=onO8xwi0AMXlgFVd>Kxh@5JsyIOAc{1X)e|b`z!qbk;W9F zIR3aC)R;W^lcGsm{vNceN=_x*veZ!p5(V_Da#nlpc@cEGDq}gzjBwM{OXp@&zm)m| zedll}iOg>3Z1jcml{WcFJa=F7tyJA&!ORoU=-6M)!P8_Hw?*L#&L#?r&L*|?9Q#@k zWPicnpL*Nx^eUdJoZl@2e)w6-U+0~`MD&_xg7JMT82nRh=%RC)T+(yfZ|!%}T>!$RoV)ten#fA(^U2SXPERZ7 z9wYA^@+!EIu`+0-@aVBwmXP-gpZ`QA&un=LzRWa>Q~6rXtcfkQgKvoQf} zkRrJmZgy@ZLy8I6*nC>2Lou|exiI{w(Kse*fFfY zc-)tSZblAV&OI0{R)-4;Avghj%r4|_PpKXmPgK5$#{nbmHQlu_VNKOhLrpNn9@@Sm zzPM-Y-a<%vza?q&jN|wf>b14X#9sYYpoQxlf}vFpoD+pz7pedRw!A(cLg6-o6s;B- zkNz4bvj{ZqC@&XXxo&Ui#uCNZ+_D_}vbQ6EOHh^*N_7S@@2SpdUL?V5B>9$^!lHuxTeDy+>^G@ZUq=mJ@U*Lf30b#HmvRr&5!Y8mav+#kOud zKR`7fqvu{l(pMB?UL3qgE-&1ZKa%l6T~>MO4F=sFHb1ShJ}Z%#(ZzKNt5hJR;|JW; zg){+@6sS~WV3{Rpe51n+M!45qo_>o@oS}Fp?6$4?aYZ&?r@45~(WiYA!lLVfIP?~1 zE^v1+c@lBH6dYnw-+{N7-c&X=x4L9XGpLQNuX1@#g;l0jH;n$%t?&KbtCJj{Ix4#I zeG?Z7z06O3p5oStF3oSEo#(|J3h?PsmcA%1nUbuP*Uk8_m0&Af zH}(rBRbpL*Kv+9Vk%32M2;nuS@eGvugB4L%{|h*yyJ6SjIH5Ak7SQiaQTP*AA?52b zJCfd?a6sRRJ7~A)5_<<*C82d_GuQee(&8&~hTt{Uc}98F6-n(2uSi=M{))-jJZq#e z7*%*nU5e1$Trn^8yb7%BA)H)5sH_D=nMc5atIV#6#rjcSn)BryEGrUz))P8^?ELgu zVES7T;|b49y>6$Snc#9#nlxe*5yaQHXC2L6Av_dN$@gTb*V`0*cBGYCoCOXbP`-5nqvC5aRRf0#RP9 z-@Ufwe==8+C{x+8+?AHGhf9};s1C>~tdpoZnmNJYw6#aHA6Hm#zT0dsU;E}8&8ns<3UTQ1UXSxwkF!)2?3 zCFGpeK!v zDLzjQd$H<6uCoE%p0kHP($i4|56W9Dn)AVP4$0#2PCT8>mK`Tt;4hro2Uf# z`%I0g;^dP1FJ7&h{S6pY;d?Mr3JI6POs<@DbDUkA4((>4x=8Dn_i$2~ao5l^yM^{kw}t(*4ske&ihLC1yB@7~@5Fcj=AiJ0xk$xZgS*DWwG+U9VzX%ETm=wIF($;+atOHLIv)ptqxgig@D2oKtJhO#^i{XvbGrqra6OU z29~cH0&_foIM3$}`7LZ=+CYJPh(_*L5BJng?ncpH*stg2W-J$OW|iN>$p?)%Zc9sO ztv7mlGt*w}bVb>>rcZcCowZ(itX3!4weQgn01 zXu5gX*z;8@(?`m(O$neH(J{ifwJ_+CmBqlJhjsI!rn;j-ykEw0MCEqfLiefl<9XWX zLe}YZ2@7u=WL6bJd!Y{FQeY%RVD$E(yq%qV7a_g$U4dHaY~YFkwp|X?-8|+#^@B6G zUM-R>V_$qi^8VOm@v(@nI5FRp>aySDiy+oR#$nKxp$~g0xB`a&!?eAP3_JT%-Vh#h zSfl*y9d*N+I_3`?0$m&*y(Ih(<$vrrgOPD>|D=IRFe3)dk8B<;Bk@Dnf!nu}v10Lo z!vj1K=bJCib^x&zyj4ja?+H&U9gJ|O`#IKyS{Sjxb;h|t;_lb7#hvZpfs((?9rApb z+2&K~sV3;2x#_qY8%G37?vxUL{d?7|;+T-MZ?JyowSwk?&}ypHiwS z@I6y1ttDr2q>I1msxHLYZki{Z40Q|!54yDCRUVhF?d0=BV=cuzu-A12x~cC&p}*#A zGvaSzPjEN(kn(?rfzl{k-0^l@cz+hxH$%}-aZQNZHPgJ}$g74#x9Sm%q)nRJA-m4w zBIFWQowGhP1kJeoU4*LjOl9?ZWmMN=$h%MG!G(X>5JUsKN$%~W*{?#lB|S%@Tgy&A z`8%%5Dtz2I@=S}2jixTOtpBoiQwy_T$CrE{{!cN6voENoOH zR(o(oD#}}$J~V97BN{qPj-ohICjPa2{tFMnf|oLhe5-=%dmmp_c+bo|*0;U7N>Ab8 z$x*S;)&13 zJRP$UTz8&9qA6^}mybI3cv2YoIBEIfwwLSvs{ifvoeb>XlU?@juidUl?2c{;z*|r3 z#JfMy)9mhTeT!E$dmqmaxT@tJP@kAwrN^~pe0x>!maGz(m?}ny061ajukiC}4R&S$ zeQS4bgxSm<`LgA_X(amhf6f9(Y~}e-95*LA+TG$IIZ4~?-6Uar{JWN65K$;6gAQ8N zTz%6E8VJBT#=TF&CuEZ@XU?tvB#__Ap2tPzs!EfEt}`=8x8`-Q$cZuF#-=roqSN-DUN@i_L7-zxQ~iAMj%J8Hv45!zFfmJWIaxgaoRpF zv;;!U_3;~+K!j+E+f}V!M?h5Jt%m4@e)t#fm#0Qh)JJotE4(Y-a@>jcmn0`s%FH=u z55vgWNcL?FKgABPy1w{}|5l=^v{t;PNIaIBX0GT34{yrM*CT{4w7)Y6dBr`E zFE6lIS^(E4THM&yUjAY@l&ga8b&QfpSbq{Jg!p4s?s{kU6@O=B)W)-KYXNC|^2gPN zA$oI3dUZhUVzohxuM>-|vn@P@BXBP2RJarZEiG)PIhGVIk zDNk_|IlUg=eY+PRiAG!(#JQ~jyk2;nob{15`^_e>L zK|~cO(5R0d7FIzdYZbuGAf~KpZ4swmZ5jKqg(EyrvsbC?GCp5fl=og)1ZeHOnyFI6 zfnsA3jd}o41Ca&LN_wX*E%A4Ew;ImB=vyeBpGJ8W29gDc{(h!vbvPGsSFc?UFN`8# zcVv7zV1gb*nHCzdceDRH0{YXb55b@3(NR1W^`+$#7V`WMe)Ry4N+;ETBe$wD3-nhT zhFtc~;&hawq9URawOw=-)Jf$xjk;HAo7O+5zx^Wp@@Ps-HX;`;s^(=kMkCJ@{DMW` zHx3=9{G0%X1jTonDP?3}xX<{sD+ooFUuU>(CPloQ@i!UUF^UcG;%vr#38M=!!;5LZ(9-QQtLE4>!Vimt^=6O#OvHG07ttR$Yv>ztb#)bJ1G5ZJdP6 zGpmS@$9;do?{RPtTd+qAYvM>8t?O;1u?W=S{_I~4Toy@52#cB--;l8E*`Rb+5*B@o zgd41H@uzuML zA)DR+%1%uYa@F4p6^RECOcfqEm6WQ#-pyIg4_32qy$NG9&EJkfn#Bqv*m+`lDC-g- zzh>}SEPyZ7Sc~&Ho8$`$D2FUJ6RMHhq;wl43_KAut*^4hq`&oE0J{OS?>Nn)}D!(J56l#wbKEEz$QEKPmD${`ky~LSNeIT z`}GH*-R6kECnCH7cZV03U;@mEt&ySINi6RiFYKXZoP2EP}I zd#?vKW1Wv_zuVi-hI15&juii2_CATw&H#ui6mkbdEu_6-NoHS!`c-8R)wU&)#P07` z^Ftq`7ayjM@ikev0t*y1 z{j?uL2fAI~L=1_^T6!Koh@{02+vbn_$~MtcKYm-QpFUVCZ|tz!)N7=@ z`cmy}sG*TK(futCvSB~+C#3XaE(JO18FlW$mN6v5Wtn)4%eaF%*O^o(Ya$<*G5AbU?;6@#WDz>q z#MQC0xDFT{3+Iiqj`^NHCAcb1rN|z*;*N5J%3VIap+v-@gD(%mUeS&2wQ4A^7Udq( z^Oxl2{2a;u>K_-1Q6y-qk!c-F=iGr+*)jLFy(&E1**QW<_fP(UhQdD07K#Z?gi~t! z<+HM<2%~iKgt11k=G~TFkp%zI&q;4kCam7v*HT{`j|ouD(zTq2;7c>MV!k~+kcc&ozw;~g%K)5Wl%4b3|8Lgt_D$OhZ<&>uz`_JK}_Hnoan9K zFgwHPuU%4O?RgN$aL-((5(XLa9r6czcC7#TT^JG|{^t=A5dVFHe2qi}|9SK*m{j;R zi0J~~8ITLehW>gQiTvQF2xR?4LcRVxDbEfcJFz(Ii zJ?7KZ_dNoxtQEFhA=^$v8zhvq$Tdo;OSS)!nL*)z8^i}3FZ)D8hw@?;A_=qGBQeDC zU6#|t@~P0e{?A}r?ff%zNJ&Xg5uvY-eW?AHEwO;QXf)8RzTwCBxJ!gy-@=j`O{i9pEYLAdhVb3#LOaLD_v#+MtlCCA_e8eXl)%(26OjCJ$X93@}i z(>GEU{FdJ#Z8f2U!cXaD0I|RzE+%H`_xo_IOJ~`|*nwA!u!^m*OyJ5MPm@cPgndWoV0uXEiL zMY+R&#=$KRSiQO{4~S;sffc8R#)bRf{Q&+z(y>RX`pzjtvs7sS;Pwf4sZ0VRJPdjei+j_Wd9VwlZgg>0O zMTm0pv_^1gca*9$Z{^^>wKk0vM5j!iL^Zph2nm*fWFK}kMZWkVdGto-^Vm@2Dv$ZX zr!O{xz@vpXgDCVa)Fd5l-jBh+2mSNYg{j1#$Z?RPM(9QmXAoXb%9|q0$k24uSmo@K zm^-=?@*cJdU{08CuEN}!YlAP=iSCP(t#gDCZORG_$OOL)y$5XJ@Ju_Nhbe0!;(tMUM86s@!yQE6+Ffp8VjNbDGlmzPeIPpd@8XR-%N2f`QpV=RA)Z$rm zwykN}oLf_~+F#zbl&w$GGhzR5?QwF-kHSc3n^2F&#WN4LN)04f=&G}0SUm;`7KcwV zX=|}55EJpCC6tdPv7^rS?;J65qahC>pj&ZMb`E)rT*S4a&=n4QejlQu--vr>2LJXl z(VZaev-an@320z zq|Rn{4On;RY+%FUFZGfpM63Bq36&x8KJ6o)d#zES@B4;>Q7ruw9Y+(+&d!0T49U5{ zV&lcZ8)_JIC@~4$0kf5DC@Y(mNi#!-ZDP*^a?^70p5~=MIrKaH zw(T~M&}H3e=8dVraH#=$VXXPpSyFF})bm{29;8s+4}>OXSa%A^Iq zaqLZpT%btOO$Fm-OTe}o)!H$7gZq~-tbHfC+~IegqFa{?QBwOVNdY#Pu?N7U=OIpr zV|Lrj!O#k}XYAIbH*?W%qTx@Y3PBNKjqHn;5DgVRG&Z{o+2-5BoZ+}ulv+O{9W z9iO>&<`sXB1$)F$6ulIUJ`K6-oCpbAK(6|WIjaRw<h>=?Rp*7jCHJZ~&(S z!;(KSHcYN+r=PsQ|Z z^&Kc4y84^Wtlz-2ubFfJ*tmZu^Ktpl#9)CPqPctVKmwElO5$KVd@dFgolGl*cV#Ak z1MgUgf42sV{&P|wq-CoY`Z%??uzSknUCJXegep0DK6pdKtS;~L)AsF5yI#&e_A_lY z7LxI#>V4MjU?Zi1=qm7S65-2iZ`dMM0Cf5m11iULL^c(K`Gk=+=hynLM^?fn^eg+& z__gx~bV?;wH%a>8x7=A7k{(STc36%k6xTg45nY)6$)CK`@TR}sjJMgYox$RHpa^{d zVX#Z>^Nhz0#RdAjtlg}oseb!g>Ve%j|8G_E`}VIb{X-lnOE}7%Q&^m{>Dis3j~E~m ztSp?IwbCFQ8JvgKt^u^w@F;)cC9v9&y$kJ5!WeJT(}k5N`%{oWMJc{Dplca=NC#?P z0}+i=D`1Mt&~_Ou4i#_PT)V4a*=#k;ntmS=KEfq;ro7dGxJCsj+Mff#Bzghx zxwwjqavvXOw1?<=GxLGLH!3SIv!|9lnkpG*Oi(!2`c|+q;|TqgiLj0CC@0r@t$`xJ zUN5l}7>vfC(TQxa^|Ch&C)&~E9vBcNC~fG()ad5Fv8O0Nrj1~RD~WwJvq8Q6F*}dP z4Pn-_n>;%R=NS|25mxE!q538Etbdqs^%EOmgQk_qrWl8w2&&Y`yJtt_X*zH+x#=0j zT7%Uyup8u*pT$`ZL4#n+qF*Ae%7x0li(0%J^qjai6ZP1pBV0nwoNl3V3Ul*bAFFdM zX<|()-Pk7x%ex~|HrtRf(t}>73Y`#3VKfnNhMjDc?I;+Af4+Hi&vI?2_g1@qZ0hx3 zvAjMAADJhl+7TnGC2ojVa3m4SonIQ7pjbczyshVR|t@DI{VQV zh?oUzvLY-&vYS(r>Wn8}XsBF;`>=&((*l7jdQw8N!b*rp(kuQ3Y_Md58}4FOO{@e zvF=KY_q8Dg!h1egjL3~dEUx!ua?Vy4rdjVU9cmp1@paB?zONc>9BeaAgqKV6aa`I{ zPd#^n3XAZ%)9@UYJEF=em$2j*U0TLL<)qTVC?|cxm9`)6@T0t?ZlX_4R*e1rWTZ{} zO3uZ|@w&{6tJUqYg#@>F-byEPJd!n~$syR8le#ELy3!c>hP{iORI}&Okr0NruJ&yh z3#ei9`7Vd=&_{i;DyOFepoB{?I+%vR$KP zE`1)4@Qzw+A^PwzIL(CF_qsq40P78LrO zg))4Z?(vsy@bApf%=FlXUBmC1h(*UV#E&}F=pS!gy<%}9sSSawCsg7TF-s8(MextA z^Ji$g7lpIlWz>Fxz0uf2v~#9x;BER8jv*yr-jO~>f!>`|z<58FkHBuc$ri?Ne@NDG zg=M=k-h$sMPwz27^a)Y=MtH&d5X;Xe47dwu?hm+@dVt{{OAH3dAy@1^qw+1aHwE+~jhi=XD+=K>h?iiY>`{*Z*!hVW{1WLlMbTgw%5$Uk>u z2Bvnmq^`vJU~U*AR!cEe`;6)jl%>#fW_*{5X=XT>&O|xZ+2327c1{u1B=i^@RW^^) zjG4g@MsO|BDmmGzUYG$&7oC$v$U}wW9iiV)bYV)Oh}iS_NvR)$wS)olRHluR*{PqX z@NuL31n-DoCEDW5HLu%a2r4B}V3=a3QTvz>y%3wo)0!25ya+Cj&1c(glwmUP^!P~( zO56)V(YaJ*I;W5k^pM`K9M{>q=!u^ntr7;aKXYfH*w!gaoYz4(h;pHT?V$-!^`_OY3>Zyb9 zyd|o~F1#tW7uo!PGr5E_*77&ppk3DeuQ>y?V_fSlo<)= z2~Zc}C8-Bv+_f*&tQYr@S|$NaoJ+7LrFaSoSqDJZ+OpyW7hTAe9VWY9 zH=FMQCD0en(^<58@@bwBThWKYE z=6FTdIvci*y0#SRix-88yHbpIC%*Gb#+Z=(QGVQl%GVeX_%?(}xA(rK`$ue9Z}YjU z?C~_e)^5>wX=&CVl_%%cGl9>uj$u;c$tM1xJUaoZfQd>ESN?2`b>E1?KE7@^3&MQCBuJYQ|o2`(m`YFWzL~Z_-}oltEf*gVe=V zF%keG<&p7QN{;S1t>gr1+sh*~h+D##A(t0^6uq)ZR*;x1cRVk^1I3<|8jyFHN5C89 zEp4cfy)_B=Q-}@IRipeiIkEcX2f~*qHxMtZ;3i3wL=0TCh)D~My(oA8t;JsUjOt>;oiYV((!lP$N&7IZ- z(O@JZ7d`+Tdok3VnQuy%4%l2M6>i+K7H~ILnTWc?sup?$I*%rMSea&Yc0|%6Inl|% zjzWYk;h^@eC4zh!cw=m7y3pvBA24lvQRIh9mG^gh(PkW~;72qj85mydkXG=zu%bLo8(;||v^cE&3^&kb%`h++niI1Q*<;Bd`V388Q1);V z$iE_z9H;W3f|ZdRb{DPDmVTUs3k-u-v0^bf|71*-|3pnB4efu z0Y_x^(@q?Wpe01 zvD$2e{s~I0zcKvp@>7e?RW6^oOMbr-`4t$C=^UCg52wBoA?dKi%S`^JN_0`mhsDJ7 zfqHMI`n0sH;%1oF#Y2P^1%7*23z&Kmk(&TDm3D3&9IHk`;`c~0$cV5t!^Xz%%(Wtd z2({4s-w@m6S1&SBy^U|%+PoD@-9$f1i&hzG2;`OQ@oHt(a3I=Q<6_cs@FQ=Ses@D9 zvz}R+Bh)CXNMvSl)gOS%q#VDnltOZKN|14CyQRGagS!i(x1B2vY$T|0n7v&ix z_F^P#{PpcG4u<4ZZ_1Fvj$6MP+ffVVq`sC&`khR)^32^0g2CTL12^Zn0&Z^^bTFz# zIXO862G80YxlIygSRA+P^PjyOc66da?EmPbLX2Fv*h*G02@pUJjZ#XGaxa9cbe!}P z!~-9(XC}7J#yiai(!OV3zWA|;Op)$Mh|vJ-%c$wn)2U)91%Y|E4HGwz-KqP5?r_;!{yAt%YB_wNgfM>1_w4A@+T$s(_XQ(&9Z;~*u{NffUN!)^?a&tXGg^lct%De z;_x~6v4YlPL{2KF@SP8v|8oING~GBoCa@4Z8?jnxHjo zy=LXD)OhW%OlfjhU(VazseNy_ARw?O!K^P$P)YA$^EmAs3ZFgP+P^=WrqDMG`PE1WVLwB}T56xE#bHd+a^JAPuSCLGx)(2U>!D@=*k$Pg zE8AcLMYF*AjX_bfjl59yiAwqT;slRTBEqPd&vik-y8isC2zO6>~0bnG)%YdfE!CFg&DC9y;%rq8w) zjCSnw^EB?E?Oz=s(^Aqmi7|Iu?T;P8@a&^pdz%3n zcOZ>k0aa28C$>(rL!e zWO&u)uN-Mn8&j{@%d`FY5~gdOUjqY-lC6^mYL9;gGYL>B(a4y8bWt{7pl)?!=RO7+ z^)X5sX(ogbGP4~A;uvp%i1~nSWkjsKP;q?NA%NgzB52fY6c*8Hd396)2+Vluu^)k# zDbunV<7w9Yr!x#1nD<>~i%fkDc+jo&iQzi1p-Fwg72#)LVLLka8F@SN5KewPP1*hIShAPO*E?R$y4}$O(j( zwD>m@c1#<5cccZ{>IxdjHM?({x?H-=QZ6(dkFV%li9nBhUYSzWOe1AKBpVDBf4oEA ztoptgWM+bU*4>@(oP^_|FI`6Zw{gHRvyjgb4`$c&B7l`J$} zRMppq!FpfEkUinn%1PpM6@{%|5{l#O83}_vXu?&nh>^T8u+(C!cQg7!HhvBpfy_*L zFTFp{CX)W&xR9LtSe-3?iU>;P7%o*Ih-4w9NYyene#aeA?0xVgzp3eCO-&l+Wx4<$ z&$~C?`HmEnHJGG?Z?!#gAA!`OPyOdguU=a=7(904U>^9agopb6De|TgcMGoQxGAhe zg^mxmuf@yAc7JLZiAj*TY3aCLwEU!LY}_AD$L3@uNHz@?qZQKGH`NDL`An9MJ~60q z(5v^ncW2nxszeH&S%(`5Na73Gh?(p4+XTG1uAD=T((6fB^Zg-94>gU1yoj&NBzrlX z3xStWu6kzetIFGsvNzjT^$dY^=REqUSay*L!?F2QAbX+HTdP-3rab_l$J0(!f+!?rAt~uO(uDc&bdH6jsLoVdl zQT#dE&I}k`sNs8(2VxhQ_LU~Glr0}0?+-65^{YumY@W}7wxfT2eof0&Kh#gVKCx*DPj^Q7miSAEv#qlo&!|G9dM1O3FF_V@78*|j>9tL3_v?u@D^tK?0>8FKh6h1d zBwa&AH{OHQh(K(GONAr3S=FeC&l}|v3oYjX$OXXpJaWqU_T)qWxt*D>bWeKhr45=# z;uXG59g1^vdj09i=P$NQ`|~z#XQQFp^WK+3i+}CdQC9#tpYiMY2CA!j%+Xfw1jXNG z3{w>*>gFo}9k)&_bduI?eN64*cSmS1U!P9d$^MgEzhU0kATcr&p6uWGY821?dNcqF z55>BtIDFVeNrJj&IY>;iA-<#sU+Y#z?PGc68*+uiy9qh%+8u}LXZ$RRxaL2idc42T zh*j~UVP2Gviy(LEtNX~+OHtK_n~`!O{H?4tJu4!GsE^ED7IjN>c+2I7n1}>IKVTDp zGE+Y>%`(K2@d_m^5`I|}1CH8^E4Ic$=C7Htj_v^+G*BVIWz zEBGHANBuJK>JgX}9nV<3l7apbdCIrw8!wWtU{7uT|7PwpvKFl38LN{jNVOmU;feym6MFh@xW6~AVb(l7dOlQx`ML&>WHifwmwN6pd1gNha#T+V`=`=Pwm8oJrMEj zD?He`%l{saI$+tbDL+xemtTDpnlYPHOANDyw-Irx|F_N2Cr5rHQOFa=#5)&sG+}SO z@MKsc73RLjGjd6QH@JT+A+_b3si9%_#8>X?&C{j#eIO(j-eFh1!f89_EHnXZ{&+Vh z8426c00p6n0Gf0Ay%dzAp7B~)J&^k@4yL#?y-`FWUrq0LGZQxDu}2EZ+^c(MMVN0N z5vvsNLH(^HvLhKW<=kG#$tb9p(S;O{^k*b7Hlr^EkUky4bk{nEg#m!Fo)52(JIh3$ z(m(JSNdQDf`K?7P0=p9son)`n&~Jm~gdcb}2?bC<(zyB0bqfB$DOOia-+9j2|6c;ys& z^s9pLYtQ9RT+HETN{PS(4bOjZynjR!I^O=!L`z#+eFdX9x=+5fyal}n@a49$4$l9k z?RDY;ei27#Hu^_he&samu3lETbtUV9F2g$s%kBguW=147)#t&Ee^=~f07*Rd>stcEnyc&rMSd!`(IcP>&?Tp6@1YI0VKCz{7 z|5Yr)ICzsM;#M+k5k&0Hn0EVrd>I_D`x*F4_Wyq}GY(tlQ%an%v1d}wfpuG2{ksM< zc~ll8n5|13i20T8yq~WZBKwL4_a_L;@j{PI+BXzIM@Q#v!2gfL3q*dDe{=f&^d<9& z2pH>w%{!NO%gbb}>hhzUNUi**>mVj-q)5<;NND91T+d-Y+(m&l3NCfP=zn=Ead0eI zNm$`JE8@=%dNdX8Cg1=5N;I!A6m@ILojIYCcy$oEPhu=zqYVT9ceeM)X*j^&!j#*Q z33D=54rpL0Ic%MZ^9%_~{!5k_RfhctmK8u@R!7b|2J})5B+Vnw{NJ?>W?7jBHWP@! z!Z=DPSaChjf63n@iv4&eBrzb4xukWaZF0RB8#~3YTSj%|)fTt*n`J(srzr%XwZP**Q z%$~f*EB`@~E`|e;@P=P`n;^%?{OpvF7CFEVMCVQ*q8IY=&=j(FRvaw;F~t?K%(F

<G7W$j6(W6#TYv-8r}}%%*6f`foqLwN?w{ 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 literal 0 HcmV?d00001 diff --git a/infotro/_navbar.md b/infotro/_navbar.md index 352264a..bd1e3b7 100644 --- a/infotro/_navbar.md +++ b/infotro/_navbar.md @@ -4,6 +4,9 @@ * [RealTime](/infotro/PTR/RealTime) * [SDi - Systèmes Distribués](/infotro/SDi) * [Transmission process](/infotro/SDi/transmission_process.md) + * [IOT Technologies](/infotro/SDi/iot_technologies.md) + * [Protocol development](/infotro/SDi/protocol_development.md) + * [Bluetooth](/infotro/SDi/bluetooth.md) * [Eln - Électronique](/infotro/Eln/) * [AD/DA](/infotro/Eln/ADDA) * [Sigma / Delta](/infotro/Eln/Sigma-Delta)