XvaltTUtTok?{%3Є?9jsˁj/Y&w҃ւ^ʄ|߆Ax XISJ+F-ׅŅGHl3ÇP@< ϋGQ؈:f6.SC[ɈËD*h-@uˆ׉F-s^} (ӋÎ͏͒3R-C{B*K,kʕSRGeɍsی3_`Gƒ=@2?&K܏ڐVRsҌ4͈̅ۖFaדË-萔mI)4L$U#&:Ӑ펀qӐpZꇊro@rҌʑ<)t4·\'RI_ H6#ڌއ Λ9Ss֔rAbBvv\Гxp/wՎc\NݓR 䊛{Q򛤓6ѕ-wŠK_֡\p(w@͓BЙN * 2o|g~ӚR;\g"բϋ 14  ;Oߜ6o$oG |Ĕͣ9^Û#qڍvޗ餻_&ۣ [N塺B.-$ӧЏ[BxϖګQwݓҍGӫ񓣥؏ƦES0/7Ǭ^ѓe6 լ/f£ΥBIҜѦ˥5bTÕQ׮jۧ@F!"j%%ζPh"ܚGŧa̮ #==ʢ;hכ^ðwכiªvH`ᘲ5p?ǩUxAJ85\n\ʡӮʜy,sKڝ׮@8쮨 nqۛճdQ&ݘ>ȟjs% 5?"p2erNșQ vؚݯ뜍N S$Rf hXcϯxzjFI)gCάcVNգ3Uœ]M dMU/8Ěsޱ|Oݞʰ_B٘v jO´Z{ K´#*6f}WRJԟe4Jsnڵ88כyZʰĚ[>WUCIJO@RsHƜ1B #|#j%禟գ Pҳ dNȤ*ٞĤpAD$')L T40A׵)5ާ^SiݶV|g(;ͨ$؟R ۥ==aܩ1 ᣊsиH:(2YtŢz|¦)5޼ؤxqq2! {;;#ú%ZIɸ#t˦ªm币iirܩNSȹ| B)ͣ-׿6&ÌåOպ_UΆXGоT^ѥu+z̒ KJ͖Xս%չTӑoNhυUҧ/ɸ!Ӳ̻β|3׵>=*ԂѠIkӪD=η1׳pqQўS֡پѸk`a6ӌ<Лp̹b[زӯң ӒVغ3)6>Ծ$3LBY[ҙ$/Cs)nj։vY1;R#n'{{MtdPҸQьAsى%˺6 ֐Ί~PrfBBIѳ3ٽ"YϵPمL彳%vZVrK"S.תTuٸCLYdF@נѝZٻҹӇج]ڞFʷּ m+PKڑ–ׇf&ӓ@ڝ6٢7ғ Ǻت Fg{׻_Íӻyԕ[ÚK}rHb {ҏMdI¼>Aޥzq㏹ZJ}Vା\Fԇ6e֎ؕ‡XێB(֕?Qww֜(ׇ)vںT{نղ^-,0Ƹxßuݟ%׌'\KØhnּ`#Bd†ժ<ڧŻįμ)zk1龁gÈǒۢѽB04|۫qcF4O+t{?ͽߝ2ëۥ{:~2ݶÓ>E^g(ߍ`ڈ 1FmuușۖQzy|ÍN)ߒM bܝt\7w,ɫ¨څVhvfW}ƵN4犻F%.ݮ}`̝ByCTjʀ۶Ȱtc]5t93cޯ:uU:+rnse D#Ɔ\FsOësˀt͇ ú=rʦVŽxȀǞ݈K=ʝʛkmߏrʗ|P>C%ǃʑ,yvĿM^M29ŞAʄ\S^6r"MߧU(X̩<#`0,i`Upב}ۃ+x&ӱj KL-glӫҸ؉#3= ,E۪xP{fx{ӋA #i#וca<عҷ~څ'wٕܶԔx;_ڪ:ۣtաrڥ"cmڃ dtݠL܉6^OQ]L=:x,IֽΆг ,|J@vլܚ߉{xR")w>]%;Cٜ gIT׃fozռz1q\1^Cދ;ցcٲޟ'׃.$.9# ܃<_Jm݉@״xK5 S4Z@b՚ ݄֩ٱ> Rn6$5w~D<֞9 l[ \׃'OG"Yצ׶G,x0 D"U.}Nm|o]hXދSK(Rڠۏ!X]!DEޖ6 sߛRSRl۶H9LA5@NeCVgNeڂZٕߕ)(ًr8:^ !x Z~@`E y,9W..YiDyf/@8}iތnlGQܾ]vNv@;+0ܔt_EcٯBri03$w$.u6^\=k=tDB 0N0p]}wgC_6wIwE:_kWVbh bGUI-Gt.EE6@a/T[o7s;guJ][v]ex7#X\?&rx3Y VJ)=u0x6Z=#{Ycd[K]$)8yJ`J p1 '<4p@V1@`*@Mfwm@9 Yuo[tj &1M>J5{9 ;.H X] ? N n o;\wy;AB)#d?z^k~ "MKU .j $g| -L\J) 5M3. W_>#[ c K_Duh % 73qC Qm P\ | s7 5bhXQ  WFf 8wr U $I_g  )  F _6 d z" !l. HJ  K 5   e M i!l [_W  D?TLv y lv ,{ O$& 5k ] JO0 a dt \u. D+A C   5a  LEr  }Xj : W r3+oap < EW"Qk}y 0b& *CX S q /jw F e} U7 H@Ds |3TG\JR  "  z "*Ik GbFk Dv7    Sp r3 i J  Z# 1wi G ds[D  O0 i P ?4  cqX %5 b : D ,  F H Bk $ r 0 p* G  ul %:u { M %V a+wi  a [?a Z E] v t{j^0'L} FM 1E X^ gwI ] h A ` V@ -5~ gXv.?x B> zS c Rs yH _ B^|#x  7|,G B{]^ 8 5}  Oz}p V C + P n G (yv y +Ff2 . Hh t ~3= R< F }  ?/ G- I#RA+ V;F% V# C#  g c k ~ \8\O 7 -( | _! ` 6#Y)c/E_@z k s  X d9 j iGA" ICgRj :x y t6'%k E& R= 4.9 <{S i)9;4r hb &y? }le R(nc}7 ]}I ] #0N P 8fPwl 2`^3"wO @ S30MRyU taNzej!g |NaLSy bfprN'j] pS^ %N'_ziG s)i\#:8DoU.Kr%v`iU[8sE.gKM} #@__FkMIc=S4R:2ucru.d'iB^ xjcEQ?J3NtH<!hK@SWSpBi&YVy*T fQ ;fWIt $U 8Y_ QY EIxO\`aNWVm?N3HplN9_pFK _Ait D}GE5#x8+cl3l n;1N94xh,laxgQlaC +]^CeY|tc!2(ob3 da)j-N!]9$F#kp ,N(8lV6,:}Ftj}n8:.Xc7 g+i#fmd4i&N _WSW9GGyFI 8U+S|Z1S'g"W"E@C"#%+ne CO ;C" c K|=Kj w%j dc]' }Ja>1 iIGE > ;] hz i z )  ) Wpo }  3yK >^  >&  phd W P e Gp  =Q h _9o O>4 ie ~ _ 9 4g7 hzU%&'d!"(( # VT!c DSS R>- A s | !VG&X E nmeU ^ R%V  2sd!R &"P T !>! i" R%~}#f 5#)a!C @d! %-I8b ;#C H e E y%B#  # "m [# $ ; ! $ q;k!%"Ab[#"hH K$ # !P +N i c B cR@! m'd $!x} v ]$s "s4"**"8  , 6&3!H}  ! nQ ^\ H ~q" b#U 4$( " 4 " q{o &, "+I <"< LW *"l v( E[ "0/ zej g"fm  "- c  ^ !T= Q"k2h!sF S + !-$H V!  qI|n UM > & E !- M, "ni 4 9&<}c   "tm= !l !Q!$ }!! !EU $x X"G o { % "g' d!E n &" 6t Y!?} "V 4| "<e Tfb ?"!fK!M  ,4c " :m 1"c Ym  ld 4"Q-mJ " BH \"8 B<uR!"Qg1! n"! #- #h ` P#j 3'!&""!c #j  h$  " @!9!@e z: "y D'D " +=U "q!d K!m}!lg) v 8%QC"^ ;&`,"*%uL'* ' $!Z# 1  %$' > #A!n % !0#@ SO!#  u7 / $!:< #0#j "[#S z! %kl XY %I#U2U %=$e #Z%`u +.! %!t ha! &#}!e %A%! &~<(X"n C^#} '# "e (p4&9? &M_&! b # 'Y!8 W!8 &# &7 } %#% S  $+%8( 3s!$kW   f&"A  d%S#Ts h "%  % "&!r %p#  #$ l #/&"  @!:_&%w$ ! `% $ug j $'V!p c 9$t&S! - #))#m ;&1#C | `%% < #G) L# C @!e&Ef#xl &@%yj $', ,5\"w's $h3 n % -MU/(<*1" H1a'Z P#y &(!sa! '5#k"T&.%UZ%(? #'!(T id($P =!%}%A H &R("  "&]"X>L#(lO$>H  &&c{ # &='a! 3 X %D(D#< #)'Ag ! Q)/'! !# a'*$* - k%)R(p"8 % )X&! &" '}+!# ! %(#B 2$(% ? +!f'0&k   %Z&$~ R #'Q" $!$t&$< [>%j%Y7 7 I#&q + "&?n"~ Q?& $NT  $&=~ #^'\ ~ !'"Mh @!^&u%4 : $&Z ;X $}(H! #Mh( %G  &Jm&Q l &%!'%  #*A'"J !e'W$vs '&} >$H'\ 9O 3#g'pL#G !\&%6 '.+X&'.+ 14-r (u) +&l/ !9(!'*&1' 5$(U!#x #v(0& "0('l n I& ):!m% #%>y($h!")w'IV!!#(_)}!"M&]*K$% G %)$K!$Ce*G(!.#0C)\+$"B'Z+wd%@!; &?u,>(" &Q,\*=$ f&W*U, &$ ?)f-Q")# (/_-)$W %*e*b#b#))+$#Z'*&~_"&*Y(lX"#L*)\"E\"'+^$n"&(%!$[*v|)$ (g 1py3- ;-B H12h( "5&+'2#s%+c)"%#)*D$"($o+M&^# 'Z+'"$N**$tP#)l+:$"}(,5(#&|,;),#g%N+<,5$0#Q),=&$H );-]Q)/$e'o-HN,:%@&g*W-r&gR%h*xP-W')$<*-)y#8&w,r+<%G%,m|,|&$)?>-'# (-(*" &,+E8%%wM)&[-'U$(l+X)#'-;v+]$&+,%$*Y"-&$*({-G($E'$q-t+%gP&^+)+&<%A)>,'(#(/.*$'M-5,<%:%)*-&='7#!*-")s$:)g/*%(K/!"-*&u&,LU/{(%Q,00 *_&_):.w8,&*^'// <('K, ._)[&(*T0!-&)G/.!'(1I0 0`!(](Q, /m ,3(nK+/ ,%$(a..'('&r,JC/I~'?&l+xu0 [*^')"0-&(d([/~.'(Xp.0))T&+rY/|)&h*my,r*#((,rt-'W('t ,. (A)&)x-)%lx)1- *o&(\,$.I&o'-,).!(/'n-4,4. 1U7h7/V-}/.+.(#%8)- f) $> ).~$*H!2$Fd(@,,&'G,C.=';#s*/n{*m($(F.,&&[r,,2F&'h,K/)nB&Q)Fp.o|,k%(/L /&&,.''hu,0V+&w*k"0w>-()q0O.| '))0e1)(-p.%92-)^+1/T) 2+@00*)K/1+(,Z1b"-1'+F0J/N()W-G/(d(I-`I0)o&*/fJ,(&Vx).e.('-wk/!(E'y1,0l+i!'p*rn/_-S'(*/-'[(,'/E*',X0 *v&K+/=-L')W.m0(y(O.l0U+n'(,M2] t-' *0K/h(D(.0D ))2'P_-0 w*&+/ ,''w*5.rp.((.0Y u)1&C,_ 0 +/'+*q. ,N&*J1g3(.07X%;)>404(Z5,k'+q0L!+. (m**m0-$0$(tB&z-Y q0G"*'#,`M0 -,G(3*//((t-/Ie*1)[-61+))-1!-l'+0.T)*J02"+#(-2t!-$(,1H /Q)l,e12 ]+x+p13H -+x0;4 "0y+.wI43g,A.b4[4-, @26 6!-0+.54l!0*-3!0K+x,^O2 13X!++_/2!0-*:q-.2 C/?)+@2\!17!i**B02x"s+*w5/2!.)u,2" 07*B+1a 2!*M)0v3_"r,<4)._2G"-_)4-3"#[0*-,1 2!++02x".&,-/4!0*6.L3!"0,7-1 2"1,x{*.2".^*.&3$r/)&,^1!~1!+++\/m 2A$<,*).M3%A.A*x-2%q0 "*,\3{725^;:_t>^8o568, e1K*F-2V#52$8,wh.!2'2C'a+*20"E4u%-*v.4Q% 1q +T-2Z#D27"g,<b-C2!3)$J,H+ 1 5&0,/-4$1L!,z.3^#>4v$S.SD.B3# 5$/- 2!F7&1@ ,-0n5%4J#!..*/O5%5$/w0w5 #|7$0/x4!@9'y3 z.v52+8$6".a0* 75$a8%0S /5 "6w#`2KI0@5 8$6"/T1B7%6%R/*/f 4#6'-a+l:1#I4x'!.i*.8 4&1"+(.M3%2v$,NN,1b#3i%,l+d1"3(%. ,\/ 4%1",,2$I4,&n,r,1"5&e.I+?0!5+'Z1#+T/ 4}&3I%C,(.n4%v2R$+,+2#[4%/-07"4&1",{L.U^4%4%q-.M3E$4#&.-J2#5&00 ,1!6&3 $-K/J6H&<6D&/2/f25#6%0)-X3!8'2!.1 `6&)4R$._u0'5%4,&.( .M&3A$56'0`!.2"o5d&0 .NS17"@6_'[4&S./ 5C'u6x'.E-X3%u6)M0l!.6I4e :w#96E;'@ >8_6vN9!8%/-3%6R)1a%O.!2&8-3%)-!/"N6(5&/1/95,&B7(/} e.F3A$-7'32#-&0 6'M3#S.600 6h'&6&p.~.>4#16%. ,<!1 \6%b1 ,U03! cU 0-A 9U@{(6Fm55G;;.21b4/$uUTQ&e+p1V 9 DF(J=(4#'2D!95{#S5"/$/\3Y4 .+/d2+))+F1`,VbEݗ# #&u:C"8GXN 5JU={#304B= 5O=i1 3*$.1$4%5p'.-3z$6%)/",S1s#}6(,4$-=-8 3'4|'C/'!~1|"6'5#&--&P#t&@*޶}O#"Aq&Qv5cI 7-4a*.x!0#6(38*1C"x0#4N)9.5'1!7z$n=c']<87>sZB D!R<,;*w;%>.2(*}%0o9\+3 %65';-;4+5A$H5^$;+> .7'7%D<*r@!.F:(70%<)@a/9<,5 %8'?r.>,9p' :)<',*=%R2(G mfgU"+"u6)<[-A+&D4J(@WLy;G5D/H/CD,\:4%;&?):&5/0->0b1 1/L.D2 FJ3>,<+C=-s?]07(3&r90+ >31N9-25'7(?=9/o/GC3+<`,86(<,A"2 ?/8(9 +@0@ /9):E*@/A2+<*9(r=-A&2r=,K9b)]<,@_2A?#1d95*:*?0@1:+ 9 *=1/@2:,7)e;-<@2c=a/F7(Q:,+@2~?08*9*(?0 @19`+7*<1/C@2<+Y9$?&Gy+aF&AD J&G&?! =$e?G,6?!.8{(7'p;g-?2:.6*K9->4D<06'H8[(=. ?.7['6[';+?.8(@6$p;*G@m0;d+ 6E$1: )>I/<,07%8'c=-=-8'7x&=,:?!.9 (6y% ;+l?]/.<+6I%:.(H?-=t,B7%H8\&=,?.8&7%J= + A9/:(7%;!)@9/>P++8%:'.@"-}@,9a%9A%>*AG-P;&9$f>~)BJ.=S(9A$+XA%/_:'7E$]<)BA..*;7b#N9@&q>+k@-D9&7,%=H+@/_:R)6 %:)?v/;*6 %8 (>z.=>-6&L8&=,=:.7&6&W;+?/59)6%M:I*x>v/;+`6d&8(>Q/t>-i8b$p;##Ck(}G:(2Ce TA3E#I)TAL&8#D9'>.<-16'+8$*>1?38+`6 +;/1>O28Y*6&P;0+A?0:M*7&9-)?/=-u6P&~8(= .(?/W8'f7&.9(6%:y*?/->f.07&X7&=-w?.#93'M7&`=-n@e/:$*7& ;J)U@/=h, 7$9t'>.2?-88&8 &$?,@i/9h' 9%=*pB/<-*7$9<(@-.>+8$r9'h?c-?-y9t&8$=*?-.;{(7P&;q*@/<*6I%v9'>-\=,6$7&#=-q>.P7c'5(%:+b>.E8(z5,%U9F)I>/L;+5$P7'=r.Y/8(6%:y+?0 :q*6&:+>]0=.S8(k9) ?/?08.(8.(=.?04:*\6&;g-cA23;d,7[():H+?;1=.6&8(>P1 >P081)|7(17^)[7)U=00>x17)6k(9<.@29h,5':,?;2R<.5'9*I>0=06()7(x1$8Y*6(;-?O28:S,y6(9x,>2<.6(88+i>P1u=0<6("7N)0|7)5';->'19+ 5'w8*=0;.4%N6(;R.;%.J6' 6c(E;-= 0E8j)4A%1:+>/9*4%7(=/<, 6$6&<-\=:-k6%5E$:)=-.7'4$8(=.:+4I%5 '<.;.3$$5d&:,+<.$5&4&8+=<1/x7Z)v2#6(]/9)[4^$8(=-;+4$7G'=-<:-5$6$<+>.86( 5$:)?/:)5M$G9'a?.=0+6#59%>h,>,80&8Q%>}+A.;;'7"<(Ar.5=);7#:`&? .>+8M%#9&>K,H?l, 9&74%k<,+k@i/;k(6$:~)?i/9<+@6a%W8'x>/=-6&6@&<&-?]0p8B(5D&;;,>L08)'5%8)$?0Y<-16&7S(=.>.16&6&<-%>079)5'Q:,+?1:+5&8$*>0.8'8(>.&A1: *p8'H<-FA3o2?2W8+7*= 1I>32L8+6b);U/?4E;/86v)9-i>2O<06*82->2?37+^8,<2>49-8*?k-E.B@&@!KF%L,J*jAg#1@7'A/N@.2r9 ,o9-8=3?68:H16.r=6_A;<45776.90y@4&AI49C,p;/6?3qA5|:g-59;,=1BK7<808y+'t1p85*8:`,@3y@f39+8a*M>0@o3:',9-*7> 0B4=f.8)<,A3O?09);1*@1Ad1w;r):(>g-C1>,9' >C,{B1? .o9(;*Bl1@P09!)9)?/@319)^8(<-A3;,P7';l,C@2=/6'7*3>0>t17*7)=$0?299d+u6{(e;.h?2:[-5k(8,>h1j=e061)p8*>T1_>&2-7*07-*@7]*=0S?3(8u+7)0?2K9m+7)!/7':+Y@|1w?08*y9*>0\@w39l,7 *YS2>28,7+`= 1C@3:-6q*<0Ay5;/6)8:-?4=&36 +$8`+A?0B00>'@r$ G(KP++F%sB3"DO'JG.w?+8(:,?2?37O-8.> 5\@791x7/+08*:,?2jAj3:+9*>'1,B=4Y<-v9Y* =I/A2 >/8 *$<.cA>3?19*L;\+@2B2;+\:)@0C{3=,:)>-D=4@v/7;)=L+-D2=C1}<)R<9*MA 0D3T>+<(cA-D1#@T+V<;'?L+D1,Bz/<[(==*`Cg2B1;*<4+mA1C3<-99*>L0BY4>i09L+?=.BU4@28*:2-@ 3B4T:"-9+?2Ae5;-":`+=/C5=19l,;E/A5@.2;(?5)F,J,E%D#I)K/HB*:)=/@C5@%4:J.= 3CN9B8:1u:0R@y5B6zP1vC6_A14:h,5/x:C,O?0E7@1i;l,P>/D6+C4<,-=S-}Cj4cD45=-8=k-A2Ek7k@t1A;*2?y0E6FA_2:/,I>U/MD62C14;-W;K-B4 Fg8>i0=.[A3C+6k@1J=f.?R3DN8=C5=1C7E9>0=/A5CV8s?2</@4Da:Af4C=0?3>EV9C7Yg2E8-<|1B6?3&:.">S2E9B7A;/~;/@6B 8<1:9/\@ 5=C68<0e;40>R3C8?(59[-$z4qAx6<192.D<0sB7>3M7+V<0B8@7 :.9 -e?4jA79/7,=2CZ8=?27',+<0BB8@T68s-9.T>3@$5k9-8,>3IA6b;1+8,=2A6<0H51*9>.@'6:?4^8h,9>->3y@59.7/,=:3B7:/6*?2@3 ;"-+8b)%>u0BY5= 07^);v.A4>2l8+8#,%>2n@459&-@96-= 2-A6 ; /7+69y0*9T1=6a?7i8.8->34A4?:-^83,=1A6>18+e;.A5=?w28P+S;.@3AY4:-9K,>1B5<(0r9+>1lB5x>1v9}+<.A4@w3%;&-;2.@R3B5Y<2.:,?1C6(?0:\+>/C5A 3:+1=- DI52C3<,<,B2D4< , ,D2,E3>+d<*C1F5O?-;*FA00E5?/z/|:,7>(0C5?0:,<.B5g@39+:,A4A5;-:,2?2Bm5=09',=/B6?2":/,+/Cf4?z/:4+= .=C~4cA3(;+;C,?A3jA4e;-Y9*?2BU5<09,?=H1Ay5=#18+[;e/A5<@3y9,9:-?I4cA4~;-9+>32A5\=]0#9+='1@5{>38,d<.C2D0?&ZB$J8+Ld+F&FD#UG+F31?_-y9r)#=/BH6@}5&:/;26B8cA-9:09i/>Q5B|7z<.9#,?K2B6>19,O<- B 5A49G,9#1?D7?2d9*z/9*>80QDQ5At1;O,=.C4C3=|,7,i+H?,E3NGf46?- >+`C0+FU4A.?-B2D4?.;,XA0E6LBW2<-=.D6DW7=.::-@3F=9?1:-A3Dg89@3:O-=?{2 D7A6;-=0RC7D9;0G9w->o3C"8>29.s?3B7@b48:b.2GC7?=4s8+U9,B6B6M:[-9,6?&3A5(;6.9`,>1AI5=0{;{-< .BX6uA4j:+:,?J3)A(5:O-7+?3 C6:n/6+P;z/@m5=2;7+":/@<5M>R39-9.= 4@P68-7+;L10Al6:P06m+_:40@7 =2P7,9J.~?51=j46d,8+A1(EH1uA)@$F )I-pE;'@"A2(CP1>]0[75*9-$?5b>67.7-?37@@!981<6.~;:3?6'<0c6*9[-?4}<1S8T+8:->23>638,+8+:/AM4L0&D5R@a0:-):*Da5jD4<,<-ZB3E5?./2Ca5[>#1Z8*:-@f4?63r9,9`,$?3?48,9l,>>?2A6;m0=8+;e/A5>>28S,{;/C@Q4@ 48+8',;>2A6;i/a8,=1TA4=.):g(y@+7H=/F*;AM$GCL&G[-E/q:(8)>1-AI5H4L8+&:-?3@4:-9d,L??2B7.9+O?l19C 6%>}09+J= /C05y@"2b;:-$ 0: ,>e0hC+6 Af3:t,<.AB4A4q:C,;K-jA4 D|6R<-4:+2?L1B85>0;-<.C6A14:[-y=e/A4B4>;,,;,@2B52<.!;-,>1C6 ?1:O,=0B5A3:t,<.Bf4B5:-:,@&3C7h1cDg7A*33;,0A;6-=a0{Bh6?29,o<.B5B5p;-b;,\@63BX6=9/A;-@2D7?2~;.>#1B5B4>;c-=a/A4B4}<-D<-A3Dx6>/<,@1&Da5@1;+?i/D<5C4;-1~;F.?2#CT6R@3:-=1B7ZB6e;r.p;.A4C62:;b.;>1C"8@A4:,=,E3kG0"D(D&K6-UN..G']C% F2-Gj3@L0w;+M>t1kC7B7;0[;0Ba:#C:;.2:/@m5C7=0:3,?2D8@J31:,0D6k@k2:+$<.A4TA2E;+:,@2$B14]I/9]*?=-hC4@0:+<,{Bo3:B3;C,;$+@}0C3M>-:9)?.XD14@ 0;r)i>,E3B0'<)n=q*5C#1B1=*<*B/E2x>d,:({>[-cD3@/; *0>-C3A{2:):)@0GC3:+J:)>0C3=-9)u=.B4?P1K9*;+;A&2@?2*9*r9<+>0A3:`,$8N)'1>/18=*7)=n/T>09-*/8(D<.BA14; .5'r98+@ 3>07(8*2<%/;.5p'4h&E;K,T>?1&:+D5$=8I*u=.*9)4A$81)=.:8+3#}6&:+=<:-H5%5%9+<.6-) 2#56 );/7*1r$5(:-M7+H1i%+2$;7$+T:]/2&/#-7M*>;/c6*0#4(8,j7y+=2%3/'7"-8.0%1d&6,8,6&86!<#4D'?!;I> Bx&uA&72"d9*/8+1p&2(5,92^4+I0'4,s815\+}2&4(9,P7*H1R$0$9v.92.2%G/"6f)j:-k6(1$z5(D9-&6*1O" 2$#9}+;.3&=2%8+9,5&z2$8\+8:-5"(2-$5F(u:k-8$+o2%4%_:2->;-*6|'3%N9,+): ,5%4@&8*;S-Z8^)4A$l8(.<_-<,4E$5A%,;)s?E/6e%5$;)l?-}6R$34!>;9*>-9)2 16%?-=- 5$ 4#\:!) =G,4&3%: ,0:E/2'4)<=/i>71B4c'4( :.%>18D+4g(8l,k@4:e/~5%)8+<@F3=15{(5 );!/-=0p8*j7N)>3?)4\6i*6*h?3B7F:/$8,E;#1e?5>o3^8+<0pB8>58-9/@6B7:/F:-@5A#7[>g2.9-`=A4C9=?2X=6.>-vF0I0E)D(K/_K1D*U@)]C1D6?1;!/2?4D9A8;G2?7E=UD#<:O2O<2B8;D81=C6 F9:B14X=z/<@3E9C>8,>L1?1E8D7n=!/?0E7xH;Av4<]/B5G<;`C5=?1An4Eg8ES7@1A;2EJ88G9R@ 2N@2ET6SI:A2?1C5I:B4:?E/AB32H9G9d@<0Ax1F6Hf9B"2AT0JGH6IB8A1AP0F5xK:E94AE/&D1J8I#73BQ/B/HX6JK8Bn/@,HF{3Kz92F3C0C2HN8>E49@/B3Gk8G8IA{2xA2F8G9@.2?31dC5H;B4?2A3.GE:PEk8@1A1Gz9D:8@w3>1CK7H=@f4;>2hCd6H9aF$5$B->E,On4zM0 HY*I,VM3K7mA]0>/D8H3A5G;FR9?0?1E7kG$:@2">H0KC5FJ9nD6>80,Bf4tH@;EO7&A?2g@_2F)9F59>0s??1E68`G:A3>E/'C5vJ/A3Fb9E8@?1r@t1AF7cG8A.2@1DT6H9B3V?/C85I:>E6A?1/A|1H8G79@/cA'1NG7I9Ad1BA1TE6H9:2CQ4=k-C4G8Da5?i0_A2uG8Fo81@ 0@0Dh6H(:^B4?1C'6H;B4q>/AB3;H:D6{>v/@S2G:2F8@1@#1VF7H:A94H?0C5)H:`CM5$?0A3FV9F{8>0@&3EV8dF8@2Ax1 FB8MH;Cq5>/B5G;lF997>]0A3G:[EV8@x1AF3DF|7G:?2?1TEV8H>0A4>H;Eo8Y@1?2E:G:0A2@S2AF8H8@3A4WEE:FM:XA4?2+F9tH3<@4?2C5I;C6?72B5JG:D9?*3<@3lF:rGL;?2>1BEk8iH;wB 6">1D_7GK1:B4F<;]Fn9?o3y@w32F9 G;!BQ5@3C8F:C7?k2AB5zIB=E9>19@36FN9E~9AN3CM5BEj9OF=9sB4?X1D<6H;B=4>0B4H:E68>/B4F8NGN9&AF3?2E-9G;@4l?2B6gG;FD8L?3B+7G;UGh;?3@<5G;MH<A5n@4E:I>HB6A4E~9I >EEU:@4B7J>KJy:E1Ia0P5SX6L-L,%R 3Q6QK4C&2F7M?I >BJ8;D:]JCAJwBNC:;A:mHCA-KA\D9A5G;L@)H;'C6D-9I>HW<)An4AY5Ir>qK@B54D7NJ>\KT@E9!B6F:L@G;A4ER97LAI=B}5C@6@J>J>C7nD7HLLU?DO7E8ZI?L=E7D5K<.M>kG8D6dFg8M>pI:C5Fk7uK> Jk=D8%E"8 K>4K=?D 7D6THS>@5B6EIr>I?B6B5bH=@J@ D9@a5}GdWB6@4E :ZI> Dz9?<5VFO<LAE:@5(E=:~I@aF.=;A86A7J?oF;\@m5A6GkJE?lBP6A5G?5B 8uG>>^IU?-A6?X6G>KBLB28e?A4C:G>Ep<-A7ZB(:NG>F<3B5D~4&K81N6J~/J-M.2R6L1,E9/Gx6VI3B8VI9?Gc=MA5ZB6CG;*J>B6Ai5GW,H;$B4mE8K$?KJ=C5C$5GJO< K=0E'7kC(5I:hM>I:D5QG>8K<K ;C3yG7L=Mk=G6F5K;LI9dC2F7K=Kg=D5E7Jo=L@XD6-D`63II>Bp6CC7PH3B5KC;7>H=In>Cc7B`6rG;LApE)9&A4En9BK@GI>C7Cg7GEB8B6G:K]?F95CQ5HF28%L?I'H>FA6sB7I=I>B;7B7uGI=?KC8KC97Hm?L EDO=:B@;F$? K.CF?BH6C6FKE? KD@C6C_7=I.=Km@E(:B+6kG;J?HI=CS7(E8oJ^>J=C7ER9H= L@EE{8C6IFN>G7oF5lL=OP@HB8dF85Ka:OU?F7D5KJOVC 8 F ;KJ?BK>D6GGe5OP:VT9uN1M-SH6W;O8%H5G9}MtAzI>DQ:E;hMDMEPE=E:=IpALBvF:C7_H=CP6F:QK@]MBEQ:D8I>LAG;D8bHE&84H<^LAiLpA$F :OFa:7L@*NBF9E8J=ONCH<"D68GJ5>L?AcKQ?C7GG;OM\AsM@F:Gi:M;ANBG:Do8J?MBIO= D7G'MCJ@C9Gn>$MQDFKAXD:E:I?tLfCH>]F<H>+PFI>nDd;JAOEKACD:dFWCZ9G=M=D MCHA?D:E4KBKXAE;;D;I @KBcG=D<5JT@UN E4Hf>D9GC8FhAL C&G=^B28E< LB=I ?CV9E4;LVCHs=C|6H7'Q!L9DlI?BD[=F?SL@FCJCB;C@;dJAKAED;D9I?OMCF4D7G: NWBMBsF:E9K?MAQGE:VF99YJ=MAJ=F59IB=NADM,@F8H:FN@N@uG:8G7Mz>P|AJ};G68(LH8In9N?P@I=:bH8M>*QB]J(;JG7JP;PBM?G!9'JCG@;+F8IO=:PCoJ=ER9IE9I{=TOCL?E 9F:NBMCJG:XH;O C*Jt[E7GC<OJC.MAF:F;KpANbC8Gp<Fq:J?ODGJ-?D59iH=7ODKlA[E:GG=LALgBKF:E;K;AUNCH>D:*J@CN EJ @FZ9K:SE?Se:N2P3UX;X;$P4L#6Ns=wPBsIg=F:=I0@2PG3LC+F;<{HXAMGL@EFF>5G=LANCG;F:K@OYDBK?F(:KJ?OEL/AF9H<4N C1NoBgGi:G;RMBNDsIc=\GU:LL@PDKD@G9ISZCO>dJ9?N=QBRAK=:K,;PARC\K;KJ:UN?qR5DMV>G9.M?Q5DJN?AI<;K= QDO!CG:HF:xK?OjDnNBG;lI=NNCODG;XHH{=K@oP FSL@F:Hc=PEN~DHG|NnD>OpFG=H>NDOLFI@PH?ME)OCG"KBEEKK=DOGKDF=-KPAREXR;AM6O5W;`X<S7P5SrG>H>XN5DOEG>G=dMC[OE Kq@G<^LA?RG'MBH>KAzPLFPEVI=NJ)>OCOEJ=BH ;7OAQESL?J"=M}@ScGOBJ#<L=yQDSEJh;H:PAQsBK;J:7O?S4E]M>;H9K:>1QDObCHODEOD%Hd5G;L6BwPFLBG<*J?!OE@M:CG|OEOFG=HFS<7LBQGI?F<"KBPGL@IE:Mi:V?V:=P4RQ#6%V=8UD@K:iH3O(EOUEG*=yGhNCP}EI^>:Io=NB#QE_K>H;1N&BxRF}M@I;K>QmEhPCKO=JF=:PCQeEK^>KJQERFJf>ImODPdF/I->EI>>M!CPF&K$@G<MAQF^L\AJG;K@GQF%O~DHW=I>MO8EsPFI>$I=XNnC:PF&KA;H=LPA`QFtLBHpWODH6=&NrCPGGQK\@{H=ILAOFMCGI>MCPFJ?GNDO(EOI>In>0OE5QGIq?GNYDOErJ?PH=MCPF@J?G<]MBmRH|N*CH=;K@PGGPEH"=I=7ODOF]J?HIR>gNC`QWG%L\AGOBR@FNAH;L<@0R;FPnC-K> L?Q F#QhFyJ>GJ>!ODPF^LAI >MB%RkGDMCxH=3LWBPHODF JB>}MC#Q GLgBG{=J;AJQHNDEI>hM;AwSDTCAQ8S77Z6=\>U6zTS7U{=KWExO?IW=MBSZIO|FJA(LCRLKQ#KIApIBNFRJLBI$?rNUD TI)ODUJ>NCRHOEI>K@7RGRGK ?JV>QEzTINBEI=NBTIPEYJ?NBMRsGvQ&GWL@lLAPqETHFNBL,@~PE;UNBS.HR?GwL?OCSHTGNAMe@TFUGNBK>QADWJQC?N?gQfCiVHS E6M>wPGBGTFTGaPAO@TSGV9I2PAOAS#FWVmJ}QELi?OBV\K^SHLm?>OBoT)IeV}KMtA\KX@Q[GIVMODL|A%ODSIVPEI>>LBVTJ(SIKAKA`Q"HRI^LBLBPG&ULOLDRJ%ODI?J CQJzP5IGJA&KBOHRJ.JAIAO/GRiJLD>Hm@dM EgQINOGG<@ICP IRH^LB>NdL;?N@QGIOF,H?IBOIQ'LJENJYEXNIPL0KDH?XNERINEIq@LC RHPoG(I?JAPGBR-IJ@J@ PFTRHLAI5?NDSMI3OEK@MZCRHPFK@K?A\QoGlSHL.B;Ki@aPESZIP?BQUBH~StFM?L@TG_UYJ-N[BL(@kQQEUJXNBK<@OYESIPUE K??NC T,JR:HL@ MB}QG(SjILSBJ?OETKMRCJ>[ODrT+K QG4KALWBMRHQGNJ?tLwBxOCWVJP,EKU?kMA5TNHQFL@]M;ARFSZILTAL@PXFSIMC JA?NDSIOPEyJ@M{C|RHQHJ@J@QGRIFKAI@P GR9IM!DKJT@UN ER^IODFI?eL!CPgHPHXKAJ,@QE{V;F7R=Q8XR>D^sBGX7MARH)REIQKCK=D@QKqRLM?GJ!DnNFSUJAP;FJ@@MCRHQ?GJ @LLAPlF:SHLkBJ,@}QF#TIMOBCJ~>ODTIPXFIc=VMA:S=IRHL@K?QGSH6MAJ>PyESHNBK)?pO CSHFRFK]?L@SGS7GLi?]M}@RFYTgHN@XK'QDUHNsB0K!>NBTHP]EI=NA)RWGqR[GJ?Lm@P/FTHIL@]Jr>[O)DSH-NBIR>hMBR~IOEI9?K@\@Vb9T7nX=nXDPA\K>L:BRHRIKBLMDqRpKQK-K*C2JAPFZSH=MA4K?tOYD,SQI[OADI>LASAIRGK@LAPF'QFMK}@I>QFUJOEJ?OCTJVPEJe?6MB T-IQF!L}@MTAP,ESHN CtL@xO%DYTIOD@M@H7H?I}@QHUQ^I|KA@J@Q-ImRqJ|KBKAO\F~SJeLDH?RM@EQHxOEiH>MDRJASDPFSEJrNDELC NDQ:H`Q|GJ@LBSHSAI~LALBR ISoHL@L+APFSfIN{CKhAEOFTKNQGJ@PLBASEIRIK BALjDQI RJLEJAOoGS7L&N FI#ADMESLO HIA JAbRJR#KGJhA'JAOGQTK"KDHi@MCxUnI-RAP<;S=Y BvW=QK7S:W"BTzDL>J]?OERJKMDHANHSNpO)IICLG'QL~P0JJ&B8KA~PG?RjIWLBJAO;FfR=I MCHI>MCSEJaPG JT@tLgBQHQHK AJ8@PGWSItLtAJ?ODSjI,ODEK0@gN9DRH%RGQK?LA;RGwSH(L@J$?PETINkBKA?BOjCrTH>O.CJO=NAUHlSF(L>&N@SlFTFN?M]?RMDdWHP"BM>QsBWIWSDM=P@pVGFU\FM=M>SEUHbO@ N?R~DVHZP!CL>VP!CV!IMRE!L>CNASGRGLL@M|A?RFS6HMABK=?PDcUJwPLEuK?N.CT JRHK@LpARCGS6HLA!LX@\QG;RVHJNBMKQ?bOD@TAJ PQEK@rNCTIQOGJe?K@RGSILAJ?+PNBSG^SGLP@$M@xRdFTGNAL>QEuUVI:P*CKA?NNCTvIQ FJ>LAQGfRHAL@K@Q;GZSEI6MAI?6PDFSItODIe@LoB#TuJPGJ?~LAS9I-RHxKAK@wPFRIM!D_H9?ODTI8QBM\;+To=d[_B[@Tk8SV!9[?Z*C P=@M>PDTINCJXA4NET6M\QuJ JJCLEQKP)IJ@iLBXRZH.TI@MAK?PETINDK?tO9D.TIQFK>L@3SHRHLAL@fR/FrTAINBdJ>PLET~IOCKY?0OCSgHR\FL=?NCBSHTH1NA9M@R+F_UfIiOBL?:PCTHQD+M?OAeVnITFN)?Oe@VTFU&GEO?EOY?T8EWBHmRBN>fRlADWGTADN=gQ@'WGUUqE7OU?>O?TE:VGOi@7O8@SUEVIdQCL%>OC UZHR]EL@MApS;GTkHM;AYM@QETIFNsBL @VPDEfUJ+PzD`J>NBSHQ[GK$@MWBSsHR.HLA|KM?QTF"UjINC|K@OjDTuJQE]JR>`NBSIfR*HK@bLARGoTHLAK@#QEkTI^O)DfK?:PC\UIRE'M,@NBS*HRGL?KMP@RFNTIN;A%LF>PCUHPVCK> OjCTH%RFeL;A-NBRGRGK@KGAQ/GSINfCI-?OiE#TIOUEJ@@\N)D^SIQGoJ?LA"RGlSILLAK#APFSSJnNiEH?NDVJWSCOHVqOSLLELFQKQILAMCS=INTJMCLAO@6WHXXKQbCN@`Q EU~I0RUEL@UQF)UEJlSHoMB|NYDS9IvTxKL_BL*B-RIdTLKMDJ@PoGT#LnNQE'J@M~DSUJSRGA[FY@R8LV+<[BjXC&N?L?BGQNHSKKMDKDQLUPNvIIDN%ITMQ~IKBMSJNDK[BHPGTKPFK@N ESuJP.HCLAQG?UJPEK*BbO'FTKdQHJ#AM=D3SKlSJLGBN@VE[FV;VA9\>[`rC Z=U:&U?'WG:S;FL(@MCdTJSpL-N@FXNFSBMfUPUNGJC6PHUSLQFLoBODT8K$S%I:L&BiOCS0JSOCUCNTIVKPEtOD,SRH7VK!OQDwLTAPEZWMS JrNCNDUXKqUJMgB/PDR9IUMgNCL:BRIV NQHM%CgQRHVM2TiJ.MCNUEUMTKRMAMB9TJXNQGN DQH$WN7R ISLTAODiV}K&UJOMAOE?UKVLnNCM%CWSI'WNOGlL!DzPHTMRJ M!DP^HcU5NSLLrDwLMDSLvT6MzMlFJKVCP JU5NjNGLCoPJT"MQIKB9MFQLRL MtF^LB$SoH\XJdTe@T+<9[A]CY:>V;PVQ?PY:HS"GJ@YMDSLRsML'FAL&GP*MURNJJ#F*NJTNOGIA1NG+T&MQqJLCLCSSK T?LNCMCJQZI?UMQNEBKOBP.HTCLQJKB`NETLlS]JL.CLCQRIUWLNeEK.CP.HULOFcK?AP G3VLR8JLSBN,EUJYT}J@MCM D/SHUPKNCMA QtFWLR\FMAQ8E%V+KUHM@PBbV JWvIhPBOASFWJQ:CN<@StFW'KSFM\@PCMUEIGTHM@N_BqUIUJNBKMAqRGUK,ODLSBPF:VL*QGJ@M!DSKHSiJtLBL6C|RjIULMDJAUQ>HTKNDEuKpAOETtLSEJLLBMCS@KaSJ@MCKBQRHTxKMC`J;A@QHU:MP&HKA~PkGTlLQ5IWLBJN~DRIS8J%LNC>LB`Q&HTK OELBNQGU*MQGJK'A]MjCJUxKSIMhA-NwBTIwSHM:BLASGUK P@ELAOETKPGKBLBSJR JtLCKByQoHASJM$EKBTO7G`TpL]POGMKSBEOFGTgLRvI&KALDRISKL!CtLCPrIS;LLDEJANQG WJSBP:pVc=]-D[AVl;V;{YBVqEN@MB:SIkTCLNF"KC3OI"UPzP LBKE'MGSzNRKLCNDRIT@KM=DL CR>H UKOELAOpFvT@KQGLAN ERIsSJMB-NCRH UKOHP0@/P?,VFW9I\QADPX@fUFOW!IQDM@fREXLOSGL@SJ MBDP'FV+L;UJCNBuNCTmJTK[ODMBR&HiVL~PLESLAPSGUL7ROGlLAODVKUJ-NBOCVT0J7V[LNVCXNSB%RGV[L`Q\FMSBQEtV7LT*HMgBODU\KUJEOBOCUJ=WK QYDMpASSFZW'L$SFNPAUQYE/W'LTHOXApO[BTIUeJWOVCNBESGlWKPmEM?AQFW3LRGMBzPEVK]THNBMBSIV;LOCM&BHSFHIVPKQFMBQ GVL/S5IkMBOmETJYTAJNBXNRCSIVKODMBFRG>VLTR:HLBPQEVL+TjI9MBOCUKVMOFN5D@TQJVLOPFsMEDS(JWMPFLsBhPFX5OUKMCPF)UcLVpLMCMCS@KV=N5QGNQERjIWN0RIoM E\QsG/W9NVTLLCN,ErTL,V OQQIMDxRYJUM QHMYDPgHUNRuJLQDO7GwVfNUANNFNFSKfU^N)OFLCRJVNgQnI}MDPvIUOStLNE%OFUM5T[MNF NERlKTMNF-K[B2P[GUMVP9I>LCPGT&MRpK:LCNERKUNzMyEKYD1Q,JIVMPFJBPIUMP:H{LCxOEcUKoTLK.MCoM$EBRKSXKUNDND T$JUSL6P;FYMoBePF@WMTIIL*B7OEwV MUK~L*CYMDlSLKqUcM2P H*NFQI8U=N$PH8KC!OoGTMRKM(ENFSLSSLLEWL9DqRKU=NOGTKdTH+P@S?Z8E'^D V$;TZ9[@r^[GUB&Ne?P=DoT JO^HMKDMOGRM`T#QNJNIRNUQLPFKER\KVO`QZH.MCBR*HVNhPVIKBNFmVMTMQNDOFTJSKMD$MDNTJ(VNO|GMVCPRHWNSLLC[OpF ULU MP&GNDTKV!NrQGNCHSIV NRHFNC@QGVM UpKNDOD UKUKN*CO%CS.HvWCLfRpFTOCSFJXLT:H|N?AQD$WJWJtOAoP*CUIdWlKQ DPA5TGXL/SFnNARiEnXL;UIMBPD3VJUI)O!C7OBT$J(VKODMBRH6W*MRHoMBPFVLSIdMBODEdT8K8UOLNQE=MC)RIULPEMCQ H V&MQHDMCO]EBVkMVTPKND3O8E]TJU;L ODM5DSJURMOtFdMChPGV^NiSJLB:PFU#LUKNC^ODUL>VL:PEN5DjR^HWMQGG+MA"R+FUXLTHWOCP EVKWpL$PDNDS^IWNaPFMCxRkHULQHMCQ&HVNNS#KNDOhFrTK_UL>O4E.MCRUJVOP&HMYD7RIWN-R5IDMCPGV5OSLMUEOEVJXAJS(@TF>ZGA`F/Z@WV+KIODPFiVL,VLmOEND`TJDWM0RGOD TIWVN$SHNDQGLV*M|UK|NC!OYDQU}KoWMpO FODTdK-XNRGCNDSIXOS0J[ODQ[GWgMUK+PDNBUJWMRFPDGT9IX NSGTOB7RFWLSVUJpOCQE=W[MCXMPEODUKVMQGNiERIWqORHNUDPgGVM)UlLOEPsGU:MWVM!OEbOEYTxKJX PPGM!DSIKWNSxKNEPHVNIV L:PBS?B[F_'F6Z>Z=_CaF[BR@TXFXMTJ?N8EPH=WPDWP:PIPIFUPWQP=IO@FFUK`XOSS]JM)DRHWMTDKNaDRIWjNV;L PyEOEUpK?XMQF[ODTJXOT JNDmRGWZNUK]P EQ?GV.MWLPF]PEtVKXNSHP-D`TEJBYO#TIOCR&GXMW M QDQEwVK$ZMRUENQD WK[MUFgQCUHZBMKWZIRCT EsZ|LZLXRDRD\XuJYKVTERZC$WG&\MVlFkQhAfU'FhZLWJRCPADXMYNMQFQEwVJX&MRF+P4EDTIX5OSrIODRHWNVLPE5QFWVLV&MP+GQFBVcLXYORHOQD]TJWOTLNDQFY&MXIUm@Y0@i`E\bF\@Y?Z/G[LJUI*QFULY.RVOQEJQxK9WRVQPuJNQHWNVWO$SIOFTKYPvTKO@F,SI7YPVMO+FPGVNnXOP|GP[G4ULuXPfRHOPFULBYlQTXq@~]^IYUJPC>ODMU"MVPO9IO9IvTuO5XSSNNIQLV;QT)N PoGP^HVrNX(POPcGOGjULW^NQNHN,ESIXPT}KNERMIWOV=NPG)RHvWN1XO@QOGP'FU+LXQOR=ItO@ETJuXNU#LOLE3SH1X!NX!NQGQSGV MZOHSNH8QEUJfYNU=IQETVI[OWKQEwSFYMYWMRESFIYKy[MT/FQADvW]J`[NWHSCVH@[RMmY7LRDvT#FZ*MZMSFZSFX+KN[N8UHQ$E7VI4Y!N:VJQETGYNWoMQ#FQFVWM4YNRG1QEU'LMYOSZI[ODpSI3ZOUKPE$SIX]OWMPlFQGV>MCX$OqR{HPE?U\K)YDPTYJOESJMY0P>VgMODR)IXAOXnNKP?GQGWLYOQGP/F4UJDZLPU}JPE)U$JDZOVWOLUQDmRFXLfYrNQE}QDW;LYORHpODNT5IZ}PuULOESI?XOdWVN2PE QG$WNzWNkQ{HPGTSLUXQlSJPFSJXXPTKOE*QG-XPoWN6PGO|G"URMZWDPQHRFXI]L [CXO=^6BtcG`C,Y>5XBZJJXLPqEPEBV NYRSLH|RnIXOYQQGR>HV^NLZQ$SI@Q^H|UM[STL NhFSSlK~WPVOKPHNdFwVTPVQTRKoPI5TMV\PS&MOgHQKW QUN%O:HGQAJT O&UO[O{H2PHU=OV\QgQKNIRoMlWOSvIREVFG^K^>HqY?@[A1bH`:HVBSCvWK?XO7RJuNoHNTuO5XTSOMIPMXUURN}JQ8J:VOW;QgQ JPHSWMWQRJNpFSLKW+QTLOFQZIUN/W,POG#QHV OWPRQImOGT|LWORQJ,O@FSK\XLPUlLNEVMJPCTHR[UOXK RCU7GY3LZLSDOSEXKd[NUjIQUEUIZEOVKOqESfIMYOYNaPdFQGVMYPRHOpFTLYWQSJBOEiSJX/QTLOFRIWiOV~NP GP7GmV9N&XQQINoGTL0YAOTFSCADZ!DE`H.^DqY?pZB\YJ4YKQFPpFV!NX&RESLEOH#T5OYvTSAOM^ZQUKL@Q[GSIbYOXNQFR{HXNYOSGHSGXBM3ZNT IQDF:VxK9[PXM1QTFGTMIYOrX]OdQ:H8QHaWNXO|R IQHUMYQSKQGTKYQDW5NQGESUJrX,PX0PhPoGQIV^NPYLP$S8JPGTNYR\UK%RDWG^L_H#[?]7AcGdHi]AW'AZIZ NTHQ&GUM [TVOR+KTNpZ V~WZSPAJ^SKFYtQ[RS0JTR{HWMZoRTDKgQVHBVMZBRVkMJQGoTUJ[.RDZ/QRH5TIYPC[*RSJS@KUXYO\!S3V3LdQgG`XN\~SXQOASHIVlLZ*R.[QkTITqJsZ@P\RUKSIjX5O\TWMSHhW'LH]R[PTIUJ[GQ[Q^VJ(VJ[@P ]Q`XLuU I/ZfN^RaZNjUH"YOL\PT\OUVHWV(J].R^oR7VuJUJZO^SWgMTSGTLdQ8JWPZTTMPHNTM_YRVqPP)I(SLZR YkRRKNQJWQZTS[LIOHGTL[YRUOQKSLXFSWPPR&GVH\AIL`J&\CZA"_|FaI9[DTBaZsMn[ SV!N]P{HSAOX#VZWRQxKoTPZWZWQrNsPJWPZ-TeVZNSITLZ2SiV9OSrI`TK[SOZ!SSKmRKX\Q[TULxRJU!N\UU^N QHUO[SXORI`TK[RYR^SKSLKXWQ5[)TrTKLRIWO[SVNSqJ,VWM ZQXOS9IS JYPP:ZP@T~I^S-IXN\-SVJS?GWL\?Q4Y MSFVJ[P[O2T*HTH<[YO[PUHrTkG_Y&M\QV#KSGzW+L\QYNRGTHZuPZ8P:SHSHMY O}[ RSIQSGVM[SwVMQMITKzZ&RWuOdQHSJXQqYQ$SJQH$WNYhQR,JP.HeVNZfSVNPFHWSK/ZQXOQHSJWEOX\PXR]JQ!IW OZRKT8KP HVMZRV5NPGTKYQXPRHSiJYSJPNHT*MZSUM1QHTKZR=WPQrIRxKXQZZP`T|GTAD[H`uJ]BCXn>^DbJ]|GzTZCQUI3ZPX(PQI)RKWoRWRSMQMwVRYUTNPIkT#L[SW5ONQHESJrXPXOQHRJUXOY?QS JQ6HPVBMDZQQU[L"RGUKZQXNQGSIY$PFYPRHRGXO<[QSI RGWMZQVLRG7VLZpQYOZSoHlSfIYOZXPTH^SGtYNq\QVJSGVJ[uPfY"M.TFVAI\8P[N{VRH3VG[.M/]O V^HTLFYK^dPXJSEXlK\PpZMSFUQI[OpZOTHUvIwZN\PUHSFmYKl]P$WCW`L7]WM&UHRVHX0P;\TW}PSLWQ8\WX~TR.M2TcMZRZ#QpSIWSJX}O\~S1UKvT KCXP[2SWM8UJWFN\SYQRZITTK\>S\jSVM1ULZR,]TVWMGTQJxYP}^UXmO2TYJwVLA]QT8\SUKVLK[Q|\RIVSLPVK^ZP}^UXMUK4YND^YT[QUJ X:M]S,]WR UI WK]R^SXLU0J\P_HTI]Nd^KY.BZ@NbGdH^dA[@^H.^MDWUJQF5TJ6Z-SRWXP}QJSMZUYUTRLRQKVPYR.TJQGVRM[SeVMPGNTmJZtQuXmORoH,SiJ"YPPYQREIRHWNg[kRT}JQGW[My[QVMQGSJ3ZPYNOSHSI^ZTP5[QS$JQHX-NZQUKRHVL\R&XMSoGtVJ*[dPpZMODTG9TgHZN\+QU!ITGLZN]QXhKNTPFXhK ^SQv[NTFWI^]8P\O^VGV^H[M5^PWHTFXKa^RZLTF\XdK~]P[OTGUI[qP\QUITHZO\Q,VKaSH\XVN]GR YMS:H%VK|\&RZOdTITK[Q\RTJDTJZLPZ]S'WlLWS=ICXN\FS,YN5TvI,VlL@[R.[QoTIUJ[QL]SUKSJYO]TgXNS~IWM,]SZPTIWVK[Q\SUI"UjI[@PH]BRVKTQI!Z O^!TYRNTjIWM5^S\QTJIVLy[OR\S UpLThKYM1ULZRZ]?VV~NS}KYP]T[YOSIYXN]T&\wRU?LpVoM[S\TVLTKZS\PVpVNSKWhP\UnXQSKWLP\VZUU-NTMDZ-T[VUUOzT|LYR7]V9W@PSSLWpQ].WYS~S[LUO\wW[pV;UMIVcL]lQsaQ\GE]DTcJfMb I]]E]qJ_*R|\QTYK"YK^Qj_RZWMXKt]0PaT\(PW$JZ O`UO^RWKjXM])T^SXKVK|\Q^%SYM:V-I'[O,`HU|\Q W#LWoMi]ET]SbVL!VL[Rw]TVMPVLZdQ]UXOUdKXP_WZsRTLWO]V]S VcMVM[S\XUVNDT?LYOR_WMYOVKk[kMcQcM _DaFg MKh ND^H>Y-I\Qh^UW$O4U>MZS{`ZY[pV"UPWeT]Z[VSVMVWN2^(Uv^/VPVKpVM\~S^VQX}OUKYP_lV \2SULXO/]T\TjUK WWM]T ^'V WMVgL|\:S7`V:ZPeVKLpZQ_V] SWLXQO3]T]^ URWJMWWM]S_V YNoWL\R`V[PWLv[XVnN/WYOH]Vg_ZXWS:MYVS[UX PT=N&XBR[U[U]TNV?Q[V\WSMUO [T ^CWVOSMYXNS]WXRT^NWR_\V[TcULzZLbdQ fP^\F"_,EdlKg5N`IZRH7]O,]UxY REStLUPq\YZXURU!S[Z[ZTQ+TO []~T(]TWMVK\Rg_0UY-NVJ[P`VM\\QVKZVNb`T"_SdWKYoM^Sf`XUZMrXK~]QaUX\OWLK]Q`U~]kRWKY=O_U_TU*XM?XM\ S]TXOWMu\R_UYPU3LPYP^/V"\RU3LWO]US]U'WMLVMX\UT_"WYqPLV*MZ.R^WZRV.MXTP^V\T!VLWN\T]tVVNuUL[jS^VtYPWVMHZR^;W[RUL"YP^WW]UULWM]T'^VWnNV>M[Q_V!ZqPlWMZXP_U\QZWLXM&_iU^TWkMWJM/]S^'VWNwVWMZQ__W6ZoRuUoMX'Q]V[SURM/WN>]U]ULVNVfN5[YT^W X\PU|LsZS]KWZsRNTOLWO]Vy[UT=NPVN\TU]rTfYpK [*H7cMgQO1bgHE`EciJg=O_#L9WRHXM^(Uq\TUNWPS]>X]Z'WRIVWRZWr^ZWRNTOLX}P|_W[TU|LlWVNH]T/]UeV[MWNq\Sa^UYXObVLR[%SR^VZ\Q UJ"YuP8_V[rS:V&M-XN ^0Uh^UW.MZWL\S^VW NV7LZQ`V#[PVLFYN^T]S{VKXrN^vTc_TWLWL]Rx`U [OoWJ[nNbVR^;Q-XJy[NaTP`[R0YQJDZ3L_QDaS/ZK^ZSL*_PaAT8\^NBYK\Nb}Ua^Q=WIZN_S^RdWKYL]FSi`#VXM'WK['Q^UY}PUJYOF_U8\SUlLXO^DU]UwV#LV>M[Sh^]U|XNUpLYlQ^XVeZRUOLXN]$U)\SU3LWN(]T]8U'WfN7V"MY[R^7VXOUtLYQ^XVZ.R(VMXO]HU-\SVWLaW6ML]fS_UXNVKg[dQ^,UYO!VK6ZMO_U\lQoWLBYNY^T ^SKWLOW+L]S^@UW-NUL[OR<_&XY'QTKX Pa^V'[RULVzN]V\UtVzNQURMZS^?WZW(OUMZ.R_W,YQMUWM&XPP]WZU_UM4YPE]FS`R^Z.H>]SGfMjOcFHaE`e4KeQ`PSVUJrXRN]U];VPVUOXRp]X`\XnTV*Rv[V\WeZ^SoW=O[Sj_X\TV9NMYQ_oW_VWOWuO^V^WjXPW-NB\Tp`Y[TWOYsR^W[TUM|XP^tV]VTOLULZR^+VYPVMZR_WZR,VMDZkR_W\UOW9NWN^U^xVWzNJX]O\Sj_&WhZP9WlL\RaV[dQ;UrIbY-N_U^SVKYXLO^R`UYNY=N]^SU_T(ZMUIZM` U\7QVJVYJ]R^TVKmVKZQ] VXN7VM[R^WYQrT'L>VeO]sW8\@U4U>MU N"\ U\+VTLUMXR[UVWOUMXR\VXQiSKhW\P_\ WYSsSN_UOn[S\QWHZGaSLYeZN`H]F^K`QT[QRJUmO[V[oWTqOUSQ=ZW\YSPROYU^X\XPS#LXtQ]"W0YRTLVNSZ9T\lVSLS|L{YR[UqUMSxKXlQZ]UWqPSKGX\Pw]tVxYQTKSV N[T\UUUMFUL[Sv^lVLV=NZS8KY.RR^WbYPTKWO]V[RTXKVL\1Tr^DUtVLUKU[&R^UYO|ULKYO*_U.[PTZIW.M^]SS]TUpLWAN~]S.^TOWM"U\KZ#Q%`[WqYPUKYP]UZkRT3LPV:M\T[SFU'LURM\8U5^\VJUNMTL3ZQ^VXPS'KWN\,U~ZR5TLKWNN\eT\]UVMUM[T]V W^N?ULYdQ ^#VYP#T]UZRTLVN&\TM\ITpVMQULZR]UJXXP9T LXP]TVwZRT#LOWO\PU[nSuU[L,VM[S\TtVNTLY_R]VX,PDTKXP5^VZRcULdW O\U\TVMUM0\AT\TVMTLDZR^VXTPUlL=WNv^V[S%VMVN\0U\TVMUkMZSb]pVWNTKIY7QX_W[YpQUgLXmP]PV[=TULV-N[S ]UVLpV[M[Sw]VXOZSJxYRv^xVZRULWN] V \-T UK7VM8\SL]UVOUM[R _VY]T\SVNNWO[T]TVWOVWN[S]WXPIVtL[ObcSDaOLE]F%cHiMpgKf`AD a"HbUO`.R`XLWWL[ S_XZSV}PZ8U`[\XTOWQ]Wo^wWW5NGXN\U_wWCXfNVM[!S_VZ|QUKZQ`W]UVM>YqO^U^VXMeVL]!T`jXX]OV|L[\R`W[QdWOL^ZQ`sW.^T?XFNWYOU_V_UYRNjXMv^^S`&WZXPWL\:RrbX]RGXCL[PapVaUYLZM_Ta(U[M ZLJ_gR}b7V2^

YXK]Pc'V_R[KH]PSa%TbVg[M[=Na)TaCVg[OZRM^*RaHVb] QqYL\P bV_ETFYMbYVNQ_ U`sWYNYN=^T`;WZPXM\RaJXB\wR XANZQDaWT`VXOmY,P_VDaXYdQxY9O]=Tb$Z[^SuX}OT\TaZ^VXVN[RaY^VFYOZgR_KW]a4Z.[RY[R}^Vcb]DU_WIY?QWZN[9T`rYY[SVNYWR^W]xV W$OOWO]V_WXOWO\V_=YwZR>V9N[Ta@ZF\T@WNY&R^RX3]?VVNWYO]tV_XXQ9WO\$U_X5[SVWOR[S6aqZ\ThWOHZR*_sW]UWNXO$^U_WZR'WM]Ta&X\RXN[.RaXv^TX OYdQ^;V_;WXNXmO\UT`YYQ+WO)\ UE`iZB\UWO)YQn_VX]VhWOW#Q][W^&XjXmP'WO\#V `vY6ZjSVMO'[S>`Z\VSV0PIYR^GW_/VZL!]#K}eOhPcIbHg=NiBSJ_LxY'K\Qx`X\U,VmOX%TU_T[^3[@W2SXHU\Zh^ZqYRWPF\]@U`=Y~Z"RVcMg[SL`X\ITWNZGRi`X^VXNXqOa^]U`WYLPFY=OW]S_VN[Q1XZN\vS/aYa^TYUO[ Qi`V`XVPYNXYO%`U(aVpZOYM^TbW]Q(ZM]6RcWaTZLL]XPbV5bU[LZ"M `_R0cPVB\AN[L_Pld;V_QZ|Ld^QbhV_T5XCL\@P`V_$UY%NYN])TnbXY[+QXVNu\:S_W]SWNNZ>RaUY}^V1XN5XmO^#VW`XYPXP~]T_"WZZRVNM\iT`Y\TXL[N;cReOasGfcZHhnNjPoaKM\8K^nSlaWZRWP[lVat[^AYDWRBYqUN_0Z`-YYX;\9TUJMUgM^iU1_VW NIVM[T]VYX/QmVZN6ZS8_YZST{MVmPM\VZPUU NpVP[V<[V{VPoW QYSd^sXWpQ+TMX S^Yk[iUUNWP]WZV)RNT(P\V4_WYL7YHb NfN7`VH0`FcI0gLPbTP"YJWM\T4YRTOUP&\>X`_\X,UVBSXV^c\eZVTR*MX)Tz^wX@[8U4UOJXQH]?WH]X_UO+WPB\V]XWOTLeZS,``[ [VUNBYQ\hVY[TvWMOVXP\[W4_ ZWPVYOZ!TY^bXqY%SUNqYsR__XZ TTkMV9O]U0\8UxU M>VFN)\T]V WN7VkMZRU_WWDZ/QVLZ@PX_ Vq\RVL5X5N^ U _TVKgXM]R*_TPYMWK\PaU\QW?LZO_T\hQdWJXM ]&R^=T&XLWLt]S_V_YNUJC[Q^UZQNTKXO^V[SUM XO|\T]+VVMPVcM[S^*WXPT'LPYQ^WIYPT LgXP]^*W]]UU6MpV5N[IT ^VWOqULzZR=^VXPUM>Y\Q^gWZ!SUMKWNf\T\ UtV9NVZN\T^VDWN)ULZQ^U*[QLVLfYO]Td[ RUL]TWNZoR_X ^"WOWMOYCQ0` XZaZY?Q?X=O]TwaZZRWO;\TaY]UXdPZ[R_VX_^X*XOIYP`>XDa^YZPgX O^VwaZ[-S Z+Q]@Uc[h^UPYOZ\Q`Wb`WZQ:ZQ`kW bYZRYP]VOXP^]hV_AYrX>RVAOZS _Y!ZVSUnN7YRu_Y7]VlW0PWP]*W^.WWOGXP\UaYPYtQWO\S`X\UTWN9[QaX]UXNXdP^WE`XFYSQVYO\mU`bYY S{VUOZ!T`Y8\mUDWTP7YR_nY]WVO?X\Q\V^XWQWPS]2WKa[ZZSViO<[U"_Z@[mUSVPY S^ W`U\L^KeOgiQbI`GdM7gS^OvWK[OR`Z]WSVPnXS _[_\YXTVS[)Y^uZXSVP\\Va@[\UvWPY[RX_X^WvWOX/Qa^W^XqY|QX_;VOZR`sXAaXYmPYP^W5b[[TXdP]U\bT[o^VXP[R{`bYF_sXYWQYR_YaZDZ6RXP _WbH[(]UWPM\U`'[]2WY'Q[Q dWeT alKTcJh}Ol SreJcKe#QexVD^RYOb]U`Z_YXS\GW#b^m`],YhVYTj_(ZaZf\iTZOQ^Vb[G^PVYuPQ\1Tsa@Z`XZQ[R`X~a9YZ:RDZS)`W b]Z/]T ZPO^UcUZ^UYQu\%T*bYhaX3ZP#[R2aFXCbY[RzZQW`W(dZ]nT ZLP_`Vc[_VZXqYCQf\TUaZaZwZ^S$ZR,`Y c\[TYjSQ_Xbx\]V4YsR\Vb\_XZRi]S=dX"fVasM?c LiRVkeTdMJ_pLaTc/[G^?W[YgR8\Vb]`'\Y+Vn[X`^>`^ZVY%T_Zc]\#V,YQ^"W?c\5^WYR]Vb[*bZY[SN[vT7`9Y c[5[jShZwR`YYd>]2^VY*R^Vc'\[`X!ZQ\T.bZaXv[nS\ UaYbZq\T[R_Vc+[_VZZ\Q^Ud[~a:XK[lQp]S c ZLd#[\Q(]RbbX~dYj_%T[OaVeZ aUE]P_eTdYcX\Q^R;cX!d9Yu\WQ0\pQaVd Z8_T[QQ_XVcH[`WZZP\>S4c[DaYzZP`[ SSaYubUZ[StYQ8_^XbZ]UaZdQ]V*bZn_XYQm\Ub[_X:ZQ[RP`^XaiZ \SZ"R^Vb`[w]UmYP]Ubp[`X:ZQ`[jSaZZa ZYRYQ_W@buZ\SXP&_2Wb[ ^VbYQ]@U%c[i`ZXYQZ^S>`YaiZ_Y?Q6ZR)`Xb[\)T{YQL]CVb[ ^lVYQ\U@bd[aYaZSRwZ!SL`Xa%Yd[jShZRj_XbD[E]UtYQ\TbZ^VXqYQ[Ta ZaZZSR[wR `sX}b[[%TX;Q}^ W)cp[\mUY[R~]0U~aZ`XZRZSHaUZaYZ%ShZ[RT`YbT[[SXP^lVd\ ^WYQq\UT7cH[6a YZ7Q[RaEYbZ\RZqP`Wc(Z\FS[P^TxcZ;`VYP\ATaZ`AY:ZR0\AT_XaUZ[S$Z>Rd^WaaZ\TWO\#VJb\_RXHZR}[TaZ)`YZRHZ2SP`Yal[ZSXR^Xbt\H]TZN`QiVwgP"c I_fJklhQkOcJaMwdVcZ\UTY6R^Xcj^^YYT^Zb``]Y U*[Ta[b[ZSYR`0Zb[\\mU[T^Wc]^SWYR]Ub+\~aZ5[S]TUbc\Ubp[5[)T[1T`$Zd\0\ UtY*RQ_JXez^waYZZZ*RE]+V"c_\`b'[ZR[Tb[d]\T~ZR`Xc\)`X[jS^Vcc\_Wk[6Rp]TbZbyZ[R|\RbYNe[9^T[7Q_UdZ2a`V\ S_Ue\cAY[P[ RFc/[TcY5^SZQ_VbcYZK^YT[QO^qUYbZJ_UZR\T`Z`YaZS[R7`XaZ\T$ZR^Wb[[iT YQ]Vub'\v^BXBYQZIT`Zz^WqYdQYS_Ya;\LZSaZATr^XUb ]T\VWP~ZTyb\_XsZRZS`QZ^YWQYS]Wa\[UXQ]Xa[];VXQ_\UAa[_XW}P7YSQW`yZ`ZZRZSr^V>`XR[RYGR$^xVb[]`VXQZTa<[_YYYfS:ZSu_Y_Z_YSWRF\W`L[ZTaW\Q.[ VT`\Y^YYX^S[KW_/[^vY/W7QXSO^EY_ZBYSXS]X7`G\WYmU7VGQ\VbQZ*biU\K!`KglQhQaI/aI]e&RcT(ZOWuO?\qU!`d[[oWW)S[UY_E^][WUXVK^\j_\xYSXR]W`[5[TXGQ[U`[]WzWP[)T`Yz^WXP,Y_R1_X`uZ0YQW}P^&X(a]Z\VXpQ\TIc[^V1X P[%Tf`=YE`YxYQYQ_FX5b#[ZRXhPY^XVc3\p] UYP]Uxc+[`WYuP)\-SYbYYgb%Y[Q [#Q`wWcY(]RR[OW`U~d(Z_TsZN*_RNe^Yb2W[NL]PMcXcjX[P\PaVedY9^S[P__UbbY^uUYO>]ScHZaX6Z8PZQ+a^YJbQZ:Z RY'Q_"Xa4Z|\TXP(]Ub[]UYX PR[S`Y`mZXQZGR_YwaHZZ%SXQ^Wa[0\SbqZ cY[|Q \QCbXcY^S\PaU@e,Z`AT0\O_fSfZcW]PK^Qc2WdW^Q]QNbVeZ]R\O`TVe[`lVZO]S0caZ.bX'[P\RaYJbUZj\R \_R`&XbZ\nTYP^\Vjcd[_`VYP ] SbYaWU[Pj\QcbFXc Z[RZhQ`Wc[],UY[R^pVcp[;`gW~ZQX\)T`Yb[Z:S[RU_WbG\[ATv[R"_&Wc|\L]xVYR^wWac\_9YYBRL]rT/dXf2W bMc MriQlTldJubKdRdX]S(ZGQ\S^W|c]r^FXZZR]Vnb[`$ZYR [Sb\b6]B\8U[S`rYcs]]V*[>S_YcV]`XYR\Uc\/aYZ2S\S`[S`YcG\[SZQ<_Wb[]lV}[fSa^2WaZ^sW[:S\0Utc ][c\[AT\Ta#[c[\\iTZQ]WMcS\_W[S]W/d]_X[SY^Vb?\Pc3\M\UQ\U~aZc]j\UFYOQ^WSd]`jYZSc_ Xedz^b[sZRZSbd[d\W]T] UaYdw]^VZR_tVc\`UY[Sl]Vb]a[^ZS`[TUa\Tc)^&\U:ZrT`Z,d_L]X"Y>S7]oWb]G^9YXS[Vb]`[WRWY-TJ_3[fcv^<["WYUT^3[Nb_]wXYfS _ITeXeS aJufMjQjQcLKtcNeU#e ZZRXS]AYb^\Y|XxV[ZSa_t]+\W0UYCW_\(a\YSZT _Yc][U X#Q]W#b]a^XUXSZTKa[`ZeZTZrT`aZ_ZM\T[U_Ycc]];WYR'^*Xb%^&_jXYR[ U`ZaZYBSy[TaZbd[LZZSYS`Yd]^*W:ZR],Ufc[<_XZQ\SbZaZZQ\RaQYc[L]T\R`VcZ_Ug[@P^eT dZ`bbX\Q]RqcQYcZ>]wRy[PrbXPcZ]BS'[P^UbiZ?_'VZQ]TbqZ`"X~ZQX\SDaYbZ[S<[R>`>X c[S]iU{YQ]V bl[c_WqYQQ\(Ub[aYLZ|QZfS aY8b[[RY+Q_"X4ck\]VbY[R^WW;c]F_XYQ5[SYb[b[/ZR5[S`Zc2]F\iU/Z)S^Wa[^WMYQu\,U*bD[`zYDZQ[Sa@Zb#[[VS[R`kWcZ]nTZQF_Vd[_ W~ZtQ]U4c\aYZR[T`Zb[Y[UTYkR_Yb|\]?WYBS]Xcc]^XYR5[UTa[ha@[:ZSSZS~ad[a[[(UhZS^jYb5^\WYjS]V d+\b WR^NbNiS6kRduJRe'L1i S#iwW^OQsZ@Pg_&Wb\5^X\X)S]Yda/aj^YV[9Yha4_ a]ZTZTKa[c\\(UYkRR^ Wwd[\ `XY|QF\~Tb[`YYRn[)TaQZ`b#[d[S[S`YTcK\i]uUY'Qn_Wd\>`:XZWQ]aUc[haX [R[S`9Yb[]T&\S`RXZd'\1_\V:ZP^Td[anXR[\Qv^%TcYZdiZt]sRb]RcYgeZ^R ^ORaUfZa8U]}P/aTeYc[W^P;`RdJXkeYr^R]PbVeZQ_1T\DP_ Ve+\`'V5[P_)Td[bYC[OQ\FSbZbZT\rSZQ[`Wc[]QTZRd^Vc[J_;WxYPZ]aUc[aZZ:S*[SZa ZPc[)\SZoR_Wc\]hVYP^]UTc[`RXYQ \T~aZaY[S[RS`vYcZj\TSZWR`Xc[^U[Rd^Ucp[asX`[CQE]Sb0ZbY|\Q\Rsa*XcaZS]~S[Qm`VWd[_;V{YQ]UcK\a%YZQ \Soa@[aZZ%SZR0`%Y_c\ ]U6ZR]W c\?_gWZZR[Ub[aZZnSy[-T`Yb[zZnSYR_Yfc]]VZR `T]hXSg^SbAJeKlSlRadQJbLgeTAdY,]TZoR^kWc=^"_ZYT^ZZdWaE`F]YU[xVbC\b[Z%SZR aYc\]TVsZ_Ru_Wd\c_KWwZ>RZ]$Uc\VaYYZQ\Sb[c[l]T[1T`Yb[]UeZ\Qg_kWe]1bY[&R^U:d]bqZY[BS]Td\cc\\T[&RaYd[^U]T_WSd[Wd[]S_tVe\e\ ]S}^Td]Zfo\^S&\tQbX h\ybW7]QHaVe/\dHZ ^VS_Uve\f\^T\~SrbYc[^Tf\Ra]VbS\a[[TY=TQ_Zb\ZTXQ"_Yb]\sWPYS"\Vb]v^YYR[PUUb[ `[YTYT_]ZaZZPW] PdrT~k.X'eN aHCfNNj#Vd U[Q:ZSb[Da[YUYXHU^\i`_\ZXW\HZ`_\XWS[\CWbj^wa[XGRZETa\ a[-XQ0YQ_Xa\\;VX[R^%Ya]]XYR]Va\_ZWYSZRP`Ya\[uULZR`-Y`bL[-\U&XCQ^Wfc\^:XZR\UJbo\ak\[BSK[RaYTc\[ S=ZWQ_Wc[h^?VZR5^,Uid'\aXZP}[QcYcZ[QR[R`Wc]Z]>Sk[R_VxcT[] UOZ|Q|\T.bZ` Y[R[rS;`UY`nYYRSZRK^X bC\\UYR\Ub_\~]VXQN[T`0Z_XYRZS_YaZ3ZS>YQo^Xa[[SZR_wXDaH[[UTXQl]CWyb+\]VXQ\Va\B`(ZMYQ}[TaaZKa[bYRYR_jX*bl[8\UXQ]hVb\^W0YQ[Tb ]`YZS'[rT__QY6aZZS=ZR^W c_\\VYR\Ub\_XYR\Tb[aZ_YBR(ZR{`bYck\YSGXdQ_Xa[E]+VXQ\?Vb\>`nY_YQq\UaZ]aZZRZS_Xrb/\](UWY#Qu_Wbc[G^lVZQ]DUcbZ` Xd[Q[RGbYnbY.[R5[6Raa XjcZ]T*[Qc_Vc;\1_2W>YQ[TwaZ0`=Y>YQv[eT2aaZKaZ<[9TYR^X1bt\\PVY*R] Wbo\^XY>S[@Ua[aZxYRWYBS`,Za\}[1TZQ`UTfWbOZaJ7gMmTijPcJdAOeUbV[Q[R`Z]a\v[UZ}U!`\xc`]l["YU[_Wb.]`ZZ)S@[Sb[rb[[BSv[SaYbk\\rT[YQY^Wd]B`WYBR\Tb[ aYZQ'[SbZc_\Q\T.[kR`*X,d\L]T/ZQ^Vad\_WZQ]TbZbZ5[OR[ZSaXtcYZ\S[QwawXd[^DU[P_Te[GbW]"R'^SdXdYa^R^kRdX\fZ^R\Oa/Vf[VaT\=O`UeZcGW]qPR^QcX@e(Zh^R]*RbBXeY_1T[#Q`uUke[`SWY[#Q]1Td/[bX\.R[sRaX(d[\SU[&R_Wd[^8UY\Q_W d[_;WZP]T_c[cb$Z[R[R`EYc[]UN[R_BX0c\^pVHZQW]DUc[`WZR^]XV?c[gbQZ[kRd[QAa-Yc[=^Ug[R)`W2e\_aU[QS]SbIY@b1YT\Ra^TcYcZ\_R)\SR`.Xc[^T9[R,`X d[_WYQ \Tb[auZZZ:S[\rT\bd[b\&\TYR_Xc\=^VmYQ]Vc\X_W,Y:R\Uub\a[ZSLZ]T`(Zc[S]PX_ NfQmUh%NeuJiNmUfR^mOh^~Sc[aZZ]T[U`\c_!]Y)\X_*]b`8_4Z [S^Wd]aaZ\T8\$Ub[bt[|\U[SaZd]>]Uv[!S`XVe]!`Xn[=Tt];Vdb^%c\[ET[Sb[!d]]V\eT`Yck\U_bX]V^kWad]8bZ-\S]^SWYej^bc\\Tt]Ucb/[]e]y_V^U bYe]`W\%S_Ve\4cX]S `iUe[wdZ^R^ SduZe[`U\Q`Vf/\8bW\>R^UZdZcYZQa^,Uid\cl[B\vT\T0`EY c[}[)SY.R_Xc]_)YzZ_R]V}b{]`+[YR=ZS_Ybc\[VYT5^Xb]\U\XQ]V!d__ZZS\CV*b\a[~ZTZZT_Z`b'\\UYS^Ybs]\gWXR[U#b])`YfYR[U(a3\Va[YR5[T`Y0c.] ]hVpZTo^Xb]^WXPu\PUc\^W/ZSR]rT/aYxcZYR[S2aY$do\]HUYOR/]V0c\^ XWQ]W.bB]_Z|XRR[TL`ZP`0ZZ9TQXSm`[b]\W=ZYT]Yb]_^XWQZZ#V=a\a[Z-T[U4_ZAak]YCVY)TX_Yb[7]S3]VNbPkXiSbJadLiTVhU ` QYPO^Wb]}[V)YiUJ_+\b`}^\ZX=^]`_^c]YVY[Vb]ld_zZTUZUi`\tc_S]CWXR^Xd$_^YYS[V@b]+a[Y^SY[#Va/\a[Z]TYFSO^Xb ^u\UYR]gWb]]&XjXQm\Ua[`ZY[RYR`[cF][QTYkRn_Xc]^WW\XTP]Tc\`X[Q^DUdD[b-Y[:R^Sb1Yc4Z]jS[PVaVeZ%`U[tQf`Ue[fcwXU[XP\Qd]ZadZ\WR|\RaX/d[]1TZQg_UbY{`VsZ8PZ]ScuZawXZPZ]SbZ!d[\TZQ7`Yd]]UYQD^tV/d\U_WYOR \8Ub[`YzZRZsRP`YbW\C[TZS_Xb\].W/Z2SL]PVb[_XY-S[Tbp[bX]9O`NgR~kTgeFNCbDKfRgX_)TZOQt]Ubk\`Z[V\Xa_Zau_YwW`XTU `[\b\]$UZR^&XcJ]_W YOQ]HVb[a ZZS_\~TaYc[[SZ[R_Xb[\TY+Q^VWd&]`WY?Qw]Uc;\GbaZLZP\S*bYbZ\AT}[R`Wd[r^UZ+QD^UdK\bX[ R=^]Uldx[ubQY[\QW]6RbFX-f[c_T\Qa.Wf\aPV[\PU_)Te`[b[W\P] ScYd]Z\&R\Q8bsX!dZo^T*[?Q_Vc[_WZQd^Uc\b(Z#[RR[VSsaYbZZRZPW`*Xc|\]UYQG^.WcS\F_W*[ S\Tb[aYDZWR [ SaZc\[S=ZQ_RXc[3]UZGRW]mUb\_-YYQ\Tb[bDZZ:RK[)S`Yc\[[ITYR1_Vc\]lVYQ^]UbH[`YY6R[TCb[a+[[VSDZQ`XbG\[!T^Z:RX_Wb\]xVYCQl]Uc[oaY/ZQ[ TKaZb[\YTZR_ Yb[\YQz^Wtc\`vYYoR\T#bD[Nb['[R5[~S`Ytc[] U[QB`Wldx\_'V[ R&_UdZaX9[PA]SbYcmZ\)S\:Sa1Yc[],UZR^2Wfc\$^V:ZhQ]#V c\`Z$ZOR[YTVaZ.b'\k[SZR,`nYcF]l]UYQ^W7c\_sXZRu\`Va[a\Z~SK[-SqcjYfUYDaO\bLi'Q|mThVNdIhO_j+VedU[P\Sc\Nb/\[U|\&Wb^cy`\bXYU^Zjc)^_XZ.R^Vd\Va$ZZR\rTbZb\}[~S[RST`YbS\W]!TF\S_Xd]p`XZsR]U;cX[bX5[WR~]$Ub[tcl[u\>S[RaYwd\&_+V[kRi`Wd;\`Xg[Q^9Tc'[bY[\ R\ScYdZ]SE]R cX}e[`U\GQ`iU_f[PcW^kR`Te$ZdY]kR]*RldXf[U_R7]uP cVf`[b#V]Q`iUfZ;cW3]hP`)S.eXdW>]P]QcY1fd[_T\Q=a;W)f]`CW8\ R^U dH[bY&\R] Tb Z|c\[j\S[RaYd]d^?VhZoR\bHZd^`Y[R^Vd^]c[\]T\TaaZ%c\]YT7]QdUj.XgOVe KjPro.WjT`O;`T]T[!SaYew]^VR[ORB`Veo]`bYB\R4_Ud[6dZ\R]RbXDed[_T.^RcJXg\aPV\uPaU%g[dX ^Q _FSe$ZVeZ4_ Sj_RdYft[7`T]QbW0g\la'V7]Q_UGed[cZ]R=^T/dRU_.Wd\=a-YZR]mUc6]bx[ \RH]T#bqZcJ]H]U[SP`*Xd]_W[GR|_VEd\}byZ[BR]~Tad[dk\\R[6RbnY2e[T`Vb]S`We\aVm\Q4_Ud\)cZ[FSW]TPc[c\[S[S6aZ(d6]]U[S_X(d^u_Xv[nSd^VTc]Ub[[S \TYb'[b3\\U[iT`Yc]]VYS^AY$d]aXw]|QaQjVkSf;LgLlRm(UdOX_N(aaUDe\_W[T`Yd`a]\JXv^Zb^a^[V[ UwaQZ#e]\ATX\S`rYe]2aXu\vTj_Vd\nb/[[>S\Tb[_c\\ET0\SaYe2]n_WW[>S_V2e3\6aX[R_Vd\cx[\S^TdL[ex\]T?\jSasXe]i`V]rS bXe]1bX\R_ Ue[Ge3[^Tj_TeYg\`S!]Qc>X$h\d_W>`SRcVh]idY`jS bTfZ3g[_:SE`SeUZgZ]`T_vS[c%Yfw]IcY^1T^}U*e\cUZ>]S|_WWNe]9e]]V\Tcd[}eN^n_jX[T`Ye_a["\TK^2Wc]%c2]\PU]Vc]d_^)Y\XVcb[}e`d^XB\,U_Y[c^`Z [T]W=d,_c^\Vm\\Vb]c=^0\VYS`Zc^_YZT^sXc]`ZY[~S\V2a\c]/]XV]pVaZWds]]#VZR{`EYoe^4_WZoRu_Xqc\_Wj\PUh^?WGb\a\\V\U`[ha]\V[U^YcV^5^~TZU`[Jb]ZT[VYbV]Ka_\#[TVZU_D[du_R^zYXFS]Xb__t\XT[Wb]gb[]"R]^N0gTkUdkM!dLiGRKlwWcR\P^pVc]`[YuU[Y2a_b_*[YYW^^a,`_\XZmU^aZ7c^D^XXR\2Wbk]`\[tYFS[Ua[\c ]ZITYSf`[ cV]\`VOZT]jX,d^ _jXZNS!]Ua[aT[y[1TQ\0UaZ b@[[YTXSQ_Yc^^]2WZ)T^gWdo]`Yy[S^]lVc\cH[[R[ SbY/d\]T[!SaXec\oa;W\GR`pV]e[cYl]Rb`U*eZdZ'^S]RcVXFf\_0U\>R@bXe\aaV[Q*_eTeZcX]Q]^RjcYY}eW\W]Sq\ SaYd\^V[S_Wd\`FXeZ>RH]Vc?\bZ.[S|\TbG\c][rTZ~S_1Y=d^^.WZVS_Xc\`-YYR\;Vb*]b\v[vT\~Sd&X{g>X7cN cKhPm?V0gP8_:M`-TWd\a4ZZZT_\Vb ^c4`[W@[^XP`^a0_"\WWZvSc_BX7c ]^GW5[S]Vyb[ayZZR\U bT[aZ\TpZ S!`XcV]2^VeZR_2X(d]`9Y [S\Ub[`nY[S\vTbZc'\[R[R`X,d\^;VZWR^Ve\ a Y[R^TbZbY\R^TbXc<[^vT,]Q)`UoeL[`PV;\Q_Ue\bXB\7Q]ScDZZdqZ[\)S\Ra2Xd[d^T'[Q0`Vd\_W[R^TUc[bY[R\SbZbZ[S[S`X*bZ]TV [Q_&XdK\`YZZ*R\DUc[bYZRq\)TsaYc+[\SZS`%Yd\]pV[R]TVb/[m`XM\Ri]0Ub`[bZ[R\SaYa@Z[UYQJ_Wd]v^VZ"R]VcJ] aYU[R\T1bZaZZkRhZ"Ri`Xc[u\ UZR`Y6d]__X[RS]Uc[\_Y[S\S`Yb[[\)T[SL`%Ybc\Q\}UZSR}^;Wd]`.XZR\U c3\aZLZ%S9[)S1bZb[T\ITU[Sy_BXb\O^&WZQ^SWd]L`XZjS]\Vb[/aZ<[Ru\SaZbyZ[T[rS`YLd]]VZQd^V!d*]aY[sR]]@e`9^Z\%YB`]da[`\ZTJ_wXd^`b\j\U^Wd^=d^]V[TaH[c]a^W<[T%`Zd^Jb[\ U _XZd^d^\$U[\T!`Yd^a^W,];VbS\ f_&_X[T`XdE^/aZ[\T_XZd]7c\\}U]Uc\d]5^T](Ub\[d]_kW3]=TaYe^bL[(]R^eTdYZdZ^]T]UjcYe[`+V]QbW\f\aV\&R(aWe[bX^R^PUbZd\\ TL]UTd+[e][\!TLZ/QaYe]`Xv[S^.Wf^ubd[ZVS[iT`,Zb\[QTZTaZ[c]]VIYR^&XeV^laYYR]wWbx\5b[ZAT[TaZb\\?V@[eT`ZMc1^\VMYR\_WGb]_ZYwR[Ua'\Ka[ZTZTal[ c]]tVYRd^WFc6]]WWX\Q/]U c`[aZYQ\PUauZbZ\%T[>ST`Y;cC\\TYQ1_wWfc\^WYR8\U1bS\_YYQZT`[a\U[0UxYS^Xb]\ W"YS]W`b.]^IYXRZ U`[`[eZ%T9[T`@[a\ZVXRSh^Yc\j_ VB\AObRVkWhRc#Kd'LOkATbjPV^AN_\$P_lV}b[[XVfYT]Y#b__\ZCW\iZcb`i` ^YT@[U6a[a[OZSDZR_-Yxc]]VN[RS_&X[c\g_XZ~S\TbG\`qZsZR[UT2a(Z c[[jSY[R)`Xb[]UZ&RK^CVc\ZazYZ6R]Vc\bD[ZSR[SaXc[\S[R`Xd\^U~ZP^Td[bsX&\ RR^ Td0ZdZ]Qb]GQMcWeZ_S]Pa(Ug[auU];Q_SfZIcSW\ P^ S:d=Ypd)Y]BRL]"Ra"XdZo^S\Q!`Vd\`WZ Qw]YTc[a=YZORy[RSa)Yb/[9[RZ:Ry_Xb[]UYQD^/V4c\_XXGQ\TaZ`DZYpQ [nS`ZaZN[SXQ"_WFc\ ]HUXPb]U,d\E`YYSR\TbZaZN[RZ*R_WnbZ\TSZOQ_.WaZ^U3Z#QO^HUcZwaYYP-\RYbjY)cYm\Q[hQL`7VbYZ]jSZP^Vc'\4_WY Q[S`b[f`%YYQZR`HZa[[SYQ^XKa[;\U YP]U}b?\G^kWmYQ[~TaaZ`YYsZR[Sy_Ya\^ZiTYQ^tVcY_R]LdO#lUTjPdIfpKbjZSHh7V3]LPZP_*Xb[[UXS7]bXdy` _D[MY@Uj\Xa\`0ZY_R[iT aZaYZk[R^ZoR`Xb`[\UZ*R_Vc<[^CWYQ\)TbZaYZsR}[RDaIYa]Z[RxYP_Wc\^U:Z'Q^Ud[_VZQ]!TbZb]Z[Qv[QSaXcl[]rS[Q[`Wd[F_VZ(Ph^AT@e[bwX\Qz^ScUYc2X]Q]QbkWeZ_R\Prb7VfZaXUW]O^R'eZc^X-\O]Q$d=YidY]sR[\+QrbX{d,Z^S^Z]O`U2eZ6aUZeOK^SdZcY[P\S]aY;cl[)\S[Q_Vd+\^VsZQ^Vd\^XZR,]Ujc[ayZ[ZSl]/Vad[Ic\\TZS`-Yd]^JX!ZSt]W@b[(aX\hQ aBRNiVl+VfNetLkRlSWaQ]Q`Xtc\X_Y[ V_[da8b4_[IY\Z`_Sa^[#V[Ui`T[ed^]WC[T,`Yb] _XZT]2Xyb\`QZqYR`[U{`Zla[#[TsZS_YOd^=^WHZRa^Wd^_YYYR\+VaD[`aZ}[)TZSP`4Zub\B\T~ZR_We_]VYkR^Vb`XZRp]Ted[aY[RO^S(aXbcZ>]S\ORi`Vc[X_TU=ZP^DUe ](aXYTP[\ScZb`YAa[ZTUXR^WGb[!]tVXQ\Uad[z^XWPZSp`Y`yZXhQWY R<_X5bt\.[ TxYGR^Wa;\3]hVXQ]VIc\;`YY6RHZ>S__=Y`qZZSZ*R^WWbZ\TBY'Q^Vxc[_VY Q\SIcL[aYzZlQ\RaXaXQ\SZQX_sWGbZ\1TYlQ]7Vcb[^WBYR[]T`0Z`ZY>RYR_X c\LZSXR]2X b+\S] VYQ\U*bK\ _X1XQy[,U aW\E`[YSZQasW"fAY aRN7`JgOlUgfNYb*HVeNgVb]HVha[`zYWYRZ2S`XDaYZ[SY"R^W)c[E]TOZ:R]`VNb[_WaZ:R[SNbZaIYZQZQ_ZXaZd[S [R^lV c@[^VZQv^U%cZ`sXYPB\RbYbzYn[P5[lQa2Xd[\RzZO`WdD["_U'[P^SdYbW\O]QdXcX]O ^PbVe Y^R]hP2aS9eYsaT[FNv^RWdYcW\mP^.RbWcJX[P0\QaVcrY]FS#[P_mUd4Z[`VYO\S*bZa-YZPZQL`WcY;\*RZP|_VbYZL]%T!ZP]TFcZ0`WYDP [RaXbUZZ_RZZQB`WazY-\RZZQ^ Vb4Zw] UxY Q|\Sb[7`XPYPq\SubYbY[QZGQy_tVMcZ\S4YNa^vT$dZ_$UZiO]BSbXsaWZTP8\:RlanXbYY[QZP_?WbY\TYQ],UbYr^?VYQZ S`Ym`YXCQ:ZR_X]aZZrSYR^^Xap[[SXO;\%TaZ_UY XRZT_Y arYwZO]OfT>jYTdK4cGriMlWRgMapL_:RgbXN_V:Z R[T_T[`_\[VQ\V_[Kar^\X<[Sn_oWFc\^XpZR\@U cC\`Y[RS]~Ta]Wa[]WX&R[TVb[\^XUOgXQVaZ`3[fYRX&R]XHa[ZSV#Q\"WP`[j\U1XQYTa<[`T[*X6R@[Uc_Y^%YYRYRa^YubK\\ UW\Pq\V`Z]WXP[T`RX^VUXO#[S_X`YYpQWPPY^W`\[ZvTVW}P[Ua[?\VUOYS_Z2^YYWQWR>]JX_yZXSWR7]ZX`\YT:VPZUy_Z0\WVXPY1Tr^YW]XUmP{VR|\ZX_ZY[RXrN_hQpgUtcFN_kH d6M1iRgP^MJ\M_U]?V|XP7VOQ&\XJ_\qYxVXU|\Z`M_`[YW~SZTVP`[ ^:XOWO4YR^sX_YYQX?Q\VaZ~ZSX|Q\U`Z]VWqP@[~TaZ^XXQ^ZoR_Xa,Z{YRY6Rr^CWa]Z \9TlWOq\Tb[o^hV&XO[Rb$Z `XZCQ'[WR[`XbZZ[R5X(O _Uc[5^TYO]TcZ`2W'[P\Q@bW4cX\uP[OaTdX]:RN[O_SeZ`U [O^wRd YbX [O[P2a W7cY[ Q^ZOb`UbWi]Q[N^SldY;`HVWYN \RarY `WWYPaZQ_W`bYy[-SZQz^VwaQZZTgX0Pl]}U.bZ7]UYQSZR` ZaaZ4YQYRY^;W`$ZZFSXQS];Wa[\UYXO,]*RdGWeBS`IadKBjQ kvSaK^M`Ua ZHZSRW?Q]2Xb^^]YXTZVf`]^aZXR=ZR aZaqZYdQXP}^W@bD[N[>S|XO]pVb[^VX(Pn[rSaZx`XYPZP^Wa4ZY/QHZpQ^VaYZf\eTXP]]UVaIY4_VtYP[~SaY`RXZ+Q [Q;`oW bQY[RZPJ_Uc]Z5^iTYO$^TcYVaVZO\R#bGWnbW@[OY[ Pa;Wd$Zb]VSOZO_U4cY^TY(O]RbX/a"XZXP\sR(awXaBXY[_RYP_#V.bY\)T_YP'^HUbZ]UYP[SwaY7`XqY?Q/ZQ*_WbY~Z&RYP5^VbZ\vTZQ]8Ua-Y _WWYPK[^SDaY`WYPN[wR_Wb=Y6ZR/ZQ^?WbD[]mUXPP\Ub[_:XWO@[R`bX`0ZqY?Q7YhP^?WnbUZM\SXhPW]UaZ];VXP\Ta-Y_RXYQ[RT`QY6aZ[RIYGQ'^`Va'[[\YT1XDP]TUUbZ5^#V0YP|\~Ta[[`sXPYtQZR_XbYZRXP]VaiZ-\ATX;Q\TaZ*_W"YPv[SayZ+aYZgR[R)`2XaZC[RY/Q^VnbT[Z]UCXP\@Ubp[g_ZXYP[jS8b[rb<[ZRZR_W~aZ\AT^ZRS^W"c3\d^V*[%S ^Vc\aZ3Z\Q ]Ua0Zb[\S]eT1bZd]5^VZQ`Wd\`*X;\R ^Td\cH[\~T[\T~aYbt\]XV\TZap[=d^\VjXQ]2Xc1^sa\LZT \V@bZ]`\LZ~TYT^ZXa\B\VZXUF_AYEd_\XZ9Tv^mZ*bm_y_[X:S[-T{dYfX+a.M\bKj"Rl$UFfLbJfREg Y_;VYR^]WUb^u_\$WTd[WaH` b_[ZYjX^3\_\\SWYITR^wXa]_ZYS&\V`p[la[C[TYTE`Z#b\|\UY-S^Xb&]^VXYSz^BXb\^XZT\Va[a[[T\U`ZcB]\UZSb`Yld]]WZSb] Vd*]%`XHZR"\Xb^aj^X)TXrTCbE^eOaY[WOZTy_Zd`~]ZYT^=Yc`Q_\WT[X5b^|c_(]VJ_qUeW]T]TGbZe\^U[RaIYf\aoW\wR_U-f[dX]R^vSdYeZ _:Sa^RcX g+\aU]QgbsW3g\bW^]Q_Te\wdZ\oR~]ScZe\]UT)\S bYNe]_.W5[R!`Xd]`9YZSO^Vc]c\B\T\ U#bZc\\iUk[nT`UYd]_bXZSJ_XSd]aZR[ZS]U cC\b_\[T\0Ua\?c]\U[AT`Yds]`1Yg[Sa^ Wc>]aZ|\T'^Vc\cW\ ]T3]UTbZke.]U_V\UT2aXke]aX[R^Ud\d<[/]jS]jSbHZe] ^U_\TaZd]^GWZR_Wc],`-YZS$^CW d]c\\@U\Ua[c^\UZVS`R_WWLd\`UY[SJ_Wc;\b[[ T\ TamZ d[\\TZ-S!`wXdk]n_wXpZ S_Xd^{`Y[1T]pVb[bYZ]0P`OgSlUhfNdKxjSQlXcT\Q^Vd^^b\[U]^Xce_d[bq\ Y[Wa/[c\^W[T;`Xpdc];`WZR]/Vfc?\b[\T\Tcx[c?\E]T[TayZdc]v^\V5[_RJ_VdB]`X<[R]U:d?\c/[f\S3]TGbHZ(d\2^XU|\ZSaXve\_WQ\SX_Ve6]bmZ[\BRr^TcuZ2e[3]R ^iTdZe\^UX\:RabX8f^]`Wd[R)`WGe\`bY9[Q>]1TdZdd[\fS \R#bYe\}^DU[RaXd\Ha%Y\R^Uc[b+[[S\SnbZc[\S[RaZEd&]^HV[R!`kW9e]a%Y[So^PVc\*b0Z [S\S`bZc_\]UZ S`YY`e^j_V[R^\V9e\aY [NS]V?cK\bZk[ SQ\vSha,Zc]/]U[fS`%Yd.]`&X[sR^WcV]sazY[SL]]Vy[T%`^Xdw]_W`[T^[W4c\b[\ TM\Sa[c+[)\T#[S~aYed\Y^V@[:S.^Vd ^`XZQE]UIc\b[N[S[Ua[$dF]A]aU&\SDaY{dw]^GW[S^Wldn^.b[9[S]+V?c\bc\] U\UaZc\]Vf\UT`IYe^?_W[!T>`Xd]bZZ S^2W7cZ]d^^]U[ Ua#[Cf__W[-TaYd^`X[VS^*Wd]bZ\S]Tb\oe]z^V]}U7cx[e]__X[S_Xc]wa\[]U ^Wd^Yb][lV\W aC\aa\M\V\V`d[c^^vY[\V*_YAda_b]"\V^*Xb^+ao][W[W)`R]c^]#V]RePVm$Z'hQOdLhPn[W lTb5Na6RqcYbd[C[T<['V`]cla\Z[iZ__Tc~c`v^SZV]Xb]rb]ZU\W(ao\`C\[U[Ua[ c%^]^XYS^Yd_f`[[To^PV4c]4c\ZZS[HU*b/\c1^-\+V.[rTF_XdU_^X'[T7`Xe ^`]Z[1T\Uc\c]\U[0UaH[d]^V[TaHZe)^_V\Rf`sWSb]AT}bZd\] U[-SaYe&]'^;VZ!S `Xcs]`YtYR]V6d^a\[!T\mUap[b\\U[U`$ZpdE_'^ XZ!T^"XTc]>`iZ/ZS\VbB]a'\ZTK[U_Za]@[VZ@Ux`Xe\bT`nN-fPmVjQZdlKfN_j7VfW]GR"\S`Zcr^\W6ZUB`\}eb`V^*[BX\Yc`a{]DZSR[Tbc\Ld^Z]hV\U aZ?cW\]VY[S`Xd.]`YZRb]Vd]b+\[S8\]Tb[ck\]Tf\TKaZoe%^_W[vS7`"Xe\saY[S^PUc[cZf\FS9^DUc[e]^U\SrbYe^]`WH]R`WIg]!dZ^S^S)f[f@[`S_RedRXg[waT^>REd"X2h[cWv^QbUwgo\VeY^Q>`rSex[f[R^NS]R|cXf]_U\BS#b*Xf\ubY\:S^Ud[Pc/[]T]]Wb\fc]\V[UZaZ,d^^^X.[T_Yc]`UZZZS]Vc{]Yb[\T\T cC\Pc\\Uu\vT`Ye]_V-\-S`Wc[\bY]UTJ_XV$d[cZ]SZ]SbXd[ _T]RaXek\aW\R_Udx\b@Z[R]Tc[|cD[[RS0\S2aYdV]Y^V*[RN_WZd]`XZS\U1b[a3[eZ S)\UaqZCb'[-\UTk[S`4Zb2]]V!ZR4_Xd]n_XZ:Sf\iUbS\aZY[Sq\Ua3[c\M\(ULZR_UY d]^V#[!S.^Wc=^p`0Zn[T]'VCb/\aZg[T\T`Zb]]V*[)T_IYcV]^2XYS]?W?c&]aZZT[aUa\b\X\U[T(a<[c^]V/ZS^Xcc]`Y ZSw]Vc\a[Z1TZTa[b]X\Ug[T`ZPcR]]WZnSv^W d]_YZ%S]V4c&]a[Z%T[Tb\qck]\mU$ZS_Yd]^FX!ZSL]*Wed^`/[[%T\Ub\bW\[T[IT`DZc]\UY S_YLd^_Y(ZS^>XcE^aY[RS]UIc/\Fco\j\TF\rTZaYld]^aUZQ_GWVe6]_.Wn[R_VdG\\bZ[>S]aUc<[c\[\UZS `Y?c]]VY^S_X(d^_YZSF\lVb]]aK\ZT [HUa|\b\\Ug[S_Y;c]]WYS]*Xtc^aZZgR]QfWhUcSLfK-mQ]o%T[gNMc3LSq\]Uc]Ed*]\T_\TlaYdZ]]UZ!S`Xge^_W[GR1_Uek\GbQY[:R]eTd[c[X\ETj\TAaQZ$dc]t]UZ S^XcA^_vYsZrSZ]V)c^a3\ZT*[TSa[b/\[ UZT`ZZd^][WYS1_IYcE^m`]Z>YR\Vb]Hac]YT<[-Tb4Z2eXVaP bLhPnU?i,OdJgXPciXbV\R0\~Shat[b][wW[Wa_Sdb\YY[W^[UbV^^nYy[T=^&Xc]b[[T\aUyb[c_\&\S[TwaZd^];VZR_Wd]`Y[R] VAdB] bZ[Tl]PUbZcc\\T[rS`b0Zek]_W[!T_Wf^baZ?\S^VWdx\c[>]S^ATcZ*eG\^T~]RbXg]a"W ^RaWgV]d(Z^R`,UjfZf[_R`ZSeYigo\ aUF_ScXh\bV]^\QDaTg(ZfX^Q a$U?fZf[1_1T ^Rc4Z3g^`Vf\fSaXf]aYq\nS^Vd&]c\t]UG^V d\d]]V|\TwaZe^_W[nT[`=Y?f_Ybx[n[]T.^gW(d]c\f\TY^T`ebY1iJXeOe"MlRp*WjQ d OcaUfR]c<[]U_XdX`e&bD^rY]qZb_d`v^wX\Tbl[uf_aZ;\T7`RXe^c[\~]T^Wc\d2]]UE]VGb3[`e]g_"X_\S+aXf^bZ\]T`W4f]e\^PU<_7Vew]h_`V?_Ucd[}h4`bY]Sa1Yhad\_U[`WNeF]Sg^1_?W`V#e]g`aamZ_"Wd\zh_aaY^UUb[gbGe]y_X_Xe_fD`^kW^gWe]_bgbhaZ]pV;c]h^cb\.^[WB`Ze_}e^^XX_jYd^e`]W ^Wtc ^gbb[F_Xa[eq_b\[U5^Ye`=d_\V\VFc]cu_4_YX\xV]a[c^T`Zt]*X!`'[cf`a\[UH]bXld_)c^Z]W$^W@bc]b]\oWu\HU`[Xfxa`[ZS]jXd` c ^[aUp]Wc]br^\_W\WWhac\d_]W[U`[d`5^(Z[UY^-Y0cN^b]\W]Wb=^cb^\CV_\U`[Ge`^YU[U^Ydt``/\R[uU^BXd_b]\PV\?Wb]c_&\GWLZ~Twa[,d=__Z[U^Xd_a\d[V]Wc^/dE^\pV\Va\7c]\"WZT,`Z$d%^_-Y[T ^Wve_[c;\A]U^*Wds]Ad2]]U_\]T1bZdn^_W]U`Yldr^waZg[T^Xdm_c][U]XbZ^c^q\V[V`;\c}_^Y[/V_qZe`a+\HZT^Xtc(_cw]\;W]&Xa] c^\2X[V/ac\(gl`b"X_'QeSmXklT"f[MRhPkTUj.W_Q]Srb[{dA^]&Xj\W`w]]ecB`]F\Y_]wdb[`^Z&W]Xbk]2eM_D^X]gWb[dI_ _X[rT`aZ_f`a\[\U _JXd]id]!]tVa^sWLd]e$_^W]Ub[f_`X]UaYf_c[E]PU_WYe^e^]V4_.Wd&]f^,`W^TU0cmZg0_cbrY^qUa1Yg=_#e@[R^SaWg{]f]T`U`U?f[Ni^bSW[`UeZ-iz^dXg_:StcwWh]fZ`S5bV h\ h ]2auU`0U-f[im_YbW^TcZh`)cnYK^T`?Wcf]e\=^iUT`KW` X.e]/dx\t]U^Wc&]e^Y^CVw]]Uc3\"f``Y\U`Yf`b[\T^Wd5^dI^w]V^kWd*]e^_*W~]S>`VeZc*X]Pn_SdYebY^GR]hQbGWe+[,`T\|QbVf/\bW\pQL`Uufl[$dX]*R _:Se[e[_Sp]Rc Y!g\f`iU^:SbW0g.]cX]R`hV7g\ed[_S _SreZ2h\_ZSg_S$d^XhC\bU"_QMcVh]Re-Y]PW`!SgD[fZ_R[`RebYg[`S_RWdvYhw]`bVw]QaCVf\reZ^VSi`Ue[e+\J_T^S6d4Zg]_U]UTbXfZ]bX]S`gWFf]d\D^ U^@U`e\-fo]_V^T;ciZf^aXH]-TaY0gA_cY]rS`tVe]Ne+\^T^]Ued[f^_V]TcZTfn^x`Wu\SaXf^(dX[]]T_V2e\d;\]jS^%TdZf\<_U]RcYf\`V]RaVf[dEY\P^SeT[e[]R]:RcYf+\_vT]CQ aVgJ]cX][RaUel[dY\QQ_Sge4ZeY]Qh^Qc:Xuf\a@U]Qa?Vbg+\bXV]lQ`HU]eZcX]7Q^oRdIYe<[_Sh^RcX7g\ aU]P/aUg[cW\O_RfZeY^R^|Q4cCWxfZi`SD^Q_cWg[Pc;V9^@Pla T(gqZeFX.^ P`RXfXfX)`|Q{`Q}eWg9Ysa)Su_qP(duUg(ZcU|_QKaeTIgUZAd X2^Q_)SeZfZ"_So^QcWf[%`Tb]PbCWg]%cX!]P`$UXf[dZ].R^SdY)f[_1TH]:Sc@Zg\bU`PfSnVl6R iqJkLqSGoGRfLcP!gXh\`T ^Uc3\pg`TcK\j_YZa\gbcm_]W_V?f ^bg__V_Ve\f^T`^X^UcZ h(`ld[$^XVaAYf^keV]K^VL`nXfu_gm__WU_V!d[g`bZ^ Wc[\ah7adw]_Wa@Zhlae^_W`^Yfy_qjJbaY)`Xe]7jbb[{`WeR]+kzcfV^_VaXjaIj`Mc9YcDZh^tja$dyZbXg^'lbvh]cBXFf[kbh]_PcUYc[,jlajdabzYnb-Yitahkdc\aZe1^ibf^`X c\icbg`_V_X1f_SgX`_UY4_We_gaa[l]sWa\zhc4f_^X``[fdaf\`F_VXh^WcV^hb`(Z^Wb\0gb(a[]W6a;\ fb|c_!]X{`Zc_c`^@Zr^Zd4`-f{b^H[\YbE^g)cc^E]^X1__Sd,_>]Va^wXead^_W_RX)c[^g`aXi]:S(aWf^bbXG^R/aUe["cWr^Pa^ Q|cUidW\M\NbTjfnX_DP[KVaSRfW`tQ[dKO^NwdUdT]"M]VNcW`[e*bd0`,]X^DZd`_f{b^Z]%YPc_nf_b`[H]XbV^g~cc^^jX`[faCf`^VX_XVe^g``Y_*Xd],jcve\`XbcqZ1iauf^`XbZf_7g_`-Y`Xe^ha}b[^SW d{]?icc^^bX b\bgbe'a]Xc_Z@e`f_b_Z^Y_c`fd`*]\ZX#b^gdtc_]XP`\TfJceb]4Zg_W\ldaeb^\[7]=Yab^f9da]f\X`c]fcTc`z^DZJ_[evc]eb]Z1_[Edxafc_[]YcT`fedbY_\AYp`]fdct`^,Z`[eGafcb^Y^Ydt`ohd`[2^Xcn^hc,dv^R^wXKa\f2bfBb^IY__DZeagcU_[d^YZqc\`fd_\L]Ya_fd)c_\1YL`s]ecca]YO^ZdOb_fd_G\\Z}b_Ffzcas]\X aN^.e)d`b`[Y^X[Sga i}_cVeETmZ8pl[iVSgpQkXl]AdZ^Woa]eJbcaE][^^"fe!g!h^U_>]]bbf e7`Z]]YJb^gdb_]Y_[fcepa]^)Y"_4ZeaFfb^Z]AYb^Lgc`[^X5b]hd,dY_~]>X_[f2be`^X_HZc}_ga(aY^WcJ][gbbD[3]PUbZh_Ye\_T`Vf]gB]`9T`STf[h\Ka!S`PgeVj[eTW`OcRiZ9hXaO;cQhWh2XwaNoaNnfUi^YcGQVa-Ne=T)jZjftV aP cSnio\g[u_SRaaT_f[wg\`S*_RcXVh]KaU&_^SbWig\cAY^R>`Uf]e[^S_iTdZg6])`TU^RIcYf^`X]RaWf]Ad^XaPPYeOnToSWjKL j#LEnTmXbR<_QbcYg_cZ_U"cG\9hJcd`]V_;Wve\g^_S_^SdL[g^`XVw]QTcYkh^cYY]SsaVf)^e\^TT`Ue\g5^_;V^T0cZgy_aX]U!d;\ha(dB]]7VaZgaf_^?W_bXf`hb`UY}^CW d.]iWbc\^Wcd[Uibg`Ha^YcL[tgH`g``VXP`jXTf]_g/aa[_2Xoe^icd>]|_WaL[hvcet`_X~a[gwbgb`[`uZe_gcb^]_Zd_iQd'e4`_iZsa/\7gc"fb_uZ!`+[e?a+hdaF]`+\b^}ea7`X[]X b^ hied`\-Y^[eac`]Y]YZEda?fc_\^[Sd&b{gea_]ZKa^gdcd`_\X]\ebeb]YL]Z:dbfc^H[\%Y\b_ fca ^^]Y^[LdBbCb4`\9Y^\cavec]XZV`^ed?_G\A]Z/a_fe}b_\wX^[!dbdb8\QY]ZPc'aca.^Z](ZSa^Oda7`]<[WW`^eYdNb`W]ZF_C\dbd)c^[y[XbadbH]Z]Zcb`ed`r^[Y_j^Cfcb_[nX=^[:dadb\Y\(Z b,_Yeb^/\}[-Ya_>ge`^\Z_]eZcxc8`\X}[FX@b^dda$^Z\jXb^-faj_Z-\W`\eaAa?\ \\V_ZeKad=_p]KW^Y,d`ve|a^-Y]Wb^ea`[[[W_\e.bab^\ Xr^[,d`0c_0\W]YbI_eObS]YN[*W`]wda_[[WF_;\ebb_,]X^'[cGa;ca\Y^]aZfcY__f_aW/a:RhtVlYiSgX`[gel`b\]V_Yf`e`a^JX^*XEd^fa_Y'^XPc\(g'abc\7]VaX[fad^^V0`Ye_f___W_W*e^gOasaY^V6d|\iaAd[u_Vb0Z'h_f]_PUaWPg1^i` bWasW?f\j`!dYYi`U]e[j`g]`V*bFX@hz^g^(aVawWfb^h``Xy_Ve]Ui|abUZ^Vb[hxae]^W`Y-fY_eI_^WW_XdZ^f/a_X]Vb\gda*bp[7]xVla\[gad]]W_Yadb^f`_Y^"X/dE^faE`Yu\xV\b\Lgaub\]V`Zf?ad^t]pV_Y(d^e`c_ZX^VSd&]hhaT`Y}^Vb/[gT`c_\^U[` Xe]e%^_V`We]f___W^TVco\g`*bZ\8UaZf7ad]E]V_QYNe4_e_^W]WWd$_e`_Yt]Wb;\ftaAa[\V1_nYe_d0_H]V^Xe,`ke`^]W]Xnb]0g`b^XwaShVnYkRwgMkQq:XmoW\bQaXU6d\jf^|_X}^YdU_vh)daj^^Za`ecKa&]]W`Yf`e^^KW`Xd^fE_^xVv^Vbc_\jf_buZ]U bY3gae]^lV_bXf(_e]X_W_oWRe^]g_a^Y _pVb[dhaaY^UbUZg^dG\_VHajXCf^_f^U_U_Ve/\h\`b9Y `hVcZCi`eZ_%TcXh^7g\aUb#V8i]k_?cVybUgp[jy_1fXaIT4fYj$_faZ`AT?cWVh^2h^`TbW^g\-i_~agW_?Vad@[h_cZ_\V cZha'eB]D^#VarYf,_g`>`WL`XeZ^gd`aZN_Wb#[g'ab[]Wla<[#ibf(` _wW_We_ft`u_X_bX d\pg`b[_Xdz^Qicc]^WaZhae_]WW;`Zf`ga`[^Xf'aNicd^7`XdZ]h1cid]_:XNbZga-fL`_vY#b[qf_g``X]Vb\hbc].^X b\Iga/d^.^X_Z fa6d`[Xp]Xd`fBc,`c\^Y*b^eb`] ^%YAa2]dac_ ]X]QYa1^ cD`(]X'^mZ@b``ed_x\\Wa?\oh`fYYcQgVSpZnVEgAOfP kYhV] _tV\PVVa]ve c`^[Z`^esg|cd#[H[Y^^]_ccca[W\Xc_ea^[8\ Xb]>gcT`\ ];W`\d`d`|\WO^EYc_c_"\.W\Wc^[g5c_3[,]Wb]fba\Q\W`<[fac1^[Um\WDe__fat]W\Vb\Ve_aUY]^Vbx[f`b\^W`Y3g`f^_X^.W4f]fj^`U_V2e\i`[cQYE`HV_c^YPg]dZy_TJbXg] f[_ToaVeT[g&]a7Vz^TcYh0`JbY^VbZf_(d6]\UD^2Wd^e(`a^bX]Wb]vel`^X\Vac\#e``d[&\U_Y_fy`|c]\TVR^Xc)^LdA^\V]Wb]"f6b`UZ^qUEdVkt[juUenNhQnY+kY`RD^TMc\e`_YZp]Xb_eNc)`]]\[T`^encPc^w]wWu_zYd_id^][WD^WdN^d_J_^Y]Vnb\ f`a[\#VaZf`Ld]]/Vo^Wld^e=_]V^2Wc]Sg``^Y(] Ub/[[gab[o^V`Yxf_dw]]^U_W8f^f%^_W^Ud]h``"X ^Td\iajcZ&_U`W!g]ge\u_U aWfz^pgA_`bX^UdW\-i`%cZ^TaEYg\`pd\]0U_Wf_e^^V_JXf^3g\`y_XB\ITcx\g`aZ]VaZf`,d]\U!`Xe_e^^kW^"WOd]g``Y$^tVaZ3gL`7c+\]XV`Yf}`Re^p]Vg_*XWd]eY_z^&W]\Vc]}e4_]a]\iUo^WcW\ f_~]V_\Ub\bg\``Yi]PVoaZe`bl[q\T_bXeE_9e^ ^lV^Vd]f_^Wp]'Vb[f_aY] Ua(Zwg`$d[]T_CWe^\f]^XV^Ud[f]a*W^T d+[f^5b-Y]ETKaX(gT`d]l]PU^W~dV]@ez^}^kW^2Wcs]fu_<_WZ]U`uZf_5b[M\HUj_:Xe,`c^\]W"c]`+[@[Uv[U a[ b[\[`VZT`3[;c1^]VZ)Tu_Ycr^_YZS\PVbo\Gb\R[U[T6aZTc]f\ U[S_XdV^^KWZSR^pVd]aYU[R^Vc/[bqZ\S]iTcZ)f\^QT\Rub*XfB]aWb]:R`Uf[Sd%Y]^kR_ Tke[eZ ^R]:RbRXf]^Tw]RagWe\`V.[;Q^8Uc[bUZ[oRH]Tb`[c[8\S[S`Yc\]VU[T^Vc\=aY.[SS]PVb\a3[zZSU[T@bT[Mc\[TY"R_Y=d]N_WYQ]V c]_XZFS]Ubc\aX[N[S[\TUaZIc^][qU Z)S`Xd^]VY:Ro^2Wd.]i`Y[YT\TGbZ"c[[S[Soa(Z_c[q\QT#[R aXLd\8_U[Q]T(d[5bY[GR^$Ubt[ad\q\eT[S`Zdc].^VZR_Xc]}^"XXOR,]pVb\oa[d[T[U`<[b&]0\U!ZRQ_YIc]]WY>S^ WPc]_YLZT[Va]b["\R ^SQeUjVe NcJiPAnUg\Pb`Loa%SdZ`AY.[T\Vybb^gbr^[W\X+aU_xc`\bYZDU^Xd]<_XZ S]V/dV]ax[ [RH]qUb[c[[YT[Toa,ZLd]^UZSR"_Vd\n_W[R]UdC\c[[RSX\TbZd\]DUM\SaYew]_W\VS{`Wd]bY\S]Tdp[d[\R\RbbY*e/[*_T\RcbFXjfC\aV]QbUFf3[d Yh^Q{`Sf]ZfZg_R^QdX%g[AaT]Q5bVg[cW]P`YTuft[dEY^ R&_2SldX}eX _S] RbXf\7`XV\Rb`We\aX[R ^UdS\cD[[R]Tb[Ld3\p] U[SAaYdv^_:X<[R^Vdo]aYZQ] UEd6]cc][\ U\HUJbZeZ;`.R`M=hGQm(UjqPfKjQ#lXeW\Q]U|c]d^G^W]^Xb_da]mZZVi`Ze_aX[jS]Ve]cG\W]T]Tc\2e]^V\)TaYZe%^L`WE]Tm`QY'eB]oaY;\2S]Tc\e\~]U9^Ud_\re]^pV;\ TbYf^gb-Y\THaXg_ed/\^$U`Wf^e\]Sj_`V]e\>gE_`oW^=T!dqZhl` cY_8UUbY{g^f][`Uha&Xe\gY_`Wy_7Vdo\h`(a^Y^U0cZg`6d\\T`Xe5^d]^V_sXvee_e8`^^X ^Wc]f`m`uZ^]V bx\Vhbxc]\.W"_YYe`.ed`p]W]WJb6]d^^X^WUb]et``ZG^W`[geaGb\\WA]JXe_d_y[V\oWGb2]e?a]X;\Vak\d``d[LZT]nXdH`jc^U[TV ^nXa]bk]\V\>X`3\e(`_$Zn[U|_L[6d__0ZZU]IY c^|c^$Z`/\ dX`p`t[y[Ub]:XOdM_`\ZDU]X1b5^b^ [\V\*Wc^d`].X-\lV_Zd`_Z`[lVO^EYcM_b]`[V\W8b)^a][Vk[iUa\c^W]JXn[U`+[d_f`Z[IT^Xd_aC\R[U^Wc]d]\iU@[BS`nYcf]_%`UY\iT_We$_a[\V^FXIc^jc^[;V[Vcb]c0_\V[U_D[d8``Zn[U^zYAd_cbs][/V\Wjc^cY_|\tV \ Va[Od_]XZ+V%`t\f``X^R)cTjXj,Ud*MfRN?m@UZnbXYeQaR czY*e]]WW[HUW`x\d baY_m\QY_]LdBc#b}`5[X\Ybc^Re_&_FX]V b\re_ `zY\DU_Yve8`b\\U,]VYe^d1^]hV]?Vd]ee_^XZ]Vb\g4`bZ\ U_Xig@`c ]\$Uj_Wd]e^_SW^]UdW\g@`SaY\TTc[g`c#[z^U`Xfz^"f] _U`WfZ]!go]aaV0`$UeZh]cX`T~dYie_e]ZT`rTc>X-i5^pg\AaUaU h\h)^aVx`UeZXiy_:dUY_ETbXHh^}e3\^@UaW0g^f]^U;`;Wre]xf_>`"X^Ub[g`KarY]^UYbZSg4`e]^V_XTfM_d-^^VD^]UWd\Jfa_` Y2^#VIc[g`Yb[i]U`Y1f`Ne$_^xV _;WeZ^f$__W _GWc\f_saY2^PUybZPg_c[l]Ua:Xg$_fs]_TVU_Uf\$h^`W_aUd'[g^abX]0UcbXegy_~dG\^U_WeE^e^2^W^Vd^4fM___BX~]TVb\ga aHZq\T_Yf`d-^b]U9^RX#e^e(_o^GW]\Vb[e`c_ Y]Vb[ahy`erYaQgSosXn,U}hMbjQOAnUl XaR_ITcZg_0`Y]_Wb][gdc`]Yc_+\2e*be_]V^?W:d*]!g_W`X^Uc\Eg`VaZ\$Ua0Zf_c[\Si`Xg^f^^V^;Ve>]fe_)`W]TFc@[gy_gb$Zv^$U1b^Yeg4_eo]^U`WeV]e1^`;V_7VeK\g^`oW^TcYh_eZ_UbXh^g\` UaW^g\i^b'VaTufZkz^eXhaTeXxj^gZaRbVi^h\`Sa]Uf[8i^cWKaVe[i_dZ^Sb1Yh0`e\g_}U]a*Xh^_f^__W _&Wd6]0g_`Y_>Xd ^#ia!d[_"WbL[h/aDe^_W`RXe][gH``XT`Ye`haaZ`rYck]j)cd]_nXAaZLgafa`Y0`Yfahba[P`Ye0_hcgb\]W`b\icfd``UZaZgahbaZ6aYg`icub[|_XOd]?ibb\__RXc[fadz^>`X`Ze`ea`+[_T[ReX`Igb]a ]i]Ya^Sgdb^g[X_[ufbd`^nY^,Zc[aEd7a_[]YMc}_gb6a\N[W a^gd,`](]XaZiM_iZTf&RgQmsWoX hPPeQfWh_Mc\\Va-^ed2aH`\[)`^^kePeke,e[#[\Zb_ec`[]Xa]eacb^["W{`x[fcLd_]RX^Zdp`d`w]Wh^:Xcu_ fbKac\]Wb\f brb]>]W(a\[gbld_]GW^Ye_e`K^X]Wc^gFc`Y\V\b\gbPc]]V`QZ:g|aJfE_'^TV_.Xqf_7gL`VaY^Vd;\Ci`$dZ^mUb]g}`b(Z _?V8bbYf^d[`V(aWf*]g^^`W_GWd^]g`a$Z^kWaZf`ak\~]V(aZft`cV]]Vc_X=d^e`_X^XAd^Jf``Z]VwaT[\f+arbW\]_W_YVe_(d^\Vr^ZXeI^g^bTc+QjUpZ lHUfPigUi]d\^WW_Yd`ea^Z.^3[ca f e^&]>]4Zb^Igbrb\] W=ad[g7ad^^W_ZeD`-f`^W]Vxc ]wgaaaZw]+Vb\gad]^"W(a@ZEgae}_Y^?WT`X1fa_f`_BX_gWSdV]g`SaY]iUc3\had ^y_VbYbg`g^`XaXf^hU_.bwX/a Wf\"jadZB`UcjYi\`Igk]_T`bXh_h^aW`VIg^i`b%Y[`VGex\jwbc#[^V_c@[h`fA^g_&W`XeI_g\`_.X_XdV^hOba/[^sW"c\ga{dZ]$^Va[g3ae__ X_&Xe^gOaVaUZ^WdV^hbybt[^Xtct\gad^.^WZaZf4`f_^W"_WYez^$h.baYZ|_sWc]dh*bb\^Wb[bgWad ^^W`EYg`ga_:X_ZXd^hba\[^Wc\ha=d\O^Vb\Vhobre^]V_Xe_f`U_WX_>Xd4_ga`(Z^Wc]hbd]|_X\b+[g`eq__bXp`YRe^wgKa`Y_Xb\gxaubl[z^WUbS\hbe^^W`Zg`e_,`FX_-Yeu_ib`Y^W~d^hb"c;\ ^WaZi-cf_`Xacg{]cZHh0_kc=h=_CbYd&]ja jlabZd\mj^ckudd3\b[ h?ajDed]a[dA_mjXef___Y}b\EjdLgFbm`yZa\$hchqdGb[!`Z2eaj e,dM_&_^Yb]hd_f`_HZ8b\Jf6bgb`'[`Zxf7aOhc`[^Zc`hecU__XDa/\iieVhc _Z`[keOagBc6ap[m`ZYe(`8id]a\&_)Yd^incc]`Y"c\hgbh*b aQZ`vYha`[f5cedt`]^EY_UZf_afbE`Z^X(d^hbcc]2^Xa]fa#eM_^X`ZeL`f/a^X^X-f_+hb`$Z_Xc]hncb\_X_c]g[beA_<_VXaZg`h`x`1Y_JXe^haa@Z`Wf]i|af]`[W[cZj7a9h^aVNb"Wi4_ri_bW}b*WgZ]Bj`WdYa Wcfk\j`f\oaSWcEYh_2h_asX1b Yg^Ci`cbvY>`&Xe ^]hab[ _Wc\haez^_sXaZ\f`e_`Y_Xe_g[ba[h^_WcR]ohbc]o^WwaX[hJb#e`^W{`Y8f`ga<_X^XdY_hca[_Yc]}h-cdV^ _WKaZfGa f`1_Y` ZXf_@hbaZ%`)Ye_6hob*bZ_Vc'\hb]e^4__WauZ6hakh``VXDaX6h\`g_saX`bXjf^#ibct\d^SWbK\g6bd-^ _ZX`yZf`gb`aZ_%YeagFb aT[R^ Xc{]hbtcj^^Xb\'h~ce`|_-Y_Ye`Mfa{`Z^Zd`gc b[U_Wf[n_knXgPdlET+r@ZoWi[REgT*i\h``Y_Xd,`khdb^`]dbjigGe1c]Za6]gbga`YlaZMf`haVaY_Xd^Circjc\_XTc\ibf__FXaXg`gWa_Y_9Yf_\i_bc@[lajYe]ibes]`*Xc+\h.bg4`aX%c[ h`#i7a.bY`W3g^riaOd/[aXe{]zkbfF]aVd<[Vkah^nbWfc Ybj`2k`d-YcW=h\ka0gd[ybV!g[kah]bV`eWj(_jY_dVdW\i]k}`dXbgWfx[ka2e[ bXDe[jxag^AaXbZg`gy``X~aQYf_icc/\[`%Y9e^i5ce]`Xc;\Cib(g`_Xa<[hy`uf__IY>`=YMf`jibdvY7cSiSW$r[oVk/QBmTmq@[m?\|c;Wb(Zg}`#iZc0ck]Jb\eajfcl`&_[c_idf_`^Yc/\khla@ha`Y`9YfaCibaYVaYe^jVcd]%`Xc\\ib2h8``=Y5b@Zg`dhaaZ]ajeid b/\5bc\goblxf9e=_b\fbjefJb b ]wd_i}ehda.]b]ieqj"gnbV][`Zd`|idd^ZaK\d`hdf_ba6]c}_jfkhd7`3\`B]pgdi7fb^_ZcL`hd$dE__Z[c`jf`eb`K\#b.]6h~dgcT`\j_[2ea hdaI^Aa\ewbheb$_2^nYb^ hd\f>b_#[ha]fbtgudj_d[j_bOhmd`o]W`\fbg ea^^Z(d_ieGe`^Ya-^gdfb`\`+\ebgda|\^Z,d`hec`_Zb^hde`^YZYbZ^gc%gc``[_Ze'ahed~a[_Y!dz^hdd^_Yb[\h1c(g'a!`jYSa<[g*btgFb6aZy_=Yep`gc8b2]2^YYb1^hdLd@`^Y`\Lgceb2^Z_<[ea:gc`\_Zc_dhada]9^X.b>]f-ced`^mZa^$hdgclaYbwWk[Zn[ivThQmtVr[kCVeTeiZ?ipaVe^]>X`]fced`^Sa}_1f egCga`a^\c`hdOd__Zb]i@ebg*bB`qZa@[f[akhNci`ZW`Ze`wgbtc\_Y:d^h cVe_`Yyb;\h>chba@[b[ hah*bbd[]aZ"f0`ic(d]_Yct\icbgH`]aEYc'\ib8i[acb4ZNbZ1i`jFcfcZ}bYh_k-cf6]aWe[kbi`bXe[kWa$kadXpdYi_l&b"fmZcYg]mch-^@bWXfx\$kail`,dQZ*eL[)j_ajabYYaXg_kcd\haYTf]kbcf_`Y?c\ricVhxa`XaZ2hajNcb[ZaYf`mjzdd&]aYd]cidf``Y c\hbhaa Z,`Ye@`ivcb\a@Zve_8i ctc\sayZLd]niZcgaW`YbZg`zhabZa@Zg`EjbcT[`9Yf=^/kbMf]`*Xc<[[jail`bUY4cZhh8`iaCbZ abYeA^hac\`Yd1^icJf__Xa[hbigwb`@Z`4Z1f`hcKa[[`Yvee_nivcc]F_Xc^Cice_?_FX]a[+h1cIgb`4Z`Xh^l^iXViWRoVt'[snTjdQiVmY_eg]_VbZgbhdaZ]a]f9d]kda!g\bSWdYjD`i^dWcWWj^k_adWGenXi]l`xfY"cVgc\la$hc\UbVdYj`h4_YbXcYh^i`bjYa2Xf-^jbdL[]aXd\haf^0`XaZvh`g`6aYNbZg`h2baZ;`Xd]ibc\`Y{d^]jYdwg``Y b[gah&b`YoaZgp`jmd?cV]`Yf,`jde^=aZd^ijcga a ZbK\hcjdGb[b[f`kden^;c[e_Uldyibc[oe^k0eXibbZc<[haQi*bMc[b[h&bi)dd^aD[ufajpffJb`[\bw][gdMfObB`Z`\Igudifb] `[d`\i\fcm__l[gb_ifg e_[`\fFc(gId_\T`{]}ewbdheb]`BXkh\p|alX+h}P&mPU2r3[|p'[h$Ue"Wigb^"jc]ax\\X.bT[Xibh`_Xc@[iakwbcZaXfE^hkBceo\ a;WRe[jbf=^aXOdZiahL`a-YbZf_?iaa9Y_V'e]hacH[!`Vd[ipa"fr^__ WaY%gt`pg|a`UZu_9Y9e`=hca\^Xd^hccb\'^WbZ]wggb#e0`_Z_(ZXf?aPg_bU_Yn_zYd}_gb=a[^JX c]gcdu_ _YoaZhm_1i\{dRi=To ZqZ)jSFfSh;\i`b[9^XYb]gdRebU_]=a0_Ffegf1_]_[ad`gba_YdY_hcb\^XbZ]Ohce_]V~aZhb!ga`ZW`Ye`1izc5bL[|_Xd%^=h6bd]^ Xb\hbPg`u_WHaZh+ag`yb/[aZqfm_nibc[{`VXd\j>c"f]`WcZi+ah(`5bX0c%Yh_ZkbbcY`bRXig-^Okwb}e[bkWXf+\kbg]laCWcZ-i`h`Aa XaYVh`iabiZ=aXf^ kzcd&]P`2Xc`[Hhb>g(`AaZgbl[[gaga{`Yp`YfH`ib}b[%`-YVe^Xicd]_>X@bX[$hb0g``Y bl[Ig`2hb`0Z_XNeU_\icnb[j_Xc]h>ce^`Xb[$haf3a`XwaZf`ibHaY)`Xe_?icb\^Wc\niede_^bXDaqZga ga`(Z`YFf`hbb[`Yd^hzcd]^Wck\Igaf`X_AYax[fp`^ga`QZ`Yf_-iZcb\__FXc]hbds]F_W b[[gaeX`_Ya0Zf'agb`mZ`nYe_ic.b[y_Xld5^ifce]_VXa[0gla0g`a Y]aY3g`icyb#[_We^iwb$d[^Wc\hKa-f]`"Xcb@Zh_h}`SaJXnbYg_CiOb[cZSaYYe^=hb(dc]y_X c[gae_a^W`Yf|aPgaamZ`Zqf`hbaa<[g_Xc]Uivcad^_)Y5b[g[ae``^QY{`[?f`+h2bbXcTekYq3\klVS iM^n-Ttl[nwWeReV\i_gE__Xa[gahQdb^`]dcbgpfFcz^_Yc+\hbf`_XaZgOagpaf`IY aYeE_ibb[T`WVe]nic(d]_*X c[ahaxf_i`XbYZg`ha8bY`Xf$_hac[`nXd] jJc fn^aYdT[Ci&bGi`1b%YbZh_h`bYbXh`kcec]tcIYe\'lNch_crYe3\k2bj`dYd+[j(`l6bg[ejYi_3nd*i_ dEYah^nmd_j`jcY]e\kbiafcZdZjKa*ldd\cZgy`leg`%c[e]kdf`b\b\hc)j0eb\Jb3\jfGa-iudcE^`[f`jdGe(`ad[b]}hcvhcZaW\b\fbhdb]7`'[*e`je{dY__Yb^Khd-fa/]>XubZ]6hdgcL`<[%`[d`h1dc]_ZcX`ried`[`[#b\fbc^_Y`\gb|ica[`ZfWagaPc[\E`zY@e^j-dVe_`YFc3\haga_]\[]\f/fff__]\4cagMda\^iZMc]Uide___Z]YeobhdN_Xj_yZe``iudb\_Yb^hc%c^>`Ytc_f{bc;\P`Y%cN^fbig.b.bZ b\edaggbb[ZaYZe^hce_N_>Xd^iadgKa_Ynb\ici9daZ,`XfI_bjbcC\bY[g,_lcf]aX.e[Mjah_aWbYYh_i_ cXDaKWwg^jbd+[_TVe\riae]`WnbuZ(g`4f$_`Xi`XfX` haayZ&_Xd^h)cbC\_jXUbG\]hcde_J_Yb\\f/ae`D^"X_%Y f`fgbaZa^XcZ^=hcc]K^Wa[Eg.b#e_^^X_]Ze`fla^UY__)Yd_fab\_-Yc]dhccs]S]WJb\g*be@`^XL`Yf7af`_Y_XRe_hbbp[_XcS\had]_WnbZhdag8`p`WAaXfU_f@`aZ_XdI^g>bcJ] _W\bK\h_bd__Xa[ gOae`_0ZU_Ydu_fasa[_Xdb^OhZcbc]^WKad[Pg be`^)Y<_Zf_bfaj_9Y,`Wtg]`l^HhV0gQmVrC\sn;WgQg]Uj]{g^B`YL`Zebbgda]`\ec#iga`5^[_c}`hcNe_^.Xcb[hbgbDaZa[e_gaa,Z`XkeY_ifcdF]_bYd]h_bf8`7`Xb[h*bg?aHa$ZaaYf_h&bb[`Y`eA^h be]`FXcW\kcIg_haXb'[dh_aiab$ZbYYg4_krc{dL[SanXe2]jaqf\IcXdZj`"j`%c>XcXj_k`TfZcWhhw]lafV{g\KlWbig\a\VeX[ kb,j7abX#bXg^i`,dYb*Wgw]kaeZGbsW?f\jbg_`VX cZh`hlaaZHabYf_ibaZx`Ye_jde__Xc]0j1dga{`YaZfagtaaZ`(Zbg`|ivc b[g_^Xpd]Vkbji>]dTjHVdr\rZk[R\l]T#o]l_bZabYe@`id.e_8b\daGi"g)fd^[Gb]ic#iwbb[aZgCaGib#b[`Yer^jcd]>`Yc>][jdfX``1YbZpgy`ibbHZaYf_ibb[_oWd_\*iae]>`Wb[=hCacfE^*_V`BXfZ^f^i`W _tVe[h^6a;W0\#Q_U+W]2YP;:0PH{#Yk=inTvds|rojhd-iZcLg{]^SgXEJeVOLuNT=2K '7 y%B%DP,T`0Rv8K}crjg8ogmKhha\p]U bWf$_c]m\T]tVa'\a[eZ,UWYS_1Y_[SU7Tg9Y&<[sWv2UIAtj#&vyy%|={JArHVdgZa+v$d7{gyZah\]a(_gcc^^^X`Zfadb^X ax\ecCfeu_o\]QZa`e)ca^^Za_hag_a W2eR]ffLd-\E@4G2vF\,#QG2b'6:u99yB=}v[vpv{5oOdhucxpMfn'eBh]uZ\>XCbA^e`_Z]sWa[gc_c`]QZwa\ gc9ec]Y4_[fbcLgd0`[,`bid/d_b\hajadeI^oaYegKakye`Z]Y\W"\(Ua\_Xf=_2o1iqkjbfy`/kd5okhe]a]]b=di\MiRbX+frbriR[gPV(EJ @G3BNkJDKTJjFI~Yb^x5c?zl|rw}tonmoocroogrjfxfedMjikieFc/aA_nfdlii_agZmx\%t`u]pVrUYvZhy_qZOkHZQmapgkQd]eai*goRmmn eh_HkaJpgo\fXi_iu_]o#fqfh1lpah%^mdq2hmcbohk]k'aArJhoDe\i]j_TqeqfkU_/k^cpedzrg&m_xj_\ogbtgzo>bj\m_sfqcLk\k]q1dqe6k^,jZ]ocrOglWazhF]kaqfmch\ij_pfOoyekhr^h^oepCgh_f]kfcogjtaf\wkJbofledf]h_/n8emYd3g]wgN^mdnfvh@`f\kbogjb4fB]h`@o gldf]gu_menfg^f\kc2o.gi`1f\jb8pjhjsbf\hu_oofmdf\g^^mdn`eVh^Pg\#labfW\vh>]o)dEndf\Ig]lcene(gN^d+\jcb/n"ghpadG\hh`mXfkbRe\Igu_leld?f\fw]k!cleg,`'eC\h7am\friBbd\Mf^Qmfjdd\g\Yoar}`n?VpT9vYy_\sVoTpqZqWbek_*eYZIgz^"mf l?fe0_fda#lhRlh#eKacz^icmfh_d[+h(_?m~djadqZf]lAdkce\?fF]jblc%g^re[j>bp:hj_a@eZiD`$nelc}e[hU_newn0e&i^Cf]lcnfh`)f\6kaogakaf\jaogqmdf>]h0_neVofh_@h%^mEdq_g:k`g\k bp3fmsbg[j_qgoDei^i]ncUpfi5^eg[ma^qg5lGag\zk_&p\emmaebYg.]XmAdmde[8f\Akwbmeg_ed\iWbfmg'hGac\gtal:gifcnb[Ed]iedjDed]Fc\Khdkfe_la[fa8mg^gtaaHZc^nixfhqebt\c[/k`na iV$kTr$Zhu\nVhHU0j^]ldib8b\dt`i_ghgb\`cahgjrinb`bN^{gbj#fYea_a[d^jfPgbap[b]hchhbaZ`HZfOah dJb/\`Y]eE_hcd^_XbC\hhb?f\`_XGb[ga=hcbaZ`rYf_ibb[ `sXpd]jc f^0`"XcX[ich``WbZzh`IjcbcZabXg^k>c#e?\~a^Xe[Dkbg^aW=dZWjagi``bXbrYh_jJbbYbXPg_7j6be6]a:XVex\)jbgq_aX|cD[haGiba ZazYIg_jvc?cc\`IYe^Tjc.e]`Xd ]ic^g`_*Xb[}hJbyinca[aYf_BjcOd.]aYoe1^qj~dgt`haYc|\ri!cg`aYubd[gaic c[GbZf`jQdad\aXe^jMdgt``Yc\jc=hObaYb[ga4jc_c[SaYf`_jdfI_aY.e^^j9d[g`aYZ?cC\incUicyb[bt[ga,j dd]`rYnf_jdf_aqZd]qj]dOha`YbT[|ibi-c?c/\Jb[f_jc{d^]haYe_2keg`aYd]iVciFbb[b[SgajfctcC\HaYg`kee^(aZe^Ej dgaaY"c[icircb\b[ibje[c\_X!g_kHef_a$Ze^ke@hab/[c\?ibiNcc[bZiakee]bYCf^klecia|c1Yf{]lAdj7adYYe\jakdd\c[Vhdakfeb^bl[f_k/fgayb[g`lgjrcUbZd]+keidnbp[bS\g.bkfdA_}b[jf`jyeflaat[d^jegVc a<[ cw]hciie a#[ubx[f`j ed}__Yd^iVcg\``IYb\hhaiaYbY=a Zga_jdZd\ayZe_icd_E`nYcq_cie-f[a_Zc^ohnchc_[`t\d`gedc,_/a\e_aiedL`X_YZFc_#ieea_QZ)`[ec3gdm`t\NbA^dbhec]b&W]hYp]oYjBSkSbqEY?pZPgVTcWg_ f@``Z2aw]drc6hhaWar^]cbhbh(d~c__\nb]had+h>c_[al[fb?ie`bc] ad[Zd_hdb]&_X%c]hcfpa|_Ya+[]hbchca\[AaZe`*icbW\`QYYeA_i5d*e^_XbC\hcf_T`XaZ{gahhb~aZ`Yg_ibc\`Xd{],jbfv^anX/d`[jah4`nbXdZiy_kadYcXhZ^zk'ae+[bWgt\kai_`bWeZtjaj,`bVX d$Zh_ijbZdZaXMf]jrce]aYd]jJcg`a1Y?c[HhbhbaZauZ_f}`ic0cc\_XeN^icre$_a]Zc^hbqf``]Za[fa*ivc`Z`Zfp`h)c~d^^W`$Zwd^iceu_>`X[c\khbgaaH[a[hbhobcW\SaZreu_i-dd^L`Y{dV^i-d:gaaaZc_\h>bha.b3[aaZ{g`ibc\aYf,_j!ccf]Nb9Y@e;\jah`bYZc[hai!caZaZg`ibcc]_YgH`hwbb[(aZeM_jrcd]+aY9e]Nibg`a Zyb[ahbh_aIc_WfCWmUZr[l^SjPpKWs]EjjY"cVd[jbgaa[7cE^8ifigcb_`]fb>jd~d&]aX`e]jcRe,_`VXjc[iboh``-YbZKh`iobIc/[aZf0_ibd\ajYd]iJbfA^`Xxc[hb?ic@bY.bqZh`BjbcT[oa)Y\f^icbFfB]aW'ek\jbh`bXdZ"jaIjacYPcY]h_jgbdZaWgI^l!ceS\]aW#e3[kchaUbYWd[ciOa)jac#[5bYg_Tjae]bZe]tj^cf]_bZd^]&iJcica0Zb[ci6bjudc\`Yfq_ibd^*b[Jfy`k eMf`aZ_c]hci da\b\vh c4judcF]#bo\gbWj0ee``Ze``jeg!cNb]adA_jfh)d`[a\%g!cifc^0`[ke`ieela0`[cY_OhdLg1c`[b^igBchdCb^a]Eg[bhHebq_{`+\cy_iefb`\a]hyeiEd8_YB`/[`eaifa%^_Zf7agi}ed`_ZYb5^ h-dd`_Y`b]fbf1caJ]!`\ea-idbz^^Yd_itfve``Zb^kh@efc^Ya\gcgcb`[_uZe`jec^_ZTc_dhEd{dt`n_Z`3\\fobgbp`x[aaC\fb)fb`[`[d_khmdc]9^XOd_zhIdd^_nY~a\hbga~aZ_Yee_ga/aZ|_jXf,_incd5^f`Xbt\Egpa?fH`n_X`Ze3a(ga_X_1Yeagvc0`D[Y^bY8b ^gcc^$^X`@[gb'e`^nY{`[Repa?fJb}^9Y^AYc=_fba\]Y4c^h>ce\a,UfpVHn[^n^XOhPiQn XZnYerT`Te^hbb ]Y^Yb^ge*eb^\la_EgekeQd^Z_Zre`hhbVaZv^Wd^hbcw]^WbC\Ui1ce__XP`rYfaMft`_Y_XfX`haaZ_*Xc]vhObc\^VbWbf^m`WaQY3g_Oh`2a-Y`Xe^g^atVa2Wh^jabWaVhhV]k[a*eYVaqUf[Kl`$h]a,UcWj^7j^yb#VAd"Xje_ijy_cWaTf[kajf[`UwdZi,`[g]aGW?cYgy_h`laX`Wfv^:g^0cYm`Wd\#iad\^U@bZgaf=__VaZ%gD`hxaP`X^tVe%^Ci bYb$Z}^PVNb'[hae^_WaYf`fH`_Vp`&Xf_]ha_W]Vdn^ ib)cZj_VPc3[h`e]_?VaXg_g_,`;VajXf_\i`rbwX)`Ve[i`wdZL`UdY i``\fE^_V`FX(g_fU_` X8_wWd]hha=aDZ^WbT[hac\_?WcbH[Sg`e4_^VB`Xxf`g?a_X_sWSd]gaaZD^WGb\gbjc]^`VrbXqj5^jYf@PigF]B`UaWf^=hD``W_V}e]iabY^7Vd[hOad.]z^+V aXgaf__W_W8f$_g`{`JXU_.Wd]gabZ]UaYZtg`d]]U`^Xfa_f_W`)Y`Ye_e_!`W_?Wld^]&icNbZ]T`Ygb\f^<_KW#bDZhagU_|_W^lVg_1ia%cZ_SWMc[kh`e[.^Tc[?ipaSg^_WW(aYIg`hb(aYZ_rYe_#idc-^^RXfc=^7jGfcUb3\!]+Vb@[gave(`_XaZpg`f``Y^X-f^h`aX1_W`EYK^Vd]_g{bSa\[]V`b;\Sgac]];W^%Y}e``e4`^W`Xd_gwb_Z\Uxc[\i`@e"WdQiS5oYn[WHhOQfShd[g]^U4_W#e_gcar^^Z?c`'h?fdb]Z`\f2bCf`_W`Zga2haQ_XY^Wd-^ga7c[^Wb<[Oh{bld]\$Ua]ZLg`f_Q_W_Xe^^MjcKaYg_SW!ds]ib@e&]>`;W4cZtg`f_{`WbYg_g_`WW`[We&] i`c(Z`&We2]jaf\b WWdZj`ha_@bkWbWi^i_"cW b;Vf_\kacfVcfL[j`pg*]i`qUcYh}`hY_aWtcUYg4_hOa@b9YAaJX-f%^-ib[c#[%`GWjcZ*i>bfq__Waj\e4cs]`DZdI_k/f)f^haYd^jdhgb}b[*b[ iZcjdc[bYf_>j d*e]aXh_jqdVe^`@ZMc^]hchNca[b[eg bhca;\`[faj`fWd]__$Zc_Qid(gta_]Z`#[gvchd`Zf`Yfa#ida\n_YZebiKfc^_sXdZk^lZf\PZkSq0Zq[1iQfS i[i`aZ]Wfc(_fc%c`_\cCaffdcZ][h^D[eafa_VX?_FXwd^wg&b`ZA]`V`/[fl`Jb[3]Ui`Yd_8bS\L]U]#Vc]e_N_W\Uybp[e^_XQ\)T_XTf_a3\[S^Vc\d]]U]0Ub\Ge]u_V\SDaXuf^`X]U`We^e\^TN_Ugn^f]F_iT_T`e[h^b?W^ZSdEYjd`re0ZX_vS0cWiy_-i^ bVbVh]i_d1Y`Uf]jc2e\`V.ek\ kb3g^`*W@eZkaZka cXcZgaibc[a-YeM_6kef_bZd^hchbb[c\g>bi9dbT[bK\fakf c]DaZf`jhfd_?_1Yc]Gi,e8fau_iZKa[+hOb}lc2ewWgUTq3\t]pXl~T*p[q_bi_waZbB]k*gkhb_daWjEi9lkedbcbGaahelhgwb:d^egbljhWjqeb*]}e`/k g#i(e c]~d^Mjekg.e_c]hdljhhhvcb.]hrcl:hi e0c]d^Bjfjfd_eA_Wj0ekgf+aIc5^gbnLjidb\e`Fm hLkepd]_f`kXfl6gqfu_ds]*lfnihac\hao i_jcd]zh[anog#lfSd]fA_lf|mgez^c\ib(nhkh>bb\faylhj+fqc]re__j(eqjued^b^dh~d$kOgdA_b]!gaekCffaKa'\e8`jggcbo\[c]*i emjyeb\b\gcjKfcV^HaX[De``id_f`Aa\[c^CiyegFboaZ`Zhbhc`[a[e`i)dc]r^*XadZ^iefa!`DZc]zh5cg&b`4Z_Ygb#id`Z^Xe` ic!d]^Xb\idea_Xa\gObega_1YT`HZre\`hVc*bk\g_Y~d]_idc^^jYUb\#iIdfa_Xi`Zfafa2aZaZxfahc"c\?_Xc^ide`_bYbx\hbfGa)`Yx`<[ g_byid aZ_jYf`hQd)c]`X/dI^imde` _Xub/\Hhb hc`ZKaZfacdZcYh]mFboh\[cnXfS\zkbIj`FcnXwdYjbjaFczY;cZf{]k^c#e>]awX^gu_5l~deg_NbUZDe]jQd+h`bZbL[Lg`i>baZa(Z:g_bqjadd\b(Z f`wkeig[aaYco]xjchca]ZbL[gajc c+\)`Yg`Zked^a0Zd^>jeig*baa$Zb]izdhJcaZTc\Vhajec\KaYEgX`kDeNe]aaXd\k-diabZdS\j)cic4c\@b[gaRlfke^yb?\f``ij7fhb(a[Sd_j:gie5b]_c^i#fiec-^.bF]RhdUlFhe0`ao\ebkhheb^d}`8isgge bb^Od_2kfmei[iVfq[v,_qXnUoYqtaj`aaZ(d_hgi2hcb c&b|izilmee_0_e?fjjtgueb^f.b'l0jgif b]McA_igigbc_a]g]d kJhdt`Ha\eObi{gea`+\tc^jXfhda[a\geieUb=^a\7gNck6hep`a[eaieufa`Z[c]hdTjeHa[b]gbiedPc\aaZLgt`ok0ef_b Zf^kdipabYdS\jJck~cdYcZh`kc4f]!duZg^lqeg_ bY=d[jcCib`Y b[ga'h2b`uZ`uZ4fxa h^cubJ]F_0ZdX`Oh9de'a_iZa\hdf c_Z0`[eatgc_[E]Yc_i0eb]^Yb^gad(d`\*XT`\gcebc_[_p[ebhd*bc]*_ZcE_7gccE_^Zb}_tgcfa_[aC\xfagb_Z_Zfbida\^9Yd0_i4ee_^.Xb\ hcf``=YbL[[gOaicJb3[!`X`e^idbo\_Zc^Nidd_^EY>`Zqf bg)cf`[_ZgcIgcb`[^ZRe|a1iPecb]G^Yb_hed`^uZp`[fbhId_[h^QZ}ebge8b^^Y8f`kbgYfjS'l;Vs\fqYiPwkTlL[l`bZ^Xf[aifa__\dciiYed1_{]bahgufc_Za\bgbKhVcaX[`ZfaMjfc^`aZ~d^hdel` _Ynbt\i1d#ic a[*b+\Lgaicc])`Yf`j1dXk:Rn'VIt]r1^reXUcZ$hgbjdbc^a\iGfyljdcE`^Rebekhfsb`,ZdV^mjDeiIdaZa[Wjcji cc.]nbt[g`j@eeq_GbZ f_jehWbSa`[d]jdbjcc[\bL[hgb kdd\b[f`jfvh`YbZf_jdhKaxc[Ge.]jvcokcNe\ cqZ#iaGlef]ct[g^mf]fKakggc6a'\[cu_\ie]hda\c^Xifixf_c^b]fbleicf{b`]oeaiGg>gzc_[b]Nie'h@e5bI^a]fadi gb(_Ka+\^gc[j.gd``[d_g\fTfc_\`[Pg^cgcbZ] b]gdwgfxc`!`3[dahCf)fa`C\`V]hLehd_\bz^je+hd`\^Zfbhe}bm_f`*]xcl`hee_a>`ZPc]gdhd^Y`\g-cmj4eb\aaZ?faekgf`_YZd^gieCfa _Y]a\fcIgFcF_ZB`D[0gchCfaE^^Zc`ifc`}^Z6a^hOffncU_[b_fQdgdg_/\|_\[AdagKfb_^[%cGagfca_D[b\ibjM_e%TiU&p[q\jShPylYl^e\_FXIc^hheeNc^\aa8`!gggh`p`__Geeg`f]a]`H[Jfaiecz^_Zc_VhQdgJc`[ax\@h1dfba[al[jfajec]`Zid_$kfCf``YZOd^?icwga~aZbx\hnchcbD[aZgakee^aYe^rleeg`6aZd-^jchhabZld+\jbk5de[cYh\`mmdf]bZXg{]lciD`tcYf[lblFbd9YpdZIj`m df/\ZdXi%^rl>cg^qcY^g]l)dci`ybUYd\kbjbd[bYZg`jcEd[aYXf_ ke$h`aYZd]je9hasaYc\hbhbb[saZ7gazk}ed](aZd^kCff``Y"cR]imdPgawaYb\khbtjeyb&]aqZg`jdd^`Ydr^iAdf`aZc[+h'ai1cb\[aZf`Ej9dc\bZJf^jbf%^HaYd/\LkcQi`bZc[\i!cjZcCbZ(aZfaidc^T`ZEd_iAde_?_Xcs]=hncfob``[Cb\[gbhJca3\b`[flaidPc]i`'[Ld^id_f[a^Zx`]gcLg`/dJX7gVpnY1s\ mShklQ|pWs\jZXd?VoeS\Gibtg[au_Zha\gXeCig c_`^fd1ifb^_Zd,_iqde__IYd^_jdg``YaL[g.bh6bNbZ`Xg`Xibe1^bQZe^jdSg`_W c[hahaaZaqZiai-cb[saXg}`2kmd]ec]bEY9ec]mjdf}_a-Ydt[jajbcY7cYh``l^cd4Zxc:X2h^mbg[bWg*]8maj}_dWf)Yzk_"m`Xg^0mef^}bY]e\kbh@`a,Zjc\zhaj~cc[\4c[Ff`hc@e_haZ*e_^kiefb`H[Tc]j/fi0ea\a\gcixfd0__Zd`7jfd_b`Z)c^hfCfd7`^]ar^g6bNiacWiWo[t=^o.WNlSnW^q]@lc\bVa[gNcCfb`]`4_g.gijiabL`a(debgKga^_[d`Gifpd`_[ c^nf!cfc!`T[`\nfbwgdwa_\_Z}b^gcxc__]Zb^iyec_^Zub]*i1dhcg_HZE`[Igb\iPe`\^Yc_&iQdc=__yZcbt\iLegba0Za\Igbgwba\`Yf`hc(d\0`XWdV]zkdf^`W@e\ZkciaYbXbYi`TjJbb(ZUb%Yg^jbc]Z`#Ve[k&bhE^#bWSdyZia@ha`XaZg,`ic`]8izc[gb`na[gZfYjD`n eh]DeHZg^mdWjacZf^okdjcc/[d\jc l@ed^b[bgakHe{g`b[f\`k7fcmikf]e_gbm:gk3f#e^2e_SqXub^1pt[gVg[jb-iab[c(_bjgzkhgeab`9hfj9ie`a[Mf`k`fribbC\e4_keidb\d1^ric6kee^fc+\g`X ad[gafCa`Z`[TfdagFcb\`ZeL`hctc]%`ZcV^*icnfa^jY2a[wgbgc`@[aZ?f/aohc5b\_]Ze_]ci-dIgaa@[b\gaicMc]_Z*e_>jde_(agL`jc|c[b[f_kc_f5^8bUYwdG\qjch7agbiZc\hbjicb[a]ZTf_ic$d^`Zd(_h-dfOa`[ c]ichc+a#[a[gObgi)db\i`[e0`&idd^`ZcI_Qi@efCaB`Yd[Ak_l]hXUkTp-Ysd[;mT_j-S9lZmL`f\HajYc.]h-cgc`\5bM_ifi6hb_oa^Xfbie/d0_a[e,`jyefu_aZLd]*irchJbZap[saZfH`"jccS\ bZf_jdd^bZez^jcpg}``Yct\i5chxabyZc[h.b+kdcC\Nb]Z{g_DkJc*e\8b]Ze]2k^cha?cYd[jBb/kbcZ!d4ZqjKamfcre[:dYh^mbRh]cXf[mczkKaAdYeYk(`ma8fZdXkt`Zn>ch\cwWg*]mci$_cXf\Klbqj`ed ZeZBja+kcd[c/[Vh_ok!cf]bZf]bjZch/aaYc[qjNcgibc[c/\h|a/kfc_cW\@b4Zg` ld!g_aZe%^/k\e?ibbZLd]ila1ibbl[cbaiceR]?cL[%g`keef@`yb[]e^ kch8`IcZ d\|iOa7j{b6d3\tcZhu_yldFf][cyZg$_kdh` cYf\jbciccx\d?\khaWjdZd]a[gajDeFf_gb[9e_jXei)caZd)^jdije}b]ac\gaIjedeZ^*b[f`Lk#ffJbSaB]d_0jAdjCaegYk]a^]pgbi@ec,_ac]]ea0jffc`[c^i`efbDa\)cI^gciLe}bN^`\>g!cipfb{]_DZc}_jXfeaE`Zb>]Bje&iQd bV]a[e`i4eb>]b/\e_Ni eem_ZaYe^:ked0`_YFc\jdijc4cZbd[e`jec^_[jcA^kgfaJ_Z a\egceaa]bk]%gbifb]`L[xfbge)c_c_0Zd_fc2eau_Y}b^iefd`]{`+\d^ha\fZ#eCVlyZdr\lPViRlWo]it[)`Va+[faqfb<_[^\echga`^^dch6gb`_\[ b]gcge`o^X`S\eaga_Z_Y8f`'hb a[5^bXc^|ide_,`Y`b+\gbe,`_X6aZegxahb`Z`Ye^iFcbc\7`Yd]hbey_!`Xb[hag``YaZfd`ib)cp[bYf^)jwbdt\aRXe\Ijb=h^aWadZj`i\`|cYcXi`1l_bdaZ`bWg6]lb[g[bW1fZ5l`i]bwWe@Zj_i^cX|cXdh_jFbcp[/aZXFf^skdeB]ajYcc\ha+h?a`)YbZ%g`zh[b*bl[aaZf_jdd]`Z~d^jde_ `YYb\zhcLga`YDa]Zf_0j_fRX7g T$nXr[SnoWkhRj*XKl}`g_ abYTcF]idheaj^a_gehfb^^QZe_jdd^aEYOd]hbgWa`ZKaUZg'a}hab[a]Ze4_icc[\P`-Ye]&ibf_aYb[#ibg/aaZaYg0`yibb/[haY%gm_ k dEdC\`*Xdo\jcf^`X6dl[iahabYYb1Yh_jbwd[bEYEg^k6b"f\aWre\4j&bha_rbX:dL[h`ixab-Yb@Zg_itajc[(aXeZ]ibe]`XZd\h[b7gT`aY`bZh`]hWaaYaYf0_gib~dB]aXer^Xice^y_Xc[hpaIg,`DaYaYigD`hacb<[VaYfq_ic(d\aYLd&]iAdf(``Wb<[ha2haaaZauZ_f_hca[`$Ze^4jdedZ^_^Xc\cib?f_aYa[haVhbaZaYf_ibb+\`Xd^irc@ee_`EYc[yicgaa$Za,ZPg`hOb~a#[`yZ"f`hhcd\SaYidA^*ibfq_`YPc\gaf`aZ}bZqf`ic.b[`zYf_1i5c~dF]`QYcc]izcga`zYa]ZzhaiWbb[`aZf4`hhbc\`zY}e^Tj]dgJbjfe}`sas]e bigec{`\:dE^riQd\iBc`Y*bZgahc;cG\b#[f_Lkdre^aZd]j1dg`.bYd[\jnc"jb*bZ\bZhaibct[a9Y h`kdg_aY-fI^l(eiaIc\[-f]iwbjbd[wd[)j&bglHee\c]ZLgE_GldEjsb'e/[f]lcZka!d]ZfS\kalce[eZj`doeh{]dYi_Hndl2bd0Z{g\Tmclce[}ep[lbfmee\idZialeXf_aY"f_:kadg7acZc|\idjYdd]bo\Ohb+kfAd^Cb[ fL`Dkfgwb`Zee_Ej(eeaP`ZbV]Oh5ckhca[a\3g!c k|fd=^b\oe`iee]_0`Z1b^tg dfba\nb]ufwbhDebw]b]8fxaxje6d,_m`Zd_khceGa`Zb?\?ichcb[aauZpgazkde]bL[ f8`jc#e^aZc]idfBb_Za\gc!gbVa\`[fcgcc}_`o\~d`6hdd`h^Z#bI_ipfgc]Zx`S\xfbtgd`\R^Yda3gd`^^[d^)jdhy_edVdhtVpZog_aYcH[ jah`cY4cXhA_6kaAdYbXKh^kae[yb Xf[mbgi%^ckWf\[j`6k`SdY[cXh^UlbTf[yb2Xf^ krc-f ^ bXid[jsb'ht`HaXcZhOaXib5b[aZCf_izctcc\`YYed]givce_{`Yb[-icf``ZHa+[xf`}hba[`YveY_hrcc]_Y6d^^icqf`oa+[a[gxag baZ`Ze``hcNb[` Zd^icld]`Yc]gibfU_`Xb[gy`#ibbZaHZfm_iwbd[`X'e]jiae]`Wd\ibfX``bYaayZg`gaa+[`Y}e_-iIdb*]y_XOd^hce^n_X~aG\fBbMfa4_Y`ZeD` hbNb[_aZd]_hdc*]^Yb^ahd)f`[`RXdY j]m?\hRiGQoWsH[l=ThSiZAk`d6]_Wb2]}hcufc`&]ub_fyeg3f`]_Zoe`hccz^f`Y!dw]]jbbg^ a&Xc[iFb-i+a\bZbZf_ jbb+\aDZMfe_WjMde^m`Y;ck]j~d6h/a`Zb\gah_b(aYb[gaieed]a[ gU_kbi\fUglVsZrY\l%TlgaaZd^Vkei~c!do]dr^Ijd7jc{d2]c\2hb ldXke]LgH`KaY<_Wc\#i2bd]^Xbp[ga#e0_^1Y_Xe@`ed`_Y^EY6dM_gbsa[^XYb*]9hccN^$^BX!`ZSgrc*ea^X`[keH`f/a`ba\4_1Yb\hb*e^^WW0c\khbuf0`;`jYaZ7g`hab`YP`Yd^h>bb\_Xd]i-ce-^L`jX@bZhhag``XlaZ{g`h*bhaZf`XVes]iajcx[_Vc[i|agb^ aWcZUi`Qi`bXcYh^j`?cXbWf[2k`eZ1bTVf@[k`hV^#btVdYqj_iA_cWcW+h2]Ak`eZ.bWe[kag]aWbcYh_h_~a2XaXf_ia`XaUYf^yia#et\`XLd\hbeZ^W`VXaaZgOaf_P`FX`YMfy_ i_bb[P`2X4f^Wjc,d\|_Wc[hbe__XaH[zhagda`XoaYSg_hh`cl[`XdB]Xi`Mc[_Wc[h`f^6aX?cZh_i_bXaXgE^i[acZKaKW#ew]ib1fA^_Wb[h>bLg`,`XavYxf+a6hb;`Y`bY*e^Ci5cc\U_jXc]gbdm_4_ Ya\gaf`aY` Z4f`hEdwa[_bYe^qj`7gYoeFShkUsrQZqXKlQ-mToZk|\bVSaWWfE_'hcb\`[qfa)jfDed_6]a_gd^g blaHZaZg`gabL[HaZcfy_jibc+\b`^Xe^jdhbax\~a[ hVcjhfd,_`Zgbje:gaa\%c^iegbc`[bk]hdhZcnb]cb] gbXiPed_Sa[Ne` kgPgcbi`Zld^h~dgb@b[nb[\gajdCbL[Gb[g7a\ic9e^T`Ydz^iqeea7`\a.]#id^gc7`t\Da\gdgzdoa>]J_<[dta i#fcaJ_t\;ce_f~deb[`3\ub_fdgdHa ],`/\ewbnfda^_J](dahggca`Z"f]m+ao_"jU6kUtq[q'[kCVhUh\Dkcc5^\X"cl`ci!hdd>``bbhji\fhL`^`_:gYdhieL`_\>`[\dajhfea_H[c_jDegc_\_s]ebcegZc_^Ya[h^cjdc^Aa\qfaidd`Kac\cN^i-dfa`/\Ic]EgBbUicb^a[DeN^jAd;cG\bG\cf`jegaa[d-^i)cha#bYbnY}hajced]dZj?aj!ctg_aXe\ lJcekJb0cYYdYkWblbe[bnYg_)m5deW\waW%g^zkc_f]aIYf,_j1ch`)c[bc\gahbgb[a$Z\f`*i^cc]`\[eu_ide__YYjc]h5ctgbu_HZa[gbg.b`]Z,`Ye_hcbV]n_vY[cI^gbd`_4Zb]hrcfa_Y`QZd_ h.blaZ`QYcf,_ib:d\,`X4c_\khJbjf,``Za\[gbgb`Z`ZCf'a hNca/\`yZd^*imdc]b]Wb]hcea^=Y`ZJfcb7gc_x[_Z_f`ciaeZreTcjdd]$d>]ickeg_bZg_lfQiccx\Jfb^Dkdjc9e\d]jb}leem_c[halLedhT`d\[g^ldj_bwd[f]ldl]d8f\f\/k.bEne'h]dZ k`nej`f[gZ^Xmdlc f+\e&]jblef^{dx\i bmKfhOac[tg`kdjb$d\e]lek ed\e]j>cl+fe^d\iOblOghaLd\fU_kf4jc/d\g_`le`l}ed]$d\ickepg|a7cc\hamsgzh|a(dk]g`m_gkdRe]eb^1lel/f@e^]Ed\XiZcmgiae]jKanfijBbd<[f]FmekEdeV]_fj^ke m`fge_dR]izclniOhbc]xfalgj+feL`e`ZkfskGg:d_pd_jiek_g face_7jPemhHhcc^ebk2hifb_{daTj2gylggn^hZ2oZ^tabqZl UbqYZzu}_up)^Ui3[g^kfj|f_c_dbji9l_leejccg.hjlxfeb0_ fbl{hhyeb_ea)jg@hQdd_f|aidj:gwd}_c_tgdjfXf[bcb^1flak:ghdcb]b^khrlgc_FcA^riekcgf_bb]xfakgtgcbb[\fOaBmgiadbR]e_jeke`e^ct\rivclggabc\+h`mfsk^c'eC\%g^ldrlzde\\f*]jbnXfg^ec]IjamDehh_d[g`leiaMcZOdx\^kPeled]{d]iclgd]bG\2h)cAk{gtgbb2]d_iDe}hEd`\[|c]idNidgbs]Cb&]gb)jeld_Aa\d`kffoba/\c,_Ije>gVcm`[Mc-^h]d je7cZ^cb\(gobjtfd\``+\Ld`BjeXfbx`\xcU_*idhzcoa\b]gob>j?f?c]ha[Tfaj efX`a[d_jyeVhba[)c\ircjcb+[Vh`kee]_b\f`Lke%g`+aZSd^yidgbHa3\c^&iadQidb\`?\fbbjf,d_`[d(`iff6bNbF]Mc]iqehdla?\fc%^hdIjpfb^`\fc^k{gcfD`bYi\8p^ncMco]=a\8fNcqj1ifeYb_reciaihga_c_Gidjec ^b{]dhbczkXfVeA_co]e``jxffa b[c>g]cZh_kedht`cZ#e\kci_bb[~d;\iaid}bZb+[^gKaj df_`Yez^jd!g`aQZ/d]ibicbX[b[h2bic(dB] b'[jf_jde_a[{d^>jYdg3aamZ)c+\h&bzhbc]b[h?a$kddk]a@Zf^kdg0`bZe]ekrci`FcHZ)c[h`jBbEdZc=Yh`k)de]laUYe^k0ef_2aZc\hbzhab[b\h c1icgb?\a/\faiHee_a[cY_icf``Zb\hcUica\+ao\fa*idb]aZh^fmD`9lYZiTnVmt+\*s`[/dd`xjfnfba]d?a-ifhe]a]nb_h@eid5b^_o]gdj)hdbN_k]cp`jei_fWlYr]_{q\kTEjVo`ncc[__`[Debegfca``~ddjlgh_``a8ftfHhyeb^c_{gcifdaSa ^Jf2bjfea_[c_ie!gcaB]cU_hhe hdbw]b]gcjgd_a\Re`i3f"fJb`[\~d]_j ffaa\a2]gdhdc]Yb[gwbktfe,`Cb\e_hkueg.b`Zc]jdib|c|\c\icb kces]bDZg_meeMfA^rbYMf]j!ch``haYc_\hbh*b)c[bZg`icc\`YNeI_ide^i`Y.bW\hc:gbx`DZ(a['hJcRhcaa[(a[eacid7c-^c_Yc^Gidet`_4Zb6]hMdgb`Z/a[_fa hca\E`ZDe`&idd__Zc^h1del`_Y1b\=hchcwa[a+\fbhcbw]Va[@e_h5dad^>`Zc^NidtgJb`[.bk\ga6h1c`[p`'[f` hc*b\_ Z#e_j}eTf`a[cA^1id:g&b[`Zb|\igbh1db\(aX[fa\idc\f`iZ(d^gide@`p`ZMc]nidhca[ha[gbhcJbx\_Z'e`4j,edU_,`YdM_jDega.b[c)^NichFcYbT[c[$h`jdck\CbQZf^Ij5cf^buZVe]j^cKha8b3[b\Rhbhnca[Ha[faidb];`Zid^j+f]e`` Z0c]hcgb`Zb\gFbhdCb\`[Tfa&id7c]b`<[d_hefa`9YDeZm`@o>]irTskrTfqYcsH[UlTiPUTj\k&be]c_X$d`iffuda]4c`hg6hg`U_=as]fa0jdc-^a[e`jdMf``yZ(d]iVchbAaYZ1b\gbri^cb[aZg`jEdc ]b[Cfy_,j]d^g4`aHZld^]id]h.bnbY7c\[h bjcc&]ybZ(g_wkc1fv^JbZ?f^hk~d1i`bYd+\zkZcakcd<[bYi`5lbf[,dYh^dlFci^cXg\lbjCaVe$Zgl[lCalpaejqd*lCfd]c\hbk\ef`xc\f`keh>bjc/\e]kye_jc/d ]e]Wj>clhfeq_dR]"jclfhac?\ah`lei cds]Pg^mhflye}e{]f=^wkrcm(eHh_OdD[)j`nf1lcLgb^i`nfmDee>]g,_}lc/n ff^ f]kc2ogzht`oe]jiamfhcbd\f]_lf`IYTfx\l`tjIY^g^S4jTVo(ZnsXhR1f Uh{]gu_laZ1_YLd`gPeau_]["c7ahhdd_5^)`^^edeb_mZ_Ze`tgcb\_Ycb^gccb^j_Yc\Rhc#e__X`Zf`ga`iZa[eD`ibb[`Yd^hbd]y_.X[c\hobf``EYaY>g@`gicbbZaIYf_icc3\`Xec]IjcJf^HaXcZXiari`b)Yb9Y hA_kWadmZ@bWg^kbeZaVf[la|i]bGW'e(ZOk`ek`WdXqcFXQi4_kag^jbGi`bYduZjaj[aeZ-fl[j`rlwb\f[dYi^n)cnis]:dWgC\lWbj_dYTfZGl?ak`ufZreZiv^mcf[xcY+h^kbgE_?cZ fR]kcia`bYc[jbj1ccR]ubZ{gd`^kqdidV]`YYeA_,jcg`a]Zdc]icCinc b[b[hbjdc>]ubZTf8` jcf_laZd1^0jch6baZc\Cicincc[b[hbjdd]1bd[f_j9df$_aaUYe] ld ib`YZd[\>ja[jc~d+\|cZh`k^ceo]bZ gy_kzdg]_.b ZAd]ichca\[b\ h&biQdb\#b[8ft`>jee8``Zd^hcqf`+a[c]1i)dCifca\a[h[bi eb]`[retaiee_IcYg[Vo=_|p[lNSmSsD[@sZKlTiWWk^kFcd]aZe`k"gfbb_eJb jhfe7`\_cA^cicic[c]b+\gak8e*e(_a+\jfe_judgaa,Z{d\idiccW\TcS\8igbWjId~d]b[gaAkdf=_byZeA_jdhxaJbZpd\ jcibc\c[jckMdd\qc3[kh`Tmfh`4cUZf^^cm@etjbbYd[:kbkbg2]e'\j/am9doh]e@[_jy`nMd j^cXg;\lbkWbe[e#[l>bndg]e\>jWao|f\i`OdZh_0mzdj``qcjYf\ lcDkfce{]d[jb}ledv^c\iZclff`at[e@`/kdfhc]a[wd^kfLkfda_b]gckZhd_a|\Vea lhf_brbF]d`ifg(e`[c\jbn6bh[WRlVr\+u4_AnX,jXi^k dVe``[c`hwgih7cp`bbfjhQijaa_^eWb4j#fZda{`K\ea,jffb`T[b]hchie"c^8b]gdj{gc_B`[jfgb[jfLd_j_YcM_,jfgca\b1^=hcOh!cb\\bs]fOb"jd{d^/a[e`jfe_aL[dN^ j egaaZb?\hJb6kIde]5bZf(`k eeI_bZuf^lfhaaYc;\igbUi`c<[dR]-ibh{b c[aY3gy`kd@e^b`ZSd1^idxf@`W`mZ\b;\Khbcga`[B`HZ}edaHhcb\_Yc^hcd_^9Yb^2hqdfa_Y`t[igbdhc`d[`[e``Z}e\`Egb~a[_Yd_#icc].^&X}b6]hce`_Zf`Z[gdaegb`Z_$Ze4`zh^cIcF]_Yc^+hcem__Ya\ gwbfa_Y`qZIga]hba[Q_XdY_Ohb c\?_X)cF]RhJc.ey_y_Ya\hbgOa`YZ_g.bLgFb`Z aZf6bgc`\*_ Ze_j_bIg[eTtjWq[pVXjQlSprYl@Z#eVbXf,_hbb]_Ze`XiXfeb%`^c`$hfeci`'\Da`[gOaLgpaaQZ`YCf_izcb\`bY2e)^ic#e^`Y(d ]icf0`aZyb/[g` ibbW\aqZxfu_icbe^`1Yd\jbqf0_oaXc_\i[bdh`Va9YbZitakb d[]aXf-^Okce\p`Wd[\k)cNi_bXZdZi` k[aWdYcXi^RlaFfZcXVi\mai\e.WfYlX`jY_dXeZj`k?aLdzYxc:X?i^laf\cbXxf^dldg$_aVXOd[\i[ah[abYcZvh`jbIcp[aQYf0_jce]HaY@ek]j)cg``Yc_\hb9hJba,ZKaYYgb^l`h2WVhOQo.WPt[p>XEjFSiXwkahh``Zb\hqd)jfb_b^f]d[jeAd]bnYre^jyeqf``Za,ZSd\i&bhaaZc<[hxaib"c_\ZaY2hT`jced]oaYf^ij~cg}`aZ,d\)jbibbZ?c[\i>bij~cc[bZ[gY_^k^cxf^aXf-^Dkch`bZd\7jbjcdiZ$d[Xi`okbe6]ubY9he_\ldigM_TcYre\jciaCbiZc[bjchkcc[cHZhxakdd]aY8f]k]d+h`cZDe]4jvci crbt[tc\cibjd/d;\CbZg`lff=_GbaZkeV^keibbc[2e^jd"jqdcbG\Sd]i cl}e#e^[cc\ca[\`b`IYaYwgL`jcd]aYf]j>cf_@bYcZHkJbj`bXdiZj``kadUZcsX=h5^\lbg>]cZXfT[l2bUi4_bXeH[k`kL`'eYdY7j0`l6bGe[cYHh,_lcfc]a*X2e[jb6h_aXcH[haci2b;cZbYgT`[jceZ]+aYMf$_jcf_aYc2]]\i5cnEihbc3\>g_kejd/d]"f^^jdkuere\eB]hkcsng7g^eF]j2bDogi`e\'h$_roXfokb}e\fJ]kbnMdf\dZj``nepg]dZh_;meejbc\f_jd j]d~dI^idr^jQd ked^Yb]!gbkCgJfWabE^eah,e]hda?\c_Bjfyi0eub]b]fcif{d`a]ecigda`3\d5^fm~cm^iUHkHV$r>]r^akWfYVh`ieAd_`F]}eVcjajed`bad1cfggsgb_b^vhudNi0e;c^Nb^ebLkgebad[2e``jf"f6b`p[c_iegd`\Za\hciec^la>]faWjfXf``[f/aiqe0gObb[Ic^hd1iYdbJ]GbK\hhcqjeLd$_a[fD`jdf` amZe^icgi cc[Ld\|ibjcc\@b[ha[jde^JbZVe^i)cf_aZd^ci~chbb[b[haWjqdqc\~aZf`jqed_ a[d_icgaHap[)c*]hhbg bJb\Nb\igbidc^`Ze`7juefp`a[Wd^iegbAa[b\gbhcbS\aaZfabjHec] a[f`jeTf`/ad[ d^|idg>bb[4co]dhcjdb6]`Zf7aiDed^a[e_jef+aa[d(_i@ehdb[bC\ hbidc]Ub\gaekfe_AaZ/d^jegsbyb\d^hciQdb\_c]gbkfd(_Cbo\TfOakeuf`` aZd_jfhcrbt\[cV]0jdjzdc]bB]gbZkfe}_b\ fD`kfgFbb[d^jeiAdUbK\cs]iadj7fd^.bx\ggbkXfe_`b[\xf`HkCf}h5caZd_jeij ecw]c]iIdzkfd^bS\Ohbdlfeg+ab[f`/keribc[eZ^k1dkdd\*e\tjblee^c\haTm`fga b[2e^skhf jd cB]e^jqejfc^`b\hZclge`Yb\gal2g$hbcJ]d4`jeied7cs]`b^]XiieAkhdt`;c\ria5odl\IjUoYv_5sZBmITEnVq^nlaeZOd\ jAdkg@e_ab_hhfmlge;c+aecZkhhd7c-^e_kekfe^d^h clg?f\`cB]2havl[gibc\f\`)m:gjddF]e]+kLevl fev^g7amh keTf$_g`mgXmgfp`{g``wkdvohiagE_kd*pikcfw]h`bc[\Zd\kekdck\d]ic@led]c\khakfgaMcC\f_kfic;c\OdA^icDkdc\cK\hbkfe_|c\Sgp`@l+fg/ab[\e_eke>jYd|c\dA^#i dje~d]Mc\1i[blCg1fd`b[pVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKpVKdQF>V'KRGsM\AzPDTmJTJNBNDpS{HQUJNADMATgHVLOELBOLEUUJSHeL@,O CUUJ;UJ&NBN{CRH TKOQDMAQsGhWL^SG+M@ QUETISHOBC OVCSkH7VKFNBNBsSGVJPD\NARhF6WKSGM@QqEfUAJU JQNAP%D&UH W0JO@$PAsSmEX~IBREDgN@PCRWJDTGjNAO.CUjIUMJCNBOCTsHDWKPmEMdARF:VKRHMB QEUJS)IOM@O!DUJ_UJODNBSHVJ?RAQ<0Y@^nDYV0JjUJOCO_BuUI=WLP(E`NASG'WL#T5I1NhARzDX0J WoG5Q?RAJX!IUxKK+GrGjIKQ'M;VdFP$BPKF9NNhV M SkGJKLrQQRPLHOfI U,OZWP1QH3OFWSK V9OOm@^O?FUEVF%O]?1N=SzDX$JYTDO>QAV G(V+GO>?RGAULFVFP@`QA?UQD5XGSBO>SCWGVDPO<|UTAXEUXER=S=jXBYDSg=R;XB\mE{V= T;VS=[CYGAS;tV<[AZATy;DT;3ZwB[,EvT=R;XA [F&UAOt<:SXAYGVEOW= R?6WFIVFO@OAUUGaW JQfC$M?1QC(VI ReE}M?O CDTNHSkH}M?*N@SHTI N@M8@MRdF#THOBM@ QDTIBRFVM@>OBSHTHL?sMCA"RFT JMALT@RF3VJeP)D|K>O-DUJPETeJ3OaD8KY?\NBMRG8QFoJ8@:LAS&H"UH%LA?_K?QF2TIgN*CK?N!CTmJPFK>MAR:HRZH%L<@:L @QFRHK@K$?P(ETJtO)DK?NCPFHOD7L?NBSAIQGKL@Ki@QFS-IMAK>ODSHEODJK?MBS:HR GI>+MBQ7G/SHPL@,L@-RFS)I^SF@TGK=.M?QETHLAsI=$PD8UI OCIMWBQ|GRHJ @K@P7FR^H'MB K?NCRG)OADeL@@MBPoHMRHK@@L> TBXOBR7Sl6W:Z=W;P8Q>`T'FPD8Kv?LBRK2TLLDOGRMT(PKDJBQ>HUJ7ODK?NsBdQ>HRH^L@dMpAS^HSkHKCAJ ?RFxUeJ%OCPL ?PDSIP8EK@MBUJpS^HK?OBSGuUIMCAlLm?OES JnNsBL>PfCRGPEL$?NGAmREkQEDMD@L @RFUVIMm@@M?QrDU IM@BK<PlATGQDMK<*N?TCGS"GM~?%L> P:BTFN ? M;P?YTDzP@K;N=TE-RCJ<'M?0RFQDcK=J>PDS H M@I=FNwB3SHuN*CH.=LARH/PEHj>LAPDRG7L@I&=ODQF9MAhI=&NBaSHOEI!>yJm@O4EPYDQK;)O:UePOCJ$?IL@RGPEoJ=L,@RGOSHK@Ki@NDsS:HNC7L]?OADTVH)OC&KN>P DQRFYMAQFKTHL@qK>PADUvIiOrCL^>OBTFHR\FL>N@S7GSFM>M>RYDTFN7A>L=P*C"UFRCM>OL@VGT,EM=xO@zTFUGM$?N=sSDV{HbOAiL=PBJUHGQDPL ?OB(SFRFcK>AL9?P8ESH%L'AyJ(@$PEZS!IMAdJB>NBR*HzPFI>>Ki@OS"HQG`J?KAQHRHL@K\@ODQGXNC J>MBRGPFJ?LB PEPG*J@5J?QG)RGALwBI>N)DRgHUNC,H<6MWBRIOlFH >J?QFR ILgBK AOFQRIK'A^IB>-NC?RGMC,H>uKA@QGPFI>Kq@POGRIKA+I=ND%RHM=DJ8@MCPGQND3I>mK@PLFQGJA?YJ?OiEPGK BI>NrDRNH$MBCH ?{L:CSMIOF~I>BK@OETOECJ?eI>\NDR IKBH< MBPgGMCI>KtAPENDzI?NJ@gNUENFI?H KY?OCOiEoJ?G;MBRDFL@IH:iL?QQEjN-DxH<]J>NCyQFH >G.=wLBIO*HI@NGh;L\A%RHK:BH=0KApOGNyEuGPFPGkG=G=^LCUN FJ*BG>MEQ I+M@H8N@;VQ?KWO<Q4Q5tV;T>"K 8J9[OBfR"HLDG>:LiEPL N,JHD(IC PLNIH@@G>MLEoP/GkJe@I>MrCfRFHNCBH=KATODFMmEFh;J>MODPG+I>XH5QEQ@FKA?IRDPZCI8;dM>RjDwPDUJ;J:QoB TEL=IM:&Nu@[REOBI;OM?REO CJ=`J>fR FQEG4;J=OD[R/GKA?,H};LAFR HNBH;K?[RGOE~I=IS=7RF QXF4Km?IRXFRiEJ#'QCSFJR>I;+PBSFsM>I:L>RYDTOAI};bLtK:O@UGOm@KiSB"U%DoM:hM=:TApVDP >L7gQ;?UkBmRf>O9RN7]P8V ?YX@O"8P8UR>V0@(S;N7T=WOBU?QNJ8P;jUB]T:BN;hM:MU5DVFN=L:P@qUGNAJLi?|KQ?wP$ESHL?J=gNBiSRHOCUJ=6MlARGPEGJ=K@P8ExRG"K?XK?PUERGMBHQERGJ?Hc=NCSIKAGGh;tL@RsHJNQDH{=I>8Q\F#Q@FH=J!>)O%DODJ>G;OrCAPGOMsB%H;LPAQ&GZP E)H;K@OEOEH6=HJ=nNBP\FCNnCgG};(LTAP#F PYEG;LAN!C`Q GVI=OI=*NBCQGQK'AG:N+ARG>LAI5>UJY?O ENzD2J?UJz>QFRH J> HUJ:>EOCQ&GUNByJ=K(@QFOADzI=J?*QGvQ&GJ=Jz>VP$ERFHXK?4H<*NCTIOCOI=K?R+FtOB KF=OPBQDP,EL=?|K=$PCiV}JM$@^L>P=DNTHOADK?TOQETJQHSLlAL&BSISAI+M*BK@8QGiS KOtFK@OpF5TKPF^LB,O)DSiJS#K]MDRMCQGT5IQ@R=W?\SBX >T7V9[rD!VCLF=OBTQJTK]MDN"HSMVRYMHKFrQgLVPQIeLBPESJSJwLAMJCTJT#KNBlLT@RGULPXFKq@RG:V7LPFK]?NADTMJSsHL@LA>SkH"UQJ:LAVMGBR"G^V4KoPD K>>QE.T IRGL@ODTITQI9M?+M?R;GSHxO[B@Mi?RQEDeVJGQDM?RQCTISG.M>xOAVHTGM>L?RLFV;GP@KlSfDM>P*BQUCGlSFLB=ME?DTFRF^OVCM@REVK QFL?zPC@TH"R/GKe?NB5TRHTH(L @NwBES{H:SGL'AJq@PFUKOzDqK?PDTIJQFSL<@O-D_U8KHSIL@.MAjR HRHMBWLX@O)DTjIQEPL@WOE`TJRjIK@LASI"RHKT@M|ARGUpKODK?DP4EkTIQ/GK?&NWBRGQG:LdAMARG5TJLBLA'QGT KAPqELAQE]TvIfRG Kq?OBdTGSGL @L>SFUJxOCMu@QETH2PD K?NC RsHQ HAL?AFNCRIRVIK?L@wPEQHLBJK@^ODHSEINCH=MCQH+P FG>=J;AQoHQHI @J>VP|AVBCS;hPY4U:ZAXz>8Q 8hP\;RCOB K>KAsP!IQJAL]EICOJ7RM MG,H$?sMCTJPpFHyQFPEdM@LL@OjDQFDMPAJ=OfDSHNSBH&=MCBSG/PD:I=L,@VPDPYEK ?J=0OBASGOCI=NBS:HwPC8K=N_BRGQmEFK>L>ODaSRHL>JWZS E$SDM >rN>0RBU'FBO)?ILTFT>HJ=%L?pOBS@FL@Kj>IO[BT%INBJ>M@SHPEeI=KD@\Q7GRHI:>J>ODRH4K@I~>NChP/FPEH6=Ki@RHQGJ>I=PF(SRHKu@HK@@QG:P'FQK?uK @PF%RH.MVCIN>O ESJLBJM?UNC:SIPFHF[<LAPFSILAMA"RGRoGMB|K?PDU$JO%DXK-?NAS6H,SGJ:>K?UQFTIM@JM?DPhFSJLBJv?P7F^SMJePGhI?K@SHQ:HKAKAQFHOSJMBfK@NDSYJ4NnDJ}@}MfDRDKO:HJAxK?SSFUD)O8Q7Vl<\BU:P6R=TMDPCK>KAjRKkQpKKDOMFSNSnN(LFBK E,OFR9IQNCuKq@2PESKP\FGJ>^L@S)I|RIyJ>I=OFRHK?_K\@QFTI1NB.MA$P~DdTZI/P EI>MA[RGR"GM@>L@SSHTH%L?K>MkBSINBJ=NJCTJRFK?%L?OmE}QEM,@VMU?0RDV%I}MAK>PATFRE=M?8Q:CSSYEQ6CoM!>M>TE8UEN=M;RAUGMO?(Ld<)O@UIRnD\KZ>K?S/FQC;K={L?QhFSHiL@&K>2PDTQJM*CbLAMbCYTIPDbLXAL@1Q[G8Q:HHj>J?OEePGL-DI@YMCRG]PAK7Q(:YAmY\@R9R?!LAPHR\KOFHYJAOGUPOJ=IBMCQSGQGLL@KP@gQGqRFH K?JKu@?NEDTuJrNBI=M!CQRHdQF3L?DM APEPEJ?K/A0RHSHMAI<)OCSfIOCIZPFTH`NAM @QDVqJO_BxK=NAwSGQEMK=oM?S&GS|G MN>(LO=MRDTRHMAL>,OA^SSG`NB=ItNDMR HOEK?cK@RIxO'FIq@ILBQIPPFFU:KPAQH6PF+MBI ?OFQICN4E3Ir>MZCRJiOF4H&=Ij>QBHjRH.J@5J$@OiE8QHMeElI?LCPHRMDIu@ LAR(JOFIY?GJCA2PF5Q&H@JD@G=MDS JL CCJ@KMVCxRJNEXH6=!LSBzP HPHIHY?xH>3OEPkGJ|AH%>O"GQrIMjDI?KCyQjINyEI>PL;AQGdQHKAvJ,@OFPHYJ~?HB=]P8EXRIMDmHc=MB"ROGMABK>LAZP'FRGHg=5J=MB)RHLBH>NFOFHLLE`G=QKANGPGJ<@Ie@jRIwPGFKAHY?MqEoP9IK"B$I?KBvQILrDF=dJAPGwPADkM;M7MU=YAS9P4U9U@N>FR9!L@)RIMEpIAJD QlLPLHZCJELGQ LM}EI @NDQG?NDF;7L[BM BbOPFQHJ0@eI=N)DS JLOBH<NARHOyEIc=K<@P+F6PEcK?IB> QPFPGuKL@J= PDTIM\AJ>OC RG>OEDHyQqE"RpFtL?K>P>CTGOB{Lf>M?RYEQR%DJ,;M>QBCTFKM>M5> PBR]EO?MK;\N? T|FQVCpI:*N@ U=IRoGK >K>RERF4K=Jz>O5DTIuNAJ >+M@SWGO.CxK>L@Q|FRHLXAPESIJ?OI= PEVTIMAJ=L?ASVHQFJ?K$?QTFaSHK?L@1QESHM'AI=NCTUJP$EIK@PmE-R[GL@J> PDiSI!OrCdJ=7O*CSIPEJ ?M@QYE"RF"KE?Jz>QqEASHN:BIj>\NRCSHzM/AJ>NOBQFODJ?K?XR|GMRG:L?L8@PESSHK@AI=$PCVJN&B@J<\NtATG2P{CJ; M>>S4ES|GKq?K$?PCFR GMBHJ>N.CTILAIp<'MCjRIMsBpI>dMA UXKNDGF=MbC2PFO%CL>MhA~SH*QiEIPCQFXN&BSI;kMAYTHQE'JW=tOBP FxRCGK:>M @QEUI(L=HL;PC9TG@Q%DJ<\N@T^H+P>CI[^L>KPCSGNALR>gNBSGODJ=J>R&GRFK?L?RHGT!IJ$?IJQ(E+TZH MAK=?R7FuUXK1NCxHFUH7R GCJ!>OMAQFP@E"Km?EI>QFSHOC:Li@NJCdTHQD:L>NA-R\FSG`J!>KM AXRTFS*HM?K>=NBTqJEOBK >?N*BSIPE;KD@L|A7ODPFKAJ@PXF7RQI:LAIZ>LCSPKMCIm?MCRvI2PFsI>LSBOERIKBJTAPHRIdM@K;^S9?[BV;Q`6T8Z@WYAN};K[=PDR|GWLB4KB+PISN^OJKENI-RLPRHI?LA>SZH$SIJ9?_K@NBRGwP$E4K5?NVCASHQE_K=?M@)RFRcGK9?mK?NNCSH9MAGJ:=PDSGPjDsIzPESGN@JlWL?6PYDRgGJ?I>PdFQoGLAI=MGB|R/GO!DIR>L?QEODH>rJj>PEQ GKAJ]?OD)RFHO.CZI;4NoBR HNjDH^>K @PFPEJ?J^>'QUE|RGGJU?YJ>MAS)IM6CzI=6M\ARGP\FH=I>PFRHJ?I=P DR/FLm@H;OCsS>HPUEJ6=&N@R FO BCJ;~L>MRER|FL?JN> ODQGLBG'<]MCQHODI*=iLY?P@F~P FeI>I>P}ERGI> J>ODQkH&NB%H;K @#QsGNYE Ju@LBMOeE QFJ;sMi:U>{Y@0R8PK7V*=LZBQ=J9L?QGBOLFH5?qKBOIQKKEFKEP]JO&HM9DJ>NBRFKPnDIN>KMoBjRIP@FGSO)DZSHVMNCHhM?PDRGMAVIL? RENQ8E]J"=PL>PCSHL>0Ks=OYD@TGN?|K;O@FUGGP%CJ;N?wSDS9DM=JN>:SQESE!LToGP_B'J:LR>jRmEQfDJ=JK!>O%D"RGuK$?Io=VPCUIO6CH?QTFQF K=L@-RG\QEJ?IO=MBPDFLe@HP;MCBiSINMDAI:='M@RGOFH=I=?O,ERQFKe?I[<OD'Q?GAL?'J=PCTUJLBNJ=kJ=P ER.HH<0K,@OD/S>HL@J>iO ERHMrCkJj>K @(SHNJCK)>Ki?RsG:PCK ?KR>ZPCTHcK=J<P.BS;GOBJ=MAjRI`N%DHI>K?P+FQSGJ5?K@NMDNQGLAZI:>'M CRILAyJ=L@qRHQGJ? J\@NQE8Q"HI?J@NDXRFO?Oy:AS:mY=%V:oP4R'7YBlSX@Kl;YJ=APEQ%IMFKZCKP%IR'LMGGGAtLEQ\KDPGIU?9MAOSHQ"HI=I6=PE)RIJ@2J!>wPC THLGAI=OMASHPDI{=QK5?RGRGK)?XH@;DPEyQFLANJ=P8ESHM:BHh; MARFHzPeEI=J>O-D-RG]MAIRE;R@F'JW'JZ8M=TESK~>wPB8UHdMAlI;OfCASGzMAH'L|ARHgQGUJ?Hr>NzDKPFMCsIz>lLBO/GLBCiH=JA~PHPH G>G=%RBCV9DO7O5U=YB7R =K9Jo=qRHMDI@JCSMQhK LfDILDOISML DI?]MC QGMDlI>wL@PFNI>>RHPFkJu@vJQ?OFSqJL/AlF:7LARI3ODHRdFVTHL?_K^>PCQF K ?M@PDNTHOD~I=K8@RH0O=DK>-NB1QER?GJY?J?CNDQVHNCGKAL B8Q HQHI$@OI>pO)DRWG7L@I>DPFHSIL:C"Hc=ND0RHzPEsI~>J?O}EPGJAJ@rQ|GSHJ/AG)>MDRfI2PEI=SL@SIOEJ?Ji@RIQII>J5?'MBR/GMBI>&NfDsSKMDJe?L.B}Q|GQGyJ?;K @OPdFRZIpI?Gs=PFR{HIODBK?.M*BHPFOEI?QNBRZHRH*Jf>oJ>:PpFfR JLB:IZ>NbCT}JhM_BVI=7LTA+TPKZPsHKA{LXASHPeE\K?J?,OEDfR!IKCA4Km@MOQDsSIN9DCGd;MARkHS.HmK@Ke@PFPOGK@lL#AOETeJ@M*CI^>OCRHODG"=H=cUpKQG8KE? M7ARFRGfKq?FK?PD~SsHLq@K?NBpSHSHK?M@7RFOYD`JZ>K>S|F-R'FLu@K?PCSHAPaD J}MCBSI8QGK?K?vQFPGI@L@NCT9IO&BOM;rQ;Xm@X=R5zT7^Z>X(@NV9BKy;RzDS^HM C`J@QHUU9NNGIAtOHT)NP IUJ0@^LAR^HRNHK8@FK?PLE.T HM?A;K>nNDKTIO{CIWJc=RFTHNAK>xOwBxRFOCK?M@R'FRlFJ=?L>RTFSSGN5?CN?RE"U|G`QWBuKhDM>NTFRC4N:>@M{=RUDTENi?LKLD;Q@SDTDL?<-N=,S4EREM5>PL7<Q[BUFJQBLhN@PDXRDK=J=;RFTQIOBL>OBTHQ~DfKF>CNdAPUDQ@FVI=J>RGESEoMq@J<#QDQUIOjCL?VPCT+GPCJQgBkTRCR]?PB=pV~DV:HMBHCIKMUDNAIpBJyJSGMCFGRHmOhPtONL%I LDFQ#LVPNF4N4ER}JZS'LkQII=M@SFRMDKM=FN=^SCTLFpO@^LVM6=T7FVHOAM->RDMUGGVP#AMK$;QASVFUEKq:On>UEUUDM:NQ>U:BUjCR?jN,:OX;,YQDVT@Q=:R[RUD`T/FN?LO=PB|RFPEK >L*BQGQF"K>MBPFPFMK@0K>OAD(S&HDMBKCAL>CAS~IMC]Jv?NDQZHQ7G}G[wP?GQ JJAHZ>MBQ>HdJ@Ii?NaD%RHLDJ AJ7APG$PGGK@tLA~PF5QG4K? H{=NDHP/GNDG=Jq@wS JgNDG=3I?PGQHI?JA?OEP HI@/F|<MCRrINDI>mKA?NFNETH~>uK@P;GQ HH%>H> N~D:SKAOFUN>CmK?rJ>QXFS>H4NhAtL~?PLA?QLE NAJ<*NoBRG8QFH;L(@OYDQG]J@@&K@4ND'QGMBCI5>ND5QsHKALLAoM CPFAPEmH=KXAP'FRI'JA?Iz>NEQ HNE.J?CNGATD>SA?M4R;7V;)Y%>RQ5O 8FR@T7G$M<@I >'MARHLBrJ>|NBRGZPD|K?K?QERGK?K=?NQESHLAJ>M C8QF*Q$EK:>L(@T!I"RG8K=L@}QD:SFN@JnN?SG0RF0K >O@TGGxRDLn>hM>RDkTFgN~? L=PB9TsGOCJKPDTHM:BgG;1N_BSHRdFJ>M@UQhFSI^L?xK=NZCRvIKAJ?3OASDQ=?N'6wS9ZB[Y#AP7tONBQFqR?GK>L@PDS"H'M@J=?RF>S H'Mq@KF>N?ATIQ\F=I?<PBRG"RTFiLY?K=PDQGMPALi?PnCSNHO*CKL5?RESqEJ;K=RLETGNAK;PGAWIQCM5?NQ?SERZCMJ=:SD;UF3Oe?M=RDSeEQBM->O0@RqE(SE`J;L=;RDqUH-N@M9?!OBSkHjN BlIh;N@SZHQDI@;mKv?QF)RFK?Jm?PqEQDM@K>NCRHNBI<6MlAoTIOADJF>K>bOD-RFXK]?L@KPD+TILhA^I!LE?PBC}Q]EMAL @YMASZIODKe?6M:BPFR*HJ^>&K^>QFQGJ?J >NDRFK@HI.=XNBSEIQFJ=ML@NQEQHJm?K?7RdFSHNBH; PE/SHOjDxK$?iOnC Q7FlSHJ>/I[<$P ESIK?J?QkGRHMBK?ODSZHNC`JB>Kq@PE|RGK$@J:>NC TINBKJo=NADrTuJTOD K>NB2TZIPDEI=eL@RkHQG|Ke@L@P'F"RGLD@JZ>WOQDSMINCI=PEoTIUNaDH=Jm@7RSGQtFWL?+M? OnCIVJ*NGBvJ=NCUIOC\K>K?QXFR GJ9?{L7AOOFpOFJ?J$@IBQJ+MCXH3>Yi?OP4bOg8mR@RDMA/I=LEPKRMFHgBK"GO3LNJHgB~IBO.HGQHH>GJ9?NDPGMCI>MBQZHLCVI>KA`QG1QGG6==IF>~PyE/SHJ?J?OE TpKuKAI=NBQFOD G Q'FS^H-K?`J>MATHrNBI?<:L?Q#FQEI=M0@QEOSkGK?J?MAVHLV>OI:6PSB&UsHPoBJSL?QDQEwL6=L=7OlAuUHMAJ3L>QLEPFJ?L@QDRF$M@K ?OaDTqJ7L@CJ=MB@QFPECJ[=K=sPES=IK@J>oPDZSGK@@&K?tODQcGrNCJ=hM.BQ GQPFK?MA:SHbRGPL@I)>PDQGKU?G:PrDSSMI^OD$I!>MBQ6HNC:L,@M@PDqRG0K5?J^>%R|F^SINZCH=KAQcG?R'FJ PgB TcG O@L=OAYTRH[OCKj>8K>PDQ7FK?IL@PFQkGSLtAsI=^L?TI&NDEP;L#AQ&GQGHV> K?5QdFQFMBoJ>NDSEJ=MGBCJ.=LU?SDrQR>M5[RO7Y>Yf>S6eP6S@pSnD>L?I|NBRF N@IPbCSGQfDI:Me?RFROG~IlQDSE'M5?L?$S|FU IOTAqKO=}M(@1UHwP:CIL=K=pSiEJUPFWL;O}@QgBUdFO@oM>QAVG~P?M=QPAU]EQ"BN>1N>wSQDsSMD3O>Oe?R&BRYDbO@%L+M@SHPDJ>M@SBHQEJ>AL? QXFTAII>AI>:PDUKOD0KR>MAPDQFJ?MBR[GP;FJ?G<*QD`TkH=MP@.JS=OD UJQ7GI=MC"R;GODFJ?NBSgGRWGKq?IO=P$ERGNBLi@NASFPQDL^>7OP@QDRF@J=N}@?RE>SHCJ>K>P)DTINDGJ=XN*BHSIPGH=kJq@PhFS IJ@J,@PEQGWLA J?M*CSAJQFH&=LB0RIsP/FdJ=JN?iVDV?AJQ7S5+W,;[@LV(;P~9R?SENA>Hy;LOBSL)R?L LEN*HRLQK\KADKsBOERILB;K~?O*CS!IOD4K>>L@R*HRGK>mK?1QpFQdFMAJ.=JQEIVLK0OBJ=kMAoT=IR"GIWQEQR GLXAJ>PDVrIPCJS=M@SFR@F4K=JN@RN A#T FRC LL>SGFRYELB>O?RYEQDK>$M\@P]ERVHLpAJ5>O,ESIuNbCxK?NCUJQ|GUJM?>L?Q"GRHJ>Hn>jN]E`TKLBHp+WGGwS>AP7T4:X>=HZlAO8sP=S$ETHILCA_KAhPH8UNLEJBPJTOzPIKAMARHyQGALAJ?NESIDMBJ >CNBRG.MBK|ALoBRHPEJ @LAQoGRGYJ.=K>kMBSJK|AH:=bOMDSEI*Q@E8Ki?LP@SIQRoGG<MA@QFRGL?LPANBCGTsHVM\ASLi?OCRG)REK>M@dTHScGI;J+PC/S/GrQDJ%OCPGNFQK/A1NCQGR*HK,@iHNDSSJNEJ?MBQGGvQ*H%H=L@QGRHK@K?A>ODUJLoBI>!LtASJpOFI>8K@RVIQGJ?H=WOF(SI?NBTH=YMCRI!OUDzIn>3L@SIAPEHk=BKe@OrD ODK@K@MRsHTNBCTJQ?GLSBKAQ^HvQG:I>J?QGTKLBSIZ>NCdTuJrNCJ>NCR!IHPYEJ>dMBQRHRIMBKm?FRGU LN-DM CZPFSYJP&GJD@ OrDTKPFJ?MB:S~ISVIK@iL}@-RGSmJqK[BeI]?O8EYT]JTIJQ?MBTJS^IK?}MAT)IkT JMAK>Q,E TvIOC&K>OBRHS:HfK@J?PFHpSuJL B-KL@OERHDMCKL@N~DRIaPFI>J?QGSI&KL@9MBHPFOSWASV=Q6R7pZ?X?O9K9PBbR+GKBZI<@1ND4UNO~IJBNHQLJQTKH?`J?PlFRHK?J>O ESITOEIZ>KM*BQ?GPE8K9?LL@QFyQFK?BK ?NCSZINBJ >NBfRHNDG?<]M@SHQE"K=!L ?QESGL@>L?xO!DQ"GYM AJ;N@kTFHQDJK=3L~>S'FTR#FJ=L?QDSFL>L"=PA_URHM>JT;NlA TSGQRCJY:hP(@S EOS9DL<7L+OCT=I'ML@lIM@PCQDKY?J>NVCRGLAIW=K@PoG MB`J=@MD@vQFQdFK=K>OUDBRCGI=vJ>OCQ&GL@JZ>M'A~SHODHF;J>iODQpFNJ?yJV>P#FQSGMKq@_HCL@RCGPE]J.=~L?Q]E PCK>&K[=OPCREK=zI@;NARFPCUJC<3IUJ>3OFP|GKAI=hMBTRZHLWBI=`NB6P GRMChIR>8K0@}QEO}EUJ @^I>O@FPBHH>Fd;[O BUER>>DP6S7PY>X<PA4P*8bR0@jR9DJf>I>)OE?R4KLDtHsBL HgQMJNIFP@KBRIGQUEcG:I=NCQFL@I5>YMGB'QFK?I=`NAmRGO DlI{=J9?Q|F P4E=I;II;PBTFbO]?=MES~DbRCKp;oP8@TXFRD J:L5>:SiEReEK=J; P&BSFNGBKB>OBS.HQN{ChI=DMe@5Q$EjRGCGNBSrILBsI=L?BQG3O5DG;LL@rQE)RGKCAPEgQF0K5?5J=ObCwSIuNaDG >Ju@QE]P$EJs=RMAHPJ?PExR*HL?+M@PDSGLCAH;OVCESGO!CkJ;>OARFO6CLv?rN?ASG6P=DL?J=QDFbRGK?I>MBR^HMCJ?RM BRGiOEJi?`J>SH;RHK;A5Jm?NCS9IJ/AG=LAoTKNEJq?NtAS.CTA2P7R46Z ?Z?R8:P8Q>T+FFNBI>MCSKPH&KBuNFQKMRCLJKCJAePFFRHLBJ ?wPDT)IOJCIB=P CRFPYDxKV>MGAQdF0RF>L@K?@Q$ETHhMTAJ=NB"UfINAkJ|M?SERQDN>LO=SjDpVGOhA,L%>XNP@SFQNCL;|N->SDULFL: N+L?QLESGJ>FK?RcGSHsMAJ:>MASINCkJm?M B*Q+FP8EKM?cKv?ODRHJu@IAMCOSG/PD@L7R;W@?U=O452T <\UBRDK?.M.B$PFSKrJSB=MDPHdTVNOHXH?LCdT#K QGJ$?L@R HvQGIi?K ?PDRG(L8@IV>zMBRH`NVCK?R|GQRFIL@J>PERVHNCJ>NBRGO CJ>\K?QEOD~IZ>M@R?GSHLL0@~L>R7FsSH-NAK&=]PfCTBH-R+F=K9?SWG7RELQ?J<+PCAStFNAoJd< QNC$SG\QDI =3L?R7GPF&KV>%L)?QDFRGKB> L?fRG)RcGK?H= OD-RGPpF=ILkB\NDOFQK@AL%CPWGTK6MAJ?PFFRIMCG =,LASJOFcGB=L%CQH]TJIV>!L@RHVTJK@L@PCwSGoMAHSHODM/AL @RkH%RfI0KXAFK'ANESSYJL"BNERKN;FH>JBRmJDPGG?JfC QHyQHKCH9?NETLVMF>HL@.MQDTKeP*CN;KP9Y@X>PU4SN8YTAWEMf>J=NCQHME=ICoM!I`T0PNIIEQKF*QKOPHMKkBCJ@OGQJLAK@OdFSJ*NEH>mKARI/PgG`J$@L@@Q HQHMK?J]?3OEWSJvJ@sI~>}M:CRVIPEIq?L%CP[GbR GcK?J(@PFRImKAJ>ODqR"H MBKL@NCTIOPeEJ=9MdAQFSH_K?'M@%RFQ\F-N|A4H;<1NBU HPB L=NATHQEdJL>S/GRFzM@J=?NBR?G|N:BXK)?K@RHQRNHEI:>,L+ARGMR|G K$@Jm@P>!ODPExOqE+IF>MSBgQFPPF L#AH=OGOLFMBHI.=NfDSIDMwBI^>YMWBsPFhPGGcKD@K@PEkQ"G|K @pI!>pODQPFVMTAL}@jNB+T IiOC*J=L?R7F'QEIo=KY?NDQRGI)>mK?yQFSmJLoBH=UNYDPGLBH>PLAOFP GIA?J@QHPGI?NG8`N6\Q-?TSGMA4H <KBHSKPKJYDICNHSOIDIBP[GU@KNQDrJ ?K@OEMCOI=K?PEQFJz>J>MUDOELAK@QFS9INBH8QERFJK>K=O6CRGMAJ=L?RF8QDL?qK>NCSGL]?L=QDTGGN ?|KpIPFMbCOI=K @QFQ[GcK(@I=NCJQ G]J]?H;+MBOSIOUEJ>K?ODkQFJ5?KANCkQ/FJ~?OIO=MAMRG6MA J=REQEK=J=`QD[RGK>I==M[BQF!LAiH=\K@QFOUE~I?MOBODHPtFOEQGoJ>:I>xKtAQkH]JAH>zI> R)IOFK@I&=PCBTBP9+P6_U9X=\U9jR|6'Q9?R7APNCIt<&K^>N\FQ@KIAJKMDQKRMKQEG@ LDSJMfCIzPYEPEVI=QK?QlFS)IKv?dJ>rNBSFKm?HoMAR7G:PDI+IhZPnDS7GTO%D]Jc=M?ESFPqEJ =xKZ>QYESGM?J;P6CUEIQ%DK>=L>TG Q.CM[=N?WSESPFKF=K;QB|RCRMV> M$; Q?VEQAL;%O?xRDR,EzMe?L >mRE#T^HJ>5J{=FNB~S HOCI= MASINCK\@fK@QGR:H0Km@J?iODERGJ>J@NDSIMrD/Fj>IdA`QFQMDN%>6P;W@W?Q68Q 9U}@UDM?2Jr>hPLFS}KMEJBMGT^NQLJCLDIO#FkQH>LCdJ@OE2P/F1NEDELBQFH+P+FJ@JA6PGP/GH=eLAPERjIJK(@]J>NjCSHLBdJ?MCiSIPFK/A K>OLERHH>\K<@PDSrIM*BJ>=RMAQ;G5QPFL@L@aS*HWSHAIAPDNT9IOB"K=Km@XRHoPDL?oJPLAbR)IM6C L@K+ApOEPFJv?I>OEpS~II?I$?uNC(SILBG:=KRCPvINEJ?IZ>QGOFI @OI?LB"RHJ?/I>NYDGQ"HFKB]F:K?'QH PFcKAJA PGGQNHH>NJ@MUDQHK?AI@cKAyQ[GM DH>LGBQ>H[O\FE+PoGP|GH?G<7OETKLCHZ>LCPGO\FZIM?J@jRIHPGH=H^>PF}QkHfKBEl;sM.C^SIBOEH=,LAQGKBMH JA?>OTFQHUJ? H=LCRI-NDAI>\K@Q[GQGQKX@ J]?[OEOEKXAZI>NEP?GJBH=$MAQ;GMCpI?-Kq?RIPFI?(LAODQsHH<5GPEQHK]?J:>NVC7RGM6BGh;:L@QF*QEK)>MAPDPyEqK?J=PaDMRGK:BG=LOBR^HLB3Ir>wLsBRHNDSI<(L7APFP+G]J?H>NEyQJ KBGN3P4U=VBL>=.JO<.M$@RHMEIwB]MFJQKkQL^I%CHAiOHPiJJAI>7ODVK7ODI>YMAR6H0ODIr>K@OFPFI?rJ?QQEQ FMgBGL7ASHODJ>&K=KPYDR:HL#AIMAT=IOMDK>}M @wSEqR@FJ=L@MRtFBRE0K=fK"=#QCRDOA4K<N @RPSBT|FN?K:RBTlFEOBId;{L>RE8QNC'JRpF3SWG|K]?ImORCQ[GMO:CfH;L @SHHPDIk="KA?RHQ"GkJ ?I=\QFSHL@I*=K@TRBHNByJB=NBQFsPEyJ=|K ? PD5THL?eL>P.CMRmEzMe@H:NBQ&GODH=I>R*HPEK@I>~P+FSIcKu@MH>FN8EQGkMCI>RMBiS IQFG.=L@OEMRII,@I@OFZPdFJ>\K};`Qj>Y!CX>?R6oT*8Z>pV;O9Ld;PQDAPDK @G?OHiVP PILEUNIRMKDG=ALCB%RG%R HI>Kq?RZHQ.H-K+AK?>OCRGjNCJf>%ODrTJO9D$IpODTI3OBCYJ=N:BQFTIoM@MhAjRF RkGL?K5?QE>VIUN+AJS<OGA&UNHPC*NT@EOBS;GSEL->PASFUGN>RDSEQ[BLNBZSHNbCL>KMAdQgGRHG =wLASZI>S~IK,@KAhPFNHIm@I>tODR9ILsB~IM?]MBQoHNEBH>>NDPPFRHfK@@EIj>OhFPHKA5GCLC'QEIMEEI>LBPGNjDH>KAiOGHPCGI>K?2PqEQFPL6BH=NrDQgGN6CmH|<NrCTRHMDH=*J?P"HPAIJAI@sMDtO+GHE?G~>L)D}Q9I@MD H>KBO:HMEI?rJ+AhPGQIeI@H?MMCQ/GN,EHc=LBRQHrN E"H=+I>PLFBR%IK?Jk=?NCRHLwBI>MBP?GLAKJ>LAQHOeEfK>K?MBR.HLdA(L@xOCSH|NkBG:N|A+THO.C_K=M<@RGR[GK>%L>RQETHK=K< P"B(VIN#AI4;N?]T7FPBJ:&N;OCSFREJ=LD@SHQH{LAJM?MB7RvIL6CHO)O?OW(EaS=O?7Q8>V?1U@Ly;J.=;R5IQ*H%LBM4ERJTNMLYEKDQNG;RMJ^OEI)?LB,S(J#QFkJ=Li@\QTFRGMwBK@O~DSIMBI=N{CRHPD+I=mKe?RGRGG;L@QGRIFK@:IS<QmES^IMAJ=OrDSIRPFKN>SL @QDvQD>L=JpQ4EREXNe@L?BO6CTIKD@FZ9NGA>VJPCL>K>RF1QE"K>Le?@QiES{HJf>JO=QEfRGNCOI=XNBQGPFAI=rJ?SsHP#F=I'QpFTIN*BNJ>MGBRG!ODrGtLu@8Q7GQGKCA-K?MCRHhMCBHIO]ERHJ9?J)?N5D^S9I%O{C5JV>1NBC8QGhPLFF;vJ?`Q7FPtFJB>G;NaDSItLAI)>NADRIDMBK?J>P6H2PFFK>K? QFQGG"K ?lI&=M?BOLErNVCdJ?K@@`T8JPDFJ>lLi@NQCGS=II>I^>%O!DaSHK@H&=nNRCSiJ+PDI;NCRHQCGI*=mK=P,EPFtLm@vJk=1QBRGOB`JPDR:HLAYJ>TOEDRGMBH{=KB QsGQFI>qK?rQFOP4wS9T?U]EO@'M>PEZSKMGG_H?NgGWSfNRMJNCtLBsSEI5Q&HsI>K>RsGS5INCtL@NRC3SHP}QTFFUiJNAG;KT@SIRFK ?kMGAsSGPDM?AMtAHPDQ;FK?~L?PDSG,SFK>APBUJPD"Kk=Nq@pSFRyEN@9ME?PCUGM>>Ls=0R8ESLFQJCrN?NCBTGSDL>aPBwVK8QmEJ>iL @vQGR|GFK->K%>O*C#TIM.BI>>OzD UUJNCUJ=1NBMUKPGIZ>J?NCPFLTA M.BOLFR'KK@GO=MC TJNDoJ>MC4N$EQIoJm@J ?SsHPDF'J@I>KSBPVH~LJCAI>4NCSJNCH=LBTRIPGI>'Ji?xOD|RGKAI?NCQGNCmK>NAR;GNDI=vJn>PF6P@EI>]J=?QGPGK|AG<6MB|RIIB$IX@eLB]PG NFJAIA?M$EQIJ8@Hf>]PCGRXKYJ@G|<]MDEQYJzMFF=,L:C"RHQUEBK9M7pVr>Vj>Qk7TR7TS=UB1N>TH;KAPIOPIG?LDE?RLzPKNJDI)DPhK)R4KH?pI>QOGRMILBI?MBO/FPkG3I)>:L AXR{H2PE+I>I@[OExR HLAJ ?MB9TIMgBJ?oMAR H QFH=(L@?RHRFH%O@qUCG)UFK<]ME?SDUFME?Jy;PBWVH5Q:BsI(;OBRFQiEzI=^L@THGQ@EJ>NJ >PEUUuJLPA(I=NCRH P/FG:=M@lSHMRHIE?&K?#Q'FpS9IL@yJU?LBCNQHM6CI->MBRH!OqEI>"KhAMRItOEI6=J:>QFMRZHI>J?:PEESHuNzDHn>KMARG PFI?KAP+FJQCGHR>H>PF RoGLPAJ?OCRGOEJ>L@R+GPEbH <Jg=bRFR@F3L?qKr>KPUER6HMAJ?MBQ{HNEbHs=zIB>-RHPFIM?K?!OyEPGKTAGPARAN8O6R9W|NJ?UQvIvQJGJ>CfKD PJbRfNFKEHT@mOFSJOP;FPH<.J8@6PEPF%H=J>PmEOEH)>IY?MDSoH*Q(EREOM?J>SE~S}EKM=L3C~L:=>L=aSLFXRDH:K=QERFgNAI>NA}QE6PBK>|NBSHOMDHJj>/PFQ7GJ%>I =NARFIn>OI=KA7RHN-DJA?K@ QF%RFI>;K?QFSIMK@Gk=NBCT^IoP DJ>MA}QWGPEyJ->L@GQ/FPEIL+AHOCRGODJ> K>RGqRFJf>M@RFR|FYM?JW= QDTJbODH>R)IQJIe@K@RFH_UKCND(I?TOFRJ L:CI5?zMC+PGOFJn>M:CP*H QUJITAJ@PCGTHN>uN9UK->RoHRXKMFKQEPKJUpQFN(J)HBMGSSLOtF@J>K\A"R.HOFJAyJX@PESHKMBJv?iOCSZIMbC~I)>]MASIaPF]J?K/A;RGQFI:=xK?O=DRVH]MAJ=NBmRGCNBFK?sMB~SHP$EKJ> L@SS|GSGKm?qK>PQDHSHNA;K=M@KTZH~PDI'TFTFN?0K <:PAS@F7O/AMK =M@StFGQD%L=M?3SDREBK=L5?PD>SGOM?.J<OCR&HUN CG<;{L>bR G PEI?JXA`QGG:SRH_K?THO<]PE)RGMwB@J5>MC|R HN%C=II>PE)RGK?Ic=IOD|RHMB'Jr>FNBbRHNCHHMBRAIP|GI<3L@RFQqEJ=J>DPDASH MD@K>,OATG PC|K>DM@RFgQD+IpMB#QFOErJT@CJ=?PmEQoHK/AI>MC@QH4NE$I>MB*Q EyQ@M8Q 9%VFNCQIKBI?ME1QKNQIBHAH@MnDmOeEH=EI!>`NB8Q#FBK~?IF=LA#QFL?BZIJ=XNB3OWBM@AI;{L?O[B)H;Mi@;RF+PCI3OD.TI+MB>H =XNCqRIDPLEG;I=OEuNENGK<'J>NDQH LTAI:P?VBQ;*N3SV9YAW@%OK>OfDpO$ElI>KWBBR8JGTBMNFJCLGSMNqEI>LAGQE'QTF*NGBSGGQhFJ>K?%O{CRHL?AhIO|NRCSHP DL=+PJCVTgH>SgGL>L:>P9D`TZHIOOBL=PNCSGNA L=bO?BTH QDIL@R?GTfILPAJ?ODRHgNB_H<|KARBHPFK@_K?'QXFRZHI=mKi@PFRZIKABK@`NeE(SjI MCKA%L6BQ5IaPGJ~?FKL@6PEQ HNJ\@3Iq@N]E8Q HLBAI>MCQoHOFI>J@jR!I'QHH?HAPFHR%IJA(I>1NERI1N CXH>ALRCRIN+FH?IAPHOFI?H?N8EQHK:B7H%>MD:SJLNCSI~?MDPGOFG=I@Q IPoHJ@I}@OEPGKAG=*J%CpSKWOEI>8KGAbRIO[GH=?JTAPFQH2JArGC1QHOEF<I9?P6HP HI?J@P"HPGJ@XH>LCRILCiH<7LCAgQHLDJAOOG QZH~I?H>PGRIyJ@H>?N9DO\FOLElI?cKOBPgGaPCGIH:>K@BO5DsPEJ>H*=NCR I KCA"HB>MB~P(E!OCrJ>(LATOEPHJ@(I>NDPG`JAH>rNQE|REJLCH>:LBPFHMDHi?H?N#FQIHGA%H> NE7RJJ@]Je?LA:SpFDP?.M7R:>V+P@J<J;ODxRILUDHA@MeEiS6MOKIDJ[GgQMP0JI>BK@@PGOXFLAGJ>NzDS JNUDH>;K@SIMDI>LA`QGPGJ>xK?~PUETRGWLALA)OC"RZHMRCJ?YMBQHPFI= N;AQRFRGpI>QK@QFSH Jk="K?aP$ESHyQEK5>LX@SS-I@QFL$?M@QD&UVIMi?L>JQ:CTFHOCA4KNi?UGxR EL>LF>3SFTHL=M?8QDjROG%OBK?rNAS"HPtFL,@MCA/SGQ#FJ>J>R^H,SZIJ~?I>mO@E TJBOCI=M;AS.HQ#FJ\@MCRIqRHK@%L@PERGMVC7L<@6PqERNHtOaDJ=?MABR&H~PXFK?KAO&GQGOMlAI>PDF8UJNjCJ>WOUDVTJ2PUEJ?LARVH3S/GMK>K?NQ"G3SHL@(L?P8ES HNBJ=NBTH7RFK>M?ARF^S&HSLD@J?OGjRHK)?PL<@TOqE RHOEJ>NDRI/PGSIm?LBPFvQAIQKAI?iOmERHKA=I>NDQZIO|GIe?K@|RDTBNN9R9W"=YF>XR6@Qc8T @VFdM@(ISlKPvIKCL E;RLsPCLQ7FjRGXNAKF>2PzDKTVINCK>bL@QpFWOBK=?%L?)RGfUJLv?J=OCYTGnNB K=wLj>VJoPBJ'LO=7RCVHsPAK;BO~>SCSC1N >BR[BTeEKTDMc=7O>QRtA V7GQ;AM>6PCA,VGwPAK:=4N?|UHOBJ=J ?T&H8UI]J=WL$?KPUD$SFOBLi@P)DYTVHPDJ?OM@RGQDF0KM?K>P@ESfIXK?I:>MBSHN!DI=N CRGQhFKm?Jm?SsHQFJ>dJ=ObCSGMAJ=OCTJ N*CI=NbCSH;RG(IS=K@RFQ7FM@M(@QESkH L5?^ISLASJNDI)?qK?PGP'FLA~L@}QERFH K?K(@rNBRGBOyEI?MCQ5IQBHI;O=UX@IY}@R6S6XS<$ZdAS6=OhLD@RHSIK@K?QGSvIK@J>WLtATJDPE@J~>MBYTIPFFKq?KXAVPpF`Q"GJ?JE?JQFUJMBJ=uNAwPDbOCK> N_BSSHRGJ>M@QER"GXHKrJ?QFPGJi@H:>OEREIM%CyG=L_B#QFMEIA0KBtOFHOFHV>xKALDO5ISI@F@;N?SCOSN>N7sST;V?`T>M:L>>NEOF(IT@JkB`NHRNMKCH*BMHRQKM FH-?rJAoPF Q#FI!>J?NDRI4K@HN>NDOPGL{CH>M*C`QGOEKJ0@J @P[GOE Hp;I >)OnDQZHGJ?G>KAOP]EODIj>J>R>HQFI>LGAUQEPF@J>H< PERGtLAHIW<N\AWSGIO~DVIONCDPE J?L*BQNCjR.HK@H >MCRI,OEHOFQH~LlAH=LAS JeL*BGB=MCRHLBG&=MB|RHPFI>JA&KB:PcGALAH=MgBQVHNDGGK\ASVI OD&G=I@RQRH/SVIK?H=MQDRHmO4EkJ)?NB>SINeEI=?H=BOC%RkHK,@*J-?NDQHKpAVIB>M%CRIODG<_K@\QNHPGtH5>MH?DPFR"HRMAI=LgBR~I{LBZIB>LAS(JoP/FGH:In>H)> RHQNHK@qK @IOaDPFOMjCJq?LGAaSNHRQFI[=K?oPEGQGJK(@uK>DPDNTMIL@I<-NBSHPDK:>L>:S HPEH=J@O#FP"GJ~?0KA?UQhF)RkHNQDI*=MBvQG%OEH5?SL BQCG\QHJ?I?QG8QHJGBXH?iLB,S"H6PAMe:|RP;Y?VCI=3OnDRHNQDK@L}@RFODK@$MAQFRGK@K?WOBSHgNCkJ>zMBR"GPDFJ ?.M@0RdFSGJz>Lq@QTFSHjNBG'7L,L =S/FSShFLF=KO=NBT^HOBOI;kM?S/G0REIR[GPFUJ>Li@bRGDTJKA-K ?mO9D:VLL+AHlQNBRFS[G=M@eL?1QMDSF:LN>I =P5D^S[GQNpALv?QeET8J%ODJ>K?S9INQGJ?LAOE)RH!LAI>OESAJPEKi@?NCSIaPEF:;K@[RIQIH\@KBpO"G9TKL?AL=Q@@W#AW>Q7U9ZA?6Z>OPg7M=:SESGJ@ALBsPH TsM:P IvJCNJ)RNQKcKkB:L_B"RkHRH{LALBPFRH*NCI=PESIOD`J[=?NASHQGLAN%CTJU]JK?rJ=PESH N&BfK>OCTIPqEmK?NAUJ[RFL@NASsG#TjIhMPAL8@N.CkTfIMAJp^OdAUG!VHtOdAN@Q-DUGP/AM>hP\A|UGR9DQN<@N0@wSeESG N,@Kf>pSlFUIMAJ=N B)UmJODJ ?EOnDRoGRGK@MAjR&HTI+MBAI>PFT\K~L*B*J>QNB5TbODS JPEJ$@7L!CTQJQG.JN>M&BSHRHI~?J?PE+T=IL@_K>OD8QEzPDKV>MASHQtFJ)?MK0@O}E#Q&GK/AI$?JNEjR=ItODH=NnDaSJOFoJ@KXARHUQH$I>I>~PG`TKYMwBI?WLGBSJMD"H]?BK#A~SI:PCBzMd;OT;'W@6W>S8(Sg7W>VCO@IKMBQIBOzDK? NBrQEQElL+AL?PCTIMBK?OCRFP-D:I;N\A?UHPCK?-N/AR+GpS H6MdAL?QCUGOALVGyQCL"=MQgGWS JcKCBHKD)OHRKNtFJ@L@RHRvIrJ>J?QR?GGTI!L@(L<@[OCR6HOEIz>PL}@TiJPDFGK<,L?SS6HQWGyJ>M AsSGGTRXFM"BK?ODS~IPE5J=M B;RGPTF L?M?gNA'QD=M@L@RFiSMIM[BI< QDU^HPCKU?M@TGZSlFJ=OXARiE)RE'M?LV>PBVJOSBK >NA:SEP B2J<~L@RG QFL<@L/ARF1UIK?J=PD;RIN.CKJF=OCRSGhPDJ~>K<@RQGyQ7GvJ>K?MRF#TIdMrCHB=M6CRHMCI>MB;UeJ'QsGtHpI>NfDTK KAGc=L/AThKVP FJ?MBRGPtF-KP@K}@ P+FQGLlAK(@xOCRNHuNC"Ki@`NC;RHP#F_H;K@OzD4UKMBBHK@+PE@QFLBIz>PF5T9IODyJ?M{CRJOmEIS<}M/ARHQ:HHF>uKm@OGJq?P@FPVLMBI=OC RH PE\KU?oM.B^S-IQ G\K>M\APES0JK@@K>R4ETH]M@KV>NAASHNnCL?NBSHSHMTAiL+A@Q@FRGLAK@PgGRI M:BsI!>NC$SIP HI?*JX@QsGQRHM:CKA+P\FREIYJ@,LBL CUrI#Q A4N}:Q ;ZA7Y=R@5U8-Xv?WRC4Nk=K=PDRJoMEKB PG\UeOOJJE6MGRKePGuK@+M:CPGQHWLBfKADP'FQHNDJ?ODQGO%DJ?KBQIRgH]J>3LAQG,SHNBJ> QESAIEOQDJ?NBT0JPhFJe?NBPEjRHCJ=J>KPDTJ`NCK?OEESHODH<@MhADTI RF3LU?oM@RGR HK?Lj>O.CvTHN?L=,OTAT{HQMDL=zM?SGSF^LN>M@$PCAS[GL?mK>TOBS6H ObC\K ?OCUJPDMHKe?*QG%RIL?B]JP@LBQHLCJ?LASEIQ GK<@J@RQG}QHI?K@PF'QGLAJm?NzDQVH]MCH QGbRHJP@J?NDS,JMCJ ?LBRIMQEH?LB6PXFR IxK@J?OUEPFL.B2J>QGRH=MAI>=~L<@SS|FwPD*JE?LAFR?GOYEKCA.J>NCRIMDI?1N~DRYJ(L6C$FSOG\QHKBJi@MDRJQKBMH>MBQQDRAO9Na5\XZ>Y?R5AP3S]PFS}JLL"BH=MCQGQgHQKi@dJ?QGPGJ?TH.=|N=DUKLA,H=M[BRGNC'J~>LAQIVPF`J->YJf> RG3SNH%Lv?K>OC8U$JMB=I=NB8UrIOCKW=PL5?@Q/FRFmKR>K=PBQURHN@%L<1QBVHMO?K#<PASFSE5J9O>UUETqEL;IO?RBWVF&N>K;ZP#A>VFHNAJ;N@T/GqRDLV>L>RDKTHLL?pI[=P8E&UiJdMAK>MCBUJPeEI%>KA~PSGmOoGJ>LAPFrQFKP@K?N6CTCIvQhFzTIJX@I?ODTEJOEIZ>M.CQdFOEI^>K@OSIdTeJ^I>LA/P=DSsGMAK ?OzDTLKPEK)?*NARF PCiL-?M@RFS-IK?yJ->%RFT8K+MCJ@MCRQINyEIA?]MBSIQ^HJA*J @NQHbRHwLBNJ=?OESJMD$I?QNjDSxKPsGIe@OM!DaSxKSIL-? O:=T?y[NC Um:QU4X;F\$?uU< M ;?N?ZSLFRFI~>:LCTZNTN MdFMGLARrITR^HiLX@L@QF^VKODJ>OD TJPFL?A%O:CS6HSHLA@M@RGGTHMtAL?OfC)U(JP4ElL0@PnCSHQRGwL@CN? TcGTIL@K?S>HVJPBM@@OOBESFODlL=gQDUBHU:HAL=M?S'FT7FxO?JN=TDV GO?N=yQ@U(E;RB.M*=)O@MUBHFRDEJ<.M>RFUJQK>~L>PDTKO5DSLX@N6CSHQFJ?]MBRGQFJi?KT@QFfRH%LCAK@P/GjULLBUJ@mK@QqEPAUN:S6=X@@[YAO{8xO9RApV9I+PMDI@MUEqUM T+KILCNFrTNrQIL.CPLAwPFRHMwBJA?6PLET~IN CL@!ODpV{MOE"KD@'MBSH`QFKq@WS IJQ/G]MBK@@APESI?NsB"HK MCASHaSHLe@ M~?RESRHM"B8K>>REVIOBL?OBVJPD4K>hM?~SdFBREJ>@M@SGVJLL@\K?SHQUmJLPAJE?OVCTI6PDH=K}@@TMI@TII]?cK AQFdTIMbCsI=ODTJO%DK@|NEQ)IOiEJ==MCBQFRHK@BK@ QFNTKLCLPAWODRkHODHO<`NEDQgHQH.J?Km@]POGQEILBK?NQFQGN9DIi?NC ULjNDrJ?6MBRHPcGG=dJ@1QFNTILAK@O]EQNHkMCYJe@OeESIND^I>qK/APG QGK#AK@QkHFRH=MAJ?MCTAJbOEfKPALC;R*H-R*HJ>J @R7GQGI,@sIZ>OLERIL.BKX@~PE|RInNDI?dMB>SvIRGK?J?lSIQHJhAI)?!ODSMJM!CI)>NB+TDKOLFYJ?hMCBQFQGJ]?Ie?0RGSItL:BJ?NnDGTKMCJ>nNCR:HOFK~?MASIS^IK@@MAPES^IMAIN>O!DESH6PUDJjNBTIOCK?KM?BQGSIL@QK5?}QpFTJXN[BMAPD|UI QSDpVnIPCL>O\ASFZSEK>PA+ToGUMIN@L>ShFU{HN@iL=RDR;FQEJ=OBREQ/FJQ?NbC/SHHSH MAK?2PaDS(JN-DI>MUD2TITIK@MGBxRGRHK<@OMSB[RHRHLP@>LAO,EcUJLBH>MDASIPGJT@cK@O+GR0R&G7R&GoMOBJ>OMDTJ3ODJ=NA UJOfDXH=MdASG^ShFJ>LAP7GBR*H9MB-Kv?eP&GSKNnDIf>NCRHO]E%HB=hMrCSMJOFK@&KXAMDTKJL@I @)OFzTKLLjC"H>L:CRqJRIJ @J=iSNC-XCQ8Q7W=Y?Sq:WOq:O?RGiOD2Ju@&NFRJSpLLDKF0RFN"R.MJ:CvJAZPFGTJNC^LTAMCQ5IM)DK)?OCRHPGJX@MB*QFRBH@M AK>NCESH0OVCL@DTIRHMgBL@6PEOSG=M@L ?OCS:HL@K>ODS0JnNVCbL>PBTIVTHK?M0@RYESDFM@Lf>wSeEV IP*BM='QB;RDQBM=%LIL<;RCT7FOTAL>O@PVHgQYDJ>MK>SFTHMdAJNP@>SCGTH$M7AJk= OgB ViJOQDZI>=+MB/SQIVPFH=LAQ|GSH@MBL/A@QXFS{HL@INC5TIsSHxK,@LtA RHsPoGI>KE?RQF@TuJ9M"BK~?ZPCSGMdA;K:>)O.C3V}KQqEL?Mi@OfD`QDCN}@pO BQESZHNBJ>K@SIJQGI-?J@sS!I~SII? Km@PF9TJK@J@*NEPGLBK\@LLBSISXKH9?MzDPEjRDEON6BTK-RHLA(L;AQG.T,JKAIv?CNC?RFNB K]?RGTJPEK>YMTARGoPEJ~>K@RoHRNHNBK?PDRFPDK$?MBTIScG%Lm?WOCTVHQFKQ?J>RXFSGLT@iLP@%R(EVMJREDeL>OAVEIzTFM>L-??U/G9TEN>RM>NQBTSGQAL=QBU*HRDME?O;A#TFUQDKB=NBS|GT!I L?K<@NDTIWO CM?NBTHQEI<%L@|RGOEKAVMwBR[GU]J^L@;KA?NQFTJNC7HMWBS=IQgGMANBQG?RHKJ=?CG=MCvTIOADmKi?LXA%RFRGK? L@SIRHL@]J?PFjUKKMAJ~?OCT)IP FK7AN CR^HPFfK@`NARFRFJ=QK>PEDUUVIPDqKF>OBDTHKP EI=LXASIQFJ9?J>@Q;GSIK0@I?RQGSKNDK?N!CqRHQHIu@OM)DbRHRIJD@]J ?XNDS?N7T9:`[?3Z>:VN9jU:W7ATnDJF=K?OETMhMFJBOPITuP$P LOCKTIPCmKj>&NA8UI}Q FoJ=NBxUIWSG%L?]MAQESgHNAK=PBSHvQdFKZ>EOPAUH U[GLpsPAUF`QSBLL=OTAUU+GREDhM>Mi?MUGVIL?MA?P5DTEIMAoJ6=APDTJS7G&K9?MA-RFwSHBK@iHS<`Q;GpVLVMBH>MDR.HdQLFI)>+MAUKHODK?.MARGUJIOCK%>MARGrNBHW=MCHS IMBJ)?K?NEPGGKA*J8@tO|FSJ>H?Ju@LB>SJ QGqKBmKCP:HQI*J:BJBePsGSIHM?^I>*QIRK,LQEHD@LjCDTHSC2P < TS<:Zq@Xr>R"8T;VBVFdMD@7L?jNDUjNNHkJDOK3VSyQMImELG-R&MQRKKAeLoB7R{HTpKQN~D3LBND UcLQ HJ5?}MNC`TLKRHqKAMBRHSJJ@L:BQHT}K|NCJ9?DP|FTKL6PGI\@nNDT}JSGKT@lL*BRFHUOSF3VMIQC M>:PB%VISF M>M>TFUoGM=L#PDxU JRQEMu@NOBSH\QFkJZ>`N[B0RFRIK@L;AQGSHL'A.J?ODTKQWGKX@MVCTJJQNH4K@8KBPHSJCJ@ J>RQCfUDTf>rQ8T;Y*BT ?C>H>M[BTI,SG-K ?L\ATRF0RGGK AK7APXFKTVIOCK?P ER|GODJn>MASGSGLAL#AdQpFYT5IMALD@PQDT=IPDiL>OCT.HmRFK$?rN}@RFSFL)?'M?P@ESCG4NlAK>ONCS&HiOBK>NASNHRtFLv?MAHSBHS!IJ>mK? QFZSINCYJ>)OC.THP,ElI=OMsBfRHPFK'AKv?PFkQHK@L?PD#TJsMjCI ?NCSI3O8EJ?M_BRWGxR{HJ?lLAQFWS!IL BJ?EOEZSH$MBrJ@\NBCSHQF]J?K/AQHfR*HJ? J-?$PLEQpFKCAIHo=rN=DxRGLtAtHR-INQ+GIV>I=O E'QFLBTHHtOkMA0RGwLA;HHI ?!O}ENE_HMWBODgNCH<`J>LBoMrCIQ?HF=9MgBrQGMBJG}MD@ZScGPQE^I=I>P FOEhI>I=!O)D"RsHK@H=NC^SILBHpG>>mK%CPHL"BJXp<SI>OGQcL^LDJoBLFPLOmJ JAwLAQGrQFF=KCA8QFRHM@I!L@QF-RHKm?AL?HPDSoHMBIk=NBzTHN.CI=LAqR|FQD K>J>>Q\FQHL@K?R'FUjINlA L=QDUIUQrDJ'M>RDSEM?LM>RQExUGOA~L=REUH3OA^Lz>%O:BSGS|FAL>MASGRGRMAK>rQDSH[OCL@P8EUK\Q+FuKY?gNBYTHR?GK,@KAmRCGSHNAK> QE UJN6CI=NNCUmJ@QFJE?hM@THSHJ>K@SvIGT8JnNNCK@NQESHPDK @uNfCSJAP\FYJ>:LXAPdFkTHhM@Li?S[GdTGOA.M?wPB+WN@UIQEM?MA7R>HdQHKAJ ?QFUJMBKu@NeEvTKMDI~>MjCxRjIQZHcK@(L"BbRGOSGK@J@NTFTcLMCkJ>NCB%V;G T>P6 T-9Y[m@Z@R7S$;UBP&BJ=K@OGTMNGLEMITPPKJBMCPER:HLAL,@YT^IZSHMBIO=N"B8UPKWOE^If>MBS IRHKD@L@MRFPEL?L@'QEFUJ ObC L @OCTJNDI=XNBRFP-DI=M'A:STF>SmEnN@M9?VT;FU\FOP@M^>kQBWJSDkM<0O?4UFQ EMF>bO?UoG?UCGNY?%OD@-R9DDTgGM@K>P%DSZHJQE,L?LGARVHR&HWLe@OB2T IzTHLAJ?QFS)IMC:I=IOD]TKPDFI >}MCBMR H3S%I@M?BJ>Q^HSZI?NBK?PEQNHMODJ?PDEES$JPgGJ?MGBR:HSvIJK8@LhA`Q7GUKMCJ?rQpFTJ7O8EYJ?L@TISVHJ?LARH1QILLAL]?`T?GVIPBL?PCTIQqEKq?iO%DTJRIlLB-K0@QFBR:HLB@J9?DPE_UKO@EYJ?LBTLzP&GJ$@@MCRIRIK|AlLBOH5Q!ILANJ?O@FOSlKJNDJ=N>V CWV@Q8T9Z@Y?"R9M9-RC/PEKCAJBNkGTFN2PILELG/SN~PKYJJCLBR^HRH LALAO+F]TKL[BG=LBSZHFR#FAL?M_BRHQGJ?uK?iODR.HfK@I?MRCRG[O=D-Ki?ODWSHRF K >L@[RGRGJ$?7L?P(EGTH$M@cK>hP!DSHPrCL?:Le@ScGRpFL>zM>QCT6HL>lL5?QQD%VHO@sM?N/A2T7G1QEDM>%O?TESQDK:K:ASRC4UFM:>M{=QC]TH1NlAK~>sMARgGRG:IO=mK?RG(SG M@K?sP'F-R"HMSBG#NNCNT@KOEIv?KA/SYJPHG>KGA@QE@TDP=M6?U<[RCBV:>QU:P=,SGQRHJe?OM%C$PHRLMTF NFePJ]TEOmOGYJ?NCTJwPTFJ?NBUQGPFLgBLL@JQF9TJNDMBOEQgHNCKQ?xOCiSHNEI@@VM6BoTIRGK@kMAwPFTYJOBK>PESHMACJ=OCVTnISGL@MtASRHOSHNBL=PCUEIOBbL?QEUJPCMTAOATIRFL>NP@iV IUI&N@I=OBCV)IQDL>"RSHTIM?ARMu@PDQGODK@OQDbRNHNB TIMRHLm@M+ASHS IK?AKCARGSSHOETxKvQ+GtLAPEqRJPGuK@NoBR^HSJMBJ>OESJ QEKT@ODVKQG\K?jNAD[RHRGiLBLsBdQFSJM!CK=?/P(EsSIP FJ?IOCWS JOFJ?LAQ>HJQHKAL.BOFRJLBKJAPLFjUJPEZI>NCsS(JPG LAsM%CRHSIL:BUJ)?bOEESJ^LCH>ODS'KQH]J5?L:B:SEISEII>I>yQGES}JLCfHN>APFR J@MC=I>CN~DPG~PGH>I?+P+GQGK@LAO FTKM9DI?MDRIMQEIr>N*BQGKB`QHkQGH@G?4NGQeJJgBAIF>?N@VGsS>N4S)9Y?W<1Q7NM:QBPfDHALAFRHdQG~I>cKD@;RHQHI>J>QGSIKtA]J@hPFwSAIVM*CVI:=$M@S{HQCG=I*=MBPpF'QSG%Hz>I?PXFUKnNBKF>OC#THNJCJ=N#ASGPCL ?oM8@TSG9TGK!>J*=QDUkHN@KW=QJCrTFhPBJKd<)O@SmEQDJ=N@S+F UH1Nq@LE?M@lSFOBK>PCSsH]PDLL@!L?lS&HSZHMA L@Q@F|RcGKm?Ho=PDsS~IwPDHIIKT@SQI!VJL@8K?#QF#TMJN{C@Jj>ODRGOD\K @,OC$S&HQG-KY?MTA$SgGVKUNBK>P ETIP5D-Kg=NAUJKPLFIs=DM?S/G7R+F>LTAK@P"GSI N:CK AOER5INC\K8@MC`TJQsG;KALBRHSrIK(@J@5QIbRILwBJ?M.CVBM@QEK;OT;CXAvW>kQd6T7aW<W?AO[=M=\Q8E>SIOF\KBZPITOSkMJD*NHSNQJI8@J@SHV'LN:CFNCREJBODM@OBCiS^HSNHK<@uK?aSHT)INBM6BQFSVH M AfKv?P-DBR"GQEL?ApOrC)UIDP FMX@L?SGwSGLLP@=M@REVTFHPEDMKm?NBUISSEYM>N?WKWSdF]M>PAoTG UFhMR>Nf>RCVGTaDN1N=RCVIO7A~IP;QrCTH+PBM>^O@ TGTNHiL~?Le@@QFRGJ=MXA(SGSMINrC^I=PLER:HPDfH:=K@8UKGTIKJ!>WL@DPESHMA0K @ODSH$MBMK<@ODQGbO,EK]?LL@SH\QFlLm@mK@QGSHL@/IjNMD#TJ QjDsIO=sMAZSH TsHxKv?K\@SZHV]JWL>Il M@KTNH7RFL@DMAP GRGMK?0K?-NCHSINrCQK@NDU4KPgGJ?NDRHWOgBVFZSq?Q9T8\@\:BmV:Q%9VT @SDOESLQKzI!CNISMO}QOLuK$EJNFQ{HSZI{LAMAQFoPF&N.CIr>KOBSIOD N\AMBSoGPFI?iLAPFTIMlAM@RFpVKKPDJj>ePDTuJTHL@P{CRFMRcGM&BWOCTH?UINBL,@QiEVKPDN*B5Q@ETJQGM@PBT[GdT:HNi@N@SEUH\NCTJQH J?-NnC~S9IS!ILALARHTKPFK@NCSSEIRIhMB NCTLR,JJ\AiLkBQF.TFP= Q:VW?*[CV&=R9QU7ApVGRG LhAODRdK%RLdMFOHSLTO7OHLBP"GUKP/FK@NCSKQ*HbL@.MARIXRHL:BLA PE+TJXNBH=OExUKPtFJq@MDSHR6HL'A@M@;R>H[RIAL@L?HIL@M&BRCGS9INCbL?OD T^HOBKB>|NdAS6HRFcK=M?SpFRHK>M?R FTFHNA@Jg=OCU}JPDKf>NBSHRFqK?L@QGOSnIKT@FK?NADSHsMAI~>UN>CTuJPFH*=PL;AR6HQ+GLAqKAQGS*HeL @Jf>~PESINVCI>MAS:HPGI>NBfRBHPGPL\A_K?RQGkTOMDlS I PEI>sM CR&HOkGvJ@@MAMRGR"HL?K?'QFS8JM%CIQ?VMBSIoPFJ?KXAjRGQ+GIr>BK@RQpFQsGDMSB2J>NDR5IM CI>MBTJO EJ?LCAyQ"HQHK>J~>XRG`TJJe@Je?ODR!INDJ?MBESIPmEI=L@RQdFR6HI>JK?PFS%I'M[BJ?&NrCKTINCqK>L@WSII>CNE5TqJM BILL@OyERHOEHF=UNAS{HP|FI=4K?BROGTIOMA~I{=PEQGMBdJf>MA\UQJO~DK=%LN>PEQFK?LA?QmEMUHNBqK=PCUYJ@MBsI=MAwSGNDH=M@RFlSkHdJ?J}@^OERZHJKX@yJ(@tOESHND.J9?LAwSJRZ8T ;5X]?oWWHAS"HL@NAQFPELdAL\AxODzTeJQNB~L>LA? THRFcK9?hMASHR?GL?WLA?R7GU(JMB>L?RFES:HOBK<QCU>HQD$Mu@M@SGTG]M?L>:SFMUHIOAM?QC^VHQBL=QBTEREDJ`Jd!OB"UIQR|GuKv?jNBRGPEK=?L@R/GvTK9?QEbVLOCIB=OADxRHOD K?MBT JdQoGK@FK@@QtF9TKiLAXH=EOETKNtFEIT@NDSInNtFI?QKPAPCGN HkJtAKGAQIS\K-KkBKAOD+TFS,@VPJ8iS:nXU?CX>R6vT7<UNCTFJ ?IU?OHR+LLLDF_K!DO8JWSPNxK(I5DiLEMRKPkHJ@JKAOFSJbLBK_BPHBRAIKBxH>MCS JKPGTH>LA5TJPGI? KAQHS(J-K@J?OFRZHNBK?=MBQ.HuNSHSL_B&K(@~P4ERGOD3L>ZPCASHP@EqK5>L$?~SGNTIK>Kt<&U7F#TgGrNXAL>O BLV%IP CK<0O@rTgGRE L>YM?Q5D5QFuK~>H;R'FT~IMCCJA?MASIP\FrJ>MCQsHKPFK@K@%O,EMRHYJ@ J>OE;RIXND J@JKBhP-IP HI>L@Q*HxRI`J@cK@OtFPCG(LAI>+M{CQ6H=MCH>MC^SHPF;H%>3LBAPFPRHK\AyJ}@>OLE^SiJ3LB2J?%O]ERJMDH>LPARNHR*H%LAK@OERHjNkB3I\;5Q9DTIMA;Kv?nNBsSkHODJ>zM[B[RGfRNHK@;K0@O|FPHWL CJ@NiERJ$MCI?&ND"RnIN8ElI=?iLA/PF7RgHK@KA*QGSJMDHIu@LD1QVHPDxKS

>hW7A(V=Pd6P6Y,@YC]Mm:KpjN C+TEJOPFJY?Ke@Q?GS IAL@uKP@PFTJWLm@J>!OCRGHP!DqKQ?M&BUlKPGUJB>NASBHSGJ>J>QEUJMdAL?`Q~DUH#QCL?MAS"HrTHL>$M>>QDUGM~?N@@|R=D UHPCK.=O@TDRbCL{=Nr>PVDVMA?PZC2ToGPBKM?M@iScG-REL>-NA]T^HjRGL@L@PiETHM\A>L@OF[RImODK@!OC7RH PE0K?bLB5QGSDKLsByJF=Q B WBQM:Q8zTX;C[CV@?Ny;N?TFHR IvJANF3S[LTAOJKVCKDR+LTpKQ>HwL@N,E)R:HRGJU? MAPFSHbL?K@QESIJN:CIN>ePEUJPEsI.=L@SIRG(L?{L(@S?GRGJ=H;yQEFUJN.CK?LBSIQnDBK=M#AQ;FOCJ=!L>Q$E#TGwL>IP;ZPCSE M ?G :K>DG%F@]0M_0 kM"f:qjY ht\w]RX_9Y[ROEDCGz9\G9I?;;3)} D J+,d]^Y[MLA;OIBKEJD CY:rC;~IClIBFAJ9@8\GT@mHZCAX;i>|6? :k8Eq?IzD{B>-A};G*BJGE@@=;DBgGJ]FGUD>ICLHPLED;I,@ LCE7F69/Z8!0M%trs-77 O `T]~9fV^cj~WPehP-^sP[+P]UGGKCv?+FASL HHBA:cD?'JpF JEB>RC?MHEJ"G+C>zC>PH>CJ+FE@A=E@L;GBHnDA (I?dM&HN+KG7F.GAICTJOEHX@LFrQMXC2TBK;K>COL NLHF`JNH}QOSrSM M>LJPPQRTPOMHK@FmOKLTQQcLMYENGTL~SKMEMEQKUYOOHMQDSJVNQoHLDqRK&XSQNTKLCpOLEGTBMSV MO)DOqEUgMWNzP7GM%DRIX!NRGOBR|GSVM UK7OCQFV;LVKKP8EO8EoTIVLTRF^OBlSGW7LHSGOAAS(EXpLaWJP%CQDWAIXEJQC8QCTZIY6M\UFO@TEYLV9IPwB[RnCW}JU5ItOWBPC{ViJWLQ=DPBTIW{M^S/GOASgGXLUJPCR@F3VJV#KOrDPCVJXLfRFOC THXLWSGNARFYXcMWKOB PC,VJWlLDPCWOA UH1XMTRFOBREzWpKTItOBRGVxK4UnINCBP CWHXKPED6PfCVIgXLS+FOASEXhKV)I2P@RC5X8JKWJ:PTAP7AUH?X+LPDUNAS*HXWM.TG!O:BSGVK"U~I OBQrDUK(VJNBOrCUJWLCS IVLQEM"BdQE WLESEILAPQEGXJvWFT<%V;t]@F_BX:GXe:[A`[F#T CMv?QDV"MVSLOeEbR,JVP+WQOrInNGvT LWMyQeE>OC3S?GVJSG7OBQ FVKUJOCP:CtVJUMJPCO%CUZIW@KQQEO?BwSF WXKS.HO:B R]ERWLKUIO:B}QQDVJ7VJ QQD6PBT.HXlLRXFOBrTGXKTHOBQDKWJWKVPJCRDWIxY[LRTA\7FeZ:B)U:X>\FY&GJQ"BOCKTKVN/PHNFToMWRRMM.HOI!VN!VLNEDODUhKVMpOEOD TJVMPFKM_BPF5TKqR IMsBPFKW:MUDKkMsB PE4UJULMCgNjCSIWMPDFDMGBjRFZWL TIMBzPSGMT@PDT)IS!I\N_BOCTfI8UJOCMBES6HVLODMAPETKPGK A$P@EvTUJSIMB}MBRHYTJNnDNC-RHULNDSL?PFUK\QNHbLAIOADaS!IVTqJLA}MOBRH&UKNDL/AR*HUKLOtFLtAPE TJTIKu@NCTI@TQJDMsB-NJCRZHULOiELAQFBVLRHSLCAP8ESIRHVMSBM{ClSHTUJ MCB MSBMRNHT@K PDhMAPXFUKRHPLAWOQETKSMJLsBJNCREI,SYJN CLA5QFVLKPEWL\@PEMUhKS)ILTAO!DTJKT0JMAMA$SkHTKNDK@QGMUlKPlFMAePqETJRHLA`NCVTITKMBLXATRHTJaP4EMAPiEVLQDFL'AODSJxRHSLhANwBTH4UJN*CSLTAQoGUKO9DL?QUE1UqJSRHlL@N%CT JSHL@NATIU(JN_BL?QFUjIPC3Lr>gQDVMJVT6HM;A!OBlScGUYA[?T8U{8[A?[CQHSjIM#AM@SGUJOC,L=?PDUUJyQEL@HPCdTHSG]M@MtAuU-ITHNBML@RQ}EVJ~PCiL=QCVJ;RpFL?tOAT?G UGM?N@"UGVHP7AM>SDV5IQBM >Q?BVHTEN=P~?:VpFUFN-?N=SDVGN?N)?RCcUGPBL>ZPBUHRELr>=MQ?THTHgNANAREqUIO6BqK=wPZCVTHkQE~L?O:BkTHR/GKv?L?lS[GqUIMPAPL?P~DU\KPC L?$PCTI}QFK?FNtASFR;GL@M@RFTHXNCBK?QEUJKPL @NBTHDT-I+Mm@}MT@/S/GKTHNBKn>OCS7GqRDLN>PBUI/SFM?M+ASGTVIMGAL@\QE?UuJNBJ?OC.TIPLFoJ>FN6CS0JASH"K>M@R"HT4KLAK@ZPFrTJN=DJ ?xOE]TKPFJ9?bO@UCYBS8FU68~Z8R=UOGOCK?O/F]T*MTsMMF1NG$S)NqRM KUD,LA)R;G9TI1NCK?*Q7FaSHQ#FLAKPDTIS HVM'AeL?FRFrTInNBL?QETIOCLL?OC T)IHPD{L?/PBTHTHL?zM,@R'FUJNBK>RFTZHOB(L=OBUIR@EMq@OAUHVMJNL@M>SDEW(J]PArN?xRrCVGWSCM:=QAT FU|FuNc=Q@?UFVGMM?!O?S$EwVHO?!L#<SCW0JESDEL>XN@THRGKm?L?BRGSBH.MTALu@PE?UJN D|K?OPqETJQ H!LAOD3SHR{HLALA@QFT KNCK@OETpKO+FL+AODwSIQWGqK0@NDR(J`TJL!CJ@RrI|U[LYMBL#APFTKOPFK@N D?UKQFHKpAMCQGTKL"B%LA"RGTlKN5D~L@PE TIRGM@OCTIZS&H@Mq@NBSRHVCL OZC'MA`QoGTcLN8EK@^OiEpSJ@QHfKhANYDbRZIASJM)DKAQ5IVTKLbCXKA2P GUULWOPFKpA`N8ESKwP.HJAbLBQ5IRNH?N?O]MBlSH5QtFK?MB$S6HSH;Kq? L?PD]TIN C8KM?OaDSHOEDJR>NBWSgHP@E'J=L?RE+TGM@MP@"RLEUVINBL>3OtA_UFHPCL=N?TGGS,EL=nNe?R)DTFNm?L=gQBVIPA8KSL>BRE3SoGL?LM?QEpS*H M@K9?N%CSHpOBsIW@M6BrQFQGJU?~I=hPETIMA*J>pOCRgH^OjDIV>LAMRGoPyEJ>JE?mODRHJe?I=pOCS)IM6B:I=MBRBHPEH=L\AQG8QG-K~?K@@NC(SH MAJ?OCRGMBIL ? QD)RELQ?KN>OjCSHOCI>WLASH:PEHO=J? QOGLAH=NDFRHNDiH=LpAPG PlF`J?J@O/GrQIOIU?I=QVCUrDR#<Q+7TJ9eZ(@W%>P7P;SaDRFJ>J@MOF?RJ~LE3IoBP}KTOMNHHe@NCRIPFJv?AL@ QF5QGK@\KT@ZPiEpSHL@AIO=?NRCRHMB`JB>MXASHP+FqKv?xK?P+FRGLL@2J=OPDTIM@5J=,OCSIhPLEK-?NoBSHQXFJ!>~Lm?PDRGM@K>P=DT)IMO!CJ=2PBTGQDJRE TGM@K>OC`THOBdJMARGPFI~>JK@@QFR*HLTAMK?PDRkHMBIj>XNB.TJ P}EH=L@PTFR HK@7LpAJQFXRG MAJ?WOfDS~IMwBI=NRCS JP+FvJ>LAQF PyEJ?J5?aPyE>SHM.CJ?NDTKFNDJ>M6BRHPDJj>,L0@R+GQGKf>K=~P!CTBHMdAJ<)OBSZHVP%DJ=MAS9IQGI?I>zPPFRHJ@J?NDRQILBI$?L CSI^OEkJ?JPAQH'Q;GI>>:I>oP/G\Q>HJAI@M(ESQIHPCK:5Q=-XAW<R5TR8Y>X@M:K;OVCRGMfC KBO"HTNwPKAICLOG+PKOVI|KABK@PFQH M!CK@,ODSINQDJ?MBTJN)DJ?L;AyQFQGI]?LLAgQOGmRHMAK?O4ERHNnC_K>\NBiSHQF'J>JK?QR7GHSsHL'AiL@APDTHoM@Jj>OC1UIOPEDJ{=[OBSHvQDM? NX@QD,S|F=M?L ?RDzTGOASL>PBGT:HAPBK;O?T EASCK ;N)>iSjCTEN?cK?tOBS:HQ]EyJ>lL@?RGPLF8K?K?O@FyQGKAK(@O,ESiJ OE/I->L&B?RGVPFSI>J@@OG/PoHI\AH>OB`TDP<O7ZSd;WYC&U>Mj9JN=PiEOE&KAMzDQJMRXKLEKDPXKDTNLCJ?NfD(S5IOFNJ$?lL;AfR>H QFJi?IN> QGQHLAJD@ODQ.HLBvJ>CNCQVHN,EI?K@OERGKQ?QK?P\FxR>HLL AJ5?OMDRH-N6CK]?-NkB$SRHPEI=>L?RF#QEK>L~?P,ESHMAJ:>OOBOSF/PCGJ=-N\ASGQD3L>M?0RDR8E9M(@mK=O6CWSG&NBlI=NBSS:HPDJNDS5I9MNCHR>0K@;RHOEH:>KXAPFPSGH>H>NYE5QHL>CI>L CRINDeI>_K<@QGOF/I>oJL@O@F%RrI J\@I?MCQ*HMDH>K&BgQ:HWO F=I>LsBoPGPG|NCiSILVC$I?L CP&GMDzI]?J@NqEPG J\@J\@OEoPGKAH>6M CRjIuNMDH^>(LA)RIOEH>>~I>OFNQ>HJ?&K@BOEqR~IK.B4Hc=LBR%IOEHN>KAQHOFHr>rJ(@N ERILBH=NC RHLB>Hc=L BQ/G:PFI>LA6P?GOFJ?Kq@rNC}QRH MRCsI>N>CES!I OrDJN>!L@QWG P#FJ>:L@QERF>L>MK >OCaSGL@JF>IOBR.HXNCEIf>K@QHaPFGJm? K@PFOPFBK}@J?NCaSJLBH=KdAFRHPGHI?KAiOEQHHI0@KXAQHXRGL=M:S=|X-?U:Q85U9Yi?V@{LA:AL=Q FQGKAJBQJSNiLSGIDtLGQLMDI>MBaSHK8@QFRGuK?KT@MNCRHMBJ>7OCSIP~DK(@QFRHK9?K?BRsG]T%I M @I=tOfCSkHQN_BJ>NBDTHPFJS=M@QER"GJf>KMAQERgG]M\@mK:>PC]THwPC{L>>N@:S\FREwLj>M?SETXFsME?oM=RDTDFOq@LMM?Q5DmR FUNAJ[=yQDwSGOBJ=[OBGT)IOPYDSI=*NdA^SGRFK?AL?QEZSHdMXAJ)>OC3SHTOCJQ?&NB9TZIQXFK-?L@QG,S:HKT@J>PDRHMAJ)>2PDTJPzDINBT)IoPDK9?L?iS"HTEIK?L?S+FT"HM0@L?ODSI MsBIN>NCwSJOEKJU?hM*CRIRgHK@iLAQGR,J>LoBHI>O+FlSJIODkJ)?MCpS]J2P\FJX@LJC2PoGJQHLAM?MUDWZCRi:Q6V;#[@W=&N7P=SFGQyEJ?YM)DQJ#T!NhMG3L|FO#K TOMFvJGA6P@FSQJ$PFK(@]MBRVH:PhFJ= M AR*HSUJLAK?PDSIMB>NRCSQI QE J=6MA^SISFH:LX@LT@P@E;R/GMBK@)OC^S&HOJCmK>1NARoGPEK>N|A:SFT HJ=%L?QEVTG-Nm@(LB>oPBSFRDLn>OApVHSDLL=L=)UF UFO?MO=DT JN:CI=MBSjIoPUEGJ>MAQG RGQK@0K?#QERHL+AJ:>KMBQFNCUJ? MpASS9I RGdJ?K<@RZHaSIYJ>CJ>OYE|RIKM_BNJ>zMBQGO,EI>K?SHdQFK@K@PFRG-Kv?J?>OD+TAJNDyJ ?NOBQ/GeP]E2JR>L#ANQEQyEJj>M,@R7FpS*HxK>KZ>ONCTINBK=NAR&G ODJ>J>QGQBHJ,@JQ?aPE>SIwLAI=?LBR6HL!CH=M:BRI:PFI]?K@\QGRH=I>I?7OFQVIcK@H:,O>,VBUS=GQ6T{8JX=RW=iO9L;P5DRHKAJ@NFSMIOI:IBLG"R6MuNIIAtLSB#QFQGNJ>JE?6PERGLAJ>MBS IODI)>MABR*HDPEvJ5>,LD@Q@FGQ#FJ$?\K@@PES=INBH K >PERWG4K>I<Q8ET:H OB3I]M>Q{CS'FL!>ILV>PCRFM@K>VM?A>SGpOC`J=NA3SGtODeI=L+A*Q;FOS^HJK~?Ig=OERFHLABHfK(@PPFTRG_K@J?OD;R6HLAH=NCRGGOEJm?zM BODPDFJ?K8@OD,SHILTAI>VM{CSIN>CI=M CRsHN9DK?L@fR;GmRGJ~>FK= QDSGlL?J};2PBSoG)OCI6=MBQFePyEKJ>8K?RQcGbRHI>I>N DSIMNC{HS=oMCRHNiEI?LgBQ&HPcGYJ?BK@OCV>Q4NT8Y>X?OJ8.ML;PBQCGKBH?N FSNNRHKmEFNHQ*MOIH@L_BR&HRG$If>I >/PESILkBJz>NVCNTI4N.CKJ>L@PFQF@JR>Kq? RFROGK@K>pOfD%RcGNBCKJ>NCZS)IPEJ>N@BRF~L?QFQF6Mm@Kr>OBcU^IOCJ=NBSHPfCdJS<6M?oTGREoMq?M5?Q~DS+FTOAL=`QBUWGQ!C>LB=UN9?U"HREL->MU?RDRyE~L-?J>QETHMAJ=MOB>SG~PyE~L@L@bRHODR^IP@FJ$?4K @PFPFKpAK@PFRH_K@@JA?NDTJ)ODK$@NRCRrI)O@FK@PLTAzPE7RHqKdA`J?mO,EaSIMCJ ?NDSJEOEI ?KTASiJNQGK@LGAPER6HK@_K?PDaSNH>OCPL?NB+TZIOCQKU?J>>>SGrQFI>>K ?P/FS4KvJ@I?4NDRYJFNDvJ?LCRQZHOYE^IE?SLBNQGNQH-K@I?+POGRILA*J?NEkQIOM9D:I>-N CQE RCB O:8Q8WVB=W > Uy:TR9ST@SmEL?3I->OFSL NkGJC$MF@QKaPKkJYDJBPsGPGKXAUJE? Q7GS}JL*BH=MBjRH`Q[GEI=LAR6H%R{HK?KJ> PEQgGJm@K?6PyESIoM?BI>=L'A-RG6P FkJ>Km@mRGNQ\FMK ?Kv?'Q4ESGL@dJL?\QERFL>L>QrDUEINPAL=OA\UHOA7L< O?SESDN=M(LPEQGK@I >FNCHSI]MZCJ?N.CPFPLFoJ?8KX@QHQIIAH>NYER|FMN7POrDR*HJ$@K@2PET$JMbC+I= NByQFPEI=lLlAdQFR*HoJ>K(@PERNHFK?3Ik=ODR6H:P EI<]M@TrIPqEK>eLP@QFfR+G M@fK>QDTG-NdAK=NtAJUAIQmE8Kf>JN@SSFSErJh<0K=QEoTVHsM@K?PC~SGOBJ=OB0RG/P$EI>=.M,@ R7FSH(IQF TJ0K?K>OD:SI?NNCdJ>AL@R{HKPEJ>J=?1Q'FpOEM.B&K\@OEQ*HwL#AI >NC^S!I\NChI>LAR:HPFSI=J(@$PESSVI"KT@I>iOE$S%I=MBBH:=}MGBRHNDVI>LhAQGGOeEJ>XK?vQGRH2Ji?pI)>NC8QGLAKJV>MBRHPGH >K@dQSGUQGH5>J}@OC}QGDMCIz>KMBRHIOD'J>MBdQGO F3I>K@zPFQHuK@;K@+PETRkHLAIN>uNCQgHO,EH==M.BRZHQGfK?Jm?hPXFRIBK@hIf>,O EQ HM CI>M_BiSAIPEG>=LARGPFI>IL@P'FRHiL_BH{=NJCTIMAK>MBRGODIS>HWL0@HIQGQ:HJ@J@NDRIMD>H>MCXRHN~DI~?LC\QIO?GQK?kM>TBQXBCSZ9Q5UX<[@Vl;O6Q=SEOCI=tLBR'KS*M^LE9MGPLWSOLcGI@OESJWOUEJ>LB+TJ1QFyJ?bL"B-RH\QGGK#AJm?PFGT JO~DJ?PDTJNCH<ODNTYJkQGGJe?MBRNHBRHJ?:LA@QLFSIMoBFKe?ND#TiJQdFI%>oMkBSHgQF"K=?{L8@R|G~SILAKM?NQDTHJQDJ*=rN@SkHOCK>M@SFQREL=L=qReETZHNP@L>QQD)UHPBJ=-NARGyQ/FJ>\K>FRFxRGL@J>O]EYTJNCIR>NJCTK?QGFRGIz>kJi?1QFRHBK<@J?/PPFQZH}MBI=$MBSJDPtFK@LA~PFQGIf>K8@PFPF%L}@yJ~>UNCSrIMCI>6MBQFO FoJ>K@]PLFPGH=J>'QEMRHoMjCHN>MRCQGNDmK@kMBQRHPFI>K?kQ/GQFK@.J-?NUDRHdMB5J>MBR^HPE]J%>MAPtFPE K5?L(@PD"RXFL@J=$PCSNH=MAJ=MAxRGOEJ>KAP?G$PF J?J@AP@FQoG~L.B Jv?NCmR9IQNEI>LANQ>HP\FF;LLAQNH8Q6HJ@@J@pOtFQsHMAJ8;/P=XA.T:Nj3S8MYm?V>K8I(;OD Q;FXK#A0KdAOGTNNHICILFRZNNH+I?J ?kQgGR IK)?K?%OQDYTJLAI:>NRC8UKN5DG;LAQ*HpOLEHs=tL@QF%RFIg=qK5?2PD/SH~L@ J=OADSHOC*J=M;ABRgGmOCJ>L?QeERkGJ>|K>QETjIM?NJP CUFN?L=QSBTyEP+AeLK>ZPEQGGK?I>^ODQGL[BGJ?MB(SH NnCF@;lL@RRHPFI>_K8@6PEPFAI~>I>> OaD7R^HKL@I>NCRH0OmEG=J@7RGNCrJ>`JV>RGRoHJe?I-?[ODPF.MjC^I=K?SI$PqE5J>J)>oP]EPEJM?K>$PC*QEhMGA"K >NwB7RFN%C.J->L?mRcGODyG;kJ?#QG5QGH=IB>O E|R=IKA,H=N DP:HM5DH>LdA QRHN}EBH>H=mOpFPgGLLBpI?MDQHL@UJ;NNDQGJq@tH<MARGjNJCgG;}MA"RHQFgGP;Li@PiEyQFL?J>NBRSGK,@IMpAPNQD%RXF!L$?JS=OBTsHgNAJB=MASSFPADKR%CR9DhM:>J;Q%DvTGL>zIL;PCKTH]PDK >M@xRdFODI=J>JQEQOG*J~>I=$P4ERGG'MCAH<0OC/SsHM[BVIS=oMAiSHP#F"H=K]?O,EsPFfK?I=zPmESIsM"B3I=6MA"RGoPEzI|NEDQGkJ>zI=-N:C)RGOC*JF>N CvQFyQFoJ-?wLu@'Q,ESGXK?|Ke?PDaSGsM@IL)> PB2T6H^OB_Kr>O BTQIrQhFJe?6M?BP[GRGK@I:>bOERHMApI=NC|R=IOXFJ?fK#A8QG/SI:LAKq@%OD`QoHK AHB>O|F$SJoMD~I?bOJCUkG2T@>O46Rp7X<=Z>qR6JQ8WSi@ESLEALP@'J>PGSCLOHLDMGBRNaP MIDKC,OFQHXK@ZI>@QG$SIMCI>OCASAIXNC=I!>sMB5TJQFKq@@J>OL@QEPUE\KY?MK5?!O5DQWG&K>cK)?N C\QENBK!>M@~SGPDK5>Kz>O.BPaDL?RM?kQDS&GN@H9PBTF7O@K;M>SERaDH=:Nq?\QaD TGuK=~L>[OJCSNHOABK"=M0@RGN=DHMC,SvI?NnCzIV>LGBQOGMCI>L7AOFRrII>I>OqEmODJ<@J>MkB|RHL CH=~LAePoGJNDH=J?P#FPPFI>>H=OFQ&HK@'J$?NCQGMDGP/FR H"K?H<PDOSIuK$@I=-NBSHOCIW< L>R EOB+I<;mK>PQEbRsGK@`J>PDePF~L&BH >oM{CRHNDsI>^LAPF7OEIN>3I%>N8EyQFHI>J?dMBQGXNJCI>'MBPWGNqEhI5?J\@%RFPBLb9N7 U8;YV>GTA9P3T;U6BO?HY:K>xRHQI J@JRCQK'Q#LqKEEIBOGRImK7AM:CTJOElI=>Li@R|G+PDK?fK?ODR"G/SFL?!Le?REQDF}MAJM0@RFlSFKB>L=PJCSFpOi@K;tO@!V^HQRCK<>O?:VFTF%LF=oM>8QARBMlSEScGL=K=xRESCG7L?4K=0O.BRFxObCYJNDQZHMbCI};0O>vTA{V?P7R&8mYu@PYBKP;KD;OBSIL%CJ?AOCG(SKLO IKDYMER4KO FK]?7LD@aPDSHL$@J ?PER&H$M7A@J=|NB|RGPEyJ=MXAQEQ F"KZ>I:=PE/SsHJV>`JK<N AR GNZCKF>BK>RHmO9DK9?LT@Q FREKB>*NCAQESRHL @J=-N@zT:HNWBJPL ?TOBQD$MY?KTR}ESSF4KaSHQqEICN6CSG MGAI=MB[RGODlI&=JKm?lS7G QEK @K>OEfRH4Ke@Jq?iO~DsSHMAI<MAQFPECJ:>%L @RGpO$EI=J)?DP9DOSZHJ?/I=NBR:HNCL?M@iS!IEOeE"H;K?RG(S^HK @kJ>>ODSIRM&BH:M?AQF*QFI>:L'A$SHPYEG;K?P;FQGL/AJj>0ODT$J7L@ HOPMCAQ,ESFI>SF"RXFKq?IL$?Kq@QPFBRGQKq?mK@PXF?UJ&N:CuK@OElSI1NDJ?M CQRMIQGH=?LGASFSC,O:sP7Y~>\;A'W:Tc7U:U@P @LAQoGPLFJ>8K?QFSIK @I>gNCzPF4N*CbH;WL@PENCHOB8Dh;JAG=0AO7?`6B>7@#<9[<&AEw =81rNx`g _ YWX14U[uNZhIgKaVMWFFuA?<4DAA6@S$Ay80*f#"+5^LG[ 6a[,]S^]oWNsK5ceIYM@ULM&GBPE?(IB{LEG<@-D ;HA?LEIfDDW=F?MFN FE*=DB> M|FN}JGBB @E EK%I4HDC?HCjNGKEAF =G>3LDQN/FG=H?M8EPrIKEO[L MF"H>>L @QCBjR"=NP6Q8TO=Xv?Pp;N=QQDQoHLAcGJ:EHBSjUSR]hPln3\m[\`tQYJYXMWOPoGE: J?SJiOG5GW=JARAJQ9IJKBJ?BPITNMHYJDOkHQYOL(J GBJ\FQLuNmJG@rJAOmEFNFJ CLAUJZmP]THVJQDSGMYNOWgL\QD;R+FZWKXLSFQDVDKIYNSHVP8ETHJXRNUKODR@FXJ!Z5I?U?/W)>G^B`D~Z<_Y;]A^.HWDP?TEXpLdWWLrQFSI0YQXRdQI QH{V"MWY$OR\FP*CQUoHY>MT*HPBfRDPYpLVIGQ C0RD(SAWFWFMR>R^> XDZ7GSArQ?oTDDZKjUEO?SjCoWHJUGO ADPAVG?XhKPBOAfU:HWJTRE P BSFuXLSGN@RVKYQTJMPG,S^HX{MVmJOAQCXKXSLP6CQCqUH4YMBREgQ>CTWGXKUH,O|ASE`XXKVQJQ%DQYD-XxKX;L#QCP*BtVgHZZMzTFwPBTGYMVIQBkTFYLXdKQrCSDgXJZ MT]EQBRWHy[MVH'QBU+GSZ7LXJ?RBTCYJYKRjCxRjCX]JR[M.TQEQR%ClWH[MVHQBTDF ZLWMJGQBRDXJFY LSDgQRCVIYMvTFPBCTG YgM?UHO"BS'FIY[MhWJ*QCQDWlKWK`QCzPBU=IXLRFOAS[GXMTH3OBQLEUJUIEOB^OAUHVJOB-N\ASlF=W'KQ]EOM?P-DqUISFM,@NATI?UIOMT@M@$SF,VIOBKMi@QYEUYJQEILA?OCUISGLA?)OAdT^H THMBdMP@fR7FFUIOCL~?PDLVEJREL?ObCTIrTHM@P%CTIQ(EL@`NCSAIBR@EK>M@NQiESkGM@BK<PBTsHN@XKJR>RFSHK?CJ=7O:CSGNVC JZ>Kq@"RkGODJ5?IL}@RFQ#FK?J>oPDxRHOMBI?!OaD1UFHQ\AM8wSq:Z9?Z=R4Th6{Y=XgBUNPCTjIQELLY?1NARcGS;GeL?WL?QEsS[GOCA M=?KPEDUJPjDL>O?BTG>SFLi?`NAS/GTH4N@L?QDToHAPBL>PB\UH\QVCLB>mOAKTFYTF(L=Ne?SqETFTO?M=bRCUF P@MCTESDhM=M=%RB#TEN)?L&=PsBTcGO7A8KRESGhM AK=OBSGO:CJ=MtASGQEJ=L?RlFROGrJ=oJg=PjDS{H}MAIW=NARGNCKJ=LD@R[GPEJ=8K>PeEQFK?KJ=NCxRVHjNCSIO= MARGODVI%>ALT@fR+GPEYJ>KE?ODQcGKv?8K6=[O*CSHL@J[=N!C%R:H$M:BG=K@*QGPF$I->GJQ?BOEPFGJ?I~>N DRILBSI>LB]PGMDH >BK@wP"GOFG>sI@OFPFK,S?7dQ05U:CXAQ?I:I=mKAQGODJ>;K?PFOFIQ?IR>MBPFJT@4HhNaDJo=PCQ4E0Kj>J;$PB;ReEM<@HA:N?QaD'QBC!L<6Mn>-RYD)R5DFK;K;PAS(EL=J:ePASmEmO@ L&=4NE?RE)RDJpC QEL@I=*NBQoGN=DI&=FK?Q|F PUDEI"=BKA?TOD+P]EL@NJz>OCxR HM\AI<&NwBR^HNDsI!>K@eP\FODQKm?qK?PiEQGJX@IS=$PERNH M;A J=lL@RHNDJ?L@PE PFJr>K?IODRHL7AJ)>OjDSvICNBCI=MtAQ G QTFI>Kq?QFRHLL@JK ?JQEMROGLq@J;oM@QEtOBI7<N@RlFFR8ENJ?RDWYJRUEMU?@QBmVHUFLN>S5DVHPkBM@JQ DUI$SpFLv?BOBYTHRGL@MCBRFUJMA%Li@QCG"UxKeP FK}@ODSIRGKe@EODR~I$SnIKSBLVCQHS@KkMWB%L>Q@~WCuU>P:8V>ZCCXnCP>N@lSHSJLADMESLUOO~ILFPJTM RH%L@PDSQIRH=MCBYMBSHSAIM_BK@Q/FUKODKP@PDTMJP GKe@N%CRGESIK@NBjRHS9INBfK?O-D"UJPD0Kj>2PCU,JRHIL?|NBS^HT~IL@FK >"RE?UINwB{L>%R4EVeJPDK9?!OCBU9ITGM8@)OlA9TOGUHN@L>QD)UHNdAIL>OBVMJQ EcK:>OBSGScGL@M@RFT~IM#AK?O=DS%IgN!CJ>N9DGTIyQFKq?M"BmRGQGKE?K>\QFR-ILAI{=%OCGTLBR"HQGKX@K?zPFRHoMoBI:>rNCwSIOE K]?Lu@RGQGJ?KlA1QsGR>HJU?Km@iODRHLgBJ?MBSeJTOeEJ?MBQSGOEJ @K?AeP;FR ILAI>ODrTJnNDI=MBRNH%ODI>'MBQGQGVI>J?Q+GRI>LAI> NCSYJND K?MBqRHOE.J>LAQGQGI?I>~P\FSILWBJY?0ODfRGN$EJ?NBRVHMR HJ9?K@R>HJQ[GL8@dJ>PD UJNBI=OBCT>HPCfK>\NBSHQFI>{L?QFOSHL7AJ?OUE,SvIMBJ?UNCRIP?GfK@}M{CPGPCGKCAK;AQHjRK"=MTA RGOGKC-NF UAOSMKF=IVCL@?RG TeJLlA\K?O=DFUuJPEoJ>N CSHNQTFJK>KY?SHR H$MA(L @bRkGTI.MAK>OC UjIOCK-?NASGRF7L-?oM@ESFSGMe@KZ>REqUH>OALn>KPBSFRQDIL=rN@TFwSEIL=M>SET[G=Mz>L=QQDU~IOBJB=FNATHQ8EK>iL]?0RFRGL?L?RFESHK@dJ>NZCS5IODJj>?NBSjI#QELL?MA'Q@FP/FJ>mK]?OD:SH^L@K?6MpAQF}QhFK?MAQhFRGIZ>K5?$PeESIMBVI{=CNBTUJ:PDK?M?BRGgQFJ=lLX@PERH+MBL$@NCRHNDHO=rNBC TIP$EJ^>LL}@;RGP'FK @Km@7R+GSH=MPAJ>L@SHODI>oMARG)RGfK?K\@'Q|FRH%L@IL?PERG OB_K>NGBRFPCqK6=RM0@WS?GFREK)>LQ?PDRGKA?\K?$P@ES~IuNBJ?LAaS=IO@EK?!L@Q HQ+G3LAJT@'QGSAJLCBdJ>:PXFVTJLBH=MCESJPFK>N=UAW?R7S{8UXF=ZP@wS:`N9oPAVToH%OCJ@MD^SLESM,LEVMFQKQLeLDhI?P[GSmJNUDcK@@ODSIVPEQK?LTA/SHSHQK8@K?PDFdTI MBK?PETINCJK>|NBSnI:P,E%L<@%OBCSBHR"G|KY?K>QtORCDTHFREL$@NAR|FTFHLr>L>SlFUGOAYM>RYDUGQBsM=PAVGTFL;On>UF{VGO>M=SzD"UFPBMn>RQjC;U IQDbL=N7ASoG8Q FL@M?ASCG.TIQNBL]?*Q@E)U}J7O)DK?WOMDTIQCGK}@SL@QF)RcGL@LlArQFTJMBJ>ZP$EGTIPEqK@NCpS%IdQF-K?L;AQRoGSHL@M@OE#TIMCK@PDTJPlFJE??NB^S)IMRG J>OMlARCGRHM BlL@ROGU KNCL?OD@TQIQFKm?MAzTFHVTG%L>MU?SGtV+KFNB$M$@2P%DUJCNCJ ?OjCSIPF{LAMB|RHR&HMsBKXAfRHTlKNEJ@PF1UKOF;Ke@EOES]JP|GJ@LCQjIT?LNBN>UAWYBW<;U!9XO=]DY@P;Pq@SGP|FKALD;R4KU?Q)OJKFPLQUPOHMC'QFdTJSIKA1NDvTKS IMCA%LXARQIcUKMCLAQGGdTJ'QFL@NDeVLRIL#AN=DT]J`TJLA`NNCSvI1UKNCK@hPE7VKQFLq@[O5D`TJ0RoHNCNBT JTYJLAQNOBpS6HiVLOCM+AQE?UImR/FM0@hPjCVAJFUHNAOB?UHfUHP:BJN>SDUGRBN~?QCTG/SUEL9?-NAUJQU0JM@MAQGTIOiEK@UQFSJAPE K@PFOSJPOGK@NEQHSKMBdMCSL)>Q+GjRINhFJ CPIbVPRL6MFNVHSNNP ItLBIL"BSmJTKL.CKA7OE TJ O EJAOiETJRNHKPAN!DRHRQGLALA\Q[G[RHM:CK?PhFSIODKu@*NCS]JQ*HsM:B9MWBSfIR%IK#AAL@yQFQUJNfC7L0@QLFSZIPmEiL?N:CT0JSHL?&NARoG1U JL?M@"RFTHePCLA?PC7VEJQEQK=NBTHaSGMAM&B5QESHMAfK?TRG"U4KOD&K?'MASIPFKAMfCRHRI`J?I>SH`TQJ.MBK?mOE9T+KOqEZIF>NDsSIZPXFKAeLdAFRNHQHLAJ@ QFSINDK?NCSJOEJL@M.CWS5IgQ HK?A{L6BPFSJLwBJ?OrD9T(JOD KL@TODRIPGJ?LA\QGQHKtA4K0@~PXFT KMBRI~PFeI>MBR HJQGLLhAwLA'QGSJLBJj>NDNT'KPEJ)?=MCSIQGIE?KX@Q H;RG LX@J,@PGRIPLAK@NDTKIOmEJ?OMB>SIPFJ>}M_BPF|RHKAK? QFrTJNEDyJ? MSBSiJOEJ?K@RHPWGXKD@K@Q HSSIMBfK9?PERH*NDCJU?!ODRHQ"GK?lL@RgG>SHK@4K?RHSjIQNB_K ?APDdTI PCKJ=MwBASHR GK>eL?RF2TsHL?L~?RFTQINCJ>>ODsS5IQ+GIc=MCB~SJRFHJ?L/AQGbRHwLAK?OES-K>SFHSHwL?L@ZSoGTZHhM@L?PDNT9IBOJCL?PDTBHSFK{=N@SGTGG9M$@M@TG V JOAtL=QRADT;GPB=M>OAVITF!LS<}M=TETXF0O?Nq?wSDU?GhPAM= QB%VH,SDM>OT@SFSFL>N?QD;UIhM@L? QD U)I/PCKM?GQ]E?UI'Q'F"K>MA UIZS HL?L@S;GTINGBL;APD`TIO-DJ>PzD]T)IAPDJ>M6BS=ISH MADMdAR&G1UJ?NB&K?iOCTmJWO:CLq@|NASHRGK?N.BSIHS-IL/AMB"RGTJOMBMtAPD\UYJPEKe?OOBuUUJRG+M AK9?RTFTHO/AM)?RiE!VEIPCoM@QDU\KPFMK$@MBvTPEULLAQGSiJzMCK@N)DTJRHJ?oMCRHSIK'A7LAS%IoTKgNCI>NREUH`QNCM?PB7VIQDL!>`N@WJTHK?L @RFlS.HM"B]MA*QFTK]P@FK?MCR JWO FI@LOBRFH;RjIK[BJ@NERIOMMDH?OSG:SJNDFI@MADESJOGGH>;KAPH~P.HICAIAOESKLCI @CNEQVIiOFIq@lLC#QZH>OEvJq@KBNFQnImKAJT@OFS JiLCI@*NDRJ MDH-?NLERJ~PsGJ8@`J?JQoHSJNJ@{Hz>OERIuNCJj>9MAR&GODuK]?XNjCQGXRG5J ?I>OFaS(JJe@H>FNP&HSK}MDI@MDRJ&NEtH?LCQ&HQFJ;6PNCUKODQKq?]M B2TQI`QOGL@LA\QFR IeLGAK?"RFSH OCJ>OADSIaP,EJ=OD+T-I/SHL @hM@ShF2T HLL@L>QCUH8QCL>PAMU*HQ DN @MOAT GzTtFJ;N>SCpVDFPv?MNA~SGS%IK@rJ!>UQESI[ODLLAHPESJMDI?MBTJJQG~IN>MgBSJRI;K@J0@OFSKLC;H=MATDRU?O9R;X@ZjCbRC<3O=QUDR>HJ'AkJhAPI!VxK?QLFR>H,LX@6M+AQ\FFRG7L?KM?dQ@FUJNwB2JM?ESoGBRMAQE.TGMX@K>RFT!IOBLq?!OBTRXFOnDILQ?NAQFlS"HpI=K9?PEASHMB@J >,O6CTVItOCLu@M?BTIP,EKJ>Km?QGSS5I^LTAK?^ODTI NBJ?PESIPEHF=.MgBSIaPkGI=K@xRG,SH.MAK@PeETQJM.CK@WO~DSjIODK?K@Q"G~SIJ?wLAQ[GR IlLA.J>OD2TJNnDJ)?TODRHQFK@K?xR&HSI3L;AK@PDTJKAKL@+PDSIOmEJv?NCS5I`QGNJ>KARG~SMIJ?K?QpFSjI*NCI%>NEDsSjI^OAD L@MBUQOGSHL+AMBSBHSJLAI:>O$ESIOEI=NCASHPdF5JM?MBSrIPF`J?K@QH UKM|AKY?ODzT#KNnDK>NBQGvQkGJ>L/AxRNHSPnD8UI[OCQKN>MX@S.HS"H6M@OsB.THTII=OC$SGoT%ILAAL@*QER%IOE"K?QGSIP+FJ?NaD[RnISJ%LBMB%RVI^SJM D K@iOhFTLMEIm@MADFUK[RE=M:RwZ(@Ua:jU=9Yi?YDO>Lr>jNBiSJWOFKCDMFSN%RZNxK?GKGQLRKLCKTAhPGS#KLCI?OE9TKIOTFH-> OADR!IQHfK@LB0RHRHKAI?OEcULNiEIm?%ODKTJbOEuK@M!CmO#F;RsH-NBL?A QF+T8KMNCK;ANDTJ8Q"GK?NCSiJ%RSGJ>L@RG5T IAL@L@QEaSH>OBuKF>PCUJQE^L~?NA"RETHSL>L5>QEDGTgHM/A,L??REU5IOCIc=gNAoTgHP$EK@NATHRGK?cKX@QGRIJK @FK?O EYTK%OfDJ?MBVTAJ'QCGI>kMBxRIQ IJ8@LpAPFRHL&BMKP@OiETJNBCJ>MBqRHrQGJ?K@rQF(SIiLA^I?\QG7R>HAL BJ@zPFlSIOEK@ MkB/SQIRHhI>Jm?1QFSIL?BJ,@PFSQJNDK@NQD.TJPFHB>LAQH0R5IJ?|K@OESJiLdAJM?QGDTINbCL@QNB+TIRQDF L?MAScGSsGL?L,@QYERG9MA'J>NaDRAJNQEQK@NBU3LhPFJ}@,LBP?GNQVHKhAJ@6PhFTKN-DIQ?N ERIJND\KTAK BQ!IQHJAKGAR[GU+GN;OJ8W=Z@U;P5S!LABRIjR\K KCMFgQLHSPPJEIBNoGS KLB:Lm@QNCRAIWODrJ>~L@-RgGRILAK@PFdQ&G@M_BI=NCSJNzD=I=MARGSRHJ>K?PLEQFL@YJ= QESH2PDIHTOC:L?O_BjR7FOCK=OM?QfCR'FMhAL?PC8U)INXAKSRfDQ6CKh=OCRF NwBJ>NC%RkGDMBAI=L7ARZHPEH=J?*QFOFLA.J>PE@T=IK@HQFRHLAK@RM!CjR&HuNC~Iz>MGBQoGQNDNJ>MBGQcGPFKAK@OF0RHuK@J?NCQ[GTOjDzI>]MASEIQFIs=qK @RG#QEL?>L>)RDSRH@M@7L? PfD$SGNCHc=~LARNH7ODIV>VI:>QGaSIIU?=I>]P;FR]JN}EI)?MBQsH3OEHB>LBqRIPFI?KTAP"G*Q^IKCGCSHSIWLlALA R*H9TJOzD\K@wPLFTJQ|G\Ke@FNCSIRNHLD@L|ASI5TJL"BKu@PtF8UJxODK@QFpVK@QF>L@\NB5TMJiSIYMBMBrTIQUqJNVCDMA|RG|UJQEeLD@O%CpV4K5THNpANA;UjIV8JN#ANe@SFWK6PC*N ASLEVvI"RCoM=QdAV&GTEN)>Ne?KTEUH M?eLQ?Q'FuUKMBK?hPDzT(J2P$EFK?NBRMIR>H|K@LAQGQG MCKdAhPGSJ3OES;A?XC[R9QB8W?wZjCT/AK;NBR$JJQIJCFN GSLRMK7FLhFPK RxKMCBK@OE|RIOXFKi@ND:SIdQGK@"KL@QsGQHKAK@PF/SIMCqK@OD TJ$P EJ?LAmRHRHK@LAQCGRHJKi@-K?ODSHMCI:>NCSIdQ7FL@MoBSHSHK)?L@@FRF4UJ]MAtL~?UQeETMIDPCL>OBT HQDK>~L>S"HS5IL?AL?|R"GT(JNB|K9?OD`TIP,EKm?NBdT JQ7GJ?LCAyQFSIK@JU?PlF5TJXNCYJm?XNCRIO8EJ>@MARGQGJ? K8@@QGGFRHfKGAKT@HP]E,SIMCJ>OMgB7RHPFI>7LBR)IrQGIE?"K@N)DQ HKq@^I=-NCRVINDGJ?OmE$PFJQ?GHMCbH=K+APDFNCGLAmR&HLA\G< J?PFOFG;J9?-NCP\FJ?H*=1NCR!I7LAGlQGBOEI>I>MBND\K@I%>:L?APlFNCgG7<L?A8Q?GN)DfH"=zIV>OEOFfK@I!>NCQ^HLBH~>L"BRHMnCH*=OMAQkGPFI=K?OE5QOGJm?J>NZC>SHSLAI>MbCyQcG!OC3IS<L>`Q+FOQEkJN>J=vQER7FJ=mK>O6C`TJMCBH3OEQ.HLkBI)>kMCSILL_BI ?cK}@dQGN EzI>Jq@M EyQZINJAlI]?IOCUFO<MQ5&U<;hZ? WChP GPQILDJCQdKRzNK;GPH*BKfDReJND=IS=Jm?S8JSiJK AfK@PFQGMAI:=2PDlS)INCfH= M"BbRG QFLA>L\@QFPGL8@LAQ/GjUJLtAJ->N{CT JTODL<@dMPAROGSgHJV>K-?RGRG+M @K%>PDTJOCI#FN@T G\UNH N6B\K>OCT]JQ'FfKQ?PUETJ'QFI>NOBWSHASHL@LAeP/FSIxOYEK?ODS0JPdF@J-?NCxRRHRHKT@LA,SI0R IiLBL+AQFES)IdMfCJ@O7F>SJPG(IZ>OERIkQG%LAK#APFRIJ@J@uNDSJMCJ?NCQ&HQHrJ$@MCRQHQHK@uK@ QHRIKB&KA7OERfIND~I>MBQHPFJ-?MBMRHRHmK@mK? R7GTmJN_BdJ=uN%CSIN-DlI>M5D1Q"HOFJE?LAPsGASKdJ@oJ@ePHR}J%LCKANDR!IuNEI0@LBPBHRIJ@PLBIOFPILCdJ}@?NBT*HvQ@N7U ;xY?WCfRGUxKLAIF>N(ESZIePYE(IF=*JF>RHQGLA%LTAQWG3SHcKq@PLAOeESINCBJ>NjCUKPE\K?K?SHdQE K>"K=QESHL}@`JB=[O{CUINGAJQ CSEK P@VM>BA93="l;%" C&gQ:8KaN^k`jMd`XZWKT|GdTF`J@M:D@KFBK@EdC@;FAI7FB'A4;&@IE=:UE7:I0%O:2a]h*l; >`E_0< 1r=VQ>`^0]^D ^AbYX@Q`Ia@J0e*NeLXI@E M?TBrTT@O 9N{8FR(@QEzI @#G=KEsPpKM!IrGClLI%RRAPdQ4HI"HI:LOJP/FMDGA^L0JaPQK.HJCaPHSRNuNF2J>K*CP}JTOGkG @F?YMPFNJIeE JD-NH P{HK@@J?L'F'Q*MNGrJ@LCP=IBRIK#AKBvQvIRJ!LEK,EP0JuU:MNEJWBOGTMRgHMAOEU?LWV#KOC[ObCTICXnNTIQnDUfIDZPDWmJNAzTG0Y6M YMWOjCPB=ZLZJUETDXHZJUERBSAW[B]P.tLQ%G ( >105p.NB-K:M CJCG*NRH[]TF\xV(ZU_Z{`Z[SQMJMGRKRK{LDSLAOEP[G{E>6B::0G9-RHKD;Ag-UoBwS)>K=9:VMPFQFUJY9OSGOCT=IYNVJ]PDaS GXVNYNRFbRFXtLYNSG-RFVKZO&UIQEcUI~ZO&XLRERFXsMmYnNSGRFWxK3ZO$SGPD|UnI3Z OVIQCTGGXLOW3LPCjR(EXLXLQFPCUJBYLT[GsPB4U5I,YMUI PC[REXLVEJePB-RDpVI"Y[MR@EOkBUHXLASFO*BSTFXL:VZIOAASDX+KWJPA\Q[BVMIYpLQBPm@U]EYJQUEQATaDYJV:HO@@R6C^V*HWIOPBOBU:HX@KREDQGBTFXKTF[O@RDXKUHtOAoP&BVI X8JP[B^OA8UGDWK1QD?N@TD=ZgGYBFU:`X:?_@_X@`Xb9V=:YCXFkQCAKP@UFHXNSHPYES0JX}PTpLgND QDoWJWAJwPAPAUHWEJGQfCiO@SLFXJSDO\@qRCgXJVoHO?#QBUsGlWHPAO @UGWYJ)RrC/Pi@]TqEXJTFO?RBWHSVGAP@QAWGUXIRA2P@U7FPYeJRBOn>NTjDW IBVFZP@R6BoW?GWGPU?R@VlFXHRA@Q>VDYIrTCAPz>kTBYGVhFOW=Ru@XGWFP?PQ?VFW:HgQ}@+P>TCvW*HSYDO?JQAXIfUFTOm@DP7A^VHVQIeP;AOL@TdFVWI RjCN?lSDWPB7VHJU6HN)?)O@jUGUHOANm@S+FVIQCM?;RDVIS+FMQ?O\AxURHTGN@%O@TGVHOBNAREUMIO>C-N?FRYDVITFME?EO@8UGVI,Oe@O?TFV%IHPTAjNr>SDlWJSEM-?QBWIYTGM@&N@TkHUEJUNAM@RE"UIOnCL?Q#F!VJTRF:L?ObC3VJTjIM7ANpATH?UYJMBLA"R[GTiJP=DYM=T;A'[EIY?T7 X:]OB[AAS ;Pk=oTDUQIOBNCSHBVAJOCM?RLFVJQEMq@OBVI]TRHM$@VPCUHV KNAM @T|GVAJPC-N@REVJpScGN@@vQ!D{VITGNu@OAFU HVJPB^OA9TLF*XUJQD*Ne?RC+WqJFUF[O@ RBW)IWgHOP@QdAVFWYIqRGBO>SC{YYJ+TCP?SCWYEIUEoP?QBWHVH P+AO@TlFzWIPB4N@@BREWDKREkME?QC(V JoT>H&NPAOB\U)IUJ?N[BhMhASGVJVPC$M@RPFUJR?GKM@PC UISGSGM|AP%DrT IGTAINBgN_BSGV4KOVCL?jRF VJRFNAPD7V+K:SGMAQCUIQUH-N7AN;ATHW4KPBM>HSmE|XKwSEJN @RDUIV JNAZPCT JjUJiOjDNBSHKWgLkQFMBQoGUK~SIMBPiEULTJMBpOfDTMJ:VLWOD NsBRHUMzPHLoB@QEWK3VER<V<\CBA]AVA:V;YCXHPjC`NBFR.HVWEOQmJ`NG QCTAIUKO5DMApSGUJbRFM?ARhFZWKTH`N@ QCVIVCT~ITJLOBiLXAQG VLhPF{L BO'FTK-RHtLANnDSJOSJ:LAL6B7R!I2TXKLDJAO[GSiJN%CMWB(VM?R:_Ug=X ETENAL@RH]T#L'MDLrDQ#KlWgR\QLKC'Mq?Q@EiVKQEL?HPVCUITR GL8@MAS.H~S)ILu@MCARGTEJ%O%D,L@eP$EUKRQGK?NbCSjISHK@LCBQGS JiLGAL@QF9TJWOiEXK@>O(ETJJQWG K(@NCSJRHK@+MBQRHS8JLBK@PEMUK^O4E K?N9DSqJ5QGJ@MCRIWSILALARQNHTJMCKT@OQESJN8EXK@NCRI'QGK?$MAS!ISItLA7LAQ/GT#K NCJq?OETLKO7FoJ?MBSI%RHJ@{L.B[RIlSJL:B L APFS0JM%CJ?NYDT(JPFqK@kMSBRHRHKA^LAQG>SILBCJ?[ODSIMCcKq@gNDS,J#QGK?+MARHRIKAKD@vQWGSJLBKi@OESiJN4EYJ?MCZS)I\QCGfK@KtAQGfR%I:LAK@8Q GYTJ|NDI>OaDwS~IAPpFJv?MBRHqRGK?wL@R+GSHeL}@J{=QET5INGBMK=OBGTIRQE4K=L?qRGQ>HoJ~?{LBrQFQNHLAJ~?M5DRINDI$?VMBRZIPFI=?K@@QGQoH.J?J? PXFQ)IKOBI@N DSGPA!O9 Tp;{Y~> XCLF@QIPGrJY?AL@Q;G0RGcK@I>N DRHNC:I=NCZS)IPDJ>L@8QXFPlFIL@^L?A\Q FQlFWL<@0K?NC5TINCJ=M*BS%IQFKQ?L?AQFaSH>L?L@8QzD.THNBL>EOCSHPfDL,@TOWBUHRFK >NANTXFiS&G}M?MM?jRDfUHOpAL<1QBVGfRDxK=O+ATGTFQN>M?#TXFSFMOAL]?QDSIOBwL?ObCTIPOCSIRHL@M+AvQ;F4UJN{CLtA Q|FUJODMAOD1UJRH:L/AMBSGGRGxODMkBvQGsSIpOeEKPARG UKxRGPL@NsBTIOSIFK8@L@RGKTQIODAL?SFVJvQ~D(L>NCSJdQGK@MCDTJRIKCAQK@QkHT8KMD"K@OF`TKO7FJ@NERIQHJ$@,LSBSISJMC\KAPH|R$JALCJ@O#FT]J?R%D-N8;SKm?PFTL,OF K DO JTPPMsI E\NHRKRJkMBM6CQ>HT]JLBK@O}E`TK7OD K8@MCRHPFJ?MB>SIQHK@hMANQ GSgHM"BUJ>>NCS^I]P/FFKi?`NBSIQFK @L@SHRHzMB:L@Q\FASHM\AK>pOCTH P5DK!>MX@@TGSGG=Me?N?SE)UGMU?VM)>R)DV{HPA4KD;Q?BU|G8QBeL<)O@.TEvTFKRDVIN@K^>PCvTHOJC'Jo=FNgBSHQXFI=LARGQFkJ~>JE?QFSHLAJ>PFRHNDIf>K@SIPLFJ ? L@NQFASQIJq?JK\@VPJN.CRHTOEH=LARHR"GK@J?5QFQHKm@uK@NADRZIODI>MBSSHOeE J]?6M_B|RHQGI?K @OYEaSfIL@K?ODRHNjCJ=zM/ASGQDK=iL?SOGfRGL@L@VPDRHKAI>uNrDXRHEO$EI?dMBQGPGIi?MK#A`Q"H:PFIE?fKPA>OERIM{C2Jm?ND;R%IOF8GW=mKBQHPGK:>MS9MBSSVIOeEI=;K?bRGP GK?:L@QF:SHLA@J>OE7RVHND*J= NkBSHPEJ >L@RtF7RFLAJ:>PzDlSGKMAK?JN?BT(JQEJs=NB,SGRFK>hM0@RFSGL~>5JdPBT?GR~DK Y?B`N;{L>NbC$SINFKBsPI5TFNOIJ%DLL(EASKQHK@K@QFRHLAJ>PD2TmJODIo=dMOBASZIPEJ?cK@QGQF>L@VI5>[O~DWSHK@yJ>WOC9THODK$?L@RGPqEJ>^L@QRoGRGK?tL?QN*BSHiOBC0K=M#ATHSFLV>L?fREGT>HL @K>>PCTRHOBKs=]PBSGGQDJQD.TIMAJ >KPDTEJMSB'J=9M&B%ROGQF J~>7L@DP4ER>HQK@Ij>oPFS:HM?BJ>M CRBHO4EKJ>>LlARHPEJ$?LhAjR>HvQGL@I=PFSIMwBJ?ODRHNBvJ)?1NDyQ:HPGK @&K$@PFMR^HM&BIF> ODS-IND2J$?MgB5QGOFvJ?LOBRHQ.HJ@rJ>PPF>SIMBUJ?OE8QG MC&K8@ NrCRHPFJ$@L*B6PLFQG;KAJe?OEQ^HLWBJ?MC5TJN(EI>KA[R{H'QcGJM?\K@MOqERnIlLWB3I>,OET]JLAI?MoBpSAJ[ODI5?L.BQRgHPFI>vJU?OEQHSLGA$Io=OjDsSJCNUDHf>VMBSI7O(EI>fK@PWGUQGH=OE>SrIK@IF= NbCR)IUN-DLpAQFPXFAIB>K@PEQ:HKq@I=APDWSGXN&BJF>M>CRRHOEJ=kML@RFQFI!LAQHP/GI>AIM?OFPGbLhAH=|N%DOSILsBG=3LAP&HOGCJj>L->~SWBT?zP8kQ6VORGNBH%>LDP8JOHLDtLE+PKQL`JBJAPTFRIBK@J>N{CQHNDG[<@MBQ;GPEJY? J?OQE|RI K? KQ?tOD|RHL@G;MBS&H PD JV>YMAQGDPEL8@K?$PDRHL7AK>OCSHL@I=MASSGPDJ >M@QqEbRFJ>L$?dQYE^S;GM8@I:OAS[GsPNCL=N@SS@FGQrDJ;]MB>QCRE7L= KtJf>sPDvQFJE? JR>ODRGYMAI=XNrC;R"HhPPF H7|K?0O4EQGLAI=N-DOSIKAHI= Ki?QkGEODJm?K8@OE}Q*HoJe?vJA?[O~DPPFK@@J>MBQGMZCAI=K@fRGsPLF$I=J?P+GPcGqK@KJ>oMBQGwL7AXH;<@MAR^HO E HK.MBP&GNDH> K @PG`QG3I>J?bO EQH;K@mH>L.BPGLCHz> LAPGN+FI?J/AOoG:P>HI?uK>RBJUBP8O4T9Z=?U)9,O4GQ=R>CWOOBI HJ?,H>LAXRG2PK?P9DQFXK?yJ ?M>CSZINB JSFML@JS<OBSF PAL=N?JULFMRCL=K:AP\@T@F1QBiLRjDRDKI<OGBTHQ;FQF L@I!>OCBRH+MBpI=M7AODPEKq?xK@PpF~PEK<@5J:>jN CQSG;K@I?L CRVH3O%DTHK@zPFPFxK?]J>ODRHL@J>MASH PzDsI=]MGAPLEQEK>Jc=P=DSGLi@K>P5DRHM&BNJ>.MOB QGN$EH>M_BQGQsHJ@LAOFO@EYT8KMCpI~?|NCSqJNhF5J@MKCBQI]PHJ\AUJ>QB?UCePU:GQ6V;|\BW>gQ8R>>(S9DDPDI=K*BUQIQ+KKDKEyQLSPLGXH@(L5DqRI0OPF.J @NDQoHRJJe@_K@UQsGBR&HxK@J?~PFRAI4N9D`J?RMWBqR>HPFJ?MANQGJQGJ @K@*QF|RGKA~I>>OD:SHM{C K?uNBFRG^ODJ>NGB>SZHRkG,LL@LP@]PDSfIRMAQKN>mOBRGOZCIdL=`QDSGG0OAK=EOA#TFN@|K3S}E"RDK =Kg=PDTIK?`J=O)D/S9I9MAI)>L BfRH>O8EzI!>\K?PmEdQSGJu@xH=NDRJKAH:>CND?R-INCI>7LoB*QHN GMH>Iv?OC-RJCL8 O>8+T<\XA0R;0O9QA RE}MCI?,LB0RiJQImKnDK,EQlKQgLJBJ@NDR)ILBUJ?hMkB TJOmE/I=L'AQGKP\FJ>KJY?PFRHKA Jr>nNBRHMBKJ>sM_BTRH^OE(I=J@1QFyQFJE?K@PQDRHLAH M@RG/SGIQFRG!L?Ko=#QDpSGMu@Jo=APC@T^HPDJ=N\AQE R]EdJ=AL>*QDHSOGJR>J>KP4ESIMgBI=iL}@bRG]PEqK>L@PFP FI>I=OEQ6HLAJ>OK@PFPFI>I>$PE1QG.J<@G&=4NC;RHN$EhI>!LAQGaP GGz>FK@OF6PFI)?Ij>N-D3SnILBHS=\N%DQHO(EH>KAQCGOyEJe?I>BODPG~I>HJ?OlFJQ|GHV>I>XNADQRsHLA=I=~LgBfRVHNDEIf>LAPOGP@FH=K@OtFOXFJ?I>jN6C}QG$MBHV>SL:B7RHNDH[=LAQ.HO;FH=J$@>O E`QgGJi?G>L B'QG^O]EGEOE;RH K?VI=MBOSHM>C'JB>M\ARFP,EJ=K>[RFQFK>I<+P~D$S HL@$I=-NBRGRMB+I >(LXAR HO@EG=J@P\FTRHJ?Ie?OFQGLwBsIZ>MC?RI-NCI >uKBiOFNFI>K>kTB WwBP7JQ4VL;Z?kTN9[O6P<:SADOCoJg=MGBQHdQ4K.JZCKDrQKXRrNJDH@@ND$SIN CIB>DMSB?R*HRQFJ ?K@RHQFcK?J-? QtF?RWGSL@HS=\NBESH$PYDJE?M CbRoGOD/IF=L@P;FRGK @cK?P5DSHMA"K5>NBSGPqEJ=MtASGWSGK?L?QeETHOAK='QCrT ITO:BWL>OAUHQ-DL>O@T|FS@EFK?<M>qREtVVIN,@L >QC9TGzPB(L>OBGTGePCJ=FNdARpFSFiL9?L@aP8ENTINDeL@ODSI[ODI=kM6BRZHaPFQK@LARHlSHK@K@KPEYTI?NC]J>rNCTKuND.J>KMkBSIPFL@~L@PESIK@LAO4EWSIWOMD K>M[BRHjNEI>L:BSHRHK@{L@RGRHuKU?|Kq?PEQGNCJZ>NBU9IQEK>+M?PDSGL@{L@QEQcGMB K]?%ODRH OEIZ>M!CR5IP&G J]?qK@OFR!IFKGA$I=OEmR9ILBHB>MBCQHNDJ?=MJCRJR)I;K@K= Q}@TBP,:P|6^V=Z@U;BOZ8M;SG]P EH=KpAQRJSCLtLELEoPJdQlLKaDGJ@OESH\N{C$I=^L+ARHOPEJ?LAP"GQ?G`J>J>gQEkTfIMAI<OCRkGTO-D J=Lu@*QQE*QEJ)>L?REASHK?fKe?/PD)RF}M@J=VPCTHP{L>RDdTgG@ME?&K<'QCSiEO@LL>=OCA5TEXR{CL=OT@TE4UXFLC<M<5TiESEM>K<;GQA_U"G\N?~L=MOhATF#QCXKk=oMm@S?GWSGuKr>`J=KPzD|RGM@I<`N!CGTHOQDJ>$MAqRGVPFYJ?KL@1QFQF^I5>H=OyERHMBJ ?%OCSIOEiH>=K<@QFQFIr>K@@ QPFvQGNJ>Iz>HPERHMWBH=NRCQR&H+PEI%>K@dQ+GPF8K?J9?7O~DQFHJ?J~?1NBPXFXNB5J>LASHgQFIO=K?PDPE\K>LM?PCRGRMPAK>+MdA-RsGLAK?TOQDQGJq@H>OXFgQ{H'MCH>LAQoHNDH>(LAPOGdQGAI>I@NEOWGIH WBQUW7VHgNDHk=Lm@QNHPGrJ?oJ>NDyQGMoBI=UNZCR.HN6CHk=PL@QWGP]EI=|K @PFSHQK?sI=OCRF L\@YJ>OEDR&HNDJ=AL@RGBRFJ>>{L@QFS+GqK>J=7OwBT=IOBGJQbCRD)O@JKB=QCSPFO@LU\F"R{CJ(:L;SD RD@M?yJ^LAsPE+PEK@I>/PF TAJMnCH= P#F`Q|GHPEH~>@MZCePgHNDEH"=K3My;NhATYJkQ.HeLCsM]ETNTRNQK]EL/FQ+K~SKLBL|AMOnDTIOFJ@JNCRHBRZHK@hMBPG3S,JKAL&BQsG+TJM:CmK @HPESEJO+FLA`NCjRHRGI>L*BSMIKTJLAfKe?HPETJNCJ?APD?UJOD2J^>MA:SHQoGL@oMhASsHTIdMCABKF>OPDTIOCJ=)OBTQIRGKr>zM@ESFES;GJ>L0@hPDRGL#AJN>PESZINCJ>$MPA|R&H+P#F(I>>JQ?Q;GQOGJ?K?OFGQkHKkBH=NrDQGNDI>LoBQ/GMOEI?eL AODFQsHJ}@I>NDRJOMCH5>LBdQ:HMCH=XK@ QkGPFH>I? P F'Q>HKA.J?MCRH@MCG=KATR-IO'FHZ>;K@PFO@FpIE?K@OFQ&HJT@Ho=NCRHMCI>LAQZHOFHz>KpAdQWG5QGNJ@H>>,O EQRfIKAI$?N5DQ HkM6CIN>KlAQGOXF/I>J? PF0RHJ?dJe?nN)D QSGLwBH >LoBQRINDpI~>cK@PGJQHIv? JE?PF*Q|GK@I>NEDQHM.CI ?kMB"RHOEHO=K@APFO}EI>IE?OLEgQGKAI >!OCR"HN!D^I=MBrQ"HOFIZ>7LAOEQG4KD@If>PeERHLAI>N9D[RWG|NCCJ!>M@QdF:PEI=J>mRFQFJK?J=APC;RF M@I"=NGBSZINEI:>KT@PFPF'Jv?J?}Q7GQ*HJ?yJ?ODASIMCI:>oMBRQGPFJ?Ji?QGPGH>J@OfDRqENk=M8 T;HZ@U:Q5UU;VA1Qu@JtLdAQGPE`J ?LLhAePyEQGKe@J?~PERGMBQK~?MBQF!OCI=K?R^HPEJq?K?QFQFL@J=wPDQFMA{H@;M@:S.H:P~D JTRFJ;PwBS;F*Ni?J;O;ANTGfRQDK;gN?dQCQCJp=Mm@RG~PEJ>J>0RGPEK>-K>IOCWSHM@J>>MtATQJPFJ>zMAQFQ+GK?K?}QFRkHL@VI[= PfD+TIN*CKJ=M_BS5I$PyEJF>MOBRFS>HuK~?JKv?RGoTI.MBJ ?OnD TIPEI=M'AS{HPD;K>IL @vTHSRHL=?tL~>QCSFOSB7L>~PCsSHOCIgX<S6T9WWB8UaDWL!>KF>PFS}JM}EZI.B:PI9T(O8QKGJC MESK}QGK]?zMSB QFRHLAKD@oPQET8JNCfKi?NBRGQENJ>(L@>SZH RGKU?L?QhFKTVI MA`J>PDSRHOEDJ>N%CUJkQEQK>Lm@R[GRGL@dJ=?REXRDFM@L?QDUAIO>CL>N@,V^HRQE7L=N@SERELN>'M=S$EWH>O=?M:=PATFQBeLTdF/SCKSSEYT&GJNBSNHhPD$I=4N"BR7GPEI-> K>*QmER:HK@MK?OPERHkMB J.=N_B7RHO#F"K?LAPEPFJ?fK?P#FQR HK?I >ODRHNCJV>LAQGG PDeI=LA6PEQWG8K?J?PE/SFHNCpI'QUEQ|G~L7AJ>PeE^SoGMdAI7<,OASFNSBK=?JNB3SGMR7GZI=K?QFRRHLAI>NDTRIzM!CI6=NCfRMIPFH>KARH0RHI?K/ANDPGLA+I>\NDQHNEI?M{CRF Q/AxK6JQ9W=?dW=P5O4S=QA_K=tH;MgBXKCO JL8KF:e@0%_L=#T*HC[[ac@bb"c^]]ORQDM>N@I>9k7%$lK! 9+WSDCbS^ITC[kWk[XQhKE|h1)"H+W$,d#vhOgr^d+PUJ]TnT1xQgIQEDHCJT@D;7C7$I:=KAEE3<B7E B!9qD"=UJ EICGCIH/IJDGBEY?MHQNNKEE>KCQ'KMEbHGC0E G'+DE@J<%*!'AD+6 3lG*Xi/0\!d/re@bEZJQJ,SU+W^1QWcKQKRQTQQJHIYD NFRLB;DS^HRGXcL[O3VIQCV}J[PXKTPFSVHYMYMS\FTEqYK[,OUGASDWeJU[OVDKSFUkH(ZN'W\KQDS[GYMrXLRERF|XMaZ OS H'QD3VJZZ0PkT5I QDdTGXMVL5Q FSG|XKYJ_U|AW>'^>CaE\e?X@;/]XA_>H"YDEQ? UEZ NXMBRGGrTIYPZTRJQIBVsMSZPTGkQCU5IZZZNWIP.CTsHmYLtYK|RCRD5XJYMSF%RCwVHZL%VG7RCTFYWLW JyQASD YTKXEJFRCRCWIXJiSjDPAVGZOLU/GkQAU@FYJlWGRsBiS>CYJxYqJAS[BRA-XHZJUDSA WF[KwVLEQ?TB[iJYGR,@TA3ZRHDZIS@^Sm@XtF*[eJUCR @VMD.[JVEYK>SEHP@TDXKUGO/AmRC^VHVIOAPAU*HWYJQRDOCAT;GDWISFxO@S)D~W]JV!IWO;AQAVIWJPAN?T GXJQSBePD@`TD|XJTFZP\@7RBeVIVHOAPBQU6HUoHPBML@SFWKREN?REWKSGNAPCfUIcUHN\AEOAUZI,V$JPC1NP@RFWpLPD1N#ARDWGWD+T;OW;<]m?^X@W9pV&8[TAZEQ?Mn>$SEW7LWSFHNC[RI6WOxUNOFDP&GUlKSVJ9TBYJ W@FvQ(@ TBX5IYHQAQq@ W^HXJlSDP@TFXKVHSGGDW?LjUeJNBQE?UjIUJNOBhPCU(JW>MO D|NBkTsHWMS;GNARFWLxUJOCvQqE(VdK2TIpObCOCNT IVK~PDNBT IWMSS HNbCQPFWL+THN?BP DIVuJMUMJOCOnCvTHWKPCOlAKTFWJTkG\N@QD WMJTBH1NA0OCWS IxUKNCOCSHVLPEM[BQGU7LRZIM>CNrDU#KS J MBNCRHJUtLODLAPF3V>MPSGiLoBPFTKS^HO?RZ>ZgB\BU9QU!9Z}@[DBR~?hM=jR'FqUlKQH^L5DPHUPTODMGMHSMTMMCMBRG;UKPEMAPF UKQGL;AxOzDTJRGL?`NBSHTIFN>CL@jROGUK PDL@OCTJTR|FL8@xOfCS*HMRGL@NB:S> IUNAoM?ShFUIPaDL?~PRCUJRFN@PBU{HU*HN}@M?T|F^VIPAOU?RBCeVGRCrN>)RWB9WHUUEN>O@UF"UFO0@N$?SE7VZHPPA MR%DVIQ DL:> Q!C"UGSFL>N@T&G\UIM@M@RdFQU5INBK5>@QmEUJPOCTJJQDFmKv?MAMRoGRHSL@K@qRHTILAJ>PETJPDKA?NCS)IQGJ>kM.BQGASHK@7L(@QFvT0JMBK?]PE@TIO(EK?MARG7RGJ?L'A%RgGSAILAK@ QpF2TIMBJ>NClSnIPqE8Ke?|NBQHPFMK?tL7A|RGSHMA\K?PmE5TIiODJ~?4N CTIQFfK @*NBRRH\QFK?JM?\QEaSHM:CJK@ZP ESIODJQ?*NBiSIQFJ?$MASHR GKe?KX@PF+TJMCxK?O,ETJRQDL,@%OwB TH;RFK?ML@RF T*HoM?WL >QDTGNBSL?O>CFU=IaPE`Jr>MA:SoHRGPL@LXArQ+G+TILAKX@sPET$JMBJK$@UNCESMI/PpF0K?MoBRHSI"K@"K.BPFaS JM@3L=S@YBdWlP9$P=SDlSF~LT@%LAR JTNOfILEO,JSzNN"GJ@MOCSQIQSGxK@]M?ASG(S9I$MAWLX@}QE TnINBLi@ODSH QtFmK?M|ARkHBRG{L}@MhASFGTHMhASL5?VPET^IN*C,L?6PnC4UIgQLE,L>N;AaSGSGL?zM@SFTHNGAM?7RiErT HPCL>OOBcURHzT;G]M>O@TGT&GM-?MV>~SDUGhPANM?fRVCRWHOSzD1N]?PAUH>SEKM??N?SFUgHOAnNTARmE)U=IN_BKn>P9DUJMRFoM?-NAS IRG$M/AhMARGTAINBK,@rQ\FSjIOLExK$@NC TIQTFBK?OD5TISIK@Ke@QGSHUNkBMAPE>SIODJY?NCdTJRH~L\A\NBWSEISMIsMBKT@(SHT JODLu@QETQJO!DL?OCiSGREFN#A*N@bR\FNTHMT@MCA$SG UINCcK?oP8ESIPCGI>6M.B)RHR9IK@K@QGlS JLB2J?PtFfU L`NnDI?MCSJ:PGIQ?+M!CQIPHKTAMK@UQ?G9THNM?3Oa:Uf>ZoB\U MCRVIePEeLALBQ|G$SItL@K?O4ERkHCNCJ>O-DTJ/PEJf>M?BSG QFK\@L8@QhFTIL@K?QES IgNB K>NWBTnIPE5J=`NdAiSkGSGK!>>L>RET HNtAK=0RDLVIP6CL>)O@UGbRADiLS=N?TEqUF?NZ>*N>SDU+GoPAM=PXAmVHQCAL<PA TLFREL>VM?RPFSGL<@^L)?R#FTVINRC0K!>CNBS-IPEK?1NBQRGRkH!L@LlAQ"GRHKP@XK?PEiSH'M&B@J>O DASVIODJ=?MARQFRHcK,@L@UQFT(JMAK=?PE:S5INfDkJ=?4NCQRHQ|GK?tL\ARQ/GQgHK@J?8QFSSGL?qK>RETHNAJ=`NBTJ+PeEI>L6BpSITR^H Je?K@PF[RHKAJ@PESqJM5DJ @MRCTRHHPdFI>L[BRHQ*HFKXAJ@]PSGR JlLAK{=Q(@WBUtOjDTJPEI=OMBR"HqRGK?+M@QR/GDTH'MAfKq?PqEsSH6M\AJ>^O DTIGQEJN>MBmR/G,SGL?M@ESFTHOwBmKc=HP*CTHeP%CK!>PVCVISF%LO=NT@TFT/GM?QN?:SEUGN@K<5QBVHjRCLaS8E@T|F]M>LR>}Q]E?UrIXNGB|K>PCSHOCqKi?NADTJaPDFJ?sMCQHSBVSB:S;QK7W=[6CT5?M$;~PATH@Q|GJ@NESLfUNLqELiEfR?LSLMC!L/AODzTIVPEJ?OCTIQRGeL@MARGS)IK+ASL\@PFlSHNNCcK?OQDGTIPFkJ:>NCTuJR.HK?MASH>SHLXAK<@\Q\FUxKN!C7L?PJCSHQlFL@FN6BKT*HYTHRMm@REVJ`Q(ELD@EOCSRHRGL@PE;UL PhFKL@P'FSJXRHK;ALAxRsHSI~LBKAOFSJMCK@OEU[L PFbL?AoMCMRkHRIK BLBQG.TJ:LALhAPFT#KQNDJ?MCsSuJhPFK+AMVCQRHRAIKA8K@QsGRIwLgBI>O#F T8KND`J?rNCRIsPFJ]?'MBRIR-IL@&K-?hPESHMoBJ-?PPF5TINCK>MsBR G%RFK>,L?gQ}ERH-K@,L?PUEsSIM{CJ?jNCqRoH$P/FJ?MBQ HJQFHJ\@Je@QHyQkHJu@QK@PFT}JMCrJ?]MrCSIVP7GH?iLB\QGQF!Ld<Ne:\U>X}@RN8[R7pV7;K,;M@XRG]PG]JB^LDRLwSLKLEJCPJRtLLDJ?NCTJ QGG8K?PLAS6HRGJ ?AL@RGRHvJ>MKm?O(ETINB`Jn>NBRHPFJKv?L@ES6HQ+GiL}@Lq@PERgHK?K?OC T ItO{CwL~?WOCSIQEK>YM@>SoGS^H:L)?L?REDTkHM?3L=vQCScGP:CL=OASFSEL=nN~?SE+TLFnN?OM>QCrTFO8@+Mz>PBvTF}QMDL=,OASGRpFqK=M\@`QLESGKm?&K:>GQqES IbLGAKA?ODrTIPDJ~>MAS>HQOGK>L@"RFSNHLAJ>~PDSrIkMBuK@'MBSHWODvJ?L@QFRHK?LGARFS%IeL@J5?OYDSHgNCzIs=NBRHPF J=~L@`QFMR*HeLhAL@/PyESHMABK>3OjCTrIOD@J=MpATHQ'FJ=wL>Q,ESH6M@Lv?PD]TILWBHO=NDSIOEfH"=KASI PFNJe?FKm@PGQBHKpAIv?ODS}JNDEI>OMB:SjIOlF$I>4KAJQ5IUQHI>K=~SOBVB^Sy:hP$5W;'[@V=O8 P>CNZC?R HO(EJ>L@bRH(SHKi@J?wPUESHMBI=NBSjIDPyEI=hM@QFPE`J%>%L?TRFSHAL@cK-?Q/FZSoHODKN>ObCSGPDKi?M@WSFESFKA?>L ?mREToHL>7L=QnCUGrQCL=wPA4UFQCM->BO?TEpS EKSDbVGO/A M=Q!CIVHKP"BK<,O;A+TGQzDL ?Mu@\QD%RFK<@ L?QEaSHNC K9?MBQ|GO}EIn>MA7R HR HJ> K?@QFRjI=M*BI$MCB[RH6P\FJ>tLAqRHFRsHIf>JM?PFmR%IKA J~> OzD(SIMBG;<6MB[RHP+FH%>{L@PpFRHJ?IU?PF/SnIKhAI>jNUDQ"HNRCUJ>hMAQRGPyEJ6=M@hPYDrQE&K>%Lu@ Q,ESMInNCEI->LB Q[GNDI%>~L6B?R!IPGAI>K@O\FQ%IJAI?NiE(SILBH>>MYDmRINeEzI?KAoPHPH`JAJ,@QD4U(E Pe:P7W*=@[AV;[R6S=TBQVCYJV>:L@ZSJSMLEXKDQLRNLSGJCME TJOFI> MASIgQGJ,@RM*BMR HRgH MAMA@QFUJ*NVC]J=ePDSHwP+FLD@MBQFQGG~LAL@PERGMBL@BR G)UJOfC.M@O%C UuJPiEJ->MAsSZHjR&GK>MAS6HrTHNAtL?sPD^VJgQDL?HPCSFQDKJ?M>TGU-IO@uKqUSGSFYM?L)?QESGK?K?PDFSQIMAJK?M CES IaPF J:>MBQ6H*QGI?LAQHR I=MoBK@NDqRHN5DJ?zMC8QHMEGo=L@S@ESBOq:Oo8W?0YBTR;LEQL0RK KA"K?hPESqJ.MBH=ODTIODI>MCRHNDYJU?K|AP7GxRH K?K@\NRCS^IrNDJ?NCP@FP@EI>M:BRGRG8K@L+AaPYEfRGMGAKA?ODRVHMAI<OfCS%IPDK>jN@SGRFxK>LE?;REUHLE?3I;PCUIOBrJ"=NA,SGQQErJL>?RpF`TIL7A J=VMA0RFQEIk=LAS%IPEUJ>7L@PFTRFHJ?I=XNCRkHuNnCJ>NDRICNClI= MB Q&GOqEH=xKu@yQFRHJT@J @iOrDGQFM{CI>bLOB`QG PLFdJ?K@BR:HQLFI ?K @PFQHK+AH=MCOS!IMrCyJ>K@RHOFI?J@RQGKPlFH[=J?OFSI'MBI=N)DSUJFN-DHB>LSBQG3OEpI>J?QGOE&K@ J>sPF?RH3LAI=NCQGOEJM?KAPFPFJ?K@PFQGxK#AH=MSBRHLCJ~?RM[BRHOEH=qKe@QH QcGKY?L#AQGJQ?G&K?Ir>JNCESHKPA:I>'MBQGODIq?SLAPPFQRHI?"K?OPFRHJP@HI=QNCRHNDI~>M*BQGQN9D L?eL?QGRHJ?|K\@bOE-R"HLAIM\A-RFQFG:wL~?Q#FSGmK>J>QDR>HLBG3NDSINCI=LNC7RFH/PFrJGA.JD@R"H)RDwL:N&8$W>y[@T8}Qv4W;Y"BQU?dJ,:MT@/SGQoHJGA KBRLASBM4K]EJaDNgHfRKLB.J>NB5TJ~P FJq?LB0RGPFJz>fK?P FSvILhAmK>APDjRGNBJ=MASHNfDFK?rNwBQ@F"RFLALe@QESGL@K>PC#THODK>N BSHdQDK>VM?S/GaS?GMQ?bL>RDS&GNA@M>Q!DREQ5DRM=KP&B UGRjDM:>N?ZSDRCM:>M=iSD&UF$PA4N>RDjUFHPZCsM)?BO@`TGS[GK>6MQ?"RE2THL@LL@%RtFSHNBLm@PMASISIL|AbLT@QGSJ$M>CzMAZPDkTJHPEK@NCSHPFK@&NBTIRAILBLPAQF`T,JgNBKY?OED UKQ'FMK?NB+TgHSGK=?M@S7GTAI-NAMhARErT-INjCI=MCTPKQGJ?vQGUKIOEI?hMB0RHQHI~?NrCR0JQEIKXAAL@QDTDQF>xO8U<<[BU:O5Sn>TjD8QjDJ>M.CRYJPI=M/FiL4EQLSMOMHIA6MET?LPF4K?LA4UJRHFK@Km@QPFSHL/AIc='QEMUJ\N!CH3LL@sSHL\@QoGT(JK?KJ{=JQFSHOC;K%>PDRFQ#F JW=NCBS+GSGL?L?QDfUHMP@eL>RDVHQJCKT,ETPFLdL?PDSSGMAL @O%DSBHPD J=L@RGUQF5J>L@8QPFXRGK@3L@PEbRGNBHiL AkQF'QF]J>K?UQF[RoHLAI%>MBTmJQNCJ>JNBRH4NCJU?FK?XR>HUQgGKi@LAPFQF,L$@I=MBSJNCI=NB(SGQFK>K @QF-RGsMhAK>Q%D,S?G]M@K>NA T%IP8EI=^Lq@PhFQ\FJ?:L@PdF:SnILtAI?ND\QGMfCI>NADRAINeE/I ?yJ?Q&HAPFIm?XK?GQGRKJGAJe@jNjCMRUEP@N=9T3PFR JzME KCOISOnNAIIfCLyEbRLKQHK@K8@`QF0R.HI>GJV>P]ES JdMSBvJn>NCR6H0OYD8K>NCBSHP EJ>3L(@`QdFSIK@Ig=P(ET JMAJk=Lq@TH`Q}EK>MAOSgGSgHJ=L?RpFTHLL>I;BRE`T>H%OwBK=OBS|GRDKS=N@fRDT"GM?rN~?OSDTlFWO?DMB=P@;UGPALW=N8@ U;GSEL=+M*=SBpSB@MdOQD4UJhMBJ>N CSHODJ>3L@PTFS^II>cK+AOFPEK>MRGRHKAMDRJOSLJN"HQKfD OTF9TJ7ODrJ>MSBSHQF&K]?KMA5Q7F(SHbL@I=;R?GwSHMBJ >NBSHOfDK?MBRGQOGMK>SL?P@ESHMGA7L@@OCTHiOBFKn>bOC~S-IAPE;Kn>L@@5TZHSG|Kf>9M@SoGQU^IWL?LR>kQD\UHePCL>3OB_UHREM9?1N@TGS/GM?M @RETgHrNAL>PC&UI^OB+ML@NAUEJR GK?(L?RGSHL@L?R?GTiJPDL@ODR5IOYEI=NCRQI|RH9MoB?NAQGSILGBKAO}ESJMC K?CNCrTJTOEL\ANC|RISIL@K'AQHSJLgByJ]?PGSUJOeELLANCSJ#QHK@J@BRH/SIAI>L|AdQG5T KRMCyJi?2P}ER}JODF`J~?N~DSKQGIv?0K@PgGRIKA(LAPWGT KKA*Jq?4NMDRH QFlL#AMDRI?RgHKJ?(LARIR%I"K'AL[BOE?R IMCEI?3O4EESvI4NClI=LpAQG-RH;KALB RkHRH,LBJ@IO@ERHNDI ?MCSIePhFJ?MBRQNHiOEKALA*QFSJKAJ?LBRQ*HVMCI>bL*BQ^HOFJ @LAjRHRAI^L;AJ>sPEQ>H{LkB@J??NCRoHOMDI >L@Q?G3OjCJ->LAQ|FS!IK?`J=^OCTI`N!CI5>MBxRHM6C J?L*BOEPFI?4K/APGP;G-KAIr>zMC@QFHLVCIm?NjDQI,ODF;K@JX@QNHQ-IJ@I?OE$ScGLOjRGdQHJAJBP}JSfNLGTHANHRQ]JbOFIU?LwB^SI[RVH5J>L;A1QFPFLA|K?OQDU\KLA`Jn>NaDUQGOLEJ>8K?BRCGfRGKY?J>P'FSIFK?-K>aPDTJMBIO=rNB@TfIOEDIRFR6HK?M/AQDpS H MT@;K!>,OBSGOCJWRESOGM>K.=QEDT&GM?,L.=VPAUF%RCL=ME?SL~>SE:SFK?J>OCSHMA*J=DP~DT,JNCHC<+M'ASSHgQ+GvJn>KA?mO5DRGBK?J ?ODoTJCNBVI=ODiSI P]EJ>;K?QGPFK@dJ>NCOS^IKAdJ9?TODR^H]M C`J>LASH#QlFOI=Ku@QGPFJU?`NCRrIN-DJ?\K@"R.H QGvJ?K?JQFRHKJ>"K ?jNBSSgHMAMBQ[GN%CyJ?`J>PlFRIK7A;K?MO EPcG L"BI? MCQH%OE@J,@J@PGOFIM?KAPER^IKGBI@@NEgQHLDH^>LAmRFSBN8 R81X>GX=5QQ4R6:S<TBM?/I;NCSuJnNFK~DMG$SzNPLHC0K EPHOoGSH:P@EJ>Mu@*QyENTIK>K>*QDdTHOCJ&=N+AkTFHPDJ=KM9?kQ=DSFM>M5>RETF7OD@M6=QCAUGRnCM=HP?SVF/S9DKy;N>SBCT8ENM?wLLq@ RF/SG@MpA"KM?O~DSIM?BJ>N{CSfIP@EdJ>oMA-RGQG%L@K,@KPERHFKe@_K?OES0JN-DJ~>MsB-RGPEcK@7L#A RoGRGK?@J9?Q*HSILAJ)?N!DSIWO4E*J>LBSI\QGK@LAQLFSHMAuK$?RGSIL;AJF>PCSgHJQDFKR>PBCwSGSAItL @K,@GQPFESILkBKpAOE+TeJMDI?NDrTDK$PFGJ@'MC"RHSnIJdAJe@NQHRJJALANyESSJIOCGI@L)DSIQE+M;BR=gXAY?S8 U9,Y>YCQ?Kt<OA+T4KhPGJBOMFSNRNwL+GdJpFQMQKK[BMBP|GTqJ?NDK@jN$ERIbOEKAnN%DRkHQ{HKAJ?QH]TKLBL.BAPXFVTUJrNCKAND TJN@EK@O8ETYJPFKm@LhAP#FRIMBK@QG TIN:CcK?oPEV+LNQWG(L?OGBRgGSoH!L?M@@THUUJM@]M?PCIVIQZP"BuUHQCVM>OBREUINA7L9?JQzDTEINAJ =OA UGvQC0K<,OA5TGRGK?=MAPFjR=IiL&BK@OERILwBH=NDRIPsGIM?J@RIZSqJkJ@K7AePGRIIL B@J@!OiE/SJrNFXH@@MmERI~PDJ9JN9$W@`X@P 8Q8U?TC@M->uK=OfDSKAPIJCtOHUObRMJDJRCwPHVPFAL BJ(@6PFyQGWL.BK@OeE5TJODJ?MBRHPGK@"KP@PlF8Q+GLXA2J>6PEQsGMC~I5>NCSI'QFK@L@qRG?RgHJ>K?QFSHIL8@K?PDiSsH>O%CoJ=NBiSGPDK=N@SEaScGLL@{LA?QDTHNAL>}QnC^VIOBoJ=O?B UHRmE4Ks=N;A-RFSNHLu@*J{=vQESH1NB0KB>NBS ItODvJ>DMAqRGNQ/GK<@LAgQF7RH7LAI >bOfDSSI.MoBUJ>O=D:SI`N5DKJ?mK/ASI;R.HI?lL@@OMD PEL@J?OESIN5DI?MCRHP"GLALBQGPFIz>QK?PFS,JKAIj>M>CASIO8EJ9?MwBRHN~DsI> MBRH/S IK@oJ)?OESIL:BiH*=OnDmRgHOQEI=DMAESH]PPFJ?lLhANQGRH-KL@JE?OzDHS5IMoBJ>gN CoT]J$PEK@K@XRkHQG J)?K$@~PFOSJ4K@I>O(ER-INCI=NDS!IPEH=iL'AjRGRoHMK$@J?P7GQGK@8K?O D UJN:C2JU?NJCS9IOLEsIj>K@BRVHNQGKJ?L@UQFaSILAJ>JNNCGTJ~PFNJN>iL@RHQgGJ9?L@@PDQlFK?-K]?zP8ETIN:B-K:=~P6C%VIQUNAS GQEJB>KT@aPE#QFK@(L@QGASIMCIF>MJCRHNDJ?LA-R HRGI>|K@oPFRHMBCOIM?NER KKZCJ>OGAVE(V@tOY4R46`[?[D@~S8PN9KTAT/GM\@tL @KPFTBMOHI"BMkGR)N RLH;AK6BQ/GRHLA K?DPDEMUJSFHPFI=MlA)RGRH,L?M@RQE^SH OCK$@NJCSHbRFK~?MA^SGSHKQ?{L~?RFSHUNAWL?PCU0JBOB8K=xOBrTHRE^L>UNP@TFUQIN@KM>rQZCVH$P|ALk=RQBU^HPAK+RiEoM?Hh8S *0 {{#f>ER9TOTA_;Qf\_ZPNNLBHM?GK~D%E<,ECOFF>C;H@MTFMHABy:D<KDHC B;WBp<B>C/5&G;A@]DUL@+#@dQjUll(a- !Z#7\k3ZOr0KauN>XgNPXDA C<=IgB}MG^E?B3O; Xk=WpO7N<^L$@247 5>"B#>>&=n)875F-RM_Y `"_+V.4UFV]SrVIklFq_MK\iOXJJFAKDhPJMGH@@8KDPPKP]JvJkBK_BQIQLJCqKDOINTNIOGJDMHRuOO"MvJDJFQZN1UNMOzDODTJVNOoHMMDXREIU5OOHI*BPGVKOSIMBODV#KTH)O@O@2TcGUJP EjNnC"RFHTKNE KL@8GDHJGIE;VCj7G`/L(.PK*C-\A7>NHq>K M2N%V2Ul6P3`Q#7bY2PV4L46L>PF>#TMDOFIFYMK-NKYJfIHME;V65Y-sW*S5qOX=$O!LLSAW@]E8bJK[yEQ&BRVHxYNeVrIOCePGUMN;G6F=HATE9JK-9HI1E'N?KW\CNY)H5NKMP]OgQLBKEPImVPS$PL|GL IbRM TfNFAGoBTOK8UPS7LPBLVE[IYqEpS.=S>YEhWgG,OAOBpVJ5X)NQHO IsSOYTUQ|NK'Q-NUS:SOM?GQ~I|UMVP!OGOHULXPQJuNlFSJXQULTOERHXNVMP7GRG&XNWNPFQFVKYEODT-IOCT=IXANcUI,OABREWLVKP*CVPCVJVLK'Q!DN@8U.HWKRYEN,@RDXJcUsHtO ARCWJWIQpA[RBWvIZqJ:SCFRBV\FYTKUEPY? TCX5IVFO?P@UGGiVG%O$?MO%>&UDwVFO?}M:=fRBUUF@Q CN?iOASFPDM@RQC1XKqUMI&N AM/ASHVKQDRQBES=D&UGBOBH(:XD5&K>M@?N[B2TDMR:X{=/Fu0S;" >/,@ 1E1D2n$KC#6QVXKXkMQXFiOCKT)IX[MS5IOCQFDWLVTKO DP(EwVL~WLPD3OnC@TI/W6MQFNBSG&XM#T-I!OC1QmEVKUJNbCPfDMUJ WKVP9DOBT!IXMRFNBBR7FW7L5TINByQEV+KVKNBOfCUIVKPD0O%C@TsHWLRFgNB)RdFVL2TI3OBPDVKUJbOC!OCUIVJUQfDP:BSFWKOSF!OA;R EzWKUFHO;AvQNCV)IVIPBVPA;UGWKPDNATRFV L|R+GnNAGQ(EWKTIXNgBOCkT%I(V@K3OVC>OBSRH WL#QD1NBMRFWKLbRG'MAODcUKFU(JO8@MR=Z BR^%C,Y<;1X8t]Q?`CX>Q