From 6db2a525a202b40dd2e456f97985a70d7a5f9ef0 Mon Sep 17 00:00:00 2001 From: PE Hladik Date: Tue, 5 Mar 2019 15:39:56 +0100 Subject: [PATCH] =?UTF-8?q?ajout=20rapport=20=C3=A9tudiant?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/sujets/tex/rapport_etudiant/.DS_Store | Bin 0 -> 6148 bytes .../rapport_etudiant/figures-pdf/.DS_Store | Bin 0 -> 6148 bytes .../figures-pdf/diag_fonc_gen.pdf | Bin 0 -> 47244 bytes .../figures-pdf/diag_fonc_moniteur.pdf | Bin 0 -> 41895 bytes .../figures-pdf}/th_receiveFromMon.png | Bin .../figures-pdf}/th_sendToMon.png | Bin .../figures-pdf}/th_server.png | Bin .../tex/rapport_etudiant/figures/.DS_Store | Bin 0 -> 6148 bytes .../figures/diag_fonc_gen.graffle | 3224 +++++++++++++++++ .../figures/diag_fonc_moniteur.graffle | 2917 +++++++++++++++ .../tex/rapport_etudiant/rapport_etudiant.tex | 512 +++ 11 files changed, 6653 insertions(+) create mode 100644 doc/sujets/tex/rapport_etudiant/.DS_Store create mode 100644 doc/sujets/tex/rapport_etudiant/figures-pdf/.DS_Store create mode 100644 doc/sujets/tex/rapport_etudiant/figures-pdf/diag_fonc_gen.pdf create mode 100644 doc/sujets/tex/rapport_etudiant/figures-pdf/diag_fonc_moniteur.pdf rename doc/sujets/tex/{conception/figures_pdf/activity => rapport_etudiant/figures-pdf}/th_receiveFromMon.png (100%) rename doc/sujets/tex/{conception/figures_pdf/activity => rapport_etudiant/figures-pdf}/th_sendToMon.png (100%) rename doc/sujets/tex/{conception/figures_pdf/activity => rapport_etudiant/figures-pdf}/th_server.png (100%) create mode 100644 doc/sujets/tex/rapport_etudiant/figures/.DS_Store create mode 100644 doc/sujets/tex/rapport_etudiant/figures/diag_fonc_gen.graffle create mode 100644 doc/sujets/tex/rapport_etudiant/figures/diag_fonc_moniteur.graffle create mode 100644 doc/sujets/tex/rapport_etudiant/rapport_etudiant.tex diff --git a/doc/sujets/tex/rapport_etudiant/.DS_Store b/doc/sujets/tex/rapport_etudiant/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..ef0f5b227b6d7af218283358f44d61dd6c7b67cc GIT binary patch literal 6148 zcmeHKQAz_b5S`J21%LYKXRgp2gtDHX7btXf6)Y{<{m+%WikIj$d@nP~u3hj;5t)JH zO_DcB_Q56@5z$rOE=3k1GDjgQoe5+2k6#^He~jaC^f7;Y#K3WNfoKq&BI3gFJB z&94ok4h2GiP~cMmo(~Cym>r8@Jvva;6adI)bT#7;F|=?|Pd?OF{zzW5u8#RrrHf|6s6&BJV64EUH5a`9Z}H1aCi&x#XoUiyz&}$! zXU)1<;iLR+J^MV~wFzZ|LL;xxfx#a=0?^<&a#IIwJkbX)I~GIE!u}c#jE6uKB&ty0 H7Zi90xIinm literal 0 HcmV?d00001 diff --git a/doc/sujets/tex/rapport_etudiant/figures-pdf/.DS_Store b/doc/sujets/tex/rapport_etudiant/figures-pdf/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 GIT binary patch literal 6148 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 literal 0 HcmV?d00001 diff --git a/doc/sujets/tex/rapport_etudiant/figures-pdf/diag_fonc_moniteur.pdf b/doc/sujets/tex/rapport_etudiant/figures-pdf/diag_fonc_moniteur.pdf new file mode 100644 index 0000000000000000000000000000000000000000..65449b4af0108a1317f5a3c14baaa2fd833e6d42 GIT binary patch literal 41895 zcmdpf1yo&GvNo0=L4!jAH^JTA-QC^Y-8Hzo1=j!}xO*VDYk&YDKyZiP@Lz7aGt=pw zd9Pp3%$oJDti?U|+0pggS>gJUbXTVp?$?Ug^5H%DN6-yqla%c5zwl5-}VzAF)3i*(}4UW$4&CjEGd>^TE`1iT!`Y(tT#Q!k zEM!z9Xtd?iBfFGNC=Ho_5koc<)-tbE6c%Y$gLOeA7OV8JnG@4D35Au}SMSC*jXiIi_OpD&O9_S>UX@OS z#47}tIUw(jG=|(`tZrLt?Ui)2=u7by8*{cA=>(re?$yoFS4^LnhLoD8HKxiG)ui;e zTYmD2X|CK7-YjNhizULWjfr+`sQ+w$?d(^&bIU%pBwL+ z3=+NzWPe`d>vRG6(ywMwow0d>i)eAPPxcVgUbm0{t{QdqInWE&B5;+_6kPWjRAkr~ z$oBF`+Bt>`#W?V^?9SKGTGHSX>GzeZm~kEjIB;XH*)WzFOuwL&bl^t2okTDat&C(&t*ZL?tq=pbtf? zCpb57HlCgt>*i@I8OA{khv|!Jqs^Ml4fg>ltn?HO(&FQJD#p@DMiTMYhvY2K7DEXw z^cftfUj~b*1&Vet)Hr}L^n3fMw3>a=yq##ENg#%7nI~H|3{)vVXfvB?h}PP1@Celz zDGolOy8WE2LwA2IQHKN`FG`L@cqS~i9M)-I0>@XhXe5ohAFpl+Q#&Us=O`P`fQQ&q zDn)?M0UiH=CfDaxw0Nfpw~FF4hn(BVVNy?&W8vH; zrSv0o>e_f0a^brj+LpG)@qqc^;3K5w)!SR|^Hb;hL#O-0Mc0#si{#gz2p9G?VmB*< zv%7FLa}}lpLZ#Oo0?*<@6^-QzGs2B?=bn_A$B*-FnVSmMXUa!RgupUb8DlxCi!0cQ zi?NzNU(@5twPNgiWST#}WhHs7XI1c+ISkj)t)!pY+cq+3U6Zh=bHz|MWQtV3C`;qi z`)kHgqsw85-T2TdrISblGBjqZf!M-+*2?3Gs*8=)+aeknn=HI<2Z%Ht8-yj@Y=E~3 z_PdYB{ZgdXv>(Yc#EO!V9e+v;9@n#zNyMwTTH}wJrl7oeTZ9F}VE5*!q5~F}vMBZB zSJ(@aU=Gv0XPHdI9BvH!>1gbs8g>i2pRKs%WfftWJPHLN=#n_Qp?3 z5y*1OB*|GgGgT_;QM`E!3okij#BRWYmR=jzqakF)X0rJhjwC%$CPmD4#7~)Y z;>A#$c{0JR;**kb_W9_nZ|62q!C6uF+}vI)EwT~(9pj+`vo!$vkwGTpyiD97Au3IJ zLJrefvm>6%FTu4KG)YsO+n>Fpz!c8wde%zML37@Ofw zw1gxXoR|cL@M29~Zv|2_A0K9oj=JN}nXR$Oi*Dh$%83HS9Ih3unsj{#H3HvMe|BP1 zm0csb;{2Id6^CENCk(gH$~kSBcqai?vDlL!-bl5)fhX_i`}MgVBUu#JPtgsKT9KOz z9|;c{Df;@uyLO{i@Ly%Y=2O*a$4fV6^b!oi`1W-`ZMx8DE2VTt4A7~+lO13u&$7Nh z`-n0SgEBCu&o}x0l`gp(-3Yu4Z>XTz^iV)g+~>@3;~cErm`|LP=e{@Nel5O4ozh}% z#%#k}`=}P(RGgR)+jRH5ruC22!Fg%)-VES&F^l^w*Lp~aYwrwYWV{u#Q(Y=YJHAtF zelEL_OfRZw+xQ_+ALTK+qf)j{oEYk3eUvoV`H2zCFwy*zH!Axtu+Cei;>N)syI;O~ zJpX~Py48>#V+)FK2t#f8ebn5`p{hU@1J{D7bFo_Ia6A?$6VIz{ zu2Q10S;-(V52MrZut#D2l)%vAJ z{HTcJF>_RN(f||by6bZi*)NpKnz;#nzP1Pg(CFIa1G|N(SIjYLLrnU8;@DD9BJ2=0 zjhIHNIfQ${+g*l)!8=y?w{#N7K?mdyqiQ+ph9~P?FuD zvo7>yZOby5$-LGm3z?1IIFkkxtcf$Wyum9y+s>DtOZ!(0+GU@wf)RiMZb+_QQ1!=;%>nCD(SMVIMzGWIw2yfZnl)08skb8aQu1ftt@%ff^2E}3{--I0AEKOm z%2}DZg@%i&_&2zh#l+1}szpX@4Dgt9Ckh|Lrn+|X-K*F`!!(nml7sk!PeQw)bx7Zb zKWkL($Y@e*^2u^hmoVRYxpc(%h|V_WMW2I=FZ!k4+)4+=k~r%4gpyj5KNYDUrH5vb z9|)5e!(hBE6n33nZ-S>THb5VX(GWdM&rGi5n^I=1;9=*mUvOVE9 zxx2e?Y6pvbl32OJ-$Wv{8IE1$-X+c@R{jJY-kUBg(njso8Z)tkva=X}d?NJnlwtqu z$T~XW+&4~TWr?;3w7#B}fc{E;q9kotDP`8!MwKK_$#@0=OSKhW6{5tX_`$t!zK)I5 zp}KdrVY`XS%B)rIsj4=L!niwB-5&Vad$@Vm0ex9`U?j9a@m0ctgsMl=4Qr=XyG5YG zKJuqeE=q&i+hJMHg(OG2+k0XKTZiVCUWFK=`(7przpqHqwW6ZHOHKJe0fA{eC#*{R zD9JyDnun3rr7||}F0l?7yo_&-=3BK8|rwN{E`xIjTxQ^VTr8 zO?e$WYLtl;HW?M6Z^I^460HF96Qit2p8IPoRoz#rs>~Ys z3Wj3DX$Ykry6O6{BdrRKsM(7KiE0IFtpi?TfP$OYdWj0zwDeLBbYW|2C`t#HZXZ_> zxCC>F#yyk*3}jC4CKS~I*Xy*Gwf+4j(Wy2XgpoC@mxmv-c6cB%>)bJxI0Co?R(%77lJ9e*%|?8Wc5ryf9;K|9RUpA!!day z2OB4Q10x3j^Y;@1Hr9^7-yHxCAsjGXlQJ?i)8n^s1!&L$Pp~ku02t`$wBTsuZ5)9C z9Pkt{c>Cpv4|n)A=##a#F;Fma1ZV&sD<}-0Q8aRO1ki|C0lUEe%csCEpJD(l0F8i+ zrH#FUt)77q;2~xdaG(b;fqDQ3Jf;J%fI7p?4U8Ls{R1^oRHOqi{Ss6vDgv8-7vQ0d zs*Jw5k-_(7Vpeo?0D9Jk>*0XUX8_PW00R^Z_yYiR8gxhtp#KE`;CTk1jK4Obrvotl zXvPSj`=wLBR`dXd2S`A-q6a?z#}_sL{V(8&Sup|V{&rs`0K<nMhFtGR8 z=Q37^EFrvl9lqd@kKwUsb^pIT=;-VK8|DB5|NYPhsRuOPnHYW@h#(XHNsU0G2I>BP zr$*WzTBK+BCt76w#i0H#S~SqbdX)Eq76;;&KfD>pU|^3G|42qq-$636{3_yu`TQi| zpRrRqTDBh&0`LBJ^z)OQGXFBl{x1^ljnRRF?DR~=3LgIt?6d&^9{Kej3H%_+gLI7a zzsd_@r=J7{s^;II(qH)E|03|8P${VIzf~!SbAJ+%;ooAlzmV|1Swv9Ze=8zrCizK3 z#y?}XKnDMnUjO;P{0sE@C$tFa`)@@AO^`o{NcZbB4Vp0ihbe>+I2?bOLH_B;Wce3z z4{gT_AooQ6(NF~S{kI~5rv0BpWT5*KW04N%+We3aNY?+DepvoR^n-x(2lVs**?f6{ zgEav7BNc*l15zO)+pl~I^45ORA=97H;s16dvixWG6x8?MnkmQ${YganKQj{l*CPIB z_!QLl---zGt$z{`=m7tTSrO=i{}_q?%nxAs3xv8i<_B~Gz`C+86?8ts1j_#J{nfh; zFk-_$GHH;I4}vrQ@Q6U6#ZOo;{2445|K_^?Q{rX)7ZNY8Jq(a|dHzU5P~U&6ZcxDV zlZZ_J4iAC#FVOCvm_9*$|E-9iIPfPC>HZxa0_%TH`B}t&2lcZ4XLt!1 z@_v_x{>NAZMeRR{2n_iD1TXzB{XEvcKudqZP(gkFtrkJKh@V7c_;(m8+rN@-{&9>6 z>icg+1Z7x$5)tT~{_C~K_Mf2}P~U$N@nMMkEaIP;H0Xd9_+tY7r>-p9Um%>n&-frg zqmcf8o$L9(B(o0LXuoy*(JTtg*Zx9IY^=ZfzM%Zz&r1I@1WX6a9sa6xAT|8s@P+L! zF!2AFJ^6>>%N-;n@z@`N@hemRo!9hWl|Ny@@b7Sv+5R(34eI-E$2chK`;&;ktoFa2 z#^`AOGgJ-g{BLChC9{8$k@4T5MmpO65LZ8R{bW?ULUBWE)MBN2N& zHvrB5B`sDvB8BuG0RLEbAQ&K8C|TcyC0%EPb93K58a+q~jf%8W>^9Lx^#T{owllkL zy|C&jf#?QD5p9@4N;#8o$$}j=oZ(lb^nI3k0em`K`E7W1=}4K;yBORz4xW;jseAq< z!9>hyW#0-ar%y>xv@h9m$@uek1mbDh2m+jXy^_wv3i!kPXABk`X;7PBg&v6Rw+mz- zoF1?PQrE9E2pW+;;mP*jf@f4GqCYLNphi+1ns}*xjVJ-2PWR^iezJRz+Wj!wW4@(j z2;RVlb!3^J&+HKe`L>qa;PkaGw=?zm5IvR8SDOE&eH5=K}{g(VXLIJmx4G$Xz zO8>1S4cd>dj#-Dhq+jj@ra_qD%N8OfGa`qtQ%iCQNwP0nqYt<<`@N$OLs%YFz>@tQQV>+%A^qX^f`W>lAZ7j648y-{qODPjKuF<*&ox*A;h)Fw287b0bzSq| z+s-bVX%B454<|COv`F*-5?57H3w=htVCAA#)y7M#QY2`w0lO8|Z+|fvQf7*^z>&Sl-Q5u^`YPh}jas};so1in|FVsJPJ$p&ls2Xl z1}td){jFJoumNGn@FUX?iameE@L%I~{$&hnM+P6v^3fP}AwhIdk|}=u&qrAn2wow zow!~QzVivzz(Z_&=cUHTx6=mv$g8w4V^x1nsOhLl(kiewl^G+eSyFGD)1&(a?!PU9 zJ=uo^0reA%5Ab}4@yGHv%O7~QEPuwc{m0p_zYb$`CnAt7gSK?}ZTeh4|I>IgW>RfP) zTICxRISf6+!Lpi~e5Sa--v`1z`~C0+VFkjJ@rUCGiZ*{X&Hon0jOj#t1wanA|^PSiOq`>4sQr^@3bm7siMKk?BK>Q}i4ueCSko zHEjNXyAKX~o-KPTcl|k`EUV^F(;S==Qqy!a=gfGId(qCv176lIPhK9^y0x}wuZyHsar)FZ_T`J^g$cM)|RksSe-D2y|H`#ogL=y67jl6EAqyO89}!4|pX zN%zl3)?z9L+?I9A(-p}}A65ATI)F`}qhIwmfyG|JQv4oM5LQ2#C@7Tv$wb-yTiA2- zVN!>G{MiW?@+*|4teP!U7c+dz{dG>J`j^gE-=;jb?syD#{FB1~4*rHnpo z0CBRckTl{+KMUG=Wwee#nwQXm5!btD3F(2$&T_L*gfxi3`3|Q^CEyyFU>7dY?AA@}BeE zX;8Ven59Mnk@!w|aEV~lEm{KoY6_HT15YZU*hyj5q0j*bBa2k%~xd2>- zA5roa21z|ZrA)pK86g=lIliz8vO+D7(`mV8le{fhzc;V~e}Lz& z0q5VjouDPXpYUY)GZy;KRuBI&qI<6wqVm|0g^m^<58Wm?^2hDp-}l-Xe}y#{VSoB@ zV*E5bu(|nTLUL(@mf>7`)_p2;1HJH31gw=p4Yt7DS{=4~d4sK)dU0)bt(cD&moSOq z?V0*&{Qy(#YChu@&5nvm&_52+?W}i_(oU)A_8fs8Q;edfQ@u z1F{XyYTYLq3#0@w1EO^N)2?T87TY=bBJqudG;6WvS2lG4&M%DRc(Oi;-QKQv`Mj84 zFq%H|u)n@D<>JTXRiG1T<9J3yWlLEse)BtV#KP#^!fs<{9t4 z>#kh97u<$nMDTUc8*7QomAYQCxRS2J=6b%f+0N6DOc8EMzOe!G$*lrr{u#WfTH_7n zqgxp{_rS_9>F9UuNN#8dr&5$d=~bo@z5uK3kJ`#ZNVIIJQ!t$dOkfu4k0#I{a5DD% zieEJ^Rz&#{>)B_>rjfIwjY%@hI(}vU$Wg;atmi&dG@DLushf6ux$$LdBXk0Hf*`xU zroJ-UKnu;NFq53!5>}-M_;7A665e>(_T`;i){usN=rk;uk|D=>*fBy$y^cEQqmW>i z{+1(vd8)gaLR&se3f|&H(?vi$gQcqPv$dXsa-5s}!%719pi>yriD4&lRPxEQsWC>o z9f=HE#>ERw@vA#cVgy{~F~xC%Z-}Nf#{OZe%@9%y*Io1cm>R<{ z`hE7T=ZZQXTlxZ>2I22EkU_5CEL^lXkZFg0 z#5j!B120$nUvK3?F^chwa<8E2(sB(rd!3#J4P}NgxC5ke8@a~azG3s%F?ZR1Wt5`C zPf8QEwOC8A*eZg3i(DXqGiK=FQW-;5X`vZ=reF=6>+TJFx6p#LmkU3JkqF$ z_=r(kIypfBY_fZ2!6KW*aKvt6hMbcTiDa*wE~g6VvcL8TukE#CktTGStTZO`7IW1F zuflu=`JEpzwbFZpfFY;k$GfdNRnD*lVjBKdhRTvURLEX%CmMM%#9zyK#0Fb!-6@l2 zp+>6fqg@7Ssap!n=+7dMIfeRrNGWodMvSsyF_7LDT(HU4DG#pWj&~>C zX~{L;CX3G2sdZq>6b=&0TnL)4i4Z&*&%ZQdib8aw!$q_j!k21kSi|OT(%KQ7yIOdVDmm!+{dMUk+E>>YvkLq&Ai0B0wP7wqwlNagH&NewkjNbZ0 zTTjGEstmg~P?IDnIly@F!7oJ4t}tD0lf*TNF5x7OwPuNpHXi_>$d@Ew^{FFxx!0hP z*hp|aZ!>+XVeWsA9|)H3`2ENlfY#Q3f{*1-g%$sJ75}eKh*SOU{4IwWbM#gKV(>i!0JCLI|>{B8s3CA!}O}pUp^Ol!#^#YF> z<8uk6d?g7($5Eb-;R%sO@S`Cwy96GE8Lwuf4NlN%K2};rYAxB}n2LKmy(vkqn50xp z9#*9~U#W6^6>DC^H+qAs@WLBNM zJbYG)CFJGXO0Jnza0|>q&Lq0CfP^ugXsX>h$C>ErUYdkh&cS8weXYq;yRgHEPB+6Z zyYpYtQCU%`(zEJ@C!KM6vUU*N`taROytB-Gv}U1ZpzfR@maU2H-u_;dAQe5Rjh^|( zNMQbhbUO2YNdl-WYWyMU7Rq`4Mb}``aHzkV6#?u19&&L>{YyA7q9LiT7YVtKhKezw zFjr7{q-2ftDXOdFN&RKVi}SqLim~4kPg^qqQ>SA0ZI*QIAh7%@Fs@ zrnk(NgO1PMi0wl9&(nk!39i3?I+ueya9LTTRf@b{CYSH+kl_0$=WF|cO*rHqIo}|h zKttp2a+H67C)=OF^PjEH{q?btt`%L%3Ln(ZLYMU=0OlvHT16un2z~v17K~}Uv z(X%hCZo^~;$LZI1o~iMPkL`wXEU@=(FKeG^ZW@#Z)cEE_cVRJZF?-*&oaUn3b7Qv1 zoeg?fiY+eMWn`KL@QEpr!uU9XoIH-KV4qSrwL6Zt)nXwt3F8ny&gu3#rpth)Zrg zZ)wMDx~4}#C{bK=9ULOT1FAEIOx$%T7Et3^hChU6R- zc^~K->GfzIi(8({omshVG)fxt%+@1nj4y73Ao1O3tn|K%YRXhXVDvjid{`c8*ahI7 zwh&t~)mI3(W%BSoBUVL5V}0r=r#V_Es;KN8fx~gWPB^-W&90`)j5bu)K|KYB7!}FA zccmlRe~v-SWE2=Zuct>YGX=c|C_Rid?}YSR$xB@&V3t|v?3qdciZ{=jtbohi!NOdK zsNu%k5l&kM=}1hbWq9#sf|Ac|8IgYYL@q@~GOriWU0z{(=r~rwA?RBw96s4jCC5v1 z&u(giZSegU3l|}5D>3u-8F(J1S6(A<_;V>-T0$3hbl0L6S8+UxDb@{MjJM1dfzkYC zNg>O3;G(iCdDiaqCMkd`m5aVpg&^W0IDD~5J?M+V_aa370oEa=7m(G$IK4F-uUI*C zdacR#vH$}oo>Lk7nkpC}Kv*tMR2bMoG6QhXxy^g8Ar@B~kH#g>ceYr+BC<~$dMbJY z)+*vF;qaA8U;@tf040a9j8v2REw3`y5`g++#mkPZwUmB_-+06Gn<1Adfn*+CCDLfUOm7nY# zXrN@m1`y?mQ8`32cQ+T{;*V2I;Msik3)&#y;I@WzWbZkNl}?uMpUK!Dm@A0z+EiR2 zFal~K5@=GvQ4IXmo&nL)ocP7Gh?!AY2T^N7p1=-zYE}B!b)Ccp*$~^Pag&!rs4_T~ zuVCWGvL)LF@Ah*=6@_+>i1+FC;HT0-l#kWce*(! z5O<8ZkG)g%t?yW-U3Dt{{oDoOP!QMBvHe&O0`2wx$q!-vQ<3>UeyiXwbM3=!9RYf% zl#dOrW^k^oYFIfhy7~qv$cY3b057`xp{gSU1o^b$lX#Vaq8}M!kD0_x)If=H8-Vp- zBT21ByoSUx5ulfg))j#Si$$O|{yiihNgt$VrF-}hbo2*1wOId5>gOMCDg0O9@zOUn zG9DND^A}ws|7-u)3?0R%(8!oy^#Umjzb47b_kt^~2e4u3k*Bf-&F z8J0bb{E1Xoj9r3y)zpM<6SxUj4sBHD4dUm{oggyDY^WK>^aWmIA=w|uk>6vacl)ZLg zCHZG{%(4a1txAPk!Iq+OBkb^HgTYx%pKR4~k;N?%wW_nvWH|E_7Fg_>viJc(Osf(cy6b;P~t((SZnW2>f&s`Z0fp18|( zCL^pIQvJ1IKh+HXio$WtYVqAw%5#fTMpiR;TWXZAWfWuLsRmsQg*!dqPFu5GLgw4L zW}~R`gHQ7sU?$VRB#;LZE=CFGPaKNPlIe1uI5Ot@j0(-~W?5u+PE9&N%ule;#$Fxy z+XheeHc}lj7PG(T+1u!48_#(a$^`~L)Zo-CnIo8Jj}Ft#q_;hfw&|K^FNKiTKt3T_ zw~!1ILlM6D^iUs9pMxvP@9sLbZ3nD)-S2re?dl%)L}t;1^VSyCAuXQ%93^hHU{y0W zW=v;yICL;7ydc6$o+BZNPi($e zKAd}V8gv(?g$)d|slxs}BKPoG#&fN@ps)7cO*vFEnQSV zNka?$ibR~z!)qfaqfg+lTIm;y$gvncM5Bm>yvn?K`&c~Ll9C@BWj<%W(R{WQGUt^$ z8g6O~T+L{p)%?>ZtBF8C2!;9c48tP%L;>^>1UL>K#Aq%_sreH}dSOCjatz3;nmx0L zg;Kt?b?a+$K1Vf`UmJ%}Y+CzbNQgKIj}oxm;JuIFhH9gCXTpCvb+*wcD1I7b*IuaU z2k!P-tT6-zN*dX%)UeqJ>L#_^Sg(y!r3z)kd}nGM~&2 zyMH=XA)0VrsLh_9v31u;`FK{Q!hcyuVVZc*R*5X{t@1%!Bei=8AM1V#_X0sd&Vl6j zOa`K;2il^eW%x1Wec#UV6PW=U02ix(@3sELcLo14nYDs;LBIz!I}IV|A$C2*7B-Z$ zgZ8@bMYVbEeyF=!e0hAo2Yr~e@35(&nEowf1HG5@6QV4CYSR3NFF^feK!>BZo(j++ z_x2MBK4*hbB7Ay!t5Y$KJugy`M1sUZbx%uFUS) z@ya5xOZ_+8k_yNS#GZ-BVabd4JzoX5#`3#jlMbAoR7$Hyiz5guyJ%4qSZ+6!49JK0 zw~L}~>j*-L<|G+uM?rmzm^<&y@nSLNfY3|b*dlzMxYo_R>Fu1nlwtQ`fZ)YWlUcsy z!n=cDzGAr@vox6rt4S%xIb;Z=M;8}-$l_hJVP9DFD5a_?N7-n?Y~(u+mF`*`(7{}d zA^1DR#9@d!jlQ+4UcS9Wg>D1ue#xi%dwT%s`9b##3_mu3fZk93$sU;h%vk()ZUO<4 z8*uGXaE{ua-wX;#{$*l*0D0*By+<93GMB5Y^qP_LSGsS}(1$Z&_B2hHHK;I z$B$tJQSA}A`~bU(#}{0ThNfIH=Uso`op3gFafz7X*4+3coz4Tda=jB;L=A7D0D!-C?d-|kfU z4%Bx@e@w!lR|J1Tl;zJP`Tm_&`sD*FQE!SsiolL@< z#(2A117mMvzcfw$u~ja9j7wN?@8&tmVeWGRh~fprA}~SiM7`OfL~$bjt36~`=G`Kn zGY{|!TUg59+bIaF@1Xv8!IO^m4^pRew77@ZIxzo_xQuqku%eLD=7F7C(eWfhoT+G{>|&dP2tb$;svlhQ9CI&Ha>Vu1!xlcyCxcY z1{&YiO0coUnu5M6LmEVp7N8iJ2WjVKy$Zr@HJ<^KmR8YL~T%pdWc!kc_dD$l{v?rtKt+8C`!mYqDrp zHz`1PhQ)V>c39n^zW8jFv$z9&nW~z5u&acP6XJ&ckci@0DOgwAslZseAzMZE2lvd| zZuOTQ!aT|lOOHMKYM!)U?1qG4CVl)0IBYS%bffB~rhd(bMx&3(6L>aY`j)0hp#8l= z7IED9)Z09Rj?aR4W!HI>!94bxbK^_yD6aiB32fiEIxL!a&v`5Eu(|QVO4qWm%NkFcwFU<1BWm4cw$UW| zLLhOb2nQ)~H-)||d@Q*(dhmxAbnsg-tXRXLtuj|5-rOH6PN`?4uG-)c`QMs!F+jhy zWd!HEfZiDqPJ^wZ-Z$MnX^CFqIcPV)uIIj}j%)?Hq9bYV%za`(O!QTo=UhtWy?~RD z=h;lg{?5jxE4_r=Qb~qd-0a%*F-gXLkf3n zlWBfiW|3veWA0;0G2hGEE`cwuBfc!Il3zN3AYWiHQFWSe+Ire}%H*!Y+eE3g^-;`j z7q=POyT@b3bdT0Js2UCVQrD6BOo7m?YyE6!+-VM?9$h{rEjGGG|f8iS^FmQmKVY&z?Ww{zID&1j0*G|LOwzhcdCE7e;u;lL>_!%McCDOY#9 zu#6I1?VN2&OItPTG2R$c<|%FykNea|$Acz>pXZAQ!U9nn9o>&rHc(}xhm*kSN@4;6 z{CW;XhQO*p4}>QV(0brU&=s_Qu)mOw_7`_p8dw49_Y5d60<6yTKM`O?l8d6k97gbH zD@*Ix)0Y6EQyh0#zyyaVI+R?fn6E5EPyn&B;3Hu)6f$K)#SU(9a- zBg^)5$_WasFGg6v9+WYiET!G{sx8lL)X&bD9C*z(fyv(ZL%nxY1@~plQAOL|>C}9R zI@o;% za6;3}oZiHk>ktVF)gQ3w@1X`x6Upd<=;$$WU~}KTT&Nj%6sl5E}M= z=rIHsOhPwXi#=laC7Wp`m}{ZQS{PKQn0_J3Y>L_XW}orZQMJOQJ{?6um()s#tK{fu z4SW|WWky*;&=ucnvnbIW+%3b$N+?$=63#Ji)Jd=Z&y%a*%u zX<9MBz7eXweqP;{s03DH^_X{k<*m#C0POe?Sj|%U30{z;c3k%tc#xD&y5`sfR@QBHyhPUU)_p2RjX2bnm zl<8R=m`8z|N^+YCumPc_&4HYLsxj1tZ~;EkD?V7vB+%I285U@!PC8&-fo!r3V$gjy zTwnqOkc8Ge?hsx(8pw2TeQhnKWwGTB(e&7${eEkL=ZD>!FONpJg z9AMcA@iYe7F&mE2kD3;OQWxQwFM}=Q5&$f~R}>jC36feA!i*QHijVsv7#ttnM{ws? z=C)u{e(qyX(*Df0k2RrGIuLB1!262u!Uc6o(1I`dnZfuUBBST>mBe7=Bc<}sAmggT zxC!vdvZ6tL5D1Myj^n)?BYuNL{;DKLK$h#2z!9ejM(fp8HuM;P@$oIVR{%;1#H1d= zN3c5IxeAVFFe2{% zAEQbLj`G4H_GLaqu~1qJVm@wTq-d<&8sy{P9K94Qj2`UOV6})9ePz8FeR1096oV9H zNzAXz#>fnQm;MF%)0Ks)ByV|~VVO~0M^bew>qhHpR3ukIe$?CLc!t>9f&Jx~t#<>K zCcQP&JE(f3*@$M}oi2nG;v?4<@+Gtbf22-_Lw(N|ZE!x%eDIc|@q5}yVqn#wEc}sP zBmoF52^EoXU^ZZG15n;G%K5#KaeNts?AEQRPgWWAk*`JU8L@OcnphAaraU28YK@riKr=)CX|zbm|H zfRO9t?Nso~t5D7nUa5J{6(}Z@mYb*_qMxQ8s{iT>(+4@CmN>t-`lm9*yjv9$L5f3}XZUOgcH_&u%e1%o_x zK}38+b42tBuDQ|y)~xlPimpm*VQ*_wP_Pm_lFdXiK@fda?0NA6;X|I=P#CWl^MLLRyE0! zt{y?vilf$G;j7oIS8(B%k)Tnf(J7ZZ$l;dDD$B}m7irh<8R!@T%4njsb^7TGVQ@NsHMQMYNdW)$Ayt0^&K zDN}QAZp9}xwYS1E*=${$eV%!4uP-T{aD}UeXJ9O1=uqxaDp2iE;;WIVJyNx**{-L;($L&@cp4rDz z8&XH;xZ37SDJ>+fs_$G4NzF!XICoohFMi~jyKT6pK$1X;6$$T6D2m^}8GWK1l3cD5 zt5RMccdmb6eo(~C&K=4f$&K3P+*ayEbD?(&aqE1wcrtsqaW#7_1H}sU7IqUZA4(WX z8JhbEJ?zs*PEcK);GNC>_%stbgql+r5d1d+&Vih;Oz>LhR}NUzl#FkQcikG4T)kag zps4hP1O>XAMWg#B`b5GbF(fctg!@H42u+Jf33&)53rQraQmR$22}c0E_d+fVd|Y%7 zLTCHp^NB@?;MLtPaI5>&44O&RyYu$7>&1hk?_zX1)$GXeaPglnBj1OjzAs*ve0QqT z=&}wq8{Zs!9kA&`7GG=mdGHG+Z3%coK+P6R~ z3!HhUxzH%>qSe{7a@MvJZ3VCrojV*99*i`?UA7Kenv%kL!{5j+x6(>A zqJe1n!4lnaZ_&8A%zPpFrS|xl{@|CeFET`*;&ztRyi_h1hrR{uwHACUxOVyM4CC@? zajWS>HC10tdv5IAXRWgJq2t`+`ev2gHf22xJ6$BRXv63l`Zrar;^pQd(?#3)+kQCF zX?_|dFk>^xAukSriBfh1k zRS%d*jK+?jr@v;)a`8Uq?+H8#55){-S8?QSs#%-JcvtamY0xjZT>GfezIdVa`bH_a z)Z`tT7Kc}cSLrwX^ zxRBwGulA|iJnpqWacy}m-Ht;SBWd#txwGDy-Wu$#=90k4kY|?gl-*8W%o-QBp6+JP z>W)^2m_!FP2+-UoUY5&rJsK?@r4X(W-WDkn8I8D%Sah#E{ct!KkvzE?*iLp=cb+(2 zn&s_s-D;xW-+gE?zLUx$zVxPz?P}(m)rR5b+N6uwL19tYQfV8{H^1AQYlG9?*sWce z3z@{MNFEnY*qdWlVk_gX%jW?n*S`CdSv&N(JLT;odm|eJx)stL(D#l9ao~m5=mPsQ!o}-jG<$ z{I$`j=gIBzrOiebcCKG7f9tzz^jxAYW{3Va$DhUx20GX;w_f1n%i&PIQRa#p9(n4` zPx0=yU4th^hE|1S-||4krV*FYUV`X&5xPyeW{T)Ds-R!B`C?7zS+arNxYR z+Q@SOkH+9e5jU2Gd=}a2lLbGgzLJsWJx=ho?edh}k20aO<(`DHeHQU8XQ~a9gkFBP zF#hb&K=3Xja@!NimBqHi5HB4%2)|v;EWha@Lm}~|`g6VCeUIwUv#nh%g)%I6F^C}G1xkaPE)7TQCs><_7sVTkI`<{ zli`A^I`TT&?YYQKLx^rQ>Z>!JsrHRAyrkBzWUWtkUkMJ}73Y40XP0XI`f^0OPICgW zkmE{*+*tfj|Dd*Me~8rn$;Gg+^i-6pU%!8DfGv%9fcgMeVoq&_p3!2gOO2LIJkOxb(r_pA1N0`3+Ld;cFDdma&&yrHTlRr z>w@9YgdXZ?4G>=#9SrGvz6fF79)e>R@Yua2$Hy90gsvny0KH7Sb`ei}jUTBEew5XeBwoV$^$>T`Z%oHuSV`wQs zC2o(55IOP*47U`04b{d^miD>K#^OvzsAx^A!qR1Q__a+zz5VGrX|B_?!-nb?wQ)@uR>&!ea+DOn!r)ARA8}%tX-mj1(!f<!-42cC(A?c2U?RXi9Zx3vRPg;T-V}GQHPvJ@-1W>%|eIz!>ja#bXI_S%*A$ zn&H83l`>q%b9~uGP$lkh&U)UKL%O8HQ?Jf)goo=IZhA7TypwgVQ8tY9+2_@!{~dmI zmZ#DmaoYnGeGkD|ek3Fx;_ly5+xMyvKVtTWh1Z8h4>gd#uf9GMZFcy%3^R~20W56v zpt{LUz@oXpWTu3fp#!km^7rZlT7Os5mkv};__sF|&~wzYv@!W!658R{TF}Zy_6}w? z)&LqhYR1320jS9GZ?6XxVg6eQU`2Z;qwl?aNJV`AQC(J2Ra${U%EnsHz~+0|W=-o{GL`fq21&Fmc<1x)qq0l+u?Xe9N1 z`9cS*k@daYFi>DPW>C=yTEMTL4_lVLAOHQ|@8=%Q{C&HJw!i)Zo`?HwtG~7W_2_Tc z{{5NnXMZ{a>ep}8@UTSkdl>%)%6E{Y^{jyT=%3NE)H4C930SM{0bG7iIc_Rupkk>Q zfyFRbftepVdU^(6RcERm{J+Sy8jewr* zFI6^KfCb%X6daALlpijUG}3#}2i!yTX4PL>FhAfgrRVy+#xpZ8uLSA`Fi&IztX2)Q z#fORaZ&jqfpZQhPU&=_+fr|J7HU9lO9q>A4V7cl4G1-*p4(p00H1DId%w;m_MYNUb zNbe^p{a#8Gr_Ya%zkyJ1I1X$@7$Sg_6bnrV@|_y8V`K;%X~;VP)@T0jD64j#o+{i- z-MjA+P#-bl@N^0R7?w4-VEJcmGdGsGoK#$tTF>y>>kDy}-!^ecU=1B(YI-EH zKCd(eQ40+Hh#n8#Y{0(&!KHifYikU(T9u`=P4g*CLNHBPYo3eeDP6*C{WNu1_&JhM zjQwp@BEpgVRdbB;O!=Fgy=V$O?nf{JWk}NmkmMqixiL^K-26AmW5NOyW<|*C$Ma&= zNo@Bo>tN=0yst;w8DocD%dkJzi7n^uqC&lYEF`xhgY%gUTnJ@;)YDaH-|Taemc@&* zwPT^N>=>Lr>h|WFg15(?p0Esiu6nlK&a@*ITQnXdN67xU&|w5O8T6ur@P zx_NTI;*K7DnoFWoiTHnwePvjbT^lV8(w$P$4FfZTbV_%3cXvo5BHbO*0uln!DIp-z zjdYiE#~I%Dix>IMbtTgC zVWzp>e?zCe4cftk>x+jCwHe>+<4vXs7cQ4kZg7HW^QG*jAPq(Dn6cGz3ZyiSxCHtj ze-5qE@9u>`-ezc7H@2mi8mL%u^TC!4*vYd!M)%+v#nnOU8?dDa6$hzd`#yO z#j*L9SJ|WlhLt<%OrglOoIxg{yq1 zM2R)E0*wXyp@pJ|IQ#I6R4nt|IpsJG?3@g9)g^0Jbafo{A%JS zO2sp$F911I!8hamd28EtBTQfCf7Xp3GR0rwCfd_2X**pdy=?rNl5EzkM2s`Q zL=KcghmkXYkrE8#!+c%z4ncc{JB;$Bh>`e!bbC&U16^0;H>i+)h4f$cEah}gq+D0WLwpc0%AQ4y6pLc54 zT<3xKsmL8qRd*LIXg|b`Hl8wnPL49(?oFY4oSmT2zAG)PfW-BBEX=j1NvUWYS9*9`<4 zD+H$<7WTj%IE>k}J+!aX=68@51_7%#8Obbdbv-^SsblMvVPBy|OlIv)HAiwpt9?Mt zvF#qCN3&7h{V*$Dnirlpn_Cj3iL-uUkH6btZJeln+pmGMX1Z=t#<<_$YdlCZsA*Dm z_1BjXC{0xAu{>V&U^&A;r1sgyzbBDF{Z&^Y1wk-5kua`uq)D)mIk}J2sDT$s=<$JN=`~M{n&!us5T9W!6|ivThI~uCylx2i zj!10rHU={r6BI2o@}kQ3S{nc#qT@cXjf?U`GJl-gLKQdrlFG9oXJaMz?>p^<|K{z42KgX#!z1XQFN=xcaW^UW^ z)TJ?L=0}|vytun4OZTOQMU>lumOgld+R`~YWFyDZ;ze02 z#;;Hkq38}Cy?~n`hwOkG*;7zi3DF%|*{-=pDnxZyg&l2~JzQ3h`ZD$WyXfV%mFi1A z9}>S17DcS$-r~D)1{F@GVd*V6FZPz~gB*bzfsh-_w>Y$9?3O>6_SQ;mPOG*Sa~FH> zk()pe8z539F`{9$8Z@^u;yc((Ve^sKm1z3kUN(-1$r!UI8KBywh>?&)gnrX~KXAxY zkI2$4Z3uE-KD)%2M|8IOM$B47N}J@QY&veXgR$eeBeJ8MqD-iZ;H?OCGApJZ(16_z z{_!PYrk#VmDHZi=z+F=OCCY6P84>Z8s!OiCV2z8wY!!KTWeoGc+MQhQg=1#a*E<4_r`gnZ%O5_esc3U1m|c zUFHnO_JbM9(0Oqc`XPbduU>jUe*9QQfdT&`Izl_vz0pPBD?j|H%kXbhkw|GBN#dq(oS#^;r zXi>F=4U?6y-9B%-n45_nR*%ttTd7A7A8QAB8_UA;%8D6mU3=l$AMD=|oT4g!qN;Tr zq%y2E!`g$Qn~YJ~H={Ll2SvzJ%i^NzOU*|VOfnvaikX&u$?;S~QCOIJDXy#rKijN# zMq3QDuWIwuD!@d*yG|&X%?*Zj8|O7W6N=usn4gYIbsTT8Q-MHm=Wv$Uz>kYUte@&0 zV>yVNYIDxWKX9cP65=uJ2hJJ-fa}yLUef}-XjsK62KV12RXAS)hX_z9-<2YM>&Jr< zvq~$7tt@6ur>DE$2={NZPAIpxFZ;Crd0D9-{5?k;Q(F(nP-iX~EmU~<)MeUpx`1bz zF-0ptjg68$k8MwRhstjn9+y;ArBhjzqB>wY0Ai+I7Nea<0fAGtJR ztg0efQ5Usbh4D#+tx49=Q?%{zp$N^QQI+V;=j_sQ+DC!0hI_XHX}dLUhi(9B(HIRy zPl(k;RWXP}aRtQ{#lzGs&9=da9Nx}Tq;P{f1^f(1oNdVOD1C>?5Wl4TXI1ab{7z(@ z)9tmB+-niy zlUm|0=*)MfGGuQGa-Ez^>py+RgR?9k}vu`i~)jXUfz7f zp8dU~fn25XH0l9vdHf=SM~JqVoDR9$E@+E?G8w28r)`?JoKBxlG;N`x4cyRG zRPFGLkY1MZG1m^>E{OLOG`4MVf`ws_ud_^5%F#FOV$%F#yE&|vKH*q27&bVDY_d9Q zcqrdS-OFKD!>oD+b?^#Hc>knWBNPe~4}!$qtzLH|`Mvdd7Mt2F_QjesYe1MTMSi(3 z=K4m2_UCIV8YZ4VnGz~h1RhIm1j$#TZj(5|Y6~wr$&V?fuFvWTnJVPg6V|Y;z8hFe zEs!Ns6jM4Ue6w@iKq2fY_Os!~ysOx}SP_cd5a4e)iE1m?bU!|)$*zj>B(8Wkf}eM> zlF9dSKRr8F&+BzpiwAZFr!EUBVhJxE4m2t(*7YYyd)4DY#y4#R0HvM`ic zkGJ%~DvFZxv0j%d8j=r>@w|F1H^wX74oMl}kd?Ji{UL4IIVL`9>*`~zIc-E8bdNW5 z&)CPeR!i0g=23)$5oVmnL?Qc~{2R0n7$;OG@i}8hm9;PNIzq=W83vCyDDpKtvsRVL za%tbc8mvSXQCzY(S+ZiU`MwbD5jM1Jed(38-U625L2B^ZbYye&bP|qQ zK$|%!`yT7pv~zavX}pLV+1?b9J%%228JcbO9`?dulpa~?e&bHF_P41&csAUBKvSbi z#_?nBs>#-v08nah*^vi#BE^MCOKaalTH(ujWtv=p*{vPe9o!{&FUk~iWZ!$HEcPki zwqpuCxa%6m`-dR#f7(e)!QG&v{=te&CsnL+-BfUBScBCPtOwl}y~GlgU=(e8^vm(U zcJGs${$=wBg>G@Hpp%lZdM!~g2+Fs(603MRK0Di2+4ex6sWE zh`AMod1wCc3#j=0D*#eleDKvj?FN=Xo~3b zdOZ6ZF&!GWkHY9GvQlGJ1I6&**FzErn(sAcHNL01yhC?VLYE8#2Ja(_imKFF@RjsT zl#yz-4~(yj3;8?HQKf!)qh_Uds&vZWk?k+G7vW2MHu$tRe(6O$)WM4-ym!m|$Tib&&29)DgUGYnfnJ+;@626ky5k$;-^G8u=(=$EJ;T#2 zr(3ko-lWK}l-H9io1NbF6)O9^*9aM5Br`~z)q_{ORN{*U3UxJiw-qZs3g&S{(ID;M zE6J2X8F30+WHTG5wLz$_Ge?ye>iAV7yC+N7gi)om(e4}PzJaQI7}I&?Fs#Bl_3yPH zOy^+BpfWJD7&5zpjo&B&0{k1opiFcdbC?pPYj=nR4JH-+_j9R&PvJ_t`x`Zdysx|gn+S$(pX zH$F*HNuqo)`IGm!auzH1D?gh@U)qTDly##onC45l^qI^{y5+)bb?_kdfaiqJI7sLB zqQx}DEz_l|0!s>PnEXa!4$Fi9tylQYy|0@6-Ti5XU^b|2H)gre z^vFQQM(RakW2(CT7T>;WyG|hSUP)(h*l}3qizQ(QYAhsV4@pzA+NYfpf?ya$AmL_B zl<7p^&`?fikwbscjV-x+6m)WsxagysqhX!}*!$MpNXYQbH9n-Cy`K6(Uy+F!t{3I& zwCfxo@R`{=VS1v);=a!ND?DkuMVKyhr;VEfPG!@LiaU+#uwSX&)ev z)VO`{dATV40|{K;uL_Zhhy$7PT8oUZWj%ux9e+VFLNksMa8j^ZvXY3rzshmoNY^AB zG}=A?-8PT-nqwIt{_BHY?_619eryfNOva>1sqIJQq#va_pQm?Z&rK(tQ%+#|r@BLg*w1E53^u<< zp))}d#@XZ-l67>J@r6l3e|nD;Fcts(y)bL+(fX_CEoq4tHcHIL#|Ni+H*LOrjh3@k z6ZAK1>%Eeu5i;EUm5Y!Ta`C95OW;H|pQy_y;UP(pVSScd);0H-sorQq&_c*TnBhxR zWZmD*4`%Z^ZLgDuQ$19jV#%#$Y_s@${c6e7Xa^W0pmQ)=c9uhpqm96u>DpGH{R9>AYR=r55MW)hv$dsyw*hGQ4FM^OQfE{aR z^#rR{5Cfs!BPK5#|C%4%{Hp8ad5GD!xS+@Rb`fuv-YlcQ+#2RXs~AF8qCPP$ibvJu zm9uvMk0_iQbVVY-9dh>9$E2YN&Mi{M-xA)Zz4P-Jg|Zg$QPZe1i#dzv{J8>{qH68X zFhO%`th}G6(y?RR1yJl}-$+$(j(=-v*0VMPT@Xq*lE|xdpEZlsSiclIhxib|j-f!) zVN(Q4ttwSJHtAx5O9n-eh`P}~-YeE3mcnKrky{iD3R3YQ$Odl7NQ7Zp zLyxfeZ&4oe3)iCmq!|`FVMjQi@)eJ{B*>8{!f*lAPX(EjN# zI76<-G{JR3z{U!h;tzuMH!nVnWn{dX!%b`9&RPj@^zCmA$mR)S+NVS%OOelwsIbH( zOTj4)2@OI(kwT(^+d~yUg5 z9Hy}PDM>;*IAapv*2wxLa?K-IQi5yLqHL;ei>_r#q`@Qu#j9`iU`+h&4&kuod@Wo* z)ajT?EtZK6%ML8xpl0Aw?}m}2Jv0y{B56UIB8Pp~z{a#J(=~}aH2z}+yJ^~7!L|in z4zHkhP<4BmV{<`m%S!fu`F;%Fq?@PJ!JfSRO2421}1y0==l z=f0#rl3&0>ya!h}t%7aR&?&yM(7O#T(07W=Ljo>ofnvA=X|=*uQ4;T8+gztRd)v*! z(4b<86Px#F=)F`+(<>chXa-#GU6$PQi0g^acDGxpQrrfZEIYKfus*9JY0VsT20~rp zprhO5kMic9-5R{2UnhqMh z!4j+{nlf&uGj!MWx^BAH6nt~V1JTHKbK}l5GgEpC6Q{f1-ZonwA=Labg#6i^@hyj) z&?Hk&pXKZOge_OaD7^*Od-DaRy`5Fvu;gGBXN8r>hG|Nz6&<3Tb*<7!L)(agh}tjb z0F&y)@3jbWNbLcA6y<%c3{xp?KiQ4FG?PBHR{9QfZu;GG`es6&*I-QITsWHB6p@&d z;C{lMLwwIPpGx&R4|sL{8jl}`KNL@^Lzn!hx(D~xx~Fh3z3g@ z$SMlrXgd3@n9Tg#4==)?P;LGPFWRHu{LCJW8qg>kE-R~rSfrepm-X9Sy|7H*1x0@Z zqLQLjwxJwKf`dwU1lk#2MeRc4dJ9p6Ni8o@?A+Zhb z&V|=%;~hI%PbM~RrJM$6{k(;nl&kELbUh|Ns`p6p;*7O4n`+W`Xj{F1cbD`q?;3&! zp-bJRC>A(oc98<93X!(N^pXsz#pJjPvT)HViHdISI3eVV$C^Gmb;fNh1=$w|1@#c! zhZkDtDgiHA+hJ5KE}_(9aDNr8-sHea=fE~%XrWKFk#@njT|V@tj5z&#N$fz}-?atU z!ot}y5n`A?r?sVc8MYJ26OiY^BT66yL5sS5%0m#<-wf)16~v*f9}fLpFEUdAqZncr zJ_&va9UdhOBZ7z}KGkqAqACJdr9=Rbo~rgB^=o46kEv(Xx63}Vbk_aVVY3+6HVF08 z&Q~FdIr2r5`^9{D-;UnWb_eTXK)n*5AeDKZO@^!~+DodaQ50E1`XSkO4?Ic-tc&EI zk;`QCK9$MLSb6i>`e`)*jb3vc>K^I-GG8%oL|TE>#bg@g8DW$%%1!Aqv~f$*)x#Es z&VbgrvVfvL$Ak9`D!eL!P09(m4(SOg4B6mm_}K>cd9ngj1}X=AcKhsB5vP8YzKk}4 zH>~(D(oVN}^X?+D13<0`+QvsS{<5_eY_f2+#<)ozZM5kKLsQJdm8S-`r5h@Jg~0EW z&yQ2&C6dD$U3_hW^p#OG>$D7S_1&s4P^i3JH!?GabUCK3x)O=k&4!%DG-(%N&%mD0 z`eYW<2|c}M(?BtRwhvh>dm=ulfh;~K7+V*0npZKIwvU@u5|qv%FCTv06`jGxR6&9Z zk0JtB6p&0R1HFl6qjGCAZRpNzx<~m?5!gMe?dRDe;!Z_ft}@le=Q8cRNa{m>EVKHS zLZVFn!bq}@25*t{EID2Lu8?-@_t5!}Lv%@9-50bf7HazASW z`QA#J_MrypT3}w}-l_%B4X+U&RPL`_EIDe4my?o4!)4)15~`V4a^l0nZNUWyt@=Qs z&tC!_l;CRDjuI|BL2KAc!oUn@7t76)E=}r6WWm%fu00{pM2CiRY^3u>Zawyj-eFcq zXbc6k;KAB7S(H*L+XVaHjLBs)T@m}3sp&JyZ9G!a!Pu3R-OTns}cy%#*J{%ZCbCy9$@?L9jm?-=WvM!9`r~ ziF=2}^dsjym2?s0os0;gGCwael{rh)#Y<1eJ7^P~xG00eb~z=t!m3Jy9L8hmoaL&~ zCY~0p8M)P6G4a+=L8u3FhE;8Eq)DCwBMD!yS>9lHyJfY zby?@10oNlRCW#3ZH0N%BLuS73nX;1G%6a(9!`OSgTSfnu45!YF*!c$^CV2HdvW|*2 zr>h)hgvD5s4$pBi4wzPIf_FW+uT&zWAi^R;e>+m=q$|RvAuj^tCR*821LzfTctbjl z+qITgmKGT~s#iApk3W438?Y2qIjl%eDxcWG=mUl9E*mNFAD|f=AK;7vLXCnSV-P z{-&t>e{fec#8e~{g&5wL+PImzSQ;DtO?UV&Qv*z2`CDuA|4Uy1{)4^(PV@F3_6ix8 zS%LVJCGtMHJx%n?o{jfHT>E)$L$Eaxhio|H>5M1ZOY! z2T=sv}kxcD60}awBEcKttqpm1KCPCSCgNjU?&zRSk6)x6!?cg zrIUr^Q`LS};n65rYIoB?e~~DLq2i!$zKqD|WJz$2tM(PZwNr*RJffOJVET4{?|VJk zjAHD<-LL$}1jSGR{Gq;v#gmMa%*89GgFNSn9oEQPJIqgZj>UPYxm2>SbT(FKu3c;6 z0s&?qS66yA&7V}5>KyL#BP8)m(U_Y1?qwS6;{s>UuNHN&cna6|2Ok=sA<2FSeZuTVZ9VjWP9TVQX4PZpeA)45 z`$6Vr#DZdig57%26`htG>OFCTCzGl&^Y5Jj?PY|{nrNQk#*wbAL{EMDbCcc|%#?Lq zTkKh1sQ7m-YwEurIaX0SRIHjrQ3o`~p!7Kh8Mn9g9+}?|M`2mO8x`Jp9&+tWo9i!6 zXMH{@*XyNliyYZp#@Do!n97SfZ_bQb?^e9o%S>~~nNozhc_p7~+^(w zLXJ0M{`xpv-#J1=qMi3Nw8cBZ9V8RX8TopJ?;+E;Xf=Gl+f_{q|FE)9}Oq>bI{)oz8Y?LTW(sVbmG9m)}BnAy1Lc? zZ#tRvhu4wvU?-S#nLxEoii)UpuJ~|bIKA*h=~~Eyh^55kmFl+6o{8UdM|{;&(@~t0 z2fS0#-Xh(Grt=xv+b0(dY$AF>zm3ExB^3Wr%gsMk^5J(%X(zr-BAdE#&7!I^5Pw75 zxE$`UueiLi3$yW2>*V!^rq{8VA1Z3q6rFb`(mccON-z;UfWB~2zpdinX*GSboYw97 z6R6{Y-uR*ImkGh+?PPyvQ9L$iy0>@a0o5*AbQ);Vp$v=Eq@%`$Wx-}kOK&@Rg@9i~ z=m|?~5&tZF!R1XgY5{8LZ}feawq1AlJ3qcA2vr&Lx@HVtqwb5gKGFw5e<+@?AJDT=mkpTstUw4 zL|ZUT-PK-5GZs9#-f>yEEvHa#doE5eTEu>j%I|K*mVgMQ&x&_15wh{nB+<6ycOJ&! z14NnEjVH-$ixv%TMT()hwBGvAxF5SMkb4B*giwr%bH67;)hN!8dyyl=q%;S)dK>d1& zdi6`u37#vebz}5e(G!{ZW2dlh2VeCN4%lV= z#A(K^O?OASYfioi;UQTX>-6=_7FZj)iX%gk?8N^lxP|={2|hT!bJwV}Uc^V(N57eN zFb3AM;K_I}P_b!nqx>TLVk^G^C@6|R$!IlTolQy#k7oDk<2OXY{4;?PR#qAf8m zDlLJvDwlv(7{snm8GZ4ds5?5Xk?9SI7l&-)SR)$uGzJvGFyvxy@Olu>g!6`(U6AaN zei8ct3lCM$$6dr=2}`EbBxH(=HIo94Q`AZ~DP+fHC3+Qbu3>t<<5kzAbRS4x zC#jO;r)V?QvY)lu0lu}n#*6Bn*+|?V+55@xeFiUPU=cU0m;AcV1rJ!2Ok_#pX3P>w z8@Q+S6Ah{YwSR)B>ug2F5cA72%&$ktFNmgzCJ0sL|hzt z{^Z=&4OcosmaI+qhnOiGg>fWBU%7-u+;xcncb*ZUqZzH{5B);jMQX0KqCP_QisTpG z5TUij!(3dv2^Pp@N~RXXs2U|4ygpWi1G~!XI!lIFzgmZ#YVEQXHwT?~pofKki_zR4 z5VcjiB(>v`nv(2Cc*pTM>W4Ag=-)w=pmX#{(J74S>H**G_kOkSHvBo|9HNLbulms; zU+N5|4nju+nNX=1Udgs4&@dztvaO#eG?3NEMkHUnzRElB^>ktJi*iJD>3k*x2g}wr z&arp`J|ESRlM6EsK(4T&VVmup3ys>MzKWiT-SD>D+%^8)X)@bgIy7AEXMr0RG7_UY?H!Rv=He%MNZLaVO^s4T;miltlS%)cYw^hD zb6?)P4+BY^Iu`j_rFbVIV2aVJ#TRzMAC*ExD`8i~|`f%Bl=Uj}TtH1Qb5_G7B?YY_(#_B}?BmsPa;OGka6LsYSD- zm#CeY>@EDx?G6Nh6Ww3kkylByxqJeIePYt3lYw?4TcvooHyTL}75kpetYvXs1^!iR z+502E@IJz^3B;ioVTy0v{yM7%Jg2aZ+|{|>OD^0PYVGZ(X8ETM;>)Rbp%_`1(L{WH z?<|T$F|xce(U}`?gNt;rI>%OHqXg@*+2lFVThDq$JbDm<2Ym4j<$3L3G@~r|6oVPc zu{sl{0xK`l(9gRmhyxsOjLr!VhHj70%Si$p2GJ;Z8Avz-%fxD`a}kDGa6=KnAoUwP|#x`I`r@s17YfcwG(N@k>Y#Edp9BMWwEIj%h~!!o%hzlT24(W`zBrzP4um#7bPNyOXaDw**&!qt@4qD3Rf1kE0(yu}16FtS_{y~E)aiXChbltFUz zt#sX~aY1V2wiB&aO}DpGiD?|0mCraC;91uvpDBD+1U{5GMNUL#Lmpd#tb4;bTxEx@gh?Y6&C?NWte)n{G-&rbr-Y> zmQJR&I;?B}2U80hFrnT0zd`@8!=#nBwX+0U9zNDg24V&>v;QOL-(-DSQ62y*8y71( z8z(Cl2Y?-*#mY(p{{A=gUk&|Bv0>=~KGff*3TCF?MdYN9)MP51HM+FmMXM$IPZrFaU^y13Yw3Fz}B@ zFYBimJI7;Us6Q~^V@lm882EUPn!G0%D+eb4EQI+3)6=S>J=zHjlXppT=>4p3hzGzjlVF zall7G&mU!hAi%SFLF~`h5$JK%|4|ma+@8&GPL5}N1y&C|>jMA?_-riMfgF!!Cr{c8 z06w3mY@8sl$mnSt*oxrUxPkXpz@KdfuyQ=w`97%wy!$@-jsAhL1OHq{Y(VzMY-&&A zfS^YYv!@tD+Q;hwu6l6~^4&bx3 z1z-hVa{ed_0Kd6=c5ZAOY|q-l#>xH+RK{TF>fb1y6)$ajcJayidz=0H2rT;CgmV0bg66?b+aq=d<<32A=lM>R@Mm^jm#e zFM#9uxdAwz?Kx~f&PN&L)3ThbkIpquF>c^v9?B;ec#c1&oqK|TlQjYUM_)bLi@|H* z(Ng6}S@7vTdc;1#z-#M&w1w?ipMvMmv$X|Y`;ShPPmTuwJZ~R(oj<#70f2z#^Ax<* zJ?jGy@Yx;)0C7Lw_B^eZlkHJ%`UC^d(r10Z4g@{hciDkl&*mgM7x%Mz!5H|3_#bs} zaX%Y3c5c?^aonuW_DS&l)j#(z7biooF4E~Q39quH*W+CqfQ&`S-X5&O{7Z@pzM+$} zGqVSacK^ENlN1HZc6m*WSPi)i%>dxGahY+lahnH1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0 + + + + ActiveLayerIndex + 0 + ApplicationVersion + + com.omnigroup.OmniGraffle6 + 169.14.0.260934 + + AutoAdjust + + BackgroundGraphic + + Bounds + {{0, 0}, {1713, 1636}} + Class + SolidGraphic + ID + 2 + Style + + stroke + + Draws + NO + + + + BaseZoom + 0 + CanvasOrigin + {0, 0} + ColumnAlign + 1 + ColumnSpacing + 36 + CreationDate + 2011-03-28 16:03:00 +0000 + Creator + Pirem + DisplayScale + 1.0000 cm = 1.0000 cm + GraphDocumentVersion + 12 + GraphicsList + + + Class + LineGraphic + Head + + ID + 3547 + + ID + 3549 + Points + + {524.40944576263428, 171.49644786071786} + {663.30708274841311, 171.49644786071786} + {663.30708274841311, 88.975592461357223} + {573.59480571917766, 89.193661035409121} + + Style + + shadow + + Draws + NO + + stroke + + HeadArrow + 0 + Legacy + + TailArrow + 0 + + + Tail + + ID + 3466 + Info + 1 + + + + Bounds + {{578.267713165283, 68.032039138793934}, {90, 15}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Font + Monaco + Size + 11 + + HFlip + YES + ID + 3545 + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Align + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1671\cocoasubrtf200 +{\fonttbl\f0\fnil\fcharset0 Monaco;} +{\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0 + +\f0\fs22 \cf0 outputstream} + VerticalPad + 0.0 + + Wrap + NO + + + Class + Group + Graphics + + + Bounds + {{566.00835010986373, 82.117039138793999}, {7.0864500000000001, 14.1729}} + Class + ShapedGraphic + FontInfo + + Font + Monaco + Size + 11 + + HFlip + YES + ID + 3547 + Shape + Bezier + ShapeData + + UnitPoints + + {-0.50000100000000003, -0.5} + {-0.50000100000000003, -0.5} + {-0.50000100000000003, 0.5} + {-0.50000100000000003, 0.5} + {-0.50000100000000003, 0.5} + {0.49999900000000003, 1.90735e-06} + {0.49999900000000003, 1.90735e-06} + {0.49999900000000003, 1.90735e-06} + {-0.50000100000000003, -0.5} + + + Style + + fill + + Color + + b + 0.0 + g + 0.0 + r + 0.0 + + + shadow + + Draws + NO + + + Text + + Align + 0 + VerticalPad + 0.0 + + + + Class + LineGraphic + FontInfo + + Font + Monaco + Size + 11 + + ID + 3548 + Points + + {566.01480010986359, 82.117039138793999} + {558.93480010986366, 89.205039138793964} + {566.01480010986359, 96.292039138793953} + + Style + + shadow + + Draws + NO + + stroke + + HeadArrow + 0 + Legacy + + TailArrow + 0 + + + + + HFlip + YES + ID + 3546 + + + Class + LineGraphic + Head + + ID + 3224 + Info + 1 + + ID + 3527 + Points + + {408.18897399902403, 106.29936958312985} + {260.78740005493165, 103.97559246135722} + {260.78740005493165, 170.07873916625977} + {286.55099999999999, 169.52062174987799} + + Style + + shadow + + Draws + NO + + stroke + + HeadArrow + 0 + Legacy + + TailArrow + 0 + + + Tail + + ID + 3526 + Info + 1 + + + + Bounds + {{308.90468004471148, 88.975592461357223}, {96, 15}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Font + Monaco + Size + 11 + + ID + 3525 + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Align + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1671\cocoasubrtf200 +{\fonttbl\f0\fnil\fcharset0 Monaco;} +{\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0 + +\f0\fs22 \cf0 connectServer} + VerticalPad + 0.0 + + Wrap + NO + + + Class + LineGraphic + FontInfo + + Font + Monaco + Size + 11 + + ID + 3526 + Points + + {415.27597399902402, 99.212369583129856} + {408.18897399902403, 106.29936958312985} + {415.27597399902402, 113.38636958312982} + + Style + + shadow + + Draws + NO + + stroke + + HeadArrow + 0 + Legacy + + TailArrow + 0 + + + + + Class + LineGraphic + Head + + ID + 3220 + + ID + 3518 + Points + + {399.68526530456586, 75.119039138793923} + {204.0944869995117, 75.119039138793923} + {205.82755542682668, 198.42519569396973} + {280.12983418059815, 196.03429285605216} + + Style + + shadow + + Draws + NO + + stroke + + HeadArrow + 0 + Legacy + + TailArrow + 0 + + + Tail + + ID + 3517 + Info + 1 + + + + Bounds + {{313.85039138793985, 56.692913055419908}, {83, 15}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Font + Monaco + Size + 11 + + ID + 3514 + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Align + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1671\cocoasubrtf200 +{\fonttbl\f0\fnil\fcharset0 Monaco;} +{\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0 + +\f0\fs22 \cf0 inputStream} + VerticalPad + 0.0 + + Wrap + NO + + + Class + Group + Graphics + + + Bounds + {{406.77181530456585, 68.032039138793934}, {7.0864500000000001, 14.1729}} + Class + ShapedGraphic + FontInfo + + Font + Monaco + Size + 11 + + HFlip + YES + ID + 3516 + Shape + Bezier + ShapeData + + UnitPoints + + {-0.50000100000000003, -0.5} + {-0.50000100000000003, -0.5} + {-0.50000100000000003, 0.5} + {-0.50000100000000003, 0.5} + {-0.50000100000000003, 0.5} + {0.49999900000000003, 1.90735e-06} + {0.49999900000000003, 1.90735e-06} + {0.49999900000000003, 1.90735e-06} + {-0.50000100000000003, -0.5} + + + Style + + fill + + Color + + b + 0.0 + g + 0.0 + r + 0.0 + + + shadow + + Draws + NO + + + + + Class + LineGraphic + FontInfo + + Font + Monaco + Size + 11 + + ID + 3517 + Points + + {406.77126530456587, 68.032039138793934} + {399.68526530456586, 75.119039138793923} + {406.77126530456587, 82.206039138793912} + + Style + + shadow + + Draws + NO + + stroke + + HeadArrow + 0 + Legacy + + TailArrow + 0 + + + + + HFlip + YES + ID + 3515 + + + Bounds + {{408.18897399902426, 56.693456527709941}, {164.40944786071742, 68.031495666503901}} + Class + ShapedGraphic + FontInfo + + Font + Monaco + Size + 11 + + ID + 3751 + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1671\cocoasubrtf200 +{\fonttbl\f0\fnil\fcharset0 Monaco;} +{\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0 + +\f0\fs22 \cf0 monitor} + VerticalPad + 0.0 + + + + Class + Group + Graphics + + + Bounds + {{433.71699999999998, 208.66049566650403}, {77, 15}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Font + Monaco + Size + 11 + + ID + 3493 + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Align + 2 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1671\cocoasubrtf200 +{\fonttbl\f0\fnil\fcharset0 Monaco;} +{\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qr\partightenfactor0 + +\f0\fs22 \cf0 startRobot} + VerticalPad + 0.0 + + Wrap + NO + + + Class + LineGraphic + FontInfo + + Font + Monaco + Size + 11 + + ID + 3494 + Points + + {513.32799999999997, 208.66049566650403} + {520.41499999999996, 215.74749566650405} + {513.32799999999997, 222.83449566650404} + + Style + + stroke + + HeadArrow + 0 + Legacy + + TailArrow + 0 + + + + + ID + 3492 + + + Class + Group + Graphics + + + Bounds + {{597.64566535949723, 266.45669136047377}, {77, 15}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Font + Monaco + Size + 11 + + ID + 3490 + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Align + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1671\cocoasubrtf200 +{\fonttbl\f0\fnil\fcharset0 Monaco;} +{\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0 + +\f0\fs22 \cf0 startRobot} + VerticalPad + 0.0 + + Wrap + NO + + + Class + LineGraphic + FontInfo + + Font + Monaco + Size + 11 + + ID + 3491 + Points + + {580.74453927612308, 266.45669136047383} + {587.83153927612307, 273.54369136047376} + {580.74453927612308, 280.63069136047375} + + Style + + stroke + + HeadArrow + 0 + Legacy + + TailArrow + 0 + + + + + ID + 3489 + + + Class + LineGraphic + FontInfo + + Font + Monaco + Size + 11 + + Head + + ID + 3491 + Info + 1 + + ID + 3488 + Points + + {520.41499999999996, 215.74749566650405} + {549.92125663757315, 215.74749566650405} + {549.11202011108389, 272.12598266601577} + {587.83153927612307, 273.54369136047376} + + Style + + stroke + + HeadArrow + 0 + Legacy + + TailArrow + 0 + + + Tail + + ID + 3494 + Info + 1 + + + + Bounds + {{745.86220016479479, 83.208356445312546}, {110, 15}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Font + Monaco + Size + 11 + + ID + 3481 + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Align + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1671\cocoasubrtf200 +{\fonttbl\f0\fnil\fcharset0 Monaco;} +{\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0 + +\f0\fs22 \cf0 th_group_vision} + VerticalPad + 0.0 + + Wrap + NO + + + Bounds + {{754.01574363708482, 104.8818891525269}, {198.42519569396973, 85.039369583129883}} + Class + ShapedGraphic + ID + 3480 + Style + + shadow + + Draws + NO + + stroke + + CornerRadius + 10 + Pattern + 1 + + + + + Bounds + {{291.71653270721436, 128.56268688964843}, {176, 15}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Font + Monaco + Size + 11 + + ID + 3477 + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Align + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1671\cocoasubrtf200 +{\fonttbl\f0\fnil\fcharset0 Monaco;} +{\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0 + +\f0\fs22 \cf0 th_group_gestion_moniteur} + VerticalPad + 0.0 + + Wrap + NO + + + Class + Group + Graphics + + + Bounds + {{418.19744576263423, 164.40944786071785}, {90, 15}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Font + Monaco + Size + 11 + + HFlip + YES + ID + 3463 + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Align + 2 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1671\cocoasubrtf200 +{\fonttbl\f0\fnil\fcharset0 Monaco;} +{\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qr\partightenfactor0 + +\f0\fs22 \cf0 outputstream} + VerticalPad + 0.0 + + Wrap + NO + + + Class + Group + Graphics + + + Bounds + {{510.24144576263404, 164.40944786071782}, {7.0864500000000001, 14.1729}} + Class + ShapedGraphic + FontInfo + + Font + Monaco + Size + 11 + + ID + 3465 + Shape + Bezier + ShapeData + + UnitPoints + + {-0.50000100000000003, -0.5} + {-0.50000100000000003, -0.5} + {-0.50000100000000003, 0.5} + {-0.50000100000000003, 0.5} + {-0.50000100000000003, 0.5} + {0.49999900000000003, 1.90735e-06} + {0.49999900000000003, 1.90735e-06} + {0.49999900000000003, 1.90735e-06} + {-0.50000100000000003, -0.5} + + + Style + + fill + + Color + + b + 0.0 + g + 0.0 + r + 0.0 + + + shadow + + Draws + NO + + + + + Class + LineGraphic + FontInfo + + Font + Monaco + Size + 11 + + ID + 3466 + Points + + {517.32944576263435, 164.40944786071788} + {524.40944576263428, 171.49644786071786} + {517.32944576263435, 178.58344786071785} + + Style + + stroke + + HeadArrow + 0 + Legacy + + TailArrow + 0 + + + + + ID + 3464 + + + HFlip + YES + ID + 3462 + + + Bounds + {{255.11810874938982, 292.05705876312265}, {102.04724349975578, 28.257899999999999}} + Class + ShapedGraphic + FontInfo + + Font + Monaco + Size + 11 + + ID + 3348 + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1671\cocoasubrtf200 +{\fonttbl\f0\fnil\fcharset0 Monaco;} +{\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0 + +\f0\fs22 \cf0 Move} + VerticalPad + 0.0 + + + + Class + LineGraphic + Head + + ID + 3375 + + ID + 3382 + Points + + {306.14173049926774, 320.8149587631226} + {306.14173049926774, 340.15747833251964} + {580.60236513078132, 341.53666381882414} + + Style + + stroke + + HeadArrow + 0 + Legacy + + TailArrow + 0 + + + Tail + + ID + 3348 + + + + Class + LineGraphic + Head + + ID + 3348 + + ID + 3381 + Points + + {308.13123941711439, 235.77562227033098} + {306.55507902733433, 291.55725824266972} + + Style + + stroke + + HeadArrow + 0 + Legacy + + TailArrow + 0 + + + Tail + + ID + 3374 + + + + Class + LineGraphic + Head + + ID + 3061 + + ID + 3377 + Points + + {581.1023588180542, 316.06337615203876} + {379.84251747131344, 316.06337615203876} + {379.72157312743752, 235.77236743533504} + + Style + + stroke + + HeadArrow + 0 + Legacy + + TailArrow + 0 + + + Tail + + ID + 3323 + Info + 1 + + + + Bounds + {{581.1023588180542, 334.48818702697758}, {14.1732, 14.1732}} + Class + ShapedGraphic + FontInfo + + Font + Monaco + Size + 11 + + HFlip + YES + ID + 3375 + Shape + Bezier + ShapeData + + UnitPoints + + {0.5, -0.499998} + {0.5, -0.499998} + {0.5, 0.5} + {0.5, 0.5} + {0.5, 0.5} + {-9.5367399999999999e-07, 0.499998} + {-9.5367399999999999e-07, 0.499998} + {-9.5367399999999999e-07, 0.499998} + {-0.5, 0} + {-0.5, 0} + {-0.5, 0} + {-4.76837e-07, -0.5} + {-4.76837e-07, -0.5} + {-4.76837e-07, -0.5} + {0.5, -0.499998} + + + Style + + shadow + + Draws + NO + + + + + Bounds + {{301.25900000000001, 221.10262174987804}, {14.1732, 14.1732}} + Class + ShapedGraphic + FontInfo + + Font + Monaco + Size + 11 + + ID + 3374 + Rotation + 90 + Shape + Bezier + ShapeData + + UnitPoints + + {0.5, -0.499998} + {0.5, -0.499998} + {0.5, 0.5} + {0.5, 0.5} + {0.5, 0.5} + {-9.5367399999999999e-07, 0.499998} + {-9.5367399999999999e-07, 0.499998} + {-9.5367399999999999e-07, 0.499998} + {-0.5, 0} + {-0.5, 0} + {-0.5, 0} + {-4.76837e-07, -0.5} + {-4.76837e-07, -0.5} + {-4.76837e-07, -0.5} + {0.5, -0.499998} + + + Style + + shadow + + Draws + NO + + + + + Class + Group + Graphics + + + Bounds + {{600.8383588180543, 308.97637615203877}, {90, 15}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Font + Monaco + Size + 11 + + ID + 3320 + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Align + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1671\cocoasubrtf200 +{\fonttbl\f0\fnil\fcharset0 Monaco;} +{\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0 + +\f0\fs22 \cf0 messageToMon} + VerticalPad + 0.0 + + Wrap + NO + + + Class + Group + Graphics + + + Bounds + {{588.18790881805421, 308.97637615203877}, {7.0864500000000001, 14.1729}} + Class + ShapedGraphic + FontInfo + + Font + Monaco + Size + 11 + + HFlip + YES + ID + 3322 + Shape + Bezier + ShapeData + + UnitPoints + + {-0.50000100000000003, -0.5} + {-0.50000100000000003, -0.5} + {-0.50000100000000003, 0.5} + {-0.50000100000000003, 0.5} + {-0.50000100000000003, 0.5} + {0.49999900000000003, 1.90735e-06} + {0.49999900000000003, 1.90735e-06} + {0.49999900000000003, 1.90735e-06} + {-0.50000100000000003, -0.5} + + + Style + + fill + + Color + + b + 0.0 + g + 0.0 + r + 0.0 + + + shadow + + Draws + NO + + + + + Class + LineGraphic + FontInfo + + Font + Monaco + Size + 11 + + ID + 3323 + Points + + {588.18835881805421, 308.97637615203877} + {581.1023588180542, 316.06337615203876} + {588.18835881805421, 323.15037615203875} + + Style + + stroke + + HeadArrow + 0 + Legacy + + TailArrow + 0 + + + + + HFlip + YES + ID + 3321 + + + ID + 3319 + + + Class + Group + Graphics + + + Bounds + {{295.711582611084, 188.81774783325201}, {83, 15}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Font + Monaco + Size + 11 + + ID + 3218 + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Align + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1671\cocoasubrtf200 +{\fonttbl\f0\fnil\fcharset0 Monaco;} +{\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0 + +\f0\fs22 \cf0 inputStream} + VerticalPad + 0.0 + + Wrap + NO + + + Class + Group + Graphics + + + Bounds + {{280.629582611084, 188.81774783325201}, {7.0864500000000001, 14.1729}} + Class + ShapedGraphic + FontInfo + + Font + Monaco + Size + 11 + + ID + 3220 + Shape + Bezier + ShapeData + + UnitPoints + + {-0.50000100000000003, -0.5} + {-0.50000100000000003, -0.5} + {-0.50000100000000003, 0.5} + {-0.50000100000000003, 0.5} + {-0.50000100000000003, 0.5} + {0.49999900000000003, 1.90735e-06} + {0.49999900000000003, 1.90735e-06} + {0.49999900000000003, 1.90735e-06} + {-0.50000100000000003, -0.5} + + + Style + + fill + + Color + + b + 0.0 + g + 0.0 + r + 0.0 + + + shadow + + Draws + NO + + + + + Class + LineGraphic + FontInfo + + Font + Monaco + Size + 11 + + ID + 3221 + Points + + {287.71658261108399, 188.81774783325201} + {294.80258261108401, 195.90474783325203} + {287.71658261108399, 202.99174783325202} + + Style + + stroke + + HeadArrow + 0 + Legacy + + TailArrow + 0 + + + + + ID + 3219 + + + ID + 3217 + + + Class + Group + Graphics + + + Bounds + {{294.54599999999999, 162.433621749878}, {116, 15}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Font + Monaco + Size + 11 + + ID + 3223 + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Align + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1671\cocoasubrtf200 +{\fonttbl\f0\fnil\fcharset0 Monaco;} +{\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0 + +\f0\fs22 \cf0 connecterServeur} + VerticalPad + 0.0 + + Wrap + NO + + + Class + LineGraphic + FontInfo + + Font + Monaco + Size + 11 + + ID + 3224 + Points + + {279.464, 162.433621749878} + {286.55099999999999, 169.52062174987799} + {279.464, 176.60762174987801} + + Style + + stroke + + HeadArrow + 0 + Legacy + + TailArrow + 0 + + + + + ID + 3222 + + + Class + LineGraphic + Head + + ID + 3259 + Info + 1 + + ID + 3311 + Points + + {828.15963732142529, 353.96230949784962} + {889.79803256988635, 353.10790438842793} + + Style + + stroke + + HeadArrow + 0 + Legacy + + TailArrow + 0 + + + Tail + + ID + 3268 + + + + Class + LineGraphic + Head + + ID + 3263 + + ID + 3310 + Points + + {836.57222826385498, 325.75690438842781} + {896.24736828328093, 324.90038621938419} + + Style + + stroke + + HeadArrow + 0 + Legacy + + TailArrow + 0 + + + Tail + + ID + 3274 + Info + 1 + + + + Class + Group + Graphics + + + Bounds + {{780.35922826385502, 318.75690438842781}, {44, 15}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Font + Monaco + Size + 11 + + HFlip + YES + ID + 3271 + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Align + 2 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1671\cocoasubrtf200 +{\fonttbl\f0\fnil\fcharset0 Monaco;} +{\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qr\partightenfactor0 + +\f0\fs22 \cf0 ordre} + VerticalPad + 0.0 + + Wrap + NO + + + Class + Group + Graphics + + + Bounds + {{822.40022826385496, 318.66990438842782}, {7.0864500000000001, 14.1729}} + Class + ShapedGraphic + FontInfo + + Font + Monaco + Size + 11 + + ID + 3273 + Shape + Bezier + ShapeData + + UnitPoints + + {-0.50000100000000003, -0.5} + {-0.50000100000000003, -0.5} + {-0.50000100000000003, 0.5} + {-0.50000100000000003, 0.5} + {-0.50000100000000003, 0.5} + {0.49999900000000003, 1.90735e-06} + {0.49999900000000003, 1.90735e-06} + {0.49999900000000003, 1.90735e-06} + {-0.50000100000000003, -0.5} + + + Style + + fill + + Color + + b + 0.0 + g + 0.0 + r + 0.0 + + + shadow + + Draws + NO + + + Text + + Align + 2 + VerticalPad + 0.0 + + + + Class + LineGraphic + FontInfo + + Font + Monaco + Size + 11 + + ID + 3274 + Points + + {829.48622826385497, 318.66990438842782} + {836.57222826385498, 325.75690438842781} + {829.48622826385497, 332.8439043884278} + + Style + + stroke + + HeadArrow + 0 + Legacy + + TailArrow + 0 + + + + + ID + 3272 + + + HFlip + YES + ID + 3270 + + + Class + Group + Graphics + + + Bounds + {{756.84322826385494, 347.01790438842784}, {57, 15}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Font + Monaco + Size + 11 + + HFlip + YES + ID + 3266 + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Align + 2 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1671\cocoasubrtf200 +{\fonttbl\f0\fnil\fcharset0 Monaco;} +{\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qr\partightenfactor0 + +\f0\fs22 \cf0 reponse} + VerticalPad + 0.0 + + Wrap + NO + + + Class + Group + Graphics + + + Bounds + {{820.57322826385496, 346.93190438842782}, {7.0864500000000001, 14.1729}} + Class + ShapedGraphic + FontInfo + + Font + Monaco + Size + 11 + + HFlip + YES + ID + 3268 + Shape + Bezier + ShapeData + + UnitPoints + + {-0.50000100000000003, -0.5} + {-0.50000100000000003, -0.5} + {-0.50000100000000003, 0.5} + {-0.50000100000000003, 0.5} + {-0.50000100000000003, 0.5} + {0.49999900000000003, 1.90735e-06} + {0.49999900000000003, 1.90735e-06} + {0.49999900000000003, 1.90735e-06} + {-0.50000100000000003, -0.5} + + + Style + + fill + + Color + + b + 0.0 + g + 0.0 + r + 0.0 + + + shadow + + Draws + NO + + + Text + + Align + 2 + VerticalPad + 0.0 + + + + Class + LineGraphic + FontInfo + + Font + Monaco + Size + 11 + + ID + 3269 + Points + + {820.57222826385498, 346.9329043884278} + {813.48622826385497, 354.01890438842781} + {820.57222826385498, 361.1059043884278} + + Style + + stroke + + HeadArrow + 0 + Legacy + + TailArrow + 0 + + + + + HFlip + YES + ID + 3267 + + + HFlip + YES + ID + 3265 + + + Class + Group + Graphics + + + Bounds + {{859.39732387542847, 303.67090438842791}, {44, 15}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Font + Monaco + Size + 11 + + HFlip + YES + ID + 3261 + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Align + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1671\cocoasubrtf200 +{\fonttbl\f0\fnil\fcharset0 Monaco;} +{\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0 + +\f0\fs22 \cf0 ordre} + VerticalPad + 0.0 + + Wrap + NO + + + Class + Group + Graphics + + + Bounds + {{896.74732387542838, 317.75590438842789}, {7.0864500000000001, 14.1729}} + Class + ShapedGraphic + FontInfo + + Font + Monaco + Size + 11 + + ID + 3263 + Shape + Bezier + ShapeData + + UnitPoints + + {-0.50000100000000003, -0.5} + {-0.50000100000000003, -0.5} + {-0.50000100000000003, 0.5} + {-0.50000100000000003, 0.5} + {-0.50000100000000003, 0.5} + {0.49999900000000003, 1.90735e-06} + {0.49999900000000003, 1.90735e-06} + {0.49999900000000003, 1.90735e-06} + {-0.50000100000000003, -0.5} + + + Style + + fill + + Color + + b + 0.0 + g + 0.0 + r + 0.0 + + + shadow + + Draws + NO + + + Text + + Align + 0 + VerticalPad + 0.0 + + + + Class + LineGraphic + FontInfo + + Font + Monaco + Size + 11 + + ID + 3264 + Points + + {903.82732387542842, 317.75590438842789} + {910.90732387542835, 324.84390438842786} + {903.82732387542842, 331.93090438842785} + + Style + + stroke + + HeadArrow + 0 + Legacy + + TailArrow + 0 + + + + + ID + 3262 + + + HFlip + YES + ID + 3260 + + + Class + Group + Graphics + + + Bounds + {{838.28803256988647, 331.9329043884278}, {57, 15}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Font + Monaco + Size + 11 + + HFlip + YES + ID + 3256 + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Align + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1671\cocoasubrtf200 +{\fonttbl\f0\fnil\fcharset0 Monaco;} +{\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0 + +\f0\fs22 \cf0 reponse} + VerticalPad + 0.0 + + Wrap + NO + + + Class + Group + Graphics + + + Bounds + {{896.89803256988648, 346.02090438842788}, {7.0864500000000001, 14.1729}} + Class + ShapedGraphic + FontInfo + + Font + Monaco + Size + 11 + + HFlip + YES + ID + 3258 + Shape + Bezier + ShapeData + + UnitPoints + + {-0.50000100000000003, -0.5} + {-0.50000100000000003, -0.5} + {-0.50000100000000003, 0.5} + {-0.50000100000000003, 0.5} + {-0.50000100000000003, 0.5} + {0.49999900000000003, 1.90735e-06} + {0.49999900000000003, 1.90735e-06} + {0.49999900000000003, 1.90735e-06} + {-0.50000100000000003, -0.5} + + + Style + + fill + + Color + + b + 0.0 + g + 0.0 + r + 0.0 + + + shadow + + Draws + NO + + + Text + + Align + 0 + VerticalPad + 0.0 + + + + Class + LineGraphic + FontInfo + + Font + Monaco + Size + 11 + + ID + 3259 + Points + + {896.88803256988649, 346.02090438842788} + {889.79803256988635, 353.10790438842793} + {896.88803256988649, 360.19490438842791} + + Style + + stroke + + HeadArrow + 0 + Legacy + + TailArrow + 0 + + + + + HFlip + YES + ID + 3257 + + + HFlip + YES + ID + 3255 + + + Class + Group + Graphics + + + Bounds + {{420.71699999999998, 185.98333044433602}, {90, 15}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Font + Monaco + Size + 11 + + ID + 3337 + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Align + 2 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1671\cocoasubrtf200 +{\fonttbl\f0\fnil\fcharset0 Monaco;} +{\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qr\partightenfactor0 + +\f0\fs22 \cf0 openComRobot} + VerticalPad + 0.0 + + Wrap + NO + + + Class + LineGraphic + FontInfo + + Font + Monaco + Size + 11 + + ID + 3338 + Points + + {513.32799999999997, 185.98333044433602} + {520.41499999999996, 193.07033044433604} + {513.32799999999997, 200.15733044433603} + + Style + + stroke + + HeadArrow + 0 + Legacy + + TailArrow + 0 + + + + + ID + 3336 + + + Class + Group + Graphics + + + Bounds + {{595.98424797058112, 238.11023483276378}, {90, 15}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Font + Monaco + Size + 11 + + ID + 3283 + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Align + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1671\cocoasubrtf200 +{\fonttbl\f0\fnil\fcharset0 Monaco;} +{\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0 + +\f0\fs22 \cf0 openComRobot} + VerticalPad + 0.0 + + Wrap + NO + + + Class + LineGraphic + FontInfo + + Font + Monaco + Size + 11 + + ID + 3284 + Points + + {580.74453927612308, 238.11023483276378} + {587.83153927612307, 245.19723483276377} + {580.74453927612308, 252.28423483276376} + + Style + + stroke + + HeadArrow + 0 + Legacy + + TailArrow + 0 + + + + + ID + 3282 + + + Bounds + {{339.85039138793911, 203.26771526336677}, {90, 15}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Font + Monaco + Size + 11 + + HFlip + YES + ID + 3059 + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Align + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1671\cocoasubrtf200 +{\fonttbl\f0\fnil\fcharset0 Monaco;} +{\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0 + +\f0\fs22 \cf0 messageToMon} + VerticalPad + 0.0 + + Wrap + NO + + + Class + Group + Graphics + + + Bounds + {{376.17225770721433, 224.64268591613771}, {7.0864500000000001, 14.1729}} + Class + ShapedGraphic + FontInfo + + Font + Monaco + Size + 11 + + HFlip + YES + ID + 3061 + Rotation + 90 + Shape + Bezier + ShapeData + + UnitPoints + + {-0.50000100000000003, -0.5} + {-0.50000100000000003, -0.5} + {-0.50000100000000003, 0.5} + {-0.50000100000000003, 0.5} + {-0.50000100000000003, 0.5} + {0.49999900000000003, 1.90735e-06} + {0.49999900000000003, 1.90735e-06} + {0.49999900000000003, 1.90735e-06} + {-0.50000100000000003, -0.5} + + + Style + + fill + + Color + + b + 0.0 + g + 0.0 + r + 0.0 + + + shadow + + Draws + NO + + + VFlip + YES + + + Class + LineGraphic + FontInfo + + Font + Monaco + Size + 11 + + ID + 3062 + Points + + {372.62903270721432, 228.18236091613781} + {379.71603270721431, 221.10236091613777} + {386.80403270721433, 228.18236091613781} + + Style + + stroke + + HeadArrow + 0 + Legacy + + TailArrow + 0 + + + + + HFlip + YES + ID + 3060 + Rotation + 90 + VFlip + YES + + + Class + LineGraphic + FontInfo + + Font + Monaco + Size + 11 + + Head + + ID + 3284 + Info + 1 + + ID + 3346 + Points + + {520.41499999999996, 193.07033044433604} + {561.25983924865704, 193.07033044433604} + {560.45060272216779, 243.77952613830576} + {587.83153927612307, 245.19723483276377} + + Style + + stroke + + HeadArrow + 0 + Legacy + + TailArrow + 0 + + + Tail + + ID + 3338 + Info + 1 + + + + Class + LineGraphic + FontInfo + + Font + Monaco + Size + 11 + + ID + 2855 + Points + + {164.7584176635736, 17.007873916625975} + {1037.4803089141844, 19.842534777832039} + {1009.1303089141845, 419.52725216674804} + {150.23451327514593, 419.52725216674804} + {164.40851327514594, 19.842534777832039} + + Style + + stroke + + HeadArrow + 0 + Legacy + + TailArrow + 0 + + + + + Bounds + {{283.46456527709961, 150.23621959686281}, {240.94488048553467, 85.039369583129883}} + Class + ShapedGraphic + ID + 3476 + Style + + shadow + + Draws + NO + + stroke + + CornerRadius + 10 + Pattern + 1 + + + + + Bounds + {{587.12204360961914, 199.42882820892345}, {156, 15}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Font + Monaco + Size + 11 + + ID + 3479 + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Align + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1671\cocoasubrtf200 +{\fonttbl\f0\fnil\fcharset0 Monaco;} +{\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0 + +\f0\fs22 \cf0 th_group_gestion_robot} + VerticalPad + 0.0 + + Wrap + NO + + + Bounds + {{581.1023588180542, 221.10236091613774}, {240.94488048553467, 153.07086524963381}} + Class + ShapedGraphic + ID + 3478 + Style + + shadow + + Draws + NO + + stroke + + CornerRadius + 10 + Pattern + 1 + + + + + Bounds + {{892.71326977539127, 306.14173049926768}, {105.08199999999999, 62.273647833252056}} + Class + ShapedGraphic + FontInfo + + Font + Monaco + Size + 11 + + ID + 3752 + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1671\cocoasubrtf200 +{\fonttbl\f0\fnil\fcharset0 Monaco;} +{\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0 + +\f0\fs22 \cf0 robot} + VerticalPad + 0.0 + + + + GridInfo + + GridSpacing + 5.669291305541992 + MajorGridSpacing + 5 + ShowsGrid + YES + SnapsToGrid + YES + + GuidesLocked + NO + GuidesVisible + YES + HPages + 3 + ImageCounter + 1 + KeepToScale + + Layers + + + Lock + NO + Name + Calque 1 + Print + YES + View + YES + + + LayoutInfo + + Animate + NO + circoMinDist + 18 + layoutEngine + dot + neatoLineLength + 0.20000000298023224 + + LinksVisible + NO + MagnetsVisible + NO + MasterSheets + + ModificationDate + 2019-03-05 14:06:23 +0000 + Modifier + pehladik + NotesVisible + NO + Orientation + 2 + OriginVisible + NO + OutlineStyle + Basic + PageBreaks + YES + PrintInfo + + NSBottomMargin + + float + 12 + + NSHorizonalPagination + + coded + BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG + + NSLeftMargin + + float + 12 + + NSPaperSize + + size + {595, 842} + + NSPrintReverseOrientation + + coded + BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG + + NSRightMargin + + float + 12 + + NSTopMargin + + float + 12 + + + PrintOnePage + + ReadOnly + NO + RowAlign + 1 + RowSpacing + 36 + SheetTitle + Canevas 1 + SmartAlignmentGuidesActive + YES + SmartDistanceGuidesActive + YES + UniqueID + 1 + UseEntirePage + + VPages + 2 + WindowInfo + + CurrentSheet + 0 + Expanded_Canvases + + Frame + {{0, 0}, {1252, 742}} + ShowInfo + + Sidebar + + SidebarWidth + 0 + TopSlabHeight + 250 + VisibleRegion + {{116.5, 0}, {955, 632}} + Zoom + 1 + ZoomValues + + + Canevas 1 + 1 + 0.77000000000000002 + + + + + diff --git a/doc/sujets/tex/rapport_etudiant/figures/diag_fonc_moniteur.graffle b/doc/sujets/tex/rapport_etudiant/figures/diag_fonc_moniteur.graffle new file mode 100644 index 0000000..fc11f91 --- /dev/null +++ b/doc/sujets/tex/rapport_etudiant/figures/diag_fonc_moniteur.graffle @@ -0,0 +1,2917 @@ + + + + + ActiveLayerIndex + 0 + ApplicationVersion + + com.omnigroup.OmniGraffle6 + 169.14.0.260934 + + AutoAdjust + + BackgroundGraphic + + Bounds + {{0, 0}, {1712.3525390625, 1634.7967529296875}} + Class + SolidGraphic + ID + 2 + Style + + stroke + + Draws + NO + + + + BaseZoom + 0 + CanvasOrigin + {0, 0} + ColumnAlign + 1 + ColumnSpacing + 36 + CreationDate + 2011-03-28 16:03:00 +0000 + Creator + Pirem + DisplayScale + 1.0000 cm = 1.0000 cm + GraphDocumentVersion + 12 + GraphicsList + + + Bounds + {{522.36136835479738, 289.64594126129151}, {14.1732, 14.1732}} + Class + ShapedGraphic + FontInfo + + Font + Monaco + Size + 11 + + ID + 3374 + Rotation + 90 + Shape + Bezier + ShapeData + + UnitPoints + + {0.5, -0.499998} + {0.5, -0.499998} + {0.5, 0.5} + {0.5, 0.5} + {0.5, 0.5} + {-9.5367399999999999e-07, 0.499998} + {-9.5367399999999999e-07, 0.499998} + {-9.5367399999999999e-07, 0.499998} + {-0.5, 0} + {-0.5, 0} + {-0.5, 0} + {-4.76837e-07, -0.5} + {-4.76837e-07, -0.5} + {-4.76837e-07, -0.5} + {0.5, -0.499998} + + + Style + + shadow + + Draws + NO + + + + + Class + LineGraphic + FontInfo + + Font + Helvetica + Size + 12 + + Head + + ID + 3514 + Info + 1 + + ID + 3518 + Points + + {663.30710506439209, 250.86653433990477} + {759.88450122070321, 250.86653433990477} + + Style + + shadow + + Draws + NO + + stroke + + HeadArrow + 0 + Legacy + + TailArrow + 0 + + + Tail + + ID + 3517 + Info + 1 + + + + Class + Group + Graphics + + + Bounds + {{576.60910506439222, 243.77953433990479}, {77, 15}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Font + Monaco + Size + 11 + + ID + 3516 + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Align + 2 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1404\cocoasubrtf470 +{\fonttbl\f0\fnil\fcharset0 Monaco;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qr\partightenfactor0 + +\f0\fs22 \cf0 startRobot} + VerticalPad + 0.0 + + Wrap + NO + + + Class + LineGraphic + FontInfo + + Font + Monaco + Size + 11 + + ID + 3517 + Points + + {656.2201050643921, 243.77953433990479} + {663.30710506439209, 250.86653433990477} + {656.2201050643921, 257.95353433990476} + + Style + + stroke + + HeadArrow + 0 + Legacy + + TailArrow + 0 + + + + + ID + 3515 + + + Class + Group + Graphics + + + Bounds + {{786.70650122070322, 243.77953433990479}, {77, 15}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Font + Monaco + Size + 11 + + ID + 3513 + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Align + 2 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1404\cocoasubrtf470 +{\fonttbl\f0\fnil\fcharset0 Monaco;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qr\partightenfactor0 + +\f0\fs22 \cf0 startRobot} + VerticalPad + 0.0 + + Wrap + NO + + + Class + LineGraphic + FontInfo + + Font + Monaco + Size + 11 + + ID + 3514 + Points + + {752.79750122070323, 243.77953433990481} + {759.88450122070321, 250.86653433990477} + {752.79750122070323, 257.95353433990476} + + Style + + stroke + + HeadArrow + 0 + Legacy + + TailArrow + 0 + + + + + ID + 3512 + + + Class + LineGraphic + FontInfo + + Font + Helvetica + Size + 12 + + Head + + ID + 3510 + Info + 1 + + ID + 3511 + Points + + {490.609375, 145.15787039947512} + {471.73932400890408, 237.49514453381391} + {505.98465167236327, 235.8665343399048} + + Rotation + 2.0580178573727608 + Style + + shadow + + Draws + NO + + stroke + + HeadArrow + 0 + Legacy + + TailArrow + 0 + + + Tail + + ID + 3492 + Position + 0.19167125464014209 + + + + Class + Group + Graphics + + + Bounds + {{512.79090269470214, 228.77953433990479}, {63, 15}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Font + Monaco + Size + 11 + + ID + 3509 + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Align + 2 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1404\cocoasubrtf470 +{\fonttbl\f0\fnil\fcharset0 Monaco;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qr\partightenfactor0 + +\f0\fs22 \cf0 serverOK} + VerticalPad + 0.0 + + Wrap + NO + + + Class + LineGraphic + FontInfo + + Font + Monaco + Size + 11 + + ID + 3510 + Points + + {498.89765167236328, 228.77953433990481} + {505.98465167236327, 235.8665343399048} + {498.89765167236328, 242.95353433990476} + + Style + + stroke + + HeadArrow + 0 + Legacy + + TailArrow + 0 + + + + + ID + 3508 + + + Class + Group + Graphics + + + Bounds + {{490.17329192237997, 187.96659680633545}, {45.082000000000001, 28.3462}} + Class + ShapedGraphic + ID + 3507 + Line + + ID + 3506 + Position + 0.010145006701350212 + RotationType + 0 + + Shape + Circle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1404\cocoasubrtf470 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0 + +\f0\fs24 \cf0 A} + VerticalPad + 0.0 + + + + Bounds + {{545.189477508545, 184.76379680633545}, {123, 15}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Font + Monaco + Size + 11 + + ID + 3505 + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1404\cocoasubrtf470 +{\fonttbl\f0\fnil\fcharset0 Monaco;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0 + +\f0\fs22 \cf0 th_receiveFromMon} + VerticalPad + 0.0 + + Wrap + NO + + + Class + LineGraphic + ID + 3506 + Points + + {507.40247750854491, 202.13969680633545} + {668.97639656066895, 202.13969680633545} + {654.80339656066894, 301.35249680633547} + {493.22847750854493, 301.35249680633547} + {507.40247750854491, 202.13969680633545} + + Style + + stroke + + HeadArrow + 0 + Legacy + + Pattern + 1 + TailArrow + 0 + + + + + ID + 3503 + + + Class + Group + Graphics + + + Bounds + {{391.49607276916504, 138.0708703994751}, {63, 15}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Font + Monaco + Size + 11 + + ID + 3497 + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Align + 2 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1404\cocoasubrtf470 +{\fonttbl\f0\fnil\fcharset0 Monaco;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qr\partightenfactor0 + +\f0\fs22 \cf0 serverOK} + VerticalPad + 0.0 + + Wrap + NO + + + Class + LineGraphic + FontInfo + + Font + Monaco + Size + 11 + + ID + 3498 + Points + + {457.10707276916503, 138.0708703994751} + {464.19407276916502, 145.15787039947512} + {457.10707276916503, 152.2448703994751} + + Style + + stroke + + HeadArrow + 0 + Legacy + + TailArrow + 0 + + + + + ID + 3496 + + + Class + Group + Graphics + + + Bounds + {{602.75328658294677, 127.55905055999756}, {63, 15}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Font + Monaco + Size + 11 + + ID + 3494 + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Align + 2 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1404\cocoasubrtf470 +{\fonttbl\f0\fnil\fcharset0 Monaco;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qr\partightenfactor0 + +\f0\fs22 \cf0 serverOK} + VerticalPad + 0.0 + + Wrap + NO + + + Class + LineGraphic + FontInfo + + Font + Monaco + Size + 11 + + ID + 3495 + Points + + {588.86003556060791, 127.55905055999759} + {595.9470355606079, 134.64605055999758} + {588.86003556060791, 141.73305055999754} + + Style + + stroke + + HeadArrow + 0 + Legacy + + TailArrow + 0 + + + + + ID + 3493 + + + Class + LineGraphic + FontInfo + + Font + Monaco + Size + 11 + + Head + + ID + 3495 + Info + 1 + + ID + 3492 + Points + + {464.19407276916502, 145.15787039947512} + {555.59056663513184, 145.15787039947512} + {559.42578125, 136.06299591064453} + {595.9470355606079, 134.64605055999758} + + Style + + stroke + + HeadArrow + 0 + Legacy + + TailArrow + 0 + + + Tail + + ID + 3498 + Info + 1 + + + + Class + LineGraphic + FontInfo + + Font + Helvetica + Size + 12 + + Head + + ID + 3061 + + ID + 3490 + Points + + {252.28024284362789, 109.13424693298339} + {588.22036822662358, 109.13175825805662} + + Style + + shadow + + Draws + NO + + stroke + + HeadArrow + 0 + Legacy + + TailArrow + 0 + + + Tail + + ID + 3489 + Info + 1 + + + + Class + Group + Graphics + + + Bounds + {{147.08516189575181, 102.04724693298343}, {90, 15}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Font + Monaco + Size + 11 + + HFlip + YES + ID + 3486 + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Align + 2 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1404\cocoasubrtf470 +{\fonttbl\f0\fnil\fcharset0 Monaco;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qr\partightenfactor0 + +\f0\fs22 \cf0 messageToMon} + VerticalPad + 0.0 + + Wrap + NO + + + Class + Group + Graphics + + + Bounds + {{238.11024284362793, 102.0472469329834}, {7.0864500000000001, 14.1729}} + Class + ShapedGraphic + FontInfo + + Font + Monaco + Size + 11 + + ID + 3488 + Shape + Bezier + ShapeData + + UnitPoints + + {-0.50000100000000003, -0.5} + {-0.50000100000000003, -0.5} + {-0.50000100000000003, 0.5} + {-0.50000100000000003, 0.5} + {-0.50000100000000003, 0.5} + {0.49999900000000003, 1.90735e-06} + {0.49999900000000003, 1.90735e-06} + {0.49999900000000003, 1.90735e-06} + {-0.50000100000000003, -0.5} + + + Style + + fill + + Color + + b + 0.0 + g + 0.0 + r + 0.0 + + + shadow + + Draws + NO + + + Text + + Align + 2 + + + + Class + LineGraphic + FontInfo + + Font + Monaco + Size + 11 + + ID + 3489 + Points + + {245.20024284362785, 102.0472469329834} + {252.28024284362789, 109.13424693298339} + {245.20024284362785, 116.22224693298341} + + Style + + stroke + + HeadArrow + 0 + Legacy + + TailArrow + 0 + + + + + ID + 3487 + + + HFlip + YES + ID + 3485 + + + Class + LineGraphic + FontInfo + + Font + Helvetica + Size + 12 + + Head + + ID + 3481 + + ID + 3482 + Points + + {529.44796835479735, 296.73254126129149} + {529.44796835479735, 322.24411899414065} + + Style + + shadow + + Draws + NO + + stroke + + HeadArrow + 0 + Legacy + + TailArrow + 0 + + + Tail + + ID + 3374 + + + + Bounds + {{506.73622512817383, 326.49607276916504}, {37, 25}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + ID + 23 + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1404\cocoasubrtf470 +{\fonttbl\f0\fnil\fcharset0 Monaco;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0 + +\f0\fs22 \cf0 Move} + + Wrap + NO + + + Bounds + {{522.36136835479738, 315.15751899414067}, {14.1732, 14.1732}} + Class + ShapedGraphic + FontInfo + + Font + Monaco + Size + 11 + + ID + 3481 + Rotation + 90 + Shape + Bezier + ShapeData + + UnitPoints + + {0.5, -0.499998} + {0.5, -0.499998} + {0.5, 0.5} + {0.5, 0.5} + {0.5, 0.5} + {-9.5367399999999999e-07, 0.499998} + {-9.5367399999999999e-07, 0.499998} + {-9.5367399999999999e-07, 0.499998} + {-0.5, 0} + {-0.5, 0} + {-0.5, 0} + {-4.76837e-07, -0.5} + {-4.76837e-07, -0.5} + {-4.76837e-07, -0.5} + {0.5, -0.499998} + + + Style + + shadow + + Draws + NO + + + + + Class + LineGraphic + Head + + ID + 3470 + + ID + 3472 + Points + + {725.10543472290044, 157.32359975433349} + {753.51576192010498, 157.32123430961141} + + Style + + stroke + + HeadArrow + 0 + Legacy + + TailArrow + 0 + + + Tail + + ID + 3466 + Info + 1 + + + + Class + Group + Graphics + + + Bounds + {{773.34868396759043, 147.48803066253654}, {90, 15}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Font + Monaco + Size + 11 + + HFlip + YES + ID + 3468 + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Align + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1404\cocoasubrtf340 +{\fonttbl\f0\fnil\fcharset0 Monaco;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0 + +\f0\fs22 \cf0 outputstream} + VerticalPad + 0.0 + + Wrap + NO + + + Class + Group + Graphics + + + Bounds + {{754.01576900482189, 150.23444766998284}, {7.0864500000000001, 14.1729}} + Class + ShapedGraphic + FontInfo + + Font + Monaco + Size + 11 + + ID + 3470 + Shape + Bezier + ShapeData + + UnitPoints + + {-0.50000100000000003, -0.5} + {-0.50000100000000003, -0.5} + {-0.50000100000000003, 0.5} + {-0.50000100000000003, 0.5} + {-0.50000100000000003, 0.5} + {0.49999900000000003, 1.90735e-06} + {0.49999900000000003, 1.90735e-06} + {0.49999900000000003, 1.90735e-06} + {-0.50000100000000003, -0.5} + + + Style + + fill + + Color + + b + 0.0 + g + 0.0 + r + 0.0 + + + shadow + + Draws + NO + + + Text + + Align + 0 + VerticalPad + 0.0 + + + + Class + LineGraphic + FontInfo + + Font + Monaco + Size + 11 + + ID + 3471 + Points + + {761.09576900482205, 150.23444766998284} + {768.17576900482197, 157.32244766998281} + {761.09576900482205, 164.40944766998285} + + Style + + stroke + + HeadArrow + 0 + Legacy + + TailArrow + 0 + + + + + ID + 3469 + + + HFlip + YES + ID + 3467 + + + Class + Group + Graphics + + + Bounds + {{618.89343472290034, 150.2365997543335}, {90, 15}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Font + Monaco + Size + 11 + + HFlip + YES + ID + 3463 + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Align + 2 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1404\cocoasubrtf340 +{\fonttbl\f0\fnil\fcharset0 Monaco;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qr\partightenfactor0 + +\f0\fs22 \cf0 outputstream} + VerticalPad + 0.0 + + Wrap + NO + + + Class + Group + Graphics + + + Bounds + {{710.93743472290043, 150.2365997543335}, {7.0864500000000001, 14.1729}} + Class + ShapedGraphic + FontInfo + + Font + Monaco + Size + 11 + + ID + 3465 + Shape + Bezier + ShapeData + + UnitPoints + + {-0.50000100000000003, -0.5} + {-0.50000100000000003, -0.5} + {-0.50000100000000003, 0.5} + {-0.50000100000000003, 0.5} + {-0.50000100000000003, 0.5} + {0.49999900000000003, 1.90735e-06} + {0.49999900000000003, 1.90735e-06} + {0.49999900000000003, 1.90735e-06} + {-0.50000100000000003, -0.5} + + + Style + + fill + + Color + + b + 0.0 + g + 0.0 + r + 0.0 + + + shadow + + Draws + NO + + + + + Class + LineGraphic + FontInfo + + Font + Monaco + Size + 11 + + ID + 3466 + Points + + {718.0254347229004, 150.2365997543335} + {725.10543472290044, 157.32359975433349} + {718.0254347229004, 164.41059975433348} + + Style + + stroke + + HeadArrow + 0 + Legacy + + TailArrow + 0 + + + + + ID + 3464 + + + HFlip + YES + ID + 3462 + + + Bounds + {{579.63103477068273, 66.798499754333506}, {45.082000000000001, 28.3462}} + Class + ShapedGraphic + ID + 3449 + Line + + ID + 3447 + Position + 0.010145006701350212 + RotationType + 0 + + Shape + Circle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1404\cocoasubrtf470 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0 + +\f0\fs24 \cf0 A} + VerticalPad + 0.0 + + + + Bounds + {{623.49143472290041, 63.595599754333477}, {90, 15}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Font + Monaco + Size + 11 + + ID + 3448 + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1404\cocoasubrtf470 +{\fonttbl\f0\fnil\fcharset0 Monaco;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0 + +\f0\fs22 \cf0 th_sendToMon} + VerticalPad + 0.0 + + Wrap + NO + + + Class + LineGraphic + ID + 3447 + Points + + {597.55043472290038, 80.971599754333511} + {725.10543472290044, 80.971599754333511} + {710.93543472290037, 180.18459975433348} + {583.3764347229004, 180.18459975433348} + {597.55043472290038, 80.971599754333511} + + Style + + stroke + + HeadArrow + 0 + Legacy + + Pattern + 1 + TailArrow + 0 + + + + + Class + Group + Graphics + + + Bounds + {{266.12882275419054, 119.05507438049315}, {45.082000000000001, 28.3462}} + Class + ShapedGraphic + ID + 3352 + Line + + ID + 3354 + Position + 0.010145006701350212 + RotationType + 0 + + Shape + Circle + Style + + shadow + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1404\cocoasubrtf470 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0 + +\f0\fs24 \cf0 A} + VerticalPad + 0.0 + + + + Bounds + {{347.75200000000001, 115.85227438049316}, {70, 15}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Font + Monaco + Size + 11 + + ID + 3353 + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Text + {\rtf1\ansi\ansicpg1252\cocoartf1404\cocoasubrtf470 +{\fonttbl\f0\fnil\fcharset0 Monaco;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0 + +\f0\fs22 \cf0 th_server} + VerticalPad + 0.0 + + Wrap + NO + + + Class + LineGraphic + ID + 3354 + Points + + {283.46499999999997, 133.22817438049316} + {467.71608503723144, 133.22817438049316} + {453.54308503723144, 204.0945168991089} + {269.291, 204.0945168991089} + {283.46499999999997, 133.22817438049316} + + Style + + stroke + + HeadArrow + 0 + Legacy + + Pattern + 1 + TailArrow + 0 + + + + + ID + 3351 + + + Class + Group + Graphics + + + Bounds + {{511.14465985107427, 257.36106677246096}, {83, 15}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Font + Monaco + Size + 11 + + ID + 3218 + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Align + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1404\cocoasubrtf470 +{\fonttbl\f0\fnil\fcharset0 Monaco;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0 + +\f0\fs22 \cf0 inputStream} + VerticalPad + 0.0 + + Wrap + NO + + + Class + Group + Graphics + + + Bounds + {{496.06265985107422, 257.36106677246096}, {7.0864500000000001, 14.1729}} + Class + ShapedGraphic + FontInfo + + Font + Monaco + Size + 11 + + ID + 3220 + Shape + Bezier + ShapeData + + UnitPoints + + {-0.50000100000000003, -0.5} + {-0.50000100000000003, -0.5} + {-0.50000100000000003, 0.5} + {-0.50000100000000003, 0.5} + {-0.50000100000000003, 0.5} + {0.49999900000000003, 1.90735e-06} + {0.49999900000000003, 1.90735e-06} + {0.49999900000000003, 1.90735e-06} + {-0.50000100000000003, -0.5} + + + Style + + fill + + Color + + b + 0.0 + g + 0.0 + r + 0.0 + + + shadow + + Draws + NO + + + + + Class + LineGraphic + FontInfo + + Font + Monaco + Size + 11 + + ID + 3221 + Points + + {503.1496598510742, 257.36106677246096} + {510.23565985107422, 264.44806677246095} + {503.1496598510742, 271.53506677246094} + + Style + + stroke + + HeadArrow + 0 + Legacy + + TailArrow + 0 + + + + + ID + 3219 + + + ID + 3217 + + + Class + Group + Graphics + + + Bounds + {{288.87670850372314, 159.59897438049316}, {96, 15}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Font + Monaco + Size + 11 + + ID + 3223 + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Align + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1404\cocoasubrtf470 +{\fonttbl\f0\fnil\fcharset0 Monaco;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0 + +\f0\fs22 \cf0 connectServer} + VerticalPad + 0.0 + + Wrap + NO + + + Class + LineGraphic + FontInfo + + Font + Monaco + Size + 11 + + ID + 3224 + Points + + {273.79470850372314, 159.59897438049319} + {280.88170850372313, 166.68597438049318} + {273.79470850372314, 173.77297438049317} + + Style + + stroke + + HeadArrow + 0 + Legacy + + TailArrow + 0 + + + + + ID + 3222 + + + Class + Group + Graphics + + + Bounds + {{569.27839656066908, 215.43307685852051}, {90, 15}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Font + Monaco + Size + 11 + + ID + 3337 + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Align + 2 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1404\cocoasubrtf470 +{\fonttbl\f0\fnil\fcharset0 Monaco;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qr\partightenfactor0 + +\f0\fs22 \cf0 OpenComRobot} + VerticalPad + 0.0 + + Wrap + NO + + + Class + LineGraphic + FontInfo + + Font + Monaco + Size + 11 + + ID + 3338 + Points + + {661.88939656066896, 215.43307685852051} + {668.97639656066895, 222.5200768585205} + {661.88939656066896, 229.60707685852049} + + Style + + stroke + + HeadArrow + 0 + Legacy + + TailArrow + 0 + + + + + ID + 3336 + + + Class + Group + Graphics + + + Bounds + {{779.37579271698007, 215.43307685852051}, {90, 15}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Font + Monaco + Size + 11 + + ID + 3477 + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Align + 2 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1404\cocoasubrtf470 +{\fonttbl\f0\fnil\fcharset0 Monaco;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qr\partightenfactor0 + +\f0\fs22 \cf0 openComRobot} + VerticalPad + 0.0 + + Wrap + NO + + + Class + LineGraphic + FontInfo + + Font + Monaco + Size + 11 + + ID + 3478 + Points + + {758.46679271698008, 215.43307685852054} + {765.55379271698007, 222.52007685852053} + {758.46679271698008, 229.60707685852051} + + Style + + stroke + + HeadArrow + 0 + Legacy + + TailArrow + 0 + + + + + ID + 3476 + + + Class + Group + Graphics + + + Bounds + {{602.38434968566889, 102.04530825805665}, {90, 15}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Font + Monaco + Size + 11 + + HFlip + YES + ID + 3059 + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Align + 2 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1404\cocoasubrtf470 +{\fonttbl\f0\fnil\fcharset0 Monaco;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qr\partightenfactor0 + +\f0\fs22 \cf0 messageToMon} + VerticalPad + 0.0 + + Wrap + NO + + + Class + Group + Graphics + + + Bounds + {{584.67714322662357, 102.04530825805662}, {7.0864500000000001, 14.1729}} + Class + ShapedGraphic + FontInfo + + Font + Monaco + Size + 11 + + ID + 3061 + Shape + Bezier + ShapeData + + UnitPoints + + {-0.50000100000000003, -0.5} + {-0.50000100000000003, -0.5} + {-0.50000100000000003, 0.5} + {-0.50000100000000003, 0.5} + {-0.50000100000000003, 0.5} + {0.49999900000000003, 1.90735e-06} + {0.49999900000000003, 1.90735e-06} + {0.49999900000000003, 1.90735e-06} + {-0.50000100000000003, -0.5} + + + Style + + fill + + Color + + b + 0.0 + g + 0.0 + r + 0.0 + + + shadow + + Draws + NO + + + + + Class + LineGraphic + FontInfo + + Font + Monaco + Size + 11 + + ID + 3062 + Points + + {591.76714322662349, 102.04530825805662} + {598.84714322662353, 109.13230825805661} + {591.76714322662349, 116.22030825805663} + + Style + + stroke + + HeadArrow + 0 + Legacy + + TailArrow + 0 + + + + + ID + 3060 + + + HFlip + YES + ID + 3058 + + + Class + LineGraphic + Head + + ID + 3220 + + ID + 3229 + Points + + {256.05066394042967, 265.27406677246097} + {495.56265564387587, 264.46123822375534} + + Style + + stroke + + HeadArrow + 0 + Legacy + + TailArrow + 0 + + + Tail + + ID + 2977 + Info + 1 + + + + Class + LineGraphic + Head + + ID + 3224 + Info + 1 + + ID + 3228 + Points + + {250.0086639404297, 167.51197438049311} + {280.88170850372313, 166.68597438049318} + + Style + + stroke + + HeadArrow + 0 + Legacy + + TailArrow + 0 + + + Tail + + ID + 2972 + Info + 1 + + + + Class + Group + Graphics + + + Bounds + {{157.74729149627683, 255.35264976501469}, {83, 15}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Font + Monaco + Size + 11 + + ID + 2974 + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Align + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1404\cocoasubrtf470 +{\fonttbl\f0\fnil\fcharset0 Monaco;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0 + +\f0\fs22 \cf0 inputStream} + VerticalPad + 0.0 + + Wrap + NO + + + Class + Group + Graphics + + + Bounds + {{241.87766394042967, 258.18706677246092}, {7.0864500000000001, 14.1729}} + Class + ShapedGraphic + FontInfo + + Font + Monaco + Size + 11 + + ID + 2976 + Shape + Bezier + ShapeData + + UnitPoints + + {-0.50000100000000003, -0.5} + {-0.50000100000000003, -0.5} + {-0.50000100000000003, 0.5} + {-0.50000100000000003, 0.5} + {-0.50000100000000003, 0.5} + {0.49999900000000003, 1.90735e-06} + {0.49999900000000003, 1.90735e-06} + {0.49999900000000003, 1.90735e-06} + {-0.50000100000000003, -0.5} + + + Style + + fill + + Color + + b + 0.0 + g + 0.0 + r + 0.0 + + + shadow + + Draws + NO + + + + + Class + LineGraphic + FontInfo + + Font + Monaco + Size + 11 + + ID + 2977 + Points + + {248.96466394042966, 258.18706677246098} + {256.05066394042967, 265.27406677246097} + {248.96466394042966, 272.36106677246102} + + Style + + stroke + + HeadArrow + 0 + Legacy + + TailArrow + 0 + + + + + ID + 2975 + + + ID + 2973 + + + Class + Group + Graphics + + + Bounds + {{141.7834170074463, 157.59055737304686}, {96, 15}} + Class + ShapedGraphic + FitText + YES + Flow + Resize + FontInfo + + Font + Monaco + Size + 11 + + ID + 2971 + Style + + fill + + Draws + NO + + shadow + + Draws + NO + + stroke + + Draws + NO + + + Text + + Align + 0 + Text + {\rtf1\ansi\ansicpg1252\cocoartf1404\cocoasubrtf470 +{\fonttbl\f0\fnil\fcharset0 Monaco;} +{\colortbl;\red255\green255\blue255;} +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\partightenfactor0 + +\f0\fs22 \cf0 connectServer} + VerticalPad + 0.0 + + Wrap + NO + + + Class + LineGraphic + FontInfo + + Font + Monaco + Size + 11 + + ID + 2972 + Points + + {242.92166394042968, 160.42497438049315} + {250.0086639404297, 167.51197438049311} + {242.92166394042968, 174.59897438049313} + + Style + + stroke + + HeadArrow + 0 + Legacy + + TailArrow + 0 + + + + + ID + 2970 + + + Class + LineGraphic + FontInfo + + Font + Monaco + Size + 11 + + Head + + ID + 3478 + Info + 1 + + ID + 3479 + Points + + {668.97639656066895, 222.5200768585205} + {765.55379271698007, 222.52007685852053} + + Style + + stroke + + HeadArrow + 0 + Legacy + + TailArrow + 0 + + + Tail + + ID + 3338 + Info + 1 + + + + Bounds + {{249.44882583618164, 51.023623466491699}, {510.23623466491699, 274.96062660217285}} + Class + ShapedGraphic + ID + 3480 + Style + + shadow + + Draws + NO + + stroke + + CornerRadius + 7 + Pattern + 1 + + + + + GridInfo + + GridSpacing + 5.6692914962768555 + MajorGridSpacing + 5 + ShowsGrid + YES + SnapsToGrid + YES + + GuidesLocked + NO + GuidesVisible + YES + HPages + 3 + ImageCounter + 1 + KeepToScale + + Layers + + + Lock + NO + Name + Calque 1 + Print + YES + View + YES + + + LayoutInfo + + Animate + NO + circoMinDist + 18 + dotRankSep + 0.49999998957674863 + layoutEngine + dot + neatoLineLength + 0.20000000298023224 + + LinksVisible + NO + MagnetsVisible + NO + MasterSheets + + ModificationDate + 2018-03-17 08:42:24 +0000 + Modifier + pehladik + NotesVisible + NO + Orientation + 2 + OriginVisible + NO + OutlineStyle + Basic + PageBreaks + YES + PrintInfo + + NSBottomMargin + + float + 12.2457 + + NSHorizonalPagination + + coded + BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG + + NSLeftMargin + + float + 12.2457 + + NSPaperSize + + size + {595.27554607391357, 841.8897705078125} + + NSPrintReverseOrientation + + coded + BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG + + NSRightMargin + + float + 12.2457 + + NSTopMargin + + float + 12.2457 + + + PrintOnePage + + ReadOnly + NO + RowAlign + 1 + RowSpacing + 36 + SheetTitle + Canevas 1 + SmartAlignmentGuidesActive + YES + SmartDistanceGuidesActive + YES + UniqueID + 1 + UseEntirePage + + VPages + 2 + WindowInfo + + CurrentSheet + 0 + Expanded_Canvases + + Frame + {{-577, 1437}, {1252, 742}} + ShowInfo + + Sidebar + + SidebarWidth + 0 + TopSlabHeight + 250 + VisibleRegion + {{141, 0}, {955, 632}} + Zoom + 1 + ZoomValues + + + Canevas 1 + 1 + 1 + + + + + diff --git a/doc/sujets/tex/rapport_etudiant/rapport_etudiant.tex b/doc/sujets/tex/rapport_etudiant/rapport_etudiant.tex new file mode 100644 index 0000000..ac8fc14 --- /dev/null +++ b/doc/sujets/tex/rapport_etudiant/rapport_etudiant.tex @@ -0,0 +1,512 @@ +% Description du contenu du rapport à rendre pour l'UF temps réel en 4AE et 4IR +% Auteur : P.-E. Hladik +% Institut : INSA de Toulouse + +\documentclass[11pt, a4paper]{paper} +\usepackage{a4wide,color} + +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage[frenchb]{babel} + +\usepackage{graphicx} +\usepackage{amssymb} +\usepackage{hyperref} + +\usepackage{amstext} +\usepackage{amsmath} + +\usepackage[dvipsnames]{xcolor} + +\usepackage{placeins} + +\newcounter{cptreq} + + +\usepackage{framed} + + +\title{{\Huge Rapport de projet De Stijl 2.0}\\ +{\large version \today}\\ +---\\ +} +\author{\color{blue}{Mettez ici vos noms et les parties sur lesquelles vous avez travaillées :}\\ +\color{blue}{conception, robot, vidéo, mission, intégration, rédaction du compte-rendu}\\ +\color{blue}{Exemple : P.-E. Hladik (conception, robot, rédaction du compte-rendu)} +} + +\begin{document} + +%%%%%%%%%%%%%% +% PAGE DE GARDE +\maketitle + + +{\color{red} +\begin{framed} +\begin{center}{\bf\Large --- Ce qu'il faut faire --- } \end{center} + +{\bf Remplacez tous les textes en bleu et supprimer les textes en rouge}\\ + + +{\bf Le rapport est à rendre en pdf et à déposer sur moodle avant le 31 mars 2019 23h59: +\url{https://moodle.insa-toulouse.fr/mod/assign/view.php?id=33071}}\\ + +{\bf Vous devez \underline{aussi} rendre les fichiers {\tt tasks.h} et {\tt tasks.cpp}.}\\ + +Vous pouvez utiliser word ou un autre logiciel d'édition pour rédiger ce rapport, par contre vous devez {\bf impérativement respecter la structure ci-après et le rendre au format pdf}.\\ + + +Critères d'évaluation : +\begin{itemize} + \item Qualité rédactionnelle, + \item Exhaustivité et justesse des règles de codage, + \item Qualité de la conception (clarté, respect de la syntaxe, exhaustivité, justesse), + \item Qualité des explications, + \item Respect des règles dans la production du code.\\ +\end{itemize} + +Compétences évaluées : +\begin{itemize} + \item rédaction et communication sur un dossier de conception, + \item concevoir une application concurrente temps réel, + \item analyser une conception, + \item passer d'un modèle de conception à une implémentation, + \item écriture de code et utilisation de primitives au niveau système. +\end{itemize} +\end{framed} +} + +%%%%%%%%%%%%%% +% DEBUT DU RAPPORT +\newpage + + + + +%%%%%%%%%%%%%% +% CONCEPTION +\section{Conception} + +{\color{red} Mettez dans cette partie tous les éléments de votre conception en particulier vos diagrammes AADL (vue globale du système) et les diagrammes d'activité (détails des threads). Cette partie doit être auto-suffisante pour comprendre votre application. + +Pour faciliter la lecture des schémas, vous allez présenter votre conception en trois parties, l'une focalisée sur la communication entre le moniteur et le superviseur, la seconde consacrée au traitement vidéo et la troisième au contrôle du robot. + +Si vous le souhaitez, au lieu de dessiner vos diagrammes sous un éditeur, vous pouvez joindre un scan de vos schémas — ils doivent être lisibles et propres.} + +% VUE GENERAL DU SYSTEME +\subsection{Diagramme fonctionnel général} + +{\color{red} Mettez ici un diagramme fonctionnel qui présente les principaux blocs de votre conception. Pour cela, inspirez vous du diagramme ci-dessous (fig.~\ref{fig:diag_fonc_gen}) en indiquant pour chaque groupe de threads les données et ports partagés. La figure~\ref{fig:diag_fonc_gen} a été réalisée à partir du document de conception. {\bf Vous devez absolument conserver le découpage en trois groupes de threads ({\tt th\_group\_gestion\_moniteur}, {\tt th\_group\_vision}, {\tt th\_group\_gestion\_robot}).}} + +\begin{figure}[htbp] +\begin{center} +{\includegraphics[scale=.5]{./figures-pdf/diag_fonc_gen}} +{\caption{Diagramme fonctionnel du système}} +\end{center} +\label{fig:diag_fonc_gen} +\end{figure} +\FloatBarrier + +% DIAGRAMME FONCTIONNEL GT MONITEUR +\subsection{Groupe de threads gestion du moniteur} + +{\color{red}Placez ici : +\begin{itemize} +\item le diagramme fonctionnel en AADL décrivant le groupe de threads de gestion du moniteur (voir exemple de la figure~\ref{fig:diag_fonc_moniteur} réalisée à partir du dossier de conception), +\item remplir le tableau~\ref{tab:gt_moniteur} pour expliquer le rôle de chacun des threads, +\item les diagrammes d'activité de chaque thread de ce groupe. +\end{itemize} + +Décrivez tous les éléments (paramètres, variables, etc.) qui vous semblent pertinents pour comprendre les diagrammes.} + +% DIAGRAMME FONCTIONNEL GT MONITEUR +\subsubsection{Diagramme fonctionnel du groupe gestion du moniteur} + +{\color{red} Exemple de diagramme fonctionnel pour le groupe de thread de gestion du moniteur. Mettez à jour ce diagramme avec votre conception.} + +\begin{figure}[htbp] +\label{fig:diag_fonc_moniteur} +\begin{center} +{\includegraphics[scale=.5]{./figures-pdf/diag_fonc_moniteur}} +{\caption{Diagramme fonctionnel du groupe de threads gestion du moniteur}} +\end{center} +\end{figure} +\FloatBarrier + +% DESCRIPTION THREADS GT MONITEUR +\subsubsection{Description des threads du groupe gestion du moniteur} +{\color{red} Remplissez le tableau ci-dessous pour expliquer le rôle de chaque thread et donner son niveau de priorité.} + + +\begin{table}[htp] +\caption{Description des threads du groupe {\tt th\_group\_gestion\_moniteur}} +\begin{center} +\begin{tabular}{|p{3cm}|p{8.5cm}|p{2cm}|} +\hline +\bf Nom du thread & \bf Rôle & \bf Priorité \\ +\hline +\hline +\color{blue}tCommuniquer & \color{blue}Prend en charge les messages entrants depuis le moniteur & \color{blue}25\\ +\hline +\color{blue}tEnvoyer & \color{blue}Envoi l'ensemble des messages du superviseur au moniteur & \color{blue}30\\ +\hline +\color{blue}... & \color{blue}... & \color{blue}...\\ +\hline +\end{tabular} +\end{center} +\label{tab:gt_moniteur} +\end{table}% + +% DIAGRAMMES D'ACTIVITE GT MONITEUR +\subsubsection{Diagrammes d'activité du groupe gestion du moniteur} +{\color{red}Décrivez le comportement de chacun de vos threads avec des diagrammes d'activité. Apportez les explications qui vous semblent nécessaires pour comprendre votre conception. A titre d'exemple les diagrammes fonctionnels tirés du document de conception sont remis.} + +\begin{figure}[htbp] +\label{fig:act_communiquer} +\begin{center} +{\includegraphics[scale=.3]{./figures-pdf/th_receiveFromMon.png}} +{\caption{Diagramme d'activité du thread {\tt th\_receiveFromMon}}} +\end{center} +\end{figure} + + +\begin{figure}[htbp] +\label{fig:act_envoyer} +\begin{center} +{\includegraphics[scale=.3]{./figures-pdf/th_sendToMon}} +{\caption{Diagramme d'activité du thread {\tt th\_sendToMon}}} +\end{center} +\end{figure} + + +\begin{figure}[htbp] +\label{fig:act_envoyer} +\begin{center} +{\includegraphics[scale=.3]{./figures-pdf/th_server}} +{\caption{Diagramme d'activité du thread {\tt th\_server}}} +\end{center} +\end{figure} +\FloatBarrier + +% DIAGRAMME FONCTIONNEL GT VISION +\subsection{Groupe de threads vision} + +% DIAGRAMME FONCTIONNEL GT VISION +\subsubsection{Diagramme fonctionnel du groupe vision} + +{\color{blue} Ajoutez le diagramme fonctionnel du groupe de threads de vision.} + +% DESCRIPTION THREADS GT VISION +\subsubsection{Description des threads du groupe vision} +{\color{red} Remplissez le tableau ci-dessous pour expliquer le rôle de chaque thread et donner son niveau de priorité.} + + +\begin{table}[htp] +\caption{Description des threads du groupe {\tt th\_group\_vision}} +\begin{center} +\begin{tabular}{|p{3cm}|p{8.5cm}|p{2cm}|} +\hline +\bf Nom du thread & \bf Rôle & \bf Priorité \\ +\hline +\hline +\color{blue}... & \color{blue}... & \color{blue}...\\ +\hline +\end{tabular} +\end{center} +\label{tab:gt_moniteur} +\end{table}% +\FloatBarrier + +% DIAGRAMMES D'ACTIVITE GT VISION +\subsubsection{Diagrammes d'activité du groupe vision} +{\color{blue}Décrivez le comportement de chacun de vos threads avec des diagrammes d'activité. Apportez les explications qui vous semblent nécessaires pour comprendre votre conception.} + + +% DIAGRAMME FONCTIONNEL GT ROBOT +\subsection{Groupe de threads gestion du robot} + +% DIAGRAMME FONCTIONNEL GT ROBOT +\subsubsection{Diagramme fonctionnel du groupe gestion robot} +{\color{blue} Ajoutez le diagramme fonctionnel du groupe de threads de gestion du robot.} + +% DESCRIPTION THREADS GT ROBOT +\subsubsection{Description des threads du groupe gestion robot} +{\color{red} Remplissez le tableau ci-dessous pour expliquer le rôle de chaque thread et donner son niveau de priorité.} + + +\begin{table}[htp] +\caption{Description des threads du groupe {\tt th\_group\_gestion\_robot}} +\begin{center} +\begin{tabular}{|p{3cm}|p{8.5cm}|p{2cm}|} +\hline +\bf Nom du thread & \bf Rôle & \bf Priorité \\ +\hline +\hline +\color{blue}... & \color{blue}... & \color{blue}...\\ +\hline +\end{tabular} +\end{center} +\label{tab:gt_moniteur} +\end{table}% +\FloatBarrier + +% DIAGRAMMES D'ACTIVITE GT ROBOT +\subsubsection{Diagrammes d'activité du groupe robot} +{\color{blue}Décrivez le comportement de chacun de vos threads avec des diagrammes d'activité. Apportez les explications qui vous semblent nécessaires pour comprendre votre conception.} + + +%%%%%%%%%%%%%%% +% ANALYSE ET VALIDATION +\section{Analyse et validation de la conception} + +{\color{red}Pour chacune des fonctionnalités attendues, indiquez si elle a été réalisée. Ajoutez d'éventuelles remarques de conception si le fonctionnement n'est pas exactement celui attendu et justifiez le respect des propriétés temporelles. Vous n'êtes pas obligé de répondre à ces éléments pour les fonctionnalités réalisées dans la conception préliminaire (ces fonctionnalités sont indiquées dans la suite par un astérisque). Si vous ne souhaitez pas apporter de détails supplémentaires pour ces fonctionnalités, supprimez les de la liste ci-dessous.} + +{\color{gray} +\stepcounter{cptreq} +\subsection{Fonctionnalité \thecptreq *} + +\paragraph{Description :} Le lancement du serveur doit être réalisé au démarrage du superviseur. En cas d'échec du démarrage du serveur, un message textuel doit être affiché sur la console de lancement de l'application. Ce message doit signaler le problème et le superviseur doit s'arrêter. + +\paragraph{\color{black}Réalisation :} {\color{blue} Fait en partie. La fonctionnalité est impléméntée sauf pour l'arrêt suite à l'échec de démarrage du serveur. L'implémentation actuelle stoppe la tâche en charge du démarrage du serveur, mais pas l'ensemble de l'application. Après discussion avec le client, la version actuelle est suffisante.} +} +%%% +{\color{gray} +\stepcounter{cptreq} +\subsection{Fonctionnalité \thecptreq *} + +\paragraph{Description :} La connexion entre le moniteur et le superviseur (via le socket) doit être établie suite à la demande de connexion de l'utilisateur. + +\paragraph{\color{black}Réalisation :} {\color{red} indiquez si la fonctionnalité est traitée et s'il y a des remarques particulières.} +} + +%%% +{\color{gray} +\stepcounter{cptreq} +\subsection{Fonctionnalité \thecptreq *} + +\paragraph{Description :} Tous les messages envoyés depuis le moniteur doivent être réceptionnés par le superviseur. + +\paragraph{\color{black}Réalisation :} {\color{red} indiquez si la fonctionnalité est traitée et s'il y a des remarques particulières.} +%%% +\stepcounter{cptreq} +\subsection{Fonctionnalité \thecptreq *} + +\paragraph{Description :} L'application superviseur doit être capable d'envoyer les messages au moniteur (via le serveur) avec un délai d'au plus 10~ms. + +\paragraph{\color{black}Réalisation :} {\color{red} indiquez si la fonctionnalité est traitée et s'il y a des remarques particulières.} +} +%%% +\stepcounter{cptreq} +\subsection{Fonctionnalité \thecptreq} + +\paragraph{Description :} Le superviseur doit détecter la perte de communication avec le moniteur. En cas de perte de la communication un message doit être affiché sur la console de lancement du superviseur. + +\paragraph{\color{black}Réalisation :} {\color{red} indiquez si la fonctionnalité est traitée et s'il y a des remarques particulières.} +%%% +\stepcounter{cptreq} +\subsection{Fonctionnalité \thecptreq} + +\paragraph{Description :} En cas de perte de communication entre le superviseur et moniteur, il faut stopper le robot, la communication avec le robot, fermer le serveur et déconnecter la caméra afin de revenir dans le même état qu'au démarrage du superviseur. + +\paragraph{\color{black}Réalisation :} {\color{red} indiquez si la fonctionnalité est traitée et s'il y a des remarques particulières.} +%%% +{\color{gray} +\stepcounter{cptreq} +\subsection{Fonctionnalité \thecptreq *} + +\paragraph{Description :} Dès que la communication avec le moniteur est en place, la communication entre le superviseur et le robot doit être ouverte. Si la communication est active, il faut envoyer un message d'acquittement au moniteur. En cas d'échec, un message le signalant est renvoyé au moniteur. + +\paragraph{\color{black}Réalisation :} {\color{red} indiquez si la fonctionnalité est traitée et s'il y a des remarques particulières.} +} +%%% +\stepcounter{cptreq} +\subsection{Fonctionnalité \thecptreq} + +\paragraph{Description :} La communication entre le robot et le superviseur doit être surveillée par un mécanisme de compteur afin de détecter une perte du médium de communication. + +\paragraph{\color{black}Réalisation :} {\color{red} indiquez si la fonctionnalité est traitée et s'il y a des remarques particulières.} + +%%% +\stepcounter{cptreq} +\subsection{Fonctionnalité \thecptreq} + +\paragraph{Description :} Lorsque la communication entre le robot et le superviseur est perdue, un message spécifique doit être envoyé au moniteur. Le système doit fermer la communication entre le robot et le superviseur et se remettre dans un état initial permettant de relancer la communication. + +\paragraph{\color{black}Réalisation :} {\color{red} indiquez si la fonctionnalité est traitée et s'il y a des remarques particulières.} + +%%% +{\color{gray} +\stepcounter{cptreq} +\subsection{Fonctionnalité \thecptreq *} + +\paragraph{Description :} Lorsque l'utilisateur demande, via le moniteur, le démarrage sans watchdog, le robot doit démarrer dans ce mode. En cas de succès, un message d'acquittement est retourné au moniteur. En cas d'échec, un message indiquant l'échec est transmis au moniteur. + +\paragraph{\color{black}Réalisation :} {\color{red} indiquez si la fonctionnalité est traitée et s'il y a des remarques particulières.} +} +%%% +\stepcounter{cptreq} +\subsection{Fonctionnalité \thecptreq} + +\paragraph{Description :} Lorsque l'utilisateur demande, via le moniteur, le démarrage avec watchdog, le robot doit démarrer dans ce mode. Un message d'acquittement est retourné au moniteur. En cas d'échec, un message indiquant l'échec est transmis au moniteur. + +Une fois le démarrage effectué, le robot doit rester vivant en envoyant régulièrement le message de rechargement du watchdog. + +\paragraph{\color{black}Réalisation :} {\color{red} indiquez si la fonctionnalité est traitée et s'il y a des remarques particulières.} + +%%% +{\color{gray} +\stepcounter{cptreq} +\subsection{Fonctionnalité \thecptreq *} + +\paragraph{Description :} Lorsque qu'un ordre de mouvement est reçu par le superviseur, le robot doit réaliser ce déplacement en moins de 100~ms. + +\paragraph{\color{black}Réalisation :} {\color{blue} Cette fonctionnalité a été implémentée à l'aide d'une tâche qui envoie toutes les 100~ms un ordre de mouvement au robot une fois que celui-ci est démarré (tâche th\_move). Cette implémentation ne garantit pas que le temps soit inférieur à 100~ms entre la réception du message et sa prise en compte par le robot. En effet, le temps de traitement de la réception par la tâche th\_receiveFromMon, le temps de traitement de la tâche th\_move et celui de l'envoi de l'ordre via le Xbee ne sont pas considérés. Afin de réduire ces délais, les priorités de th\_receiveFromMon et de th\_move sont élevés mais ne permettent pas de garantir l'exigence de temps. Augmenter la fréquence de la tâche th\_move permettrait de tenir cette contrainte, mais risque de surcharger la communication avec le robot (une version avec l'envoi de l'ordre que s'il a changé serait souhaitable). Finalement, une version asynchrone (attente d'un événement-donnée entre th\_receiveFromMon et de th\_move) aurait été préférable. Cependant, après discussion avec le client, la version périodique à 100~ms est cependant validée.} +} +%%% +\stepcounter{cptreq} +\subsection{Fonctionnalité \thecptreq} + +\paragraph{Description :} Le niveau de la batterie du robot doit être mis à jour toutes les 500~ms sur le moniteur. + +\paragraph{\color{black}Réalisation :} {\color{red} indiquez si la fonctionnalité est traitée et s'il y a des remarques particulières.} +%%% +\stepcounter{cptreq} +\subsection{Fonctionnalité \thecptreq} + +\paragraph{Description :} La caméra doit être démarrée suite à une demande provenant du moniteur. Si l'ouverture de la caméra a échoué, il faut envoyer un message au moniteur. + +\paragraph{\color{black}Réalisation :} {\color{red} indiquez si la fonctionnalité est traitée et s'il y a des remarques particulières.} +%%% +\stepcounter{cptreq} +\subsection{Fonctionnalité \thecptreq} + +\paragraph{Description :} Dès que la caméra est ouverte, une image doit être envoyée au moniteur toutes les 100 ms. + +\paragraph{\color{black}Réalisation :} {\color{red} indiquez si la fonctionnalité est traitée et s'il y a des remarques particulières.} +%%% +\stepcounter{cptreq} +\subsection{Fonctionnalité \thecptreq} + +\paragraph{Description :} La caméra doit être fermée suite à une demande provenant du moniteur. Un message doit être envoyé au moniteur pour signifier l'acquittement de la demande. L'envoi périodique des images doit alors être stoppé. + +\paragraph{\color{black}Réalisation :} {\color{red} indiquez si la fonctionnalité est traitée et s'il y a des remarques particulières.} +%%% +\stepcounter{cptreq} +\subsection{Fonctionnalité \thecptreq} + +\paragraph{Description :} Suite à une demande de recherche de l'arène, le superviseur doit stopper l'envoi périodique des images, faire la recherche de l'arène et renvoyer une image sur laquelle est dessinée cette arène. Si aucune arène n'est trouvée un message d'échec est envoyé.\\ + +L'utilisateur doit ensuite valider visuellement via le moniteur si l'arène a bien été trouvée. L'utilisateur peut : +\begin{itemize} + \item valider l'arène : dans ce cas, le superviseur doit sauvegarder l'arène trouvée (pour l'utiliser ultérieurement) puis retourner dans son mode d'envoi périodique des images en ajoutant à l'image l'arène dessinée. + \item annuler la recherche : dans ce cas, le superviseur doit simplement retourner dans son mode d'envoi périodique des images et invalider la recherche. +\end{itemize} + +\paragraph{\color{black}Réalisation :} {\color{red} indiquez si la fonctionnalité est traitée et s'il y a des remarques particulières.} +%%% +\stepcounter{cptreq} +\subsection{Fonctionnalité \thecptreq} + +\paragraph{Description :} Suite à une demande de l'utilisateur de calculer la position du robot, le superviseur doit calculer cette position, dessiner sur l'image le résultat et envoyer un message au moniteur avec la position toutes les 100~ms. Si le robot n'a pas été trouvé, un message de position est envoyé avec une position (-1,-1). + +\paragraph{\color{black}Réalisation :} {\color{red} indiquez si la fonctionnalité est traitée et s'il y a des remarques particulières.} +\stepcounter{cptreq} +\subsection{Fonctionnalité \thecptreq} + +\paragraph{Description :} Suite à une demande de l'utilisateur de stopper le calcul de la position du robot, le superviseur doit rebasculer dans un mode d'envoi de l'image sans le calcul de la position. + +\paragraph{\color{black}Réalisation :} {\color{red} indiquez si la fonctionnalité est traitée et s'il y a des remarques particulières.} + + +%%%%%%%%%%%%%%%%%%% +% TRANSFORMATION AADL2XENO +\section{Transformation AADL vers Xenomai} + + {\color{red} Cette section est consacrée à la méthode pour passer d'un modèle AADL à un code sous Xenomai. Pour chacun des éléments AADL, vous expliquerez {\bf comment vous l'avez traduit en code} et quels {\bf services de Xenomai} vous avez utilisés {\bf en expliquant ce qu'ils font}. Chaque élément devra être illustré avec des {\bf extraits de code de votre projet}.} + + % THREAD +\subsection{Thread} +% INSTANCIATION THREAD +\subsubsection{Instanciation et démarrage} + {\color{blue} Expliquer comment vous implémentez sous Xenomai l'instanciation et le démarrage d'un thread AADL.} + + {\color{blue} {\bf Exemple de réponse} : Chaque thread a été implémenté par un {\tt RT\_TASK} déclarés dans le fichier {\tt tasks.h}. La création de la tâche se fait à l'aide du service {\tt rt\_task\_create} et son démarrage à l'aide de {\tt rt\_task\_start}. Toutes les tâches sont crées dans la méthode {\tt init} de {\tt tasks.cpp} et démarrées dans la méthode {\tt run}. + +Par exemple, pour la tâche {\tt th\_server}, sa déclaration est faite ligne 73 dans le fichier {\tt tasks.h} +\begin{verbatim} + RT_TASK th_server; +\end{verbatim} +sa création ligne 102 de {\tt tasks.cpp} lors de l'appel de +\begin{verbatim} + rt_task_create(&th_server, "th_server", 0, PRIORITY_TSERVER, 0) +\end{verbatim} +et son démarrage ligne 146 avec +\begin{verbatim} + rt_task_start(&th_server, (void(*)(void*)) & Tasks::ServerTask, this) +\end{verbatim} +} + +% CODE THREAD +\subsubsection{Code à exécuter} + {\color{blue} Comment se fait le lien sous Xenomai entre le thread et le traitement à exécuter.} + +% PRIORITE THREAD +\subsubsection{Niveau de priorités} + {\color{blue} Expliquer comment vous fixez sous Xenomai le niveau de priorité d'un thread AADL.} + +% PERIODICITE THREAD +\subsubsection{Activation périodique} + {\color{blue} Expliquer comment vous rendez périodique l'activation d'un thread AADL sous Xenomai.} + +% THREAD EVENEMENTIEL +\subsubsection{Activation événementielle} + {\color{blue} Expliquer les moyens mis en {\oe}uvre dans l'implémentation sous Xenomai pour gérer les activations événementielles d'un thread AADL.} + + + % PORT D'EVENEMENT +\subsection{Port d’événement} + +% INSTANCIATION PORT D'EVENEMENT +\subsubsection{Instanciation} + {\color{blue} Comment avez-vous instancié un port d'événement ?}\\ + + % ENVOI PORT D'EVENEMENT +\subsubsection{Envoi d’un événement} + {\color{blue} Quels services ont été employés pour signaler un événement ?} + +% RECEPTION PORT D'EVENEMENT +\subsubsection{Réception d’un événement} + {\color{blue} Comment se fait l'attente d'un événement ?} + +% DONNEE PARTAGEE +\subsection{Donnée partagée} + +% INSTANCIATION DONNEE PARTAGEE +\subsubsection{Instanciation} + {\color{blue} Quelle structure instancie une donnée partagée ?} + +% LECTURE/ECRITURE DONNEE PARTAGEE +\subsubsection{Accès en lecture et écriture} + {\color{blue} Comment garantissez-vous sous Xenomai l'accès à une donnée partagée ?} + +% PORT D'EVENEMENT-DONNEES +\subsection{Ports d’événement-données} + +% INSTANCIATION PORT D'EVENEMENT-DONNEES +\subsubsection{Instanciation} + {\color{blue} Donnez la solution retenue pour implémenter un port d'événement-données avec Xenomai.} + +% ENVOI PORT D'EVENEMENT-DONNEES +\subsubsection{Envoi d’une donnée} + {\color{blue} Quels services avez-vous employés pour envoyer des données ?} + +% RECEPTION PORT D'EVENEMENT-DONNEES +\subsubsection{Réception d’une donnée} + {\color{blue} Quels services avez-vous employés pour recevoir des données ?} + + + + + +\end{document} \ No newline at end of file