summaryrefslogtreecommitdiff
path: root/sem_5/HLIN505_Java
diff options
context:
space:
mode:
authorGaspard Coulet <gaspard.coulet@mines-ales.org>2021-04-28 23:05:53 +0200
committerGaspard Coulet <gaspard.coulet@mines-ales.org>2021-04-28 23:05:53 +0200
commit9fe033ea88c2f705ec18c232873d056e0c229d72 (patch)
tree0647dc8c51610c7336c88c04de2068ea14b21e17 /sem_5/HLIN505_Java
Initial commit
Diffstat (limited to 'sem_5/HLIN505_Java')
-rw-r--r--sem_5/HLIN505_Java/.gitignore1
-rw-r--r--sem_5/HLIN505_Java/.recommenders/caches/identified-project-coordinates.json1
-rw-r--r--sem_5/HLIN505_Java/.recommenders/caches/manual-mappings.json1
-rw-r--r--sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.fdtbin0 -> 7000176 bytes
-rw-r--r--sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.fdxbin0 -> 112412 bytes
-rw-r--r--sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.fnm3
-rw-r--r--sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.frq1018
-rw-r--r--sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.nrm1
-rw-r--r--sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.prxbin0 -> 181660 bytes
-rw-r--r--sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.tiibin0 -> 27144 bytes
-rw-r--r--sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.tisbin0 -> 1672063 bytes
-rw-r--r--sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/segments.genbin0 -> 20 bytes
-rw-r--r--sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/segments_5bin0 -> 244 bytes
-rw-r--r--sem_5/HLIN505_Java/HLIN505/.classpath13
-rw-r--r--sem_5/HLIN505_Java/HLIN505/.factorypath3
-rw-r--r--sem_5/HLIN505_Java/HLIN505/.gitignore2
-rw-r--r--sem_5/HLIN505_Java/HLIN505/.project17
-rw-r--r--sem_5/HLIN505_Java/HLIN505/.settings/org.eclipse.jdt.apt.core.prefs6
-rw-r--r--sem_5/HLIN505_Java/HLIN505/.settings/org.eclipse.jdt.core.prefs12
-rw-r--r--sem_5/HLIN505_Java/HLIN505/lib/cofoja.asm-1.3-20160207.jarbin0 -> 458417 bytes
-rw-r--r--sem_5/HLIN505_Java/HLIN505/src/TP1/Adherent.java25
-rw-r--r--sem_5/HLIN505_Java/HLIN505/src/TP1/Creneau.java40
-rw-r--r--sem_5/HLIN505_Java/HLIN505/src/TP1/Heure.java59
-rw-r--r--sem_5/HLIN505_Java/HLIN505/src/TP1/JourSemaine.java11
-rw-r--r--sem_5/HLIN505_Java/HLIN505/src/TP1/Lieu.java29
-rw-r--r--sem_5/HLIN505_Java/HLIN505/src/TP1/ListeChainee.java64
-rw-r--r--sem_5/HLIN505_Java/HLIN505/src/TP1/Main.java32
-rw-r--r--sem_5/HLIN505_Java/HLIN505/src/TP2/Constante.java11
-rw-r--r--sem_5/HLIN505_Java/HLIN505/src/TP2/Exp.java5
-rw-r--r--sem_5/HLIN505_Java/HLIN505/src/TP2/ExpComp.java28
-rw-r--r--sem_5/HLIN505_Java/HLIN505/src/TP2/Main.java19
-rw-r--r--sem_5/HLIN505_Java/HLIN505/src/TP3/FicText.java47
-rw-r--r--sem_5/HLIN505_Java/HLIN505/src/TP4/AbstractAudioElement.java31
-rw-r--r--sem_5/HLIN505_Java/HLIN505/src/TP4/IelementAudio.java12
-rw-r--r--sem_5/HLIN505_Java/HLIN505/src/TP4/IncorrectFileNameException.java18
-rw-r--r--sem_5/HLIN505_Java/HLIN505/src/TP4/Iplaylist.java6
-rw-r--r--sem_5/HLIN505_Java/HLIN505/src/TP4/SimplePlayList.java60
-rw-r--r--sem_5/HLIN505_Java/HLIN505/src/TP4/Song.java41
-rw-r--r--sem_5/HLIN505_Java/HLIN505/src/TP6/foobar.tar.gzbin0 -> 1234 bytes
-rw-r--r--sem_5/HLIN505_Java/HLIN505/src/foobar/FooBarException.java9
-rw-r--r--sem_5/HLIN505_Java/HLIN505/src/foobar/SUT.java48
-rw-r--r--sem_5/HLIN505_Java/HLIN505/src/foobar/TestFooBar.java64
-rw-r--r--sem_5/HLIN505_Java/HLIN505/src/foobar/TestParametreFoo.java63
-rw-r--r--sem_5/HLIN505_Java/HLIN505/src/tp7/Ex1.java59
-rw-r--r--sem_5/HLIN505_Java/HLIN505/src/tp7/ManipAnnot.java5
-rw-r--r--sem_5/HLIN505_Java/HLIN505/src/tp7/Persobonus.java17
-rw-r--r--sem_5/HLIN505_Java/HLIN505/src/tp7/Persoinvisible.java24
-rw-r--r--sem_5/HLIN505_Java/HLIN505/src/tp7/Personnage.java35
-rw-r--r--sem_5/HLIN505_Java/HLIN505/src/tp7/Todo.java7
-rw-r--r--sem_5/HLIN505_Java/HLIN505/src/tp7/fabriquePerso.java38
-rw-r--r--sem_5/HLIN505_Java/HLIN505/src/visites/toTest/Etape.java57
-rw-r--r--sem_5/HLIN505_Java/HLIN505/src/visites/toTest/NatureEtape.java8
-rw-r--r--sem_5/HLIN505_Java/HLIN505/src/visites/toTest/Parcours.java65
-rw-r--r--sem_5/HLIN505_Java/HLIN505/src/visites/toTest/TestEtqpe.java16
-rw-r--r--sem_5/HLIN505_Java/HLIN505/src/visites/toTest/TestParcours.java17
-rw-r--r--sem_5/HLIN505_Java/HLIN505/src/visites/toTest/TestTroncon.java16
-rw-r--r--sem_5/HLIN505_Java/HLIN505/src/visites/toTest/Troncon.java69
-rw-r--r--sem_5/HLIN505_Java/HLIN505/zbeb.txt690
58 files changed, 2923 insertions, 0 deletions
diff --git a/sem_5/HLIN505_Java/.gitignore b/sem_5/HLIN505_Java/.gitignore
new file mode 100644
index 0000000..e10e727
--- /dev/null
+++ b/sem_5/HLIN505_Java/.gitignore
@@ -0,0 +1 @@
+/.metadata/
diff --git a/sem_5/HLIN505_Java/.recommenders/caches/identified-project-coordinates.json b/sem_5/HLIN505_Java/.recommenders/caches/identified-project-coordinates.json
new file mode 100644
index 0000000..9e26dfe
--- /dev/null
+++ b/sem_5/HLIN505_Java/.recommenders/caches/identified-project-coordinates.json
@@ -0,0 +1 @@
+{} \ No newline at end of file
diff --git a/sem_5/HLIN505_Java/.recommenders/caches/manual-mappings.json b/sem_5/HLIN505_Java/.recommenders/caches/manual-mappings.json
new file mode 100644
index 0000000..9e26dfe
--- /dev/null
+++ b/sem_5/HLIN505_Java/.recommenders/caches/manual-mappings.json
@@ -0,0 +1 @@
+{} \ No newline at end of file
diff --git a/sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.fdt b/sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.fdt
new file mode 100644
index 0000000..f45918d
--- /dev/null
+++ b/sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.fdt
Binary files differ
diff --git a/sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.fdx b/sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.fdx
new file mode 100644
index 0000000..47905a6
--- /dev/null
+++ b/sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.fdx
Binary files differ
diff --git a/sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.fnm b/sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.fnm
new file mode 100644
index 0000000..e5e6f9a
--- /dev/null
+++ b/sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.fnm
@@ -0,0 +1,3 @@
+
+coordinate fingerprintssymbolic-names
+classifierselfccallovrdselfmovrpovrmstaticsctor \ No newline at end of file
diff --git a/sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.frq b/sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.frq
new file mode 100644
index 0000000..46d06e3
--- /dev/null
+++ b/sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.frq
@@ -0,0 +1,1018 @@
+>H!D =m](?*"Q#"1_ͯ
+3')|"7 u2|K#<U# 6)%F2Q/0 ."b<p!7"ID:$!$##DE !8HA
+M+(5 1br A/< #
+,H1 .W# *er')
+  Y#-6.  -1d'#;.M(#*wo(D!(<>0)\.B7  $/1HAC8
+=2'0o(2/dQGɡ!;ը"%!8% 2cu"9wvKYׄ
+Fy?n7q-vFx\2uTώ-fE? hÞ~LrKߩ:Kc<{ iN-8/O
+*: w 2B&F՛V`L)'N<& -!# |G0` c(-'+  j!$ %3a A
+ w*/"$"O /! }"#)- P(? (0A-*K"$"7'!#>IC;U)! -&c3&/`&#I"<ׅ , A;1S 1_<Q-j! A5@U(9!0*G#`0) ל D-w)_/; S'7+?!$7*W\9:(3 *A* "-(e !KY*|# FE G `((#! DVl ;! 5" (1 @#+A'I"9&P %~9!(I%-! ~w+$5"V 'v A>qO;I U 8!
+Cj  "1
+jVC&$Q#P !E? 7ɓ
+fL?
++QK!19? X$)$X,$ )X#E!="9  <[N&/ ]C?9fo57da"#=?%#:M$)5%#!-(%i-N5;'5')%3071/A"8 + "*;_-k##$ L#]b15ɛbB{~$Yu_2LTOσ4VI[[Ӑ7w|f!˵PŇY "1Ӭ
+JJM#>%#L'<n8f)8T"͆I!]lW
+_ 1~Yt 2NDt!ύ#"\>[$XQ:E,&8/  I vA!Ϯ{'/SSz$3<ͅm !{% !0{? MiC- [5Vb<'&f !%Y, 9! ѝ7Z -"U;{ K?8a"
+v4
+G2!^ # UfJ$=S bۀ$ U?w y".I
+C ;#i"q>$%=/C/:#)1=VADtD!
+*4]/8(u".sJI#v#!DZ  .+Ӱ!!DtKu.1Sݱ6t"0|<#
+#ј "%?DFF!){Cə"$ŏÃ* @=!!{M " >WӖ!""(
+E;D" #3$&q*"!
+ 8L) "#}{w ~ 6qFz͋p+95 E*/\!#:>!Ӥ['QV[0S,?)=.m<L!7:>K$۟w&&Jϑ8<5Y _=?>Y12 #?K_!PD'O%%YŚ8h 0 5WWSH(.V1X,;?gX=;? ?1[7<V82"203$71
+I<` ; ;q...-&K7 #1MՔ1FX/5<.#J .#;p*3 Y,;;Z1% G";I
+@2"?K %.YXY0$1RK
+ 6.!3
+Z<4XO4{C'"A#)Iw/ DE E' ZE,;*"'$= "2#J -!C6F7'״7 z#.+/Ow|6. 1aJ#  [ yق˅/+?M[X$(KX0k i/42
+u#0׶J>n&/ 'p_| ;%9'!,u*mq}#'xCa @* ٔ$lnAK1-E ;AJk 0 1X7;{4K]] ZY"y#1_@>i;|`dWzK@VLJ":/ "T  y 0 
+(@ v## 0h& 9"! 7Gk; )/(Aٷ LG$" ) oxN
+  !$O! "c u 'G/ o A"E"j 
+#bV    $j 2;B H! B+V!6H$  x2B!!v2&vɆ ) w ?   F!FQ!RA$. ! }R BC #! $j":@! @#
+x#!"|+6P!h)q'G/F@@c;?V:
+ ˡOs"4b4{;( @=(6-x/2)۵B|E G^$2*;6S* CL( ',i .%o5_(cwϔD& 1*J/ !GO #<S>=@?#`*I+B8541S8%/ˈ,\.$a+-K' +,.9  y`"1+k-"1M*5!$C1O A58I 2 ?!5 *L W F3 N' *n.B%:.  \ 3C ^5 $12(
+ j:`9"w*'',9F<5 f7!" (12h+D%9 Mv9.I-h!a
+.  6F(E*L75,073S$)$'+-"eE;5!]24% 8?2 44-'12'",0hDR)4$6>g- +<8 E)*;?1-ɲ D@%&7++j |+E(Q  s*)ð2z+.>*'WDAY,6((BJ^'
+ Jq V$8Q4"F K%*#\W2V(OC$L#-L!<L !K"(<ZMr!8+F";"W o-GBgR (]U2.- ͎W,+Zn  7/J
+?2c #BB ã wPKT$$ %\!E1&\F/ C8|Q (y"lZ? "RSs }C.#sg&$#LW5( ׫Z7RFp!. %ӓ o͇L'$ +
+#HHɍ
+5*T  #Ņѕrh @PYM*ETD >"D*M
+.~>E!BdQ$#"їS #CqV 3q
+ +ѐ5"[-]0;W!! "#žv5 ݄SA7 !%!?ICBQ)0T7ۉXz( L'!D=*" J#<!ߗ< V,)(5 Z?/%!" 'i"&y( +~0O =u ϯ3nz4#I` s
+_dO.  r  C(ѕ&'(=^&'&!Z*a+# J D5GM!)%(k D!n(7ayE EOCS*+T!VArGP1pO}!!W#"L
+#9C|+DL"~٘& w)#"Fr2,-Kk #fi
+sŋ:1)-y#. "_!q0
+%Q|)g
+*  "I{<$f%`ϗ'S۬ dAݨ&c&Vݚ#k#I %DD" C;YoBDvW^q R"Ix!)$7c9CIY0dEtA.uAr#C 9.-vDCLB7^
+U=% ?A1rE'GE !"H-C9p_- # "3'"@DDK۱
+)3aNA˲+'L7x'/tBMr(%(b$>7+]97!E(- :/&]!9۷7 &7)#"
+CQC%1"I Z#QG8%A&5[K<.7uEz#&DK.'0#E
+F*5! 9ueCE$7oI7ݍ" C+E C)1ň'4#L  8EB5=>_=E%.E-='=x(/Տd(O"G  i y =; U=8yB HxG/Xp8?R759۝YWF"n-"W{mÅN.21P.F %zr "= ˸ O
+6KF%0\Un: }1
+M.>FǔǾ110:*;'фKdϙu^!o%"(Rt' p;!J)% z%L*!!הW2B;7SB &Z( 0,
+Y-4o5+J * Ӈ '0ft#  (
+ё"",  6y!D"z5x4*CtM>GhG&" N9=qזI???qv% '"j4~5=7ߌ@1b.O;3R.}h%/n 2 %6%=<o;=q 9Qr522q8O$w7--a +t; 2&[w8d.Ә&s5E$/)]i~($ߔRDEn!$V%bH8՚PKLJszGurBّWa 3c2\9LWrђf#!ӆ l@TW߽
+Yt (NNӋA}}GG 2A1kn1R`<E'߰VIѡ/}0(qJ](ӛ@!!q˩~TD.1+H)5 .Ǣ#2;H"/;;8>[ c&K['ņɒzU!>%Ӏ gQE۔?-"1
+
+9"M9")G<Y/AS- ~ ! 7#
+Nũխ.&Pg#kE(UMqVsaE<ŤS&K5eZ:'(1!|X;|P.gk24Zu{VuC_\:X}ɤ?!!J3Ya 7;F!j:JMF` Ӹ6 MP@{
+ ˫ AF\q<&'][IMzN  
+/W%
+M-?5 Jt*'ی!?H: G8 5W9-3B== K
+$mUk=3<c!I .&- coD GS GA 6 BX IM\kF
+>
+5%Y90{$70^3-i.n$"glj%Vb&'a5-6C01;w A:FF]QdMA+$ALF])ߢG,k%g( )/)m'c>:&͟ Pq;)_'3+R@ne ۅb,R&$Z X =v*KkkT%;K)stAS=g2mmDjE;T!(/ u\ Q%L(+]*4EFK  <)DSJ N(Ӱ;'ϛC˧)ˉd~,."ߴ!P"U_E"!0\QJ
+ L= ?Q^q-.~0߅> y*p
+~)AHj'CôfOv=E-EqջyPS)ai RHtcǿU32`
+Vr0cI x28D5ׇװ5jc8W9 +nߓB6۲c6S?#U4f<ߛ :Ǚɟp/.S\w5\߂zJcZF\۽v.ZA
+|\͙U!Ò[9*sFɧ&$ә:9}-/]+Oo'-$b? qE͟27ӹ P+8ݮ=oT(%Ƀ- >L.]'& EՇ')$$_B ;CBCTh d H%P` *eK, M$a!*݄ 'I 1^/VÆ 8ŀRիxչ5-0cѤ)vEi"?v;2Z]h#M K%3_"H"! DU MGGUm)|a#u
+#I"]b|i_{=!& x*ϕMɾ~!"&):oJ 'ǐr1>%JţͰjǑ;ӎ!7C+sEjx; pnM}IvLe:b;' G+1b!!tE"
+`|էgOD'ϱB[)>ō,#{DO ɰu% -E##o*@(2 $
+1c!i $!1)<# 'Ei!"/!!i!(M#'A\$ x+ #!C 
+'p
+ @2.')O+/."_JF r. ^/ l(! G/r$Q).<c ?BYr&22 #   W_651'Z+1*qx&[)"(C 8!),I-?11h(l#  q#~\":XTy^Ç#"\1).0cu. <$(:<%$ W"s"?E/ /
+#!)4/ J"*)υ)D/ <" " (w'k)"s $U1C) CY=R>V- 9hhK YrK';!s*9| x@!)9#)FCH 
+F?L ͔I;XQ 3!|2G]I*K 7n5'0с'5# ߣ#OL=EQ;!3&Ś' ! AL(3F!>F?J,)_8! %ˮ`,+ <qHOUvK'45
+\@ 'Gd{)IYCu2vxC' 'pB" )+EL >J&ɪXSi-no?6ǁB?5s'^)A##՜- _"O";/(#"1= ː:1xA&7&(HM\' i&5e"_!= =gJ ?="3)*xW9 &8!#1ÖE>I" =SL)t 7(=*MA)b0;QM*!4}9!0}AL 1ǎ"h*r&'א;i.#I*sX<) $s.ם>) \ɗpHP E&vCxCoj&*"TE=E_tǨOˊT/A5
+C&Ŏ)4MKɯ"O'(N('> +)_$E1.1O$'-& < <"]"2EB'($$&-/\;c] *J
+A$)$ !V
+ - 2C
+;"Ѩ͊('
+D*"$B"@& ("&2(+!E$#&)*.+$+" &7~D ?#-!9>**"DF
+O S? Y 4%U>5( A7o G-$#*U H .&)+Dd;ٰAY/M/7 q! P+*i17 / ?' r $'2^
+'a(U}+7"/ AF!$D 0(]1) #E #(F4* -'b$E+)t M# ,C '#;
+)st<b"-'Yǖ %d&4(]M$AEH?0l6Kc1*e 5X-+N^*6\<US#48C#l;sD$Q#"1(3^ B$ , ky3*;x#$yK !
+#1iy
+5~*v#2W-LJ2 \+O2D()RBJ
+!T0[ 'DEɫO-'@*B'6 +8s5
+o ;3]}/>/( b*{./ӏ7fE ۭ ۠+,x0O/2v.!&(@EGW?K4ϼG~!r`nz.CӪ5X9zK]:JJ(5(W6Z *C'K "].y!l#p'>1%ۃ( U2"{;L*A 
+Mw xO mNl9"<pjYfT Ou@} dUPwc@ ÷N/#b^IO!&N86NxN O%UNQ J"N81b\/P/D!VQ=QweFS #]Ud"P([0
+)O3O PBJ]BV#T\Zj-"NB"P&d2AFYS@C yTJ#bl,Hw_ßu9PM2;>լ}`WGE,8Gnj˃,í(iBz|
+'`g'
+Pb 80'B#6ˆEzjÉ'nɦ!/W(D771'3w9-0$: +u+Z@/"b+~-X@
+; #k;Y"ł"m?!"P5?L ;?oC-?!C#&
+"}9E#Kb'='|;-/s9"  !(x=C E
+E xJ8 M#oD ۗ>KD )DG j<
+׉Ó7IOHct'C"E; )!W x#!5{1#^4y-s7&7/G>~݌DžF5F~ݪ+S8".-[ёϯ?yA1/K"-v 7u=:8W! =Z @ K?/ŒMBG ezS; m IɁ-<A Dѡ,'SmB Og -:E?H!#5gAC59B)eAD/y#/ð:;$4׼e#=UA{I9#3}>V7hўD7"RDPL9[] O9E1Z#|ö83'~!Şh1AXdt w=LZє N٬5"ߋ6c?A1 ?D;X^ 7:[W"eXy2y9"G5p4;":8uR3v+g'auj( "$i  o7C! YzY 7vDٔ"!-VCJmͬC-DZ?|÷ɊO--ل;{k5ŗA5!?d9TIű3 S9
+X"us"OXl
+"\5r!bh{D94By"( 1.6@ SIYńYyL7$B?g8!ߡ"79M"} C?e{A;ϭC!? 0)/Aߪ 2a! s)1e/Jo GJt;]A %w"G =-y7aѶP%bu"C6?~)!Q`ÿKrP81HEFE.sJk(=#J$5+8)eߗ3)CFpA'q7#1aT!"i+ˍ; 52W 7}1VCK/3dF=+/϶]MLE + A"k )݊M ǣ?!ӱ[" 4Ւ
+<!EN= L zvݰCBd{ A3}A) |ADǫ7&W ?6pSK_O'I|Nl#'Qw#%J/+vîMN 1Fp+h)@=ojpV3H`AG&Z1!s3ND7 CL=ӲoWx
+SYJG'ǐ5gz_7A6 n( 5e"+xӴ~O(!
+̀(8(0D'$ *0YA$7.
+3qˬ I  # & !b= <? 2%#$ [BMW)?eKX{)B\1ŀ nZ%vPu6nD|crG2f<<ג}&l7WcD-Y'["L0FS;(XN;ωۭ(W5Y]=>;aG4$ "2Q%h~W8*Mɨd ?߫1E`748ϣ QTVNS-`êcT#.#{׾,hgCݫkGvNRDMˑu}Շ)E_ODX)Rl{ E1vHjQŴC${Bzզ!zTdٻ"lKUd&['eɑwו" '$ &;/+#"O( 1yVņ 1Q!s!z 8&!# "َ&#)s
+<W.M߲^05<8,)'?C4S1( o+-&2-:#1
+I!`z1' $J,
+q+o9](5g~IZ1˟PE2&X1M(2e2s  | uِr/6Umb"5w>"!  :Yz#LK0zD  Q0yL(}
+!Ş/x"AP.$'#>/&^ {#!w" "*{P* `ѯp!B "C 0!z!)> <)| Ex uFxJwD# τH!
+
+' 
+?B!ѩ M
+#ŕw"'#
+P(X+R p+!,;<"š[&"v$#7"% 9K~2 EH}#
+ ":G ="C#-u "}<X 4Sٱyp\ c' )JIa+! =4Z6b . n(FZ m;>*) V;Nnb5 sd
+ <  '$;* ?D m@ #.|Ba
+m vсA߼~:!r7  `!."!'z pe+; Ät8"kPKd#&"!JX"p0Ey"q;gY#8lųo"I"Xɸr oA%X0 (rf׏˄K"QA"AeQNc""!OJ !z%SIl y! %=0T;dc,Ǩh;Okj;lt˓6fIj)H3)<k?Ղ|QJbsA_ YQb0 fW=Z0 ŬɃU9  ӟOYDgBuWjAtb0a0'Ϧ.mͶu#ghp׳LhBY a=Je LCOSA øn [Jk&2ho+0n Ϭ#ձ Lyj(kљѸUL?߈LE݅7CktB'`F;U!BCMm/iѕ7TAٮNEupC- V͚'CREbI 9j@; B+r&AS I,Ŋ#l2Q-`ͩziB@n9ˈ+͝hc*kEKe5!uI=L5Y3=_#*Yu]NhGqQ wnɬG
+ T==,dӮ;'
+'!7' (H"*H/rL ;&
+>UWۚ́?dbݻ" -+Ő)!
+S+G"$0 K%# " a1K.##v8#$x M)4'> ^#/-0#F/}#(/7;I"\&P>i_45٨.tG0SǬN~S`p(/Xx6"_) [90 ,U3J /?!ӗ \ͭU0xaqW*Tv&Rr08= ɏ"Jݗ=٪"|.ݧ!S#ev z-?1t[цK8Xa{3!v׵!1w X9g _p#-/Ol D!ۯg9j,3p3ٗr#_ɇA793r 9#CB*|# b=qZa1U017 +& *j4 M ' טC* '+$*?cӫj1-##>Vq0DL##j"T"$'I<1/#1 ( %<A / "$'N/: !!<o+ !yA (#--"#u;11:, #\8 < :D ##M* E<+,*"#"cF
+
+#\/"~XI 0'!FE$"J"N,1r)=V5|7 $F),˟{ٓO6C_9 |U) [bsDv/!%Ýy'D@ݺt!ճÙvt ׫)( Q(#({'E+|9=7^#&'~_B ZMLn9!`t-hCI- nw.7E0 k~^ LF}#-$> #G xW1#ŰBհ(Sӻɮ  CS[4F![s7n3[a`Nݼw#IYxU.yшjD/2!H1[ )N,3T5s-J`/*#4sZD-
+C<7=p;I9##,0
+O-DD& "TM`^|Y
++3 G.1 BO1 3s ( C"Mw=тt'|Tfg "O͂9* *##No^ "L r !97=CT+!EZW/.Qs\T@9( 11@Jdi@S !!m#LݎgJ߶PJR-S?"!L%&O.B #T.0FF%)QO1BE:у9"3: 
+W&&,MA$*PWK (8-JDw
+l.+!d,)g5%*"p+(J'B 3-3v .-p=6JZ>#vI#B )K ߁>JXA pYӜ:S3|Uipz!Z/q!,5a.! "lp7'sم^{C>0`#9:B #>! CY@ŮzWT[\
+U!@
+3M% M(Eq1W9˔J' .[fɂۂO2"51GN7*"S J$W'u\KI4U3  p#(iBJr`?r"
+ LN7al|(q8%6|$ŕ
+@ q3Se߆XǏ/2\0952' #z 8j:VoK85Ð1*Pپ{#F<*oF3a8/2</!k$H%q:!4:3=w864!+&xJ
+  u3%{ '@B(y׈ ۱@z+͕&Gd]/|^BFs0":"0i% $Mj
+)y==a8>VyF)Yݙ)d#['5{UogZDoK0'&ˀs\5zd/A25ǕtuIkS>xQu' #[˰v
+K%ɶ*(?Y:"~ٸ,oo4:!# t""ߏ"o& R9u7 &) R*(
+:
+@56>݋H )F! .<
+$Q#}0 x\u.GEA"#5!& y - * i  #8*%B+9: 7PFk+$t
+9
+/ 1g $Ü>@ !52( ! @04R !&7I " #h 
+})2!
+J('b
+M;(,8,'+w -c
+ݶ:8  GGp;G* )"3V!
+ |  0`   
+
+
+        &+                                                                                                                                                                                                                                                                                                   /|/ 0`   
+
+
+        $""'  """                                                                                                                                                                                                                                                                                                  /|/ 0`   
+
+
+        $""'  """                                                                                                                                                                                                                                                                                                  /|/ 0`   
+
+
+        $""'  """                                                                                                                                                                                                                                                                                                  /|/ 0`   
+
+
+        $"     "$  !! !                                                                                                                                                                                                                                                                                                                                     !                                                                                                                                                                                                                                                                                                                                                                                                                               H|0` -#-'%-*)& #,%)")0%".;$*!/, $.)'"1##%$$%'-+)/')'#(##%((!)((*&%%3)#*(.(&'% (!( 3(%")'0'!+(()%)-$')'#$)""   '0+"#'("!*%$,,6'&'6'!%&,"+$5*!(',,$-$2 -2)$"#+-""#"&'&+$& #+!#*(&(,))&&)*"%&""4%&$%#-&*+ #+" *!((% %%%)'0#'2+%2&+'"$!&# -!#)% )-.!,$%"+-%" %+&%&$#*!*!.,!#"'."++*)%'($%".$" #% $% +                                                               &|' 0`   
+
+
+        t$>MŠ&;kjHHHjiUϏfgST+?UmmJZLL)(_zͯ
+33G|ն7Sfe^"0#hh_`t6``gipYZmn;^Q/0=>ml݀"Յʹpۿ{WlI~:Y#)MTDl3ǴHASBǍǚwh#7ՑAp1 fQ;t,N\1gGAe.1fR;.$}Y_J2 XmIf"4BfbMCIlr?oqkID<{2Akq. ˶ݠh6Ao=oYn'eddžGGɡ;;lըݢjH#]:H%ɓ/uɗM9wϸvYׄ
+Fy?n7q-vFx\2uTώ-fE? hÞ~LrKߩ:Kc<{ iN-8/VORfq_TGM*: B&F՛V`L)'abNxoqb<C66f!!6oٿ .+N:YSTgF!ݝzӄa *{nnK&!CM|8mJ)qHH?SPxyςkAAoGHkK"87YaɅLj><;Nߙx44 Cj3ZZpɈיr`ۛ<<^7ׅ˔Ӷ  VLb0 !_SR=קǻךyk%%+CCJkrff_5r` !վǛPX &<QÁWWB-ϵѢr_3HGip))gTߟ|\/.LLg "kCC  ǒˣ, RRgYpO .(PPWyKDlyy @Hhϋ|n<(ɐffZ91l@@ی/))mFٺ٦BBHnt BKwxZ75V./˭*$%d^# 4ݔf8LN YNN+ ׎}jVѫ6$Pe^-.
+q)'lUɪCCH4ӽ- |}$'3\Ôˁ_=Fg!#+N()&'--cded]]jjki߇ed*,,,%%_`]]>:$('(01))((>=OONNcc˒%%9jGHZ7!CI"fZ/ +*Ū_`hk!Eh$mY ]qb5ɛbB{~$Yu_2LTOσ4VI[Ӑ7ñw|f˵PŇma /͸Ӭ
+ZJ۰U''|Ltn8a)6͆!]rlWl
+_1~t 49tύo[$XQeN:,.&g8 @2vbAϮ{'`մ0`z3<ͅm+ !4{{ MniC]Q$׸5lVǁ=>EZכsiɳhӀhG ! R:7(}{ W ]$"ǘuaɢvz>4SNH22Ӓ#,fJntDzS ۀۤU?w*3(yݛh
+cZ;;NdiiK4"՟hkS>$Łl=CY:Obj9=є5"tK5
+r]K8ZKD}u.Ѵs#IՋv|#FDI 0E1A+ӰߤYDJوtǸu&&ߪ6͹Ũ0F7<_e
+.Ǫ -S?TjD1)hF{əū+$ÃTg^=,$4MaZ#*>Ӗ_7d
+Ϣ;ߥ5;3q3
+Z8LaL?+#{ùw~͠YEqz͋pŃ+,5IBEo\}Zv:Ӥ['="VD&S,k=]m)QŷeP~7Cߎ۟Ѳ?f&ϑR8{өZ_=lXa2A 0z_PsDL%v%XDŚ:0t?,Wc[sDK͗WgۖY;z0L~7K8c@3rՆN67=2`! k]qHv6ߚO Ya(X5}jJn.a2p]g*x~YA,ݏ}Zպ٫1cW*Dˀ`J
+ѧ#ABpXC$Q,K.9LݑpA 
+Ϟa4Q4{ee]CdAݷIwʼnDD%00 Z' {\0zP]H5xE͛ #}naJ<`LF}״_<7RՁz+/0|ǶͲ.WXmKyɝJ`ע[/ ق˅/?Í[X$(1KXki/yGɄu&6׶JŔnm&V[(4_t|;%-|U9(0,ѭuկmtٕwśq}xûaeKv  lA1HC-s|;AkÛ1{4K[xiY9ysB@>i;|`dWzK@VLgJ^:i:\ 2<]g"+ły2IkY{nV
+.ۮ`;Q.~vŹNBV۞h}vɣ[9ՔsG\kŕk;G٠qAٷ*U@JŢ՞rlG0Q<
+W 3ǧ5 ߹uǤ#7^ 7hEAӌŧ0
+)MɌVlc?6 gS?;Qfݩ "*oHi\0"Ų65 2߸tT?/@VhnjߠͫYH2!  XMřőqs˕ۜOU FCY-*?Tm-^M(dCATǀy˿H> oͮBٌ59[c*ѷ:{ џugR='hEA"
+#+LUw~||Dߞhq'(/F@dc?
+ ˡOs"4b4d;@A[266-.x[2۵U| ͑^WIh"Y7z*1YZ3Y4jn):wϔDlEw*G#k!f*>|G`Ë\8mÌS/ա\ыaqKrj ӉLaHK &Gz`˜.@T".Bw!Eɻ͉atO m+sVş`R ݇B\5,"uW^RzR٩$;ѱqy.e*zH 7i@ե ^5g,0 ˛<:>`9Z2*i)'VyݚwBfןCk"hqxMsW X"PŸa ǥ>Gr7m@t7T0Mu)"q;6JM,däɵ 8lۡ'YO"|sZ6$1hͻgϺӁE*Tݹ~vp?ɲN h@ߍfc7j|bEf s)2l.W˷EC]wOk(XJPˤ|ׯJ׻oyeQw'm%4fR7ϓ݈1QW7N)Q#ݬR<Kn˖<Tr8MA+Fi;] 5oGBgR (]U2M- ͎W,+pZnz͍/z2o,˯ wge]9ϧדDZ[ӷ5|KE\D1 ׿|C~|[Qp,߻+j3$,&i.@cd~p#5i^kR2G^>'>IXݞ<&%͇ǜpoL`&36 ~
+5ɍ S*çנ /S=ǝr$*lɷjU@hp/Eߺ HjvӊLDM]A
+տe#EQuїwSfrClWVydzۺq*-ӯťɭ`_<5Ê-;"!De#žv Ϳ݄Sh`aAрժFF?CBGqTT6!XztLӂ=g3H]3TM4!VLiV-]i(lT?RѽiAA3Y"y= ݲcO"u# nz4#I` s
+_dϚO}rsv,&Muv=?6]\a7++#hh5GM%kwټnӾyydTS*VVx!!rGP1pO}ݟ(aL
+#P9|ݤېD"5٘wϠ@j$r.\K_߉^fفwv(ϳ׹$:lɚl{zJm)ź&%lwǡ C I{<$f%`ϗ'S۬ dAݨ&c&VkIj`ckIۓՙӕ;oqvvq(Ruux(c9}}YщdeVkEtuxrǕ -%.vC^iUdrøm'(N+ HH9Map#$4  (K@IKDY۱3
+
+e]NN˲^MLxtٜrtbck?>~]^}77@ɥa::]۷P&'&
+d!DC18[IWUh٥QR^8'&ݿ[\c[<.uzDُW0.M#hm
+dP:95I^ոÈueepjEoݍP +! eň4DDLa[ߖˠ}88aaE>=/.ŻxՠՏ˸͏fdwUO)/! ivuׂyۍͺѻ8yߣKBVx|/Xp8?R759۝YWF"n-"W{mÅN.21P.F %zͷrE ]g åK]˻\p~w۹#}1G<9?TZFӣyǔǾgL+%i?:~;фjdϙu!5*4]tѬpJtz׍gg'HהWɉ~iVB;b[qٟղ7Kъ 4Ŷ,
+ I5,w
+ۄŘ߄o+JlW -Tkt*7 #
+*׷&Z9NZ,]I6Egyz{<Ӕ!utћ6E2+&I^iyNaQ=ז~??߰ٛveBB5 _H4~G=ߌJbCO3R}߿hB/nێS2%6%=yo;xq BQrM2qOsw7-[a +t ?&݁w߯dӘ&OET$)~D8$REͦn!$8RV%bH8՚PKLJszGurBّWa 3c2\9iWrђfӆ l@TW߽
+Yt bNNӋA} 2A1nR`ݜ'VͳA}Y0J@G!~sD1s+>5EץǢ2ntHkk/8w &KǦ'ŭɒzU!>+,Q0EQRo۔˾Z\cO::]e/NMx]$$aú/0ɱӺ׃۴ %#
+Nũխ.&PgkEnUMqwVhsFa<ŤS&,K5eZ:'(1!|X;|P.gk24Zu{VuC_\:X}ɤ@?a?3msanq;тj:JMF` Ӹ6YoVF@˫t_\+(^7[IþgyzNcR<& GG%19#hٞM?ՈtJݒ{t'?5|W9-HBb3 K
+$mUk=͐!>< c!!.T.ՍcMODVcbAMXkcIM\kF
+HI>%߷$MH9~{6}in$ljjVm>E&a5-ϲm==ߐF^]wAB+$Lwɠߢ ,×g6 /Ymc&PRq__3ӓRnۅяbyR$<^~X} @vKkskT;%K)stSf&=g23mيIjՂFvT06!u(wQLu4]ˇ4CETKf<SJ\N(;bϛXC˧ˉdy~,P.ߴPd"U_YE4"R!c\Q
+ XH=Ր?n^q~߅>O y{p~)UAH<Côf}gvɋ=E-EqջyPS)ai RHtcǿU32`
+Vr0cI x28D5ׇװ5jc8W9 +nߓB6۲c6S?#U4f<ߛ :Ǚɟp/9
+Ӛ.S\w5\߂zJcZF\۽v.ZA
+|\͙U!Ò[9*sFɧc>ә:9}-/]+Oo'-$b? qE͟27ӹ P+8ݮ=otTé%Ǔ{L PAj'H$_~;[hǗdru% ׭c9j,:Mr!K3 O[1^/VÆ 8ŀRիxչ5-0Ѥϐvi"?v;2Z]rn#)Ub3H_d@2# DXU MbՎGUm)au
+I3]b|i_{QQ=3&}xݶ*ϕMɾ~~ݭe;&:oJX 1ǐr>%ZJţͰqjǑ߳;ӎٯR7Cs}jxG;^pnM}IvLeŝ:;c rG3b$tE"
+`|էgOD'ϱB[)>ō{ uۻlVX#FFooۙq@Sm2>>Uzæ1rr\F1<O<>Z10 VOφ'-OX0ݥ''˨xÚWW 7<dd 2zpծ@sO{zŐ٤<=_gg__fìrסգt^GWن˗͕r$vM`˱}SO۳YI\MX0&_eM=4[EwG˴q[(lqǠt8Yaףv,?qh׀l Ѻ#ӿb\ϰ[y (3:]Gq0u}uӞQ<:v%9i^B$s͖EU/a\9.bA4:i}wJmυՓŽψYDH<_wO7$Ϩ0s 0F@Uu=)/CyyYRӃV9͡]r];s˹|04H@!KJn0)NO
+PQ ͔ŜlXQ]^|]d0~llKߔ݂n0&\A ќOŵZEˆdeQ3Y[oշ$%8T((1hF>,;mW1ˮ`TTMqUjvw5<pq\ dy{{nYM 2ˋx5 pӛ E >E'J&)/mihSnуEo6ہBӅs^dEDS##t_43bO9((99]4P&<:PxӼ&,G ՕHnq\ χeۋ_=WKJͼ3e;:3xC9i#gjUÖlI ǺѥSjόcaL}}tQ=xѹ*bwQbbaM46}Z hâ߮r'-׮pi|RQ.s=<^sם>h \ߵpP^ kEvxoӑj:"T˦=_tǨOˊT0/5@&Ŏ4CKɯ"r*ӈ:uJ>bfwwH6K$y[-8~u"]Fy#>GoK$`ͣkɿ\~]ɞT)%
+٭Kp AXK eר˙*Ѩ͊T|AQu/Çb"{?Y݆2Z[+R{P+ײߏd͈k/4$٣oV?tP!9p>i׽DO^S?̓ے* F lH0-cًPUgp S+Cn#[ Q<g,oedٰYY0/  s#iǎ1iNU| A@U}f;*^x׺#Rm'юsSݯCF[}\zFS++9*תtn ϤIьͨJR'st<Px"ǖ FG4oMdp͵.[0l6MEc1|[xe ]5LI-tzɹ6<UZDK4mICsl;sӠD}iQ͒ou\*(k\t^`fQT,% L8Z0'k ߬y4GǂÑxѠ@hrK݃>R.
+0@{
+?*ɴvv~2Lh Oů 3\ZT͓[^47" ݾɫ-TUh}@FUS@6Ƿs75"o ;3Ѽ}>mNBbϩ{ӏff ۸۠ϥ,r^Ov&:NvHW?DÏϼGI~rnzdQ=ӪXz{Մ:bŋ5]a68?F|ZϜͧ*WCKX{_KŌyolpۘ.`%gU{Lvw~
+W %OZmǼl<}fOc@~T*G@ Qgݵ/S_fI|.&ýn8˘ sNbd %zNٳmJ8jàpoמfDQce}uטF /q"r[׋3
+3o B׌mzVvoZP-Bx('2ىsFSiCyJnl,Hw_ßu9PM2;>լ}`WGE,8Gnj˃,í(iBz|
+'`g'˺PW8ieBVC B.jÉ'nɦmmW(97j'3ɜw9$:4 Z@AHkbbuߊ,~X@
+
+Aߧ~kـ{Y6,&m?AbPPXXLopØ.-EXߕGGj&(K}((m%&wb|0ss/- WxVWCI
+x_^8R//ǵoۗ?> "LLDXjHG<׉Ó)(IOcthFIIEV1W xx!5{5^4yssLaG>~݌ 2DžXXF~ݪ+88Z. [ёϯ?5A1mmKv u O:هWx,R=Z @VV /ŒMOɘב4ez˞yzmɁ-<Dѡ61c'-hSmBV10g-:QH!))gC;;5B)eAD/yð:;R$4׼eeUVj{˽9@@}Õ>hўIIDRDP[}]PO1Z(|ö88_~ŞhXdt xwZǹżӧ N٬ߋ67>cߑIIAW?Xjj^:>Q[WYm"`aX2"#7ݳp4):8uR3v+gauj( "$piאoC˼%.Yz{vٔbbAV+Jmͬ-D\Za?AV|1Ɋ0--لlkqѝŗ(h9jiTű 9
+e"6sXl"\5rtŖbh{4Bëy(J6ۊ SI٢ń`Yygf$Bg8:[bߡ/.&9} C՝e{;ϭCEF!TT?G0+*)A2as)1ϊzeJo at11?]Î%ϹwG=-aѶPٴbux~76~#$Q`ÿrP88ׁFGuskӨJ$+8)e3))mFppǃ͘'q7'11a՘vTi+ˍee\;2W }..V^3dFhi=϶]2LLX+ 4k݊M ǣϫӱ[5+%4Ւgf^<ONTuLNb[zv%Bd{{3~}Ͻ|ǫ87g_W 6pc_Oü'-ɀ|ݐN*lQwJXYC/vîN Fp+߭hh{@*oj~pVpo`G&ˢZ1!s))-NT ͢CӲoWx
+ iJGݸ'gz_6ߘn11(exӴ~~
+"̀()}8UDͤXl;lHmǰõ3qVlϟǩ Q6=`RfRy,UAdP _=C<{NGۚm$ cɎNMx?eX{{\4onZ%vPu6nD|crG2f<<ג}&Ŧۈul7W-FDF[o"FyQ;S^;Ӎωۭ(WY]=z>aGF$ Ӧ"Uh5LW8HVɨۨœãs߫1E`748ϣ eQTVNS-`êcT#.#{׾,hgCݫkGvNRDMˑu}Շ)E_ODX)Rl{ E1vHjQŴhC{zզzTdٻ"lKUd&['eɑwï1XY2';j)Kk}wO cMπyņYa(Q5Ռzٹρ_8َݴ0sRf W͞і2߲^ۑ<\,,(xCSSH:oњXn&:?--ױ
+-=`aˎz۫A d
+qoo]^E?xg~~RPExYXcMy2ge9O *7| u׬ِrr6Unmb5w!-'5 :zߗLz ݦQ0FѮy( +!/Q>x|AP.$[8n>f^tѿǞ{w|J7"*Pz `)p6 ICVY80z>Rf U)˥ YxuϷxwۼ τ7=+?ѩ{fM-
+}w5!S/'
+ٍPeXYgRɽp<P,-P;^<Pdš[b2è$H7M+%9MϘ~z#iHlW}J@- :Y#*ۣ=`ߨ#u2$<4Sٱyp\ c5D'alZJxa9,vѯ
+Lgӭáby˰Ddqߝ]u>VM /хo#Nb snd{[3'@jzQU? v]ZR#VB
+w@%۶ͽс%A߼~:!rK7 r`"5!;!ɕz&p+;P Ät8[k~לPdD"Xh23ӡpZE՜yq;l%8SrlųoIkroA%X 0(r׏˄KnQ#AAHeQf3Nc!O *?zhSIlwyϒ "ݕ*%m=T;dc,hckj;˓6xfI)f3)<ۧ?Ӈ|QJy cF"Q0 qɔWZNJ ɃˏU  ӟOɩDgBWjAba0'ϦmͶч#gop׳LBY aJw L^OSA n [J&2qo+դ6Ϭ#ձ Lyj(kљѸUL߈LE݅CnktB'`GFU!BBMmmiѕTռٮNOupC- V͚'(REbI j@ B+r&A I,Ŋ'(#l23߀`ͩziB@nˈ׊͝h*kKee!uI=L5Y=__*Yu]NhGqQ wnɬQXGf b=Q,Ӯm;bI'MkՀ__7q(r*rl;a>ó١wݻſ"߾--!6EF@<l[Gi||߃S..~YX 5+ I33EEi}v%ӝbM``fH4ZZE>Seb\~~ϡpBC/#+ۉr}7sI"\&Pi_u4E5٨tG0SǬNc~GFS˳`p(/Xx6ɰ_) [j9 ,ǭUe3JU/?`ӗ \ͭٲU0xaq*TvϝRr8˚= ɏJ˝ݗ=٪|ݧS1evՊ z-?S1[цٝK8a{3@v׵1w+ X9 _ݓp-6OlxDfۯgѰ2F,,p3ٗr23ɇ͜׆rש%$gۦ*=ɼF,'ˬqZaÀ߱*1POg{ŏgA+ j4@ai 1='nCD+Pd*?cӫj1^fэh#*۪aM)2YfRݡ|vTIlW՗<Rxj9#6$7h`n 1ET,%MaZIi%N}8Y2oѪzɆ&/S|l;[:L6Ֆ<O\&mJCn1 XRDJNjv*9[4CHkW{N
+7/?bq۩ە~XiIt!Gc[9y"+W,%%Xó\NBIm7ݣF[wv˟{ٓO 76_9C|UV bstD}vvÝyeUN<D@ݺt!ճÙvt ׫1(Qy#1(ۢ{W+|99=7K^N&ߒOBZZen9!%t-hCI-4w.e k~^dqLϾ}\-H$>^ x1#ŰBհTSӻɮ CcS[4F!!s7n3\[`NݼwՉIբx.yшjŅUK|ÂyNh,_5s-J`/=\qc_<.sյhVO=וۆ=;:^],b)1DJ /`^|ٚӥDxUݘj ْO/ Od]"V [^;4 PPdUMwۇ%tt'|Tfg0. O͂*ͪ#NӢ^iL rS=T+ǟE/.Qs\T@9( 11@Jdi@S !!mmLݎjgJJ߶PJRYbX7ͥ%LTffO}y%#My˪))BB)&%9[ccvN:\d >d ,zU+$˂xXW8LLթwlrѳK_ppdːս]>56pٵ@Uӵ**BOUU"3M_64p6J__Zpك>÷)vBBKkٖ߁T>ZAbpӜhSѵ3|iz+nq3$5:.P4lp_7sم^{]gT>0e`lj0L:eD`> ӳCߜ@@ŮzT[m
+"x.@Jɺ3ϴ%*)V <(EqW9KJݽB.nɂۂ2;"56݉9A1N7`=iSue_JoϖWu~~\kI]U0 } i`J`?'I? MLN7a|sq88ò6$R
+qq3Se߆XǏ.b/Ѿi052'˩zjј:̈́oK8Ð,*LPپ{F*oۏ7a/b<l~knHqU!Rf9Rwj6!Ŭ&x
+ u3%{͌'@B@ٙy׈ٽ @z+&Gdͱ/|Bs%:\Oi$,Qj
+ѐyY==8>Vy)Yݙd&[\'oZoՃK0X&ߦs\ǯ5d!/A^2ǽ5tuϿkS>ٶQu #[v
+U%,ɶ*0(??:\~ٸ,oo\:ɖt"oR9u]7Qۃ R}Ǯɸ:DŽD6>݋r^H09)Fgq.F<kQ6#0Q=x\uѣcZAc5Hj.;UI-m| th]=$[H^kC%S{۾HE3^:Ls^Pۥkݖt~Ds9 AFgÜ>fP@<]*b9ds K!>ݱ4<^M/fϻ  NBצח#ݰˌ}٧dt!L8ѦrJbVrDT*$q
+W+/G?cN"wϪ/:ѓs 2B]KפpG`>)/Vx&+  0M) ۾=AKdhٕw(,S;ݞ\b05[ BR'&I:vaǕɑWXђ0cj`l.9v(?î2 ш^224ˬ6c9kE`|XY5@hmɗ>c%:5Yð>gͭUDO-
+gf?@X& ǭ1 Vb^ m ׺- 41 kV [ӹxP4\Wnh< I x4hӧz>F0!"vK ݄٤=lj Gň<qp]RxR~tdiG&>OeFB>Mgc.:bdQ8-5HKVǩ)q'Xàa3Un@G\P-XW?߃,`zDz*:݌_$`LBR(`LUUAluwDBߞ 1U M/=D1-KK[ 6rQը<9rP-׻["a:^MJnBFSCG{vxթ~W/%pwi)v:l.8ApbO\ s> ɃvI-1jʼneՔo Q_ Y~zSH|HE*b "ߠ%V "R4ǂc&\ӄH}U2Ѯ$ KSŎM͒˲ RՏI$˗fz$a ["פ!˔<O{|`07<K:J qՑ/7z>AiifS~P~q<ŘU=ŲM'ϔK.?͈uqx{ͯםeh xnDf߄V@˧j1@VdńòHǪϽߋg'H͹1]ӝ
+!>C -$o?}o
+q_=+_cWz'njMR#W^Lͥ!e $Ŋ>p2Z{Y߅B3]]A~DAJE|XdU674n(rI$+R)*:U])%646%1&>
+oP#|z՚َcӭ
+٦n?ik
+Fx.œ?& Gŧ߲nK@'~a-h_'t O$RtT?Bùy kVю`P6DZyQ BlɄo A)#.x ǯ-_3~Q-sU#1ӢiٰNGsA{j#bz3s{z˫*}Eљ݅ˑ{z
+ÑBw"0y?i`Ӆ6vJCjk|qL5}nXg(BF\|;7k(a)הqmу_ۦ[%Ӟp EWUJV\f)o]2@g۞$ mϋ8іmD_ xiR\Z>`23͔m[,#f}Nb,ŖFr
+ÄǢ i1g|E ero)d=HyNjEuUfAY]J`~W1O;m ݠoߺ-.e݂FIPd9û:߶&&Y*בo[6%т G2fHt@e1\c̀-;swO._D> #l7=qz(7(R)aӦ7<Z{ͫzbU̓R& ˤE:ˌh?eV>Y,%ŮEgKnr
+uɮN XI16ELRˢ&Q_u?Y٥MtۛB#k
+V60՘D[-2K۱!2)ӘCHj7@״jyJ5gH8:/{~.ǣYSQݒ;ţ[xod="ő@Z;uxۆt^HDZ`ۡ<i~cpϕ{BrWc}@Tnr͞,cdy2jMA۝ź GhӔYcSca5ͳ 92g@^&l<s\-YǮ\~*@
+W6M"HRP\D%t`H&KHnT/W.CVſL6,ae2F]</S?I4+Jˏ}3>ɞ0ѕǧZ+Dϳl\ ۫ӗ R'э4PPO-tv61ISم-J,ӓyNKoT2iyo~-\?x{Õ| DVp69qӋ9 _$I9'Yuۙ =L|evrpѨ)˸x55z _&kbh
+\dѐ5q\cr#,qNSJTkjy7vy6]1ݹx]+b%'3;7g8:q KkSɔ<rV)])ly
+xCV.6gG#߼ÿ ^#fi.9߂gq*S9TG+2XTφ 6d{
+5FÆYzp^RWfjѷWZcŞG ͉{?p,fݾf`o (%
+/V<.߹ɵLŨ5[  @3/Չ9L y~~OeaFUh|+Q5fT~;8 `unHE͚ɫ;gu V0W#߾h*9x{Ӿ$sgfKnÏs-xf;"њI%5,zσGR̈́_xٯ<ӽL?7/\Mץ%dwfmO&>jی&RJí`$$p+IυAeˈrUщ^Ņʹ`AsC+V\z?!Xpύ<@`3+%3ϒ٫p;
+I$8|kc}˛O8L`)PCPRRō,J Ӳ.ۓ~Aۄyp_/vAss$!|KKjqŕ{Ol2SC׭bi
+="Y߈uuF,`C<bW}s~ Ͳks]/R~lq`{9Ukyۈ3U :a~Byf1T[X-ѣZNMy0C822KřuukM X-I9^uZE?OLVцф;!!|ѯpExc/*BOO4, ճ˂`&Z mC˦q<N].ߏKe(W%Z;ѵ8ݭI'1& w׏ ^.+R9"Ɋi]N K)_6SK
+D۵}uh-*@|ZA
+b"TT 6 3dٽ7]M4#Vw,?B t:=f2[iא&?Ϧjaˀo8_c&)Ѽ iŵNًJRXٹm=ٸ)@ݴDW͡.׎>͵فpx)˰M,*vә@ɖ*VI(ۤ>Hkۚ>@n?^v9fMӈv} fVӰi |aa
+ϵROkE 29׿) \IshTofKwUX׆ J*fX>4]#׃&#ٷ{h9Gw V5z%Ak0{ٔ!;Q +wPٖ(ӉQ|kFw76P:7[$`TVv4A >QnՙvC&=zUӮեX Na~wrfbl DGnbsEn}Ih'}2D:hy@@M:=
+ Y6_v|k@QӖ ^3Nיh!^IFj,IU
+RT́Z=
+8zۮaI]50Pni )o<40ݓ%z=՞b#Ѣ
+ јI"
+rϼ8ŜoOyKO[BkPAvlbk E[LT{3BՐ~=@j~4ÞŻٵQ]Nsݽ0 /YycuP)im<ϸl}S|e#CZY032Yrbl$o5 G'tӸ~}daϢSGqǞ˜*(SL/3ëRJmwvQW ϜzCP$Tۗ\
+'2dC/E{r`L#Dr dYcːp|Y$%%75W}{cŶ6Ѷgcr7'2MiPV)]xXx"YlM)AYӤfg>TN* =͌c_kh*dž4R|V +ɨL`CÜ'/CLkxˣǁS`: ' lN48n%@gon!CߐVYXɢɣL>eQe3Q%d?j˻c'=IuX8T
+Xx=!JvBy77لAǡGPRnk+YU>գ $Gzê7U* $Q( |z*lRvW}%vemtBN͆f˴Z~wg+I;w/}UT4[
+%]{ŋ:&eoW|]++QK4X+a-7$dQūOo'`!ձs(Lͻ\Mq& 
+s
+,BE)jr^M<o. 9HBٮ{E5b`.?h-:/rǨbqX28yb.:[}ɸz(jVٜLzq3$}Ճ<
+NFՓ |4ߔA8Dy,xG(&HɒWE_#jipjelrm7Ӽu<~B).#yߎTQ)ݿH-ݍK6Q|vْ/8picŀۭfşL|K&6).r@N,GiZjv&a9n3v݃Iw׵g8~ۖ?pi_ZoKud[Ռ>٘Je{HہUզg2۠z}e$,ջ1gt.k?ɴ \p 4+śT6<_`:dz2~ zyÔ81*T:
+o}Dռ5Musp{4#GUm_Sd~m9ͦ>Ǜugu2Nô 1$Nd8x55y7ыz=#zB,dv*JbZ͏XC_Z$*9tQ#^T zX *ݰɻlrF"[C]w9BDͿRJ.ia%B '-mC;X>M5Ͱq<Td,˽ozߥj"DTZ"@UۼvI+ǔ `C͸lO"I{τ^Rt i rn~
+G\ۣېۀu0;IåN۸;8>9P1!s?4doM{(WsS.tGXu_˥tt-t<q?Ջ nJY ߮`éף|Uߗ]QmwA*7_ۑAي>{+v٣{ftbӴ wR!tQ6yeSsA3@`O݉[\ۊŏ͢( xlLj wũ*UB0"jt1ӣˆwg8,1dJh,ϩa'UTYdw=j-ɥ@/9"g
+^ߦչ[5^6remN˹ŬVZ4Օ3Q/ 5?:= ,ׄwɎ*bCmf'O
+."_P8}ۨeG9Rɏ=} 5NJ`'uxb
+HMOCu([>^&AKJRpA9+@!]g~^p:VF7(/՝3*%} V+ӎpPa@:{s0׮aXj{$ZÊ0_y9 RyzfSL.U/v(q*2WߑdF.Y3-}Òcѧ49'BE|HKϐs'g9NA+A+Cψ  )ߊ@mױ)E$FA7ۍmaCϨ.#ǵպsRP[0Pj;B;W@v>s[C=<le l)ZX'BU5CaXabP݊-]ՆPh>/;ɼMQɝ( ەժY yS,+YU՛LP˞Tr%q'͗ wB[UnE Ǻ>`˝@zJU_h|yãݝjZ2eٓ.96''&%=eG TqAߩ" 1\]k;y*W"vP 5xkJ9Ǎˎac!' 3[r&A96d>1j2NnxөVB()NWIu=h9kZ1npH%!^?eZYW T_`7Wdm iuB'd?NwGudݯi q^ d4#f@rNjAaL˚շ*|0lRE UE[(`>wØߟZwߕ6o=go !mu-_C4KS!^)͠#0͑wB cH _TixP#j+s
+!g@ n8F-t8)hkxDs<ÂO?(ZqV<Ql]ä'
+Lϲ~u%~ T͍ՀX/dQ`ݸӳ xO)S;ўmPVI@n5(ߙ%"2SnѦi<1ի8; Vr(ü+Iݤ.ݖ7 |F??q*0FjgŁLL1qDߓuŭlH9silǐnՍݚlS$[1{4}tnѫjHec$"5%.ۜˉ)PEuӏsϰKyˁ\1Hɦ$וe"SbS-  bZ!N[Ϥ]J6ߝ]VyͷqϾͬþ9{ۿ mݨu v%~:s͊aM?s==DӠT[c+p1.|e{!]b}>*$v?=io3w<!"7W3BդˋهWcgx0߰ݪϣa?LF#˟~7ťxJ:GWϊs|FU@)6۲@Mbh5gOC˳c|V
+why5dчשъ)ˠ^E%O`ZJלGTA Xs u׉a(jCB"}U4^Sմ\%] 2apN,=|"&LuOsݡ]Us=|FBXǦp ET&,_Y'5z;#
+mjzGjNNNc|+ Pۋ*9 dAN/^ӂD4ٟdɀb_qeͣH:MJXɌNzpV`_% ͇QoǼZzx&O"?lBɷӺ7R@ ]d:rN_,P0#i'..A>jzo>Ouk& gkϟߴ߽k%;ٱrb006ZJxH/Oǚ$\D:R jrJïñ:r.sKcS4"$Vh8}߷8}"Hc<&!qů(ѩ?1Sɿ}h]* {pdAT| -b4y{+h[W&"ӌCm{ Ɂ4
+.f0Czϴ8}Cӕ(fپ/$]S+]^E}ݷqc=kߢDǑD<j;EoߜE&tYӵ:,wI)1T.XMuA+yߚ7X*!Kpec^uBqͅ`ZHB| ѱ'$CݣX7Y~,VP>i,Ѻ~Xpnzݏi# Fs
+ǘ٩{\&2èxYYoAŦ/sV`vll(u\kϮ{XYËP/^hiš}+:!PT͕~0ɰ\ŽJJ?CÌQwwǸC qUZ7J]}%ktOGk~e^ɠsgKt N pesv}{HXZQ4q*!WBi<zόa@Gݩi˵#9D3X߉ϥJ) l1xѻ}ώ+W:@ՇK ^1FýQ|Y[V͂ٞ,mɶ^Ӝ(0Yd$/qf+pRI$M&X9koLۃg,0mFW0"ׅzW =fGv%~8D}PE8' fZ6j#3Ū` ?K y_-AB?-} # t!-:J -kYϻpS=q"rAIIٙ;(է4  -d.FO.&DXpɜ0æՅw@LaScntw7Qf!Ő4W}I_LCvKWTO׌:/ ߱WcEKRnw=AEǃ HׁݜT*4-YmLyn<+ѥ6PRGeS{hgPFqOZ' X`t v%ɆHb߳4]N
+& ;= ՄbvJtǫ<Rh%ݟpS5E.UPmCv+Hy8~e|o!66g9 3rŃKٿ|DGmcS_NVG9 8S=iyMٌl+CWnU #U{V6Q&`(>r"KtKr~zGHZrɺ80CӨǟ#Spq$o/ɧ4m#7KpmX9]QU7p16t2D`Ilj)Q/Ƕ#GaHF"!^Ѫv>TMm@PycǓeD\[V}Ϻ_zA:g&(H 9h3uџ1}g!N4ɩ@S_Eь͐>סt٬&W4LSlnM8%3ɚݥ'\
+ ټJP !~,ŷ׬[1EuՈ!6Ť~t:K@dDPӁ:a-fբT,IGAKdρpIÎ%{DŽBo68=-9۷lN'݆ ˨g߯MçnFiXvu&##+y0p{##9kŒ"cY Xǜ՗x!kSbkl}&M~;st][9< E{$%xLt"v"V0Ţ߫:@ooA!0F747L8OA>[߿٧[4mJɱ.8_ɭ8ɅA|5J8Y $Axk1 ۏ48RRKH.3=8iiJsnzٺbka#8i?Q{&YgE;A6j*(RϘqUZz{d
+;9nA͙ٛכ%yٚ6;Nѹ4-"nj]j5{˩v}1@ Cw? "ZV=V͛"˖B pזg3
+\Q
+kB=6
+ێ;r)SɲQ]le^pՒa8Û<UI?50Q@\Cy=U8]x-OÝE3ۉ[S*5` 3+4C*G^ݶ
+O ӥM$2K RӶ#+f7Ǘ)N\F Ym)LaN? P ^϶T ;:hW3ݧ0Ue~^!\roysOF<jϓ;^QY4WtuL^$mioIa'uJrv3'4zN 2{=\b?v p]]MU0zDwSׂJjqnמۥսhK]8&ِE|^Un&կK+nEKhTqMgm\ {C9&"Zׇ5"ɘrog M͟߸&0ǥeDa+3nWӷ6,۩no٠:cےego9C}%E~FL[%.
+S`o|cb0t9.ߤyTi{WG$r۬[t$IF 2@sboke3N%
+'dRͺIM-{bVl#JM;FCrl1ـ/L]g$'ϗ\πm` 7תJM}+NÚ6?E۰D͓=P2͋xX.v>r8ߪ>߭~|\m;׊S0:TW"<Q;A1ݙA~kwg2/)E-/D/ۢ5\2c!az"p?՜Q<S*/35+[2c~b_cf::$#1-CUcM/y4u/ϚݢӬќm*R;ߘx۔r1M,\ [J,ǰDI4btݺ-3^
+` ÅwHa"V|a'G͖BG>,%`ImÖ%3?U!9˄wR+ӪsÙ pmw /`oqVG=ոV6\k٢\?A)ۅUkGS<_>Ls2˶aN x jVDu$.^#L]!ͮ1Di
+Pkr7A]ߒ6نE{1cŌ&-D?l9WNE]ٲsd!=!ӃtF&P5cϿk5}~ۻs.bt^ f5OhZ2{ݕ4u1 @T yO!e)bgL&55SffɓLPBoa3 TǴ~ %7ϏPt8*3Ÿ##۪xCO@s*.t..חj9):*_;\ͩwdF ' E]zZ<RfgZOJjyY24?M9٪ B>Qk
+%MM2׼/ z:dyGnt8`͎"ݐA b3m5x>?JTс\HY{j+o@Y(l!YGhѳ 3CgH^||.>qّ'N3^0.DO-p 4דvi^קmuǻݳ,ךg6dn/- 6Z<OT2WlٳաϹk;0J B'yw/ӑasy߇߆F=5lSCZ[$us)\2͘ õttm@ݗvϬEeQz;t@n]~żə(0I -?ՁDws.X1 y$ kُt ɹ<"aP>_wnV͜P'˕2\fٝ.EawU#Cig1#k^ӫkx'l/Ro<[hˊ1hjalDI׀Aǀ)iY,77 !-A=KcϯǤWhb mQ;@S +|˭ I@s#']*'O۶ݮELlς H`Q #HhC(l|` [/RY&M]e?˙х65- :$-EŰn$SFz
++F R[boBI~ s<kK3p5
+Oe÷I\K},V vd7]Z{T Xm=7(|Oŗ2;Ŕr'eK?fT5G pRE('rLymհP3ǿHAxÍ@U8SfcwD6ϖ8iR*m|5 ۽}n`he)Hm\YnǾ7l ;˺EHX@=`->c_-|bMc^dx7ѸH*" 4DTs_v=bJXjG7uwm+bbىPQQI5F41٨B7J?ǏpUJv ZHdݫZE1_^Ӏ,cw hoL<CÁѤSǷ,0KÇ!5]~}qâ?Dd l* q<ϫO92Nյ2kߨbӆL#ӻ:ma۴6KTrBjHߛ/(#vu,ˡCC+=b 'LDž"DT3?l/wגq^@g~ @lj[puKRh77A(zZ5,]u g2 NTQtѡVE|',ky3a "}H,Ɉ[D r,DW/NiO(]j<8AW/"ɾDݘղL˱eˮ*9w!B۟q58b?ѠR>8tal2ϡwߌawa{Ktv:ݑj(OB1!yV+˅ٗj)} (C!V+z ff%Rӡ: 2fѴoYpћo((I7&*h(*}/rMhѾ|RKH&a ע%:#G xտ> yUZ`D62[t&[˪!ItLF/ӿ^Nq<k4Syw|Ӑ)3]U^ӯHW<f(H7\!G{8,<vWhsK%aoͨU / B
+ɤb7#OyPvwϛϝ*"FZ$ 4kLXWw__4ÉqxH Q%hP"Zˍє)OFT*[f[Xe!݋> 0Kgza]u-y6o*|SǝlX?A=ioɡ3ET rOI^ [+Pos8;^]L}Q3F[5jpRW׶>ǎՎ,6~>=d+YL"*0 ǹO\W6x;Eu$[ն0~5- ׈׷h/χ8{v'p<cMEžITJ߁aϠ1)oϷ7%ׯbLJ}ՊFo߻ɇ0uS׫q h˿)dݦ }-B_L Z: M\Lf=mqö&ͼNEXl;8 ٴs_)Aøծ,$ .F5լD/Q KH;Fy;-dfAߡ)7˒e|g>./tLouїHr^Z,w((f.~xF$ϭX"3Z?#D53i׋{;ۘcLJ>f!V&BG0~ZMٶѓJ~q\M+ Nj$pDó9GIJzpVYtW(ͤXdÃ`߀I; ՂrF<ZS݀xNrQF3-M,Cy <i!e˯:ɛv&2Vd+ݎ$Q_Ѭ=F<(mN).J{<nӱd׽Vņq1x=ײhjӍG^Wb5*az/@9p>,q.\
+ai4MɬeCǽn,l١606lduˇgO׾ɉų:!݇ gqۇD/ɕFhn'^ߵ?kM8Jٻݻ+úOrGEgϱϞiOj0NrUEM+P/Nb\2!\+9eBN՟N ՠͶɟt4C>MO͝:y݁6!Q×UI[łŚ; Oc}eɯ:QӇ# &0 B)%i݈w~%˷ݱW{\hKbF0h}Xd*!.ѿ2Ň'`au^XQ.(Y0uj>}Te׹fװ'I8ßG53DsqMɋf"ט("˼[S1@J&Cצ%h}<iW'i=WC\97*GRhz3tr4 ű=ӟ:o)LYو pUei~ݵb;5Ydh,mnPh , F%2 ɪÀ
+AUnɂ5]]IYX,SRu\Ֆ,gcgQ#}bm$GT9ia(ϑm;rנݔ_ErÈJ[ϪѲ?|z˃խQ];Eߍ%B_}iìE|ͱɐ_gOs1H+ǖG}7H8t`<1VF9`fDv.;;b%SH@l(zg#-U2des [;?o ɽ%6&-[+L=qXt')ϧbӒxKqv"xվwz8T;[KM׳f1":[ fnzsR\~xhI9G_F ׍]
+^Ǭ JvOӚ_r? fكǙB$!Ft\LG;-#xuONןѭ6rLZsѰ^|l)۹ŹDc˾0QŴglpÐ qۧ^A(P˓
+1B>a3\ZeO/o(H
+FU[GI!o0%7e$'43cP/YͧxY hFzقߧ^aQ=/eӊ m 2, wác`G>chnŝG*<v7D;߬d'w7<jɍ/97ѽm#'0q)# ;PF۳!/`p3Sр{V"u:rh"knN{U7JkK
+Ilǒy^fZYND1$WYǠ{*Y_vSMk ZQٍ׸w4C<NiLPB `X%egWۂ0!9J<h1GeDϙlpO=**Ó1IcJ.tBۺݛͽl8X+2mfq٭ߣ01yV<mu[|4Q32Qjiω}Hݬ˘f(0A*_n:3c60,`ɳH_ iTIJяsݲHۯ@Wё($l#:ר;_p7L!MݼY_k
+wqP'T+xxZjߖdѝ _5*v|6X=GZF_)<n:te mB3(T C1ӛͪ >=m](#"1_
+3')|"7 u2|K#<U# F2/0 ."b<p!7"##DE !A
+M+r A/< #
+# *  Y#-6.  -1d(#D!()\  $=2'0o(dQGɡ!;"%!8cu"9wvKYׄFyn7q-vuTώ-? hÞ~rߩK{N-8/O
+*: w 2&F՛V`)'N<& -!# | c(-'+  j!$ %3a A
+ w*/"$"O /! }"#)- P(? (0A-*K"$"7'!#;U)! -&c3&/`&;1S0*G#`0) )_/; S'7+?!$7*W\9: *A* "-(e !KY*|# FE G ` 5" (1 @#+AO;I U Cj  "1
+j$Q#? 7ɓ
+fL?
++QK! X$)$X,$ )X#E!="9  <[N&/ %#:M#!-(%i-N5;'5')%30A"+ "*;k##]b15ɛB{Yu2Oσ4VI[[Ӑ7w|!PŇY "1Ӭ #L'<n)8T"͆IlW
+_ 1~Yt 2NDt!ύ#"\>:E,&8/ I vA!Ϯ'/SS3ͅ !{% !0{? Mi- [5Vb<'&f !%Y, 9! ѝ7Z -"U;{ K?a"
+4
+G2!^ # UfJ$=ۀ$ U?w y".
+C ;#i"$%=/C/:#)1=VADtD!
+*4.sJ#! .Ӱ!!tKSݱ6t"DF{Cə"$ŏÃ* @=!!{M " >WӖ!""(
+E;D"#3q*"!
+ 8L) "{w ~ 6qFz͋p+95 E*/:>!Ӥ['Q[0<L!7:>K$۟w&&Jϑ8<5_=?>Y12 #?K_!PD'O%%YŚ8h 0 5WWSH;?7<V2"20` ; ;...-&K7 #1MFX/5<.#J .#;1% G";I
+@2XY0K
+
+Z<4XO4{C'"A#)Iw/ DE E ZE,;*"'$=J -!C6F7'+/Ow|6. 1aJ#  [ y˅/?M[$ /42
+#0&/ 'p| ;%9'u*mxCa @* ٔ$AK1-E ;k 0 1X7;{4]]"y#1_@>;|`dzK@VJ":/ "T  y 0 
+(@ v## 0h& 9"! 7k; )/( LG$" xN !$O! "c u 'G/ o "j  V  2;B +V!2B!!vvɆ )FQA$.R @#
+x|+6P!h)c;?V:
+ ˡO"4{;(@=(6-۵B|E G* CL( ',i .%o5_wϔ8541S8%\.$a+-K' +`"1+k-"1M!$C18I 2 ?! n 3C $12(:`*'',9F Mv9.I-h! 6F($)$'+-24%'12'",0+<8 ɲ D|+  )ð2z+AY,6(JV$8Q4"F K%*#\(OC#-L!<L !K"(r!8+F";"WGBg (]U. ,+Z/J
+?2c #BB$$ \F/C8|Q (y"lZ "RSsC.#sg&$#LW5( Z7RFp!. %ӓ o͇L'$ +
+#HHɍ
+5*T  #Ņ @PYM*D*M
+.~>E!BdQ$#"їS #3
+ +ѐ5"[-]0!! "#žv5 SA7 !%!?ICBQ)0ۉL'!D=*" #< V,(5 Z?/%! +~0O =u ϯ3nz4#
+_dO.  r  C(ѕ&'(=^&'&!+# J5GM%(k D!n(7ayE EOCS!VAPpO}!#"L
+#9C|+DL"~٘& #r2,-Kk #ŋ:1)-y#. "%Q|)g
+* "I{<$f%` cVDD" C;Yx!)tA. 9B7^
+=%H-C9p_- 3'"@DDK۱
+)NA˲+'x'/r(%(b$>7+(- :/&]!9&7)#"QC%1"I #&5uEDK.'0*5oI7ݍ" C+E C)1ň'  B5=>_.E-='=d(O"G  i y =U=8yB HxG/X8?759W-"W{m21. %zr "= ˸KF%0\Un:}1
+M.>ǔǾ:*фKd!o"(Rt' J)% %L*הW2B;7SB &Z( ,
+Y-4o5+J *t#  ( "",  y!D"z5x4*CtM>GhG=qזI '"j~5=71b.O;R.}h%/n 2 %6%;=q 9Qr52q8O$w7--a +t;w8s5E$/)]i~($ߔRDn!$VbH8՚PKLJszGurBّa 3c2\Lrf#!ӆ l@TW߽Yt (NNG A1kn1R`<'߰ѡ}0(qJ](ӛ@!˩~TD.1+H)5 .Ǣ#2;H"/;;8>[&K[zU!>%Ӏ g۔?M9")G<Y~ ! 7#Nũխ.&E(UqVsŤ&K5e:'(Pgku{V_\:X}ɤ?!!J3Ya 7;F!J MP@{
+ ˫ AF\q<&'][IMzN  
+/W%
+M-?5 Jt*?H: G8 5W9-3B== K
+$m=3<ccoD GS GA 6 BX IMkF
+>
+5%Y90{$70^3-i.n$"gVb&'a5-6C01;w A:FF+$ALFߢG,k%g(/)m': q;)_'R@ ۅb,R&$*Kkk%;K)stA=g2mmDjE;T!(/ u\ Q%L(+]*4EFK <)DSJ N;'ϛC˧)d,.""U!0= ?Q~0>y*p
+~)AHj'ôOvai Rtcr0c85ׇװ5W9ߓB6۲c6?ߛ :Ǚ\w5zJcZF\۽v.|\͙U*sә9}O?7ӹ P+=T( >'&')_B CTh d HM$a '/Æ ŀxչ0cѤ)v"v2Z#M U GGUa#
+#b|i_=!ϕ"&)J '%JţͰjǑ;ӎ!7+sEjx; pn}:b G+1b!E|էgOD'ϱ)>,# ɰE##o*@(2 $
+ $!1)'E'A\$  #!C 
+'@2.')O+/."_r. ^/G/r$Q).<?BYr&22  W_651'Z+1*qx&,I-?11  q#~\":XTy^Ç#"\1).0cu. <$(:<%$ W"s"?E/ /
+#!)4/ D/ <" " ( $U1C) CV- 9h x@ 
+F?L Q 3!|2G]I*K 7=EQ;!3&Ś AL(3F!>F?J, %ˮ<qHOUvK'45d{)IYCu2vxC' ' )+ELJ&ɪXSi-no?6ǁ)A##"O(#"1A&\'_!= =g9 &8!*MA)b!4}9!0}AL"א;iם>)ɗpHP E&vCxCoTE=E_tǨOˊT/A5
+C&Ŏ)4MKɯ"O'(N('> +)_$E1.1O$'-& < <"]"2EB'($$&-/\;c] *J
+A$)$ !V
+ - 2C
+;"Ѩ('
+D*"$B"@& ("&E$+$+" D ?#-!>**"? Y5( A7o#*U)+DٰAY/M/7 q! P+*?' r $'2^
+'a(U+7"/ AD 0(]1) #F4* -'b$E+)t M# ,C '#;
+)st<b %d&M$AEH?0l6Kc1*e 5X-+N^*6\<US#48C#lsD$Q#"(3^ B$ky3*x#$yK !
+#1i*v#2 \+O2D(BJ
+! 'DEɫO-'@*B'6 +8s5
+o;]}/>/( b*{./ӏ7fE ۭ ۠+,x0O/2&(@EGW?K4r`nz.Ӫ5X95(WZ K "].y!l#p'>1%ۃ( U2"{;L*A 
+Mw xO mN<pfT Ou@} dUc@ ÷N/#b^IO!&Nx ONQJ"N81b\/P/Q=eFS #]"P([03OBJ]BV#T\Zj-"NB"P2AFYS@yTJ#bl,Hw_ßu9PM2;>}`WGE,8nj˃í(iBz
+'`g'
+Pb 80'B#6Ez'nɦ!/71'w-0$ +u+Z#k;łm?!"P5?L ;?-?!C#&
+"}9Eb'='|;s9" !(x=
+E oD ۗ>KDDG j<
+׉OHc'C")!W x#!5{1#^s7&7/G>~݌~ݪ+S8".ёϯ?yAK"-v 7u=:8W!=Z@ K?/ŒG ezSm IɁ-<A Dѡ,'m Og :E?H!#5gAC59BeADð:;$׼e#UA{I9#3}>V7hўD7"D] O9E1#|ö83'ŞhXd w=Lє ߋ6c?A1 ?D;X"eXy"G5p4;":8uv'au( "$i  o7C YzY 7vDٔVCJmͬC-DZ?|÷ɊOل;{ S
+X"us"OXl
+"\5r!bBy"( 1.6@IYńYyL7$B?g8!9M"} C?e{A;ϭC!0)/Aߪ s)1e/JA %w"G =-y7aѶP%bu"C~)!Q`ÿKrP81HEFE.J$5))CFpA'aT!"i; 52 7}1/3dF=+/϶]LE + A"k )݊M [4Ւ
+<!EN= L zvݰCBd{ A3ǫ7&W ?6pSK_O'I|Nl#'Qw#%J/+vîMN 1Fp+h)@=ojpV3H`AG&Z1!sND7
+SYJG'ǐ5gz_7An( 5e"+xӴ~O(!
+̀(8(0D'$ *0YA$7.
+qˬ I  # & !b= <? 2%#$ [BMW)eKX{)B\1ŀ n%u6D2f<<ג&l7WcD-Y'[S;(ωۭ(]>;aG4$ "2Q%h~W8*Mɨ178ϣ QN`êcT{׾ݫkGNRˑu}_EHC${Bzզ!zٻ&['e '$ &;/+#"O( 1yVņ 1Q!s!z 8&!# "َ&#)s
+<W.M߲^05<8?C4S1( -:#1
+I!z1'q+~IZPE2&(2e2s   uِr/6! :Yz#LKQ0yL
+!Ş/AP.$'#^ " "P*ѯ "C <)| Ex uF!
+
+w"'#
+P(X+R p+!,;<[&"v$#7"% 9K~2}#
+:G="C#-u "}<X 4p\c' )4Zb FZ >*) V;Nn s;* ?D m@ 
+m vсA߼: ."!'pe+; tkPKd#&E;gY8lųXɸr  (rfQA"AeQNc""z%SIl y! T;dc,Ǩh;Okt˓6fIj)H3)<k?Ղ|QJbsA_ Y0 fU9  ӟOYDWjAtͶu# a=Je LCOSA ø +0n Ϭ#ձLkљ?߈L݅7C'`F;U!BCMm/iѕ7TAٮNEupC͚bI@; B&#lziB@n+͝hc*kEKe5!uI53=_#*Yu]NGqQ nɬG
+==Ӯ'!7' (H">ۚdbݻ-+Ő)!
+SG" K%# " a1KM)4'^##F/}#(/7;I"\&P>i_45٨.tG0SN~`x6 ,U3J /ͭU0xaqW*T= ɏ"Jݗ=.ݧ!S?1t[цK!v׵!1w X _p#-/Ol D!ۯg9j,3r#_ɇA793r 9#CB*|# b=qZ1U017 *4 ט'+$*?cj1-##>Vq0DL##j"T"$'I<1/#1 ( %<A / "$'N/: !!<yA (#--"#u;11:,  ##M*"#"F
+
+#\/"~I 0'E$"J"N,1=V5|F),˟{O6CU) [bsDv/!%Ý't!ճÙv(+9=7^#~_ZMLn9!`- nw.7E0 }#-$> G xW#ŰBհ( C[4![s7n3[aNݼwU.yjD/2!H1[ ),3TJ/*#4
+C<7=p;I9##
+O-DD& "TM`^|Y
++3 G.1 B 3s (=тt'O͂9* *##NoL r !97T+!EZW/.s\T@9( 1@Jd@ m#߶J-S?"!L%&O.B #T.0FF%)QO1BE:у9"3:  ,MA$*PWK (w
+l.+!d,)g5%*"p+(JB 3-3v .-p=6JZ>#vI# )K >JXӜ:3ipz!Zq!,5a.! "lp7'sم{C>0`#9:B #>! CY@ŮzWT\
+U!@
+3% M(EW9˔J' .[fɂۂO2"1GN*"J$W'I4U3  p#(iBJr`?r"
+Lalq8%6|$ŕ
+@3S߆XǏ' #:VK5Ð1Pپ{#*oF3a8/2</!k!4:3=w864!+&xJ
+  u%{ (y׈ ۱+͕Gd]/|^BFs0"0i%Mj
+)y8>yFYݙ)['5{Uog&ˀs\5zd/A25ǕtuI>xu' #[˰v
+K%ɶ*?Yٸ,oo4:!#t""ߏ"o& R7 &) R*(
+>݋H )F! Q#}x\u.GEA"# y - *8*%B+9: 7PFk+$9
+/ 1Ü>@ !5 ! @04R " #h 
+})2!
+J('b
+M;(,8,'+w -c
+ݶ p;)"3V!
+>=m](#"1_
+3')|"7 u2|K#<U# F2/0 ."b<p!7"##DE !A
+M+r A/< #
+# *  Y#-6.  -1d(#D!()\  $=2'0o(dQGɡ!;"%!8cu"9wvKYׄFyn7q-vuTώ-? hÞ~rߩK{N-8/O
+*: w 2&F՛V`)'N<& -!# | c(-'+  j!$ %3a A
+ w*/"$"O /! }"#)- P(? (0A-*K"$"7'!#;U)! -&c3&/`&;1S0*G#`0) )_/; S'7+?!$7*W\9: *A* "-(e !KY*|# FE G ` 5" (1 @#+AO;I U Cj  "1
+j$Q#? 7ɓ
+fL?
++QK! X$)$X,$ )X#E!="9  <[N&/ %#:M#!-(%i-N5;'5')%30A"+ "*;k##]b15ɛB{Yu2Oσ4VI[[Ӑ7w|!PŇY "1Ӭ #L'<n)8T"͆IlW
+_ 1~Yt 2NDt!ύ#"\>:E,&8/ I vA!Ϯ'/SS3ͅ !{% !0{? Mi- [5Vb<'&f !%Y, 9! ѝ7Z -"U;{ K?a"
+4
+G2!^ # UfJ$=ۀ$ U?w y".
+C ;#i"$%=/C/:#)1=VADtD!
+*4.sJ#! .Ӱ!!tKSݱ6t"DF{Cə"$ŏÃ* @=!!{M " >WӖ!""(
+E;D"#3q*"!
+ 8L) "{w ~ 6qFz͋p+95 E*/:>!Ӥ['Q[0<L!7:>K$۟w&&Jϑ8<5_=?>Y12 #?K_!PD'O%%YŚ8h 0 5WWSH;?7<V2"20` ; ;...-&K7 #1MFX/5<.#J .#;1% G";I
+@2XY0K
+
+Z<4XO4{C'"A#)Iw/ DE E ZE,;*"'$=J -!C6F7'+/Ow|6. 1aJ#  [ y˅/?M[$ /42
+#0&/ 'p| ;%9'u*mxCa @* ٔ$AK1-E ;k 0 1X7;{4]]"y#1_@>;|`dzK@VJ":/ "T  y 0 
+(@ v## 0h& 9"! 7k; )/( LG$" xN !$O! "c u 'G/ o "j  V  2;B +V!2B!!vvɆ )FQA$.R @#
+x|+6P!h)c;?V:
+ ˡO"4{;(@=(6-۵B|E G* CL( ',i .%o5_wϔ8541S8%\.$a+-K' +`"1+k-"1M!$C18I 2 ?! n 3C $12(:`*'',9F Mv9.I-h! 6F($)$'+-24%'12'",0+<8 ɲ D|+  )ð2z+AY,6(JV$8Q4"F K%*#\(OC#-L!<L !K"(r!8+F";"WGBg (]U. ,+Z/J
+?2c #BB$$ \F/C8|Q (y"lZ "RSsC.#sg&$#LW5( Z7RFp!. %ӓ o͇L'$ +
+#HHɍ
+5*T  #Ņ @PYM*D*M
+.~>E!BdQ$#"їS #3
+ +ѐ5"[-]0!! "#žv5 SA7 !%!?ICBQ)0ۉL'!D=*" #< V,(5 Z?/%! +~0O =u ϯ3nz4#
+_dO.  r  C(ѕ&'(=^&'&!+# J5GM%(k D!n(7ayE EOCS!VAPpO}!#"L
+#9C|+DL"~٘& #r2,-Kk #ŋ:1)-y#. "%Q|)g
+* "I{<$f%` cVDD" C;Yx!)tA. 9B7^
+=%H-C9p_- 3'"@DDK۱
+)NA˲+'x'/r(%(b$>7+(- :/&]!9&7)#"QC%1"I #&5uEDK.'0*5oI7ݍ" C+E C)1ň'  B5=>_.E-='=d(O"G  i y =U=8yB HxG/X8?759W-"W{m21. %zr "= ˸KF%0\Un:}1
+M.>ǔǾ:*фKd!o"(Rt' J)% %L*הW2B;7SB &Z( ,
+Y-4o5+J *t#  ( "",  y!D"z5x4*CtM>GhG=qזI '"j~5=71b.O;R.}h%/n 2 %6%;=q 9Qr52q8O$w7--a +t;w8s5E$/)]i~($ߔRDn!$VbH8՚PKLJszGurBّa 3c2\Lrf#!ӆ l@TW߽Yt (NNG A1kn1R`<'߰ѡ}0(qJ](ӛ@!˩~TD.1+H)5 .Ǣ#2;H"/;;8>[&K[zU!>%Ӏ g۔?M9")G<Y~ ! 7#Nũխ.&E(UqVsŤ&K5e:'(Pgku{V_\:X}ɤ?!!J3Ya 7;F!J MP@{
+ ˫ AF\q<&'][IMzN  
+/W%
+M-?5 Jt*?H: G8 5W9-3B== K
+$m=3<ccoD GS GA 6 BX IMkF
+>
+5%Y90{$70^3-i.n$"gVb&'a5-6C01;w A:FF+$ALFߢG,k%g(/)m': q;)_'R@ ۅb,R&$*Kkk%;K)stA=g2mmDjE;T!(/ u\ Q%L(+]*4EFK <)DSJ N;'ϛC˧)d,.""U!0= ?Q~0>y*p
+~)AHj'ôOvai Rtcr0c85ׇװ5W9ߓB6۲c6?ߛ :Ǚ\w5zJcZF\۽v.|\͙U*sә9}O?7ӹ P+=T( >'&')_B CTh d HM$a '/Æ ŀxչ0cѤ)v"v2Z#M U GGUa#
+#b|i_=!ϕ"&)J '%JţͰjǑ;ӎ!7+sEjx; pn}:b G+1b!E|էgOD'ϱ)>,# ɰE##o*@(2 $
+ $!1)'E'A\$  #!C 
+'@2.')O+/."_r. ^/G/r$Q).<?BYr&22  W_651'Z+1*qx&,I-?11  q#~\":XTy^Ç#"\1).0cu. <$(:<%$ W"s"?E/ /
+#!)4/ D/ <" " ( $U1C) CV- 9h x@ 
+F?L Q 3!|2G]I*K 7=EQ;!3&Ś AL(3F!>F?J, %ˮ<qHOUvK'45d{)IYCu2vxC' ' )+ELJ&ɪXSi-no?6ǁ)A##"O(#"1A&\'_!= =g9 &8!*MA)b!4}9!0}AL"א;iם>)ɗpHP E&vCxCoTE=E_tǨOˊT/A5
+C&Ŏ)4MKɯ"O'(N('> +)_$E1.1O$'-& < <"]"2EB'($$&-/\;c] *J
+A$)$ !V
+ - 2C
+;"Ѩ('
+D*"$B"@& ("&E$+$+" D ?#-!>**"? Y5( A7o#*U)+DٰAY/M/7 q! P+*?' r $'2^
+'a(U+7"/ AD 0(]1) #F4* -'b$E+)t M# ,C '#;
+)st<b %d&M$AEH?0l6Kc1*e 5X-+N^*6\<US#48C#lsD$Q#"(3^ B$ky3*x#$yK !
+#1i*v#2 \+O2D(BJ
+! 'DEɫO-'@*B'6 +8s5
+o;]}/>/( b*{./ӏ7fE ۭ ۠+,x0O/2&(@EGW?K4r`nz.Ӫ5X95(WZ K "].y!l#p'>1%ۃ( U2"{;L*A 
+Mw xO mN<pfT Ou@} dUc@ ÷N/#b^IO!&Nx ONQJ"N81b\/P/Q=eFS #]"P([03OBJ]BV#T\Zj-"NB"P2AFYS@yTJ#bl,Hw_ßu9PM2;>}`WGE,8nj˃í(iBz
+'`g'
+Pb 80'B#6Ez'nɦ!/71'w-0$ +u+Z#k;łm?!"P5?L ;?-?!C#&
+"}9Eb'='|;s9" !(x=
+E oD ۗ>KDDG j<
+׉OHc'C")!W x#!5{1#^s7&7/G>~݌~ݪ+S8".ёϯ?yAK"-v 7u=:8W!=Z@ K?/ŒG ezSm IɁ-<A Dѡ,'m Og :E?H!#5gAC59BeADð:;$׼e#UA{I9#3}>V7hўD7"D] O9E1#|ö83'ŞhXd w=Lє ߋ6c?A1 ?D;X"eXy"G5p4;":8uv'au( "$i  o7C YzY 7vDٔVCJmͬC-DZ?|÷ɊOل;{ S
+X"us"OXl
+"\5r!bBy"( 1.6@IYńYyL7$B?g8!9M"} C?e{A;ϭC!0)/Aߪ s)1e/JA %w"G =-y7aѶP%bu"C~)!Q`ÿKrP81HEFE.J$5))CFpA'aT!"i; 52 7}1/3dF=+/϶]LE + A"k )݊M [4Ւ
+<!EN= L zvݰCBd{ A3ǫ7&W ?6pSK_O'I|Nl#'Qw#%J/+vîMN 1Fp+h)@=ojpV3H`AG&Z1!sND7
+SYJG'ǐ5gz_7An( 5e"+xӴ~O(!
+̀(8(0D'$ *0YA$7.
+qˬ I  # & !b= <? 2%#$ [BMW)eKX{)B\1ŀ n%u6D2f<<ג&l7WcD-Y'[S;(ωۭ(]>;aG4$ "2Q%h~W8*Mɨ178ϣ QN`êcT{׾ݫkGNRˑu}_EHC${Bzզ!zٻ&['e '$ &;/+#"O( 1yVņ 1Q!s!z 8&!# "َ&#)s
+<W.M߲^05<8?C4S1( -:#1
+I!z1'q+~IZPE2&(2e2s   uِr/6! :Yz#LKQ0yL
+!Ş/AP.$'#^ " "P*ѯ "C <)| Ex uF!
+
+w"'#
+P(X+R p+!,;<[&"v$#7"% 9K~2}#
+:G="C#-u "}<X 4p\c' )4Zb FZ >*) V;Nn s;* ?D m@ 
+m vсA߼: ."!'pe+; tkPKd#&E;gY8lųXɸr  (rfQA"AeQNc""z%SIl y! T;dc,Ǩh;Okt˓6fIj)H3)<k?Ղ|QJbsA_ Y0 fU9  ӟOYDWjAtͶu# a=Je LCOSA ø +0n Ϭ#ձLkљ?߈L݅7C'`F;U!BCMm/iѕ7TAٮNEupC͚bI@; B&#lziB@n+͝hc*kEKe5!uI53=_#*Yu]NGqQ nɬG
+==Ӯ'!7' (H">ۚdbݻ-+Ő)!
+SG" K%# " a1KM)4'^##F/}#(/7;I"\&P>i_45٨.tG0SN~`x6 ,U3J /ͭU0xaqW*T= ɏ"Jݗ=.ݧ!S?1t[цK!v׵!1w X _p#-/Ol D!ۯg9j,3r#_ɇA793r 9#CB*|# b=qZ1U017 *4 ט'+$*?cj1-##>Vq0DL##j"T"$'I<1/#1 ( %<A / "$'N/: !!<yA (#--"#u;11:,  ##M*"#"F
+
+#\/"~I 0'E$"J"N,1=V5|F),˟{O6CU) [bsDv/!%Ý't!ճÙv(+9=7^#~_ZMLn9!`- nw.7E0 }#-$> G xW#ŰBհ( C[4![s7n3[aNݼwU.yjD/2!H1[ ),3TJ/*#4
+C<7=p;I9##
+O-DD& "TM`^|Y
++3 G.1 B 3s (=тt'O͂9* *##NoL r !97T+!EZW/.s\T@9( 1@Jd@ m#߶J-S?"!L%&O.B #T.0FF%)QO1BE:у9"3:  ,MA$*PWK (w
+l.+!d,)g5%*"p+(JB 3-3v .-p=6JZ>#vI# )K >JXӜ:3ipz!Zq!,5a.! "lp7'sم{C>0`#9:B #>! CY@ŮzWT\
+U!@
+3% M(EW9˔J' .[fɂۂO2"1GN*"J$W'I4U3  p#(iBJr`?r"
+Lalq8%6|$ŕ
+@3S߆XǏ' #:VK5Ð1Pپ{#*oF3a8/2</!k!4:3=w864!+&xJ
+  u%{ (y׈ ۱+͕Gd]/|^BFs0"0i%Mj
+)y8>yFYݙ)['5{Uog&ˀs\5zd/A25ǕtuI>xu' #[˰v
+K%ɶ*?Yٸ,oo4:!#t""ߏ"o& R7 &) R*(
+>݋H )F! Q#}x\u.GEA"# y - *8*%B+9: 7PFk+$9
+/ 1Ü>@ !5 ! @04R " #h 
+})2!
+J('b
+M;(,8,'+w -c
+ݶ p;)"3V!
+>=m](#"1_
+3')|"7 u2|K#<U# F2/0 ."b<p!7"##DE !A
+M+r A/< #
+# *  Y#-6.  -1d(#D!()\  $=2'0o(dQGɡ!;"%!8cu"9wvKYׄFyn7q-vuTώ-? hÞ~rߩK{N-8/O
+*: w 2&F՛V`)'N<& -!# | c(-'+  j!$ %3a A
+ w*/"$"O /! }"#)- P(? (0A-*K"$"7'!#;U)! -&c3&/`&;1S0*G#`0) )_/; S'7+?!$7*W\9: *A* "-(e !KY*|# FE G ` 5" (1 @#+AO;I U Cj  "1
+j$Q#? 7ɓ
+fL?
++QK! X$)$X,$ )X#E!="9  <[N&/ %#:M#!-(%i-N5;'5')%30A"+ "*;k##]b15ɛB{Yu2Oσ4VI[[Ӑ7w|!PŇY "1Ӭ #L'<n)8T"͆IlW
+_ 1~Yt 2NDt!ύ#"\>:E,&8/ I vA!Ϯ'/SS3ͅ !{% !0{? Mi- [5Vb<'&f !%Y, 9! ѝ7Z -"U;{ K?a"
+4
+G2!^ # UfJ$=ۀ$ U?w y".
+C ;#i"$%=/C/:#)1=VADtD!
+*4.sJ#! .Ӱ!!tKSݱ6t"DF{Cə"$ŏÃ* @=!!{M " >WӖ!""(
+E;D"#3q*"!
+ 8L) "{w ~ 6qFz͋p+95 E*/:>!Ӥ['Q[0<L!7:>K$۟w&&Jϑ8<5_=?>Y12 #?K_!PD'O%%YŚ8h 0 5WWSH;?7<V2"20` ; ;...-&K7 #1MFX/5<.#J .#;1% G";I
+@2XY0K
+
+Z<4XO4{C'"A#)Iw/ DE E ZE,;*"'$=J -!C6F7'+/Ow|6. 1aJ#  [ y˅/?M[$ /42
+#0&/ 'p| ;%9'u*mxCa @* ٔ$AK1-E ;k 0 1X7;{4]]"y#1_@>;|`dzK@VJ":/ "T  y 0 
+(@ v## 0h& 9"! 7k; )/( LG$" xN !$O! "c u 'G/ o "j  V  2;B +V!2B!!vvɆ )FQA$.R @#
+x|+6P!h)c;?V:
+ ˡO"4{;(@=(6-۵B|E G* CL( ',i .%o5_wϔ8541S8%\.$a+-K' +`"1+k-"1M!$C18I 2 ?! n 3C $12(:`*'',9F Mv9.I-h! 6F($)$'+-24%'12'",0+<8 ɲ D|+  )ð2z+AY,6(JV$8Q4"F K%*#\(OC#-L!<L !K"(r!8+F";"WGBg (]U. ,+Z/J
+?2c #BB$$ \F/C8|Q (y"lZ "RSsC.#sg&$#LW5( Z7RFp!. %ӓ o͇L'$ +
+#HHɍ
+5*T  #Ņ @PYM*D*M
+.~>E!BdQ$#"їS #3
+ +ѐ5"[-]0!! "#žv5 SA7 !%!?ICBQ)0ۉL'!D=*" #< V,(5 Z?/%! +~0O =u ϯ3nz4#
+_dO.  r  C(ѕ&'(=^&'&!+# J5GM%(k D!n(7ayE EOCS!VAPpO}!#"L
+#9C|+DL"~٘& #r2,-Kk #ŋ:1)-y#. "%Q|)g
+* "I{<$f%` cVDD" C;Yx!)tA. 9B7^
+=%H-C9p_- 3'"@DDK۱
+)NA˲+'x'/r(%(b$>7+(- :/&]!9&7)#"QC%1"I #&5uEDK.'0*5oI7ݍ" C+E C)1ň'  B5=>_.E-='=d(O"G  i y =U=8yB HxG/X8?759W-"W{m21. %zr "= ˸KF%0\Un:}1
+M.>ǔǾ:*фKd!o"(Rt' J)% %L*הW2B;7SB &Z( ,
+Y-4o5+J *t#  ( "",  y!D"z5x4*CtM>GhG=qזI '"j~5=71b.O;R.}h%/n 2 %6%;=q 9Qr52q8O$w7--a +t;w8s5E$/)]i~($ߔRDn!$VbH8՚PKLJszGurBّa 3c2\Lrf#!ӆ l@TW߽Yt (NNG A1kn1R`<'߰ѡ}0(qJ](ӛ@!˩~TD.1+H)5 .Ǣ#2;H"/;;8>[&K[zU!>%Ӏ g۔?M9")G<Y~ ! 7#Nũխ.&E(UqVsŤ&K5e:'(Pgku{V_\:X}ɤ?!!J3Ya 7;F!J MP@{
+ ˫ AF\q<&'][IMzN  
+/W%
+M-?5 Jt*?H: G8 5W9-3B== K
+$m=3<ccoD GS GA 6 BX IMkF
+>
+5%Y90{$70^3-i.n$"gVb&'a5-6C01;w A:FF+$ALFߢG,k%g(/)m': q;)_'R@ ۅb,R&$*Kkk%;K)stA=g2mmDjE;T!(/ u\ Q%L(+]*4EFK <)DSJ N;'ϛC˧)d,.""U!0= ?Q~0>y*p
+~)AHj'ôOvai Rtcr0c85ׇװ5W9ߓB6۲c6?ߛ :Ǚ\w5zJcZF\۽v.|\͙U*sә9}O?7ӹ P+=T( >'&')_B CTh d HM$a '/Æ ŀxչ0cѤ)v"v2Z#M U GGUa#
+#b|i_=!ϕ"&)J '%JţͰjǑ;ӎ!7+sEjx; pn}:b G+1b!E|էgOD'ϱ)>,# ɰE##o*@(2 $
+ $!1)'E'A\$  #!C 
+'@2.')O+/."_r. ^/G/r$Q).<?BYr&22  W_651'Z+1*qx&,I-?11  q#~\":XTy^Ç#"\1).0cu. <$(:<%$ W"s"?E/ /
+#!)4/ D/ <" " ( $U1C) CV- 9h x@ 
+F?L Q 3!|2G]I*K 7=EQ;!3&Ś AL(3F!>F?J, %ˮ<qHOUvK'45d{)IYCu2vxC' ' )+ELJ&ɪXSi-no?6ǁ)A##"O(#"1A&\'_!= =g9 &8!*MA)b!4}9!0}AL"א;iם>)ɗpHP E&vCxCoTE=E_tǨOˊT/A5
+C&Ŏ)4MKɯ"O'(N('> +)_$E1.1O$'-& < <"]"2EB'($$&-/\;c] *J
+A$)$ !V
+ - 2C
+;"Ѩ('
+D*"$B"@& ("&E$+$+" D ?#-!>**"? Y5( A7o#*U)+DٰAY/M/7 q! P+*?' r $'2^
+'a(U+7"/ AD 0(]1) #F4* -'b$E+)t M# ,C '#;
+)st<b %d&M$AEH?0l6Kc1*e 5X-+N^*6\<US#48C#lsD$Q#"(3^ B$ky3*x#$yK !
+#1i*v#2 \+O2D(BJ
+! 'DEɫO-'@*B'6 +8s5
+o;]}/>/( b*{./ӏ7fE ۭ ۠+,x0O/2&(@EGW?K4r`nz.Ӫ5X95(WZ K "].y!l#p'>1%ۃ( U2"{;L*A 
+Mw xO mN<pfT Ou@} dUc@ ÷N/#b^IO!&Nx ONQJ"N81b\/P/Q=eFS #]"P([03OBJ]BV#T\Zj-"NB"P2AFYS@yTJ#bl,Hw_ßu9PM2;>}`WGE,8nj˃í(iBz
+'`g'
+Pb 80'B#6Ez'nɦ!/71'w-0$ +u+Z#k;łm?!"P5?L ;?-?!C#&
+"}9Eb'='|;s9" !(x=
+E oD ۗ>KDDG j<
+׉OHc'C")!W x#!5{1#^s7&7/G>~݌~ݪ+S8".ёϯ?yAK"-v 7u=:8W!=Z@ K?/ŒG ezSm IɁ-<A Dѡ,'m Og :E?H!#5gAC59BeADð:;$׼e#UA{I9#3}>V7hўD7"D] O9E1#|ö83'ŞhXd w=Lє ߋ6c?A1 ?D;X"eXy"G5p4;":8uv'au( "$i  o7C YzY 7vDٔVCJmͬC-DZ?|÷ɊOل;{ S
+X"us"OXl
+"\5r!bBy"( 1.6@IYńYyL7$B?g8!9M"} C?e{A;ϭC!0)/Aߪ s)1e/JA %w"G =-y7aѶP%bu"C~)!Q`ÿKrP81HEFE.J$5))CFpA'aT!"i; 52 7}1/3dF=+/϶]LE + A"k )݊M [4Ւ
+<!EN= L zvݰCBd{ A3ǫ7&W ?6pSK_O'I|Nl#'Qw#%J/+vîMN 1Fp+h)@=ojpV3H`AG&Z1!sND7
+SYJG'ǐ5gz_7An( 5e"+xӴ~O(!
+̀(8(0D'$ *0YA$7.
+qˬ I  # & !b= <? 2%#$ [BMW)eKX{)B\1ŀ n%u6D2f<<ג&l7WcD-Y'[S;(ωۭ(]>;aG4$ "2Q%h~W8*Mɨ178ϣ QN`êcT{׾ݫkGNRˑu}_EHC${Bzզ!zٻ&['e '$ &;/+#"O( 1yVņ 1Q!s!z 8&!# "َ&#)s
+<W.M߲^05<8?C4S1( -:#1
+I!z1'q+~IZPE2&(2e2s   uِr/6! :Yz#LKQ0yL
+!Ş/AP.$'#^ " "P*ѯ "C <)| Ex uF!
+
+w"'#
+P(X+R p+!,;<[&"v$#7"% 9K~2}#
+:G="C#-u "}<X 4p\c' )4Zb FZ >*) V;Nn s;* ?D m@ 
+m vсA߼: ."!'pe+; tkPKd#&E;gY8lųXɸr  (rfQA"AeQNc""z%SIl y! T;dc,Ǩh;Okt˓6fIj)H3)<k?Ղ|QJbsA_ Y0 fU9  ӟOYDWjAtͶu# a=Je LCOSA ø +0n Ϭ#ձLkљ?߈L݅7C'`F;U!BCMm/iѕ7TAٮNEupC͚bI@; B&#lziB@n+͝hc*kEKe5!uI53=_#*Yu]NGqQ nɬG
+==Ӯ'!7' (H">ۚdbݻ-+Ő)!
+SG" K%# " a1KM)4'^##F/}#(/7;I"\&P>i_45٨.tG0SN~`x6 ,U3J /ͭU0xaqW*T= ɏ"Jݗ=.ݧ!S?1t[цK!v׵!1w X _p#-/Ol D!ۯg9j,3r#_ɇA793r 9#CB*|# b=qZ1U017 *4 ט'+$*?cj1-##>Vq0DL##j"T"$'I<1/#1 ( %<A / "$'N/: !!<yA (#--"#u;11:,  ##M*"#"F
+
+#\/"~I 0'E$"J"N,1=V5|F),˟{O6CU) [bsDv/!%Ý't!ճÙv(+9=7^#~_ZMLn9!`- nw.7E0 }#-$> G xW#ŰBհ( C[4![s7n3[aNݼwU.yjD/2!H1[ ),3TJ/*#4
+C<7=p;I9##
+O-DD& "TM`^|Y
++3 G.1 B 3s (=тt'O͂9* *##NoL r !97T+!EZW/.s\T@9( 1@Jd@ m#߶J-S?"!L%&O.B #T.0FF%)QO1BE:у9"3:  ,MA$*PWK (w
+l.+!d,)g5%*"p+(JB 3-3v .-p=6JZ>#vI# )K >JXӜ:3ipz!Zq!,5a.! "lp7'sم{C>0`#9:B #>! CY@ŮzWT\
+U!@
+3% M(EW9˔J' .[fɂۂO2"1GN*"J$W'I4U3  p#(iBJr`?r"
+Lalq8%6|$ŕ
+@3S߆XǏ' #:VK5Ð1Pپ{#*oF3a8/2</!k!4:3=w864!+&xJ
+  u%{ (y׈ ۱+͕Gd]/|^BFs0"0i%Mj
+)y8>yFYݙ)['5{Uog&ˀs\5zd/A25ǕtuI>xu' #[˰v
+K%ɶ*?Yٸ,oo4:!#t""ߏ"o& R7 &) R*(
+>݋H )F! Q#}x\u.GEA"# y - *8*%B+9: 7PFk+$9
+/ 1Ü>@ !5 ! @04R " #h 
+})2!
+J('b
+M;(,8,'+w -c
+ݶ p;)"3V!
+>=m](#"1_
+3')|"7 u2|K#<U# F2/0 ."b<p!7"##DE !A
+M+r A/< #
+# *  Y#-6.  -1d(#D!()\  $=2'0o(dQGɡ!;"%!8cu"9wvKYׄFyn7q-vuTώ-? hÞ~rߩK{N-8/O
+*: w 2&F՛V`)'N<& -!# | c(-'+  j!$ %3a A
+ w*/"$"O /! }"#)- P(? (0A-*K"$"7'!#;U)! -&c3&/`&;1S0*G#`0) )_/; S'7+?!$7*W\9: *A* "-(e !KY*|# FE G ` 5" (1 @#+AO;I U Cj  "1
+j$Q#? 7ɓ
+fL?
++QK! X$)$X,$ )X#E!="9  <[N&/ %#:M#!-(%i-N5;'5')%30A"+ "*;k##]b15ɛB{Yu2Oσ4VI[[Ӑ7w|!PŇY "1Ӭ #L'<n)8T"͆IlW
+_ 1~Yt 2NDt!ύ#"\>:E,&8/ I vA!Ϯ'/SS3ͅ !{% !0{? Mi- [5Vb<'&f !%Y, 9! ѝ7Z -"U;{ K?a"
+4
+G2!^ # UfJ$=ۀ$ U?w y".
+C ;#i"$%=/C/:#)1=VADtD!
+*4.sJ#! .Ӱ!!tKSݱ6t"DF{Cə"$ŏÃ* @=!!{M " >WӖ!""(
+E;D"#3q*"!
+ 8L) "{w ~ 6qFz͋p+95 E*/:>!Ӥ['Q[0<L!7:>K$۟w&&Jϑ8<5_=?>Y12 #?K_!PD'O%%YŚ8h 0 5WWSH;?7<V2"20` ; ;...-&K7 #1MFX/5<.#J .#;1% G";I
+@2XY0K
+
+Z<4XO4{C'"A#)Iw/ DE E ZE,;*"'$=J -!C6F7'+/Ow|6. 1aJ#  [ y˅/?M[$ /42
+#0&/ 'p| ;%9'u*mxCa @* ٔ$AK1-E ;k 0 1X7;{4]]"y#1_@>;|`dzK@VJ":/ "T  y 0 
+(@ v## 0h& 9"! 7k; )/( LG$" xN !$O! "c u 'G/ o "j  V  2;B +V!2B!!vvɆ )FQA$.R @#
+x|+6P!h)c;?V:
+ ˡO"4{;(@=(6-۵B|E G* CL( ',i .%o5_wϔ8541S8%\.$a+-K' +`"1+k-"1M!$C18I 2 ?! n 3C $12(:`*'',9F Mv9.I-h! 6F($)$'+-24%'12'",0+<8 ɲ D|+  )ð2z+AY,6(JV$8Q4"F K%*#\(OC#-L!<L !K"(r!8+F";"WGBg (]U. ,+Z/J
+?2c #BB$$ \F/C8|Q (y"lZ "RSsC.#sg&$#LW5( Z7RFp!. %ӓ o͇L'$ +
+#HHɍ
+5*T  #Ņ @PYM*D*M
+.~>E!BdQ$#"їS #3
+ +ѐ5"[-]0!! "#žv5 SA7 !%!?ICBQ)0ۉL'!D=*" #< V,(5 Z?/%! +~0O =u ϯ3nz4#
+_dO.  r  C(ѕ&'(=^&'&!+# J5GM%(k D!n(7ayE EOCS!VAPpO}!#"L
+#9C|+DL"~٘& #r2,-Kk #ŋ:1)-y#. "%Q|)g
+* "I{<$f%` cVDD" C;Yx!)tA. 9B7^
+=%H-C9p_- 3'"@DDK۱
+)NA˲+'x'/r(%(b$>7+(- :/&]!9&7)#"QC%1"I #&5uEDK.'0*5oI7ݍ" C+E C)1ň'  B5=>_.E-='=d(O"G  i y =U=8yB HxG/X8?759W-"W{m21. %zr "= ˸KF%0\Un:}1
+M.>ǔǾ:*фKd!o"(Rt' J)% %L*הW2B;7SB &Z( ,
+Y-4o5+J *t#  ( "",  y!D"z5x4*CtM>GhG=qזI '"j~5=71b.;R.}h%/n 2 %6%;=q 9Qr52q8O$w7--a +t;w8s5E$/)]i~($ߔRDn!$VbH8՚PKLJszGurBّa 3c2\Lrf#!ӆ l@TW߽Yt (NNG A1kn1R`<'߰ѡ}0(qJ](ӛ@!˩~TD.1+H)5 .Ǣ#2;H"/;;8>[&K[zU!>%Ӏ g۔?M9")G<Y~ ! 7#Nũխ.&E(UqVsŤ&K5e:'(Pgku{V_\:X}ɤ?!!J3Ya 7;F!J MP@{
+ ˫ AF\q<&'][IMzN  
+/W%
+M-?5 Jt*?H: G8 5W9-3B== K
+$m=3<ccoD GS GA 6 BX IMkF
+>
+5%Y90{$70^3-i.n$"gVb&'a5-6C01;w A:FF+$ALFߢG,k%g(/)m': q;)_'R@ ۅb,R&$*Kkk%;K)stA=g2mmDjE;T!(/ u\ Q%L(+]*4EFK <)DSJ N;'ϛC˧)d,.""U!0= ?Q~0>y*p
+~)AHj'ôOvai Rtcr0c85ׇװ5W9ߓB6۲c6?ߛ :Ǚ\w5zJcZF\۽v.|\͙U*sә9}O?7ӹ P+=T( >'&')_B CTh d HM$a '/Æ ŀxչ0cѤ)v"v2Z#M U GGUa#
+#b|i_=!ϕ"&)J '%JţͰjǑ;ӎ!7+sEjx; pn}:b G+1b!E|էgOD'ϱ)>,# ɰE##o*@(2 $
+ $!1)'E'A\$  #!C 
+'@2.')O+/."_r. ^/G/r$Q).<?BYr&22  W_651'Z+1*qx&,I-?11  q#~\":XTy^Ç#"\1).0cu. <$(:<%$ W"s"?E/ /
+#!)4/ D/ <" " ( $U1C) CV- 9h x@ 
+F?L Q 3!|2G]I*K 7=EQ;!3&Ś AL(3F!>F?J, %ˮ<qHOUvK'45d{)IYCu2vxC' ' )+ELJ&ɪXSi-no?6ǁ)A##"O(#"1A&\'_!= =g9 &8!*MA)b!4}9!0}AL"א;iם>)ɗpHP E&vCxCoTE=E_tǨOˊT/A5
+C&Ŏ)4MKɯ"O'(N('> +)_$E1.1O$'-& < <"]"2EB'($$&-/\;c] *J
+A$)$ !V
+ - 2C
+;"Ѩ('
+D*"$B"@& ("&E$+$+" D ?#-!>**"? Y5( A7o#*U)+DٰAY/M/7 q! P+*?' r $'2^
+'a(U+7"/ AD 0(]1) #F4* -'b$E+)t M# ,C '#;
+)st<b %d&M$AEH?0l6Kc1*e 5X-+N^*6\<US#48C#lsD$Q#"(3^ B$ky3*x#$yK !
+#1i*v#2 \+O2D(BJ
+! 'DEɫO-'@*B'6 +8s5
+o;]}/>/( b*{./ӏ7fE ۭ ۠+,x0O/2&(@EGW?K4r`nz.Ӫ5X95(WZ K "].y!l#p'>1%ۃ( U2"{;L*A 
+Mw xO mN<pfT Ou@} dUc@ ÷N/#b^IO!&Nx ONQJ"N81b\/P/Q=eFS #]"P([03OBJ]BV#T\Zj-"NB"P2AFYS@yTJ#bl,Hw_ßu9PM2;>}`WGE,8nj˃í(iBz
+'`g'
+Pb 80'B#6Ez'nɦ!/71'w-0$ +u+Z#k;łm?!"P5?L ;?-?!C#&
+"}9Eb'='|;s9" !(x=
+E oD ۗ>KDDG j<
+׉OHc'C")!W x#!5{1#^s7&7/G>~݌~ݪ+S8".ёϯ?yAK"-v 7u=:8W!=Z@ K?/ŒG ezSm IɁ-<A Dѡ,'m Og :E?H!#5gAC59BeADð:;$׼e#UA{I9#3}>V7hўD7"D] O9E1#|ö83'ŞhXd w=Lє ߋ6c?A1 ?D;X"eXy"G5p4;":8uv'au( "$i  o7C YzY 7vDٔVCJmͬC-DZ?|÷ɊOل;{ S
+X"us"OXl
+"\5r!bBy"( 1.6@IYńYyL7$B?g8!9M"} C?e{A;ϭC!0)/Aߪ s)1e/JA %w"G =-y7aѶP%bu"C~)!Q`ÿKrP81HEFE.$5))CFpA'aT!"i; 52 7}1/3dF=+/϶]LE + A"k )݊M [4Ւ
+<!EN= L zvݰCBd{ A3ǫ7&W ?6pSK_O'I|Nl#'Qw#%J/+vîMN 1Fp+h)@=ojpV3H`AG&Z1!sND7
+SYJG'ǐ5gz_7An( 5e"+xӴ~O(!
+̀(8(0D'$ *0YA$7.
+qˬ I  # & !b= <? 2%#$ [BMW)eKX{)B\1ŀ n%u6D2f<<ג&l7WcD-Y'[S;(ωۭ(]>;aG4$ "2Q%h~W8*Mɨ178ϣ QN`êcT{׾ݫkGNRˑu}_EHC${Bzզ!zٻ&['e '$ &;/+#"O( 1yVņ 1Q!s!z 8&!# "َ&#)s
+<W.M߲^05<8?C4S1( -:#1
+I!z1'q+~IZPE2&(2e2s   uِr/6! :Yz#LKQ0yL
+!Ş/AP.$'#^ " "P*ѯ "C <)| Ex uF!
+
+w"'#P(X+R p+!,;<[&"v$#7"% 9K~2}#
+:G="C#-u "}<X 4p\c' )4Zb FZ >*) V;Nn s;* ?D m@ 
+m vсA߼: ."!'pe+; tkPKd#&E;gY8lųXɸr  (rfQA"AeQNc""z%SIl y! T;dc,Ǩh;Okt˓6fIj)H3)<k?Ղ|QJbsA_ Y0 fU9  ӟOYDWjAtͶu# a=Je LCOSA ø +0n Ϭ#ձLkљ?߈L݅7C'`F;U!BCMm/iѕ7TAٮNEupC͚bI@; B&#lziB@n+͝hc*kEKe5!uI53=_#*Yu]NGqQ nɬG
+==Ӯ'!7' (H">ۚdbݻ-+Ő)!
+SG" K%# " a1KM)4'^##F/}#(/7;I"\&P>i_45٨.tG0SN~`x6 ,U3J /ͭU0xaqW*T= ɏ"Jݗ=.ݧ!S?1t[цK!v׵!1w X _p#-/Ol D!ۯg9j,3r#_ɇA793r 9#CB*|# b=qZ1U017 *4 ט'+$*?cj1-##>Vq0DL##j"T"$'I<1/#1 ( %<A / "$'N/: !!<yA (#--"#u;11:,  ##M*"#"F
+
+#\/"~I 0'E$"J"N,1=V5|F),˟{O6CU) [bsDv/!%Ý't!ճÙv(+9=7^#~_ZMLn9!`- nw.7E0 }#-$> G xW#ŰBհ( C[4![s7n3[aNݼwU.yjD/2!H1[ ),3TJ/*#4
+C<7=p;I9##
+O-DD& "TM`^|Y
++3 G.1 B 3s (=тt'O͂9* *##NoL r !97T+!EZW/.s\T@9( 1@Jd@ m#߶J-S?"!L%&O.B #T.0FF%)QO1BE:у9"3:  ,MA$*PWK (w
+l.+!d,)g5%*"p+(JB 3-3v .-p=6JZ>#vI# )K >JXӜ:3ipz!Zq!,5a.! "lp7'sم{C>0`#9:B #>! CY@ŮzWT\
+U!@
+3% M(EW9˔J' .[fɂۂO2"1GN*"J$W'I4U3  p#(iBJr`?r"
+Lalq8%6|$ŕ
+@3S߆XǏ' #:VK5Ð1Pپ{#*oF3a8/2</!k!4:3=w864!+&xJ
+  u%{ (y׈ ۱+͕Gd]/|^BFs0"0i%Mj
+)y8>yFYݙ)['5{Uog&ˀs\5zd/A25ǕtuI>xu' #[˰v
+K%ɶ*?Yٸ,oo4:!#t""ߏ"o& R7 &) R*(
+>݋H )F! Q#}x\u.GEA"# y - *8*%B+9: 7PFk+$9
+/ 1Ü>@ !5 ! @04R " #h 
+})2!
+J('b
+M;(,8,'+w -c
+ݶ p;)"3V!
+N  
+/W%
+M-?5 Jt*?H: G8 53B== K$m=3<c!I .&- coD GS GA 6 BX IMkF
+>
+5%Y90{$70^3-i.n$"glj%Vb&'a56C01;w A:FF+$ALFߢG,k%g(/)m': q;)_'R@ ۅb,R&$Z *Kkk%;K)stA=mDjE;T!(/ u\ Q%L(+]*4EFK <)DJ N(Ӱ;'C˧)d~,.""E!0= ?Q~0>y*p
+~)AHj'Ovai Rtc2`r0c285ׇװ5W9ߓB6۲c6?ߛ :Ǚ\w5zJcZF\۽v.
+|\͙UÒ[*sә9}O?7ӹ P+=T( >'&')_B CTh d HM$a '1^/Æ ŀxչ0cѤ)vEi"v2Z#MK3""! U GGUa#
+#b|i_=!& x*ϕɾ"&)J 'r1>%JţͰjǑ;ӎ!7+sEjx; pn}:b G+1b!!E|էgOD'ϱ[)>,# ɰE##o*@(2 $
+ $!1)'E'A\$  #!C 
+'p
+@2.')O+/."_r. ^/G/$Q).<?BYr&22  W_651'Z+1*qx&[)",I-?11  q#~\":XTy^Ç#"\1).0cu. <$(:<%$ W"s"?E/ /
+#!)4/ D/ <" " ( $U1C) CV- 9h x@FCH 
+F?L ͔I;XQ 3!|2G]I*K 7=EQ;!3&Ś AL(3F!>F?J, %ˮ<qHOUvK'45 'Gd{)IYCu2vxC' ' )+ELJ&ɪXSi-no?6ǁ)A##"O(#"1A&\'_!= =g9 &8!=*MA)b!4}9!0}AL"h*א;iם>)ɗpHP E&vCxCoTE=E_tǨOˊT/A5
+C&Ŏ)4MKɯ"O'(N('> +)_$E1.1O$'-& < <"]"2EB'($$&-/\;c] *J
+A$)$ !V
+ - 2C
+;"Ѩ͊('
+D*"$B"@& ("&E$+$+" D ?#-!>**"? Y5( A7o#*U)+DٰAY/M/7 q! P+*?' r $'2^
+'a(U+7"/ AD 0(]1) #F4* -'b$E+)t M# ,C '#;
+)st<b %d&M$AEH?0l6Kc1*e 5X-+N^*6\<US#48C#lsD$Q#"(3^ B$ky3*x#$yK !
+#1i
+5~*v#LJ2 \+O2D()RBJ
+!T0[ 'DEɫO-'@*B'6 +8s5
+o;]}/>/( b*{./ӏ7fE ۭ ۠+,x0O/2&(@EGW?K4r`nz.Ӫ5X95(WZ K "].y!l#p'>1%ۃ( U2"{;L*A 
+Mw xO mN<pfT Ou@} dUc@ ÷N/#b^IO!&Nx ONQJ"N81b\/P/Q=eFS #]"P([03OBJ]BV#T\Zj-"NB"P&d2AFYS@yTJ#bl,Hw_ßu9PM2;>}`GE,8nj˃í(iBz
+'`g'
+Pb 80'B#6ˆEz'nɦ!/71'w-0$ +u+Zb+~-X@#k;Y"ł"m?!"P5?L ;?-?!C#&
+"}9E#Kb'='|;s9"  !(x=C E
+E xJ#oD ۗ>KDDG j<
+׉OHcE; )!W x#!5{1#^s7&7/G>~݌~ݪ+S8".[ёϯ?yAK"-v 7u=:8W!=Z@ K?/ŒG ezSm IɁ-<A Dѡ,'m Og :E?H!#5gAC59BeADð:;$׼e#UA{I9#3}>V7hўD7"D] O9E1#|ö83'~!ŞhXd w=Lє N٬5"ߋ6c?A1 ?D;X^ 7["eXy"G5p4;":8uvg'au( "$i  o7C YzY 7vDٔVCJmͬC-DZ?|÷ɊOل;{ S
+X"us"OXl
+"\5r!bBy"( 1.6@IYńYyL7$B?g8!"79M"} C?e{A;ϭC!0)/Aߪ s)1e/JA %w"G =-y7aѶP%bu"C6?~)!Q`ÿKrP81HEFE.$5))CFpA'aT!"i; 52 7}1/3dF=+/϶]LE + A"k )݊M [4Ւ
+<!EN= L zvݰCBd{ A3ǫ7&W ?6pSK_O'I|Nl#'Qw#%J/+vîMN 1Fp+h)@=ojpV3H`AG&Z1!s3ND7
+SYJG'ǐ5gz_7An( 5e"+xӴ~O(!
+̀(8(0D'$ *0YA$7.
+qˬ I  # & !b= <? 2%#$ [BMW)eKX{)B\1ŀ nu6D2f<ג&l7WcD-Y'[S;(XN;ωۭ(]=>;aG4$ "2Q%h~W8*Mɨ߫1748ϣ QTN`êcT{׾ݫGNRˑu}_XRE1vHC${Bzզ!zٻ&['ew '$ &;/+#"O( 1yVņ 1Q!s!z 8&!# "َ&#)s
+<W.M߲^05<8?C4S1( &2-:#1
+I!z1'J,q+o9](~IZPE2&(2e2s   uِr/65! :Yz#LKzD  Q0yL(}
+!Ş/P.$'#>/&^ w" "P*ѯ "C <)| Ex uFxJ!
+ 
+w"P(X+R p+!,;<"[&"v$#7"% 9K~2H}#
+:G="C#-u "}<X 4p\c' ) =4Zb n(FZ >*) V;Nnb5 s '$;* ?D m@ Ba
+m vA߼:7 ."!'z pe+; tkPKd#&Ey";gY#8lųXɸr  (rfQA"AeQNc""z%SIl y! T;dc,Ǩh;Okt˓6fIj)H3)<k?Ղ|QJbsA_ YQb0 fU9  ӟOYDWjAt0'Ϧ.mͶu#Y a=Je LCOSA øn [Jk&2ho0n Ϭ#ձLkљ?߈L݅7C'`F;U!BCMm/iѕ7TAٮNEupC͚bI@; B& #lziB@n9ˈ+͝hc*kEKe5!uI53=_#*Yu]NGqQ nɬG
+==Ӯ'!7' (H">ۚ́?dbݻ-+Ő)!
+SG"$0 K%# " a1KM)4'^##F/}#(7;\&i5tG0SN~`x6 90 ,U3J /ͭU0xaqW*T ݗ=.v ?1t[цK!v׵!1w X9g/l D!ۯg9j,3#_ɇA793r 9#CB*|# b=qZ1U017 *j4 ט'+$*?cj1-##>Vq0DL##j"T"$'I<1/#1 ( %<A / "$'N/: !!<o+ !yA (#--"#u;11:, < :D ##M* E<*"#"F
+
+#\/"~I 0'E$"J"N,1r)=V5|F),˟O6CU) [bsv/!%Ý't!v( Q(#({'+9=7^#&'~_B ZMLn9!`- nw.7E0 k~^ LF}#-$> G xW#ŰBհ( C[4![s7n3[aNݼwxU.yD/2!H1[ ),3T5J/*#4
+C<7=p;I9##,0
+O-DD& "TM|Y
++3 G.1 B 3s (=тt'|TO͂9* *##NoL r !97=CT+!EZW/.s\T@9( 11@Jdi@ m#Lݎ߶PJR-S?"!L%&O.B #T.0FF%)QO1BE:у9"3: ,MA$*PWK (w
+l.d,)g"p+(JB 3-3v .-p=6JZ>#vI#B )K >JXӜ:3ipz!Zq!,5a.! "lp7'sم^{C>0`#9:B #>! CY@ŮzWT\
+U!@
+3% M(EW9˔J' .[fɂۂO2"51GN7*"J$W'\KI4U3  p#(iBJr`?r"
+ Lalq8%6|$ŕ
+@ 3S߆XǏ5' #:VK5Ð1Pپ{#*oF3a8/2</!k$H%!4:3=w864!+&xJ
+ u (y ۱+͕Gd]/|^BFs0"0i% M
+)y==a8>yFݙ)d#['5{UogZDo&ˀ5zA25ǕuIS>xQu'#˰v
+K%ɶ*?Yٸ,oo4:!#t""ߏ"o& R7 &) R*(
+>݋H )F! Q#}x\u.GEA"#5!& y - *8*%B+9: 7PFk+$9
+/ 1Ü>@ !5 ! @04R " #h 
+})2!
+J('b
+M;(,8,'+w -c
+ݶ p;G* )"3V!
+>H!D =m](#"1_
+3')7 u2|K6)%F2;^/0 ."b<p!7"ID:$!$##DE !A
+M+(5 1br A/< #
+,H1 .W# *er')
+  Y#-6.  -1d(#*wo(D!(<>0)\.B7  $/1HAC8
+=2'0o(2/dQG;lը"%!8% 2cu"9wYFn7-vFx\2uT-? Þ~Kߩ:K<{ iN-8/O
+*: w 2FV`L)'N<& -!# |G0` c(-'+  j!$ %3a A
+ w*/"$"O /! }"#)- P(? (0A-*K"$"7'!#>IC;U)! -&c3&/`&#I"<ׅ , A;1S 15@U(9!0*G#`0) ל D-w)_/; S'7+?!$7*W "-(e !KY*|# G `((#! l ;! 5" (1 1! A*@#+A'I"9&P %~9!(I%-! ~w+$5"V 'v A>qO;I U 8!
+Cj $Q#P !E? 7ɓ
+fL?
++QK!19? X$)$X,$ )X#E!="9  <[N&/ ]C?9%#:M$)5%#!-(%i-N5;'5')%3071/A"+ "*;_-]b15ɛbB{YuOσ4VI[[Ӑ7w|f!˵PŇY "1Ӭ #L'<n8f)8T"͆I!]lW
+_ 1~Yt 2NDt!ύ#"\>[XQ:E,&8/  I vA!Ϯ'/SSz$3<ͅm !{% !0{? iC- [5Vb<'&f !%Y, 9! ѝ7Z -"U;{ K?8a"
+4
+G2!^ # UfJ$=S bۀ$ U?w y".
+C ;#i"q>$%=/C/:#)1=VADtD!
+*4]/(sJI##!  .+Ӱ!!tKu.1Sݱ6t" "%?DFF!){Cə"$ŏÃ* @=!!{M >WӖ!""(
+E;D"#$&q*"!
+ 8 "#}{w ~ 6qFzp+95 E*/\!#:>!Ӥ['QV[0S,?)=.m<L!7:>K$۟w&&Jϑ8<5_=?>Y12 #?K_!PD'O%%YŚ8h WSH(.V1X,;?X=;? ?1[7<V82"203$71
+I<` ; ;q...-&K7 #1MՔ1FX/5<.#J .#;p*3 Y,;;Z1% G";I
+@2"?K %.YXY0$1RK
+ 6.!34XO4{C'"A#)Iw/ DE E' ZE,;*"'$=J -6F7'״/Ow. 1aJ#[ y/+?M[$(k i/42
+u#0׶J>&/ 'p_| ;%9'!,u*mxCa @* ٔ$-E ;AJk 0 1X7;{4]]Y"y#1_@>;dWzK@VLJ:/ "T  y 0 
+(@ # 0h& 9"! 7Gk; )/( LG$" ) oxN
+  "c u  o "j  V  2;BH! B+V!6H$  x2B!!vvɆ ) ?   F!Q!RA$.R :@! @#
+x#!"|+6P!h)'G/Fc;?V:
+ ˡOsb4@=(6-x۵B|E G^$6S* CL( ',i .%o5_(cϔD& 1*J/ !GO #<S>=@?#`*I+B8541S8%/ˈ,\.$a+-K' +,.9+k-"1M!$C1 A5 2 ?! W F3 n 3C $12(:`9"w*'<5 f7!" (12h+D%9 Mv-h! 6F(E*L75,0$)$'+-"eE24% '12'",0R)46>+<8 ɲ D  s*)ð2z+.>*Y,6(JV$8Q4%*#\(OC$L#-L!<L !K"(<ZM8+;"o-gR (]U2.- ͎W,+Zn  7/J
+?2c #BB$$ E1&\F|Q (y"lZ "RSs.#sg&$#LWZ7RFp!. %ӓ o͇L'$ +
+#HHɍ*T  #Ņѕ @PYM*D >"D*
+.~>E!BdQ$#"S #Cq3q
+ +ѐ5"[-]0!! "žv5 ݄SA7 !%!?ICBQ)0T7ۉXL'!D=*" J#!ߗ< V,(5 Z?/%" 'i"& +~0O =u ϯ3nz4#
+_dO.  r  C&'(=^&+# J5GM%(n(7ayE EO!VAP1O}!!WL
+#9C|+DL"~٘&#r2,-Kk #ŋ:1)-y#. "%Q| "{<$f%`ϗ'۬ Aݨ&c&VDD" C;YvW^q R"Ix!)$7ctA.uAr#C 9.-vDB7^
+UA1rEH-C93'"@DDK۱
+)3a˲+'L7x'/tBMr(%(b$>7+7!E(- :/&۷7 &7)#"
+CQC%1"I #QG8%A&5.7uEz#&DK.'0#E
+F*5!9ueCE$7oI7ݍ" C+E C  8E=.E-='=x(/ՏG  i y =; U=8yB HxGX8?R79n-{ÅN.2. %zr "= ˸ O
+6KF%\Un: }FǔǾ110:*;'фKjdu^!o%"(Rt' p;!J)% z%L*!!הW2B;7SB &Z( 0
+Y-4o5J * Ӈ '0t#  (
+ё"",  y!D"z5x4*C!tM>GhG&" N9=qI??v% '"j4~5=71b.OR.}h%/n 2 %6%=<o;=q 9Qr52q8O$w--a + 2&[w8d.Ә5E$/)]i($ߔRDͦn!$8RVbH8KLJszGurBّWa c2\Lrђf#ӆ l@W߽
+t (NNӋA}}GG2A1kn1`<E'߰VIѡ/}0(qJ](ӛ@!!q˩~TD.1+H)5 .Ǣ#2;H"/;;8>[&K['ņɒzU!>%Ӏ g۔?-"1
+
+9"M9")G<Y/AS- ~ ! 7#
+Nũխ&Pg#kE(UqVsŤS&K5:!X;|P.gk2Zu{_Xɤ?!!J3Ya 7;F!jJMF` ӸMP@{
+ ˫ AF\q<&']IMzN  
+/W%
+M-?5 t*'ی!?H: G8 5W9-3B== K
+$mUk=3<c!I .&- coD GS GA 6 BX IMF>
+5%Y90{$70^3-i.n$"glj%&'a5-6C01;w A:FF]QdMA+$ALF])ߢG,k%g( )/)m'c>:&͟ Pq;)_'R@ ۅb,R&$Z  =v*KkkT%;K)stAS=g2mmDjE;T!(/ u\ Q%L(+]*4EFK <)DSJ N(Ӱ;'ϛC˧)ˉd~,."ߴ!P"U_E"QJ= ?Q^q-.~0߅> y*p
+~)AHj'CôfOvEqջyPS)ai RH2`Vr0c85ׇװ5jcW9ߓB6۲c6S?ɟp/9
+Ӛ.S\w5zJcZF\۽v.ZA
+|\!Ò[9sFɧ&$:9}-/]+Oo'-$b? q͟2ӹ Pݮ=oT(%Ƀ- >L.]'& EՇ')$$_B ;CBCTd H *, M$a '1/VÆ 8ŀRիxչ5-0cѤ)vEi"v;2Z]h#M K%3_"H"!DU GGU)|a#u
+#"]b|i_{=!& x*ϕMɾ"&):oJ 'r1>%JţͰjǑ;ӎ!7C+sEjx; pnM}vLe:b;' G+1b!!tE"
+`|էgOD'ϱB[)>,# ɰu% -E##o*@(2 $
+1c!i $!1)<'Ei!"!(M#'A\$  #!C 
+'p
+ @2.')O+/."_JF r. ^/ l(!G/r$Q).<c ?BYr&22 #   W_651'Z+1*qx&[)",I-?11h(  q#~\":XTy^Ç#"\1).0cu. <$(:<%$ W"s"?/
+#!)4/ υ)D/ <" " ( $U1C) CY=R>V- 9hhK YrK';!s*9| x@!)9#)FCH 
+F?L ͔I;XQ 3!|2G]I*K 7'5# ߣ#OL=EQ;!' ! AL(3F!>F?J,)_8! %ˮ<qHOUvK'45
+\@ 'G{)IYCu2vxC' 'pB" )+EL>J&ɪXSi-no?6ǁ)A##՜- _"O";/(#"1:1xA&\'_!= =gJ ?3)*xW9 &8!#1t 7(=*MA)bM*!4}9!0}AL"h*r&'א;i<) $s.>) \ɗpHP E&vCxCj&*TE=E_ǨOˊT/A5
+C&Ŏ)4MKɯ"O'(N('> +)_$E1.1O$'-& < <"]"2E$&-/\;c] *J
+A$)$ !V
+ - 2C
+;"Ѩ͊('
+D*"$B("&2(+!E$#&)*.+$+" ~D ?#-!>**"DF
+O S? Y5( A7o G-$#*U H .&)+Dd;ٰAY/M q! P+*17 / ?' r $'2^
+'a(}+7"/ AF!$(]1) #E #(F4* -'b$E+)t M# ,C '#;
+)st<b"-'Yǖ %d&4(]M$AEH?0l6Kc1*e 5X-+N6\<US#48C#lQ#"1(3^ B$ky3*;x#$yK !
+#1iy
+5~*v#2W-LJ2 \+O2D()RBJ
+!T0[ 'DEɫO-'6 +8;]}/>/( b*{./ӏ7fE ۭ ۠+,x0O/2&(@EGW?K4~!r`CX9zK]:JJ(5(WK "].y!l#p'>1%ۃ( U2"{;L*A 
+Mw xO l9"<pjYfT @}dUPwc ÷N/#b^&Nx ONQJ"N81bP/Q=e #]Ud"P([03OBJ]BV#TZjB"P&d2AFYS@C yTJ#bl,Hw_ßu9PM2;>լ}`WGE,8nj˃,í(iBz'g'
+Pb ˆEz'nɦ!/71'3w9-0$:b+~-X@#k;Y"ł"m?!"P5?!C#&
+"}9E#Kb'='|;-/s9" !(x=C E
+E xJ8 M#oD ۗ>KD )DG jOHcE; )!W x#!5{1#^s7&7/G>݌ݪ+S8".-[ёϯ?yA1/v 7u==Z @ K?/ŒMBG ezSm IɁ-<A Dѡ,mB Og H!#5gAC59BeADy#/ð:;$4׼e#=#3}"DPL9[] #|ö83'~!h1Ad w=LZє N٬5"ߋ6cA1 ?D;X^ 7W"eXy"G":8Rvg'a( "$i   Y 7vDٔVCJmͬC-DZ?|÷ɊOل;{S9
+X"us"OXl
+"\5r!bh{D94( 1.6@ SIYńYyL7$B?g8!ߡ"79M"} C?e{A;ϭC!? 0)/s)e/Jt;]%w"G =-y7aѶP%bu"6?~)!Q`ÿKrP81HEFE.+))CFpA'aT!"i+ˍ 7}K/F=+/϶]LE + A"k )݊M ӱ[4Ւ
+<!EN= L zvݰCBd{ A3}A) ǫ7&W ?6pSK_O'I|Nl#'Qw#%J/+vîMN 1Fp+h)@=ojpV3H`AG&Z1!3ND7 CL=G'ǐ5gzn( 5e"+xӴ~O(!
+̀(8(0D'$ *0YA$7.
+ˬ I  # & !b= 2%#$ [BMW)eKX{)B\1ŀ n%u6Dc2f<<ג}&l7WcD-Y'["L0FS;(XN;ωۭ(W5Y]=>;aG4$ "2Q%h~W8*Mɨ߫1`748ϣ QTV-`êcT#.#{׾,hgCݫkGNRDMˑu}Շ)E_ODX)Rl{ EHjŴC${Bzզ!zTdٻ"lKd&['eɑwו" '$ &;/+#"O( 1yVņ 1Q!s!z 8&!# "َ&#)s
+<W.M,)'?C4S1( &2-:#1
+I!`55g~IZ1˟PE2&X1M(2e2s  | uِr/6Umb"5w>"!  :Yz#LK0zD  Q0yL(}
+!Ş/AP.$'#>/&^ {#!w" "*{P* `ѯp!B "C z!) < Ex uFxJ#τH!
+
+' 
+?B!ѩ M
+#ŕw"'#
+X+R p+!,;<"š[&"v$#7"% 9K~2zK EH#
+:G="C#-u "}<X 4Sٱp\c' ) =4Zb . n(FZ m;>*) V;#K2'Nnb5 s '$;* ?D m@ #.|
+m vсA߼~:!r7  `"'pe+ tkPKd#&"!JXEy"qY8lųXɸr A˄K"QA"AeQNc""OJ !*z%SIl ! %=0T;dc,Ǩh;Okj;lt˓6fIj)H3)<k?Ղ|QJbsA_ YFx"Qb0 fZ0 ŬɃU9 ӟOYDgWjAtb0aͶu#h׳LhBY a=Je LCOSA øn [Jk&2ho+0n Ϭ#ձ Lkљ?߈L݅7C'`F;U!m/iѕ7TAٮNEupCVbI 9j@S I'a#l2Qͩi@nˈ+͝hc*kEKe5!uI=5Y3=_#*Yu]NGq n==,dӮ;'
+'!7' "*H/rL ;&
+>UWۚdbݻ" -+Ő)!
+S+G"$0 K%# " a1K.##$x M)4'/-0#F/}#(/7;I"\&_45٨.tG0SǬN~GFS`p(x6"_) [90 ,U3J /?!ӗ\ͭU0xaqW*Tv&Rr08= ɏ"Jݗ=.ݧ!S#v z-?1t[цK8Xa!v׵!1w X9g _p#-/Ol ۯg9j,3p3r#_ɇA793r 9#CB*|# b=qZa1U017 +& *j4 MC* '*?cӫ1-##>Vq0DL##j"2  (T"$'I<1/#1 ( %<A / "$'N/: !!<o+ !yA (#--"#u;11:, #\8 < :D ##M* E<+,*"#"cF
+
+#\/"~XI 0'!FE$"J"N,1 *r)=V5|7 $F),˟{O6C_9 |U) [bsDv/!%Ýy'D@ݺt!ճÙvt ׫)( Q(#({'E+|9=7^#&'~_ZMLn9!`I nw.7E0 k~^ }#-$> #G xW1#ŰBհ(ӻ CS[4F![s7n3[a`Nݼw#IYxU.yшjD/2!H1[ )N,3Ts-J/*#4sZD-
+C<7=p;I9##,0
+O-DD& "TM`^|Y
++3 G.1O1 3s ( C"=тt|T͂9* #No^ " r !97=CT+!EZW/.s\T@9( 11@Jdi@S m#LJ߶PJR-S?"!L%&O.B FF%)QO1BE:: 
+W&&,MA$*PWK (8-JDl.+!d,)g5%*"p+(JB 3-3v .-p=6JZ>#vI#B )K ߁>JXA pYӜ:S3|Uipz!Zq!,5a.! "p7'sم^{C>0`#9:B #>! CY@ŮzWT\
+U!3M% M(Eq1W9˔J' .[fɂۂO2"51GN7*"S J$W'u\KI4U3  p#(iBJr`?r"
+ L7al|(q8%6|$ŕ
+@ q3SeXǏ/2\095' #z 8j:VoK85Ð1*Pپ{#F<*oF3a8/2</!k$H%q:!4:3=w864!+&xJ
+  u3%{ '@(y׈ ۱@z+͕&Gd]/|^BF":"0i% Mj
+)y==a8>VyF)Yݙ)d#['5{UogZDoK0'&ˀs\5zd/A25ǕtuIkS>xQu' #[˰v
+K%ɶ*?Y:"ٸ,oo4:!# "ߏ"o& 9u7 &)R*(
+:
+@56>݋H )F! .<
+$Q#}0 x\u.GEA"#5!& y 8*%B+9: 7PFt
+9
+/ 1>@ !5 ! @04R !&7I " #h 
+})2J('
+M;(,8,'+w -c
+ݶ:8  GG)"3V!
+18l,Hw_ßu"<8/##k9M2;>)}լ`WGE,8G=m](H!D #"1?*"Q_ͯ
+3')7 u2|"|KF2#<U# 6)%/\M3#Qn "b<0 .p!7"ID:$!$##DE !8HA
+M+(5 r 1bA/< #
+.W,H1   # *)
+er'Y#-6.  1d -2/(#'#;.Mo(*wD!(<>0)\.B7  $/1HAC8
+=2'0o(dQGlɡ!;ը"%!8% 2cu"w9vKY
+ׄFny?-7qv\Fx2Tu-ώ fE?hÞ~LrNKߩ:Kc<{ i-8/O
+*: w 2&BF`՛VL'N<& -!# |G0`+  j c(-'a A
+!$ %3w*/ /! }"$"O P(? (0"#)-  -&cA-*7'!#K"$";U)!>IC3&/`&ׅ #I"<;1S, A_<Q- 1`0) (9!j! A5@U0*G# D-ל w)_/; S'7(1 +?!$7*W\9:(3 "-(e *A* !K FE Y*|# G `((#! DVl ;! 5" X$)@#+A1! A*O;I'I"9&P %~9!(I%-! ~w+$5"V 'v A>q U 8!
+Cj  "1
+jVC&$Q#P !E? 7ɓ
+fL?
++QK!19?$X,$ )X#="9 E! <[&/ ]C?9fo57da"#=?%#:M$)5%#!-(%i-N5;'5')]1## 5#A"%3071/8 "+*;_-5ɛb{B~$Yu_σ2LOT4VI[5%,7W|צf3!WPY "1L!8
+JJM#>%#8f +T"!<lW1MF
+_ \>2;5t ύ#"[X$, EQ&8/  I A!Ϯ{'/SSz$3ɋ<ͅm{%!0{? MiC<'&- [5Vbf !%Y,-"U; 9! ѝ7Z K?{8a"
+4
+Gv2!^ # UJ$=fۀ$ S bU?w
+*4y".IC
+C/;#"i>q$%=/#)1:=VAtD!D8]/ #u"(sJ.vI#DZ! .+!Ӱ!tKDSݱu.16t"<#0|
+#ј? "%=!{CDFF!)$ŏə"Ã* @!{M Ӗ!"">W "(
+E;D"# 3$&!q*"8
+ {L) "#} w6~ ͋zqFp+95 E*/\!#:>!Ӥ['Q,')J07)CK=.D<L w>K$&&98_  5W8<5=? >J OH (.V1X(X /;? 91X(V$*"201I< ;
+;.).-&771MՔ1F;? /#<.#E*3  .#;,#;1%G";F
+@2  %.Y"?HC0$1RY1 #?K_D#O%AY
+S *.!3W<4XO{4C'"A#)w/ I E ,E' ZE;*"'$=J - "2#!C#6F7
+7 Tz#( ,M+Ow. 1a|6J#  #1_ق˅?M+/[H$XK|(X0k i2
+0u# ٔ$J׶>n&/|  'p_%;9'!,u*mqa}#'xC @*1X77A* M1-E ;AJk 0 K4GQ]] ZY"y@Vk>hѯ;sin`dtKoqfWc@nLJ:/" "Ty 0   h&
+(@ v## 09"! 7Gk; )/(AٷxN LG$" ) o !$O!
+ ;B "c u  o 'G/"j  A"EV 
+#b 2  $jv H! B+V!2B!!6H$  x2&Ɇ )v w ?   F!A$.F!RQR ! }#! BC $j"@#:@! #!"
+x57+h)!/A
+Cq'GF?$;14@@ZQ$#"n  72c #/J
+?BB "RS  ã $$wPKT%\!Q (\FE1&/C8 |y"lZ?s }C.#sg#LW&$Z75( ׫RFp!%ӓ o.  #Ņ͇L'$ +
+#HHɍ
+5*T ѕ rh
+.~@PYM*ETD >"D*ME!Bd>ї3S #V Cqq+ѐ
+ =*"+v55"[!! "-]0;W#˚ S݄
+!%!A7 BQ)0?ICˡL'!DۉT7Xz(  #JV,
+Oss*4% !t#bu ϯ3(5 )Z?/%0O!" 'i"&y( +~ =G>$ =;(M{ -~6xN2)H/nB1+|E2*;6S* CL $,(zi .5_%o#(cwϔD& 1!GO *J/ I#<S@?#>=`*I+B8541` +S8%/ˈ,K'\.$a+-  y,.9+k-`"1"1M!$C1*5O A58I 2 ?! 5 *LW F3 nN' *.B%:. 3C  \ $12(^5 
+ j:`9"w Mv*'',9F<5 f7!" (12h+D%9a
+.-h!9.I 6F( E*L75,0$73S)$'+-"eE;524%!] 8?2 '12'44-",0hDR)4$6>+<8 g- E)*;?1-
+s_dr O.  =^& C(ѕ&'(+# J'&!Z*a D5GM%(!)n(7ak D!EOyE !VACS*+TrQ,
+ V8Jq #\
+*"F 1WNG(6C2V$LK""1<L !#--!}!!WL#"
+;L C,o%qWB R"I!)cq$7t(9 #I E r$ 9 .GD - CL
+)B^
+E7=%U ?r+1 9-* G"3"pp9 - @.K%/3aNA˲+'L7x'r(tBM(b$- >7+]97!E(#":/&]!9۷7 &7)#
+ CFQ1 %; 8G A
+5<5.FE 7z#& DK
+-' !u9EC7o" 7 ;  ECB %ň 14#'=8E=B5.E>_=E%-=x/GǔO!=  i  #C٘&|+DL"~ ,-#w)"Fr2Kk #ŋfi
+s:1)- "y#.!q0
+_%Q|)g
+* " <Z+Mr!8F";" Wo-$feGB<vg RU](f`%'ϗ۬S. 2+8dsALWQ',X&Z 6-& Dɲ  ݚ#k#@%&I %7++j |+QE(2z+s*)ð.>*'Y,AWD6(J(B^'U= 8 HxG/Xp?8R759Y۝WF"n-"W{mÅN.21.PF %zr ";} O
+6KF%0n:\U 1
+M}.>ǾFǔ;110:*'фKdjϙu^!o%"(Rt' p;!J)% z%L*!!הW2B7S;B &Z(0,o5
+Y-4+J * Ӈ '0,  t#f  ( ""
+ё6y!D"z5x4*CG!tM>hGN9&" =qזI??v%?q '"j4~&, 1ߌ0.  -h% R. }n )% <=2 ;5r$ 92q8 ˧7 O$--w"t; 2&[A&d.sA+ $/RDrّB)]i~($ߔaW 3c\29n$!RMV$8RN b[,E8HͦK*PLWr#!ӆ lђfA}}GG1kA 2n1W@T߽`<ӛ'. 9VIJ](ѡ}/0(q@!!q˩D.~F 1)+H.5 2#Ǣ#H"! ;;8>[ cK[&6\
+R3'ņtY (NNӋ
+D?L5  dR=9- ?)K ;!K's9ECH8!9#X(I;7 3!R]2GI*='[K 70=5''  DL#,F?JQ;!4&G &  A(3!r5:K'4)_"
+ %W<`,+ UHO
+\@ 'GY )Id([ 'xC' 9L )+pB" 7%Ӏ gQE-"۔?1
+
+9"M9")G<Y/AS- ~ !#
+P!P+Xg#;
+(|&qA.VkNa24ũ͊Z?<u@&NKP{5s-VCuY:%'5((Xx5.N1N;F!?!!C:a 7j:JMF` Ӹ6 MP@{
+  AF˫q<\M&'][I 
+/WzN %t*
+M-?5 J G8 5'ی!?H:W3B==-9oKӸ d7'U
+-mc!I '%- \o5 S '  BX OIzM\k=MkUF
+%
+5500D 7(i)]-"J3<V%w A:&'a-56C01;G k FF
+JQMA+$(F3] K$ )K/DX'A w>߃: |:&JU3>;P^Qi=)_?%+ S!n<),Q>, 5&#$ Z X =U3v^={ p)6J kM]B%!!tKf  ۫s:0 r2m`!:e  T!V(!/yu&5J( 9%V+' .*++K .OE<  2) dA p# JS1!&"+( 2ϛNX)ˉd\7F,S ?!Pb" YUoF_-\"9Z!0S\WQ>
+  L?Q #' a^ 8j  !:Co> t ˯y.p
+1 ~!A*Hb'{#ôCF <])&}O-EC.+Vy6 a'- ImcR-AMUi`RZo
+іV6!3 @/$"O92Պ5+RD]%18*)R C6},A .@S:>:N/@/
+%1:1:'9\)^
+/`.%0&\00L\&Z 7FGH!i?AA
+QA UD9!w[62"F&$*IW,aә:4D-c/Q][O+-'G$>?M X@3x2m,7m+ Eh+8ݮ$G;[`T(%Ƀ- >L.]'& EՇ')$$ '_B CT;CBh d H%P` *eK, M$a!*݄I 0{/V/ 8ŀRիxչ5-c͊ѤvNE)?v;2Zh]#MK 3%"_"H! *kCY;!'DUn M:p"Mq^!O?'lG 9Fm)|a#'uB|i_
+#"]Sb{y=!& D&)Z:4>41,%Jj ǑJ+s6jH; nM}2IvLe:b;' :+1Kp 'yǐH)!!tE"
+|E`>ō,#o*2 $
+@(1c!i1) $!<'E# i!"/!!i!(M#'A\$  #!Cx+ 
+'p
+ @2.')O+/."{DO ɰEu% - l(!JF r. ^/ G/?Br$Q)c .<Yr&22 #   _W*1'Z65+1qx&[)"(C ,I-8!)?11h(l#!)#~  q\":X7'1Ç#"\0c1).u. <$(%$ W:<"s"?E/ /
+#4/ υ)J"*)D/ <" " (w'k)"s $U1C) C >.Juo1r>lSi"iB?5#!A^'BD- 15";r/"# 1|A:'= &7&8=!!= \'DM( D"&5D ?>9 &!3)*W "ň= G:=I"*E>*7IA)=" 7(L)M*,Q(0;!.{9!L"A 1r"K>;h*('E&<) .#I!O(N('> +)_$E1.1O$'-"& < <]"2E]B'($$&-/\;c *J
+A$)$ !V
+ - 2C
+;"Ѩ͊('
+D*"$B"@& ("&2(+!E$#&)*.+$+" &7~D ?#-!9ם>) \ɗPpHvC E&xCo*j&TE"=E **"DF
+O S C 4%U>&J)")&'5( A7o G-$#*U H .&)+Dd;ٰAY/M/7 q! P+*i17 / ?' r $ 2^
+'aU}+7"/ AF!$D 0(]1) #E #(F4* -'b$E+)t M# ,C '#;
+)T_s<8*"-':M %d&4(]tAEǨH?6-01* ,XO-+@^*5ˊ6\<N#48C#l;iQ#"sD$1(3 , ^ B$kx#y3*;
+#1$yK !y
+!
+5~*LJv#2W-2 \+O2D(BJ)R 'T0[DEɫO-'L*A 6 +8@*B's'
+o0i/] .3>/7( ~_./b*,s+0 [ER O/2EGv.!&(@?74r`ϼG~!n .CX95:@K >5(WJ(6K "P Z% *'y!.p'>l#1%ۃ(U2 {;" x
+MwO l9"mN <pjYfT@}OudU cPw ÷@]BN/#b^&NIO!x86N ONNQ%UJ"N 81bP/\/Q=D!VeQw #]FS [0Ud"P(3O
+)OBJ PBV#T\Zj-"N"P2A&dFYS@J#bC yT
+EzPb B#680'ˆ'n8!/W(D7h$o-0'1;3D +O+@/"b+@&-k;
+; #Y"ł"@+9E?!"P5?2L ;?oC!-?# #
+"1.|;#Kمb'='-/s9"  !(x=C E
+E x78 M#o( )>KDDG ,4jJH<
+A-7 J1#($c'C" E; W#)!%@57/6V7&4E-&Ga~݌ F!Q9F5%jݪ+S.
+"q-I%>-ё1z/=TK"- 7g:8W! = Q $&?;FMBDgA G reS; m DɁI;B-b:,>m'S- O6- - E?
+&#5e,-#MA59o)eAD/I#/$;7&׼4A #J#=#3=UA,II:>),7 D7l"DRP A9"#S719EZw83'!öhXJ 1AdXt GL j=47^5"6%')?A1 -#+;^ 74% Gy*HW^"ey9"G_#4;05;"8uRv3+a#$'(}uOj3  $E  +C+7! 7zYv&"!--)>C uC
+XkZs?XK÷OY-W;{hk5hű35!ŗA?dTI9 kS9-!X"O u"9^
+44D9B7"(a 1Y6@ SI;
+B7 @#%;? 0D(M"#!D"7rC"#?# @AF!"9-0 )/W,Ah 2aD! )J"J/3 GJ;%Q"A DK -$E7PI%u"C6?~)!-4=PLK81HEÉFE. sJk(=#$&\58+))&!1K'HA 7k(7:21#aT!"ia2 5WU&1>k͌C5+/M{>K/3F]+ E S&M A"M? ) áǣ?!ӱ[" e)!Eh4^
+L 2N= 30 A4_CdA) `A' % m?'&D"lISH N-J%#%l0#'v M+d$h :!S1q=h)4poj& (8Vi3H-A;!`s3 AD7' >5CL=W
+S9e;"+( 5s_)7A6` n^O(!
+(VD'$ 8(0*0YA$7.
+3qˬ I  # & !b= 2%#<? $ [BMW){)B?eKX\1ŀ n%]ZH(P&6?n:bc'G+<H24} L7-D'$(0S2(N4#+"(aT3]=>  !2=% s*@ d ?߫1`E4۔8ϣ CT<cGV-NS`@D#.׾#{,hgCݫkFGUvNDAMˑYՇ)E_.O,).R-l E}1DHjQŴC${Bzզ!zTdٻ"lKUd&[\'=ɑwו" ';/+$ &#"O( 1yVņ 1Q!s!z  "8&!#)َ&#sW.
+<<55M^0')ٮ( 1C4?&2o+--
+Ir1 5`z1'J, $q+
+eI1(9g51M
+1
+E
+%&2y
+U
+2 s v| s66;/85P*>/&^ {#!w" "*{` ѯp!BC "z!)0! <> E)|uFx xJ#wDτH   :Yz#LK0zD  Q0yL(}
+/!Şx"!
+w"
+'
+ ѩ ?B!w>"
+#ŕM'#
+X+P(!R p+!,;<'#"š"v[&!#8Ӏ7."%$ ~29KHzK Eu #
+}:G "="C #-"}<X 4JI' ) =a+!4QSٱy6b \. [FU n(m; V;>*)#K2'Nnb5 s '$d
+ < ;* ? m@ ?D#.|Ba X
+Yс%߼~:!r .<ג `!."'!z pe+; d#PKkÄt8"&X"!J"p0Ey"q;gY#8lųɸo"I"Xr o9|9=A7ZM^#&'~_B Ln9!`t-hCIp- nw.7E0 %30%A"K" AfN"$" !
+O dJ*eS b!I" 1`%0,g),6ih1*H60;.=t;H=) j)
+<hJR w s?_ L"$x0!b fcW=F0 bI U. D Y!NJB$OA(I7
+c.a0'' ߂ӁϦ*m` M)B
+fdkR;J=5]- C@ ! _1,&#Z)=0n +Ϭ#ձL */#,'c;k.<(B ?-<; bECA7/+B(?2EG`B!$;H7<~,C
+3i/' Ab= DCC,*V6 ~G݅'C 6 9`0@P3  {; +BES;br&',];#aDl2Q~`-/eͩi,BFr'9c
+Anh!+;!'5KC: E 3'=5$L4uN]hGq Qnw1KӮ==G
+ T,d'!;'
+(H7' "rL *H/́?ۚ;&
+>UWdb-+Ő)" ݻ!
+S$0+G" " a K%#.##v8#$x 4'M)^#> #F//-0 Q<-C#F/}x.0#pG,W}#(/7;I"\&iO>J4*85|2O>GFS4%(HL/)'26A6gGl D!  )_."[C  MG +0%'!63!h/ 0$Xa**WR#&%8:0/ 1FHD",Zb." .QT!e;#X, i-M0'd1)+"J^8)-!5`Gn@1F>! g& MZɬ,39jrp3ٗɇA#_7 993r#CB*|# b=qZa1U017 +&k 3[*4 ӫM  'jטC* +$*r)1-##>VDLq0##j" *T"$'2  (I<1/N/: #1 ( %<A / "$'yA !!<o+ !(#--"#u;11:, #\8 < :D ##M* E<+,F*"#"c"N,1
+
+#\/"~XI 0'E!F$"J=V5|7 $F),˟{ٓC_A9 9I H)B [B_Dv/!%yÝ'Dx@z!RÙͣ\tR- ׫)( Q(#(k~^ LF}#{'+E$> #G lW1#dŰBk((Sӻɮ  COS4&J.z![H;3;X[aw`Nmc+#IYxbU.Jjш C"D/2!H1[ ),3TN5s-J`/*#4s
+C<7ZD-9##=p;I,0DD&
+O- "TM`^|Y B
++3 G.1O1( 3s =тM*t6'T' f !97f4 "7O39* *o##No^ "L=CTEZW+!/.Q@\sT19( 1@dJi@S !!m#LݎgJ߶PJR)QO1"!L-S?%&O.B #T.0FF%BE:: у9"3l.
+W&&WK (,MA$*P8-JDw
++!B 3)gd,"5%*p+(J'3v -.& 2Iςa 2B>Y
+hJ  #L3%v"i {'( rB@` 3r ׈"
+wz@>
+#&zWT[S &G
+ H9  n/!F@
+(0ÅwEq1W" M)"% %  HN7al|(q
+?$$jWyFu9=K=2> 488@F%V6c
+Y)Ӂ )B"#'5Q)@!/Q</8kMH%YZD$K0':=sH\d24S/A8$t
+@#ISY kq>]Qnu # ["S"e&߆
+Ke %*'ɶ(?YO:"~ٸ:!$,Bo&  t""ߏ", #R9u*7 &)R*( :
+@5
+6>H)!  #b.
+$x? \.GN-c
+ y 5!&%B- * # i 8*+9: 7PFk+$t
+ 19
+/g $ !5Ü>@2( " 4R ! @0!&7I #h 
+
+M;(})2!
+J('b,,'+8w )"xݶ:8 % GG0p;G<* 3V!
+nj˃,í_E(iBz|
+'`g'N \ No newline at end of file
diff --git a/sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.nrm b/sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.nrm
new file mode 100644
index 0000000..19f64e5
--- /dev/null
+++ b/sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.nrm
@@ -0,0 +1 @@
+NRM|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||vvvwvvyvyvvx||vvvvvvy|yyvvvy|vv|vvv|yvyyvv||vxv||yy|vv|vvvvvvvvvyyvyyvvwxvyvvvvvvyyvvy|vvvvvvv|vyvvy|vvvwvv|yvvyvvxvvv|yvv|vyvvvv||vvxvvyv||y||vvvvxyyvvwvvyvvvv|vvv||vvy|vwvvvvw|yvvyvv|vvvvxvyvvv|vvvyvv||vyyvvyxvvvv|||vvvyvyvyvvvxxvvyvvvy||vxyvvvvvyv|vvv|xvwvyyvy|vw|vv|vvvvw|vvxvyy|vyvvvxyyvxvvvvvyv|vvyvvyw|vyyvvvy||vvvvvvwy|yyyvwvvyyvvvvvvvvvv|vv||wyyvyvvvvvvvvyvvvvvvvvyvyyyy|vv|ywvvvvvvyvyv|vvvvyvvv|yxvvyvvv||vvvvyy|vvvyv|vyvv|vvvyvywyyv|vvvyvvvvvvyyy|xvvvyyyy|vyv|y|vvy||vv|vvvvy|v|vvy|vvv|vvvvvyv|yvyy|vvvvvvvx|yy|vvvv|vvvvyv|vvv|vvvv||yvv|vxvvv|yv|vxvvwxvv|vvyyvvvyvyv|yvvvvvvv|vvvyvyv|yvv|yvyvvvvv|vvvvvvvvvvvy|v|yv||vvyvv|vvyvvvyvyv|vwvvvvxyvv|vvy|v|yv|vvvyvvv|wvvvyvvy|vvvvvvx|v|v|yvvvvvy|vvvvy||||vvv|vyvvv|vvvvvvvvxyv|yyvwvvvvvvwvv|vw|wvvvvvvvvy|vyvvvvvvvvvvvyvvvvvv||yvvvvvvvvvvv|vvvv|v|vvv|yvvvvvvv|vv|vvyvyvvvvvvwvvvvxvyvy|vvvv|vyvyvvvvwyvvvvvv|yxyvyyvvv|vvvv|yv|vxvvyxxvvyvxvvvvvvv|yv|vvyvv||vvyvv|vyvvy||vvvv|vvvvyvvvvvv||vvvyvy|vvvwvvyvv||vyyvvvvxvvvvvvv|vyvvvvyvvvyxv|vyvv|yv|vxvvvvvv|vvvvvvvvvvvxvvvvvvvvwvvv|vv|yvvvvvvvyyyvvwvyvvywvvvxy|vvvvyyvy|yvvvv|vvvvwvvv|||yvyv|vv||vv|vvvvvyv|vvvvvvvyvx|yvvvvvyvvvvvvy|vvvvvyvvv||vwyyvvvvvvvvvvvvy|vvvvvvvyvyvxvvvvyvvyvvvvvvvv|vvvvvx|yvwyyvvvvv|vv|v|vvvvvyvvv|vvyyvvvvyvyvvyvvvvvvyvvvvv|v|yyvvvv|vw|v|vvvv|yvyvyvy|vyvvvvvxvyvvvvv|y|vy|v|yvvyvv|vvvvvvxvvxyvvvvvvvvvvvyvvvyvvvvvvvvvvyvv|vvvyyvvvv|vvvvvvvvvvyvvv|vyvvvvyvv|wvvxyvvvyvx|yyvyv|yvvvvvvvv|v|vyvvvvyvvvv|vvvvy|vvyv|wy|yvvyyvyvv|vvvvvvv|yvvvyvyvvyx||xvy|yv|v|vvyyvy|yvvvvvvyvvvyyvvvyvyvvvvvyvxvvvvvwvvvvvyvvyvyvvvvvvvx|vvyxvvyvvvvvvyyvvvyvvvv|yvyv|vvvv|vvvvvx|vvvvvy|v|vvvvvvvvvyvvvyxvyvvyvyvvvvxvvvvvyvvvvv||xyyv|yvvvyyvv|yvyvvyvvyyvyyyyvvvvv|vyvyv|yv|v|yyvvv|vvv|vvvvvvvyvwvy|vxyvvvvvvvy|vvvvyvvvvvyy||vvv|yvvvyxvvvvyvv||vvvvvwvvv|vvvvyvvvvvyyvyvvvvxvyvvv|yyvw|v|vvxvv|||vyvvvyv|vxvyvvvvvvvvyvyvvvvvvvvyvyyvvvv|vvvyvvvy|yyvvv|v|vvvvv|vvvvvvvvvwvvvvvvvvvvvyvv|vyvvwyvxvyv|vvv|yvvvvvvvvv|yvyvvvv|wyy|vvvvvvv|vvyvv|vvvvvvvvvvvvvvvvvvyv||vvvvv|wyyvvvxwvx|vvyvyvyyvv|vvvwvvyyvyvvv|vyvyvxy|yvv|vvy||vyv|vvwvvvvvyyvvv|v|vvyvvvvv||||vvyv|v|vvvvwvvvvvvy|vvvvvyvv|y||vwyvvyv||vvyvv|vvyvvvyvxyyvvy|vvvvvvvy|vvyy|yyvvvvvvxvyvyy|vyvyvv|v|vvvvvw|vvvyvvvvvvvvvxyv|vvvvyvvvwvyvvvyvyvyv|vvvyyvyvwvvvvyvvvvvvyvvv|v|vvvvvwvwyv|vvyvvyyvvyvwv|vvvvwvvvvvvvvwvyvyvv|vy|yv|xvyyvvvvvvvv|vvvvvyvvvvvyvyyyywy|vvvv|vvvv|v|vvvyvyvvvv|vvvvvyvyvvvvvvvv|v||vvvvvv|vvyv|vy|vvvxv|yvvvvvyvvvvyvvyvvvvvy|v|vvvvvyv||v||xvvvyvvvvvv|vvvvvvvvvvvxvyvvvvvvyvwvvxvvvy|vyv|vvvyxyvwxvv|vvvvvyvyvvvvvvxxy|vvxyvvvvvvvvvxvyyyvvvwvvvyvvvvyvyvvvvyv|vy|vwvyvv|vv|vvvvyvwxvvvvvyyv||v|yxvvyyvvv||vvvvvyvvvv|vyyyvvvyvxvv|yvvvxxvvvy|yvyv|yyvv|vvwy|v|yw|vvvvvyyvvvvvvvxvvvvvvvv|vvvvvvvvvyvvvvvxy|vvvvvvvvyvvvvvyywvvvvyyyv|vvvvvvvyyyvvvvvyv|vyvv|wvvv|vyyxvvvyvvv||ywv|v|y|vvv|yvvvvvvv|vvvvyvvv|vvvyvyyvvvvwvvvv|wvvyvyvvvv||vyv|vyvv|yvvvvyvvv|vvvwyvvvvyyvvvwv|y|yvvvvyxvvyvyvyvvvvvvyvvvvvx||vyvvyvvvvwvv|vvvvvyv|vvxwvvvyv|vvv|vvv|vyvvvvv|xyvyvvvvvvvvvvvvvvvyvyv|v|v|yy|vwv|vyvvyvyvvy|y|vvvvyvvwvvvvyvvxvvvvvvvvvv|ywvvyvvxxvyyvvvvv|vx|yxv|yvvvyxvyvvxvvvv|vvvv|vvwv|vvvxyvyvvyyvvvvvyyvvxvvvyvvvvvvvvvvvvvyvv|vyvy|yvv|vvvvvvvvvvvvvvvyvvvyyvyvyv|vyyyvw|vyv|vvvvv|vvvv|vvvvvvvvyvwyv|vvwvv|vvvvyvxvvvyvv|yvvyyy|vvxxv|vvvvvwvyvv|y|vvvvxyvvvwyy|vvxvv||vvvvvvvyvxvyyvvvv|vvyvvvvvvvvvxyyvyyvyv|yv|vvyv|v|vvwvvyvv|yvvvxyvyvvvvyvvyw|wvvvvxvvv|xvvvv|v||vv|vy|||yvvyvvwv|vv|vvxvvvvvvvyvvvy|y|vv|vvvvvvvvvvv|vvvvvvvyvvvvvyvyvyv|yvvv|vvxyvvw|vvvvvvvvvvxvvvxvvvv|vw|vvvyvvvvvvvvvvvv|yv|yvv|vvvxvvvvv|yxvvvwvvyvyvvvvvvvvvvv|xvv|vv|yvvvyyvvvvvvyvwyv|vvvvvvvvvvvy|vyvvvvvv|xv|vvyvyvvvvv|vvv|vvvvyvywyw|vvxvy|vvvvvvvvvv|vyvvxvyvxvvvvvyvvyvv||||vvyvvyv|yvvyvvv|vvyvvvy|y|vy||vvvvvvvvvvv|vvvv|v|yvvvyyvvvvvyvvv|yvvxvyvvvyvvvvvvvyvvvvvxvvv|xvvvvvyv|vvvvvy|vvvvywv|v|vv|yvvvvvvvvvvyvvvy|vyvyvvvyvyyvvvvwvvvyyvyvyvvyvvvvvvv|vvyyvyvyyyvvyvvvvvyxv|yvvvvyvy|yvvv|yvyvv|vvvvyyvvvvvv|vvvyvvvvwvvvvyvyvvvvvvvv|vyvyvyv|vyvvyvvv|vxvyvvyvwywyvvy|vvyvvvyvvvvvyvvvvvvvvv||vvvyvyvx|vyv|vvvvvvvxvvyvvyvvvxvvyvvvyvvv||vvyvvvv|xyvyvvvvvvvvvvvvxvvvvv|vvvvvvvv|vyvvvyvvvvvvvvvy|vvvvvvxvvvvvvv|vvvvvv|yvyvyxvwvvy|vyyvvvv|vvvyv|vv||yvvwvvvvvvvvv|vvy|vvvvv|xyyyvvvv|vvvvvwvvyvvvvvvvvvvvvvvv|vvxyvvvvvvvvvvvvvv||vvvyvvvvvvvv|vvyvvvvvvvvvx|vvvyvvvv|vv|vvvvvv|vyvvvv|vvvvvyvvywvyvyvv||yvvvyvyy|yvyyyvyvyvvvyvvyv|yvvy|vv|xvyvyyvvvwyxvvvv|yvvvyv|vyvvv|y|vvyvvvvvvyvvvvvv|vvy|vyvy|vyvvy|wvyvvvvvvvvyvyyyvvyvvvxvvyv|xvvvvywwywvyvvyyvvvy|vvvvvvyvyvvyvvvvvvvvvvvvvvvvvyvvvyyw|yv|y|vv|vvvvv|vv|yvvvyvvvyv|vyvwvyv|vwvvxvvvvvvvvyvv|vv|vvvv|v|y|y|w|vvv|yvvvyvvyv|vv|xy|vvyvvvvvvvyyv|vvvvvwyvvvyvvvvyvvvv|vyvv|vvvvwv|vvw|yv|vvyvy|vvv|v||yvyvyv|yvvvvvv|v|yvyvyvv|vvvwv|vyvvvvvvvyvwv|vvvyvvvvvvvvyvvvvvvyvvyv|vyyv|v|vvvyxvvvvvyvvvvvv|vvwvvvv|vvyyvy|vyvvxyyxvyyvvvyvvxvvvyvv|vvvv|vv|yyvvvvwy|vyvv|vyyvvvyvxvvvvvv||vvvv|v|vv|xvvvv|v|vvxyvvvyvvvvvvvvyxvvv|vvvvv|yvvvvvy|yvvyvvvvvx|vvvvv|vv|vvvvv|vvvvvyvvvvvvvvvvvvvy|vvvvvv|yvyvvvvvxvvyyyvv|vvyv|vvvyvvy|vvvv|yvvvvvvyvvvv|yvvvwvvyvvvvyxvxvyv||yvvvvwvyvvvvvv|wvvy|yvvy|yv|yvvyyvvyvvvvyvvyvvvyvwvvv|vvvy|vvvvvv|vvvvvyyvv|vyy|vvvvwyvvvvvy|vv|yvvvwvyxvvvvvvyvyvyyyvvvv|vvvwvv|vvvwvvvvvvvvvv|vvvvvwvvvvvvxvvvxvvvvvvv|vvvvvvvvvvyvwvvvvwvvv|vyxvvyvvvvvvvvvvyvyxvv|vvvvvvyyvvvyyvyyvvwvvw|vvyxvvvyvyvyvvvvvvvvyvyv|vvvvvvvvvvyvvvvvyvvyyvvyvvvyyvvvvyxv||vvvvvyvvvvvvvvxyvvvyv|vvxvvvy|vvvvv||vv|vv|yyvvyvyvxvvvvvwvvvyxvvvvvvy|v||vyvvvyy|yxyvvyvvvwv|yvvy|ywvvvvvyvvv|v|xyvy|y|xyvvvvywvvvvv||y|wvvvyyvvyx|vvyvvxvvvyyyvvvyvyy|vvy|yvy|vyvvvyvvvvv|v|vvvvyvvvv||vyxvxvvyxvwwvvyyvvvwyvyv|vvvvvvvyvvv|vyvvvxyvvvvvvvvvvvvvvvvv|vvvyv|vvvvwvyvyvvvvvyvy|vvvvyyvvvvvvyvv|vvvvvvvv|yv|vvy|vvyvvvvvvvvv|vvyw|vvwvyvy|vvyvyvyyvvxv|vxyvv|vvvwvvvvvvvvvvvvv|v|vyvvvxvvyywvvvvvvvvy|vwvxyy|vv|vy||vy|vvwyvvv|vvvvvvyvv|yxvvvvvv|vvvvvywv|vxv|vvyvvv|yyxvy|xvxvyvyvyvyvvyv||vvvvvvvv|vvvyyvywvyvvywvvvvvvyvyvvvvxv|vv|vv|yyvv|yv|w|vwvxvvyv|y|vvxvvxvvyvvvv|yv|vvvvyyv|yvvvvvvvvvxvyv|v|vvvv|vvyv|yvvvv|vv|vy|vvyvy|vvyyvvyvvyyvvvxw|vvvvvv|xv||xvvxyvvyxvv|||vvyvvvvv|vvvvvvxvvvvvvvv||vyvvvvvvvv|v|vyvvyvvvvvyvvxyvxv|vvvvyyywvvyvyxyy|vvvvywv|vvy|vvw|vyxvyyvvyvvyvywvvv|vvyvyyvwvvvvvyyvvvvvyvyvywyvvvyyyvvy|vwvyyyvvv|yxvvyvvvvvv|vxvvx|yyvyxvvyvvwyvv|yvvvyyvxyyyvvyvwyvyvvyvvvvvvvvvvvvyvvvyvvvvvvvyyvvvvvvyvvvw|vyvv|vvvvyvvvvv|vyvvvyvvvvvvv|vvvvvvvvvywvvvvvyvywvvvvyyyxvyvvvvyvvvvvvvv|yvvvvvyvvw|vv|yyvvvy|v|v|vvw|vvv|vvv||vvvvvvvwvyyvv|vw|vvyyvv|vyvvwvvvyvvvvvvyvvvv|yvvxvxv|vv|vvvyvvvvvvvvvxyv|vvv||vyvvvv|vvvvy|vyvv|vyvvyvxvyy|yxvv|vvyvyvvv|vvv||vyvyvv|vv|vyvvvvvvyyvvvvvvyvv|vvvvvv|v|vvvvvvyyvvv|yyy|wvvvyv|vvvvvyvvvvv|yvvyxy|vyvwyvvy|yvvvvvyvvvvvyvyyvvyyyxv|vvyvyvvv|yvvvvvvvvvv||yyw|yvvvvvvvvvvvvy|vyvvyv|vvyvv||vvvvvvvvy|vv|vyyv|vvv|vv|vv|yvvyvvvvvvvvvyvv|y|v|vvy|vvvyv|vyvv|v|vyv|wvy|vvvvvywvyvyvvv|vvvvvvvvvvvvvxvvvy|v|yvyvywvvyyvvvvy|vvyyvyvvvv|vyvy||||w|vvyvvvv|vwv|y|yvvvvvvvvv|vyvvyyvyvwxvvvyvv|yvvvwy|ywyyv|vy|y|vwyvvvvvvvvyvvvyvvvyyv|vvvy|xvvyvvvvvvyvyvxvvvyv|vyyvwwvvyyvvv|vv|yvyvvvvxv|v|vvvxvx|vvvvy|yyv||vyvyxxy||vyy|v|vvvv|v||yvvv|yvvvyv|v|vxvvvy|vvvyv|vyvvvwvvvvvyyvy|y|vv|vvwyyvv|y||yvvyxvv|v|v|vvvv|vyvyyvvvvv|||vvvvvvyxv|vvyvvvv|vvyvvv|vvvvxwvyv|vvy|vy|v|y|vvvvyvvyyyvvvvv|vvvvvwwvyv|vvvvvvvvvy|vvyvv|yvyyyy|vvyvvvvvyvvxvvxvyvyvvxvvxvvyvvvvyvvvyvvyvyvvvvv||vxvvv|||yvvv|vv|vv|vvvy|yy|v|vx|||vvvyvv|vyvvxvvvyvyxyyvvvvvvvvvvv|vvvyyvvvvyyvyvy||vvvvvwvyvxvvvyvvyvvwvvvvvvvvvyv||vyvyyvvyvvwv|vvvy|vyvvyvyvvvvyyy|vvvyvv|wvyvvyyvvyy|vyvy|yvyv|yvvx|yvvvvxyvvvvvyv|yv|vvvv|vvvyvyvvv|vvvvyvvyvvwyvvyvvvv|vyvvvvvyyvyvvvvvv|yvyvy|vvwvvvvyvvvyyvvvvxy|vvyvvyv|vvvv|vyyv|vyvv|yvvvvvvvvv|yvvvvyvvvv|v|vvyvvvyvvvvvyvv|y|v||vvvvvvyv|vyy|vyvvvvvvvvvvvv||vvvyvvy|vywvvvyvvwvvvvwvvvvyvyvvvvvvvvvyvvvvyyvvvvyyyyvyvvyvvvvvyvv|vvvvv|yyv|vvvvvyvvxvyyvvvvvvyvvvvwvvyyvvxv|vyv|yvv|vv|vvv|v|vyvvvyvvvvvvvvvv|vvvvw|xvvyyvvvvvvv|vvwvvv|vvvvxyvvvwvwvvyvv|vvv|vvxwvvyyvvvvwyvv|vvy||vvvyvyvvvxvyvyvvvvvvvvvvv|yyyvvvvvv|yyvvxvy|yxvv|vvvxvyvvvvvv|vyvvv|vvv|vvyvvvvvvyvvvyvvvvv|vv|yvy|vvvyvvvvxvv|v|vyvyxvyy|wvvyvvvvvvyyvvvvvvv|vyvv|yw|vvvvyvvvvvvyvvvvvv|vyyvvy|yvvxv|vvyvvvvvy|yvvxvvvvvyyvyvyvvxv|vyvvyvvvvvvvv|vvvvvvyvvvvvvy|yyvvvyvy|vvvv|vyvvvvxv|y|vvvwvvvy|yv||wvvvvv|vywwvvxvwv|vyvxvvvv||vvvyvvvyvv|vv|yvywvvvv|yyvvvvvwv|yvvvvvvvvv|yyvyxvvvvvvvyv|vvvvyvvy|yvvyvvvyv|vvyyvv|vvv|vywvvvvvv|v|xvyxy|vvvxvvyvvvvvvyvxyvvxvvyvvyvv|yvvxyxvvvvvvvvvvvyvvvvvvvxvw|vvvvwvyvvvvvw|xvyvvvvvv|vvwvxyvvv|vy|wvyvvv|yvy|v||vvyvvvyyvv|vvyvvvv|v||vyv|vvvvvvvvvvvv|xvv|vyyvvv|vvyvvvvvv|v|vvvyvvv|vvvyxvv||vxvyvv|vvvvvyvvvvvyvvv|v||yyvv|vvvvvvvvvvvvv|vyvvvyxyvvyvyvvvxvv|vvyvvvvvvyyvvvyvvvvvvvv|v||vy|yvyyvvyvv|vvvvvvv|vvyyyvvvvv|vv|vvvyvv|v||vvv|vvvyvvvvvxyvvvxxvvyw|yy|vvxvvvvyvvvvvvvvvyvv|vvyvv|vyvvvvvvyyvvv|vyvyyyvvywvvyvvvvvyvvvvvvvvvvvvyyvvvvyvvvvvvvyxvvyvyyvyvvvyyvvvyv|vwvyv|vyvvvyv|vy|vv|vv|yvvvvy|yvwvvxyvyv||vvvyv|vvvyvvvvvyvvvvvvvvvyvvyvvvyvvywvvvvvvvvy|vyvvvvvyvvvxyvvvvvvvvvvvyvvvvyvv|vvyvvvvvv|vvyvv|||yvvvvxvvy|yv|vvv|vyvv|vv|vvvvv|vyvvvyyvvvvvvxv|yvywyvx|vyvvvvv|vyvy|vvyv||vvy|vvyvw|v|vvv|vv||vy|vv|vyvvvyxvvyy|v|vxvyvv|vyvvvvvvvyvv|vvyvyvvvvvvyv|vv||vvvvvvvyvyvvy|vvvwyvyvxyvv|yvvxvvvxvvvvx|vvyv|vyvyvvvvvvvwvvwv|vww|yvvvxyvv|vvx|vyvvvwvvvyyyvvwvvy|vvvvvvvvvvyvyyyvvvxvvvvy|vvvvvvx|vvyvvyvyvvvyvyvvyyvvwvvvvvv|v|vv|vv|wvv|yvx|xyv|w|vvv|vvvyvvvvvvvyvy|vvyvwwyvvvvvvvvvv|yvyyvvvxyvvv|vvyv|y|vyvvy|vvyvwvvvvvyvvv|vvvw|vvvyv|yvyvv|vvvvvvyv|ywyvv|vvyvvvvv||vyv|vvvy|||wvvvyvyv||v|vxvvvvvvvyx|y|||vyvwvvvvvwvvvy|vvyv|vvv|vyyyvyv|x||yvyvyvvvyvvvvvvv|vvvv|vyyvvvvvvy|vv||vvvvvvvvvvv|yvvvyvvv|||yxyyvvvyvvyyyvv|vvyvvvvvv|vvy|xyvvvvxvyvyvyvvyvyvvyvy|vvyyw|vvv|yvvvvvywvvvvvvvy|y|vvyv|vvvvvvvvvvvxvxvvyvvvyvvvvvvvy|vvvyxvyxvvyyvvvvvvvyvvwvvvvvv|vvywvvyvvyvyy|vvv||vvvxvyvyv|vvvvyvy|wvvvvvvvvvvvvvvvvvvvvxyvvvxvywvvyvvvv|vxvvvvv|v|yxvvvvvvvyvvyvvvvyvvvvyvvv|vyvvx|vvvvxvvyvvy|vwvxvwvvvv|xv|wvyy|yvvvv|vvv|vwvvvvvv|vvyv|xvywvyvvvv|vvvvvvvvv|yvv|vv|vvxvyv|v|vyvyvvvvxwyyvvvvv|wvxv|vvyvvvyvvv|vyvvvvyvv|v|vvyv|v|vvwvvwvyvyv|vvvvywyvv|vvv|yv|vvvwvvvyvxvvvvvvyvyvvvyvvvvvv|vvvyyxxv|vvv|vv|vvyvvvyyvvvvv|xvvyv|vv|vvvvyv|vvvyyyvvvvvvvvvvvvvvvvyv|v|vvvvvvvyvvvv|vvvvvvvvvyvvvvvvyw|yyvvvvvvvvx||yvvvvvxvxvvvvvyvyvvvvvvvvvvyvvvv||w|vvyvyyvvvvyvvv|vvvyvvyvvvv||vvyyxvvyvvv|vxvyvv|vyvyyvvvyv||vvvwvyyvvvvvvvvv|vvvvvvyvvvvywvvvyvvvvxvvvy|vvwvyv|v|vvvvyvxvvwvvyvxvvyvvyv|yvvyyvyvyvvvvyyvvvvvy|vvvvyvvyvvvvvvyvvvyv|y|yvvyvvvy|yvvx|vxvv|yy|vvyyvvvv|vxvvvvvvvvvvxvyvvyvvyv|vvvyxyvvv|wvvyv|vwvvvvvv|vvv|v|yyvvvvvvvvv|vyvvvvvywvywvvvyvvvvw|vvv|v|vv|yvvvyvyvyvyyvvvwv|vyvyvvvv|vvvyvvvvvyvvwvvvvvvvvvvvyyvyvyxvv|xvvyv||yvv|v|yvvvvvyvvv|vvvyx|yvv|vyyvvyvvvwvvvvvv|vvvvxywvvy|vyvvyv|ywwvvvv|vvy|vyvvvvwvv|vvv||vvyv|vvyvvyyvvvvvvvy|vxvxyyvyvvyv|vvxvvvvyvvyywvxvvvyvvv|vvvvvv|yvvyvvvvy|yy||vyvvvvvvvvyyvw|v|y|vvv|v|vvvvvyvvyvvv|yvvvyyv|vvvvvyxvv|vvvyyv|yy|yvvv|xvvvvwvv|xvv|vv|vvv|vvvvvyvvvvyyv|y|vy|vvyvvyvyvvvvvywvv|vvvv|vvvvvyv|vvv|vvwyvyv|vvvv|vvvvvy||vvv|v|yxvvvvvvyvvvyvvvvv|v|xvyyvxvvv|vvvvvvw|vyvyvvvv|yvvvvyvxvyvyvvvxvvvvv|vvvvvvvyvv|yvv|v|yvvvvyvyvvvyvvvvvvvvvwyvvvvvv|vvvvvvwvvvy|vvvyyy|vvvvvvyvvwvv||y|vvy|vvvvvvyyvvvvyyvvvvvv|v|yvv|yvv|x|vvvvvvvvv|vvv|vvvyvxvvyvvvv|v|v|yvvvvvvvvvvvvyvvvvyvy|vvvvwvvvv|vvvvvvvv|vv|yvvvvvvvyvvvvvvvyvvyvvwvvy|v|vvvvvvyvvvvxvvv|vvvvvvvvxvvvvyvv|vv|y|vvy|v|vvvvvxyvyvvxv|vvvvvvvv|vvvvvvv|vyyyvvvxvvy|yxvvvvyvy|vyvvyvvyv|yyvvvyvvvyv|vyvvyvyvvvvvvyvyvvvvyvyvxyvvvvvx|vvvvxvyvv|vvvvvvvxvyxvvvvyv|wvvwvvvvv|v|vyvvvyvvyvvv|vyvvvvvvvv|vvwvvv|vv|ywvv|vyv|vyvvvvvv||yvyvv|vv|vvv|vvvvv|vvvvvxvvvyyvvvvvvvvvvyxvvvv|yvwvv|xvyyvy|vxv|vvyvyvxvvyvv|yvyxvvw|vyvv|vvvvvvvvvy|wvv|vvvv|vv|vvvvvvvvy|vy|vvvyywyvyyvvvvwvyvvvyvvvvvvvvvv|y|yv|yyvvvvxvwvy|||vxyyv|vv|vvv|vv|yvvvvvw|yvyyyyv|vyyvvvyvvyvvvvvvyyv|vvyv|vyvvvvy|vvwv|vyxvvvvvv|vvvwvv||vvv|vxvvvvvwvv|vvvvvvvvvvvvvvwvvvvvyvvvvvvyyyyy|vvyywvyvv|vvyw|vy|vvvvvvvvvvvvvvyvvvvy|vvvvvyvxvvvvyyvyvvvxvvvxvvvyvvvvwvvyvvvvvxvvvvwvy|vvvvwvvyvvvyyxvv|vvvvwvyvvvvvyyv|vyyyvvvvyvvvyvv|vyyxvvyvyvv|vvvyyvvv|yvvvvvv|vvyvvxyvyvvyvvvvvvv||v|vv|vyvvvvvvy|v|vvxvvvyyvvvwvvvvvywyvvvv|v|vvxyyvvvvvvvvvxyyv|yvvvvvvyvvvvvyv|y|vwvvwvvvyvvvv|vy||vv|yvvyv|vvyvvvvvvyvvy|vyvvvyvy|yyyvvvvv|vvvvyvvxyvvvvvyvyvyv||y|vvvvvvvxvyy|vvxvyvvvvyvvvvvvv|vyvvvvvvyvvvyyv|vvvyyvvyvwvvyvvvvvvvv|vvvyvwvyvvvv|vyvv|vvvv|vvvvvv|vyyvvvvvvvvyyyyvvx||vv|vvvvvyvvyvyvvvv|vvyyxvvvvvvvy||vvvvvvyv|||yv|vvvyvvyyvvyvvvvvvv|vw|yvyy|vyvvvvvyyvvy|vvvvvvyvvyvyvvv|vvvvvvvw|vv|yvvvvvvwyy|vvvvv|||vvvvw|vvvvvvwvvvwvv|yvyv|v|vv|vvvyvxvvvwvyv||vv|yyvvvywvv|yvvvvywvvvvvvvyv||vyvyvyyyvvvvvyyvvvv|vvvvxvvvyvwvvyvvvyvvvyvvvvvvxv|vyvyvvvvvvyvyvxxvvvvvvyyvvv|v|vyvyvy||vyvyvvvvvywvvvvvv|vvvy|vvvvyvv|vyvvyvvyvvvvvvvv|vvvvvvv|vxxvvvvvvxxx|vvvvv|vv|vvvvvvyvvvvvvvvvyyvwvvv||vvvv|vvvv|vwvv|vvvvyvv|vyvyyvvyvyvyvvyv|vvyvvvx|yvwyyv|vv|v|vvvv|vvvv||vvvvvyvvy|vyyvv|vvvvvvvvvvvvvwvyyv|vvvvvvv|xvyvvvvvv|v||vvxwyvvxvvvvyvyvvvvvxvvv|yvy|yyyvvyvvvvvv|vvy|vvy|vvvyv||vvvxvvvyyvvv|vvvvvyvvvv|yvvvvvywvvyvvvv|vvvvyyyvwvvvvvwxvvv|yvvvvvyvxvvvv|vvv|yyvy|vvyvyvw|vvyv||vxwyyvvv||yv|yvv|v|vvy|vy|vy|yxvvvvxyvyvxvvvvvyvvvvyvvvyyv|yvvyvvvyvvv|vyvyyy|vvv|vxvvvvv|vvyv|vv|vy|vvyvvvvvvyvvvvvv|v|vyv||v|vvyyv|vvvvvwyvvvvvvyv|vvxvvvvy|vvvvyy|vvvv|vyvvvvy|vv|vx|vvyy||vvyvyvv||yyvvv|vvyvvvyvyvvvvvvxvv|vvyyvyvvvvvvxvvyvyvyyvvvvvyyvvvv|wvvyvvvv|yvwywvvvvvvvyvvvvyyyvvvvvvv|vvvyyyvvvv|vy|vvvvvvyvvvvvvvvvyvyvvvv|vyvvvvvvv|v|vvvvxv|vyyvvvvvvxyyvvvvvv|vyvyyvyv|yvyv||vvvyvyv|vvvvvvvyvvyv|v|vyvvvvvvyvvvyvwvvvvvvvvvvvvvvvvvvy|ywvvv|vvyvyvvvvvvvwyvvyyyvvvvvvvvvvvvvvwwvyvyvvyvvv|vyvyvywywvvvvvvvv|v|vvyyvvv|vy||w|vvyv|vyvvvvy|yyvvvvvvyvvvvvv|yv|vvvvvvvvvyyvvvv|yxvyvv|vvvvvvvyvvvyyvvvvyvvvvvvvv|vv|vy|v|vy|v|vyyv||vvvvwv||vvvyvvvvvvvyyyvvvv|vvvvvvyvvyvvvv|vvvyvyvvvvyyvvvy||vvvyvvyyvvvvyyvwvvvv|yvvvvvyvwvvyvvvvvvwyvvvv||xvvvwvvxvyxyvvvvvvvyvvyvv|yyvvv|vvyvyyvyvyywvvvyvv|v|vvvyxvvvvvvvyvvv|vvvvvvvvvvyyvv|yvv|vvvyvvvv|vvv|v|vvvvvvyyyvyyyvvvvyvvvyvvvvvvvy|yyvv|v|vvxvvvvvyv||vvvvvvvvvyyvyvvvyyvvw|vvvvvvv|vvvvvvv|v|vvyvvvyvvxvvvyvvv|vvvvv|vvv|vvvx|vv|vyv|yv|yvyvv||v|yvyvvxvyvv|yvvyvyyvvvyyvvvvyvvyvvyv|yvvvxvyyvvvvvyyvvvyyv|yvvvvvvvwvvvyvwvvyvvvvyv|vvyvvvyyxvwyvvvvvvvvyvvvyvv|vvvvvyvwvy||v|||vvvvxvvvxwy|vyv|xvv|wv|yvxy|vvyvvyyvvvwyvvvwv|v|vv|vvvvvvv|vyvyyvvvvvvvvyvvyyvvyvvv|vvvyy|yv|xvvv|vvvvyvvxv|vvvvvvyvvvyvv|vvvvvvvvyvyv|vvvvvyvvvxv|vxvvvvvvxyvvvvyv||vvyxvvvvvw|v|vvvyvvvv|vvvvwy|vyvvy|vvvwvvvvvvvvvvvvvvy|vyvvyvvx|vv|vvvvvv|vvvyvyyvwvvv|vvvv|v||v|vvvv|vvvyxyv||vwvvvvvvvvvv|y|vvvv|vvvvvvyvxxvvyvvvvvvyvvvv|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| \ No newline at end of file
diff --git a/sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.prx b/sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.prx
new file mode 100644
index 0000000..238226b
--- /dev/null
+++ b/sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.prx
Binary files differ
diff --git a/sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.tii b/sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.tii
new file mode 100644
index 0000000..3b536ad
--- /dev/null
+++ b/sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.tii
Binary files differ
diff --git a/sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.tis b/sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.tis
new file mode 100644
index 0000000..d36d9c8
--- /dev/null
+++ b/sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/_4.tis
Binary files differ
diff --git a/sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/segments.gen b/sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/segments.gen
new file mode 100644
index 0000000..53b4656
--- /dev/null
+++ b/sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/segments.gen
Binary files differ
diff --git a/sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/segments_5 b/sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/segments_5
new file mode 100644
index 0000000..5634721
--- /dev/null
+++ b/sem_5/HLIN505_Java/.recommenders/index/http___download_eclipse_org_recommenders_models_oxygen_/segments_5
Binary files differ
diff --git a/sem_5/HLIN505_Java/HLIN505/.classpath b/sem_5/HLIN505_Java/HLIN505/.classpath
new file mode 100644
index 0000000..33db24f
--- /dev/null
+++ b/sem_5/HLIN505_Java/HLIN505/.classpath
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry exported="true" kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="lib" path="C:/Users/coule/Downloads/cofoja.asm-1.3-20160207.jar"/>
+ <classpathentry kind="src" path=".apt_generated">
+ <attributes>
+ <attribute name="optional" value="true"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/sem_5/HLIN505_Java/HLIN505/.factorypath b/sem_5/HLIN505_Java/HLIN505/.factorypath
new file mode 100644
index 0000000..a7dbadb
--- /dev/null
+++ b/sem_5/HLIN505_Java/HLIN505/.factorypath
@@ -0,0 +1,3 @@
+<factorypath>
+ <factorypathentry kind="EXTJAR" id="C:\Users\coule\Downloads\cofoja.asm-1.3-20160207.jar" enabled="true" runInBatchMode="false"/>
+</factorypath>
diff --git a/sem_5/HLIN505_Java/HLIN505/.gitignore b/sem_5/HLIN505_Java/HLIN505/.gitignore
new file mode 100644
index 0000000..e66a2ba
--- /dev/null
+++ b/sem_5/HLIN505_Java/HLIN505/.gitignore
@@ -0,0 +1,2 @@
+/bin/
+/.apt_generated/
diff --git a/sem_5/HLIN505_Java/HLIN505/.project b/sem_5/HLIN505_Java/HLIN505/.project
new file mode 100644
index 0000000..bb13130
--- /dev/null
+++ b/sem_5/HLIN505_Java/HLIN505/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>HLIN505</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/sem_5/HLIN505_Java/HLIN505/.settings/org.eclipse.jdt.apt.core.prefs b/sem_5/HLIN505_Java/HLIN505/.settings/org.eclipse.jdt.apt.core.prefs
new file mode 100644
index 0000000..586ea86
--- /dev/null
+++ b/sem_5/HLIN505_Java/HLIN505/.settings/org.eclipse.jdt.apt.core.prefs
@@ -0,0 +1,6 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.apt.aptEnabled=true
+org.eclipse.jdt.apt.genSrcDir=.apt_generated
+org.eclipse.jdt.apt.processorOptions/com.google.java.contract.classoutput=%PROJECT.DIR%/.apt_generated
+org.eclipse.jdt.apt.processorOptions/com.google.java.contract.classpath=%PROJECT.DIR%/lib/cofoja.asm-1.3-20160207.jar
+org.eclipse.jdt.apt.reconcileEnabled=true
diff --git a/sem_5/HLIN505_Java/HLIN505/.settings/org.eclipse.jdt.core.prefs b/sem_5/HLIN505_Java/HLIN505/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..5f0539d
--- /dev/null
+++ b/sem_5/HLIN505_Java/HLIN505/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,12 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.processAnnotations=enabled
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/sem_5/HLIN505_Java/HLIN505/lib/cofoja.asm-1.3-20160207.jar b/sem_5/HLIN505_Java/HLIN505/lib/cofoja.asm-1.3-20160207.jar
new file mode 100644
index 0000000..ca1ae87
--- /dev/null
+++ b/sem_5/HLIN505_Java/HLIN505/lib/cofoja.asm-1.3-20160207.jar
Binary files differ
diff --git a/sem_5/HLIN505_Java/HLIN505/src/TP1/Adherent.java b/sem_5/HLIN505_Java/HLIN505/src/TP1/Adherent.java
new file mode 100644
index 0000000..0edcb1c
--- /dev/null
+++ b/sem_5/HLIN505_Java/HLIN505/src/TP1/Adherent.java
@@ -0,0 +1,25 @@
+package TP1;
+
+import java.util.GregorianCalendar;
+
+public class Adherent {
+ private String nom;
+ private Boolean cotisationajour;
+ private final Integer ID;
+ private static Integer NbAdherents=0;
+ private Integer DerniereAnneeCotis;
+ public Adherent (String n) {
+ nom = n;
+ NbAdherents ++;
+ cotisationajour = true;
+ ID = NbAdherents;
+ DerniereAnneeCotis = new GregorianCalendar().get(GregorianCalendar.YEAR);
+ }
+ public void readhesion() {
+ cotisationajour=true;
+ DerniereAnneeCotis= new GregorianCalendar().get(GregorianCalendar.YEAR);
+ }
+ public void nouvelleAnnee() {
+ cotisationajour = false;
+ }
+}
diff --git a/sem_5/HLIN505_Java/HLIN505/src/TP1/Creneau.java b/sem_5/HLIN505_Java/HLIN505/src/TP1/Creneau.java
new file mode 100644
index 0000000..2bec420
--- /dev/null
+++ b/sem_5/HLIN505_Java/HLIN505/src/TP1/Creneau.java
@@ -0,0 +1,40 @@
+package TP1;
+
+public class Creneau {
+ private Heure hdeb;
+ private Heure hfin;
+ private JourSemaine jour;
+
+ protected Heure getHdeb() {
+ return hdeb;
+ }
+ protected void setHdeb(Heure hdeb) {
+ this.hdeb = hdeb;
+ }
+ protected Heure getHfin() {
+ return hfin;
+ }
+ protected void setHfin(Heure hfin) {
+ this.hfin = hfin;
+ }
+ protected JourSemaine getJour() {
+ return jour;
+ }
+ protected void setJour(JourSemaine jour) {
+ this.jour = jour;
+ }
+ public Creneau ( Heure deb, Heure fin, JourSemaine j) {
+ setHdeb(deb);
+ setHfin(fin);
+ setJour(j);
+ }
+ public Boolean chevauche(Creneau c) {
+ return (getHdeb().estAvant(c.getHfin())||c.getHdeb().estAvant(getHfin()));
+ }
+ public Boolean estInclusDans(Creneau c) {
+ return ((c.getHdeb().estAvant(getHdeb()) && (getHfin().estAvant(c.getHfin()))));
+ }
+ public String toString() {
+ return getJour().toString()+" "+ getHdeb().toString()+" - "+ getHfin().toString();
+ }
+}
diff --git a/sem_5/HLIN505_Java/HLIN505/src/TP1/Heure.java b/sem_5/HLIN505_Java/HLIN505/src/TP1/Heure.java
new file mode 100644
index 0000000..5ea86e8
--- /dev/null
+++ b/sem_5/HLIN505_Java/HLIN505/src/TP1/Heure.java
@@ -0,0 +1,59 @@
+package TP1;
+
+public class Heure {
+ private Integer hour;
+ private Integer min;
+ private static Integer granularitee= 5;
+ private static Integer hMin = 7;
+ private static Integer hMax = 22;
+
+ public Heure (Integer h, Integer m) {
+ hour = new Integer(h);
+ min=new Integer(m);
+ //setHour(h);
+ //setMin(m);
+ }
+
+ protected Integer getHour() {
+ return hour;
+ }
+
+ protected void setHour(Integer hour) {
+ if ( (hour <= hMin ) && (hour < hMax)) {
+ this.hour = hour;
+ }
+ }
+
+ protected Integer getMin() {
+ return min;
+ }
+
+ protected void setMin(Integer min) {
+ if ((min <=55) && (min % granularitee == 0) && (min >=0)) {
+ this.min = min;
+ }
+ }
+ public String toString () {
+ String htemp;
+ String mtemp;
+ if (getHour().intValue() < 10) {
+ htemp = "0"+getHour().toString();
+ }
+ else htemp = getHour().toString();
+ if (getMin().intValue() < 10) {
+ mtemp = "0"+getMin().toString();
+ }
+ else mtemp = getMin().toString();
+ return htemp+":"+mtemp;
+ }
+ public Boolean estAvant(Heure h) {
+ if (h.getHour() < getHour()) {
+ return false;
+ }
+ else if ( h.getHour() > getHour()) {
+ return true;
+ }
+ else return (h.getMin()>getMin());
+ }
+
+}
diff --git a/sem_5/HLIN505_Java/HLIN505/src/TP1/JourSemaine.java b/sem_5/HLIN505_Java/HLIN505/src/TP1/JourSemaine.java
new file mode 100644
index 0000000..35b99a6
--- /dev/null
+++ b/sem_5/HLIN505_Java/HLIN505/src/TP1/JourSemaine.java
@@ -0,0 +1,11 @@
+package TP1;
+
+public enum JourSemaine {
+Lundi,
+Mardi,
+Mercredi,
+Jeudi,
+Vendredi,
+Samedi,
+Dimanche;
+}
diff --git a/sem_5/HLIN505_Java/HLIN505/src/TP1/Lieu.java b/sem_5/HLIN505_Java/HLIN505/src/TP1/Lieu.java
new file mode 100644
index 0000000..567fd3c
--- /dev/null
+++ b/sem_5/HLIN505_Java/HLIN505/src/TP1/Lieu.java
@@ -0,0 +1,29 @@
+package TP1;
+
+import java.util.*;
+
+public enum Lieu {
+ Stade("Stade de foot"),
+ Gymnase("Gymnase"),
+ Piscine("La piscine");
+ private ArrayList<Creneau> horairedispo = new ArrayList<Creneau>();
+ private String nom = "";
+
+ private Lieu(String nom){
+ this.nom = nom;
+ }
+ public String toString() {
+ String tmp = this.nom+"\n";
+ for (Creneau c:horairedispo)
+ tmp += c.toString()+"\n";
+ return tmp;
+ }
+
+
+ public void ajoutCreneauDisponible(Creneau c) {
+ horairedispo.add(c);
+ }
+ public Boolean estdisponiblePour(Creneau c) {
+ return horairedispo.contains(c);
+ }
+}
diff --git a/sem_5/HLIN505_Java/HLIN505/src/TP1/ListeChainee.java b/sem_5/HLIN505_Java/HLIN505/src/TP1/ListeChainee.java
new file mode 100644
index 0000000..d4b101a
--- /dev/null
+++ b/sem_5/HLIN505_Java/HLIN505/src/TP1/ListeChainee.java
@@ -0,0 +1,64 @@
+package TP1;
+
+public class ListeChainee {
+ private Node racine;
+ class Node {
+ private String nom;
+ private Node suivant;
+ public Node (String val) {
+ nom = val;
+ suivant = null;
+ }
+ public Node (String val, Node suiv) {
+ nom = val;
+ suivant = suiv;
+ }
+ }
+ public void push (String val) {
+ int tmp = this.taille();
+ racine= new Node(val,racine);
+ assert(tmp == this.taille()+1);
+ }
+ public int taille() {
+ int cpt=0;
+ Node tmp = racine;
+ if (tmp == null) {
+ return 0;
+ }
+ while (tmp.suivant!=null) {
+ cpt ++;
+ tmp=tmp.suivant;
+ }
+ return cpt;
+ }
+ public void affiche() {
+ Node tmp = racine;
+ while ( tmp != null) {
+ System.out.println(tmp.nom);
+ tmp = tmp.suivant;
+ }
+ }
+ public void renverser() {
+ int tailleAvant = this.taille();
+ ListeChainee elem = new ListeChainee();
+ elem.push(this.racine.nom);
+ Node runner = this.racine.suivant;
+ while(runner != null) {
+ elem.push(runner.nom);
+ runner = runner.suivant;
+ }
+ this.racine = elem.racine;
+ assert (this.taille() == tailleAvant);
+ }
+
+ public static void main (String args []) {
+ ListeChainee li = new ListeChainee();
+ li.push("Zbeb1");
+ li.push("Zbeb2");
+ li.push("Zbeb3");
+ li.affiche();
+ li.renverser();
+ li.affiche();
+ }
+
+}
diff --git a/sem_5/HLIN505_Java/HLIN505/src/TP1/Main.java b/sem_5/HLIN505_Java/HLIN505/src/TP1/Main.java
new file mode 100644
index 0000000..a207920
--- /dev/null
+++ b/sem_5/HLIN505_Java/HLIN505/src/TP1/Main.java
@@ -0,0 +1,32 @@
+package TP1;
+
+public class Main {
+
+ public static void main(String[] args) {
+ Heure h1 = new Heure(8,0);
+ Heure h2 = new Heure(9,30);
+ Heure h3 = new Heure(10,25);
+ Heure h4 = new Heure(12,55);
+ Heure h5 = new Heure(16,15);
+ Heure h6 = new Heure(17,00);
+ Lieu l1 = Lieu.Stade;
+ Lieu l2 = Lieu.Piscine;
+ Lieu l3 = Lieu.Gymnase;
+ JourSemaine j1 = JourSemaine.Lundi;
+ JourSemaine j2 = JourSemaine.Mardi;
+ Creneau c1 = new Creneau(h1,h2,j1);
+ Creneau c2 = new Creneau(h2,h3,j2);
+ Creneau c3 = new Creneau(h1,h2,j1);
+ Creneau c4 = new Creneau(h5,h6,j1);
+ Creneau c5 = new Creneau(h4,h6,j2);
+ l1.ajoutCreneauDisponible(c1);
+ l2.ajoutCreneauDisponible(c2);
+ l3.ajoutCreneauDisponible(c3);
+ l1.ajoutCreneauDisponible(c5);
+ l2.ajoutCreneauDisponible(c4);
+ System.out.println(l1.toString());
+ System.out.println(l2.toString());
+ System.out.println(l3.toString());
+ }
+
+}
diff --git a/sem_5/HLIN505_Java/HLIN505/src/TP2/Constante.java b/sem_5/HLIN505_Java/HLIN505/src/TP2/Constante.java
new file mode 100644
index 0000000..5d3cb70
--- /dev/null
+++ b/sem_5/HLIN505_Java/HLIN505/src/TP2/Constante.java
@@ -0,0 +1,11 @@
+package TP2;
+
+public class Constante extends Exp {
+ float val;
+ public float eval() {
+ return val;
+ }
+ public Constante(float x) {
+ val = x;
+ }
+}
diff --git a/sem_5/HLIN505_Java/HLIN505/src/TP2/Exp.java b/sem_5/HLIN505_Java/HLIN505/src/TP2/Exp.java
new file mode 100644
index 0000000..b465d4c
--- /dev/null
+++ b/sem_5/HLIN505_Java/HLIN505/src/TP2/Exp.java
@@ -0,0 +1,5 @@
+package TP2;
+
+public abstract class Exp {
+ public abstract float eval ();
+}
diff --git a/sem_5/HLIN505_Java/HLIN505/src/TP2/ExpComp.java b/sem_5/HLIN505_Java/HLIN505/src/TP2/ExpComp.java
new file mode 100644
index 0000000..30cfc2e
--- /dev/null
+++ b/sem_5/HLIN505_Java/HLIN505/src/TP2/ExpComp.java
@@ -0,0 +1,28 @@
+package TP2;
+
+public class ExpComp extends Exp{
+ private Exp val1;
+ private Exp val2;
+ private String op;
+
+ public ExpComp (Exp v1,String op, Exp v2) {
+ val1= v1;
+ this.op = op;
+ val2=v2;
+ }
+
+ public float eval() {
+ switch (op) {
+ case "*":
+ return val1.eval()*val2.eval();
+ case "/":
+ return val1.eval()/val2.eval();
+ case "+":
+ return val1.eval()+val2.eval();
+ case "-":
+ return val1.eval()-val2.eval();
+ default :
+ return 0;
+ }
+ }
+}
diff --git a/sem_5/HLIN505_Java/HLIN505/src/TP2/Main.java b/sem_5/HLIN505_Java/HLIN505/src/TP2/Main.java
new file mode 100644
index 0000000..de235ce
--- /dev/null
+++ b/sem_5/HLIN505_Java/HLIN505/src/TP2/Main.java
@@ -0,0 +1,19 @@
+package TP2;
+
+public class Main {
+
+ public static void main(String[] args) {
+ Constante a = new Constante(5);
+ Constante b = new Constante(2);
+ Constante c = new Constante(3);
+ ExpComp e1 = new ExpComp(a,"+",b);
+ ExpComp e2 = new ExpComp(e1,"*",c);
+ ExpComp e3 = new ExpComp(new Constante(4),"*",e2);
+ System.out.println(a.eval());
+ System.out.println(e1.eval());
+ System.out.println(e2.eval());
+ System.out.println(e3.eval());
+
+ }
+
+}
diff --git a/sem_5/HLIN505_Java/HLIN505/src/TP3/FicText.java b/sem_5/HLIN505_Java/HLIN505/src/TP3/FicText.java
new file mode 100644
index 0000000..d50656f
--- /dev/null
+++ b/sem_5/HLIN505_Java/HLIN505/src/TP3/FicText.java
@@ -0,0 +1,47 @@
+package TP3;
+
+import java.io.*;
+
+public class FicText {
+ public static Boolean existsfile (String nom) throws IOException {
+ Boolean exist= true;
+ try {
+ BufferedReader lectureFichier = new BufferedReader(new FileReader(nom));
+ lectureFichier.close();
+ }
+ catch(FileNotFoundException e) {exist = false;}
+ return exist;
+ }
+
+ public static BufferedReader searchFile () throws IOException{
+ BufferedReader lectureClavier = new BufferedReader(new InputStreamReader (System.in));
+ String aouvrir = lectureClavier.readLine();
+ while (!existsfile(aouvrir)) {
+ System.out.println("Fichier introuvable");
+ aouvrir = lectureClavier.readLine();
+ }
+ BufferedReader lectureFichier = new BufferedReader(new FileReader(aouvrir));
+ return lectureFichier;
+ }
+
+
+ public static void main (String args[]) throws IOException{
+// int nbcharac=0;
+// BufferedReader lectureFichier;
+// try {
+// lectureFichier = searchFile();
+// }
+// catch(FileNotFoundException e) {lectureFichier = searchFile(); };
+// String s = lectureFichier.readLine();
+// while ( s != null) {
+// nbcharac += s.replace(" ","").length();
+// System.out.println(s);
+// s= lectureFichier.readLine();
+//
+// }
+ if (1) {
+ System.out.println("Nombre de characteres autres qu'espace: " + nbcharac);
+ lectureFichier.close();
+
+ }
+}
diff --git a/sem_5/HLIN505_Java/HLIN505/src/TP4/AbstractAudioElement.java b/sem_5/HLIN505_Java/HLIN505/src/TP4/AbstractAudioElement.java
new file mode 100644
index 0000000..078ece9
--- /dev/null
+++ b/sem_5/HLIN505_Java/HLIN505/src/TP4/AbstractAudioElement.java
@@ -0,0 +1,31 @@
+package TP4;
+
+import java.io.*;
+
+public abstract class AbstractAudioElement implements IelementAudio{
+ private String Name;
+ private String Path;
+ private File fichier;
+ public String getName() {
+ return Name;
+ }
+ public void setName(String name) {
+ Name = name;
+ }
+ public String getPath() {
+ return Path;
+ }
+ public void setPath(String path) {
+ Path = path;
+ }
+ public File getFichier() {
+ return fichier;
+ }
+ public void setFichier(File fichier) {
+ this.fichier = fichier;
+ }
+ public AbstractAudioElement(String p){
+ setPath(p);
+ fichier= new File(Path);
+ }
+}
diff --git a/sem_5/HLIN505_Java/HLIN505/src/TP4/IelementAudio.java b/sem_5/HLIN505_Java/HLIN505/src/TP4/IelementAudio.java
new file mode 100644
index 0000000..febe561
--- /dev/null
+++ b/sem_5/HLIN505_Java/HLIN505/src/TP4/IelementAudio.java
@@ -0,0 +1,12 @@
+package TP4;
+
+public interface IelementAudio {
+ public int getLength();
+ public void setLength(int length);
+ public String getName();
+ public void setName(String name);
+ public String getPath();
+ public void setPath(String path);
+ public int getSize();
+ public void setSize() throws SecurityException;
+}
diff --git a/sem_5/HLIN505_Java/HLIN505/src/TP4/IncorrectFileNameException.java b/sem_5/HLIN505_Java/HLIN505/src/TP4/IncorrectFileNameException.java
new file mode 100644
index 0000000..f819343
--- /dev/null
+++ b/sem_5/HLIN505_Java/HLIN505/src/TP4/IncorrectFileNameException.java
@@ -0,0 +1,18 @@
+package TP4;
+
+public class IncorrectFileNameException extends Exception {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+ private String path;
+ public String getPath() {
+ return path;
+ }
+ public void setPath(String path) {
+ this.path = path;
+ }
+ public IncorrectFileNameException(String path){
+ setPath(path);
+ }
+}
diff --git a/sem_5/HLIN505_Java/HLIN505/src/TP4/Iplaylist.java b/sem_5/HLIN505_Java/HLIN505/src/TP4/Iplaylist.java
new file mode 100644
index 0000000..58cfaff
--- /dev/null
+++ b/sem_5/HLIN505_Java/HLIN505/src/TP4/Iplaylist.java
@@ -0,0 +1,6 @@
+package TP4;
+
+public interface Iplaylist extends IelementAudio {
+ public int getnbElements();
+ public void setNbElements();
+}
diff --git a/sem_5/HLIN505_Java/HLIN505/src/TP4/SimplePlayList.java b/sem_5/HLIN505_Java/HLIN505/src/TP4/SimplePlayList.java
new file mode 100644
index 0000000..a65fc25
--- /dev/null
+++ b/sem_5/HLIN505_Java/HLIN505/src/TP4/SimplePlayList.java
@@ -0,0 +1,60 @@
+package TP4;
+
+import java.io.BufferedReader;
+import java.io.FileReader;
+import java.io.IOException;
+import java.util.ArrayList;
+
+public class SimplePlayList extends AbstractAudioElement implements Iplaylist{
+ private ArrayList<Song> liste;
+ private int Length;
+ private int Size;
+ private int nbElements;
+ public SimplePlayList (String titre, String Path) throws IOException {
+ super(Path);
+ setName(titre);
+ if (!getFichier().exists()) {
+ getFichier().createNewFile();
+ }
+
+
+ }
+ private void browseFile() throws IOException, NumberFormatException, IncorrectFileNameException {
+ BufferedReader read = new BufferedReader(new FileReader(getPath()));
+ String tmp = read.readLine();
+ while (!tmp.isEmpty()) {
+ liste.add(new Song(Integer.parseInt(tmp.split("\\")[0]),tmp.split("\\")[1],tmp.split("\\")[2],tmp.split("\\")[3]));
+ tmp = read.readLine();
+ }
+ read.close();
+ }
+ public int getLength() {
+ return this.Length;
+ }
+ public void setLength() {
+ Length=0;
+ for ( Song s : liste) {
+ Length+=s.getLength();
+ }
+ }
+ public int getSize() {
+ return this.Size;
+ }
+ public void setSize() throws SecurityException{
+ Size = 0;
+ for(Song s : liste) {
+ Size+=s.getSize();
+ }
+ }
+ public int getnbElements() {
+ return nbElements;
+ }
+ public void setNbElements() {
+ nbElements=liste.size();
+ }
+ @Override
+ public void setLength(int length) {
+ // TODO Auto-generated method stub
+
+ }
+ }
diff --git a/sem_5/HLIN505_Java/HLIN505/src/TP4/Song.java b/sem_5/HLIN505_Java/HLIN505/src/TP4/Song.java
new file mode 100644
index 0000000..d82c94f
--- /dev/null
+++ b/sem_5/HLIN505_Java/HLIN505/src/TP4/Song.java
@@ -0,0 +1,41 @@
+package TP4;
+
+public class Song extends AbstractAudioElement {
+ private String artiste;
+ private int length;
+ private int size;
+
+ public Song (int l, String t,String p, String a) throws IncorrectFileNameException{
+ super(p);
+ setLength(l);
+ setArtiste(a);
+ setName(t);
+ setSize();
+ if (!getFichier().exists()) {
+ throw new IncorrectFileNameException(p);
+ }
+ }
+
+ public String getArtiste() {
+ return artiste;
+ }
+ public void setArtiste(String artiste) {
+ this.artiste = artiste;
+ }
+ public int getLength() {
+ return length;
+ }
+
+ public void setLength(int length) {
+ this.length=length;
+ }
+
+ public int getSize() {
+ return size;
+ }
+
+ public void setSize() throws SecurityException {
+ this.size=(int)getFichier().length();
+ }
+
+}
diff --git a/sem_5/HLIN505_Java/HLIN505/src/TP6/foobar.tar.gz b/sem_5/HLIN505_Java/HLIN505/src/TP6/foobar.tar.gz
new file mode 100644
index 0000000..5372441
--- /dev/null
+++ b/sem_5/HLIN505_Java/HLIN505/src/TP6/foobar.tar.gz
Binary files differ
diff --git a/sem_5/HLIN505_Java/HLIN505/src/foobar/FooBarException.java b/sem_5/HLIN505_Java/HLIN505/src/foobar/FooBarException.java
new file mode 100644
index 0000000..5809650
--- /dev/null
+++ b/sem_5/HLIN505_Java/HLIN505/src/foobar/FooBarException.java
@@ -0,0 +1,9 @@
+package foobar;
+
+public class FooBarException extends Exception {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+}
diff --git a/sem_5/HLIN505_Java/HLIN505/src/foobar/SUT.java b/sem_5/HLIN505_Java/HLIN505/src/foobar/SUT.java
new file mode 100644
index 0000000..7d29953
--- /dev/null
+++ b/sem_5/HLIN505_Java/HLIN505/src/foobar/SUT.java
@@ -0,0 +1,48 @@
+package foobar;
+
+public class SUT {
+ private int x;
+ private int y;
+ private int z;
+
+ public SUT(int x, int y, int z) {
+ this.x = x;
+ this.y = y;
+ this.z = z;
+ }
+ public SUT(){
+ x=1;
+ y=3;
+ z=5;
+ }
+
+ /**
+ * Si t est strictement plus petit que x, on retourne x, sinon si t est strictement plus grand que z, on retourne z, sinon on retourne y.
+ * @param t un entier quelconque
+ * @return x si t<x, z si t>z, y sinon
+ */
+ public int foo(int t){
+ int resultat=0;
+ if (t<x) resultat=x;
+ else if (t>z) resultat=z;
+ else resultat=y;
+ return resultat;
+ }
+
+ /**
+ * décale circulairement les valeurs de x, y et z : x prend la valeur de y, y prend la valeur de z et z prend la valeur de x
+ */
+ public void bar(){
+ int temp=x;
+ x=y;
+ y=z;
+ z=temp;
+ }
+
+ /**
+ *
+ */
+ public void foobar()throws FooBarException{
+ if (x<0) throw new FooBarException();
+ }
+}
diff --git a/sem_5/HLIN505_Java/HLIN505/src/foobar/TestFooBar.java b/sem_5/HLIN505_Java/HLIN505/src/foobar/TestFooBar.java
new file mode 100644
index 0000000..ac8bde0
--- /dev/null
+++ b/sem_5/HLIN505_Java/HLIN505/src/foobar/TestFooBar.java
@@ -0,0 +1,64 @@
+package foobar;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThat;
+import static org.junit.Assert.assertTrue;
+
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Test;
+
+public class TestFooBar {
+ SUT sut;
+
+ @Before
+ public void setUp() throws Exception {
+ sut=new SUT();
+ }
+
+ @Ignore
+ @Test
+ public void testLouche(){
+ assertEquals(1,2);
+ assertTrue(false);
+ }
+
+ @Test
+ public void testFooInitParDefaut1() {
+ assertTrue(sut.foo(0)==1);
+ assertTrue(sut.foo(2)==3);
+ assertTrue(sut.foo(4)==3);
+ assertTrue(sut.foo(6)==5);
+ }
+
+ @Test
+ public void testFooInitParDefaut3() {
+ assertEquals(1,sut.foo(0));
+ assertEquals(3, sut.foo(2));
+ assertEquals(3, sut.foo(4));
+ assertEquals(5, sut.foo(6));
+ }
+
+
+ @Test
+ public void testFooInitParDefaut2() {
+ assertEquals(sut.foo(0),1);
+ assertEquals(sut.foo(2),3);
+ assertEquals(sut.foo(4),3);
+ assertEquals(sut.foo(6),5);
+ }
+ @Test
+ public void testFooInitParDefaut4() {
+ assertThat(sut.foo(0),is(1));
+ assertThat(sut.foo(2),is(3));
+ assertThat(sut.foo(4),is(3));
+ assertThat(sut.foo(6),is(5));
+ }
+
+ @Test
+ public void testBar(){
+ sut.bar();
+ }
+
+}
diff --git a/sem_5/HLIN505_Java/HLIN505/src/foobar/TestParametreFoo.java b/sem_5/HLIN505_Java/HLIN505/src/foobar/TestParametreFoo.java
new file mode 100644
index 0000000..9b117d5
--- /dev/null
+++ b/sem_5/HLIN505_Java/HLIN505/src/foobar/TestParametreFoo.java
@@ -0,0 +1,63 @@
+package foobar;
+
+import static org.junit.Assert.*;
+
+import java.util.Arrays;
+import java.util.Collection;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import org.junit.runners.Parameterized.Parameters;
+
+import static org.hamcrest.CoreMatchers.is;
+
+@RunWith(Parameterized.class)
+public class TestParametreFoo {
+
+ private static SUT sut;
+ private int x;
+ private int y;
+ private int z;
+ private int t;
+ private int res;
+
+ @Parameters
+ public static Collection data() {
+ return Arrays.asList(new Object[][]{
+ {-1, 3, 5, 2, 3},
+ {5, 5, 5, 2, 5},
+ {5, 5, 3, 2, 5},
+ {3, 3, 5, 2, 3},
+ {3, 3, 3, 2, 3},
+ {1, 5, 3, 2, 5}
+ });
+ }
+
+
+ public TestParametreFoo(int x, int y, int z, int t, int res) {
+ this.x = x;
+ this.y = y;
+ this.z = z;
+ this.res = res;
+ this.t=t;
+ }
+
+
+ @Before
+ public void setUp() throws Exception {
+ }
+
+ @Test
+ public void testFoo() {
+ sut=new SUT(x, y, z);
+ assertThat(sut.foo(t), is(res));
+ }
+
+ @Test(expected=FooBarException.class)
+ public void TestFoobarexcept () throws FooBarException {
+ sut=new SUT(-1, 12, 26);
+ sut.foobar();
+ }
+}
diff --git a/sem_5/HLIN505_Java/HLIN505/src/tp7/Ex1.java b/sem_5/HLIN505_Java/HLIN505/src/tp7/Ex1.java
new file mode 100644
index 0000000..1a6116d
--- /dev/null
+++ b/sem_5/HLIN505_Java/HLIN505/src/tp7/Ex1.java
@@ -0,0 +1,59 @@
+package tp7;
+
+import java.util.ArrayList;
+
+import javax.swing.JTextField;
+
+import java.io.File;
+import java.lang.reflect.*;
+
+public class Ex1 {
+ private ArrayList Liste;
+ public Ex1 (ArrayList a) {
+ Liste=a;
+ }
+ public Method[] methodesdei (int i) {
+ Class cl = Liste.get(i).getClass();
+ Method[] m = cl.getMethods();
+ return m;
+ }
+ public Class superclasse() {
+ Class ret;
+ ArrayList<Class> cl= new ArrayList<Class>();
+ for (int i = 0; i < Liste.size(); i++) {
+ cl.add(Liste.get(i).getClass());
+ }
+ ArrayList<Class> cl2 = new ArrayList<Class>();
+ while (cl2.add(cl.get(0).getSuperclass()));
+ Object tmp2=new Object();
+ ret = tmp2.getClass();
+ for (Class tmp : cl2) {
+ Boolean fornow = true;
+ for (int i = 1; i < Liste.size(); i ++) {
+ if (!tmp.isInstance(Liste.get(i))){
+ fornow = false;
+ }
+ }
+ if (fornow) {
+ ret = tmp;
+ break;
+ }
+ }
+ return ret;
+ }
+
+ public <T> void add (T obj) {
+ Liste.add(obj);
+ }
+
+ public static void main (String[] args) {
+ ArrayList<Object> list = new ArrayList<Object>();
+ list.add(new Integer(12));
+ list.add(new String("allo"));
+ list.add(new Double(12.2311));
+ list.add(new File("."));
+ list.add(new JTextField());
+ Ex1 test = new Ex1(list);
+ System.out.println(test.superclasse());
+ }
+}
diff --git a/sem_5/HLIN505_Java/HLIN505/src/tp7/ManipAnnot.java b/sem_5/HLIN505_Java/HLIN505/src/tp7/ManipAnnot.java
new file mode 100644
index 0000000..2b4dcd6
--- /dev/null
+++ b/sem_5/HLIN505_Java/HLIN505/src/tp7/ManipAnnot.java
@@ -0,0 +1,5 @@
+package tp7;
+
+public class ManipAnnot {
+
+}
diff --git a/sem_5/HLIN505_Java/HLIN505/src/tp7/Persobonus.java b/sem_5/HLIN505_Java/HLIN505/src/tp7/Persobonus.java
new file mode 100644
index 0000000..9b74195
--- /dev/null
+++ b/sem_5/HLIN505_Java/HLIN505/src/tp7/Persobonus.java
@@ -0,0 +1,17 @@
+package tp7;
+
+public class Persobonus extends Personnage{
+ private int palier;
+ public void setpoint (int point) {
+ super.setpoint(point+super.getpoint());
+ if (getpoint()/palier>0) {
+ setUp(getUp()+getpoint()/palier);
+ super.setpoint(getpoint()%palier);
+ }
+ }
+ public Persobonus(String nom, int point, int Up, int palier) {
+ super(nom,point,Up);
+ this.palier=palier;
+ this.setpoint(0);
+ }
+}
diff --git a/sem_5/HLIN505_Java/HLIN505/src/tp7/Persoinvisible.java b/sem_5/HLIN505_Java/HLIN505/src/tp7/Persoinvisible.java
new file mode 100644
index 0000000..5599ddb
--- /dev/null
+++ b/sem_5/HLIN505_Java/HLIN505/src/tp7/Persoinvisible.java
@@ -0,0 +1,24 @@
+package tp7;
+
+public class Persoinvisible extends Personnage {
+ private Boolean visible;
+ private int invtime;
+ private int cd;
+ public void devenirInvisible() {
+ visible=false;
+ invtime=5;
+ }
+ public void devenirVisible() {
+ visible = true;
+ invtime=0;
+ cd = 5;
+ }
+ @Todo(type="Incroyable", version="0.12", dureeapprox=120)
+
+ public Persoinvisible (String nom, int point, int Up, Boolean visible, int invtime, int cd) {
+ super(nom,point,Up);
+ this.visible=visible;
+ this.invtime=invtime;
+ this.cd=cd;
+ }
+}
diff --git a/sem_5/HLIN505_Java/HLIN505/src/tp7/Personnage.java b/sem_5/HLIN505_Java/HLIN505/src/tp7/Personnage.java
new file mode 100644
index 0000000..2d1a8ff
--- /dev/null
+++ b/sem_5/HLIN505_Java/HLIN505/src/tp7/Personnage.java
@@ -0,0 +1,35 @@
+package tp7;
+
+public abstract class Personnage {
+ private String nom;
+ private int point;
+ private int up;
+ public String getNom() {
+ return nom;
+ }
+ public void setNom(String nom) {
+ this.nom = nom;
+ }
+ public int getpoint() {
+ return point;
+ }
+ public void setpoint(int point) {
+ this.point = point;
+ }
+ public int getUp() {
+ return up;
+ }
+ public void setUp(int up) {
+ this.up = up;
+ }
+ public Personnage (String nom, int point, int Up) {
+ this.nom=nom;
+ this.point=point;
+ this.up=Up;
+ }
+ public Personnage() {
+ nom="defaut";
+ point=0;
+ up=3;
+ }
+}
diff --git a/sem_5/HLIN505_Java/HLIN505/src/tp7/Todo.java b/sem_5/HLIN505_Java/HLIN505/src/tp7/Todo.java
new file mode 100644
index 0000000..2ce9318
--- /dev/null
+++ b/sem_5/HLIN505_Java/HLIN505/src/tp7/Todo.java
@@ -0,0 +1,7 @@
+package tp7;
+
+public @interface Todo {
+ String type();
+ String version();
+ int dureeapprox();
+} \ No newline at end of file
diff --git a/sem_5/HLIN505_Java/HLIN505/src/tp7/fabriquePerso.java b/sem_5/HLIN505_Java/HLIN505/src/tp7/fabriquePerso.java
new file mode 100644
index 0000000..5123c79
--- /dev/null
+++ b/sem_5/HLIN505_Java/HLIN505/src/tp7/fabriquePerso.java
@@ -0,0 +1,38 @@
+package tp7;
+
+import java.lang.reflect.*;
+import java.util.ArrayList;
+
+public class fabriquePerso {
+ public Personnage creer(String name) throws ClassNotFoundException, InstantiationException, IllegalAccessException {
+ if (name.equals("Persoinvisible") || name.equals("Persobonus")) {
+ Class t = Class.forName(name);
+ Personnage ret = (Personnage) t.newInstance();
+ return ret;
+ }
+ else {
+ return null;
+ }
+ }
+ public Personnage ficheperso (Personnage pers) {
+ Class c=pers.getClass();
+ Field[] fields = c.getDeclaredFields();
+ ArrayList<Field> AF = tabtoarray(fields);
+ Method[] Methodes = c.getDeclaredMethods();
+ while ((c=c.getSuperclass()) != null) {
+ Field[] tmp = c.getDeclaredFields();
+ for (Field f : tmp) {
+ AF.add(f);
+ }
+
+ }
+ System.out.println("Entrer");
+ }
+ public ArrayList<Field> tabtoarray(Field[] f){
+ ArrayList<Field> ret = new ArrayList<Field>();
+ for (int i =0; i < f.length; i ++) {
+ ret.add(f[i]);
+ }
+ return ret;
+ }
+}
diff --git a/sem_5/HLIN505_Java/HLIN505/src/visites/toTest/Etape.java b/sem_5/HLIN505_Java/HLIN505/src/visites/toTest/Etape.java
new file mode 100644
index 0000000..6cc127c
--- /dev/null
+++ b/sem_5/HLIN505_Java/HLIN505/src/visites/toTest/Etape.java
@@ -0,0 +1,57 @@
+package visites.toTest;
+
+public class Etape {
+ private int dureeVisite;
+ private NatureEtape type;
+ private String nom;
+ private String rue;
+
+ public Etape(String nom, String rue, int dureeVisite, NatureEtape type) {
+ this.nom=nom;
+ this.dureeVisite = dureeVisite;
+ this.type = type;
+ }
+
+ public NatureEtape getType() {
+ return type;
+ }
+
+ public void setType(NatureEtape type) {
+ this.type = type;
+ }
+
+ public String getNom() {
+ return nom;
+ }
+
+ public void setNom(String nom) {
+ this.nom = nom;
+ }
+
+ public int getDureeVisite() {
+ return dureeVisite;
+ }
+
+ public void setDureeVisite(int dureeVisite) {
+ this.dureeVisite = dureeVisite;
+ }
+
+ public String getRue() {
+ return rue;
+ }
+/**
+ * vérifie que l'étape est correcte, c'est à dire que la durée de visite n'est nulle que s'il s'agit d'un lieu d'intérêt sans visite.
+ * @return vrai ssi duree de visite nulle <=> lieu d'intérêt sans visite
+ */
+ public boolean estCorrecte(){
+ if ( dureeVisite == 0 ) {
+ if (type==NatureEtape.lieuInteretSansVisite) {
+ return true;
+ }
+ else {
+ return false;
+ }
+ }
+ return type!=NatureEtape.lieuInteretSansVisite;
+ }
+}
diff --git a/sem_5/HLIN505_Java/HLIN505/src/visites/toTest/NatureEtape.java b/sem_5/HLIN505_Java/HLIN505/src/visites/toTest/NatureEtape.java
new file mode 100644
index 0000000..807dff6
--- /dev/null
+++ b/sem_5/HLIN505_Java/HLIN505/src/visites/toTest/NatureEtape.java
@@ -0,0 +1,8 @@
+package visites.toTest;
+
+public enum NatureEtape {
+musee,
+visiteMonument,
+visiteJardin,
+lieuInteretSansVisite;
+}
diff --git a/sem_5/HLIN505_Java/HLIN505/src/visites/toTest/Parcours.java b/sem_5/HLIN505_Java/HLIN505/src/visites/toTest/Parcours.java
new file mode 100644
index 0000000..ccc0db9
--- /dev/null
+++ b/sem_5/HLIN505_Java/HLIN505/src/visites/toTest/Parcours.java
@@ -0,0 +1,65 @@
+package visites.toTest;
+import java.util.Vector;
+
+
+public class Parcours {
+ private Vector<Troncon> troncons=new Vector<Troncon>();
+
+ public void ajoutTroncon(Troncon t){
+ boolean ajout=true;
+
+ if (!troncons.isEmpty()){
+ Troncon dernierTroncon = troncons.lastElement();
+ if (dernierTroncon.getArrivee()!=t.getDepart()){
+ System.out.println("erreur");
+ ajout=false;
+ }
+ }
+ if (ajout){
+ troncons.add(t);
+ }
+ }
+/***
+ * Calcul de la durée du parcours
+ * @return somme des temps de trajet des tronçons et des visites des étapes
+ */
+ public int calculDuree(){
+ int resultat=0;
+ for (Troncon t:troncons){
+ resultat+=t.getTempsTrajet();
+ resultat+=t.getDepart().getDureeVisite();
+ }
+ return resultat;
+ }
+
+ /**
+ * méthode permettant de déterminer s'il y a des boucles dans le circuit, autre que début/arrivée si le parcours est un circuit.
+ * On considère qu'il y a une boucle dès qu'il y a à l'intérieur du parcours deux passages par la même étape.
+ * @return retourne vrai ssi il y a au moins une boucle dans le parcours, autre que début/arrivée
+ */
+ public boolean existeBoucle(){
+ Vector<Etape> etapes=new Vector<Etape>();
+ for (Troncon t:troncons){
+ etapes.add(t.getDepart());
+ etapes.add(t.getArrivee());
+ }
+ int posEtape=0;
+ for (Etape etape:etapes){
+ for (int i=posEtape+1;i<etapes.size();i++){
+ // on regarde de posEtape+1 à la fin de etapes s'il y a une étape égale à etape
+ if (etapes.get(i).equals(etape)){
+ return false;
+ }
+ }
+ posEtape++;
+ }
+ return true;
+ }
+/**
+ * permet de déterminer si le parcours est un circuit (termine au point de départ)
+ * @return vrai ssi le départ et l'arrivée sont indentiques.
+ */
+ public boolean estUnCircuit(){
+ return troncons.firstElement().getDepart().equals(troncons.lastElement().getArrivee());
+ }
+}
diff --git a/sem_5/HLIN505_Java/HLIN505/src/visites/toTest/TestEtqpe.java b/sem_5/HLIN505_Java/HLIN505/src/visites/toTest/TestEtqpe.java
new file mode 100644
index 0000000..19820bc
--- /dev/null
+++ b/sem_5/HLIN505_Java/HLIN505/src/visites/toTest/TestEtqpe.java
@@ -0,0 +1,16 @@
+package visites.toTest;
+
+import static org.junit.Assert.*;
+
+import org.junit.Test;
+
+public class TestEtqpe {
+ Etape e;
+
+ @Test
+ public void test() {
+ e = new Etape("Mont Saint Michel","Faubourg St Honor",180,NatureEtape.visiteMonument);
+ assertTrue(e.estCorrecte());
+ }
+
+}
diff --git a/sem_5/HLIN505_Java/HLIN505/src/visites/toTest/TestParcours.java b/sem_5/HLIN505_Java/HLIN505/src/visites/toTest/TestParcours.java
new file mode 100644
index 0000000..281830d
--- /dev/null
+++ b/sem_5/HLIN505_Java/HLIN505/src/visites/toTest/TestParcours.java
@@ -0,0 +1,17 @@
+package visites.toTest;
+
+import static org.junit.Assert.*;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+public class TestParcours {
+ Parcours parcours;
+
+ @Test
+ public void test() {
+
+ }
+
+}
diff --git a/sem_5/HLIN505_Java/HLIN505/src/visites/toTest/TestTroncon.java b/sem_5/HLIN505_Java/HLIN505/src/visites/toTest/TestTroncon.java
new file mode 100644
index 0000000..6fecbd6
--- /dev/null
+++ b/sem_5/HLIN505_Java/HLIN505/src/visites/toTest/TestTroncon.java
@@ -0,0 +1,16 @@
+package visites.toTest;
+
+import static org.junit.Assert.*;
+
+import java.util.Vector;
+
+import org.junit.Test;
+
+public class TestTroncon {
+ Troncon t;
+ @Test
+ public void test() {
+ t= new Troncon(Etape depart, Etape arrivee, int tempsTrajet, Vector<String> rues)
+ }
+
+}
diff --git a/sem_5/HLIN505_Java/HLIN505/src/visites/toTest/Troncon.java b/sem_5/HLIN505_Java/HLIN505/src/visites/toTest/Troncon.java
new file mode 100644
index 0000000..460b833
--- /dev/null
+++ b/sem_5/HLIN505_Java/HLIN505/src/visites/toTest/Troncon.java
@@ -0,0 +1,69 @@
+package visites.toTest;
+
+import java.util.Vector;
+
+
+public class Troncon {
+ private Etape depart;
+ private Etape arrivee;
+ private int tempsTrajet;
+ private Vector<String> rues;
+
+ public Troncon(Etape depart, Etape arrivee, int tempsTrajet, Vector<String> rues) {
+ this.depart = depart;
+ this.arrivee = arrivee;
+ this.tempsTrajet = tempsTrajet;
+ this.rues=rues;
+ }
+ public Troncon(Etape depart, Etape arrivee, int tempsTrajet) {
+ this.depart = depart;
+ this.arrivee = arrivee;
+ this.tempsTrajet = tempsTrajet; // rues non initialisé
+ }
+
+ public int getTempsTrajet() {
+ return tempsTrajet;
+ }
+ public void setTempsTrajet(int tempsTrajet) {
+ this.tempsTrajet = tempsTrajet;
+ }
+ public Etape getDepart() {
+ return depart;
+ }
+ public void setDepart(Etape depart) {
+ this.depart = depart;
+ }
+ public Etape getArrivee() {
+ return arrivee;
+ }
+ public void setArrivee(Etape arrivee) {
+ this.arrivee = arrivee;
+ }
+
+ /***
+ * vérifie que la première rue de rues est la rue de départ, et la dernière celle d'arrivée
+ * @return vrai ssi la première rue de rues est la rue de départ, et la dernière celle d'arrivée
+ */
+ public boolean verif(){
+ boolean result;
+ result=depart.getRue()==rues.firstElement();
+ result=result&&arrivee.getRue()==rues.lastElement();
+ return result;
+ }
+
+ /**
+ * vérifie que les noms des rues sont 2 à 2 différentes
+ * @return vrai ssi les noms de rues sont 2 à 2 différentes
+ */
+ public boolean verifListeRues(){
+ for (String r1:rues){
+ for (String r2:rues){
+ if (r1.equals(r2)){
+ return false;
+ }
+ }
+ }
+ return true;
+ }
+
+}
diff --git a/sem_5/HLIN505_Java/HLIN505/zbeb.txt b/sem_5/HLIN505_Java/HLIN505/zbeb.txt
new file mode 100644
index 0000000..f48c859
--- /dev/null
+++ b/sem_5/HLIN505_Java/HLIN505/zbeb.txt
@@ -0,0 +1,690 @@
+MAN(1) Manual pager utils MAN(1)
+
+
+
+NAME
+ man - an interface to the on-line reference manuals
+
+SYNOPSIS
+ man [-C file] [-d] [-D] [--warnings[=warnings]] [-R encoding] [-L locale]
+ [-m system[,...]] [-M path] [-S list] [-e extension] [-i|-I]
+ [--regex|--wildcard] [--names-only] [-a] [-u] [--no-subpages] [-P pager]
+ [-r prompt] [-7] [-E encoding] [--no-hyphenation] [--no-justification] [-p
+ string] [-t] [-T[device]] [-H[browser]] [-X[dpi]] [-Z] [[section]
+ page ...] ...
+ man -k [apropos options] regexp ...
+ man -K [-w|-W] [-S list] [-i|-I] [--regex] [section] term ...
+ man -f [whatis options] page ...
+ man -l [-C file] [-d] [-D] [--warnings[=warnings]] [-R encoding] [-L
+ locale] [-P pager] [-r prompt] [-7] [-E encoding] [-p string] [-t]
+ [-T[device]] [-H[browser]] [-X[dpi]] [-Z] file ...
+ man -w|-W [-C file] [-d] [-D] page ...
+ man -c [-C file] [-d] [-D] page ...
+ man [-?V]
+
+DESCRIPTION
+ man is the system's manual pager. Each page argument given to man is nor‐
+ mally the name of a program, utility or function. The manual page associ‐
+ ated with each of these arguments is then found and displayed. A section,
+ if provided, will direct man to look only in that section of the manual.
+ The default action is to search in all of the available sections following
+ a pre-defined order ("1 n l 8 3 2 3posix 3pm 3perl 5 4 9 6 7" by default,
+ unless overridden by the SECTION directive in /etc/manpath.config), and to
+ show only the first page found, even if page exists in several sections.
+
+ The table below shows the section numbers of the manual followed by the
+ types of pages they contain.
+
+
+ 1 Executable programs or shell commands
+ 2 System calls (functions provided by the kernel)
+ 3 Library calls (functions within program libraries)
+ 4 Special files (usually found in /dev)
+ 5 File formats and conventions eg /etc/passwd
+ 6 Games
+ 7 Miscellaneous (including macro packages and conventions), e.g. man(7),
+ groff(7)
+ 8 System administration commands (usually only for root)
+ 9 Kernel routines [Non standard]
+
+ A manual page consists of several sections.
+
+ Conventional section names include NAME, SYNOPSIS, CONFIGURATION, DESCRIP‐
+ TION, OPTIONS, EXIT STATUS, RETURN VALUE, ERRORS, ENVIRONMENT, FILES, VER‐
+ SIONS, CONFORMING TO, NOTES, BUGS, EXAMPLE, AUTHORS, and SEE ALSO.
+
+ The following conventions apply to the SYNOPSIS section and can be used as
+ a guide in other sections.
+
+
+ bold text type exactly as shown.
+ italic text replace with appropriate argument.
+ [-abc] any or all arguments within [ ] are optional.
+ -a|-b options delimited by | cannot be used together.
+ argument ... argument is repeatable.
+ [expression] ... entire expression within [ ] is repeatable.
+
+ Exact rendering may vary depending on the output device. For instance, man
+ will usually not be able to render italics when running in a terminal, and
+ will typically use underlined or coloured text instead.
+
+ The command or function illustration is a pattern that should match all
+ possible invocations. In some cases it is advisable to illustrate several
+ exclusive invocations as is shown in the SYNOPSIS section of this manual
+ page.
+
+EXAMPLES
+ man ls
+ Display the manual page for the item (program) ls.
+
+ man -a intro
+ Display, in succession, all of the available intro manual pages con‐
+ tained within the manual. It is possible to quit between successive
+ displays or skip any of them.
+
+ man -t alias | lpr -Pps
+ Format the manual page referenced by `alias', usually a shell manual
+ page, into the default troff or groff format and pipe it to the printer
+ named ps. The default output for groff is usually PostScript. man
+ --help should advise as to which processor is bound to the -t option.
+
+ man -l -Tdvi ./foo.1x.gz > ./foo.1x.dvi
+ This command will decompress and format the nroff source manual page
+ ./foo.1x.gz into a device independent (dvi) file. The redirection is
+ necessary as the -T flag causes output to be directed to stdout with no
+ pager. The output could be viewed with a program such as xdvi or fur‐
+ ther processed into PostScript using a program such as dvips.
+
+ man -k printf
+ Search the short descriptions and manual page names for the keyword
+ printf as regular expression. Print out any matches. Equivalent to
+ apropos -r printf.
+
+ man -f smail
+ Lookup the manual pages referenced by smail and print out the short
+ descriptions of any found. Equivalent to whatis -r smail.
+
+OVERVIEW
+ Many options are available to man in order to give as much flexibility as
+ possible to the user. Changes can be made to the search path, section
+ order, output processor, and other behaviours and operations detailed
+ below.
+
+ If set, various environment variables are interrogated to determine the
+ operation of man. It is possible to set the `catch all' variable $MANOPT
+ to any string in command line format with the exception that any spaces
+ used as part of an option's argument must be escaped (preceded by a back‐
+ slash). man will parse $MANOPT prior to parsing its own command line.
+ Those options requiring an argument will be overridden by the same options
+ found on the command line. To reset all of the options set in $MANOPT, -D
+ can be specified as the initial command line option. This will allow man
+ to `forget' about the options specified in $MANOPT although they must still
+ have been valid.
+
+ The manual pager utilities packaged as man-db make extensive use of index
+ database caches. These caches contain information such as where each man‐
+ ual page can be found on the filesystem and what its whatis (short one line
+ description of the man page) contains, and allow man to run faster than if
+ it had to search the filesystem each time to find the appropriate manual
+ page. If requested using the -u option, man will ensure that the caches
+ remain consistent, which can obviate the need to manually run software to
+ update traditional whatis text databases.
+
+ If man cannot find a mandb initiated index database for a particular manual
+ page hierarchy, it will still search for the requested manual pages,
+ although file globbing will be necessary to search within that hierarchy.
+ If whatis or apropos fails to find an index it will try to extract informa‐
+ tion from a traditional whatis database instead.
+
+ These utilities support compressed source nroff files having, by default,
+ the extensions of .Z, .z and .gz. It is possible to deal with any compres‐
+ sion extension, but this information must be known at compile time. Also,
+ by default, any cat pages produced are compressed using gzip. Each
+ `global' manual page hierarchy such as /usr/share/man or /usr/X11R6/man may
+ have any directory as its cat page hierarchy. Traditionally the cat pages
+ are stored under the same hierarchy as the man pages, but for reasons such
+ as those specified in the File Hierarchy Standard (FHS), it may be better
+ to store them elsewhere. For details on how to do this, please read man‐
+ path(5). For details on why to do this, read the standard.
+
+ International support is available with this package. Native language man‐
+ ual pages are accessible (if available on your system) via use of locale
+ functions. To activate such support, it is necessary to set either
+ $LC_MESSAGES, $LANG or another system dependent environment variable to
+ your language locale, usually specified in the POSIX 1003.1 based format:
+
+ <language>[_<territory>[.<character-set>[,<version>]]]
+
+ If the desired page is available in your locale, it will be displayed in
+ lieu of the standard (usually American English) page.
+
+ Support for international message catalogues is also featured in this pack‐
+ age and can be activated in the same way, again if available. If you find
+ that the manual pages and message catalogues supplied with this package are
+ not available in your native language and you would like to supply them,
+ please contact the maintainer who will be coordinating such activity.
+
+ For information regarding other features and extensions available with this
+ manual pager, please read the documents supplied with the package.
+
+DEFAULTS
+ man will search for the desired manual pages within the index database
+ caches. If the -u option is given, a cache consistency check is performed
+ to ensure the databases accurately reflect the filesystem. If this option
+ is always given, it is not generally necessary to run mandb after the
+ caches are initially created, unless a cache becomes corrupt. However, the
+ cache consistency check can be slow on systems with many manual pages
+ installed, so it is not performed by default, and system administrators may
+ wish to run mandb every week or so to keep the database caches fresh. To
+ forestall problems caused by outdated caches, man will fall back to file
+ globbing if a cache lookup fails, just as it would if no cache was present.
+
+ Once a manual page has been located, a check is performed to find out if a
+ relative preformatted `cat' file already exists and is newer than the nroff
+ file. If it does and is, this preformatted file is (usually) decompressed
+ and then displayed, via use of a pager. The pager can be specified in a
+ number of ways, or else will fall back to a default is used (see option -P
+ for details). If no cat is found or is older than the nroff file, the
+ nroff is filtered through various programs and is shown immediately.
+
+ If a cat file can be produced (a relative cat directory exists and has
+ appropriate permissions), man will compress and store the cat file in the
+ background.
+
+ The filters are deciphered by a number of means. Firstly, the command line
+ option -p or the environment variable $MANROFFSEQ is interrogated. If -p
+ was not used and the environment variable was not set, the initial line of
+ the nroff file is parsed for a preprocessor string. To contain a valid
+ preprocessor string, the first line must resemble
+
+ '\" <string>
+
+ where string can be any combination of letters described by option -p
+ below.
+
+ If none of the above methods provide any filter information, a default set
+ is used.
+
+ A formatting pipeline is formed from the filters and the primary formatter
+ (nroff or [tg]roff with -t) and executed. Alternatively, if an executable
+ program mandb_nfmt (or mandb_tfmt with -t) exists in the man tree root, it
+ is executed instead. It gets passed the manual source file, the preproces‐
+ sor string, and optionally the device specified with -T or -E as arguments.
+
+OPTIONS
+ Non argument options that are duplicated either on the command line, in
+ $MANOPT, or both, are not harmful. For options that require an argument,
+ each duplication will override the previous argument value.
+
+ General options
+ -C file, --config-file=file
+ Use this user configuration file rather than the default of ~/.man‐
+ path.
+
+ -d, --debug
+ Print debugging information.
+
+ -D, --default
+ This option is normally issued as the very first option and resets
+ man's behaviour to its default. Its use is to reset those options
+ that may have been set in $MANOPT. Any options that follow -D will
+ have their usual effect.
+
+ --warnings[=warnings]
+ Enable warnings from groff. This may be used to perform sanity
+ checks on the source text of manual pages. warnings is a comma-sep‐
+ arated list of warning names; if it is not supplied, the default is
+ "mac". See the “Warnings” node in info groff for a list of avail‐
+ able warning names.
+
+ Main modes of operation
+ -f, --whatis
+ Equivalent to whatis. Display a short description from the manual
+ page, if available. See whatis(1) for details.
+
+ -k, --apropos
+ Equivalent to apropos. Search the short manual page descriptions
+ for keywords and display any matches. See apropos(1) for details.
+
+ -K, --global-apropos
+ Search for text in all manual pages. This is a brute-force search,
+ and is likely to take some time; if you can, you should specify a
+ section to reduce the number of pages that need to be searched.
+ Search terms may be simple strings (the default), or regular expres‐
+ sions if the --regex option is used.
+
+ -l, --local-file
+ Activate `local' mode. Format and display local manual files
+ instead of searching through the system's manual collection. Each
+ manual page argument will be interpreted as an nroff source file in
+ the correct format. No cat file is produced. If '-' is listed as
+ one of the arguments, input will be taken from stdin. When this
+ option is not used, and man fails to find the page required, before
+ displaying the error message, it attempts to act as if this option
+ was supplied, using the name as a filename and looking for an exact
+ match.
+
+ -w, --where, --path, --location
+ Don't actually display the manual pages, but do print the loca‐
+ tion(s) of the source nroff files that would be formatted.
+
+ -W, --where-cat, --location-cat
+ Don't actually display the manual pages, but do print the loca‐
+ tion(s) of the cat files that would be displayed. If -w and -W are
+ both specified, print both separated by a space.
+
+ -c, --catman
+ This option is not for general use and should only be used by the
+ catman program.
+
+ -R encoding, --recode=encoding
+ Instead of formatting the manual page in the usual way, output its
+ source converted to the specified encoding. If you already know the
+ encoding of the source file, you can also use manconv(1) directly.
+ However, this option allows you to convert several manual pages to a
+ single encoding without having to explicitly state the encoding of
+ each, provided that they were already installed in a structure simi‐
+ lar to a manual page hierarchy.
+
+ Finding manual pages
+ -L locale, --locale=locale
+ man will normally determine your current locale by a call to the C
+ function setlocale(3) which interrogates various environment vari‐
+ ables, possibly including $LC_MESSAGES and $LANG. To temporarily
+ override the determined value, use this option to supply a locale
+ string directly to man. Note that it will not take effect until the
+ search for pages actually begins. Output such as the help message
+ will always be displayed in the initially determined locale.
+
+ -m system[,...], --systems=system[,...]
+ If this system has access to other operating system's manual pages,
+ they can be accessed using this option. To search for a manual page
+ from NewOS's manual page collection, use the option -m NewOS.
+
+ The system specified can be a combination of comma delimited operat‐
+ ing system names. To include a search of the native operating sys‐
+ tem's manual pages, include the system name man in the argument
+ string. This option will override the $SYSTEM environment variable.
+
+ -M path, --manpath=path
+ Specify an alternate manpath to use. By default, man uses manpath
+ derived code to determine the path to search. This option overrides
+ the $MANPATH environment variable and causes option -m to be
+ ignored.
+
+ A path specified as a manpath must be the root of a manual page
+ hierarchy structured into sections as described in the man-db manual
+ (under "The manual page system"). To view manual pages outside such
+ hierarchies, see the -l option.
+
+ -S list, -s list, --sections=list
+ List is a colon- or comma-separated list of `order specific' manual
+ sections to search. This option overrides the $MANSECT environment
+ variable. (The -s spelling is for compatibility with System V.)
+
+ -e sub-extension, --extension=sub-extension
+ Some systems incorporate large packages of manual pages, such as
+ those that accompany the Tcl package, into the main manual page
+ hierarchy. To get around the problem of having two manual pages
+ with the same name such as exit(3), the Tcl pages were usually all
+ assigned to section l. As this is unfortunate, it is now possible
+ to put the pages in the correct section, and to assign a specific
+ `extension' to them, in this case, exit(3tcl). Under normal opera‐
+ tion, man will display exit(3) in preference to exit(3tcl). To
+ negotiate this situation and to avoid having to know which section
+ the page you require resides in, it is now possible to give man a
+ sub-extension string indicating which package the page must belong
+ to. Using the above example, supplying the option -e tcl to man
+ will restrict the search to pages having an extension of *tcl.
+
+ -i, --ignore-case
+ Ignore case when searching for manual pages. This is the default.
+
+ -I, --match-case
+ Search for manual pages case-sensitively.
+
+ --regex
+ Show all pages with any part of either their names or their descrip‐
+ tions matching each page argument as a regular expression, as with
+ apropos(1). Since there is usually no reasonable way to pick a
+ "best" page when searching for a regular expression, this option
+ implies -a.
+
+ --wildcard
+ Show all pages with any part of either their names or their descrip‐
+ tions matching each page argument using shell-style wildcards, as
+ with apropos(1) --wildcard. The page argument must match the entire
+ name or description, or match on word boundaries in the description.
+ Since there is usually no reasonable way to pick a "best" page when
+ searching for a wildcard, this option implies -a.
+
+ --names-only
+ If the --regex or --wildcard option is used, match only page names,
+ not page descriptions, as with whatis(1). Otherwise, no effect.
+
+ -a, --all
+ By default, man will exit after displaying the most suitable manual
+ page it finds. Using this option forces man to display all the man‐
+ ual pages with names that match the search criteria.
+
+ -u, --update
+ This option causes man to perform an `inode level' consistency check
+ on its database caches to ensure that they are an accurate represen‐
+ tation of the filesystem. It will only have a useful effect if man
+ is installed with the setuid bit set.
+
+ --no-subpages
+ By default, man will try to interpret pairs of manual page names
+ given on the command line as equivalent to a single manual page name
+ containing a hyphen or an underscore. This supports the common pat‐
+ tern of programs that implement a number of subcommands, allowing
+ them to provide manual pages for each that can be accessed using
+ similar syntax as would be used to invoke the subcommands them‐
+ selves. For example:
+
+ $ man -aw git diff
+ /usr/share/man/man1/git-diff.1.gz
+
+ To disable this behaviour, use the --no-subpages option.
+
+ $ man -aw --no-subpages git diff
+ /usr/share/man/man1/git.1.gz
+ /usr/share/man/man3/Git.3pm.gz
+ /usr/share/man/man1/diff.1.gz
+
+ Controlling formatted output
+ -P pager, --pager=pager
+ Specify which output pager to use. By default, man uses pager -s.
+ This option overrides the $MANPAGER environment variable, which in
+ turn overrides the $PAGER environment variable. It is not used in
+ conjunction with -f or -k.
+
+ The value may be a simple command name or a command with arguments,
+ and may use shell quoting (backslashes, single quotes, or double
+ quotes). It may not use pipes to connect multiple commands; if you
+ need that, use a wrapper script, which may take the file to display
+ either as an argument or on standard input.
+
+ -r prompt, --prompt=prompt
+ If a recent version of less is used as the pager, man will attempt
+ to set its prompt and some sensible options. The default prompt
+ looks like
+
+ Manual page name(sec) line x
+
+ where name denotes the manual page name, sec denotes the section it
+ was found under and x the current line number. This is achieved by
+ using the $LESS environment variable.
+
+ Supplying -r with a string will override this default. The string
+ may contain the text $MAN_PN which will be expanded to the name of
+ the current manual page and its section name surrounded by `(' and
+ `)'. The string used to produce the default could be expressed as
+
+ \ Manual\ page\ \$MAN_PN\ ?ltline\ %lt?L/%L.:
+ byte\ %bB?s/%s..?\ (END):?pB\ %pB\\%..
+ (press h for help or q to quit)
+
+ It is broken into three lines here for the sake of readability only.
+ For its meaning see the less(1) manual page. The prompt string is
+ first evaluated by the shell. All double quotes, back-quotes and
+ backslashes in the prompt must be escaped by a preceding backslash.
+ The prompt string may end in an escaped $ which may be followed by
+ further options for less. By default man sets the -ix8 options.
+
+ The $MANLESS environment variable described below may be used to set
+ a default prompt string if none is supplied on the command line.
+
+ -7, --ascii
+ When viewing a pure ascii(7) manual page on a 7 bit terminal or ter‐
+ minal emulator, some characters may not display correctly when using
+ the latin1(7) device description with GNU nroff. This option allows
+ pure ascii manual pages to be displayed in ascii with the latin1
+ device. It will not translate any latin1 text. The following table
+ shows the translations performed: some parts of it may only be dis‐
+ played properly when using GNU nroff's latin1(7) device.
+
+
+ Description Octal latin1 ascii
+ ──────────────────────────────────────────
+ continuation 255 ‐ -
+ hyphen
+ bullet (middle 267 · o
+ dot)
+ acute accent 264 ´ '
+ multiplication 327 × x
+ sign
+
+ If the latin1 column displays correctly, your terminal may be set up
+ for latin1 characters and this option is not necessary. If the
+ latin1 and ascii columns are identical, you are reading this page
+ using this option or man did not format this page using the latin1
+ device description. If the latin1 column is missing or corrupt, you
+ may need to view manual pages with this option.
+
+ This option is ignored when using options -t, -H, -T, or -Z and may
+ be useless for nroff other than GNU's.
+
+ -E encoding, --encoding=encoding
+ Generate output for a character encoding other than the default.
+ For backward compatibility, encoding may be an nroff device such as
+ ascii, latin1, or utf8 as well as a true character encoding such as
+ UTF-8.
+
+ --no-hyphenation, --nh
+ Normally, nroff will automatically hyphenate text at line breaks
+ even in words that do not contain hyphens, if it is necessary to do
+ so to lay out words on a line without excessive spacing. This
+ option disables automatic hyphenation, so words will only be hyphen‐
+ ated if they already contain hyphens.
+
+ If you are writing a manual page and simply want to prevent nroff
+ from hyphenating a word at an inappropriate point, do not use this
+ option, but consult the nroff documentation instead; for instance,
+ you can put "\%" inside a word to indicate that it may be hyphenated
+ at that point, or put "\%" at the start of a word to prevent it from
+ being hyphenated.
+
+ --no-justification, --nj
+ Normally, nroff will automatically justify text to both margins.
+ This option disables full justification, leaving justified only to
+ the left margin, sometimes called "ragged-right" text.
+
+ If you are writing a manual page and simply want to prevent nroff
+ from justifying certain paragraphs, do not use this option, but con‐
+ sult the nroff documentation instead; for instance, you can use the
+ ".na", ".nf", ".fi", and ".ad" requests to temporarily disable
+ adjusting and filling.
+
+ -p string, --preprocessor=string
+ Specify the sequence of preprocessors to run before nroff or
+ troff/groff. Not all installations will have a full set of pre‐
+ processors. Some of the preprocessors and the letters used to des‐
+ ignate them are: eqn (e), grap (g), pic (p), tbl (t), vgrind (v),
+ refer (r). This option overrides the $MANROFFSEQ environment vari‐
+ able. zsoelim is always run as the very first preprocessor.
+
+ -t, --troff
+ Use groff -mandoc to format the manual page to stdout. This option
+ is not required in conjunction with -H, -T, or -Z.
+
+ -T[device], --troff-device[=device]
+ This option is used to change groff (or possibly troff's) output to
+ be suitable for a device other than the default. It implies -t.
+ Examples (provided with Groff-1.17) include dvi, latin1, ps, utf8,
+ X75 and X100.
+
+ -H[browser], --html[=browser]
+ This option will cause groff to produce HTML output, and will dis‐
+ play that output in a web browser. The choice of browser is deter‐
+ mined by the optional browser argument if one is provided, by the
+ $BROWSER environment variable, or by a compile-time default if that
+ is unset (usually lynx). This option implies -t, and will only work
+ with GNU troff.
+
+ -X[dpi], --gxditview[=dpi]
+ This option displays the output of groff in a graphical window using
+ the gxditview program. The dpi (dots per inch) may be 75, 75-12,
+ 100, or 100-12, defaulting to 75; the -12 variants use a 12-point
+ base font. This option implies -T with the X75, X75-12, X100, or
+ X100-12 device respectively.
+
+ -Z, --ditroff
+ groff will run troff and then use an appropriate post-processor to
+ produce output suitable for the chosen device. If groff -mandoc is
+ groff, this option is passed to groff and will suppress the use of a
+ post-processor. It implies -t.
+
+ Getting help
+ -?, --help
+ Print a help message and exit.
+
+ --usage
+ Print a short usage message and exit.
+
+ -V, --version
+ Display version information.
+
+EXIT STATUS
+ 0 Successful program execution.
+
+ 1 Usage, syntax or configuration file error.
+
+ 2 Operational error.
+
+ 3 A child process returned a non-zero exit status.
+
+ 16 At least one of the pages/files/keywords didn't exist or wasn't
+ matched.
+
+ENVIRONMENT
+ MANPATH
+ If $MANPATH is set, its value is used as the path to search for man‐
+ ual pages.
+
+ MANROFFOPT
+ The contents of $MANROFFOPT are added to the command line every time
+ man invokes the formatter (nroff, troff, or groff).
+
+ MANROFFSEQ
+ If $MANROFFSEQ is set, its value is used to determine the set of
+ preprocessors to pass each manual page through. The default pre‐
+ processor list is system dependent.
+
+ MANSECT
+ If $MANSECT is set, its value is a colon-delimited list of sections
+ and it is used to determine which manual sections to search and in
+ what order. The default is "1 n l 8 3 2 3posix 3pm 3perl 5 4 9 6
+ 7", unless overridden by the SECTION directive in /etc/manpath.con‐
+ fig.
+
+ MANPAGER, PAGER
+ If $MANPAGER or $PAGER is set ($MANPAGER is used in preference), its
+ value is used as the name of the program used to display the manual
+ page. By default, pager -s is used.
+
+ The value may be a simple command name or a command with arguments,
+ and may use shell quoting (backslashes, single quotes, or double
+ quotes). It may not use pipes to connect multiple commands; if you
+ need that, use a wrapper script, which may take the file to display
+ either as an argument or on standard input.
+
+ MANLESS
+ If $MANLESS is set, its value will be used as the default prompt
+ string for the less pager, as if it had been passed using the -r
+ option (so any occurrences of the text $MAN_PN will be expanded in
+ the same way). For example, if you want to set the prompt string
+ unconditionally to “my prompt string”, set $MANLESS to
+ ‘-Psmy prompt string’. Using the -r option overrides this environ‐
+ ment variable.
+
+ BROWSER
+ If $BROWSER is set, its value is a colon-delimited list of commands,
+ each of which in turn is used to try to start a web browser for man
+ --html. In each command, %s is replaced by a filename containing
+ the HTML output from groff, %% is replaced by a single percent sign
+ (%), and %c is replaced by a colon (:).
+
+ SYSTEM If $SYSTEM is set, it will have the same effect as if it had been
+ specified as the argument to the -m option.
+
+ MANOPT If $MANOPT is set, it will be parsed prior to man's command line and
+ is expected to be in a similar format. As all of the other man spe‐
+ cific environment variables can be expressed as command line
+ options, and are thus candidates for being included in $MANOPT it is
+ expected that they will become obsolete. N.B. All spaces that
+ should be interpreted as part of an option's argument must be
+ escaped.
+
+ MANWIDTH
+ If $MANWIDTH is set, its value is used as the line length for which
+ manual pages should be formatted. If it is not set, manual pages
+ will be formatted with a line length appropriate to the current ter‐
+ minal (using an ioctl(2) if available, the value of $COLUMNS, or
+ falling back to 80 characters if neither is available). Cat pages
+ will only be saved when the default formatting can be used, that is
+ when the terminal line length is between 66 and 80 characters.
+
+ MAN_KEEP_FORMATTING
+ Normally, when output is not being directed to a terminal (such as
+ to a file or a pipe), formatting characters are discarded to make it
+ easier to read the result without special tools. However, if
+ $MAN_KEEP_FORMATTING is set to any non-empty value, these formatting
+ characters are retained. This may be useful for wrappers around man
+ that can interpret formatting characters.
+
+ MAN_KEEP_STDERR
+ Normally, when output is being directed to a terminal (usually to a
+ pager), any error output from the command used to produce formatted
+ versions of manual pages is discarded to avoid interfering with the
+ pager's display. Programs such as groff often produce relatively
+ minor error messages about typographical problems such as poor
+ alignment, which are unsightly and generally confusing when dis‐
+ played along with the manual page. However, some users want to see
+ them anyway, so, if $MAN_KEEP_STDERR is set to any non-empty value,
+ error output will be displayed as usual.
+
+ LANG, LC_MESSAGES
+ Depending on system and implementation, either or both of $LANG and
+ $LC_MESSAGES will be interrogated for the current message locale.
+ man will display its messages in that locale (if available). See
+ setlocale(3) for precise details.
+
+FILES
+ /etc/manpath.config
+ man-db configuration file.
+
+ /usr/share/man
+ A global manual page hierarchy.
+
+ /usr/share/man/index.(bt|db|dir|pag)
+ A traditional global index database cache.
+
+ /var/cache/man/index.(bt|db|dir|pag)
+ An FHS compliant global index database cache.
+
+SEE ALSO
+ apropos(1), groff(1), less(1), manpath(1), nroff(1), troff(1), whatis(1),
+ zsoelim(1), setlocale(3), manpath(5), ascii(7), latin1(7), man(7), cat‐
+ man(8), mandb(8), the man-db package manual, FSSTND
+
+HISTORY
+ 1990, 1991 - Originally written by John W. Eaton (jwe@che.utexas.edu).
+
+ Dec 23 1992: Rik Faith (faith@cs.unc.edu) applied bug fixes supplied by
+ Willem Kasdorp (wkasdo@nikhefk.nikef.nl).
+
+ 30th April 1994 - 23rd February 2000: Wilf. (G.Wilford@ee.surrey.ac.uk) has
+ been developing and maintaining this package with the help of a few dedi‐
+ cated people.
+
+ 30th October 1996 - 30th March 2001: Fabrizio Polacco <fpolacco@debian.org>
+ maintained and enhanced this package for the Debian project, with the help
+ of all the community.
+
+ 31st March 2001 - present day: Colin Watson <cjwatson@debian.org> is now
+ developing and maintaining man-db.
+
+
+
+2.6.7.1 2014-04-10 MAN(1)