Élève en POO

On souhaite dans cet exercice créer une classe Eleve ayant quatre attributs :

  • un prénom prenom de type str ;

  • un nom nom de type str ;

  • une classe classe de type str ;

  • des moyennes moyennes de type dict. Ce dictionnaire associe à des intitulés de matières (str), les moyennes correspondantes (au format int ou float).

Cet exercice est en plusieurs parties et demande de compléter la classe Eleve en ajoutant différentes méthodes.

ajout_methodes_precedentes

A partir de la deuxième question, la fonction ajout_methodes_precedentes est appelée avant les tests afin de compléter votre travail en ajoutant les corrigés des questions précédentes à la classe Eleve.

Méthode __init__

Lors de la création d'un objet de type Eleve, on fournit les valeurs des attributs prenom, nom et classe (dans cet ordre).

L'attribut moyennes est initialement vide.

Compléter la méthode __init__ (aussi appelée « constructeur » en Python) de la classe Eleve.

Exemple
>>> albert = Eleve("Albert", "Einstein", "Te2")
>>> albert.prenom
'Albert'
>>> albert.nom
'Einstein'
>>> albert.classe
'Te2'
>>> albert.moyennes
{}

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : 10/10

.128013ben,4viE3mo5_tPh}klpwf(: cg.a=ryS6u/{2)s1d050Q0c0o0D0h0t0O0z0A0t0D0O0O0E010o0h0u010406050O0J0k0k0D0F0G040H0l0t0J0+0l0d050K0=0@0_0{0:0u04051b141e0K1b0:0Q0h0g0Z0#0%0)0q0h0B0q0t1s0q0o0.050U0b0t0c1n0$0(011r1t1v1t0o1B1D1z0o0F1c0o0q0Z0~0O0u0D0d0)0M011F1p010w0W0c0d0D0k0c1z1Y1!1)1H1,1D1/1;0.0a0z0p0F0l0u0l0O0h110d0z0S1W0F0F0c0A29141@0d1c0K1U2m1R1T1S1A0Q1_0)1v0d1.261z1k1m0!1G2w0h2y0d0l2C1z0u2f1c2k2m2Q0;1Z2a2E1*2J0F0^0t0.0P2j2U0/2T1^2W1H2Y2!0.0M2(1!2*2k2v012/0D2#040j2?2l0:2_2-0)2|2~0f312^2U2`370.0m3a333c352{0l2Z2}0.0I3a1f2O142C2p0Q1T2u3k0A2K1=1c3v1d3t2S152)053B0S2P3j1o1H0s0.2-3r343Q0)0v0.0z3V3P2F2{0A0.0i1D0g0c3$2,3X010-040y3h0z3{3#3W3(3S040S0w3:2V3=3Z043#3J2@2+453(0w0k0.0n0n2H284i442`3@0x4n3k0b3@0O0c0t434a2l4c4o0.0e3a3}3%2X0.2N2z0k4r3=3@4E4z484B3k0d0.2J4M4R4T4O4D4F4!3(4V042-3/4Z3~1*3@0N3_4R063|4_4G3;3(4t0.4v4x4N3(0l0.0C524I044K4X4%4/1H54040E5c4H2.4J2f5b4@4`3|4(1*4~04504y2S5d0)5f564.5j364W0l4Y2Q4{4d1*5f5h4R5J3d5F5H2)4^5p5P4s4u4w5w3K5y015A575k4+3Q4-5I5r5e0.5N5.5$4*4,3`5V5/0)5t5v5)5z55602{0.0k0l0G1.2y0O5i4|5L5;6c5K1H3@0L0r3h143M0c2m4K2m3F2n3x142q6w0D1C6p3u1l2*0K0S0U0W0O04.

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : 10/10

.128013ben,4viE3mo5_tPh}klpwf(: cg.a=ryS6u/{2)s1d050Q0c0o0D0h0t0O0z0A0t0D0O0O0E010o0h0u010406050O0J0k0k0D0F0G040H0l0t0J0+0l0d050K0=0@0_0{0:0u04051b141e0K1b0:0Q0h0g0Z0#0%0)0q0h0B0q0t1s0q0o0.050U0b0t0c1n0$0(011r1t1v1t0o1B1D1z0o0F1c0o0q0Z0~0O0u0D0d0)0M011F1p010w0W0c0d0D0k0c1z1Y1!1)1H1,1D1/1;0.0a0z0p0F0l0u0l0O0h110d0z0S1W0F0F0c0A29141@0d1c0K1U2m1R1T1S1A0Q1_0)1v0d1.261z1k1m0!1G2w0h2y0d0l2C1z0u2f1c2k2m2Q0;1Z2a2E1*2J0F0^0t0.0P2j2U0/2T1^2W1H2Y2!0.0M2(1!2*2k2v012/0D2#040j2?2l0:2_2-0)2|2~0f312^2U2`370.0m3a333c352{0l2Z2}0.0I3a1f2O142C2p0Q1T2u3k0A2K1=1c3v1d3t2S152)053B0S2P3j1o1H0s0.2-3r343Q0)0v0.0z3V3P2F2{0A0.0i1D0g0c3$2,3X010-040y3h0z3{3#3W3(3S040S0w3:2V3=3Z043#3J2@2+453(0w0k0.0n0n2H284i442`3@0x4n3k0b3@0O0c0t434a2l4c4o0.0e3a3}3%2X0.2N2z0k4r3=3@4E4z484B3k0d0.2J4M4R4T4O4D4F4!3(4V042-3/4Z3~1*3@0N3_4R063|4_4G3;3(4t0.4v4x4N3(0l0.0C524I044K4X4%4/1H54040E5c4H2.4J2f5b4@4`3|4(1*4~04504y2S5d0)5f564.5j364W0l4Y2Q4{4d1*5f5h4R5J3d5F5H2)4^5p5P4s4u4w5w3K5y015A575k4+3Q4-5I5r5e0.5N5.5$4*4,3`5V5/0)5t5v5)5z55602{0.0k0l0G1.2y0O5i4|5L5;6c5K1H3@0L0r3h143M0c2m4K2m3F2n3x142q6w0D1C6p3u1l2*0K0S0U0W0O04.
Méthode modifie_moyenne

La méthode modifie_moyenne prend deux paramètres, un intitulé de matière (str) et une moyenne (au format int ou float) et ajoute ce couple (clé: valeur) à l'attribut moyennes d'un objet Eleve.

Écrire la méthode modifie_moyenne.

Exemple
>>> carl = Eleve("Carl Friedrich", "Gauss", "Te3")
>>> carl.modifie_moyenne("arithmétique", 20)
>>> carl.modifie_moyenne("chimie", 12)
>>> carl.moyennes
{'arithmétique': 20, 'chimie': 12}
>>> carl.modifie_moyenne("chimie", 13)
>>> carl.moyennes
{'arithmétique': 20, 'chimie': 13}

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : 10/10

.128013ben,49viE[3mo5_tPh}klpwf(: cg.a=ryS6]u/72){s18d050V0c0q0F0i0v0S0B0C0v0F0S0S0G010q0i0w010406050S0M0m0m0F0H0I040J0n0v0M0:0n0d050N0`0|0~100^0w04051g191j0N1g0^0V0i0h0(0*0,0.0s0i0D0s0v1x0s0q0?050Z0b0v0c1s0+0-011w1y1A1y0q1G1I1E0q0H1h0q0s0(130S0w0F0d0.0P011K1u010y0#0c0d0F0m0c1E1%1)1.1M1;1I1@1_0?0a0B0r0H0n0w0n0S0i160d0B0X1#0H0H0c0C2e191|0d1h0N1Z2r1W1Y1X1F0V1~0.1A0d1?2b1E1p1r0)1L2B0i2D0d0n2H1E0w2k1h2p2r2V0_1(2f2J1/2O0H0}0v0?0T2o2Z0@2Y1}2#1M2%2)0?0P2-1)2/2p2A012@0F2*040l2{2q0^2~2=0.31330f362}2Z2 3c0?0o3f383h3a300n2(320?0K3m2:2!1t2?3r2^040O3w393z3b3B3t040U3F3o3H3q3s330g3f1k2T192H2u0V1Y2z3p0C2P1`1h3Y1i3W2X1a2.053(0X2U3O2K010u0?2=3U3G3`0x0?0B3 3_2$0C0?0j1I0h0c452;3P0=040A3m0B4l44401/3|040X0y4e3y41434u2 0y0m0?0p0p2M2d4D4y3p4h0z4I3P0b4h0S0c0v4t3:2|3x2 4h0e3f4n462?0?2S2E0m4M3`4Y4!4W3p0d0?2O4+4U2q4:4g0?4Z4_044#4f3`4=042=4d4 4{4-0?0Q4j4 064m5g514v1/4O0?4Q4S4,1/0n0?0E5p4%044)4@4/4o1M5r040G5z4$3b4(2k5y5e5h4m595k4P4R4T2X5A0.5C5t585U304?0n4^2V5i2 5C5E4 5)4;5#5%2.5f5M5.4N5Q5o5Y5G015W5u5H553z575(5O5B0?5,655Z54564k5@660.5l045n5S3;5Z5 5|522$0?0m0n0I1?2D0S5F6q675D6z5j1M4h0R0t3m5?4l6g3{0?4s600142506Q0d0y6s2P0i1;0c0p6t6v0d2D6Q4K6Q6i6k6+4}6D3i6s0F0:0c2k6:044~6a5}546%6w646m5}4h5c6e5M6M6.5R6Q6o5T706X6(6x6|0k6U6@6_6{6p6E0.4h0L6=3p5+7w3P716u733w0N3?0c2r4)2r3,2s3!192v7O0F1H7H3X1q2/0N0X0Z0#0S04.

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : 10/10

.128013ben,49viE[3mo5_tPh}klpwf(: cg.a=ryS6]u/72){s18d050V0c0q0F0i0v0S0B0C0v0F0S0S0G010q0i0w010406050S0M0m0m0F0H0I040J0n0v0M0:0n0d050N0`0|0~100^0w04051g191j0N1g0^0V0i0h0(0*0,0.0s0i0D0s0v1x0s0q0?050Z0b0v0c1s0+0-011w1y1A1y0q1G1I1E0q0H1h0q0s0(130S0w0F0d0.0P011K1u010y0#0c0d0F0m0c1E1%1)1.1M1;1I1@1_0?0a0B0r0H0n0w0n0S0i160d0B0X1#0H0H0c0C2e191|0d1h0N1Z2r1W1Y1X1F0V1~0.1A0d1?2b1E1p1r0)1L2B0i2D0d0n2H1E0w2k1h2p2r2V0_1(2f2J1/2O0H0}0v0?0T2o2Z0@2Y1}2#1M2%2)0?0P2-1)2/2p2A012@0F2*040l2{2q0^2~2=0.31330f362}2Z2 3c0?0o3f383h3a300n2(320?0K3m2:2!1t2?3r2^040O3w393z3b3B3t040U3F3o3H3q3s330g3f1k2T192H2u0V1Y2z3p0C2P1`1h3Y1i3W2X1a2.053(0X2U3O2K010u0?2=3U3G3`0x0?0B3 3_2$0C0?0j1I0h0c452;3P0=040A3m0B4l44401/3|040X0y4e3y41434u2 0y0m0?0p0p2M2d4D4y3p4h0z4I3P0b4h0S0c0v4t3:2|3x2 4h0e3f4n462?0?2S2E0m4M3`4Y4!4W3p0d0?2O4+4U2q4:4g0?4Z4_044#4f3`4=042=4d4 4{4-0?0Q4j4 064m5g514v1/4O0?4Q4S4,1/0n0?0E5p4%044)4@4/4o1M5r040G5z4$3b4(2k5y5e5h4m595k4P4R4T2X5A0.5C5t585U304?0n4^2V5i2 5C5E4 5)4;5#5%2.5f5M5.4N5Q5o5Y5G015W5u5H553z575(5O5B0?5,655Z54564k5@660.5l045n5S3;5Z5 5|522$0?0m0n0I1?2D0S5F6q675D6z5j1M4h0R0t3m5?4l6g3{0?4s600142506Q0d0y6s2P0i1;0c0p6t6v0d2D6Q4K6Q6i6k6+4}6D3i6s0F0:0c2k6:044~6a5}546%6w646m5}4h5c6e5M6M6.5R6Q6o5T706X6(6x6|0k6U6@6_6{6p6E0.4h0L6=3p5+7w3P716u733w0N3?0c2r4)2r3,2s3!192v7O0F1H7H3X1q2/0N0X0Z0#0S04.
Méthode moyenne_de

La méthode moyenne_de prend en unique paramètre un intitulé de matière (str) et renvoie la moyenne de cet élève dans cette matière.

Si l'élève ne possède pas de moyenne dans cette matière, la fonction renverra None.

Écrire la méthode moyenne_de.

Exemple
>>> donald = Eleve("Donald", "Knuth", "Te7")
>>> donald.modifie_moyenne("informatique", 20)
>>> donald.modifie_moyenne("musique", 13)
>>> donald.moyenne_de("informatique")
20
>>> donald.moyenne_de("musique")
13
>>> donald.moyenne_de("lancer de javelot")
>>>

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : 10/10

.128013beqên,4é9viE[3mo5_tR;Ph}klpwNf(: cg.a=ry0S6]u/72){As18d050%0c0t0L0l0A0!0H0I0A0L0!0!0M010t0l0B010406050!0T0p0p0L0N0O040Q0q0A0T0{0q0f0H020L0p0B0v0H0u0c150N0d0T0c0!050U12141618100B04051D1w1G0U1D100%0l0k0:0=0@0_0x0l0J0x0A1U0x0t0~050+0b0A0c1P0?0^011T1V1X1V0t1%1)1#0t0N1E0t0x0:1b0!0B0L0f0_0W011+1R010E0-0c0f1j0c1#2123281-2b1)2e0p2g040a0H0w0N0q0B0q0!0l1e1g0)1 0N0N0c0I2B1w2i0f1E0U1}2N1`1|1{1$0%2k0_1X0f2d2y1#1M1O0;1,2X0l2Z0f0q2%1#0B2G1E2L2N2^11221g2)292.0N150A0~0H0#2K2|0 2{2j2~1-3032340W3723392L2W013e0L33040H0o3i2M103l3c0_3o3q0H0h3u3k2|3m3A340r3E3w3G3y3n0q313p340R3L3a2}1Q3d3Q3f3r0V3V3x3Y3z3!3S3r0$3(3N3*3P3R3B0j3:3b3=3I040#0P3`3X2*3?3#0#361x383M3{433}0#3h483j4a422 3,3q0#3t4g3v3W3H4l0~0#3D4p3F4b4k3@4u3K4x1H2?1w2%2Q0%1|2V3O0I2/2q0(1N1E2=0c2@383E054O0)4W4z1-0z0~3c4Y3)430C344,3;4c0I0~0m1)0k0c4;4%0_0}040G3L0H540H4r3O4)040)0E4}4j1-4/3r5d3m0E0p0~0s0s2,2A5n5i3O500F5s3=0b500!0c0A5c4E4-29500g3E565F3d0~4U2.0p5w435H5J573|0~5P5R5G0~5I4x5K4=2 4*3Y4|5E5)1-500X524x06555_5(4~015y0~5A5C5Z1-0q0~0K623z5N2G5Y5%5V4364040M5U5L68045O0q5Q5@5`556d295~04605D2`6j016f665.5|0f5X6n6i5/0_6f6h6c6z6F046b2^5^6q5{5e0_6u6w676A656!6P3c5-2^6V3m6L6I6E5+1,6*496U6,3O6Y5B6x4X6z6B6%0~0p0q0O2d2Z1v6N6J6#6g6/6W01500Y0y3L6T546s4(0~5b6!5g566D7e0f0E722/0l2b0c0s73750f2Z6!5u6!6{617t3m5T796:04150{0c2G7H5#7d3H7x7E7G7M5t0~5=536U7m6X5z6|6!707%5W7R74761u7W040n717R0L7T7V7?5S0~0S7Y3O6.7P7u7!7`7j5_7-01597p84297r6%7w7^7#7B0)7|5v8l1-7K6}3j8h7O6+8h6P7S0l7U6?8A6z5;5?6S6^8h597z887@8G8I8T6e5g2,8X6t7/7L6y7a7=8)7Q7D7`788,7e508N6@6^6r6z592G0t0T0N0f8#8x8%8z2M8h8+6~7a8F7_7F7{8w4 0~7~9f3n72818H838;7N867+6q8Q0~5B5A7|8@4h8_8`7a8|0*8 918b3m0z4@040D1f8J4q0U4!4V4F9T0U4I1w0t4K9Y2T2O0L1(9V4I1C4$7e2G0p0s0E0L0z7B0x0o0~1o1q1s1u0H9z961J391D9N0t1f0!0g0H1s002d2t0O1}1faa0T2Z0H0E1f2I0l1f0H0!230/4Z4P3m1/1W1Y1!9-9J0~8}9G4Y9R4P3r6a0k0q8H0H220N0H0%0i9=1d569Say1Y1;1Z2h9D9L9N7$2`aJ4#6C1K1F040Z2,2z0H1)1 2D2=0i0I0i0)0f0taQ0q8 0N0,b40e1`1*a 0N2Aasaua`1*aw2D3Oaza$aC9u049w9P2N9S3r1s0las7Ub90H0J0i0N0i0H0l1k1X0I2A1p2db45?a;2%a!1:aB2;4Ga-2`bwbr8k9p3O8n9j7v8d9d0s8t9j7I9j8y7|5$8D6O9l82bu8B7)a10 8g8{0~8S9I3O8F9m8Wc73=0q8Z9Hb`7ab@9j988K9ab-779y9s5`braG90927.5 7:ck6$b+co9eb(3=509icF4cb|9nb~8L9r5@1wb#1J4G9W4S109W0*0,0.04.

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : 10/10

.128013beqên,4é9viE[3mo5_tR;Ph}klpwNf(: cg.a=ry0S6]u/72){As18d050%0c0t0L0l0A0!0H0I0A0L0!0!0M010t0l0B010406050!0T0p0p0L0N0O040Q0q0A0T0{0q0f0H020L0p0B0v0H0u0c150N0d0T0c0!050U12141618100B04051D1w1G0U1D100%0l0k0:0=0@0_0x0l0J0x0A1U0x0t0~050+0b0A0c1P0?0^011T1V1X1V0t1%1)1#0t0N1E0t0x0:1b0!0B0L0f0_0W011+1R010E0-0c0f1j0c1#2123281-2b1)2e0p2g040a0H0w0N0q0B0q0!0l1e1g0)1 0N0N0c0I2B1w2i0f1E0U1}2N1`1|1{1$0%2k0_1X0f2d2y1#1M1O0;1,2X0l2Z0f0q2%1#0B2G1E2L2N2^11221g2)292.0N150A0~0H0#2K2|0 2{2j2~1-3032340W3723392L2W013e0L33040H0o3i2M103l3c0_3o3q0H0h3u3k2|3m3A340r3E3w3G3y3n0q313p340R3L3a2}1Q3d3Q3f3r0V3V3x3Y3z3!3S3r0$3(3N3*3P3R3B0j3:3b3=3I040#0P3`3X2*3?3#0#361x383M3{433}0#3h483j4a422 3,3q0#3t4g3v3W3H4l0~0#3D4p3F4b4k3@4u3K4x1H2?1w2%2Q0%1|2V3O0I2/2q0(1N1E2=0c2@383E054O0)4W4z1-0z0~3c4Y3)430C344,3;4c0I0~0m1)0k0c4;4%0_0}040G3L0H540H4r3O4)040)0E4}4j1-4/3r5d3m0E0p0~0s0s2,2A5n5i3O500F5s3=0b500!0c0A5c4E4-29500g3E565F3d0~4U2.0p5w435H5J573|0~5P5R5G0~5I4x5K4=2 4*3Y4|5E5)1-500X524x06555_5(4~015y0~5A5C5Z1-0q0~0K623z5N2G5Y5%5V4364040M5U5L68045O0q5Q5@5`556d295~04605D2`6j016f665.5|0f5X6n6i5/0_6f6h6c6z6F046b2^5^6q5{5e0_6u6w676A656!6P3c5-2^6V3m6L6I6E5+1,6*496U6,3O6Y5B6x4X6z6B6%0~0p0q0O2d2Z1v6N6J6#6g6/6W01500Y0y3L6T546s4(0~5b6!5g566D7e0f0E722/0l2b0c0s73750f2Z6!5u6!6{617t3m5T796:04150{0c2G7H5#7d3H7x7E7G7M5t0~5=536U7m6X5z6|6!707%5W7R74761u7W040n717R0L7T7V7?5S0~0S7Y3O6.7P7u7!7`7j5_7-01597p84297r6%7w7^7#7B0)7|5v8l1-7K6}3j8h7O6+8h6P7S0l7U6?8A6z5;5?6S6^8h597z887@8G8I8T6e5g2,8X6t7/7L6y7a7=8)7Q7D7`788,7e508N6@6^6r6z592G0t0T0N0f8#8x8%8z2M8h8+6~7a8F7_7F7{8w4 0~7~9f3n72818H838;7N867+6q8Q0~5B5A7|8@4h8_8`7a8|0*8 918b3m0z4@040D1f8J4q0U4!4V4F9T0U4I1w0t4K9Y2T2O0L1(9V4I1C4$7e2G0p0s0E0L0z7B0x0o0~1o1q1s1u0H9z961J391D9N0t1f0!0g0H1s002d2t0O1}1faa0T2Z0H0E1f2I0l1f0H0!230/4Z4P3m1/1W1Y1!9-9J0~8}9G4Y9R4P3r6a0k0q8H0H220N0H0%0i9=1d569Say1Y1;1Z2h9D9L9N7$2`aJ4#6C1K1F040Z2,2z0H1)1 2D2=0i0I0i0)0f0taQ0q8 0N0,b40e1`1*a 0N2Aasaua`1*aw2D3Oaza$aC9u049w9P2N9S3r1s0las7Ub90H0J0i0N0i0H0l1k1X0I2A1p2db45?a;2%a!1:aB2;4Ga-2`bwbr8k9p3O8n9j7v8d9d0s8t9j7I9j8y7|5$8D6O9l82bu8B7)a10 8g8{0~8S9I3O8F9m8Wc73=0q8Z9Hb`7ab@9j988K9ab-779y9s5`braG90927.5 7:ck6$b+co9eb(3=509icF4cb|9nb~8L9r5@1wb#1J4G9W4S109W0*0,0.04.
Méthode moyenne_simple

La méthode moyenne_simple calcule et renvoie la moyenne générale de l'élève. Celle-ci se calcule en effectuant la moyenne des moyennes.

Si l'élève n'a aucune moyenne, la fonction renverra None.

Écrire la méthode moyenne_simple.

Exemple
>>> jane = Eleve("Jane", "Goodall", "Te3")
>>> jane.modifie_moyenne("éthologie", 20)
>>> jane.modifie_moyenne("théorie des groupes", 14)
>>> jane.moyenne_simple()
17.0

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : 10/10

.128013bqê,9vià3o_x;}lpwf( g0]6)2As1+8ené4E[m5tCRPhkN:c.a=rySu/7{d050+0G0O0Y0h0p0C0u0W0p0Y0C0C0Z010O0h0q010406050C0%0M0M0Y0!0#040$0k0p0%0 0k0H0u020Y0M0q0n0u0Q0G190!0c0%0G0C050(16181a1c140q04051H1A1K0(1H140+0h0g0@0_0{0}0S0h0v0S0p1Y0S0O12050/0b0p0G1T0`0|011X1Z1#1Z0O1+1-1)0O0!1I0O0S0@1f0C0q0Y0H0}0A011/1V010s0;0G0H1n0G1)25272c1;2f1-2i0M2k040a0u0R0!0k0q0k0C0h1i1k0-230!0!0G0W2F1A2m0H1I0(212R1~201 1*0+2o0}1#0H2h2C1)1Q1S0^1:2#0h2%0H0k2+1)0q2K1I2P2R2|15261k2-2d2=0!190p120u0D2O30132 2n321;3436380A3b273d2P2!013i0Y37040u0j3m2Q143p3g0}3s3u0u0J3y3o303q3E380N3I3A3K3C3r0k353t380y3P3e311U3h3U3j3v0)3Z3B3$3D3(3W3v0F3,3R3.3T3V3F0f3@3f3_3M040D0w3~3#2.3`3)0D3a1B3c3Q3 47410D3l4c3n4e46333:3u0D3x4k3z3!3L4p120D3H4t3J4f4o3{4y3O4B4m4w4F423Y4I4v3S4h3+4O3-4g4x423?4T3^4V4L0D3}4Z4D3%4L0A444)4n4+3)0A4b2|4J4Q4W0A4j2~1N2`1A2+2U0+202Z3S0W2?2u0,1R1I2_0G2{3c3I05580-5g4*0}0T123g5i4U2d0r385s4!330W120K1-0g0G5x5n0111040V3P0u5N0u4P3_5p040-0s5G4:0}5v3v5W3q0s0M120l0l2:2E5*5#3S5J0t5/3_0b5J0C0G0p5V4B5Q475J0e3I5P5t3h125e2=0M5?6012624B645y6604696b2d61635 335q3$5F5~650}5J0z5L4I5O6B6g5H5^125`5|6l1;0k120X6J3D672K6k6f6p6K120Z6o6v3r6Q2(6a6A6C5N6U0}6F046H5}2~6Z6L046N6u6h6P6j0k6%2|6D5X016?6X6T6Z0H126S4^6)6*6Z6-6/6O726M7g77043g6t6 6+7h04747o766r1:7n4d7b703q7e5{6:5h6=7i6_5H7k0M0k0#2h2%1z756`7q7s3c7A5:120*0o3P066B7p5S5U7g5Z5P7I710H0s127L1Q2f0G0l7L7N0H2%7g5;7g7C6I7.3q6n7R7J7=0Y0 0G2K7 6d6Y7S7K7M7O7x3n7p6x6z7a7b7p827E8m7G6@7j7=8j7}1y8e040L8y04198b8d847X040x8g5H738P7/8z7|7~4I7$5O7(127*8L3_7,7j7;8H8A2%0l0-8D5=8%478t8D6e7t8h898J8l2Q8n126y5M8r6Z5S0h8u2Q7W408}0h8c8 5!6=5Z2:8S7B5_7D7g6?6^6;8|8,8V8C8?6m128p7y7z8Z96122K0O0%0!0H9l3S8^9x6V8x9O6{7{8k7Q9s5H5J8F9R6!8H8a9e8K9W715J8O8X7%9E5T0G995m718)9!7:8U8k0l2D1o1-8;819n839*85929A4l7z8!04989L400b122ra29!9Na63S9q8G9T8B9V7F7S6xaf476?020v0O0nax2d0M0h124.an3_5Ja93z9C9D9t0O0k0/0paE9P7U3n9b47aGaI94aPac0s3UaW9S7Ma-729j9K8771amau8Q7HaK4g9|as9pa|a`8T040g3t1xat8vav120t936(aP9/aRaT3ta:6?0EaY9a7p8i0#a(9Cac9G9Ia?8{8804aSaUbl120(a:0Hah04aj9!80ala49?7pap9`a 7P8D0zbtbh5H5S5{5`8DaN13bga!2d5Sbw9Ja:0T5A040U1j9g140(5k5f1L500(521A0O54c32X2S0Y1,b~c15c1G9@3q2K0M0l0s0Y0T7_0S0j121s1u1w1y0ub)1L3d1H0P6}2t0u2:1Q1w0I0u0+270?0p000G0m8c0W0h0W1.2_0I0W0I0-0H0O0e0u1-5Pb}3q1?1!1$1(cf3Sb#0=9g915Kb;9F0.bxb;b?b^8W4~b}3v0q0G1h0u0d1~1.6}0h0C6^1O1J040B2:2Dc%1.c*cVcXcZ0O0u1yds0I1w1R3t2hds0icvcx1P1Rc+1$1^1%2^504~2~d3ac8$a}5u5w9`8+ar8.9 0qa1bMbca36G9od$04be8q7c7S979?b,3hbJbLdS1;bNd`6,bPb19Qd}9#dX9we2awa@3qazaBaDe83Sa$04aJb3a7c_bf6Cbq12bCbked3_8Rera#aHegbYaQb!12a+0!bH8Ubla=a:a_baa{e1ei4QbUe5eNesb2eKb4b61geQeUejbdb)8Ya)7ubBbjaVeu2dbmbo9h9t7{eyd/eA04b/by7Vene*bDe-9PbGf13Dd^2hake2eJ908w9reRa~9u9UbW3Zb|592R5e2R52b{0-0/0;0C04.

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : 10/10

.128013bqê,9vià3o_x;}lpwf( g0]6)2As1+8ené4E[m5tCRPhkN:c.a=rySu/7{d050+0G0O0Y0h0p0C0u0W0p0Y0C0C0Z010O0h0q010406050C0%0M0M0Y0!0#040$0k0p0%0 0k0H0u020Y0M0q0n0u0Q0G190!0c0%0G0C050(16181a1c140q04051H1A1K0(1H140+0h0g0@0_0{0}0S0h0v0S0p1Y0S0O12050/0b0p0G1T0`0|011X1Z1#1Z0O1+1-1)0O0!1I0O0S0@1f0C0q0Y0H0}0A011/1V010s0;0G0H1n0G1)25272c1;2f1-2i0M2k040a0u0R0!0k0q0k0C0h1i1k0-230!0!0G0W2F1A2m0H1I0(212R1~201 1*0+2o0}1#0H2h2C1)1Q1S0^1:2#0h2%0H0k2+1)0q2K1I2P2R2|15261k2-2d2=0!190p120u0D2O30132 2n321;3436380A3b273d2P2!013i0Y37040u0j3m2Q143p3g0}3s3u0u0J3y3o303q3E380N3I3A3K3C3r0k353t380y3P3e311U3h3U3j3v0)3Z3B3$3D3(3W3v0F3,3R3.3T3V3F0f3@3f3_3M040D0w3~3#2.3`3)0D3a1B3c3Q3 47410D3l4c3n4e46333:3u0D3x4k3z3!3L4p120D3H4t3J4f4o3{4y3O4B4m4w4F423Y4I4v3S4h3+4O3-4g4x423?4T3^4V4L0D3}4Z4D3%4L0A444)4n4+3)0A4b2|4J4Q4W0A4j2~1N2`1A2+2U0+202Z3S0W2?2u0,1R1I2_0G2{3c3I05580-5g4*0}0T123g5i4U2d0r385s4!330W120K1-0g0G5x5n0111040V3P0u5N0u4P3_5p040-0s5G4:0}5v3v5W3q0s0M120l0l2:2E5*5#3S5J0t5/3_0b5J0C0G0p5V4B5Q475J0e3I5P5t3h125e2=0M5?6012624B645y6604696b2d61635 335q3$5F5~650}5J0z5L4I5O6B6g5H5^125`5|6l1;0k120X6J3D672K6k6f6p6K120Z6o6v3r6Q2(6a6A6C5N6U0}6F046H5}2~6Z6L046N6u6h6P6j0k6%2|6D5X016?6X6T6Z0H126S4^6)6*6Z6-6/6O726M7g77043g6t6 6+7h04747o766r1:7n4d7b703q7e5{6:5h6=7i6_5H7k0M0k0#2h2%1z756`7q7s3c7A5:120*0o3P066B7p5S5U7g5Z5P7I710H0s127L1Q2f0G0l7L7N0H2%7g5;7g7C6I7.3q6n7R7J7=0Y0 0G2K7 6d6Y7S7K7M7O7x3n7p6x6z7a7b7p827E8m7G6@7j7=8j7}1y8e040L8y04198b8d847X040x8g5H738P7/8z7|7~4I7$5O7(127*8L3_7,7j7;8H8A2%0l0-8D5=8%478t8D6e7t8h898J8l2Q8n126y5M8r6Z5S0h8u2Q7W408}0h8c8 5!6=5Z2:8S7B5_7D7g6?6^6;8|8,8V8C8?6m128p7y7z8Z96122K0O0%0!0H9l3S8^9x6V8x9O6{7{8k7Q9s5H5J8F9R6!8H8a9e8K9W715J8O8X7%9E5T0G995m718)9!7:8U8k0l2D1o1-8;819n839*85929A4l7z8!04989L400b122ra29!9Na63S9q8G9T8B9V7F7S6xaf476?020v0O0nax2d0M0h124.an3_5Ja93z9C9D9t0O0k0/0paE9P7U3n9b47aGaI94aPac0s3UaW9S7Ma-729j9K8771amau8Q7HaK4g9|as9pa|a`8T040g3t1xat8vav120t936(aP9/aRaT3ta:6?0EaY9a7p8i0#a(9Cac9G9Ia?8{8804aSaUbl120(a:0Hah04aj9!80ala49?7pap9`a 7P8D0zbtbh5H5S5{5`8DaN13bga!2d5Sbw9Ja:0T5A040U1j9g140(5k5f1L500(521A0O54c32X2S0Y1,b~c15c1G9@3q2K0M0l0s0Y0T7_0S0j121s1u1w1y0ub)1L3d1H0P6}2t0u2:1Q1w0I0u0+270?0p000G0m8c0W0h0W1.2_0I0W0I0-0H0O0e0u1-5Pb}3q1?1!1$1(cf3Sb#0=9g915Kb;9F0.bxb;b?b^8W4~b}3v0q0G1h0u0d1~1.6}0h0C6^1O1J040B2:2Dc%1.c*cVcXcZ0O0u1yds0I1w1R3t2hds0icvcx1P1Rc+1$1^1%2^504~2~d3ac8$a}5u5w9`8+ar8.9 0qa1bMbca36G9od$04be8q7c7S979?b,3hbJbLdS1;bNd`6,bPb19Qd}9#dX9we2awa@3qazaBaDe83Sa$04aJb3a7c_bf6Cbq12bCbked3_8Rera#aHegbYaQb!12a+0!bH8Ubla=a:a_baa{e1ei4QbUe5eNesb2eKb4b61geQeUejbdb)8Ya)7ubBbjaVeu2dbmbo9h9t7{eyd/eA04b/by7Vene*bDe-9PbGf13Dd^2hake2eJ908w9reRa~9u9UbW3Zb|592R5e2R52b{0-0/0;0C04.
Méthode moyenne_ponderee

La méthode moyenne_ponderee prend comme unique paramètre un dictionnaire coeffs associant des intitulés de matières (str) à des coefficients (au format int ou float).

Cette fonction calcule la moyenne pondérée de l'élève en appliquant les coefficients fournis en paramètre.

Si l'élève n'a aucune moyenne, la fonction renverra None.

Si l'élève possède une moyenne dans une matière à laquelle n'est associée aucun coefficient dans le dictionnaire coeffs, la fonction générera une erreur de type ValueError.

Écrire la méthode moyenne_ponderee.

Générer une erreur

Il est possible de générer une erreur de type ValueError en utilisant la structure suivante :

if condition_causant_une_erreur:
    raise ValueError("Texte d'explication")

Il existe de nombreux types d'erreurs différents selon le problème rencontré.

Exemple
>>> margaret = Eleve("Margaret", "Hamilton", "Te5")
>>> margaret.modifie_moyenne("études spatiales", 20)
>>> margaret.modifie_moyenne("maths", 14)
>>> coeffs = {"études spatiales": 1, "maths": 0.5}
>>> margaret.moyenne_ponderee(coeffs)
18.0

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : 10/10

.128013bqê,9vià3o_x;}lpwf( g0]6)2As1+8Vené4E[m5tCRPhkN:c.a=rySI*u/7{d050.0H0P0Z0h0p0C0u0X0p0Z0C0C0!010P0h0q010406050C0*0N0N0Z0#0$040%0k0p0*120k0I0u020Z0N0q0n0u0R0H1c0#0c0*0H0C050+191b1d1f170q04051K1D1N0+1K170.0h0g0`0|0~100T0h0v0T0p1#0T0P15050=0b0p0H1W0}0 011!1$1(1$0P1.1:1,0P0#1L0P0T0`1i0C0q0Z0I100A011=1Y010s0@0H0I1q0H1,282a2f1@2i1:2l0N2n040a0u0S0#0k0q0k0C0h1l1n0:260#0#0H0X2I1D2p0I1L0+242U2123221-0.2r101(0I2k2F1,1T1V0{1?2(0h2*0I0k2.1,0q2N1L2S2U2 18291n2:2g2^0#1c0p150u0D2R3316322q351@37393b0A3e2a3g2S2%013l0Z3a040u0j3p2T173s3j103v3x0u0K3B3r333t3H3b0O3L3D3N3F3u0k383w3b0y3S3h341X3k3X3m3y0,3$3E3)3G3+3Z3y0F3/3U3;3W3Y3I0f3`3i3|3P040D0w413(2;3}3,0D3d1E3f3T424a440D3o4f3q4h49363?3x0D3A4n3C3%3O4s150D3K4w3M4i4r3~4B3R4E4p4z4I453#4L4y3V4k3.4R3:4j4A453_4W3{4Y4O0D404$4G3*4O0A474,4q4.3,0A4e2 4M4T4Z0A4m4{4S434~4v514X4H4^4D564%583@0A4K5b4-3=4/4Q5h4?5j4^4V5m4N4^4#5r4}4/4+5v534O0j4;5z4(3,0j4`4g525F3@0j505J574@5M553f1O2}1D2.2X0.232$3V0X2_2x0/1U1L2|0H2~5U4E055(0:5:5i010U153j3L5K2g0r3b5 5Q3G0X150L1:0g0H645c1@14040W3S0u6k0u601@5|040:0s6d5`623y6t5n2h0N150l0l2?2H6C6x3t6g0t6H3V0b6g0C0H0p6s5=65016g0e3L6m6U0I155.2^0N6L3|6W6Y6n3G156(6*4a6,4E6Z6e6/043j6c6T6`6V150z6i4L6l766_5`6N156P6R6=2g0k150Y7e3k6$2N6;6^6.017g040!6-6!7l2+6)75776k7p7a047c6S316U7r7i6 5`6#047n2 786y7r7t7o7v7O0k7y4{7A7B6U7D7F7j107J7*3u5}3)6~7Q7p7T7u707N6}6j7#7C6O6Q7G5U7I7h7-7N0N0k0$2k2*1C7V707@8d5`6g0-0o3S06767p6p6r7-6v6m7L6y0I0s15871T2i0H0l87890I2*7-6J7-7(808I156X8g8v8y0Z120H2N8N048P7=7W8E8a7;82706g737|7A7~7b8M8u3t7,8=4T8y888%8c7H8*150M858S8U8W8^6+150x7^5`8f8!7_8`8F8H4L8m6l8o158q964a8s858x048$8G8C0:8X6K9o2g8L7d9A6f8O9a8R9t8T0h8V8(3q7p8+747!7}6U6p0h813q7R3O939L959d9b6v2?9H3t9C9X2T7?849E6{9u8b8X9R4g7#779l042N0P0*0#0I9,6M7 9D8~9b9=aa9I9^1B8X919?7.9J949N9:6U6g999i8n9U9m0H9/5_6y9qaj8w9f8%0l2G1r1:9y8Ka8ax9P729{4o9}9 9Wa6430b152uaJaj9.7-8@ad9!9t8{9v8}8)8h72aU4a7r020v0P0na;2g0N0h155Da.6y6gaP3C9}at9e040P0k0=0pa{1@9c3f9Z3Va}a 8-b69 0s3Xbe9@88br7q9*a58Q9-aLa$acb1a)afa-9O83047Ka(8_040g3w1AbGao8 040t8,7zb69~7Wbabcbu7r0E7U9(aebtbXbnaua00;a3bxb+a)b#3wb%150+bu0IaW04aYaj8Ja!bAaja%bDbMbF8X0z8lb75`8paw8r63aB9saf0l2E0I0:2Nanay6I159zbL3|a#c49GbybM5(aw0sbRcv3V9Qbmcg6y9VaxbiaVaX2kaZcz4acBcX7fbCbHb8cccC04cecE3|a?a^a`c-4abk04b0c%a/6hcN9Tb8b`bdc=c#7sbuc@c_b5bYcS4j15d00lcG0scIb|d4d21@d6c}8.b:bp0#b 9#9Mb%bwbucZcac.c$bS7MaDa,9`dnb/70cQdsal9$cuda7f6v2^0Pdv159+dk6{dfdhc*b416d9dIch150#0?6Pb 2x0GbP0H0L2Mbqc*cydz4a0C2d04021zbb0n0(0p0u1c0I1z1;0Z0*e70k2?0_0*340kcH0h0X9L0I0Pe10*e3cddHaRb!bbb{dX7q15b)dxc7c!bfdBcK43dE9_c*aieG9@9Kduc*arb^3V7r0)dLdZcJaN04eOd|36dt9%e)9F04eU9|d(9kexbcdeekdgcJdPeH04eDeA7`e`d!eP71e%92dMeSf5aqeve?dJd+b=a4dLd0dib~f1dcey0pe_cHcJ9jdoff046Qd.d#fd7$fwa1b?bu0U67040V1mcu170+5@5/5VfQ0+5Y1D0P5!fV2!2V0Z1/fS5Y1JeJ4a2N0N0l0s0Z0U8C0T0j151v1xea0_d$1O3g1K0Q7Y2w0u2?1T1z0J0u0.2a0_0p000H0m8Ven0X1;2|0J0X0J0:ep0e0u1:6mfP3t1_1%1)1+f*2g6pfycue$d$e}106pfEfieAfH15fK9h31fO5)3y0q0H1k0u0d211;7Y0h0C7K1R1M040Beg0hgs1;gvglgngp0P0u1Bg`0J1z1U3w2kg`0i0u74g+2.gw1)1{1*2{5WgS31fPgB6oavaM6UaAf5aCa*9g8Ccqcs0HgFapcxaK8:a9e-106@eVeK6|f3e#hxc+d$fugI5{dVcR7pc0cUb@hCf6d{c`6ydyhZ8?eIhSeLagc*c,hFa=15a@a_d5a~c^dGb.cOb_fpdib*bh7pdmh`fedDb9fpfre{h~h?bli3fCd*04dqdL1camdU04dWh.9BeFhWc9h$cba+eMfb15hMd(aShR8#eRe,9Y7?dRbbilini07We!h_9Se=hOgKd-dOhSd:d=d@2Cdrd`7-d~h:e2a_e5e72aea0ueceeeg0uei26elenh2ereth,fBhO7NfkeAb(h iG7%iqitdAbJf8c)ixf7aBe+hwbTe:j78e15eYfnhHfsahjdiEjjc{jld8bYh)i6e^iOj4eCj62Tj15}hIjtjhf9iFdCb298dH9 gLhVjmi5j3ioe~fmj!6{ddjE51gT5^fR2Uf(5X0;0?0^04.

###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : 10/10

.128013bqê,9vià3o_x;}lpwf( g0]6)2As1+8Vené4E[m5tCRPhkN:c.a=rySI*u/7{d050.0H0P0Z0h0p0C0u0X0p0Z0C0C0!010P0h0q010406050C0*0N0N0Z0#0$040%0k0p0*120k0I0u020Z0N0q0n0u0R0H1c0#0c0*0H0C050+191b1d1f170q04051K1D1N0+1K170.0h0g0`0|0~100T0h0v0T0p1#0T0P15050=0b0p0H1W0}0 011!1$1(1$0P1.1:1,0P0#1L0P0T0`1i0C0q0Z0I100A011=1Y010s0@0H0I1q0H1,282a2f1@2i1:2l0N2n040a0u0S0#0k0q0k0C0h1l1n0:260#0#0H0X2I1D2p0I1L0+242U2123221-0.2r101(0I2k2F1,1T1V0{1?2(0h2*0I0k2.1,0q2N1L2S2U2 18291n2:2g2^0#1c0p150u0D2R3316322q351@37393b0A3e2a3g2S2%013l0Z3a040u0j3p2T173s3j103v3x0u0K3B3r333t3H3b0O3L3D3N3F3u0k383w3b0y3S3h341X3k3X3m3y0,3$3E3)3G3+3Z3y0F3/3U3;3W3Y3I0f3`3i3|3P040D0w413(2;3}3,0D3d1E3f3T424a440D3o4f3q4h49363?3x0D3A4n3C3%3O4s150D3K4w3M4i4r3~4B3R4E4p4z4I453#4L4y3V4k3.4R3:4j4A453_4W3{4Y4O0D404$4G3*4O0A474,4q4.3,0A4e2 4M4T4Z0A4m4{4S434~4v514X4H4^4D564%583@0A4K5b4-3=4/4Q5h4?5j4^4V5m4N4^4#5r4}4/4+5v534O0j4;5z4(3,0j4`4g525F3@0j505J574@5M553f1O2}1D2.2X0.232$3V0X2_2x0/1U1L2|0H2~5U4E055(0:5:5i010U153j3L5K2g0r3b5 5Q3G0X150L1:0g0H645c1@14040W3S0u6k0u601@5|040:0s6d5`623y6t5n2h0N150l0l2?2H6C6x3t6g0t6H3V0b6g0C0H0p6s5=65016g0e3L6m6U0I155.2^0N6L3|6W6Y6n3G156(6*4a6,4E6Z6e6/043j6c6T6`6V150z6i4L6l766_5`6N156P6R6=2g0k150Y7e3k6$2N6;6^6.017g040!6-6!7l2+6)75776k7p7a047c6S316U7r7i6 5`6#047n2 786y7r7t7o7v7O0k7y4{7A7B6U7D7F7j107J7*3u5}3)6~7Q7p7T7u707N6}6j7#7C6O6Q7G5U7I7h7-7N0N0k0$2k2*1C7V707@8d5`6g0-0o3S06767p6p6r7-6v6m7L6y0I0s15871T2i0H0l87890I2*7-6J7-7(808I156X8g8v8y0Z120H2N8N048P7=7W8E8a7;82706g737|7A7~7b8M8u3t7,8=4T8y888%8c7H8*150M858S8U8W8^6+150x7^5`8f8!7_8`8F8H4L8m6l8o158q964a8s858x048$8G8C0:8X6K9o2g8L7d9A6f8O9a8R9t8T0h8V8(3q7p8+747!7}6U6p0h813q7R3O939L959d9b6v2?9H3t9C9X2T7?849E6{9u8b8X9R4g7#779l042N0P0*0#0I9,6M7 9D8~9b9=aa9I9^1B8X919?7.9J949N9:6U6g999i8n9U9m0H9/5_6y9qaj8w9f8%0l2G1r1:9y8Ka8ax9P729{4o9}9 9Wa6430b152uaJaj9.7-8@ad9!9t8{9v8}8)8h72aU4a7r020v0P0na;2g0N0h155Da.6y6gaP3C9}at9e040P0k0=0pa{1@9c3f9Z3Va}a 8-b69 0s3Xbe9@88br7q9*a58Q9-aLa$acb1a)afa-9O83047Ka(8_040g3w1AbGao8 040t8,7zb69~7Wbabcbu7r0E7U9(aebtbXbnaua00;a3bxb+a)b#3wb%150+bu0IaW04aYaj8Ja!bAaja%bDbMbF8X0z8lb75`8paw8r63aB9saf0l2E0I0:2Nanay6I159zbL3|a#c49GbybM5(aw0sbRcv3V9Qbmcg6y9VaxbiaVaX2kaZcz4acBcX7fbCbHb8cccC04cecE3|a?a^a`c-4abk04b0c%a/6hcN9Tb8b`bdc=c#7sbuc@c_b5bYcS4j15d00lcG0scIb|d4d21@d6c}8.b:bp0#b 9#9Mb%bwbucZcac.c$bS7MaDa,9`dnb/70cQdsal9$cuda7f6v2^0Pdv159+dk6{dfdhc*b416d9dIch150#0?6Pb 2x0GbP0H0L2Mbqc*cydz4a0C2d04021zbb0n0(0p0u1c0I1z1;0Z0*e70k2?0_0*340kcH0h0X9L0I0Pe10*e3cddHaRb!bbb{dX7q15b)dxc7c!bfdBcK43dE9_c*aieG9@9Kduc*arb^3V7r0)dLdZcJaN04eOd|36dt9%e)9F04eU9|d(9kexbcdeekdgcJdPeH04eDeA7`e`d!eP71e%92dMeSf5aqeve?dJd+b=a4dLd0dib~f1dcey0pe_cHcJ9jdoff046Qd.d#fd7$fwa1b?bu0U67040V1mcu170+5@5/5VfQ0+5Y1D0P5!fV2!2V0Z1/fS5Y1JeJ4a2N0N0l0s0Z0U8C0T0j151v1xea0_d$1O3g1K0Q7Y2w0u2?1T1z0J0u0.2a0_0p000H0m8Ven0X1;2|0J0X0J0:ep0e0u1:6mfP3t1_1%1)1+f*2g6pfycue$d$e}106pfEfieAfH15fK9h31fO5)3y0q0H1k0u0d211;7Y0h0C7K1R1M040Beg0hgs1;gvglgngp0P0u1Bg`0J1z1U3w2kg`0i0u74g+2.gw1)1{1*2{5WgS31fPgB6oavaM6UaAf5aCa*9g8Ccqcs0HgFapcxaK8:a9e-106@eVeK6|f3e#hxc+d$fugI5{dVcR7pc0cUb@hCf6d{c`6ydyhZ8?eIhSeLagc*c,hFa=15a@a_d5a~c^dGb.cOb_fpdib*bh7pdmh`fedDb9fpfre{h~h?bli3fCd*04dqdL1camdU04dWh.9BeFhWc9h$cba+eMfb15hMd(aShR8#eRe,9Y7?dRbbilini07We!h_9Se=hOgKd-dOhSd:d=d@2Cdrd`7-d~h:e2a_e5e72aea0ueceeeg0uei26elenh2ereth,fBhO7NfkeAb(h iG7%iqitdAbJf8c)ixf7aBe+hwbTe:j78e15eYfnhHfsahjdiEjjc{jld8bYh)i6e^iOj4eCj62Tj15}hIjtjhf9iFdCb298dH9 gLhVjmi5j3ioe~fmj!6{ddjE51gT5^fR2Uf(5X0;0?0^04.