From 667dae6f1aeeaea14760cee99e8c4e981ad2ab2d Mon Sep 17 00:00:00 2001 From: Wamster Date: Mon, 23 Oct 2023 13:07:05 +0200 Subject: [PATCH] update --- Anglish/16102023.docx | Bin 0 -> 14787 bytes DEV/DEV3.2/TP02_Recursivite/Q5Main.class | Bin 762 -> 1153 bytes DEV/DEV3.2/TP02_Recursivite/Q5Main.java | 24 ++-- DEV/DEV3.2/TP02_Recursivite/Q5Point.class | Bin 0 -> 760 bytes DEV/DEV3.2/TP02_Recursivite/Q5Point.java | 33 ++++++ DEV/DEV3.2/TP02_Recursivite/Q5Polygon.class | Bin 533 -> 533 bytes DEV/DEV3.2/TP02_Recursivite/Q5Polygon.java | 2 +- .../TP02_Recursivite/Q5Recursivite.class | Bin 0 -> 903 bytes .../TP02_Recursivite/Q5Recursivite.java | 32 +++++ DEV/DEV3.2/TP03_Listes/Action.class | Bin 0 -> 1329 bytes DEV/DEV3.2/TP03_Listes/Action.java | 34 ++++++ DEV/DEV3.2/TP03_Listes/Dessin.class | Bin 0 -> 1283 bytes DEV/DEV3.2/TP03_Listes/Dessin.java | 27 +++++ DEV/DEV3.2/TP03_Listes/Main.class | Bin 0 -> 995 bytes DEV/DEV3.2/TP03_Listes/Main.java | 28 +++++ DEV/DEV3.2/TP03_Listes/Parallelogramme.class | Bin 0 -> 1058 bytes DEV/DEV3.2/TP03_Listes/Parallelogramme.java | 28 +++++ DEV/DEV_Madelaine/TD1/ex1.txt | 16 +++ DEV/DEV_William/TP01_2.ods | Bin 29918 -> 29884 bytes SCR/TP05/ex1.1.c | 20 ++++ SCR/TP05/ex1.2.c | 24 ++++ SCR/TP05/prime.c | 76 ++++++++++++ SCR/TP06/ex2.c | 110 ++++++++++++------ SCR/TP06/ex3.c | 60 ++++++++++ SCR/TP06/exe | Bin 0 -> 21000 bytes test | 0 26 files changed, 469 insertions(+), 45 deletions(-) create mode 100755 Anglish/16102023.docx create mode 100644 DEV/DEV3.2/TP02_Recursivite/Q5Point.class create mode 100644 DEV/DEV3.2/TP02_Recursivite/Q5Point.java create mode 100644 DEV/DEV3.2/TP02_Recursivite/Q5Recursivite.class create mode 100644 DEV/DEV3.2/TP02_Recursivite/Q5Recursivite.java create mode 100644 DEV/DEV3.2/TP03_Listes/Action.class create mode 100644 DEV/DEV3.2/TP03_Listes/Action.java create mode 100644 DEV/DEV3.2/TP03_Listes/Dessin.class create mode 100644 DEV/DEV3.2/TP03_Listes/Dessin.java create mode 100644 DEV/DEV3.2/TP03_Listes/Main.class create mode 100644 DEV/DEV3.2/TP03_Listes/Main.java create mode 100644 DEV/DEV3.2/TP03_Listes/Parallelogramme.class create mode 100644 DEV/DEV3.2/TP03_Listes/Parallelogramme.java create mode 100644 DEV/DEV_Madelaine/TD1/ex1.txt create mode 100644 SCR/TP05/ex1.1.c create mode 100644 SCR/TP05/ex1.2.c create mode 100644 SCR/TP05/prime.c create mode 100644 SCR/TP06/ex3.c create mode 100755 SCR/TP06/exe create mode 100644 test diff --git a/Anglish/16102023.docx b/Anglish/16102023.docx new file mode 100755 index 0000000000000000000000000000000000000000..679128b65e044f16b91a28b177cf3e2d572956d7 GIT binary patch literal 14787 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 ARsaA1 literal 0 HcmV?d00001 diff --git a/DEV/DEV3.2/TP02_Recursivite/Q5Main.class b/DEV/DEV3.2/TP02_Recursivite/Q5Main.class index e4f781a2b02fccb0fea72756d02822f65b4fbfc1..b2ca7b3c0d4ccd45a2396d6879d59e5104a0433f 100644 GIT binary patch literal 1153 zcmZ`&+foxj5IsXS*<@Mn7g-Yoylzm5AW;k#Q4kCU5M#xPR#{n+F)S_{+$?0Ut!s^gi0)RA9~MppPuPH)ARM$r_TT;ky0>#5d~*)PR98lE-3Kf zqA-_)(S?c17*!C$h>Xh$T5(0jRRwJr6Tz4;*JO+<=)y!`K1kcrr{Fp!1t~7$hK!pG zff>^_-8lxI9?dXF3#9^Q=t!A1U)$T+ZR{H{%dm^FwCk95 zaatrQ>C&E)=S!v_w{FB&i9RNnDm0vyF{R=b5)9qKcNi-lP-1Ll$uV|_uWXDDFB=wj zOfKltDrPXNVosRbm}ltp&NL3(*u#?bx>%x0LL2cq7Abca+BV{kcz(|*oBO8g?Q>Vf z0v1)=!xDom_@?a&_NVX%o=ghmTFH|tDgN;|tHo7?Vm^td6hO~XldM1^I{vUxlW z`cqMQdqbO5!`-4ODZg?^6iHuqmGoAYEsBhv3Eps*avfWY@ z{)D7SVSi*R=a~uun&k6UAZt>ff?y4yY!ynvUqfqF^H-rJ0yVS|)F`<Nefd5zKzV^XcNH* z8LgvVQJa25i|9TVy$9#rbMAe-bKbr3_-f`%eWPM;;6XBKfj*>+s6)$4Yr+3qo@-A3=Y*=?S;8Vq9g z)JX{mrzsSoNMV9<@FjqOybw-0x+i)UCe25Tqk;&cyhH2}9*A_-M-ZwZ&k*9CX)w#c zy9=*r2(Lt3_)MP*X#}}CgtBkxMZM@kwZ?-F;|kxp%?n*M*e(^O=)ymOR<(u*R7^YP zB6#vd4>52nn+OmpP-%zZN0PoWO`3@yN)%#?V(d_W1B!4&6K7=kVr+Vf?g^Ow16Wr> ArvLx| diff --git a/DEV/DEV3.2/TP02_Recursivite/Q5Main.java b/DEV/DEV3.2/TP02_Recursivite/Q5Main.java index 9e3c9a1..ff15572 100644 --- a/DEV/DEV3.2/TP02_Recursivite/Q5Main.java +++ b/DEV/DEV3.2/TP02_Recursivite/Q5Main.java @@ -2,23 +2,29 @@ import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.awt.Polygon; +import java.lang.Math; public class Q5Main{ public static void main(String[] args) { - + int l = 1000; + int m = 40; + int detail = Integer.parseInt(args[0]); JFrame fenetre = new JFrame("Q1 Galerie"); - fenetre.setSize(300, 200); - fenetre.setLocation(700, 300); + fenetre.setSize(l+2*m, l+2*m); + fenetre.setLocation(0, 0); fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Polygon etoile = new Polygon(); - etoile.addPoint(50,50); - etoile.addPoint(300,140); - etoile.addPoint(230,80); - etoile.addPoint(10,330); - fenetre.setVisible(true); - Q5Polygon dessinEtoile = new Q5Polygon(etoile); + Q5Recursivite modele = new Q5Recursivite(etoile, fenetre); fenetre.add(dessinEtoile); + fenetre.setVisible(true); + + Q5Point g = new Q5Point(m+l/2, m); + Q5Point c = new Q5Point(m+l-((int)(l*Math.sqrt(3))/2), m+(3*l)/4); + Q5Point a = new Q5Point(2*m+((int)(l*Math.sqrt(3))/2), m+(3*l)/4); + modele.nextStep(detail, a,c,g); + modele.nextStep(detail, c,g,a); + modele.nextStep(detail, g,a,c); } } \ No newline at end of file diff --git a/DEV/DEV3.2/TP02_Recursivite/Q5Point.class b/DEV/DEV3.2/TP02_Recursivite/Q5Point.class new file mode 100644 index 0000000000000000000000000000000000000000..ff9a20252edd6046fa1194f7efcae48b0392b1e4 GIT binary patch literal 760 zcma)3+e#Zz6kR80CS#J(Nwg-$Bo;v=nM5tMKD0_-3PQjuN}zA%GRTBUA~6yDs}?GX zLO;Nd64#E?RL}<>_GQ*NYpuP{JUrh01@HxhI4ophFfb=6Yhgalnvs;VkXKNbj4IfL`kC44C{W{xOz`<0#?Kp= zyA}5jB4viuRx~)FreKQDI2s>@Dsy0yRNRP!=Mnv&R38(j%=L VA3e{fE?@}@_==D8nx#hs=_eHRb{GHv literal 0 HcmV?d00001 diff --git a/DEV/DEV3.2/TP02_Recursivite/Q5Point.java b/DEV/DEV3.2/TP02_Recursivite/Q5Point.java new file mode 100644 index 0000000..aab77eb --- /dev/null +++ b/DEV/DEV3.2/TP02_Recursivite/Q5Point.java @@ -0,0 +1,33 @@ +public class Q5Point{ + public int x; + public int y; + + public Q5Point(int x, int y) { + this.x = x; + this.y = y; + } + public Q5Point() { + this.x = 0; + this.y = 0; + } + + public static Q5Point tiers(Q5Point a, Q5Point b){ + Q5Point resultat = new Q5Point(); + resultat.x = (int) a.x + (b.x - a.x)/3; + resultat.y = (int) a.y + (b.y - a.y)/3; + return resultat; + } + public static Q5Point millieu(Q5Point a, Q5Point b){ + Q5Point resultat = new Q5Point(); + resultat.x = (int) a.x + (b.x - a.x)/2; + resultat.y = (int) a.y + (b.y - a.y)/2; + return resultat; + } + public static Q5Point pointe(Q5Point a, Q5Point b, Q5Point p){ + Q5Point i = Q5Point.millieu(a,b); + Q5Point resultat = new Q5Point(); + resultat.x = (int) i.x - (p.x - i.x)/3; + resultat.y = (int) i.y - (p.y - i.y)/3; + return resultat; + } +} \ No newline at end of file diff --git a/DEV/DEV3.2/TP02_Recursivite/Q5Polygon.class b/DEV/DEV3.2/TP02_Recursivite/Q5Polygon.class index 26ec157a13a9a8e80af68a80419173d25466db49..87b4611ec4dc5b796e95acdeecdd76659f8924a4 100644 GIT binary patch delta 16 XcmbQrGL>aR86!(dQDXVzD#qCWE~Evu delta 16 XcmbQrGL>aR86!(tW=_uJD#qCWE`SBD diff --git a/DEV/DEV3.2/TP02_Recursivite/Q5Polygon.java b/DEV/DEV3.2/TP02_Recursivite/Q5Polygon.java index 87a74ca..62d3c27 100644 --- a/DEV/DEV3.2/TP02_Recursivite/Q5Polygon.java +++ b/DEV/DEV3.2/TP02_Recursivite/Q5Polygon.java @@ -11,6 +11,6 @@ public class Q5Polygon extends JComponent { @Override protected void paintComponent(Graphics pinceau) { pinceau.setColor(Color.BLUE); - pinceau.fillPolygon(this.etoile); + pinceau.drawPolygon(this.etoile); } } \ No newline at end of file diff --git a/DEV/DEV3.2/TP02_Recursivite/Q5Recursivite.class b/DEV/DEV3.2/TP02_Recursivite/Q5Recursivite.class new file mode 100644 index 0000000000000000000000000000000000000000..e9192acdae0f273dcd170f70abcf887a5ffb8ad6 GIT binary patch literal 903 zcmZuw%Wl&^6g`uN9lLH`1gM*YP@u(eod#%Aq_koKs+1}~N)TcJ3nv*Wht!E2=h2U0 z%^ImKhy@=2pM-?C6OxFkSWQMq(#Um$l{g=ITg3D zrs59nss!(eu&z?chK&0%3;F84h;PEC%- z#s0`~kBf%~o_)fpK-za)$A7|*H?HfHk(%{}}yCF10Tt4>e zKJPK)j7s&WRO>pfzjrkeEX#G@Zhm}j_omHiy*u!l{NUd-N2OQ1Iq>?<(DC_}7)?V0 zc@4{mYKS2&!_=?|OG5#cj4cgCJdp8F!y{3)jU5do>}t4<8}zbEd<^l4Ssk0ac-d(4 zrq2*GgerL|nt_dJRcM{g%K!70X0=%_L%t<%-lRj zz_iX0{4!}sQA{F4QKh&9g(#y$$Ap1Xf?o*JDKJWZLdHBpz&b;SR`>!E!Qcht&v<9) zp>K$k!&X6Tl2s5`Da!>*;K&3<%8Ho|wJcrIsaX{{rLrEG0ZMgg2B=4&TnG(72;C)N zGzSTd(_{(yD^ge|p%zIk;U@O6f@jcC!z$h*jW#kEB1b2Hgh2K;-qJ`b6F&Vf2_Lp< literal 0 HcmV?d00001 diff --git a/DEV/DEV3.2/TP02_Recursivite/Q5Recursivite.java b/DEV/DEV3.2/TP02_Recursivite/Q5Recursivite.java new file mode 100644 index 0000000..b7a0e04 --- /dev/null +++ b/DEV/DEV3.2/TP02_Recursivite/Q5Recursivite.java @@ -0,0 +1,32 @@ +import javax.swing.*; +import java.awt.*; +import java.awt.event.*; +import java.awt.Polygon; + +public class Q5Recursivite{ + public Polygon etoile; + public JFrame fenetre; + + public Q5Recursivite(Polygon etoile, JFrame fenetre) { + this.etoile = etoile; + this.fenetre = fenetre; + } + public void nextStep(int i, Q5Point c, Q5Point g, Q5Point a){ + if (i<=0){ + this.etoile.addPoint(c.x,c.y); + this.fenetre.repaint(); + } + else{ + Q5Point b = Q5Point.tiers(c,a); + Q5Point d = Q5Point.tiers(c,g); + Q5Point e = Q5Point.pointe(c,g,a); + Q5Point f = Q5Point.tiers(g,c); + Q5Point h = Q5Point.tiers(g,a); + this.nextStep(i-1, c, d, b); + this.nextStep(i-1, d, e, f); + this.nextStep(i-1, e, f, d); + this.nextStep(i-1, f, g, h); + } + + } +} \ No newline at end of file diff --git a/DEV/DEV3.2/TP03_Listes/Action.class b/DEV/DEV3.2/TP03_Listes/Action.class new file mode 100644 index 0000000000000000000000000000000000000000..36c7dd7b64fd5229ec01ca3853d220efdfcf1c15 GIT binary patch literal 1329 zcmah|T~pIQ6g_DRp=l^kJ`_O|Q7kP`6$G`2B7&lA=~%}H-$GeyAWbk$5q=84z-JxA z!3W1@|A7C+an!RZoz@OBJmhBg-gD1Ad++X#KVQEAn8mt=D8|C*#MKC{VLXECh)Xk} zA`wPAk{Tv4rC}PWFmB*x2X1MY!K{kgD&|zoE9kS#iYM}hYgm@BoRVvl%R)hSX3N+$ zQdQ5iQW+xB3c>}mWE)=9Wq7P5ypU;ONG~#@eZjO%Z&5*Syak`0c%>k;>}-;&D`VOs zS1oS{_ocC6(KFr(KaE~8=w+u`5zCfY+!mV(Mo#jK_g+fu3foI%Wqd_0{feCh&nRwZ zjUB&`iaT|R726Z8q=@*8D|@CVcQyXJD=HPa?ev2$ge44ruN9oCTNJCN6dhSAdZuGf z%f9L8!(AQS=uvS`M;Z&PrQ<#pbv(dBp1Gx6I+pNA#j=jaSW&U6;|ZRsSkv(g&)KOW zkEkM}Ba0mSS}VmV`9rb{yOdhr*b+rg!LaXY>42P|u!XB2))?y=k8F4jox!+lX0#EK zcm*A7!UVQ5yJ9smsWR_a`z6O_ zaPTzc{_H5FB)q(1+N=|+Q`fTTV{WYxO?*r#I<{w+cBOIs8W~b*Q}YV@>`$3zaH_1( zUsGo~sk}@2g69gO%p$$M!2jLsz>Wl2HuFxdpMPd%nRbb{4x@aZQE=w`SQS0AF}~jb zdig~80@2U)06hu*1N>`=FHjQ6&j@_vPQf|aD1x+MgrLzzP8iNJI*1FjGXEX3L;TMt z4iPv;P(gO`7$F4*80Vr*!FROhrVgPdkI-?1@Bt#9pv59b&_DeBDT@XCVgqR7x(gR6 zH%Y-WlsZSDL-gth{)VPvIR1-hg_wHzK|h~@8>;2`0I721Y}gQCm(GTb5O(=&*eGG6 IzM?Dt02X8?r2qf` literal 0 HcmV?d00001 diff --git a/DEV/DEV3.2/TP03_Listes/Action.java b/DEV/DEV3.2/TP03_Listes/Action.java new file mode 100644 index 0000000..66ec4f2 --- /dev/null +++ b/DEV/DEV3.2/TP03_Listes/Action.java @@ -0,0 +1,34 @@ +import javax.swing.*; +import java.awt.*; +import java.awt.event.*; +import java.util.*; + +public class Action implements MouseListener{ + public java.util.List listeParallelogramme; + + public Action(java.util.List listeParallelogramme){ + this.listeParallelogramme = listeParallelogramme; + } + + @Override + public void mouseClicked(MouseEvent e){ + for (Parallelogramme parallelogramme : this.listeParallelogramme){ + if (parallelogramme.forme.contains(e.getPoint())){ + System.out.println("clic"); + } + } + } + + @Override + public void mouseEntered(MouseEvent e){ + } + @Override + public void mouseExited(MouseEvent e){ + } + @Override + public void mousePressed(MouseEvent e){ + } + @Override + public void mouseReleased(MouseEvent e){ + } +} diff --git a/DEV/DEV3.2/TP03_Listes/Dessin.class b/DEV/DEV3.2/TP03_Listes/Dessin.class new file mode 100644 index 0000000000000000000000000000000000000000..c2225be262f477d81f83a224d70b9abc81488043 GIT binary patch literal 1283 zcmZux*-{fh6g`s!Cd&j!1Qd613n3B}+yE5_g3+)D3W~lop$VgtnK+q9QC9W!iYav|64W*6h7}GJXq1!Uco?H~JuqY{ zQbSknxp*bg70vE*yMYG6?rKEM*GwN%BxG9DUugcSp;c&y`zfi-pV6pvZ1 zJpg2(AiPeOw@tf{zSl%AR%=Q#ISuhfqq3fKh3B{${0UW__Pi^FM`}HZfxQMayRtz+ zv%F9eFDo>m$C`#{L3&dxRKayB_6CDDJ7yfqag|qDvgXtqja6~?u2tS3qpX@6-c~Ja zmZQUiyV5Ldu|>g6)3TOio~oY6@>gqQgM^wkh3qev-hB+UVch3P9Qu|h&&$`e4%oG& zd*9L$EZoBSb7oO?d8cB@3gOnLx`9?h+ot2HfsZ!|wCGrG3XV72#9Sl=3G<-*NG?3~Gd_aeCQc7nPU8(noHSObXfA1=6J}7KM!~=9P zcNYxA$Tg0B$_cW~lJ64HJ|Ww6a+PFzlGZW!f1+QNg56TdCI@ZroKdZ8$e literal 0 HcmV?d00001 diff --git a/DEV/DEV3.2/TP03_Listes/Dessin.java b/DEV/DEV3.2/TP03_Listes/Dessin.java new file mode 100644 index 0000000..05031c5 --- /dev/null +++ b/DEV/DEV3.2/TP03_Listes/Dessin.java @@ -0,0 +1,27 @@ +import javax.swing.JComponent; +import java.awt.*; +import java.util.*; + +public class Dessin extends JComponent { + + public java.util.List listeParallelogramme; + + public Dessin(java.util.List listeParallelogramme){ + this.listeParallelogramme = listeParallelogramme; + } + + @Override + protected void paintComponent(Graphics pinceau) { + Graphics secondPinceau = pinceau.create(); + if (this.isOpaque()) { + secondPinceau.setColor(this.getBackground()); + secondPinceau.fillRect(0, 0, this.getWidth(), this.getHeight()); + } + for (Parallelogramme parallelogramme : this.listeParallelogramme){ + secondPinceau.setColor(parallelogramme.couleur); + secondPinceau.fillPolygon(parallelogramme.forme); + secondPinceau.setColor(Color.BLACK); + secondPinceau.drawPolygon(parallelogramme.forme); + } + } +} diff --git a/DEV/DEV3.2/TP03_Listes/Main.class b/DEV/DEV3.2/TP03_Listes/Main.class new file mode 100644 index 0000000000000000000000000000000000000000..44eb60dbb54bc9f0d7741dc883fd0a25c099b8a1 GIT binary patch literal 995 zcmZuwT~pIQ6g}Id4TJzK<*RB%L^LIppdxCEAQYK_X@!|OFyM=!tV}RXFiAmu_LunL zvoGyv9e;p-!xw*rcsFGRbWCRM-jB0)&)MAk`2F=efLT0MF@y;PH&nzhANWftU$sS}?g}-U7Ckf!V}xNq_;1bNgj$*FtG-p|8Xn-GhDX8_P-I9) zXEs9HF_(PbdRMlCkXUY7zU4UF@eXKLozr<5=J8lGCPj&*T4;N&h!! zn#Zz+5>`l<;KPtSSGBQs$ZOO-{U50eedkmIGtgX zq80wiYB*uZ@dCba#Qn39tVejs+TUjw(l6X>heI*9%P^>y|Iry;c=`+;U5a25Ws}sZ z;xz&;GTh}p!}uA{ItfjF%-zuZ3lMFax_~Kp^&`(ETrt-nBsQKW>2s2xEjzF~bD{6% zwlI!C8dCAZKtqBNvZEAbX=Sv=r&?g2$zjNlO>~kprk8M;d;$Fhi3S-sX(P7Nf>btA zv2Q7sZ$dUCsfoCeXd=;uLdC918{M?31zB3iCe@F~<}>ma^u(|&DjB&2tssAp*r(H< zZS?NsTj(pqjZD0W{x*^#P8AYHhFT768*&qAK`s`NTc#fcM5T+~0irkxm2_yBL?5Qn zk2$I@B87GGH%a#{DSt_d4+;5(1Ray4E7V~Gu~W<-t{|)6s)8}5;2JPSddH)~uKxi^ C=hKt` literal 0 HcmV?d00001 diff --git a/DEV/DEV3.2/TP03_Listes/Main.java b/DEV/DEV3.2/TP03_Listes/Main.java new file mode 100644 index 0000000..7c34d8e --- /dev/null +++ b/DEV/DEV3.2/TP03_Listes/Main.java @@ -0,0 +1,28 @@ +import javax.swing.*; +import java.awt.*; +import java.util.*; + +public class Main{ + public static void main(String[] args){ + JFrame fenetre = new JFrame(); + fenetre.setSize(700, 300); + fenetre.setLocation(0, 0); + fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + + java.util.List listeParallelogramme = new ArrayList<>(); + int i; + Parallelogramme suivant = new Parallelogramme(); + for (i=0; i<10; i++){ + listeParallelogramme.add(suivant); + suivant = new Parallelogramme(suivant); + } + + Action action = new Action(listeParallelogramme); + fenetre.addMouseListener(action); + + Dessin lesDessins = new Dessin(listeParallelogramme); + fenetre.add(lesDessins); + + fenetre.setVisible(true); + } +} diff --git a/DEV/DEV3.2/TP03_Listes/Parallelogramme.class b/DEV/DEV3.2/TP03_Listes/Parallelogramme.class new file mode 100644 index 0000000000000000000000000000000000000000..a08a8d69d409e20de6acaeffeff168077067ebd7 GIT binary patch literal 1058 zcmZuvYfsZ)7(MT9T}$1{Ku|#x6dXf0<>Czl6+^OwC{bfV_`=IpXGzzR(kXn@f8+)% zk;EV1k5bRuaTCds=l-0X=k)#c`^QfJ(|Dz$7X^c6LPd9VXt<|L(ZFStG~73s&_7V^ zNdq}d8PGAU(ivqQs)0u;daTS74Nuh+S7tTL322{WBeWZVfG9I_Wl)Qj!M6<{Zxn=LO>V@ecxtMZZd%?6Tw8uN(CZJ9sZQTvmGX%PTUFu4}t~ zEs*uPJ*(!E`EptL^qis_0U7W7Mo_VroM`RbQc;mNaTWb0hB0R1I)+RY_ruqM~c)KgK$v7LPl}>3GPMUaj zD@u{)>5(V9$ny|-p@fJ$FQHGcLM>=-F&jmk5m5^9CPW*t?@R=4(;A4;W|4*!t&AS6 zOc6qL`U?|#i0>hhD0YHmvUmYNjy!uJfUzTh1G0}3;9H@MRN)ZXY8&ZMe%wnD)V; literal 0 HcmV?d00001 diff --git a/DEV/DEV3.2/TP03_Listes/Parallelogramme.java b/DEV/DEV3.2/TP03_Listes/Parallelogramme.java new file mode 100644 index 0000000..cc36c8b --- /dev/null +++ b/DEV/DEV3.2/TP03_Listes/Parallelogramme.java @@ -0,0 +1,28 @@ +import java.awt.*; +import java.util.*; + +public class Parallelogramme{ + public static int hauteur=100; + public static int largeur=50; + public static int marge=5; + public static int inclinaison=40; + public static Random aleatoire = new Random(); + + public Polygon forme; + public Color couleur; + + public Parallelogramme(){ + this(0,Parallelogramme.marge); + } + public Parallelogramme(Parallelogramme ancien){ + this(ancien.forme.xpoints[1],ancien.forme.ypoints[2]); + } + public Parallelogramme(int gauche, int haut){ + this.forme = new Polygon(); + this.couleur = new Color(Parallelogramme.aleatoire.nextInt(255), Parallelogramme.aleatoire.nextInt(255), Parallelogramme.aleatoire.nextInt(255)); + this.forme.addPoint(gauche+Parallelogramme.marge, haut+Parallelogramme.hauteur); + this.forme.addPoint(gauche+Parallelogramme.marge+Parallelogramme.largeur, haut+Parallelogramme.hauteur); + this.forme.addPoint(gauche+Parallelogramme.marge+Parallelogramme.largeur+Parallelogramme.inclinaison, haut); + this.forme.addPoint(gauche+Parallelogramme.marge+Parallelogramme.inclinaison, haut); + } +} \ No newline at end of file diff --git a/DEV/DEV_Madelaine/TD1/ex1.txt b/DEV/DEV_Madelaine/TD1/ex1.txt new file mode 100644 index 0000000..3753df8 --- /dev/null +++ b/DEV/DEV_Madelaine/TD1/ex1.txt @@ -0,0 +1,16 @@ +1. +employee + +2. +employee + +3. +gerer la bibliotheque (gerer les adherants, gerer les oeuvres) +gerer les contentieux +s'authentifier +lancer des poursuites judiciaires + +4. + + +5. diff --git a/DEV/DEV_William/TP01_2.ods b/DEV/DEV_William/TP01_2.ods index d2e65d573a0e986179533f6945ab689b6fbe48ba..5cf25c6fcaee73f7dfe253d42c9763bd95901d53 100644 GIT binary patch delta 27027 zcmY(p1yCGK*foj-hu{vu5?q736Cgkcu*l*Li@P&Okl=*i4ndd27k7et0*ku_4;~2Q z@_yfc|68|et9Pb*`pi_#^m)#6`dRyh-0=$;PxC$M3lbzGOeCapW%XpdkEs9snR5fi zjwB$Gp{b^2p7KX$!oqq@I2E6FGwUG5H#(?}gW)P3*B5#TXZVaazhauFCIZBl0DCPQcm-7vkd!9R``PK zer%Ra?cgJOlq;&UH}{V=ijG)Qu({(mmUa#xB?xl& z`^uO3amUx?ekPOw!E(X|KOVGx6ByrWA{Rkk+0jC04QcC8K3erpXe7TZTc~##%kou@ z`c1@K%cIG}zR@c|>k~t6O2-jbXn}gTDrT^roB0-}zn^NSi;o}6FFFl4lSO^ zuG?V84K-G9e@X1~)IRn9+kNkgXDc^D#clk0rDYAe^?xrZ6#2j1Cb4eJB(TjNihZ%M zZ$*-70|~8SFsq|CvTFAKyWINu1c=@M>ks{R+c6SCBf{S6Rp$SBp3>-z=TT{~|9R3( z#xM@XmV^6GZ{6~x^n3rC7ro(L^S)~9?KAYz&?v}v((btvbF=O#4Pp$@Z>;J(& zBT3Or{x4F{Rl$EqVPio{W~AwCS`Z^@X-aD&+t_Wf3hvry1Z1qc z?}IpQjakGh1<*&@?1Wq(??lwLVUnZWqE^xEqX|Rg5Bian0KI=GPJJj+HMS*Um)DGC z;TKJu+dnI)Sb(D|*L;mB)|fx!sej1g@5!%IAIJwDW7+@0|Hj_4KgL!D#-cyk#~moz zIoXZ)BKCbzC_x|s$j@#qhY~=&T=ckQb`2E;|*55ZzT2HF*qbJph zVj}{8(lDm`yXmND=CV3ag7U!e=7|Up1sMSotJ{B|V}R)B@77tN7Jp#ZiS2oW4Y=Om zW+8TeWPL($cv|{d{lG!FV5;&v{cfzH=)vKDtW}!fzmY@Zvh{pS@5hX2tnGZX+=-#XjHNkILZ!ugs0@lNa(k(?wbM|lgw%IM zq1F?7@YUXt?-65&9gdJheL&xTY?*f|zhs*%cB?dZB$hKp6Yq^lli!;7^HNR)%~e^I z#ywo@(^{wi?GM@>2BWE|*LdrFE_G?sWL4eE#9qgTBd6BIaIEUqp#e%w-Nqc)tUOFMN~cTD8lhUK`fkKdfCV z7%bKIMRU5S;!HmJx6&xiq?g}Epifz=eEjNu;k}%yb&ud1)ZltAHkLZ7C>j)elq*3C zS+M!~**tsw%t)I{uqk-qWw%==<@N;xqG(vmeaK2c=Qq% zA0mTEX2=QLe<7ha^@YrsDN}ASB9%UL1ZBD~OEXRZHE8Lx!(OHmTJ@gMLG_CQ<6Cv)gPj+c>P1sYxBSlI`|^h^a|dN zDI#t*KYm5iAMxiRtrt+4(VTucB*E4)<11}k;!z7n&!pG0vE~>t^{{C-zKgrK5%HC5 zG`9D?qY8o0*oz`z>^1GNgLi4G#U~lI`<`%1uVXe%n^F&KnG-$4NR@3@_me? zfgEYS5yXw-K_xCSW2O4eWkR_Gj=m$2;BOILBhs1!?PI2T50oeRmM5H?YXzc1GNCk- z*qVQeZl3L;L34^EWIC{w{*c#&!nmLN`+?U{WJL$*B>vqHWUh|U02wRM8{_1k7_$?@ zO>;TZBrRFdnCxNgNMkA2Boc9@h_}@Db~Qtee!j6?1Q&j#q&$>&tWE>qI9F6?@AU5pPe~ z9h!Zbk$%oRs_8QF@|i{{i9c~!iII*aNtn+=1uyf5wr=`3|4i8Qx~w|_$g=eGDN?swk0mt~pzq>lcqXKG#L03Br}uL|_ekvG_0WH$Hpy=z+vrlGQFu=oDjWG{q~)tW(VSpu^!7B;Xf;^YcP#8m@CU{VkJ zk?rjD<-X_N?S`0d=pf^jBZ?;SLkh*3+L>#0d*fS*f;xzDV_sWJrcuw5O=;&1&z;YiXW!d z(eVPWCm;Naomk>ZLc3e@UZ+94rHN~kEv>i905O=TKZRPADZAyfhc^I@kZ`Km%?xjOW{olBe1rDuXBJ z6lMB;MYrj4d-wfLAxvuHCxi6AKXo^EM?^7E*yY*kpl z>i*kU(KX6R%=87gwmbxVRn!`ta=551eY_6ec4)@o7^}o%t*W@JF&&@pzE{Yf#Rsjv zN38GL-jkF5=%9-ITUVL%Ym)3X-~5a2PI$^G1)4H{-!wdXQAObn|N8}kfrocq<> zAHVCud@JTwv)$_#ZM?QL9`3_1!j@1U!MR>-ruO$ZoQ3Uhgxge&-!sXeK)5~nv8Vu z@Zf1?Ki+Jv=-8!cX`cGF8Ag+Pab8nTaUW`4?7K5)14J3WbJ|xxYesqyA&GAQ{Y^fy zHVQrQ)C;Hzo<%9QK28~fLl?pXXdBUlI$gZdkLcjgYV$ci_$gXt8_QT*b#}nRoXU|C zXz`5~`FzlxtH`kK5bl#3STJ?us)Bt9!snRz5Bc_MnjO>{Z#^X2y54QQ)urq||7342GWy`#P}l8*^6jX! zh0$zVD;$Y>FP83%i^=~vYzTsV_ml+abkJZq^lY3XFnw8 zG&06=79T#l<3Y69CC|GBF_Nn)t5+UZC(=OYO_kJ^m6O2>hpoZ`Pdi?#yBBIN#dno} z=3`ed_IyU(XBm)aWn1m)n`_Ovy2?s)F-`fb3BxwEDtP@~hhXXciVu!D-Uq`G<93Id zFSg+z_{T}^$uQfL2aNrJcTSCC4TpvEsA;V>=R-lYVjn)-25PCc^KtBY$I!W|P?t3E$31?w{iMhXx7VX&BQ_ zL4b0IS~98vsJN0(@wxdpm+=%($$o4yS~p}_2%`u%=r%?*nJKB;57A2q7Lof+?2XGm84w55_841M%*A+@L1Ty#!>5Wv7pmTq(@ZeP+BbUQ=ecI2h${)p*r* z%4l7K3F}?Y;g#X){08)~u?OH8f`vCy&{&J82aQPdTVLKU-d^7JT&I+&Aor#E9C503 zjB>!l>2U&N# zz%i=Qn(;@7)R`uAS0tup&%%PF7|V|JJk_59wb|3i{-s@BuO<)t0pL$qyWQ>UZv~ej z;hXlaDbn)MGv3c5@el0BJJq*12DT_qKs6sGL`5n;nX z@ZoPzUXxGdmfdpD*(j%3Ms_ku%Bm#S2>D+D`~ag0P4wTqta^PO{ms?QR8%4Ew+Gpr z;&>bfaZRe777SAXEAFy$Z&EOlw*?k_jHFitg*KNw}O@ zsB5tc5`m0iPF7uUy-N<5#_1uM6OA{{D4QL3fU;6f=`o%3SNVxs zHq(A=v6M_TGpM1W@V15CkA3@!8Fv_%PIH1qJ<-P6zFo`?hl9FzBrvww`^w9`!pi7@g-xoD0*1V?DgBpNPL(Np zU6&4!Fwg)|btd4g^vMP%UOByA;B|OnV+5c=38{XycsP6Sx8SJgnAfH!ELA6LB;8+1 z*R@#L@Gr&OD|yVtXgk1j_;hin)NdMv0wS{WKAb^zn}LX{j*xd{*LSn?2Mk4|CLENi zS=Y5_+=?cV=VTj2)YXL)aC+XlUdVNjg>k~J-X2QmMGL6Lz0Rhc7GlftIH*3S>@uAD zLiG_(@@w5&&FwehoA%kRD0|22E~!aUJz||{AiCqPUg1iOWo4Y=hN(wQ&KML1$Um90 z*&uA$1r?V;uo$mqFDB!zh3GWcQYJyoh_!#8_`UxG_td4DuGhEs!xN_SRz@Y@bSp3# z#ms>BoDNW}-BQVrdQKo1G3GJn#h^oXrAcd;4a=59Fq<}0mYK5qi3Lz$Gt|#qH&(fK zw^c`}F?-n*289%dzBXbS7Vk9Q?y#Ev;dO^GoUUOATZ$8Ydu)tm>V?32(cV#uF&4XO zlCiJTqNX8XY~&NNudSSi((QW3SD$`+3WDR+sG0#oAl=U^v@5# z3Y@KV;>L?hLL}%Zu_Hfjcxk|^EmqC}^X~<<#e3*ov#RpIuCtn!{KK^p*J0aYiW`Pd!|+AS};3v75wxWVLd%`6RS2&|`!_L*uIb*#&x~SlI#d;2>$w zC+cEjN3b!zuk|HL|36s$doiAlW>nKOPu#YTq~RKV`87;&NJn#c_w%7_hB}5g1XUtx zCQg#XS*0PP~*c;bx0?$XnNvjdb_FYM5bd>G6R{@Fa!c4Ml+UH z>qPCoi*ffLyY{@K3{R;;LAWAyddibejH5jb4|w*`=S9WotG}U_K6z=j{64&K2C&9G zMu=!ruLk8Of&0Trm0>JJh|6p+s^MYsdpmj@BlZv(br#j|JlDhw(z|HnmoFee^w}Y( zcS$x|qVOiuS^tR>KkXxw8PI%3g`nKBDk?O5W|@aW5!ss4zWx- z_fhJ-d@?N?QcpRu_qN`AjwE&v3?k^T(Y&%Qs2&$| zrOUm3nUvWwjy%0FFDZPPhjUkem{5m>8hRhdCww6M;?1#Cq=jE02uC_mkQ&wuEvBnc z(9>+oUH1vLlrBbyW=7<-b-KKv_*4Nk9M^2R)>3rc+3r>-&m9Oww0e5(1b z_0w7_q>+t;P({4-h5_yjNWjTvBaJ?P#IBkMImtiA(Vf4bgb#iO%}b(wumz8rGvo&< zLRO2m?}Q`@5XTOYXmRDm>mlUv3=s8it3tflzwa5~-lo*-j;&_)s2%=pxl=Pzg$RpR zra!ARnm&Jtv-@xhbv^sJC3Y7nAW^gDXQF0ctVep)1m3UD&|B64EG+dflyv4Stoy#D z&=}cTMCe`byp^oB^3KQd1J6mkd1Ty?=p6i`S|{8R)8>7aVc<=vb=2nSH`zAvVdf$! z3X)GP#p7*w=xAbw81&wS_y3H6^jF2J`KRw!FVH6lTse7pCw&Xx+7DlJWq0DZoYCjs z*@ciNeTz!GQo8j6)-b%d-re;bENym3^o)F8lu6gCuF^{t9__2_!vTEY@6e=)I*rg8TI8j4W_4sR!4qic zE2%*7ME|Lm|Afm!CHC=Bo>Tn00~1qU=5~MH4LrMJ1h7Gu-e!UV_zlQT>TIKQpxuAL zanFP~Z}4o}U2FE%OE2mfZyW{+ZnkLrU?9JNIGhK#ipn;V#smupA~~|U(8Jd%8akY2 zk-d!<+Cmu~befet3>}m>8+cp_Dw(v7Vkg93=(<`8{4C?8Km>|ZQprw!tu{oo{yuN| zUBJ-J3Q)#rFInVMiYgk5Djn+IHK7c%y-X1t%D_y$8S3ftKURS4^FSs_J0Vpg%f)O2 zEiR6Wv7?i}+V*9O%|J}mx};DE_~~Vk+ncJ9^yE$|Q0- z$iSvv(K?v>!ajUM@E$B^(b#j!b|JQ3zSiX10g%Y_7TiT$ISH-iHO1gm>ffbV}9!d&218xsHb zD(oz^p=+acYb!-AF4UZ^>!ZVqHP3a{(J9@aVuU>f&f^u+c4S{BwY@F!`@T|O5Hsy zMW9X>IB>StN=QHIC4&RH!26`s>$6lU=RbCb_(9#;4msoY4cTCx+C13=5b-4PEC!sJ zi4o+08!9_{FEgacFXXrJnqv|T@P(+8zA#)hJ+&RpJ6_kcN`P`WklI1J@4#o@AfW=O zcEcJ5>&MQIG|pf=(Qs-_CCa{dQpsV76M0N!5izkO3}b zPNqXs&P(34mXYjMq^{>MX+Q%1^FTe&P!(S#c3 zjvbMX``>DAyQ_g|@c~0|dfDbP(3M@$O77(;vGRuccv3o+_AO-U87b+4Grh+73`hn% z`E-BK4OAsAOr{FkC;!%8%5$^yu^+j{NGPDBW<+q~^l6h6IFZWg2^YQkLXDdh#5l~)P zI)ur*TGB z89Y=p(#|RkPaXIEo(}J_?9J8I*Y64{-3f%@=)P!DE7XH>k!IWk4BreKfr4x+ay3|4 zxCjs;N564wI(J8nf-dn!OB~snhuLV9MhRvZK`1AtGTWwjCYY;yt|t^0R$8SD8)C`; zy9^_z<&q8Br03$}`mC^eR-!^ypD80>%i%Er->h@KCJ{$$zwzrM9@(_cW|8t1|E>=&71#;V}0GR3~G2)w%Hv8)|Pm2Rwp7f z;HB+=O~^ZI%?f|IfH$=`FI%UF+j`+QSiYcP%e$H*?Z+?os$83GW2Zu_&t~QHm6c*T zR!OVS51h1w+o4u6Z#c8yTK^z*x?7HsSojQ1A^bB<`ab_dUZjfv)?2SdDrcya91#5+ zNW0+fRXCd!Uf~QB)phLh6>wiVGsK=QX_44#3;ANEGFR67JGHql$Ln3&gqAOG>i?~g zca9A38hs_Ys=Vq@z6cZM#H5hok*}n{m~KGKgLw6 zfHb51r(mSkQNx*uF%MeyO<<2w<8VNFW57aleNSLRpD~46u8X05l=a~yP?c}y9HfR; zCD>vD8?%_HTD5J`RfdWCSQA&RvyiPjP*EYj`FrFm=U~1v8VR4ym#g_-CI3y^Vsu<}pbE=;K@5MjT@a;7*K#ZATx#6zj@%I=N6HWRPHiU?gy$}Oro z9!gHIZXuP-T-up+lg-{uRl8(NxzNL_ek!Y{DP7UXOeRpI`V2@Pp z#qqL<$~0UCBKcWdtGo>H^Yb|QDgNECP;7)OFf_=ez=+?UcDY;ZLr>(X^xB+L2froA zK%igH(Xw8H36M;nOPbc_ewmy&K_2t4C`Z9@2O^jEo2`hd2D& zRd|WisA7+lP}xsk)`gC*yrB;JxjH0Y>k%0;{CcYtu{P2MsKT0s;X;e`BnqF`W~t7A z&L=E*byGH2IDEx5q66b}Wqu=H)4^x|<-*nBmAMV8K=eqO8E6;7^bJH(CqgF1{zrd! z4r(~Tl{G!~Gic7{62W=hW zZp8GVtbjA`u?dGDOhV44S2CXF|j*PvTvxVOO*I5NVl@HjuX0X>XSV zv*10d>ubU?YLOTgY-qg=h)h>}1NUv7GRElW08*G6_Exznuz+x29X z&R%z5y?5c5S|b}>>Xh78{ryE$Fj6tya!zwN|Gjl79KG++Xjwxu9QZ7k`KihxJj54T zU*sYjz$w6KXRFVR>4qXaY&$ST(HgklvX1rrA2-5%Gk%uRBIFe zR5ScEnuh*I>VJv=Q2ozTPy*$@rgYu4e|vaVBcU<+_W|cVfD8al(}RSml3;l8*zvhW z13>8@Pf-qq8?YO*_OnZ>c-@Fb~EyK5Cb8*b-GQ; zQi?n?bg9p%Xo*IuxuHKkS3pEDlR2t)=SyDY_5rh0Yf&@hSG_q|OOE8-^Hz>Aw@>Sn zO?KZlm}UVaSk)5e*<2>KSnh1HW8tj7tj!zp-xmTjNg-+iFKYzDXed07D&!am666a45F5QdvQIF#tE*rM3-OFsKHoXAQ1$iYxF$X?raf6D-pRyQHX6>ryX?$ zZLCX{u?#G~$+BtXt-UcTFGSY_QrIO6Jo2gXKLQRa&cUqQyke0bou({A8LFn#VVx;n zBiffHesXXmevY*J}l#+HZ0g5 zycWPyR4leMpbq=hMcpN(nd*8LYbTP-(Dl3M~(klbsDu&Z9z3oJfoAwnz{<7D>21GLYO(7tNpOOO>_F;$9!LIXjdq*EtNwePWMGgoIOmX4-GBEafWIrlaFXW^iyzo}6fy^g<=TL_I)|qt7 zxu6F^>LxQCR-?o$y~H=N8h-3fw^CWzucl;+ka+U?iQaBXLW4Y1#_$qI1U@84POhsz z+W5r%#s!vEJS1?U;7#aDW1@mFG3oh2i0#my`|^xsyTWAH%Bg0brXcD&t{od|2u zo@r8(85W}j?-gOP4{rE>1Tky2eSCaEXly7{HzL{(Qm(q&^IKQ~?oNgH6x)dYKPR%V z`Q9*b=YD8l`r@qSFEuv%QypqEAppG5oI^`@T%s%_sm2(Rt+Urg=Tvluic5ghM^Vgc zA#OXLf;k$$0(y)eMX@6bCE7>wJll5TFwn==*snOYaLL{J^&!2;_rnHmgsya2y4Vf{ z9igw>TH;fon;RAID*Yu&gH#Zj)QmR9<~QwytEp5UTo5Szjn+|-0?o#t9Xn5`dQ%Ca zc7&m2olJE;6-EUcrB5u#-RIgOkqEI}?L)pRw-U4kiP58 z*v3Wy1|=%L#?=u}+z@fM7jtfx%VdrQ=No*auVsq{^9cETu?ZJVcnm4ep0l|#vl4S? z%HUXFQg%}KFS?Uq$R&ZMUj@!V$V08nbe}mzTUk$c&JW_G7tg0`Qe09? zzyug@P9?n@pM69{8~E9d&U~V`crsXiroa4}I|=pp;s!3ni}I}nCyZl3NbSS383HK5 zf^-aDZM&+oUK|5E6ZQ29~yM2H~ z^*Av}2fSU7_2wluG|{z(B6U%x&crC}%t7jJYX?cDr;S~N2_<;{` zGJiY$0W9DZyS|6wpXFlhn?a9})u@TpWp7%8Ar+cGOT{$pZzzb#_A%t8am&p5 zUk1|?=LZ(U2+l}sw4}hBZi{7%z&YmwjYkz27N{6W+q?Td+|uChmV?vZ*C@{3GP7CC zx=##nW{`S}b~=SLF!)ZcA1by0gg-)!uj5%44zZD0+OW&vg;+v4jX3e`C~{bFrq3zG z2Uy*7L0`g2m^%4YF93m3u>D~^7|O9nv`cd7XubayU180fJbM%)32w zgSoXHwHe0YLcY`O?`m|G<)b9uxN1`eav*i@&h52>t;Dzgiun)&(+{7nBSk?H(RWce zsBr9wH)TEuZfAfCIq<^Q1m8l{10YTUr_}3oKwNaJ8VsBS9^=XY*9;?1hL>M27nYX^`zYjPoSW3AF3%^KIc*F8Q{+;Vuv?LLMRv<1ovE&Pp z496Ehes@N~ebeS|0WFPmIv&m4axuc)t4dgYB4yAE;=*?X1ud}OyWWb3%W}_CtfH9c zrS&B}n|~g0f&8J$W{>LJ~OOT4eg`D%9mR{c%FSX8p;)l z4WdW7M;Jtm^!reDB{f#gAJ9C?C5A^T%KcS`?GodAV^_t`lrku2tU9pmj=rgevnlz@ z2_W6dfSM%&cK^UPkhfz1t5d1nR-KO1AC~ffUyIhkXD?c6xfpOew~5Iz_Dj5z&Wu)0 zG4Yb1k6T@#M>xUO(|$90_R&bTdF^UV%%Nvo$}r>1hQFMYM!k0+w7i&jL0bGQ+*9}Y zd9JJ2_L|g%XlHx9pHA*vNFtwe^sf+U2Br z7e=9Wj2;V?5vECGPaNM-+`Q>gk&)LJB&c2#N3N5m*W2XJ(_aefYr<*^=9Ltq!bWjo zG1On>QgNh9c0`u8051_5(dz5&xqXl(7DnI#L?tYxWKG zFvR&h75@R8o{fEqZuu`{P0l!!q+gFe;Y2-MkG`9sBmde}kZ9T+t9Yw7`|K%4;!^r2 z#(m&}9tljmoIi^AhO|>Y8js4oV9bMOL?4_g0&cN0dW-8l^`nsw!)nBSxi+<|r_R=g zq7NdqxpXY0-uszAKaA3x!Vc_X{SM+p<>Rk^GMWuUTvu766{97WMO&r~s`?zFe-ixa zDKGrHpR`lRd1X+0Nt`_zEUXM`h%EPV3J{i}ZAsM{7L`xZo*(p#;1XLnVvAnd$9!!g zw(xh>5gs!&xcfP_wKd84FUO*H+vYu~0!-bYe>&KW2{D0}Jw+2+ZCBiwNqKHUp=Z{7jPjz`#$b*HK5SyL}sRryr5hA^%;u@J+adXd% zxnFbL``r+4`;jIjNHZ|`*?CZnH#j-zZ6g(MXkdWrzGH=Z?Y=05B*+zW1Ta z-^E_v++#XUcqm|u@__7bDT089hL*$SA4oy{O{=b-sLxFj7+>&(nIg+iNx>bzyPGa% z(N1D--$vK7?n4g)yGubM_Yd8wT>6t?71tQ1C7tA6pRKTSod`w15utp#lPF9)tFyqp za-wOu;9a9Xq?7Sy<$^Y3H4Xikt^%&C1Lh*&NegLLDm&-5mcD{B)1Br8I?O<+S6$A^ zDK9v)_nTr6+(FYs!34ve%;WY6GMt5c3nRLGgEu!Suy?-ke>B&1JpBX{ZS*}2o>yiH zq51@-$Y{sVji#ft5qXHxY}%EPIiSyjOC|e}|NFC-dURrXrw9_@dC~J*uC{v9*{kpY z9Xp_1JB2VA_R@FkIppW`mHd_(FRVPIac=b%He@#CN#q)UqwkO;6c*8GI$T>r(Jyiy z69S?$lEL_Iv>bf3d~STXk>Z9|7@)2RXf{p)C$8fC3bKn)%aylPd#1BXKrtkezenFQ zAvA^V*iB_~v<@C+a0DTs{G?j(oMXsknhn^07(oIVH~&t(@NmPJ{B2?t*Z$i0sAxvI z#|v*$wbWKum~)t^Xh)^*yO;X;N*&GpL=%1Yi4E>iO6Z+5Cq5Tvej301orhE-6et ziT|p~j;f8VWg>$4#dSoBwGRhF_LP`N4&B)>1G#5E^&$$d^b@c4NfcX11l|+LM z^I58fb2L(lA-ekXQ|!NrD~jo-fAp5Agu257waElE#ih_75qw#lz((z_#IQCFvHw?J zJlAtRZ&QHqj`2Ry+dRjl`wyNGO4#_Q0WDql!6&}?_b(pl0mU)RzN%f8PYbg(dQ#Z; zA|EFRzWoXNg6R&BUm1rJfV?pJS+q+itBgRn2&nCgN-~Neqs-KZcK5c1=M3Xo!VTzM z4Z>6Et_}c#&c~xD6m|~V=3^gv(T&O)YG1a~mVdI53AWI3S{6X9+JMN+FvLfKj|G-+ zIm&y~_jvTgToLa5GRf9G<>~|c=ZjPr<%)+8e3LVG5Nq;r6!m5?v=*4 zbe>m=j_dNo(`=m2ih(HDr~_rE zp7~^Yo{HQ;q72b^pUW1PjQxPA0e7n;8t%~Zg~|}P|0MmyI{7p+vb0K=l1mV4S7d8K zM7?I9>|u-&T3$+RyvuSzm(H^umaQ45a|=)(FLs666-+)!VtJ-53Lc5?eJZutwb-`= z*>ZC!{8l6%@a%qzSLqMId(T_7IU)~GBC+|MIQ(+BmF7!Dsb5! zR*C73tLW`Lq4>y(F5ar$jy|(|c$(!{#{TgrJPG=ddOh69>*@hLj4-GfRD_`Iu%L%{ z)>eM%#>tT4N?6wA;f0AlD;Fu<#)~(>W>Bs}bPs7w{YS6?c7am_maM#6=TzA&c;f*p z?jR(1P+ypBpK}w#iOqlIF`XU)tcG=31vew*z(eKK$V@?sEba zJJ*_xX*+ay1h9uZebE--whh>EaH{F2^RcDRtCI8 z*<%GA`>B>H3sL{c&QHHzU@YZxtFpiv;z$~YIT{x#9@1X?7_gC`*!`*zK$615)HGHw&|Qy?#-I({Oc`8Q z{Q2{|-TkaEswT^SyK*6oFIC+QO_luNsvTfPCpHodWIi>UC6a#RB^V37*JO#T4y)1ms=7FU{7yoT5fcMe_Z^y+#5y@ zFgi`VqnxK+LcNU(ouYh;IQBRRCr17OZ7jFc@zEYdjiFk<|}D(&g0!)DjV3G zc;R{D{nImhebrfa6Otz=oc@GtU2-2=?s2g#%vCZwq{dJU4P%dNXS1*?gPDj3x_jog zjHe5pAh~8QY)pEBZ)$JTs-_J-rX5)O*vPnh2$P8Yl=#pe$tgb6gH*LK-H(x0`{muW zs<}w^fJT+_>K#z;6U8eG<>oT;ENf4{imO(^2~p8O#e7v+Kvq6Z)M7oI%7CTj@#4CN z=p`7cB8arnBF80=){I+%a85#HLTn2g}uqJHl&jl(| z9YpQUMCs?fxrxzajCfT3z1=w**}GQ&_@t zWR8Z*Pwq*f@ZX1}G_?N0#(jV8Pr;xNYRL*j@Rfp)t)M%O8d9(^j`8_>p7QIx3c(3N zLinrJru2t({;rtc@BgmFT0UBn?=UC8UDc=fA@Qn$8=CI}c!HPM(c|g$tnM7kari4# zPiL(Z=$cfYw@EY=5|W)0ok)-WIYAG{)M+5*Jt>!qMj_uH!|XqPpAMW0k^52Ba5e*M z>52 z$p(iHQaB%>IRCN0FNgPyXb+6r;!OKKu#~wPO$teWLy)|9QE}Z&h7{BiH2a2ie^jj& zMio zCwSoov((oS^- z9nbl?y~eNGzoJ2pH*cTzhAgY|6r9(#!!wfL}h|$;R0pyP| z)pk3hrB0`ldtbJ68B>}A>N(vO6Zs&JE=i~;^h;)wI+0?SOBnioUeg+XqGO z$tIopDvXEN@hl4Jq|LU{^79;Rus{qG+{?HT%hu1b1AP}7tQ!C!$=95N56-o7$kU|# z{Ro1~eR!{L>96e&PlI$$a7RmqQH{GU@~W>K{#?~R9KeSJm1zre9JCI!X?)v}5nmrV zdw+xVb-lvN-%b(WY%r)L)AZGLRQtQ=eXR~_zfS?vEq0Kl1XN4F2Vt|-61>=tEbvm+ zE@izee`@~S&|-ecg$HFG`(fPoq5)fqvrCKrFyKNi8_{(-QHZCSa_rMt+Z*Q4qVnay zOZuS#%W{>JsCK?0aj!>3*nSn4L$_>+B%wHuN?`IA;nP%*G5d0FNSCmG zbkI&;uMkwY?IemnjoOL9JyE=6&6@aJ-D(wM20Z|l8qwXh{M+?SWoI0p!oa{Ke9(Ye z8?=<=i180}8Rhg`19D~@40Fk%h!klH0dHTtauC{H7cS)L`79a9A8+aF&nZH-FJEi6Li;$S6I=jKi1MP=LfN*xW>ka#{vT8cFu*YI`>e?>L7#pWkh zf!`NZQg~uXEgcA6o6x3B=zSF7(zZ9N@sL6hR`F&&-2~R^=^66*k7pfgDxuC`iG^Dtn3z8d}x=~6?(FZS-vl^NKS zbqHh>|7AuDwjlmBae!ah9=X+UV8X9W)nBi{GV?NV0pcRR6&7Rp+2}(qJHYBl~L<DOU z=L4>$8W$YKNqXy9=KMUD6sx}qwQ z6xLJ$bqCT&wY`94y*M_I6b*8%`Ol0~jaHV6tn@|}2VeUM#UV9)OQCCHB?N;X&q*l6 z8h4jZTIds_%UJx01!`aoH-b7;aAix1z{V`JzTNBu+fWKptItuVYEJoiEqHR9+KsI^ zm7^$1HWA&(2H##Ve{|1>U9}gjSNRqn)E@5|6qA}j*E&;g0MYxZ zlM}hSpn?rZB7;m=k-^!5+4iV4ng!h-k5Fkuz5mH!EO(F=Z2vZZ`puua z8MBgg$0=P`*(662^^@?m5m7Hg6`@TAc;YcPQvnasZ6VbYBiAef;c{kZ(gqnf1=_}g zo7x%gTr@nQ6JX4h^lxeiX9$Ts78WSBtt`l=u7fn*FE%mCjd$_o3h<|X)>H(DExRwv z*gU@En}$jc-2et_6Fn|(d|39Dczl5ZypQx{xL+*`hfq%asqQ?;#rw9n-+{<-a) z4Icmh^6UZ58_eT|*1uae=hmEFEltFwv>1=O7X>DFSMHaU&aDTT&sHi~0-9TWn=0Bc zmkbv12se}o-Xn;&35Jzs?g`EXu>zIVQq@R`83Z{VSPxqgXPD8)Qcb1;v&-RZw6y_? z0k$q}d3tdSHbF0-A*-tnI^E5VgMfP^jk?ed01u4~J0W(2P#fF9X6I~v!zrZ9>LFvr&^N_5rq_PJ|lqOR0S2Q+~lY- zOKG|eB`S*xB5KTLER(u~Swp=QiK!EIf9X#|?pjM}u>5jqdf!z0E^CbW1#q-n!tdkZ zSfnOfA|!uA<}!XNhNqtqJwB(Rjp)?E%MUML5L+PViW`VTGpW+6o=F@!Rkh?Qm>}vc zqt1HG;TK;IsMyGP*CdA+pDibH*97_biDr*R3Jqysj6<$cxNN66ETy8cm@tKbbrz6o zO#!)@k|?ri*gY&CRpX}iJy84+`*r6rgV@-(Xmm;Z>di|gGYNx(jU$_*Le2p8{U9M( zjR~&<`D(QgV-&^?6nv(ImoRclYxsP#T(WBAHgn!%{Hc8Reav&G>XwkWJ;+)>qcBD@C;Ql>6^Vp)t{kn3|Ss{Kf=FwNYh%7I@13H9X+$X+^n@@-#;m`7*b z7!qrImsx_AzS{s(@gT3E5JO-22?^M9<`qXDV+2lZP8p0DMgiwOm9|sqt}~3<;RvVN zXtBc^2Cv$bW8m=m>$90p`99ivgxZ(TFuj|Jt$e72^Fb@T+zMs!{uZOn?GgGu9+;?| zjFveJ-u2-VxqTA`l*oJ55PtSY(x8I-xw`s8Is0RZft~5VTStG|qN;#bVL-5nI>S#p z^?y6I{7awv?Qi!BGX5{*{u{C1`&0k1#J}hNzxK8M1Gzta0slYC_Fq;B_=jEY&$jq? zo&MQy|8d#=-roO{*ze{x{Le-H*-cLglh4puHI9vgZ=F6tfP<8{yjZD-q2J#aI;!+# z3?P3JPF1zb(n9@=fcE8Cf#*{K#-*+58->R?*G4vtWNzj~S89+194H}}Jhj)eCovGd z#NkqWJk=7ZFX<#D?nbxyB_ycTe6ANM5GBSE^B_N+^zC%xM>!l~z6yD~KLb8J=r8<{nUY03BORMGDGvf~@v* zEp*DiOylBvYe9G z>9uqg=u3|>(OEmZeHBlkHyv;=lQZ^VwuT(BI|TDHi~>ce{f1KYNh1;n=4v{DgWW}M z)bzl{H{LGHgk)JflQDcGlHwS^f+gs?P$zO^1<}pWLzR+Q3e=QU-_XSGULCtg9#MZd zMs$)CwG|x=DCcbHsD03qyvQ$Y7ax@hsAxG3sCe^h8XuWO)Y@t=(LmQs6*$wZb4dcLMShYVO#VZHa9GK z)-AeIA*+h!GZ4q+m$);bWuc+zBW@V?)mdRJ|3WHx-qQn!<9c05Cj z2Tgx9Q4m#F zpPR=HR2m8|*TaoJTk%L&nlzZK^#ve865cGzidF#0j1@%TQq(gKtxG2Xc5MC0u20$O zX2&oZ9>Pfhdj)}e2*H)Y6lWOKYK!y^3MtUrG$C$^wy6v$THExH(9oxG6v(~B6GjDZ zv6~vm!fZVl5lXOU(%NlSdpthqn*D$`Cnx)gS6#F~n_=aa1!>b&oz%iaX)2+I0rJj= ze-sB6&|)XciX)>5Ya^9?OH$YcS$rg5Q^VeujM1^^Je;=BDe}}a+AX8baQp<^XM0bX z8Bc=cnBp4d&?k8e9p#$T+pSrzw5fzpSH5pNS6-v!M!kILb)jdz`p4 ze=oiYL|Q8v-GYtKeLBf~cQ@~j+|!M97P;YjP~AFY)i2b53j-R~8pvig=T5pmi$yu* z&Mso^NxnZbRTkW>mWRgOiJh|xnW!%Jj%%dfw6_c6#XQc^3{#9feQ6jz9K%^Tv=4l5 zT`}ZUXd2=}?3H~d3id?E*EM?g+RONp7{v1;mc{o|i{mn5W9=+jH#p zM4lj@P}cO}Tj_P08S5~9@c<+^GHDxUcbeBB=q}g6=K1_RtQ6Gt%g#Y;#u~LBaRhZa z$-P+amtQ_UAv}y?=1Sy;KQVZW~UxrIF~hLfrQUknB8CMS!nV74mxU_lrChC zBT!qlT&_p_756hi_M`#!qVAjVY?y=R51pgTL|2f8jz zHDcOvJK+m97H(~!tzK`x$8+E7g`1dI@-8Y1?W18YKC(Mu9?3T;jR(M>38WD{Ua$NF zq!p=LU?%$Lhl@&)%lETwA~R-z-@$rO;NcMB^pLbh;19eXc7t8LvU{;aa#zAV!t$+w$kVYwy`Z%j_PCzZYrm1btY0l8FLkes)zkfEqb6pj!SL@HOEU$LLH7Pdt* zG~KL&PEG=*MEtJbB@F>3FIJ*c3IkM6G)ol}RMdL`8t*84@ZTh`PgHW}d;v@rFXyH0 zTWQ6z$4@8E*M+#edCylVClBNr+2VU+Q#R={sWK{E)K=Uqp2Iky^3Lf_RJ;FExurrt z+P-Jc=00r9juZXv<8*bQcS&l}6qA!T zlJDis%<_%~>2sp8c86p5Me>D`x2{PquC7UaCNHeDJi{b4a`GRzjAvFCLxjIwy#IMc z=1bZT>Hh84**DyxV+~7AWA`=<_89x`e>7)Z!-|h-Fl0vy2BfWy*CE1@!frIA6*ffQ ze-Q^h4l`3OV{-xx0w*|_%iO6MsKtlyLQ@{h78jol&n?c9MU-S!=)1&zeur9#Ui}}P z1OFFqaO;?t8kuuG-uTegeM={Rvql%C(9N%|K$^;|RMt`waJ!tH+P$FwPnQ zOvsah_M5Bc4<5CuL`?xmAXqum_^HVK4q(Di2wO83BNh)^Km6ipoi=TaU)nXzo zb!5AAesxLR*~Kx{;AY>s-nzbi^^43DK$IagpGZL#P~VzJ$t!o5>j|S%%5ce5Z{n=` zmXJe)r?ld$NT5Ea%gLq|TS%SbL5YJ}Hjz;g)oV)0b$LTPBuBFzo*7j}&kDYpmGF1c z#;mL%gtAzncvpbxM^}6H#(BW$jhk?)GoC}D@nBQ8?1j_wL_710*Z7F#!@3_j>jHe{xnK|__%B|U|(KTxV zM%0^DjiZvjcmOAuTv6beWX%VGqKC%pbo%F%3j3-dq3#mJr+C;T_Q$ZaMJyfvK>b7S z+Z;5~*6{f=zICbi@?bjK#fvAe)`hZ(J(O}GJ;p<`kQo-AFIe#5L>2mx!GVAgEI^r@pT;z;2*>2Z=(khJbIj6JOO6TKgUmxwvO{67w(6XvT^#V`*)z&lx}68 zFUvVcc8jKbatl6(Z^B1z^}FhT~a;X|u0T05e5W+16_D z&biRGVJrhYl{(}B1Xf5=Fnj^h-!$R1lJ)FW>6?0MJ$ZLMj7`Q&!tqN}ryI}@OJT27 zNodtbUZ{zAcnD)7PUlwGs=0^98w5GoROpwPh+d9|2fu6pF%8~G!gn-CtsZ(saM@>u z>Pfj_n#Tpv4Zl1xMOp}g1AhCsxU}6mhlx>4#Nd(wr&Yh%URR8S!(K7q5;Obe<>ozm z&0~)=l{*fGDhQnekQ^D1y_|@;!pD{2Rw2*M6su_>Ac$u*803T@R%W~>Q!eq1nI>2x z&HoH*$wg`+c3cWyKRmHK1QH`gXBqDxDI?(a;cE+#>Y%4;e@MJy9k6+!x_)sGDaVbf z#{&Zhk#&30H6|w&O8Hv+b?szSMTVLKclDn9?p&cUt9Grk<#+ELt{m6I(w*6-tzn*& zB!W(AX$150y9wO4Edo_13&lmZW7uB@x?Qdi;?N;@s0FGs4xg-_6jU8=ZP6_7cB>*S zBchy?MLaTchoIvs{ecAqo#??j)CB{(9t+h`x{ld^tK+_O^YoR7g&DXYeD_y43~7Ch z*IT%8^l+^ZNJOVqS_Dx&%O#7DgI=Im5l_#K1tU-?-X4Nh=WLKzjCQOgBfK94>O+2gWK|^r0hnH_ zgQOk0MH=t%p1-Nide{WFf?!_Lb|9(BU*&$Fc}1o)5KhlCn*B=bv-xhZP~T3yboEs$ z-Lpj7Nf#>J81Ib1o0c>4VrQoG72XspSGjBX@Zi)!UWw&Gj7?O|7R&zJ{3}ZS>ZbXY z$*?7(q+u^$#uqO}ORKyl;v3~86`BsQY|FQKW$`93Cnaw#^x*&`9%nokK=_FSY^>p` zM!y51u!16w;%GUTxvMXU`3Ag0&KkUKBOf3VSY0S*n8@Hq+*w`hcx5C&)6&*h5vh^i z#cTJ}zrrC8m39eHw&X<(l~KGC1&N{sOo?wtnVt6mJHrB{a*X!`zmuDXfhc#g1u+`j z{G0ZgR_(C-yYseQ-(t5VOn!J}(0Q``dDXw$t_b1ko@4GT2Q#I>VXtrvmW0&kF4ta%tO0wmVFM%8Ww_&M!9SGBF4(R&}M2&}Ze+jp(y74t}4_IJI?I%aGv z(h)3lpMs!}3pd{I;f^8kCAR!}!u6w@-*3+f@#+~QV*RR3z2~vr^L;G9Vupb;xB{#_ zO-ROa+s9ISR|&?pV3uqi1qwLnQFmuw-Z_#!0*P8YysKaNt{4K$a}DjEf`{w6t2};q ztNYNszn}%|l4TzDv3WNU%(QVRuSkJ@P?%>xaaTNk&J9rTb75C1-owb52`g zLSQ-%*_|QR;iK=5vq$P8988r=8%hn!|8!`>w;6`4wm> zYitqC;8w#Pk?`x{JK&%n_JXul_YRj(=`4mW4{&O@eZg#4~iou5!;aLQmu4wJCSdVpC7SB@?unQtp`mHL*Lt)*114UY=Yr~{W% z4rDI4iQ?`V+ygX!T#k&4m@OH&Fsi-6Zb6y#nmr193TjT*B)~bRC|K@Y7&oY1JQnw| zJb^F6TdAH|h^f(6r4xjl;oGXNIa6{;g1FwmM|&ojx-|Hy&5aFN!o7uqfRLbp0REj7 z_ivA3B=BR{#NN)u%+BTKb9h_V0JOn{2^`DMkeqJOMbP0w23B$u4h`>6%*!dy%c*@W zJr$K($^w^EfPM(st?fsAPGBgd4=imjCAZ z&Xf9);w*qo@hwwICVXe77T3JI;pDxWO~T zJSpbkyV`unFV_JBCN#LPs1b!P7>Sp<)PDHEtT*iYF|0RoZ+O~$Maqh1mx2Wry@{~$ ziH!!u?K3Iko>!K#fI3w524`FeOgduPuTnpD3vUBjKNVIqDSPxyeJ?1)i6VEb_7HJ4 zww4*>a$<^{P&m3}KC!!4oa)!^w(Ql8M^EAZuH&dDRm7;$MYBtYuo=7q{zL#MR4&9- zJ6(@lzQ{6g*P_H(2%(wpL<0TOG%#@39h3LH^>H=`bn=XpMA4>b3c0L?%kd&M!?@i( zE2b7p;FKRo5-^i-AdPRw&YD{?3CU>76fkxE&{A)B*+oSdY>tzXDRvldU$|Vnx;}K- zM9DUQ$1Fh1d$OK)=kZ*+Vk=u^Qdbf3QR0gu1yc@DBF_~ z2}-C|pbE;cVbn)+>J0iEVJ6ZQY?p!{{+=4K_p3g5kaeo^E`rh60O6tWEGcaJc9xvZEArVM=tqLgMn7UJeVh_d6Db%AQh@A=tH5mg zDmwmg!z|XV#@q+p?5*zLMM&sqxLjUJtb(O9g|m@}mG+osXjzux`Q%Z=yG?qv8ykm( ziZd=iN{QRY4oMOEe2=+3|aV4g`_cHVTdI`&#fi z`A44ZzTBqf>HvHK5RTckqKZ5>fNyc?WGIBUZ}={O?SQn3Z`W&dly?AENs&g~Q%`}p zA?)J-&;1LP9Hzi-Wzj17NFr#kX8^k}Qg3!!B48(^`7)TRBifEzi(E|liLvt zNZgBdXuIy1p)k2`1GCWknRnRLTL=)6WS$NPD^i_tb16axKKGU{C&p;L-9sYK+Tls< zLMHB530I-uCJ4?^S0aWD2sYM%4om)Ch0O%@APm*5-H=vONoxJ3g8Yk1bqHhdy?Ds8 zABvIWtYSeEACRgJtDw8osi*_Krg+?Uh}3!ZqL)f-cRPb+^@IKRb?ue>WxVr9Tjg~#hM z#UKpd_)VHUyCy3J%@@9%0=A0id{@Lvfhkey{si>xdls2hHca)cVd@C$FqKm5AK!W3 zSl+rLjw z!HN1nOX?it+WX^EU5~=Exh?U_bi+ws5nL47K0fhQ>vmM^BSwyWwrRC3)kEJeF^k1X z%VbDfS36zvr63i!@k`v%;Xp~=4m&Vh9IOhfu^*_Gq4dF#oa1(mDaOJ#+D||XA5f&1wUoaT(tXn_7G;!P)<*Qo)9YxG*J$tW3OYMG zb)`3}Ejnd#!2413E#f$(wMy7-bVLX}$7VlHO1~9rvJnFK;$s7r9wjzIzgBHfgZ1AYJxK*4!I!&nC^* zo^X5gb1Wly)t-1A`qp@LtXC@9GnE;9h&X;}Wp>&3z}RDsR@`H7VPCRqz~C}+E%MMZ zJBflhexLFJAdl)4F?F?wRgE*cEF^y8@U`JCBuzC5;Xr7m@bP8!nLouF&4(OGgQKSt zO0<9BPo43m+!kO^DNXD*Ht`#NinN{iwMhuFu;)Pd2}Av2{0C**zt#SE<}CRq$22ln zpZPOzgB2iWGZz;tJBwd1gQ5&16gI@aUv~2s4r&Mp{6EFOu?^%{6hiCY>3;(lgT^x< zRABf-3JL-O<8SGor6C{`jIGT~T*%p8{YJ(9DPB-GOTPye?+3rE0PAn!MxYJ{O0u7o z`4feM_*u}ugisKaBbC{J|*B-z&_e3C84%?5xbqoLyL)OwIpUg1_QF zKk>UigDdERBOdwB-2c4x&qk5e0hu_{{(^X(oQRrJq%Z&8r2oBiqYfxhml)-5 z$wA@HL{O(XAOSrp(6BS&udLS`iJ+KuL7sZ#41Y`eKNQRY6zN3w?{cN;g6efh|8XO5 zfgz{C$?!mLb>aW<+s`|q=z&gke&6wTfB!{^hWH6s{TU=cLM{Z9Kbz~X!}g~({by)1 og@6E|I^zB6*N88K*`L9E<^b+{oIlfmV+Npd7kXGO`=1y8A9yyg#{d8T delta 27053 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 diff --git a/SCR/TP05/ex1.1.c b/SCR/TP05/ex1.1.c new file mode 100644 index 0000000..46b76f6 --- /dev/null +++ b/SCR/TP05/ex1.1.c @@ -0,0 +1,20 @@ +#define _GNU_SOURCE +#include +#include +#include +#include +#include + + +int main(int argc, char *argv[]) +{ + int t[2]; + int size; + + assert(pipe(t) == 0); + + size = fcntl(t[0],F_GETPIPE_SZ); + + printf("size = %d\n",size); + return 0; +} diff --git a/SCR/TP05/ex1.2.c b/SCR/TP05/ex1.2.c new file mode 100644 index 0000000..c7d04ea --- /dev/null +++ b/SCR/TP05/ex1.2.c @@ -0,0 +1,24 @@ +#define _GNU_SOURCE +#include +#include +#include +#include +#include + +// ls -i -l /tmp >> log +// +int main(int argc, char *argv[]) +{ + + + int redirection = open("./log",O_WRONLY | O_APPEND | O_CREAT , 0644); + + assert(redirection >= 0); + // dup2 ferme 1, et duplique redirection + dup2(redirection,1); + close(redirection); + + execlp("ls","ls","-i","-l","/tmp",NULL); + assert(0); + return 0; +} diff --git a/SCR/TP05/prime.c b/SCR/TP05/prime.c new file mode 100644 index 0000000..b5075e2 --- /dev/null +++ b/SCR/TP05/prime.c @@ -0,0 +1,76 @@ +#include +#include +#include +#include +void filter(int p) +{ + while(1){ + int n; + ssize_t nb_read = read(0,&n,sizeof(int)); + if (nb_read <= 0) + break; + if ((n%p)!=0) + write(1,&n,sizeof(int)); + } +} + +void seq(int n) +{ + for (int i = 2; i <=n; i++) + write(1,&i,sizeof(int)); +} + +void chef(void) +{ + while(1){ + int p; + pid_t f; + int t[2]; + ssize_t nb_read = read(0,&p,sizeof(int)); + if (nb_read <= 0) + break; + + printf("new prime %d\n",p); + pipe(t); + f = fork(); + if (f == 0){ + close(t[0]); + dup2(t[1],1); + close(t[1]); + filter(p); + exit(0); + } + close(t[1]); + dup2(t[0],0); + close(t[0]); + } +} + +int main(int argc, char *argv[]) +{ + pid_t p; + struct sigaction sa = {0}; + sigemptyset(&sa.sa_mask); + sa.sa_flags = SA_NOCLDWAIT; + sigaction(SIGCHLD,&sa,NULL); + int t[2]; + int N = strtol(argv[1],NULL,0); + + pipe(t); + p = fork(); + + if (p == 0){ + close(t[0]); + dup2(t[1],1); + close(t[1]); + seq(N); + exit(0); + } + close(t[1]); + dup2(t[0],0); + close(t[0]); + chef(); + return 0; +} + + diff --git a/SCR/TP06/ex2.c b/SCR/TP06/ex2.c index 8c254f4..5af9ba0 100644 --- a/SCR/TP06/ex2.c +++ b/SCR/TP06/ex2.c @@ -2,62 +2,102 @@ #include #include #include +#include + +#define ELIMINE -1 typedef struct duel{ - int participant1; - int participant2; + int* liste; + int debut; + int tailleGroupe; } duel; -void *tournois(void *thread_id) { - int id = *((int *) thread_id); - printf("Hello from thread %d\n", id); +void affichage(int* liste, int capacite){ + int i; + for(i=0; i participant1){ + return debut + indiceParticipant1; + } + else{ + return debut + i; + } + } + } + } + return -1; +} + +void *tournois(void *argument) { + duel duo = *((duel*) argument); + int i; + int perdant = plusPetit(duo.liste, duo.debut, duo.tailleGroupe); + duo.liste[perdant] = -1; return NULL; } int puissance2(int n){ - for (int p=1; pnom = argv[i]; - participant->id = i; - } - while (nbDuel > 1){ - for (int i = 0; i < nbDuel; i++){ - duel[nbDuel] tabDuel; - participant participant2; - for (int x=0, y=0, ) - participant duel[] = {participant[i], participant[i+1]}; - assert( pthread_create(&threads[i], NULL, tournois, &participant[i]) == 0); + while (nbDuel>=1){ + pthread_t threads[nbDuel]; + duel argument[nbDuel]; + int i; + for (i=0; i +#include +#include +#include +#include + +typedef struct structure{ + int debut; + int fin; + int saut; + int* resultat; +} structure; + +static inline double tstamp(void) +{ + struct timespec tv; + clock_gettime(CLOCK_REALTIME, &tv); + return tv.tv_sec + tv.tv_nsec * 1.0e-9; +} + + +void *somme(void *argument) { + structure data = *((structure *) argument); + for (; data.debut<=data.fin; data.debut += data.saut){ + *data.resultat += data.debut; + } + return NULL; +} + +int main(int argc, char* argv[]) { + assert(argc-1 == 2); + int limite = (int) strtol(argv[1], NULL, 0); + int nbThread = (int) strtol(argv[2], NULL, 0); + int sommeFinal = 0; + double startTime, endTime; + int resultatThread[nbThread]; + pthread_t threads[nbThread]; + structure argument[nbThread]; + + for (int i = 0; i < nbThread; i++){ + argument[i].debut = i; + argument[i].fin = limite; + argument[i].saut = nbThread; + resultatThread[i] = 0; + argument[i].resultat = &resultatThread[i]; + } + startTime = tstamp(); + for (int i = 0; i < nbThread; i++){ + assert( pthread_create(&threads[i], NULL, somme, &argument[i]) == 0); + } + + for (int i = 0; i < nbThread; i++){ + assert( pthread_join(threads[i], NULL) == 0); + sommeFinal += *argument[i].resultat; + } + endTime = tstamp(); + printf("somme : %d\ntemps : %lf\n", sommeFinal, endTime-startTime); + + return EXIT_SUCCESS; +} diff --git a/SCR/TP06/exe b/SCR/TP06/exe new file mode 100755 index 0000000000000000000000000000000000000000..f4ed8955eec5b4e82ff02ea4f68c2ef73a264df4 GIT binary patch literal 21000 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