{VERSION 5 0 "IBM INTEL NT" "5.0" } {USTYLETAB {CSTYLE "Maple Input" -1 0 "Courier" 0 1 255 0 0 1 0 1 0 0 1 0 0 0 0 1 }{CSTYLE "2D Math" -1 2 "Times" 0 1 0 0 0 0 0 0 2 0 0 0 0 0 0 1 }{CSTYLE "2D Output" 2 20 "" 0 1 0 0 255 1 0 0 0 0 0 0 0 0 0 1 } {PSTYLE "Normal" -1 0 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Warning" -1 7 1 {CSTYLE "" -1 -1 "Courier" 1 10 0 0 255 1 2 2 2 2 2 1 1 1 3 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Maple Output" -1 11 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }3 3 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Maple Output" -1 12 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 3 0 0 0 0 1 0 1 0 2 2 0 1 }} {SECT 0 {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "with(linalg):" }} {PARA 7 "" 1 "" {TEXT -1 80 "Warning, the protected names norm and tra ce have been redefined and unprotected\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 213 "H:=proc(m) local i,j,q,l,r,u,liste:\nfor i from 1 to 2^m-1 do q:=i: l:=[]:\n for j from 1 to m do r[j]:=irem(q,2,'q'): l :=[op(l),r[j]] od:\n u[i]:=l: od:\nliste:=seq(u[i],i=1..2^m-1):\nmat rix(2^m-1,m,[liste]): end;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%\"HGf* 6#%\"mG6)%\"iG%\"jG%\"qG%\"lG%\"rG%\"uG%&listeG6\"F0C%?(8$\"\"\"F4,&) \"\"#9$F4F4!\"\"%%trueGC&>8&F3>8'7\"?(8%F4F4F8F:C$>&8(6#FB-%%iremG6%F= F7.F=>F?7$-%#opG6#F?FE>&8)6#F3F?>8*-%$seqG6$FR/F3;F4F5-%'matrixG6%F5F8 7#FVF0F0F0" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 5 "H(3);" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#-%'matrixG6#7)7%\"\"\"\"\"!F)7%F)F(F)7 %F(F(F)7%F)F)F(7%F(F)F(7%F)F(F(7%F(F(F(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 61 "red:=X->map(x->modp(x,2),X):\nmult:=(A,B)->red(multip ly(A,B));" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%%multGf*6$%\"AG%\"BG6\" 6$%)operatorG%&arrowGF)-%$redG6#-%)multiplyG6$9$9%F)F)F)" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 348 "inv:=proc(m,i,j) local n,A,l1,l2,l iste,k,p:\nn:=2^m-1: l1:=[]: l2:=[]:\nfor k from 1 to n do l1:=[op(l1) ,0]:\n if k=i or k=j then l2:=[op(l2),1] else l2:=[op(l2),0] fi: od: liste:=[]:\nfor p from 1 to n do if p=i or p=j then liste:=[op(liste) ,l2] else liste:=[op(liste),l1]: fi: od:\nA:=red(evalm(array(identity, 1..n,1..n)+convert(liste,array))): end;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%$invGf*6%%\"mG%\"iG%\"jG6)%\"nG%\"AG%#l1G%#l2G%&listeG%\"kG%\" pG6\"F2C)>8$,&)\"\"#9$\"\"\"F:!\"\">8&7\">8'F>?(8)F:F:F5%%trueGC$>F=7$ -%#opG6#F=\"\"!@%5/FB9%/FB9&>F@7$-FH6#F@F:>F@7$FSFJ>8(F>?(8*F:F:F5FC@% 5/FZFN/FZFP>FX7$-FH6#FXF@>FX7$F[oF=>8%-%$redG6#-%&evalmG6#,&-%&arrayG6 %%)identityG;F:F5F\\pF:-%(convertG6$FXFioF:F2F2F2" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 12 "inv(4,1,12);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#-%'matrixG6#7171\"\"!F(F(F(F(F(F(F(F(F(F(\"\"\"F(F(F(71F(F)F(F(F (F(F(F(F(F(F(F(F(F(F(71F(F(F)F(F(F(F(F(F(F(F(F(F(F(F(71F(F(F(F)F(F(F(F (F(F(F(F(F(F(F(71F(F(F(F(F)F(F(F(F(F(F(F(F(F(F(71F(F(F(F(F(F)F(F(F(F(F (F(F(F(F(71F(F(F(F(F(F(F)F(F(F(F(F(F(F(F(71F(F(F(F(F(F(F(F)F(F(F(F(F(F (F(71F(F(F(F(F(F(F(F(F)F(F(F(F(F(F(71F(F(F(F(F(F(F(F(F(F)F(F(F(F(F(71F (F(F(F(F(F(F(F(F(F(F)F(F(F(F(71F)F(F(F(F(F(F(F(F(F(F(F(F(F(F(71F(F(F(F (F(F(F(F(F(F(F(F(F)F(F(71F(F(F(F(F(F(F(F(F(F(F(F(F(F)F(71F(F(F(F(F(F(F (F(F(F(F(F(F(F(F)" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 5 "H(4);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#-%'matrixG6#717&\"\"\"\"\"!F)F)7&F)F (F)F)7&F(F(F)F)7&F)F)F(F)7&F(F)F(F)7&F)F(F(F)7&F(F(F(F)7&F)F)F)F(7&F(F )F)F(7&F)F(F)F(7&F(F(F)F(7&F)F)F(F(7&F(F)F(F(7&F)F(F(F(7&F(F(F(F(" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 137 "H1:=proc(m) local i,j,A:\nA :=H(m):\nfor i from 2 to m-1 do\n for j from 2^i to i+2 by -1 do A:= mult(inv(m,j-1,j),A) od: od:\nevalm(A): end;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%#H1Gf*6#%\"mG6%%\"iG%\"jG%\"AG6\"F,C%>8&-%\"HG6#9$?(8 $\"\"#\"\"\",&F3F7F7!\"\"%%trueG?(8%)F6F5F9,&F5F7F6F7F:>F/-%%multG6$-% $invG6%F3,&F " 0 " " {MPLTEXT 1 0 6 "H1(3);" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 11 " " 1 "" {XPPMATH 20 "6#-%'matrixG6#7)7%\"\"\"\"\"!F)7%F)F(F)7%F)F)F(7%F (F(F)7%F(F)F(7%F)F(F(7%F(F(F(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }{TEXT -1 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 113 "La matri ce G est la matrice g\351n\351ratrice du code, pour coder un mot on mu ltiplie ce dernier par la transpos\351 de G." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 149 "rho:=i->op(convert(subvector(H1(4),1..15,i),lis t)):\nG:=transpose(matrix(5,16,[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,rho( 1),0,rho(2),0,rho(3),0,rho(4)]));" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#> %\"GG-%'matrixG6#727'\"\"\"\"\"!F+F+F+7'F*F*F+F+F+7'F*F+F*F+F+7'F*F+F+ F*F+7'F*F+F+F+F*7'F*F*F*F+F+7'F*F*F+F*F+7'F*F+F*F*F+7'F*F*F*F*F+7'F*F* F+F+F*7'F*F+F*F+F*7'F*F*F*F+F*7'F*F+F+F*F*7'F*F*F+F*F*7'F*F+F*F*F*7'F* F*F*F*F*" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 37 "encod:=(mot)->m ult(mot,transpose(G));" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%&encodGf*6 #%$motG6\"6$%)operatorG%&arrowGF(-%%multG6$9$-%*transposeG6#%\"GGF(F(F (" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 49 "r:=transpose(convert(r ed(randvector(5)),matrix));" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"rG- %'matrixG6#7#7'\"\"!\"\"\"F+F*F+" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "r_encode:=encod(r);" }}{PARA 11 "" 1 "" {XPPMATH 20 " 6#>%)r_encodeG-%'matrixG6#7#72\"\"!\"\"\"F+F*F+F*F+F+F*F*F*F+F+F*F*F+ " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 225 "c:=proc() local j,i,u,l:\nl:=[]:\nfor u from \+ 2 to 5 do\n for i from u+1 to 5 do for j from 1 to 16 do \+ l:=[op(l),op(convert(subvector(G,j..j,u),list))*op(convert(subvect or(G,j..j,i),list))] od:\n od: od: l; end;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%\"cGf*6\"6&%\"jG%\"iG%\"uG%\"lGF&F&C%>8'7\"?(8&\"\"# \"\"\"\"\"&%%trueG?(8%,&F1F3F3F3F3F4F5?(8$F3F3\"#;F5>F.7$-%#opG6#F.*&- F?6#-%(convertG6$-%*subvectorG6%%\"GG;F:F:F1%%listGF3-F?6#-FE6$-FH6%FJ FKF7FLF3F.F&F&F&" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 47 "khi:=i- >op(convert(subvector(G,1..16,i),list));" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%$khiGf*6#%\"iG6\"6$%)operatorG%&arrowGF(-%#opG6#-%(convertG6$- %*subvectorG6%%\"GG;\"\"\"\"#;9$%%listGF(F(F(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 117 "La matr ice H est la matrice de contr\364le du code, si la multiplication par \+ H est nulle, alors le mot est dans le code." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 73 "H:=transpose(matrix(11,16,[khi(1),khi(2),khi(3),kh i(4),khi(5),op(c())]));" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"HG-%'ma trixG6#727-\"\"\"\"\"!F+F+F+F+F+F+F+F+F+7-F*F*F+F+F+F+F+F+F+F+F+7-F*F+ F*F+F+F+F+F+F+F+F+7-F*F+F+F*F+F+F+F+F+F+F+7-F*F+F+F+F*F+F+F+F+F+F+7-F* F*F*F+F+F*F+F+F+F+F+7-F*F*F+F*F+F+F*F+F+F+F+7-F*F+F*F*F+F+F+F+F*F+F+7- F*F*F*F*F+F*F*F+F*F+F+7-F*F*F+F+F*F+F+F*F+F+F+7-F*F+F*F+F*F+F+F+F+F*F+ 7-F*F*F*F+F*F*F+F*F+F*F+7-F*F+F+F*F*F+F+F+F+F+F*7-F*F*F+F*F*F+F*F*F+F+ F*7-F*F+F*F*F*F+F+F+F*F*F*7-F*F*F*F*F*F*F*F*F*F*F*" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "mult(r_encode,H);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#-%'matrixG6#7#7-\"\"!F(F(F(F(F(F(F(F(F(F(" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 102 "On a v\351rifi\351 que le mot encod\351 \+ faisait bien partie du code, heureusement oui, il a \351t\351 construi t pour." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 345 "err:=proc(A) local h,haz,k,l,t:\nl [t]:=[]: haz:=rand(16):\nfor t from 1 to 3 do h(t):=haz():\n for k \+ from 1 to 16 do\n if k=h(t) then l[t]:=[op(l[t]),1] else\n \+ l[t]:=[op(l[t]),0] fi: od:\n l[t]:=transpose(convert(convert([se q(op(j,l[t]),j=2..17)],array),matrix)) od:\nprint(evalm(l[1]+l[2]+l[3] )): red(evalm(A+l[1]+l[2]+l[3])): end;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%$errGf*6#%\"AG6'%\"hG%$hazG%\"kG%\"lG%\"tG6\"F.C'>&8'6#8(7\">8 %-%%randG6#\"#;?(F4\"\"\"F=\"\"$%%trueGC%>-8$F3-F7F.?(8&F=F=F;F?@%/FFF B>F17$-%#opG6#F1F=>F17$FK\"\"!>F1-%*transposeG6#-%(convertG6$-FV6$7#-% $seqG6$-FL6$%\"jGF1/Fjn;\"\"#\"#<%&arrayG%'matrixG-%&printG6#-%&evalmG 6#,(&F26#F=F=&F26#F]oF=&F26#F>F=-%$redG6#-Feo6#,*9$F=FhoF=FjoF=F\\pF=F .F.F." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 120 "mot:=transpose(co nvert(red(randvector(5)),matrix));\nencode:=encod(mot); mult(encode,H) ; recu:=err(encode); mult(recu,H);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6# >%$motG-%'matrixG6#7#7'\"\"!\"\"\"F+F+F+" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%'encodeG-%'matrixG6#7#72\"\"!\"\"\"F+F+F+F*F*F*F+F*F*F+F*F+F+F *" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#-%'matrixG6#7#7-\"\"!F(F(F(F(F(F( F(F(F(F(" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#-%'matrixG6#7#72\"\"\"\"\" !F)F)F)F)F)F)F)F(F)F(F)F)F)F)" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%%re cuG-%'matrixG6#7#72\"\"\"F*F*F*F*\"\"!F+F+F*F*F+F+F+F*F*F+" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#-%'matrixG6#7#7-\"\"\"\"\"!F(F)F)F(F)F)F)F(F )" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 378 "Ici, petite r\351capitulati on : on g\351n\350re un \"mot\", on le code en \"encode\", on v\351rif ie qu'il appartient bien au code : la ligne nulle. On a ensuite le vec teur d'erreur, puis le mot re\347u qui est la somme binaire de l'erreu r et de \"encode\". Enfin la derni\350re ligne est la multiplication d e \"re\347u\" par la matrice de contr\364le, un r\351sultat non nul in dique qu'il y a au moins une erreur." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 268 "lister ror:=proc(n) local L,L1,M,i,j,k:\n L:=[]:\n for i from 1 to n-2 do M:= matrix(1,n,0): M[1,i]:=1:\n for j from i+1 to n-1 do M[1,j]:=1:\n for k from j+1 to n do M[1,k]:=1: L:=L,evalm(M): M[1,k]:=0 \+ od:M[1,j]:=0 od:od:L1:=[L[2..n!/((n-3)!*3!)+1]]:\nL1:end;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%*listerrorGf*6#%\"nG6(%\"LG%#L1G%\"MG%\"iG%\" jG%\"kG6\"F/C&>8$7\"?(8'\"\"\"F6,&9$F6\"\"#!\"\"%%trueGC%>8&-%'matrixG 6%F6F8\"\"!>&F>6$F6F5F6?(8(,&F5F6F6F6F6,&F8F6F6F:F;C%>&F>6$F6FGF6?(8), &FGF6F6F6F6F8F;C%>&F>6$F6FOF6>F26$F2-%&evalmG6#F>>FSFB>FLFB>8%7#&F26#; F9,&*(-%*factorialG6#F8F6-F_o6#,&F8F6\"\"$F:F:-F_o6#FdoF:F6F6F6FgnF/F/ F/" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "a:=listerror(16):" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 206 "correc:=proc(recu) local L ,B,i,j: \nL:=NULL:\nfor i from 1 to 560 do B:=mult(evalm(recu-a[i]),H) : j:=1:\n while j<=11 and B[1,j]=0 do j:=j+1: od:\n if j=12 \+ then L:=L,evalm(a[i]) fi:\nod: evalm(L): end;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%'correcGf*6#%%recuG6&%\"LG%\"BG%\"iG%\"jG6\"F-C%>8$%% NULLG?(8&\"\"\"F4\"$g&%%trueGC&>8%-%%multG6$-%&evalmG6#,&9$F4&%\"aG6#F 3!\"\"%\"HG>8'F4?(F-F4F4F-31FH\"#6/&F96$F4FH\"\"!>FH,&FHF4F4F4@$/FH\"# 7>F06$F0-F>6#FB-F>6#F0F-F-F-" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "erreurtrouve:=correc(recu);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#> %-erreurtrouveG-%'matrixG6#7#72\"\"\"\"\"!F+F+F+F+F+F+F+F*F+F*F+F+F+F+ " }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 310 "Alors ici on retrouve l'erre ur par une m\351thode tr\350s \351volu\351e : on essaie toutes les pos sibilit\351s... ! ! Ce n'est pas tr\350s long ici mais ce n'est bien \+ \351videmment une m\351thode que je conseille pour une utilisation r \351elle, il faudrait alors se pencher sur des m\351thodes d'optimisat ion ce qui n'est pas le propos ici." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 36 "vrairec u2:=evalm(recu-erreurtrouve);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%*vr airecu2G-%'matrixG6#7#72\"\"!\"\"\"F+F+F+F*F*F*F+F*F*!\"\"F*F+F+F*" }} }{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 87 "binaire:=proc(x,n)\nlocal i : for i from 1 to n do\nx[1,i]:=x[1,i] mod 2: od:evalm(x):end;" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%(binaireGf*6$%\"xG%\"nG6#%\"iG6\"F+C $?(8$\"\"\"F/9%%%trueG>&9$6$F/F.-%$modG6$F3\"\"#-%&evalmG6#F4F+F+F+" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "vrairecu:=binaire(vrairecu 2,16);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%)vrairecuG-%'matrixG6#7#72 \"\"!\"\"\"F+F+F+F*F*F*F+F*F*F+F*F+F+F*" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 83 "On fait cette manipulation dans la mesure o\371 \"vrairec u2\" peut avoir des valeurs -1." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "evalm(encode);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#-%'matrixG6#7#72\"\"!\"\"\"F)F)F)F(F (F(F)F(F(F)F(F)F)F(" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 116 "Et voila, on retrouve bien le mot cod\351 du d\351part, on a donc supprim\351 l e \"bruit\", reste simplement \340 d\351cod\351 le mot..." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 165 "decode:=proc(vrairecu) local mot,i:\nmot:=matrix(1,5 ,0): mot[1,1]:=vrairecu[1,1]:\nfor i from 2 to 5 do mot[1,i]:=vrairecu [1,i]-mot[1,1] od:\nbinaire(evalm(mot),5):end;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%'decodeGf*6#%)vrairecuG6$%$motG%\"iG6\"F+C&>8$-%'matr ixG6%\"\"\"\"\"&\"\"!>&F.6$F2F2&9$F7?(8%\"\"#F2F3%%trueG>&F.6$F2F;,&&F 9F@F2F6!\"\"-%(binaireG6$-%&evalmG6#F.F3F+F+F+" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 17 "decode(vrairecu);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#-%'matrixG6#7#7'\"\"!\"\"\"F)F)F)" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 11 "evalm(mot);" }}{PARA 11 "" 1 "" {XPPMATH 20 " 6#-%'matrixG6#7#7'\"\"!\"\"\"F)F)F)" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 110 "Et la : Ouf, soupir de soulagement : ca marche. On retouve bie n le mot d'origine ! C'est beau quand ca marche." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{MARK "0 1 0" 80 }{VIEWOPTS 1 1 0 1 1 1803 1 1 1 1 }{PAGENUMBERS 0 1 2 33 1 1 }