IMD 1.18: 11/11/2012 21:40:58 UNISYS REAL MODE/PROTECTED MODE CLUSTER OPERATING SYSTEM 03.02.00 B25-COS 1 of 6  np 03440-1/6ɋlɋl-,9|M^II-3.2.0GW" VR;H%H%u(H+M.)l+Copyright 1989 Unisys Corporation. All rights reserved.Ver II-3.2.0 Linker 12.0.0 "&*.26:>BFJNRVZ^bfjnrvz~%/I\cf"P)^x+d/* M b  3 D    ? Z w ';hx&u*8L`g{=kv}"2#?PoyV[| > K T k x p`pppMprpp>ppp4Cm(iyA`pFNVSbxQ_g V T    J      A ] z        I     n3H#?Hdl.R:i,FQq&Nb$Mx1T P k    ~     P u       ( o  H %?:ThP)1,BUGzlv 1+Q++++++++)+=+H+V+^+i+x++++++++++$+/+;+@+U+Z+o+t+++++++++++++ ++#+/+4+P+U+g+l++++++&+8+Q+_++++*+1+?+++++ +++(+^+++++*+2+@+H+a++++ +I]& (5Ci'9PX 5Bch4H\vOTglz*/7Nkdt"1=Pz C^mCd{&^r)H;P%6B#   ? P Y g l u        4 = W ` n v               9 J U o             ' ; T Y x            ' @ X r            A V i r          - E ] p y               ,(~0(~4(~8(~%g?gTgig~ggggggggggg=gFgfggggggggggg,gNgkgggggggggg9gOg`gigggggggggggg-g@gIgRgdggggggggggg$g9gBgTg1=e( l  M)2Zq8B7Vu$->PpF"A] +CZl 8 H n    I   ' D R i     N ` g   eU4i$#+f )29?EV[g!&AFY^| 9Ynw!(.3AHPZ_hsx+7 4 `  " ] m ~       7 Y g y          ! P Z v      ! ) ^ oq|H ]     ? W n }  ( 6 o       L         I O J d   f x     _       @ t  Q `   $ - 2 \ j  Z   H X   5 ` |   w     , ` s   n E  ! 7 b  F 0 A0 V0 s0 0 0 0 k0 0 P0 0 0 0 )0 e0 0 0 0 0 0 0 40 M0  / w A      $         !~c      % , 3 : A H O V ` g { ) 2 B K      C Y j r             % 4 = L U d s         N      " / N ]    3     S w        * B K ] r 1 F Q s { F n x    D f o t y  & . 8 E P Y ^ q   3 Q Y        O a {       '~'~'~(~U j       M j w           ( 1 @ X g t           $ 1 K T c p            , F O ` t }          $ - > R [ l y           1 : K X u ~         ( H P i r         $ 5 > \ o |        E b s |   % 2 ; D L Q j r      2 A V [ d y . 7 E N x   + 6 P m z    * 2 A I Z c q              ) f s             6 D Q b k ~         ]grg{ggggggggggggg2g;gPgUgag|ggggggggHgYgbgkgggggggggggg#g,g>gSglgzgggggggggg g g g5 g= gO gW g_ gt g g g! g< gj g g g g g g g g g+ g3 gE gN gc gl gq g g g g g g g g g g0 g8 g@ gS gf gy g g g g g g g g g# g8 gT gi g g gTg]gsg|ggggggggggg gg'g0gCgLgZgbgkg~ggggggggggg gg)g2gEgNgagjg}gggggggggggg3g\gegjgggggggg"g2gsg{ggggggggggggg*g=gIgUgdgpg|gggggggggggg gg$g0g<gHgTg`glgxggggggggggg gg%g1g=gIgUgagig,~,~,~,~  .6NVf #=Wq  7Qk4Ke|,CZt.Hb $;Ri5:]w<Sjo  ? P i             - B K P U r           ! > O _ h m         k |             > Q _ o       -9GP`e "',CXl}/?Oc{#(0u"=Lbq %7T3 (-5=EMUdlt|9>9h9A-~-~-~-~-~-~-~O-~=O.~kO .~O.~O.~O#.~#O+.~QO6.~:.~>.~B.~F.~K.~O.~S.~W.~[.~`.~d.~h.~l.~p.~u.~y.~}.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~/~/~ /~/~/~/~/~!/~%/~)/~-/~2/~6/~:/~>/~B/~F/~L/~Q/~jjjjKjO#Q ACC80~?0~:XTY }7999]A]]]]k]]O]pD^*S*f***l*ii0ia=  DD{1{~{{g)?  / , 09_C`GoY/k nxO0y_|_ / @ p_??@`Ppp(/P???@@B0FoG/ IPK`PoQ_ToPUUOPWW?_ad@k@lPlO`mmn?rtpuv v/?oЈ?@   /?_P,*'("E )#+7* %/!)_5 'J 2# 8`%BxJf   < o [    n   D M 5AAA-~-~.~ .~.~.~%.~-.~jGjjjjjF]FFFFXFXXXX e:Os ^P ^OF:O;OF]UF9Os~ rF< t<tjt~ud9OrE~ uK#~uR>J)JJ T>JJ)J*~ uF~ sF-FJ&JJ>JrFsWOJJxQPd+JPFPgF=uxP PF뵃~t6xP[PPFPgFJdPOtxPP PFPgFvyPTuk^㋇jilinipijili^㋇zi|iIjjWPFPF^^F>pi >nit u~t&piu>nirlPRPPTĿW* FV;piu;niw5W##RPPT~؀9 s@jzJ|JnipiPRI+J_[usˣJJJJPP>ItFFFjFPFPP#$>Rr\FҺ F V uFԣIF֢IF<v,IIII׉FډV܍FPFPQ#$>RrKF;FuCF:Fu;Fϱ":u0FʣIF̣IF΢IFѢIj4OnipiIIjQsZXXPP P#$6OƆ<wt6Os6OstjsIPP4OsYJTOxP*PPFPgF]UbJJFFF4Os0II`FVFPFPP#$ff FFFVFVFPFPP#$>Rr7FN׉FVFPFP0P#$>Rs,FƣJNȉJ=vJ>J vJ>JuFVFVFPFPP#$FN׉FVFPJPP#$FJףIIJPJP*P|FJHN;r[VJFR[׉FVFPFPQ#$FJ8vFu]UFN]Ujs JPQ0F^Q t؀ uFFJP^GP^&Q~WPPwmP4KPPT>Tu9jТjFj6PFsADPFj]Ukr>IuPPPPTظGTONFF tMWHRPPTF ~t(TGGGGG G GFNTN문PPPPT+N؉OPjs JPF t]UJd;t(WOJJxSR+QFPgFJdvyPFPFuF ~uF9Osh~uxPHPPFPgF~~u:O~}u :O;Oa;OsF v&Y&sY&NY&U]U]UQFFsF~w vFF]UTFS~uFFF~u2Qr+>TuQ:T.>TuQHTQ:T>TuQVTQHTQ:T^.KhUazjs jrP(]UQvLFF t!P>Tt"=P6TvP P']Uv]UQj6Y}4Fs~uPP]UPNY&Y&&Y&]U~t@FY&s sY&FQsPIPPPVY&rFr"VY&FQs6Qv$FsPFP6FP.Y&sFs P]U]UP6Yc$^P6Yc$^G^G Y^G 6YQ$P6YZ$Y"s ^G ^G ]UvKYt'fY&9w P6YP6j']UQ;R:Xu X^XX^X ^]U]U]UvX]YZRRRRRRRRRRRQURYRRRRRRRRRRRRRRRRR;s]ˋRsR RRRs RrRRRRrRrRrRRrRr RrRs RsRRsRRRGRRRRGRRRs RR;t>Rs RR-RRRRRPRPP#$RRR+RR 9vR6R]ˋRsq>RuR\>RtI8RuMRRRRRRWQP#$>Rr-RR;rRRRQRR]U졨RRRPRPP#$RR+ȉRRORRWRWP#$>Rr$RRtB$8<t@" RRRRWRWP#$RR+ȉRRRRWRWP#$>Rrd>Rt@8RtBRS":ٳtC" [:ڳtCRQ":ʱtA" YtAR":ڲtB" RRrRs R]áR+RRRRPRPQ#$>Ru>>Rr7RRRRWRWP#$R;Ru>Rr RR]UFPPP'vPP']UXPPXF PXFFFȊ^:rXPPP'FuF*F:Fr PFu]Ujs>j>Qt2Q uGXXPQPXP$>Rs]˸]U>Qu]ˋQG <t <t]˹ 6QXXPQPP#$>Rs]ˋQ uG YQG ]UQ>QtQPFw PF~w-QXPlFQwRRPsFF]U Q t ؋FFQ t X>Xu >XsFFj~t}XXXPXPFP#$>RsrFX<ujr$FXTTX P/ >Xt XPKXXjNujPFw` PFP/F u۸PPFP/F u¸PPFP/F uPPFP/F u(PPFP/F uF~umFr FF F܋F%Fڋv^&;Fw4F@F܃vFr3'F܃s FF돋v^&^֌F؋v&8ѣuFs PFvPP' P/ v^&^ތFv&0PP' P/ v^&0PP' P/ v^&@PPP'Pv^&@PPP' P/ ~sFFHFsFNFs P]U]U(8PSP;rP6Yc$ SSSYSSPFPP#$~u~u{FFYFFPFPP#$F;FuTFFFFYNFF;Fs2FPFPP#$F;Fu F^GFڱFư]U>YtE]UQQFr1XF>XtFsXX~u>XuXV>XrX>X#r.s>XErX)8XsNsXX">XsmrX"_XDXFs">XuFXX:FX/>XuF>XuF)XX F)XXXPKFX>ju>ju >ju P/ ]UFrU>Qu>juj 'j Q?r Q?vQjQ=P/ PXXXXFF~w_XPKXPFPP#$=P/ vPP'F 1 u~t,P/ XFFu]UQ t X>Xt#jFjXPKFj]XFF~t^XPP6j'>jt P/ FNUvP]UQQ t&؀ t(Q?2rQFFPv]U(YFFFF>QtHFFv$ ^&@ F<t<t <t<t F ^&N&HN&H NF&@FFPK~r P/ PsF ^&x u&nPF ^&pP6j'F ^&xt&zPF ^&pP6j'F ^&x t1PF ^&@ PP6j'*P/ FtQG <t <tFF6QFP$^FFFv ^&H N&@ Fڀrn~u FFFoF<t<udF ^&@FF^&FQG :Fu4FPFP s#FY&?tF ^&@FY^&@FQS^8^FRNs ^&@ ZY&F ^&@ 6QFPP#$6QPP$F F^&@FQW ^&P FF^&@ ]UQ t-؊O t tF6QFP$^FYFFFFv ^&@ F<t <t<t<ui>Qu v=XF ^&@FF^&FFQO ^&:H uFPFP s v=FFtc>Qt Fr]UQQQ8G tQ8G t Q8G u v\dQG <t <tP>QuD>QuF QFFF;FrQ7QPvP Fu۸]U>QuFQ tIQFQ t/؊O t t%QXGXG YG Y>YuYF;v !NFFYF;v !NFFkFk~uXFFXXPFPP#$FsXXWNQP#$FsFXF>RrMFXvXPvP >Rr.FrFFXFXN`Fk Fk]UjFj~ t|Fr^ GFGFrv KF^ GY w؍HP P/ 9F wF Fv FPv#$>RsPFj]FF)F FF<w7;Fr P P/ FBPPP'FuFPFFHN;r(Fs ZH FrIFuˋ^  uF^ W^ FUPQ u$RR=t PRR?t+/>Ru*jF t PvP P'RS<Q tP؀ uC 9Wu9s4R>R F' 1 FVVFFFFV;Ru;Rs6R RPPFT t=u F tFRR+FVFV;u;vN~FFHN;rF^8 u P/ FFt#^v0/ ^v8 uFFFuFVFV(]UR=tP6RPRPrmPRT]U,>Qt+Q u!QF>QuFQ tQFP v.Ps5Y&^Y&G^G^G Y^G ^G ]U4?RsYヿzit>Yu^F΍ON܍FڸFFFFނ~tP^܊ F͋^ N̋V´3ЉVVŠ^̷3ӉVV3ӉVV3‰FNFN몋FY1VF%1VF1VF1V~uF~uF6YFYRPPFF~%r^v8u%uvv^vFPvr^F@Fԋ^G ^ԋ^Y^G 6Y}4rjs>IuF FF^Ԁt^.^wj:j^G^ԋG;Yu%6jE$s ^G#P6Yc$g6jE$s^G ^G O^wj8^Ԁu8js">Iuw7^Ps^ԋG^G>Iu ^Ghjs$Yj+ȋ^ԊG ^G=RF؋^ԊGRRPFPQ#$F+I^GFأR^ԋG^]FϋFFF%;r)NFFFY;r)NUQ>Iu'6YP4 uYF+%jF]U>IuF uj;r +YF FSF u=r=sPvPXF;Ys#;YrQFPFFFS8F#;uF%Pfv svFVFV^W]U F+YF>It3JF FWRPPNF؋/FF6YYRPPFv؋]U4Os>Iu6Y}4saFu F%6YP4FF%FFFYFFPFPP#$>Rs F$u@]UFFFF%FFFF]U F FNN#;td~t~r&F%F؉FFN/F%N F~!vNF%V+‰FFV]UQQF1+ЉVF10PF1X‰FFV]UQQF1+ЉVF1PF1X‰FFV]UF?RsYヿzit>Yujr^w }4F^GFʠ4Os@w P4Fȃ>Sut^G#;uSv9F~uFFFr^FڋGFFjs>IuFsD^ t\6Y&D;Gu^w7FPrFƉF܋FĉFڠSF!jsP6Yc$^;Gt@FFr)^ u FGFFs6YF^ uWP6Yc$^;Gt@"jr6YFYFvš;Ft@FsFjs>Iu^Oj;rF>jt`FFF^ONFFPFP P#$>Rr0Fj;v#Ns t~tN܈FވNFFr!^Oj;r+ʉNFYPFPg sYP6YFP F-Y1FVR؍YPg sF؍YF؉FG@NYH;FuY1V tV6YFRPPFPvFP F؊Fs ^؀uFr,^؀u#vvvvFP} F؊Fs6Y^؋GRPP^؊OF֓C^ԋNڋ+NҊNr~u V+WVҊFs~uvvҋ^w v. ]U~u{P/ v ~t+P/ vP6j'Fs}P/ ]U>Yt:Y&GF&N^9Gu!;r+F2s.WPP ]UQ^F FFr ^ tFsI^ t@F ;F u2~u ^F*FHF6YRPPF F n 렋F ] U^ FFHFF9FwENFًF +ȉNFPvg sF뻋FF볋]U^GFvTV FFFFÿ#ljF VFF#׉V9Vu9FuF;FF;FF;Fv]U?RsQ t ؀ tQu3>Yt&BPjТjsMRPYmQ8G uKOu FFFQGFFQG FQ4Os(>Iu!IQ t Q tָhYIQ t ؋jjY=tPvY&FsQQFvPPPvYF=u~^㋇li jiu6Y_Y㋇zijPF uC6IP4S>Qt@"4OP6IW4 t@Y"sj]UQQYP؋jili RPPT؋OYYOjOYW YuAjsWJYO YG YYYYTGFFs.6I}4s!>Quj>QujrIY=w3YF@YSji^li[ ;u;t6YY{FF;Ys06YRPPTF P&rgFSFSFSSSSSFVFFPvvFPPrUFFPvvFPPrޡSFFFPvv~SP*Pr4Orjrz>SwrSSFVS=u fF.FFPvvFPP=r1FFFPvvFP%Pr ~SAuFS]UFFFN NN NNNNNFF tE;vNFFFP^vPvPP$>RsF)FFF봰] UZY&?u(YFFFFw ^&x uFuݸ\Pj]Ur.Y&*Y&]UQ>QuQ t,Q7aQG <t<uQG <t <tuQ u tQ u  uPQ7 jQ7 j>Qt FFwFF]U >ju؍Y6TFǂ>jt'XPRP;sSSRjjvY&]U FF^ S^S?Rs>YuF;Yr6YYRPPFFF%r^uF^ OQQ؍OQPsiFsC^ ?u P/ F^FQu]ˋQ t]6YPPIs<P6YQ7$P6YQw$.Y&r>Yu]˸]U Y&sQY tGjr?Y&QVN&G[F^6FY&4ڎ&؎& t Y&[Fs .Y&sAFQ t؋F6YvPIs.Y&r>YuFs]U6YPPIs&Y&]U4jFFYFFPQ$P6YZ$Y"sFFFFFQ u GF܋P6Yc$Fܰ P6Yc$F P6Yc$FP6Yc$FP6Yc$FFFF͈FFF Q t؋F֊FsF;FrFv܍FPFPFPFPFPFPFPFPFPfЈF͚vذP6j'lPvP6j'oPFPK~tVrPF҉Fڃ~t9FPFPP#$vаP6j'~v,P/ )F)F)P/ ~vFj]U2FϹNNFFFFVRVRQPP$>RrTFۈFFFݸvPF@HFFF9Fr"FFPFPPPP$>Rs FsF뱚":uF":t/F$F< t< t <t<tFPvc$F uvPP'vFP4s/P/ vPP' P F":u P P vPP':P/ Pvc$FPPP' P/ FFЋFFҍFPFt]UFJ^F&GuvY&F&vPP'FJPPP'Pvc$PPP':P/ Pvc$PPP'^&GPPP'^&GPPP'^&wPP'4Os:P/ ^&wPP'4Os;Pvc$PPP':P/ Pvc$PPP'Pvc$PPP'^&w PP'^&w4Os6S6SPP'^&wPP'^&t&SJu Pvj>Qt FrHP>QuF4Os PP4Os PFsQ7FJHN;r QFuPPPPFPPrPvvFPPrvԚ0>Rr,PFFFFPPtPFPPrfPvvFPPrLFFFJHN;rQPO>Rr&Fu4OsQ7POj]UF;JsiPPtPFPPr:PvvFPPrFFPvvFPQrt~u ~uFsavPP':P~t=Pvv"~tIPv0 VPFr]UJFFFF tF+J1PPP'F+JF^&;FuF ^&F|P/ 볋]UFFFFPPPFPPrFFFQr|P/ F uFQsPvvFPPrr]Qs|P/ vPP':P/ vPP'|P/ QsFs vv}\FFp]UQ?Rs9NY&F&PIR FNY&PIFNY&NY&]UvSSS~ujrpSrSr{SPPPFPPfr>PvvFP@PLrmFFF܉FPvvSP  >ju j~FPjPrFPFPP#$FF<wҿiWrsBPFPiHP vj򤸲jP6iFPPP FPFum]U PjPKPjPKPiFFF uNN;vNFFFF)F~t% P/ ^iPPP'NFՋFFP~t^iINF~t Po]UQQF^wi^iFiF@;isVFt؊iv:it ㋇iFދF@FNANيi:iu ㋄i^Fi렋]U^ u Sv@^W^;Wu;]U^ uS ^W]UQQ^GF^GF^GFFFVFVRPvPT]UQF$`PPP'FtF$.;61$,2'<"LZhuFPFrxFu-PFuPFu0+PFuPFuPFu! Fu /P]U*4Osv MF+YFJF FfWRPPNF+щV;r~5Nv~PF@RPPFV+ʋ{Fr ~uAvF׊NssPFPPP'vPP'FsCvPP':P/ vPP'F$PPP'P4Or J)F^FFFFFFvvPPvPP' PFPPP'vJFs04Or)>PFFڋFFFFFPF֋]U&4Or~uF s8~t PFFFFFNQNQP#$>FFFFFNQNQP#$~t PF@HFFV+Ћ^;vHFFFF;Fw:NQPFPFPF F P~t@P~Fu BPyYF܋JNVV;sF܋NF+ȋV;vHFF;Fr>NPPF܉FF;FwQ Pvؚ~Fuߋ] Uv]UF@ttnPFtfoPFtfdPFtfiPFtftPFtfsPF@tfzP}FtfaPoFtfpPaFtfcPSSPF%0 PPP']UFtstPFtmePFtpmPFtepP]Ujr 4OrQ t|؀ tQFFtFFQ t[؀ uF~uFQ t<ذ8G t2r(F~u~uF FFF4Or PWtFt"YPPPPvvvFt$^PPPPvvvFt(cPP6Yc$PPPvvvQ uGF4Os\vFP6YTRQ u;4Os4SFPP#$Q?u v SQ?"uv@;vT$ЈFFs"4OsFPvF%PP~]UFt;F"F<s@VvC"À tC ÀtC :ѱtA ]UF^wt 8@tphFw;7u]]U^G]U~]ñ ~U 5];r w;rUF^;v)G+)]U^=t G]U P/ ]U~t N]U~ r ~~w~`uF.v/ ]Ujsjv/ jv$]UF< r<vF<t< tF< r ^P/ F,P/ ]U^t P/ F]UFP/ v/ ]U P/ ]UQF^F8vp/ F]U&F^u7^uF^?r^?sFFPPvr Ts~u ^P^PP)T( ^Gr4Fj]UnTSFFF4TF7TvNBF:r*Ps=Fs4T4Tu|FN렊^㋇ F^S u SS<0s<9vS FS0:r<9w*Fa:rS.uFFFF2FS'u>S"udS<'u&S<0r<9vSS"uSSTTTQc>S,tX>S-u4TtS]u|5>S[u{*S< r<v FSS<@w , ؊]US<'u$S<'tSSTTTQ]ˠSSSSUQFS0:r<9w* S S,a FFsFSȴSVSSFSSFS<0r<9vSfw|Q]UFFS<r>S~uȴSȾSSFFr SPFPFPFPTPFPFFsFFrZ>SuUSPu+JVu@FsUڊ@FAFSSF)>Su"FSSFFFFFr^㍿FNu+JVuVV%r'vuFTT~ uT%~uT~uT ~ uT~sTF<+s <t<t<uTT^T7Ts~SS*u+J;uSS?u+JtCPSPFPFPPG~t:~w4^dsSSPTP;s TBzGv~uFi)~uFj~'u FSM^F~(uTF^FFTFTFTFTTF]UQ^^:u,^FFt!ȈF^H ʋ^ P:tܰ]U^FFFtȈFVʋ^@3ڋF1VFȹ1VuF6T^^=FguK؋ FFF%?FN<)tNF<w~F؋ F%?FVVN<*u@NF<wCF؋ F%?FFPvsFFu vvrFt{~+t!vvv v vvv s]^㋇ FF5T5T;Fw8vvv v vvFP s5TF^ 6TQ5TuFFF;r)N/F^F^F^ F$F^ ] U ^ ^㋇ FFF%?FN<#u9NF<wtF؋ F%?FFPvXrFuEvvDs8^ F^F^F^F$F^ ]U^㋇ Pv]UQ~+r,F^㊇@N:wA:v ^P~u ]NU*T,؍:TFT؍:TF^. ^G FT vv^^^G^G^Gs ^Gr<^Gs ^Gr(^Gs ^Gr^Gs ^Gs^G^G^G^G^G^G^G^GT vrvv^^)^G^GT vPvY r^F^GFvv^7DFVvv^wDFVF^FF^GTy vPvY r^F^GFvv^7FPDFVF^F^GT  Gr-Gr&Gr^GrGrGrGs|FPqPPF4Pr0^PP).T PP^t@Prb^%TT^P^w).Th^u$PP^t@Pr}Trp^P^w)TFPq PPvrvrm^7 TTT.TPPPr]^7 TTT^?r-PPPr\^%TTTkr6^t-^uPP PP^t@PsT"^t^?tsTrհ PP^t@PrT@^trPP^t@PrTPP^t@Pr^PP).TqPS^8Gt@PrTOFPqPP^t@PrTT8r ^PP ^P^w).TPP^t@PrTFPFP^G;Ft%PPPrϋ^PP)TFPFPFFV V^ÉFЉV^ uW VWF^G^+FFGFFttF=r=r*TGȴ8tPPPrFP~#tNPPPrlFPP)TTGTTFTTWP)6Ts5TPP)TT<w{TWP)ls]^%TTT.T5TTHHTTHHTTH^7 &TTTTGT^?t PP)TTT^G^ t^G^G TGTTFtȴ8uFFr PP)TTP6T)FsTT(TT8T ^?v FFFFPPvrB^Pvz^PP)^PP)EPPPs^t%PP^t@$PrTrɋ^P^w)^GFߚrFt<uF]~uFQ8Fu FFFC~u+TTt7uFFFF~ u FF݈Fvvvܚs$A PP)r*^tT^8Gu^O:ttFPqr^%TTTTTTTTGF F^F۱<:rT r }PWT؍:T TT]U^ ]U^ u^G ^G ^ u%^8G u^G Y^G ^G ^G ]U^G G G G]U TTN N?N#tBVVF ЉV+uIBX㋇ F9FtnF%?FN ;t~#tvFPPF"FFFFF(|%7Tlz F$FNsPvo vvv vvvFs ~s  FFsv~ F< tP +F< tP ; wv[ FtNF P  P P) vvv Fs FtFFs  Fv FPFNsPPo vvvvP vXAP F$P%F$u@FsFFF$Pvo Fr vvv 1vvv LCFsF# F  FFs5F t؋ P v vv ]P Su F t؋ P v vv ]P FJFsXDP _ XD<TvvP>Tu7jYTTPPP#$j>RrV P TPK] F$FߊF$?FF$Fu Fu/F8;Fޱ":u~uF<t<uF<~t~sF>FFFFtPPo vv߰Po vPo E P~ Fr  P~ v TSP mTSP vUFtFsF FFvvvvv vvvvP [ P ]U X~ƆrFHFuFPFPP#$FPP:Fs Ƃ*:Fu*FPȴ^:uƆsYt]UTSP (P F$P~ )P ]UF F.   1 T F FtN FF $FTsd.e F $Pvo eu | Fg Fp |Fy uF nF gF `F YF R^.  F /F (F !F F F F F v FFt؋ P ~u *~u# ~u. ~u: ~ u F P ~u[P ~u~u FPFP 1v F t"=v -P ^+P v~ ]P ]UQ~u FF4^㋟  t+Ju FFFTsBFs;js4v6Yc$TFTTYTTTPsv~ ]UQv F<rNsN<u +sF#v F< tP ^ ]UFPFPFF.P ~s+^-P v~ P vv) )P ]UTsBFFFFFYFPQ$P6YZ$Y"sFFFPK]UTsvP6j']UTs,P/ ]UTsv]UTsv/ ]UTsv]UTr]ˋTGTGȴ]UQ F FF]U>Tu >Tu >Tu P ]UQF$F<uF)~uF*FF]UF<t Ts]U]U Ȋ^:r"みTt^yX:FsFFuFXȊ^:r,みTt^yX*F㈇yX:XrXFuȠXxXyXFsƇXxX㋇6U8Uv~ +^]Uv FV RPv]U\FFv؃liujit^F ziPPFPPT=uav PFPLPF t^LJjiLJliTFNYNYY^T tPW^FVjiliF Ft$]UFFFv ؃liujitNs0vLj~Džzi jili^GF^F rF sFmmFrmFPFP^QPPvTFrm=u-F s&FP^QPPRPT t;>Tu4vPPFFsvPFF Ft] UFFv؃liujit^ GF^NQPQPPvT uvP^SPT>TuvPFPPT>Tu.^Fzi^FVjiliF FtD]Uv ^jili^zi F tPW]UQFXȊ^:r0㋇T;Fu^XsS^LJTFuċ]UQQFXȊ^:r4㋇T |u^XsS^LJTFu]U FV FV^ ㋏ziNQ^S^ SRPFP$F tPW] UQQF1X :vXFXȊ^:r*LJTF 6V^XyXF FuʊFs.FFw!ؿjili^LJziFuװXxX]U^ƇX]UQFFXȊ^:r.みTuFxX^yX:FwFxXFuƊxXXsSxXLJTxX]U^㋇TF^㋇6U8UFV^6V^FF }@PE$sFF FFVFFPvv^SP0jFV׋^;liu;jiv%jilivziRP T tPW^zi^SPvvFP$TT tPW^ƇX]UFFWPFP/ t@FFsOXvVJMu Fr ?Rs~ 򤠻XtX~򤠻X z 򤠻XFNvXRVRPRPQvF=uUFPFPRPPPPF u|FvXPFPFPRPPmmPF~uHFr6vXvVPPPPFP#FFr>vVJMtvV vVJMF]UQ^^~ vOrmPT t<^ V^ t^ ㋇xVV^vX tP FvX]U~ wGXmmP'T t!FFF w9F t ؊VFFuFF=v^ ㋟xV^^ VF t?^ù+ˋVVFF w؋xV;NvF)xVFu߸^ V㉇xVFFF w ^VxV;NvNFu؋^vVN^ FxVF^ V6vXvVPPPPFP$;Tt@tFFvX tP FvXF]UVOP PP]UQY t jFFw P Fu6Y&?t 6YSPYRP6Y]Uv ^jili]U6YFr 6YYvY&j]U]U.Y&(]U jv> ^YjjjXXXXXXXXXXjjjjYYPj"jɵYȴY]UQQ]UX ]UvFPP']UFPPP'vPP']U]UQ]U]U]Uvvu$]U>It=~uJi~uJ^~ t~ uJM~uJB~urJ7vQ$PvZ$Y"s(~u F<t<t<u6FFvFPFPFP,FVF Fu >RFFFFFNNNNNNFu+JtFFFPFPvvP$4Or"~ uFrjsFFVFV]Uv vFRP$]U>Iu5v Q$Pv Z$Y"s)F <t<t<t <t<)t<*u>RFFv F PFPFP,FVF FtTFFFFFF FFFFF~ sF~ +rFFFPFPvv  $]U>RFuFFF^&;FrgjP6Yc$F tRFF%F^&G$<u7FF@v~^Y^&G^&;FrF@>RF]UQFF;Ys@N;JvA"]U >Rs]U vFPFP4F tP|ks) PvP-︖ PFPPFrFV %FFFFFFFNQNQWPP$FV VFV %Fks& PvP PvPFVFVFFPFPPPP$>RrcFt[FV%FVFVFPFPPPP$>Rr%FtFV%~ >RFV ]U4Osv v vv^v v v]U(^^^F܃?u0 Y&FY&FvFP#4s=F^7FP#4s^7P4^^7FPFP4 t~t@Pvܚ4~tA"Y Fڋ^FF kFsLFs^Gh^G,FF~ Et+^St^GPF^SF kF F۱:s$FۊF,^ u6Y}4Ћ^G vv6Y4P$]U4OsIIFVJY&F& F^ G ЈF>R tG swFPw TrAFF⨀uFu $<w=F␋FFNu ^ +ыv4N;s;w&^ ;Fv^v HV;v+BFFFFFF~vn ~uF^ FVFVjj>js5>It.^ wT$r^ w7FPs^~uG^ G׉FVRPw 4P$FVFVjF1^ GF^ FF jFFjj%j^  us1^ G ‰F^ %F^ j^ Gjj%FF+jFFjF=w~u^F9v t F^>R^]UQ^  uG YFv vvvR$]U^  uv}4Ћ^ G F^ G v v vvP$]U>R^ tF<uY~uY~uYyFRr^Sv v FPFPFPFPv^w h $^FF tvPPv $~t^SvSv蚖 $Fr^ ?u~YFFFFwg ^&x tQ&FF^&@FFPF^&p^PvTsF ^&@^ Fu] UQQFt)P4svFP#4s PFY]Uv vv6Y$]U^  uv}4Ћ^ G F^ G v v vv $]U>R^  uIF<u ^ 7$`~u ^ YP~u ^ Y@^ 7v^ 7$,^ G <t<u!~u ^ ^  ^ ^ ^  tv FPv$^Fjs>Rr^Sv vFPFPFPFPv^ w h $^FF tvPPv $~tD?Rr&6Y&?u6j^SRPP0FvS^Sv $]UF^ ^ F^F^^]U>R:Y& j+ڋIډj:Y&)jjIjjjFjFFsxkrqFPFPdF tPW~ r}PPR <t6|iFPPmmPF tPWkGPF FV;piu;niw@Fs9ks_krXjrQaPPR <u6PF~ t'vvvvT u76Y&?t >R]FP$^FF1+ȉT%xX㋇UU+FVTT^^F ;TsTT)F Ns^ ~^ vTFTF FV6UFF>Rs[jrR>RFVF%VFsv ~N^v ~N^YFVFs0-Fsv ~N^v ~N^Y] UQ]Ujs P>R?Rs>Yuajs PFP9 $ t^&FjsPvPP'vPPY=ujs P6YPP' PRP;rbjs # PSSRRF^ GRRPFPQ#$js 6 PFR^ F FFY;liu;jir6YFRPPFjs G PF%FFN;vc+‰FF+ЉV^0^FF@ Y;liu;jisG6YF@RPPF^v0^~9Njs ` P>R>Rjs t P]UQQбFб FFFV^]UQQ^&F^&G F^]U ^w 4FPFPFP4F u>^8G u6N t ;tu^GR^ uWFV>RFr FV%vvv$^W FFs  k6!Fh  k F,Fr ksF F۴ u+Jt#^!F^FFFFFx  F۴u+Jt^t!F  kvFFD F۴u+JtP^S^7,FV- kvF=t^FF ЉFV F۴u+Jt^F <stFFVЋ]U*^74Fً^?u Y&FY&FFsFFFFFPFPP^7R$FPFPP^7R$FF^FFFPFPQ7R$FFFjs FFFFFF۱:s$FۊF,FNr F۴ u+Jt^!F^+ F۴u+Jt,%^FFx~u1^?u YXFs^܍GI^^@5~ u=^?uY!Fs^܍G^^@FF^ЉFV F^F<stFFV]U"krEk kk PPPFPP>RrF@vv޸P kPP kG ^PF kG ^PFN;ku]; kuW kG ^PF kG^PFFF~ uFFF)~ u  kG  kG ^FFFV]UFFFFN NN NNQvvPR$] UFNNVVVVVRVRPQR$F]Uv|]UF;JsJ&@t]UQv4sFvFP4sF]Uv4sP~FJ&@]U>Jt<^JH^;r(J&@t &@;Fu ^u˰]UQ>Jt+v4s vj4vFP#4sF]U"~t F#;tufFFFFNFVRVRQPP$>RrRrFF߱":u7F$F< tA< t@ ^F<t@~tA ^ ]U&4OsjrF +YF;Jv(FܱJF FށfWRPPNF+щV;r~7Nv~PF@RPPFV+ʋ^8v}4ssF #;uvP4FFFF %FFs?FFFFFNNFFVR^RWQP$>Rs^vF]UvFP#4r=Fs6FFF$FFFFNQNQWPP$>Rs F% u@]U~uFJ&xt@]UQ~t!F;Jr~ttvFP4s ]FF~vP^.7=QeFJ&@&FJ&@FJ&@]U 4OsQ~uNF;JsPj4FF FFFvFPFP4 tFs ~uF]U4OsLv FP4sFv ^P#4s t^sv U4s ^Sv FP4s EF%u+Jt㋇pE]UQQv TFvT2Fr8Fr v v Z^ ^;u^ G#F^#O;t2F ;FtFuPv c$PSvc$Y;Ȱt@]U4Os'fYF&9vP8F~tivFP-TsYFkFuLtHF$u@kF$F<t<u)FFFFks F FFVЋ]UFuFPTF ;FrKFFFFFFF%FVFV>RNRPvPT>RЈFN>R]UF u Pv-TvTFVkɱuA5sRPDPzPTFvvFP>PTF艆BBt(B:P-Ts?$<u F ;:rA<6>8A9F %6868RPvPT]U>R~ vn  ~ uF ^ Sv$Sv&T]UvTuu@]UPFP-Tr^^v^G]U4OsFF V;Iu;Iv>R>RsWyxX㋇UU+F VTN;sTT)FFP$6TTTF VFV ~tPvv PT u>R] UI~]UQFIIRPFPPTF]UQ u ^?t1>QtQQ uMFFFFrN^=u%^=P^PF^=È^F뿡Q t ؊FFF<r. \6lP^GP5lPuȡ1l3lPRYkOףzk|k_X׋>xk6tkzk|k RPPk \lh \l!^P,lu 6k \.lkH;.lr,l.(9Se6.lk&0a6.lk&p&0 \Xk&w&70 \F6.lk&p&0\,.llP \k&7Pc \ ")07>ELSZd l pddtx dq&dj0dcl\dUlNdGl@Dd9 d2l+t l$? dd lPsl\FFv\]UQ tEFQ t QINQQ^Q t2L# u&?u N<4< ^7p^t7pQ t kE>P^Ps\pPpP \ uF t&lkFs@YFFt FfkFFk tkPFPP#$FkkP\FFsFsFkkFkg\FF]UQQ \F u|Уzk|k6tk RPPkxkFPk6xkxt;1lP \5lF@FOv 5lF5lP P/ 뷸]UkkkkkkFkFkkPkP*P#$J>PkPPP'X>PkPPP'f>PkPPP't>PkPPP'>P6kPP'>P6kPP'>P6kPP'kk>P6kPP'(P/ kt@k-P/ 6kP P')P/ 6k\kNqkOq͈Pq<rLqNq1Lq;r&>PLqkPP'LquĠNqk kOqu:rkWkWP#$LqOqȊLq:ra؋kkkk>P6k6k\Lq؋kkk>P6kPP'LquPqu<rOqkkPkPPqP#$LqPqȊLq:ra؋kkkk>P6k6k\Lq؋kkk">P6kPP'Lqu]Uk t^;vkkkkkkk9kv"PkPPP .ktP 6kkPPP ]U>Qu]ˋQw7}\]U6zk|kh\rk uP6vkzk|k RPPkk;Fs#zk|kzk|k;ku;kv|k zkuFFvkN;t ;w҃Fvk0hklknkzk|k6vk RPPkzk|kǃF PFF;jkwUFk0/ FF=v5zk|kzk|k6vk RPPkFFu]Uvk=tP6kPkPrmPvkT]UQ6k6k#qPrk u5+qP#qPrk uFF:+qw+q/ Fu]UFPPP':P/ vPP']UvvPP]UvvPPP FVkk\]UvPP'Fs%~ v>PvP P')P/ ]UFPPP']U&l~w$l$lw&ll \ P/ $lu۸ P$l$lw)&l؊l_q< r<v.P6_q/ $luϸ)F&llP o$lFH$l;r&ll \ P/ $luًF$l>$lwP $lu P$lFH$l;r'&ll_q< r<v.P6_q/ $lu]UFs<*ltp< k?CRt"v vI6u6vl PFP;F uFPuPP#$>PFP;F tFPuPP#$>PFP;F t/FPuPP#$FFPuPP#$uuu .&PF&P6uPP' ?PFP;F t+FPqPP#$^&P6qPP'u>utWv&P6uPP'?PFP;F t)FPuPP#$&P6uPP'?PFP;F t)FPqPP#$&P6qPP'?PFP;F t)FPqPP#$&P6qPP'.?PFP;F t)FPqPP#$&P6qPP'@?PFP;F t(FPFPP#$&PvPP'N?PFP;F t)FPqPP#$'P6qPP'X?PFP;F t)FPqPP#$'P6qPP']?PFP;F tYFPFPP#$6'PFPPP'FFPFPP#$N'PFPPP'g?PFP;F tYFPFPP#$f'PFPPP'FFPFPP#$~'PFPPP's?PFP;F tYFPFPP#$'PFPPP'FFPFPP#$'PFPPP'?PFP;F tYFPFPP#$'PFPPP'FFPFPP#$'PFPPP'?PFP;F tZFPFPP#$'PFPPP'FFPFPP#$(PFPPP'?PFP;F uFPFP P#$&(PFF< w"B˴PPP' P/ Fu׸ FNQNQP#$&(PFF< w"B˴PPP' P/ Fu׸?PFP;F uFPFPP#$V(PFF<w"B˴PPP' P/ Fu׸FNQNQP#$V(PFF<w"B˴PPP' P/ Fu׃>ut7>v v0(P6uPP'(P6uPP'?PFP;F twFuHN;rfFPFPP#$~tF(PFPPP'?PFˈFFF:Fwr˚/ FuFFu?PFP;F t]FFHN;rLFPqPP#$(PFPPP'?P6qPP'FFu ]UFFq&ONFq&O)q&G*uFF(PFqHN;s(PFPPP'(PFPKpP%P \ uiFPFrP6l#$FP\Fg\FFFFPFrPlP#$Fu FtUFt ]UQ6u6vl )PpP%P \ uqP\Fg\]UFPPP':P/ vPP']U6u6vlqPPP#$qPFPP#$FF (PF Ft`pP%P \ tFPFrP6l#$FPKFP\Fg\qqWNQP#$6u6vlqqWNQP#$ )PF FtWpP%P \ uKFPqPP#$FPKFP\Fg\qFF롚]U4?PFP;FFF u0?P?PFP;F t0FFNQNQP#$?PvPP'?PFʹFFΈFπ~?vFPFPP#$[P/ vPP'@PFFF<w!rаPP' P/ Fu؍FPFPP#$FF<w!rаPP' P/ FuؚFFFͨu Ft8F?t ]U4@PFP;FFF u(@P3@PFP;F t0FFNQNQP#$@@PvPP'Q@PFʹFFΈFπ~?v*FPFPP#$~uvиPd P/ FӴPPd PFҴPPd P/ FԴPPd P/ FմPPP' PvذPP'vְPP' P/ F۴PPP' P/ FڴPPP' P/ vܰPP' P/ vްPP'FFFͨu FtF?t ]U,@PFP;FޱNV^^^^NV uFPFPP#$@PFP;F޸@P@PvذPP'@PvڰPP' P [P/ FqF8Grp/ Fu]P/ BPqwPP'5BPFF<w%qpPP' P/ FuԸJBPqwwPP_BPqwPP'tBPqw"w PPBPqw$PP'BPqw&PP'BPqw(PP'BPqw*PP'BPqw,PP'BPqw.PP'CPqG0PPP'CPqw3w1PPFs FۋqqFs ]Uqu{P/ qu[P/ qu

P/ ]UjFu6u6ulqqqqqqqq&uBqQQP#$qPqPP#$@*PX*PGuqq&G;qsqPFt@PFՈFֈF׀~v(FPFPP#$[ PF״PPP' ]PvްPP' P/ ~uFFNQNQP#$vްPP'FP FPFPP#$@PF״PPP' ]PvްPP' P/ ~u~uF׀FFFNQNQP#$vްPP'FFըu FFtF?t ]U*@PFP;FFNN u@PFPFPP#$APvPP'APEAPFP;FFFPFP P#$FشJ܃tu~uHNAPFشPPP'RAPFشrܰPP' P/ F뜊F؈F״F~u/F~?v"FPFPP#$UAPFٱNصPPP'XAPvܰPP' P/ vްPP' PvPP' P/ vPP'P vPP'P vPP' P/ vPP' P/ vPP' P/ F܃t tF@FFFרu FFtFt ]U[APFP;F u FFF*)PF~v8)PFPPP'(PvPP'pP%P \ uWFPFrP6l#$FP\Fg\lFFFu FtjFs ]UQQ6u6vl q&Gq uFB)PFqHN;s^)PFPPP'(P6qPP'pP%P \ uXqPFrP6l#$qP\Fg\lqFFu FtaFs ]UQQ6u6vlq&GqFf)PFuHN;rr~)PFPPP'(P6qPP'pP%P \ u;qP\Fg\Fs FFuFs ]U>v sFF>v saAgAPFP;F~uFFF)PFF:Fw|)PFȴPPP'(PvPP'pP&P \ uDFP\Fg\lFFs FFt|Fs ]Uv< v< t%>v sFF>v smAqAPFP;F~u&dFFFF)PFF:Fv)PFȴPPP'(PvPP'pP&P \ u}FPFrP6l#$FP\Fg\lFFs FFthFs dF0dFDdF^dFdF]UqqFqFqqPPP#$]Uvv6qqPDFVRP6qqPDFVRP6qqPDFVRP6qqPDFVP )P6qP P')P6qP P')P6qP P']U6u6ulqFq&uqPPP#$qPFPP#$NFF+q1F )PFF:FvFPFrPP#$qtMqqqqpP&P \ uBFP\Fg\ qqWNQP#$Ftk]U6u6ulqFq&uqPPP#$qPFPP#$NFF+q1F*PFF:FwlFPFtPPP#$qt7~t1pP$&P \ u:FP\Fg\ qqWNQP#$Fu]U&6u6ulq&G qq&uqFFFNFNN۸(*P>quHqPFrP5P#$quxAPq7PP'APFF<w&q@PPP' P/ FuӸAPqwPP'APqwPP'APqw PP'APqG FތFvvްPPAPqwPP'qGFP FP l BPqwPP'qG tXFFPFtPPP#$qt2  PP#$quqPKP q7PP'P qwPP'P qwPP' P'P/ qw/ 'P/ PqwPP'qGRPPDqrqqqP lqqGuGu<0uGu @*PX*Pq?u*PqqqPFtP P#$qPK P/ P/ q7PP' P/ qwwPP P/ qwwPP(P/ qwP P')P/ qqWqWP#$qtFuj]UH^G ^G FqG q t1^PFtPP#$F@F^J6qD ŸP ~twqtEqG^^PFP2P#$FFN;rr/ FuzFHFB^^PFtPP#$냋]U 6u6ulq&GqqF~t q&u *P*PFFq&;GvqPFrPP#$qPFPP#$q?totiqPKP q7PP' P/ qwPP'P qGPPP'FP lqFtG]U6u6ulrrqrq&uqQQP#$qPrPP#$ *P*Pzuqzu&9GsrPFrP_P#$q?u uturPK P/ P/ qGRPi P/ qGPV P/ qGPC P/ qGP0 P/ qG)Pr_zutE ]Uv ^*P ]U& D+P`+Pq&PP P' P q&GRPPDFVRPPFPDFVq&G RPPDFVRPPFPDFVq&GRPPDFVRPPFPDFVN~+N~N~FV+׉FVq&v&<wt.   %*/49>CHz+I+D+?+:+5+0+++&,!,,2,J, `,v,,P,Pq&GPP P'P q&u,,P,Pq&wPP',PvP P'kP/ -Pq&wPP',-PvP P'kP/ P-Pq&wPP'j-Pq&wPP'-PvP P'kP/ -Pq&w PP'-PvP P'kP/ -Pq&w P P'.Pq&wP P'.Pq&wP P'.Pq&wP P'.Pq&wP P'.Pq&wP P'.Pq&wP P'.Pq&wP P'/Pq&wP P'/Pq&PP P'8/Pq&G!PP P'R/Pq&G"PP P'l/Pq&G#PP P'/Pq&G$PPP'q&$u/q&$u//P/P]YZrRQUQ&rrs (rr@ (rr@&rr!r/r"r0r rs pP/ /P/PPP80P6(rPP'q&? v80Z0PM|0PAPs0Po0P"0P*1P&1PH1Pj1P$1P1P1P1P2P62PX2Pz2P2P2P2P3PS$3PGF3P|h3Pp3Pd3PX3PL3P@4P44P>(rt PPV4Px4P4P4P4P5P"5PD5Pvf5Pj5P^5P5P5P:6Po26P"T6Pv6P ]UrP&rPP#$6(rPP':P/ 6&rPP'r]UP6rPP 66rPP']U4Os/rr((rY&rף&r(r/r&rPvv#$]UP v}uPFs}uFH{u|u|u8{ur$؊}uPPP' P/ |uu]UP 2P}uP>}uP]U P/ FP}uPN|u|u;Fw( P/ |u㊇}uPPP'|uu]U6Pv v vv'~uhP/ )P/ ]U^wPP':P/ ^7PP']Ujsv PvK]U v&?CRt 6P76P6Pv&GPPPt6Pv&wP Pt7P"v&PP Pt6P"v&G PP Pt*7P"v&G!PP Pt7P"v&G"PP Pt 7Pv&G PP Pt<7P"v&G#PP Pt  PPP+ t]U FuQHT SPc$FPvc$FFFFF tFFFFFFFjsFF ;PvPP'~t@FPuPP#$FFPvPP#$)FNQvWP#$F* Pvc$uPvc$vPvc$vXQ4OrFPFPvᚽ tFPFPvvtFYu t=ZZu6N;v,s ;svsqFPvPP#$FNQvWP#$nFPP tFP64O P+ tFP4O"vP P+ tvsFPvPP#$vF;usFPPP+ tFPPP+ tF;utu ti=ZZtdN;w]s;rOFPP tFPP P+ tFP6v P+ tF;utvsFPvPP#$bZF]U"QHTFFNFFNjsNFnCPFP;F tFPFPP#$v&G 9Pv&wP Pt7Pv&GPP Pt8P"v&w P Pt 8Pv&w!P Pt8Pv&G#PP Pt8Pv&G)PP Pt9Pv&G*PP Pt9Pv&G+PP Pt9Pv&G,PP Pt.8P"v&wP Pt<8P"v&wP Pt9P"v&wP Ptr9Pv&G&PP PtP8P"v&wP Pt8Pv&G'PP Ptr8Pv&G(PP Pt>v uNV9Pv&G PP Ptd9Pv&G PP Pt9Pv&G PP Pt8Pv&G-PP PtZ8Pv&G.PP Ptd8Pv&G/PP Pt"v&? t8Pv&G0PP Pt8Pv&G1PP Pt8Pv&G2PP Pt8Pv&G3PP Pt9Pv&G4PP Pt9P"v&wP Pt9P"v&wP Pt9Pv&w5P Pt :P"v&wP Pt:P"v&wP Pt :P"v&wP Pt>v t6:Pv&GPP PtD:Pv&GPP PtR:Pv&GPP Pt`:Pv&GPP Ptn:Pv&GPP Pt|:Pv&GPP Pt>v wJ:Pv&PP Pt:Pv&GPP Pt:Pv&GPP Pt:Pv&GPP Ptv< t<u:Pv&GPP Pt:Pv&wP Pt:Pv&wP Pt:Pv&w P Ptv< t<uE:Pv&wP Pt;Pv&wP Pt;Pv&wP PtN;Pv&GPP Pt>v uN$;Pv&GPP Pt.;Pv&GPP Pt>;Pv&GPP Pt]U\;PIP PuFuFFFFFFPFPP#$FPuPP#$Q>uut;PFF<w*uPP'hP/ P/ FuϡuQY;P6uP P';P6uPP'@ PuFuFFF PFPltuFuFFPFPP#$FFPkPP#$vt;PvP>utuu6u$]UjXXFsvX^PXPP#$vXXPXPP#$XXXXuXXP v)XXWNQP#$~u>vtn~u>vt~uF":uvNFrG^PXPP#$XPXPP#$XXXXv)XvXPlt P/ PF P/ P XXXPlt P/ PF4OsXPFPP#$~uvj]UQ^ P P/ ^ PFPP#$vPP'Fs;P^2C^ ;uuPuPP#$;P^ ^ W]UQ^ I)FFF<w^ QSP+ tFu^PP t^ PPP+ t]UQQFF<wMVCvc$FP vPP';P^2CFuv^ v^ G^ PP t^   ~tLwCPFP;F t-FPFPP#$FFFPuPP#$>uteuFjsFFPuPP#$jsn ;PXQFPFPvޚ t>uuF;usFPPP+ tFPPP+ tF;FtNFPP tFPP P+ tFP6v P+ tF;utvsFPvPP#$낍FPPP+ tFPPP+ t]U4Oseu @uuu|uHuuuvL v vTvvPvDvvv`cu@uuu|uHuuuvL v vTvvPvDvvv`uFNNVuuuvuuPPP#$uP"vS0P#$uuvuuPPP#$uPvS?P#$v&GuuPvS8P#$"v&v&G u&G!vuu vuuPPP#$uPPP#$uuuv&?CRu=&G)u&G*u&G&u>v uv&G u&G utF]UQ8tFF;uw1uPvPP#$vtFPPtuFuċ]UuFFFFQQ u tًNQNQQFF~u8tg~u"F;uwTuu vuuPPP#$uPPP#$FuuPvPQ#$vt vv욢ttF6u$FslF lFtFpdF dF dF>v vdFlFlFlFlFt lF>vtdF lF>v udF>v u dF dFt]UF>0wtP ]U~u]U؎^]U ^&G :wt5SvEFysxFތ;u;u PFF0^SFPyF u^SvEFw^&O ]UFPFP"LV^&?{t@&?[uP6@w:xt. FPQSVSVQ^[Y=Xt ],N~] t&<FPsOFrH^&^&G^&GP^&G^&G^&G^&G^&GA^&G6y yuPPyP/F uy&G ^ &:Gw^ &Gy@ FF^ &G^&^&G^&G^&G^&G^&G^&G^&G^&G^&8G uA^&O^&8G u@^&G^ &GA^&G^ &G^&G]Uv&D yuyP  u$>yty&Gyy>yt>yt]ð]U6yP6yP$ u%6y66yP u6y=t=!t3]U^ &G :wtWSvvnw^ &G ^ SvvFNs=u8^ SFP~u#w^ &G ^ &dt@Fsw률w^ &G F]U,^ &G :xr^ &G :wtw&G 9Fu9Fu^ &G&WFV^ &G&W;Vu;Fw3&G^ &O^ &O^ &O&W;Vu;Ns.^ &r &G&;Gwe^ &G &W"N~;u;wL&wщFVN;u;s&+O &"N։~؋F^ &G-sSF u^ &G-sG<PFP,F^ &G-FVFVF%Ff^ &G^ &G^ &GNV^ &O &W"^ SPFPFPF u5F^ &G^ &G :wt :xt^ SP F tt&^&] ]U^&G :xw):xuy&G t&G uF&G &G 3  ]U^&G 6^ &duww^ &G ^ S^SFw^ &G F]U^&G :xr^&G :wt:xu^&G&G &W"^&&Wc^&G :wuX&r&G&;Gv &G&W^&G&G &W"^&&W^&G s7&G s/^&/&_!^&G :kxu^&&G ]U^&^ &&W^&G :wt ^SF uk^&G;s]@1V&G&G &"F~&w8&XSv^&pWPG<P^&w:,F t@^&G-F]U^&GFrF@1V^&G&G &W"FV&G-sG<PFP,F^&G-3^&w8v&XSv^&pvvFP#FNVF׉NV~u t%^&9Wu&9Or&O&WFF t ^&Gv^&@F&Z&W^&GFV^&G &W"^&G&W;Vu;FYvF&GF^&G8^&G^&G&W&+G &W"FVF&G^&uFF]UQ^&G :wt SvY 6^&duww^&G ^SvY Fw^&G F]U^&G :wt :xt^&G&G &W"FV&9Wu&9Gw&G&W^&G&9G*s&G*FP&t@"FP(DF u^&uS[F t^&w8&S^&w&w"&w G<P^&w: ,F t@^&G-^&G &W"&G4&W6^&G&G.^&F&G0Z&W2^Sv(DF Yu0^&w8PGPP ^&G :wu ]U^&G :wt@&& tA"F&G :wuC&duw ^&duw&G ^&G-sS&G :wu0G<PFP,1^&G :wt:wt:xt ^G<PFP,FF^&w:FPl u ~u~uߊFs^&w8PGPP FF^&w8 F^&w:)F^&G F u F uF]UQF :r10^&Fr^&0FFF 10^v&F@]U vvFPF^SvP}F^&:F@F^PvPXFF^&:F@F^PvP0FF]U^&<{t<[tFFF^&^&?{u>}N u+JV s\tWNAv~^YF@^&^v&48D ^& ~]N u+JVuF HN;v9@N +^vp^~&=9^YF@N +^&CFP F u^&O@wA^~&=9^Y^&G@^&^v&48 D^&v&4^P^&wg&we^&^v&48 D^&]U ^vFF^&F^&G^vNFY^&Gw^ &Gj^&GyF^&^vNFYFP F uQ^&G@^&^&O@wA^^Y^&Ƈ^&Ƈ^PF uI^ &k]u+JBV^ GkPRPPP^SPDPP] U^&G F =wmt =amtI~]Nu+JV^SBRPPFPQ؍GPQF!t=uF~^&Gi^GePF9FvF^kvNFYF^&^S^Sv^SFP[F uF~u;^SvRPPRPF=u^v&xF^&Gi뾋F u9^SFPvRQWv PvF u x^&G ]UQQDs ^&G^&G8FvP^ GP7PF   sFr^&G^&u2F ^&~ t^ &?uxPPP^ Sv ,c>zu!zFPF u ~ rzz zuPPzP/F t^&GFz&8G w ]FzX ^Fv&DF&GF&GF&GF^&GF&GF&GF&GF&G F&8G uANsNQPPF t FFF ;Fw FrF9F w^ &FF^&O&@^&G^&w FA:r xzF u+J|zu4-^ &Gxz6|zxz&xzxz^&Z&Wvz] UPP^ S^S<]U P P^ S^S ]UPP^ S^S]U^SFPF u:RPvvv^GPF HPFPF u F^&] U~ u#^SPFPF=4t=4uFFF t EF^~uUF~uJ^SPPFPPFPF u~u~uF0* V*Ѷ‰F^&GF&ONVrЉV;wF9FrHF^&wFFv&0^^F^Svv^GP^&P^ Sv ^S]Ul^SPFPF=4t=4uJ~t EF^^&G F s4)^&w FFFFFF FFNF;w^&V@F!:tV;v(&:uFr^ ~& G~9~ wFrFFrJvv^ vPFPvv^SF +Pv^SnF t^^&FF s^ v&!FF9FvV N;v^&^ &FAN;wFFNNFF9NvI^&<1r=<9w9,0FF-FrF<*t<0uFFBF<*uzFtN~Fu+JVF;t%t VBA1^&F FBaF~ uFF#F:FtFF^ v&Fv9v vF9F v ^ &F^&F]U.~ԾDF^ SPFPF=4t=4u&~t EF^^&w FFvvFPF t^&^&:FuB~u ~uF"~ u ~uF~ rFF^ SvF^&G:Fu^S^SvFO^&G:Fu'~uFF :w^S^Sv*^&G:Fu^S^SvFu^&G:Fu^ SvFx^&G :Fu^S^SvF:^&G :Fu^S^SvF^&G:Fu^S^SvFPv^&G:FuN^ SvFPFPP^SF uz^& tp^ S^S^SvNQPK^&G:Fu^S^Svv^Sv +FF^ S^SDPPFPv^Sv F]U Fs^&N;v&^&PȴFY^&~ u ^&0=F t9Nt1 10^&F 1F N^v& NFu^0&8@u^&݃~ u5F0F+FF^&*u+JVu-9FF tȹ 10vRF 1F NڋF9Fw)^&^S^SPv ^Sv]FF;FsFF^&F tHvJ^&NFUFsFF9F vM^&;vA9Fv<&xAu^S^ &0^PPF^ v&^&F^&;Fv^&N;v9Nv~^& F^&*u+JVu^S^S^SP^ Sv (N F;w8^&^S^S^SP^ SQ^SvF^&]FNF;sD9Fv?^&xAu^S^ &0^PPF^ v&^&F벋F@^&;rv&xAu1F9F v49Fv/^S^ &0^PPFFϋF9F v9FwC^ &^&FU9Fu^&?*u N^ &^&~u ~t@k~u2F^&N*u9Fv^v&8*u N^ &FFFHN;rN^vPF+P^PF+P^ PFPsvNF^ &FFOFu~?uK~t^ &^GPFHP^GPFHP^ GPFPs\F@^&~FF@F9Fv ^&FF;Ft F<*tCrashdump.sys[sys]ExtCrashdump.sysEnter Case?Invalid CaseVNLN[LPT] LPT echo ONOFF LF LNLFLNLF " !  #  B XXX   % Exiting Debugger DA Debugger (File Mode) Stopped at in task in process Recording ... Recording complete. II020E01 .<(+ & !$*); -/  |, _>? `:#@ =" abcdefghi jklmnopqr ~stuvwxyz {ABCDEFGHI }JKLMNOPQR \ STUVWXYZ 0123456789 [sys]Debugger3.2.help process count remaining *Conditional offset =  Cannot open help file, error Request code not found RC Exch LSC NetInfo SrpInfo Request code not found PatchArea POVLYZONE [Symbols ON] OFF] STATICSDESCII020E00 ( sgTss/pid cs:ip busy OS PCBs are non-existent Processes id oPcb cs ip st pr tss ldt ss sp ds exch sgU user partitionsaU user partition Run Queue | Exchanges Messages Processes |Empty Press CODE-K To Deactivate DebuggerII021E01 Pattern found Lower: Upper: Pattern: iSn sn base limit ar p iSn sn sn : ra wc ar p286 tss availldt286 tss busy286 call gatetask gate286 intrpt gate286 trap gate386 tss avail386 tss busy386 call gate386 intrpt gate386 trap gateinvalid typedata, expand up, expand down, read only, writablecode, non conforming, conforming, execute only, readable, not present, not accessed - undefined LDTiopl= GDT IDT LDTPress NEXT PAGE, SCROLL UP or CANCELLALCLDLBHAHCHDHBXAXCXDXBPSPBISIDSESCSSSDPILFRPBCBDDL2S2P1S1P0S0PKLRTSMTSME0B1BSRTDSFSGXAXCXDXBPSPBISIDPILF2P1P0P0R1R2R3R0R1R2R3R4R5R6R7R6R7R+ 8<DII020D02ECDTIKEEEEEEHEJDEDDDCCCCLLLLLLLLLLLLLLLF_EEELCCDDDDEDDDLLLLLRLRRRRRRLLRRRRprmluvnntqok\]]^]]]]]sshqv`a}Nyw~xOzxp Expanding wildcard ... BYTE PTR [ WORD PTR [ DWORD PTR [ QWORD PTR [ TBYTE PTR [EM  -> -> ILLEGALEBX][ESIEBX][EDIEBP][ESIEBP][EDIESIEDIEBPEBXBX][SIBX][DIBP][SIBP][DISIDIBPBXSS: (ALAXEAXII020C02 I/O ERROR 301 [scr]DbgSoftKeys.bin YXj !%)-159=AEIMQUY_djoty %+17;?CIOSY^cgkosw{ %,29>CHMRW^ekry~ "(/5:?BFJOUZ^bfjnrw{  %*/49>CG $)*-278;?BFJOTUX]bcfkpqtx{ %(+.14;@DFKPSVZ^behknqtx|  %'+/0369<?BEHKNQSVX+JQV_3. djl %EWbt B"qEuzp@@@@AA+a!D@@@@AACCCCCCCC.6a666"7efDE E  E  E #@#B#D#F  ` #H  G D    D D #J#LQD#N#PDQDD#R#T#V#X++#)Z)^)l)p)v)z)~)'E'''((A(A(F (((((R(R((#")b)))##D+++,D,,##HH  QBCDEHIJKLOPSTUXY{}\]^_`ahijklmnopqrstuvR~BCDEHIJKLOPSTUXY{}Q~BOP}wxN~BOP}yzNwx~BPO}STUXY{{~BDP}wxN|BDP}yzNwx|BPD}STUXY{CSTUXY{CSTUXY{DEHIJKSTUXY{CBOP}LDEHIJK~wx~BOP}STUXY{DEHIJKLh_ijoklmnpqrstuv\^]`aC{CDEHIJKSTUXY{BOP}CSTUXY{F~}~HDEIJKDEHIJKCSTUXY{HIDEJKCSTUXY{CDEHIJKSTUXY{BOP}BOP}CDEHIJKSTUXY{BOP}DEHIJKHIDEJKCSTUXY{R~DEHIJKSTUXY{BOP}CRSTUXY{DEHIJKBOP}CRBOP}CHIDEJKCDEHIJKSTUXY{BOP}DEHIJKCSTUXY{BOP}KWVBOP}BOP}HIBOP}JBOP}JBOP}CDEHIJKSTUXY{BOP}STUXYEDKJIHDEJKIDEIJKH)*II021C04 File is READ ONLY Press GO to make the file WRITABLE, another key to deny ...file is now WRITABLE Memory reference is past end of file Press GO to extend the file, another keyHHfffHfffH fffffff%ef%%ef%$ fffffff$ fffffff Mf  Mf NfNfZZXXfZ$%]%%*bf*d*f*h*jfffffffffYffY Y f !Y!!f!"Y"""f#Y#ffZZffffffffZfffffff*tfff##$Y$ffffZZWWfZ%f&]&f^ffffZZWf*Wf$ffffffZf&\&ffffffff f *L**L* + f *L**L* + Lffffff LL S ((f(21h000(1h11ff.(/h///(0 ##22ffD2#ffffffffffffffffffffffff     f 4L4 3344ff55-5m53fL3f,'-g---'.g..ffffffffffDffffffffff)ILLEGALADDPUSHPOPORADCSBBANDES:DAASUBCS:DASXORSS:AAACMPDS:AASINCDECPUSHAPOPABOUNDIMULINSBINSWOUTSBOUTSWJOJNOJBJAEJEJNEJBEJAJSJNSJPEJPOJLJGEJLEJGTESTXCHGMOVLEANOPCBWCWDCALLWAITPUSHFPOPFSAHFLAHFMOVSBMOVSWCMPSBCMPSWSTOSBSTOSWLODSBLODSWSCASBSCASWRETLESLDSENTERLEAVEINTDEBUGINTOIRETROLRORRCLRCRSHLSHRSARAAMAADXLATBFADDFMULFCOMFCOMPFSUBFSUBRFDIVFDIVRFLDFSTFSTPFXCHFFREEFIADDFIMULFICOMFICOMPFISUBFISUBRFIDIVFIDIVRFILDFISTFISTPFADDPFMULPFSUBPFSUBRPFDIVPFDIVRPFNOPFCHSFABSFTSTFXAMFLD1FLDL2TFLDL2EFLDPIFLDLG2FLDLN2FLDZF2XM1FYL2XFPTANFPATANFXTRACTFDECSTPFINCSTPFPREMFYL2XP1FSQRTFRNDINTFSCALEFENIFDISIFCLEXFINITFCOMPPFLDENVFLDCWFSTENVFSTCWFRSTORFSAVEFSTSWFBLDFBSTPLOOPNELOOPELOOPJCXZINOUTJMPLOCKREPNZREPZHLTCMCNOTNEGMULDIVIDIVCLCSTCCLISTICLDSTDBYTEWORDDWORDFARNEARQWORDTBYTEPTRJNAEJNBJZJNZJNAJNBEJPJNPJNGEJNLJNGJNLELOOPZLOOPNZCLTSLSLLARLLDTLMSWLTRSMSWSLDTSTRVERRVERWLGDTLIDTSGDTSIDTARPLFS:GS:0ggggggay@g'c7}gz~ggbggwtg`ژ{g (n6ggٜed&>.grgg٤ggog٦֞ޫgg٭lggsgguvHgֈ/g?pxq8٧ggٚgg|mQR~ -Q~ wxyzBPO}4N+Z{=|{=|:9w:9x:9<;y<;z<;BP<D}=N C82C545L27w4x442>L>h_ijo4k$l"m!n'pq~#r%s2~tuv)\4~4^] `.a~2C48F ~F}4N}4N~FH~1~280~/~8~44420~/~C3~ R~2~ ~24CR24C R4C0/C?24284KW6V6640~&4~0J~04J4(44,4STUXYEDKJIH/I1H  !"####$%&'((((()*++++++,,,,,,,------....../0000122222234456778888999999::::::;<=>?@ABCDEFGHIJKLMNOPQRSSSSSSSSSSSSSTTTTUUUUUUUVWXYZ[\\\\\]]]]]]^^^^^^^__````aaaaaaabbbbbbbbbbbbbccccddddeeeeeeeeeeeeeffffgggggghhiiiijkkkkkklmnooooooppppppqqqqrstuvwxxxxxxyyyyyyzzzz{|}}}}~  to deny ...extending file -> FetchByVlSwappedOut -> calling GetPrAscb -> fh = -> fnRunFile = STATICSDESC -> fetched vlRgOd -> fetched RgOd -> fetched overlay page -> moved to buffer -> NXM return PaFromLa-> sgTss=, f386= PaFromLa dir/page =/    E  %&' "$&(* (,048<@DHLPT $` X\(,048<@D $    ?Cannot convert to multiple-process modeNot enough memoryCannot deactivate debuggerBreakpoint already setPattern not foundExpected string parameter not foundExpected segmented address parameter not foundAddress must not be in an overlayToo many parametersNot allowed when interrupts are disabledNot enough parametersSystem error encountered while opening symbol fileNot a symbol fileNo such commandNot implementedInvalid memory referenceToo many breakpointsRadix must be between 2 and 16Expected numeric parameter not foundNo such breakpointCannot proceedNo bounds setHistogrammer onBucket size must be multiple of 16No dataLower bound is greater than upperExpected parameter(s) not foundPatch area offset too largeCannot set PR: value must be valid TSS selector or PCB numberBuckets must require less than 64kCannot read symbol filePartition swapped out87 chip not initializedCannot store keystrokes - table fullCannot access file $AscbType CdtType XBlockType BootBlockType rqTimeType TimerIntRqType T0CtlBlkType RcbTypeDctType IobCommType LcbTypeVHBTYPEDCBTYPE RS422 Misc Info  nXBufSysgen  nXBufCnf  sXBufSysGen  sXbMaxCnf  nT0QBlk   nusernumoffset  nusernumallocated  nwsUserNum  nBootLast  Line  rgflineEn[0]  rgflineEn[1]  rgcMaxRqBlk[0]  rgcMaxRqBlk[1]  rgcTimeDelay[0]  rgcTimeDelay[1]  rgfSrpClock[0]  rgfSrpClock[1]  CommDone[0]  CommDone[1]  AckIn[0]  AckIn[1]  AckOut[0]  AckOut[1]  rgnowsline[0]  rgnowsline[1]   UserName[ rgWsId[ XBlocks XBlk[] =  Timer Request Blocks  Timer PseudoInterrupt Blocks  T0 Blocks T0Blk[ Request Control Blocks  Rcb[ Drop Control Table  Dct[ Line I/O Buffers  Iob[ Line Control Blocks  Lcb[HD =  CYL = SECTOR = Boot Block Volume Home Blocks  Device Control Blocks  I/O Control Blocks  File Control Blocks  FabChain Devnum Usercnt mode FhNum 1 Fab  User File Blocks  oFcb User Status File Name ( User Control Blocks  Addr Node Volume Directory Password PreFix G Scb Configuration Block  WsType  Standalone Cluster Mini-Cluster Cluster Master B21-1 B21-2 thru B21-3 B21-4 thru B21-6 NGen cluster NGen  NGen Master File Processor Terminal Processor Cluster Processor Storage Processor Disk Processor Invalid WsType OsType   Swapping Resident saMinLL  OS MEMORY = ! saCurrLL  SYSTEM SERVICE MEMORY = ! saCurrSL  saMaxSL  AVAILABLE MEMORY = ! saMemMax  TOTAL MEMORY = ! cPcb  cExch  cLinkBlk  cLinkBlkRes  vfAllowDirSlashes  fLfsToMster  cTrb  cIob   cFcb  cVhb  cUcb  cUfb  SystemBuildType  ClusterConfiguration  fNoFileSystem  fCommIop  fMultipartition  Multiple  RUEFALSE Application System Control Block # Cpu Description Table  Not XE Hardware Error: System status code: Divide by zero error Invalid opcode error Coprocessor not present Segment not present Overflow error Bounds check error/=1=H=_=y===SUVScatScbAscbCdtSysGenBootBlkMiscDctVHBxBlkDCBLIobIOBRcbTimersFCBUFBIoTraceLCBUCBpScatHelpHelp sCntInfo RtCode nReqPbCb nRespPbCb userNum exchResp ercRet rqCode  CntInfo ReqPb ReqCb RespPb RespCb (nXBufsXbMax rgNoWsLinenXBufsXbMaxnT0QBlknusernumoffsetnusernumallocated wsusernumlast nBootLastLine rgflineEn rgcMaxRqBlk rgcTimeDelay rgfSrpClockCommDoneAckInAckOutrgsbwsusernamVirtual Single Partition System Common Address Table  [240] pSysTime  [242] saDGroup  [244] pCdt  [244] pVcb  [248] pRgSysError  [24C] pOPcbRun   [250] pParamBlk  [254] pVersionNo  [258] pIvWord  [25C] pDSWord  [260] pComIntRet  [264] pMsgWaitCount  [268] pMsgWaitFree  [26C] pMsgWaitReserve  [270] pORgInfoIKey  [274] poRgExchg  [278] pORgMsgWait  [27C] pORgODcb  [280] pORgOFcb  [284] pORgOUcb  [288] pORgOVhb   [28C] pORgPcb  [290] pORgPTiming  [294] pRgRqExchgSys  [298] pRgRqExchgUsr  [29C] pRunQ  [2A0] pSaSemiHighest  [2A4] pSaSemiLowest  [2A8] pSaTempHighest  [2AC] pSaTempLowest  [2B0] pSaEndMemory  [2B4] pBootBlock  [2B8] pBootDevName  [2BC] pCrashFileDevName  [2C0] pHdcCntlBlk  [2C4] pFloppyCntlBlk   [2C8] pConfiguration  [2CC] pIoErrorLog  [2D0] pPerformance  [2D4] pSysDeviceNum  [2D8] pRgLocalServiceCodeSys  [2DC] pRgLocalServiceCodeUsr  [2E0] pContingencyLog  [2E4] pExtCntlRegAWS  [2E8] pbGraphicsPort  [2EC] pFontRamBuf  [2F0] pHdwState  [2F4] Reserved  [2F8] pRgpVidMemLine  [2FC] pExScat Sysgen Parameters are invalidSysgen Parameters %SET(hardwaretype, Ctosp, nGDTSlots, wsType, fhDisks, fNoFileSystem, clusterConfig, fCommIop, sOsData, cParSCHeap, fMulPar, fVarPar, sParExitRunFile, fTimeSliceEnable, lbTimeSlicePriority, hbTimeSlicePriority, LineHz, nFrames, nPartitions, nPcb, nSysExchange, nUsrExchange, nMsgWait, nMsgWaitReserve, nUcb, nRcb, nSwapFabs, nNetUsers, nUserNum, sioClock, MaxErrorCount, MaxTimeOutCount, TimeOutTicks, TeleclusterTiming, fDebugger, nXBlock, nSectorPerXBlock, sContingencylog, sOutBuffer, maxMedInterruptType, nWsLine1, nWsLine2, nWsTotal, nWsUserNum, nPTiming, sMaxSmallRq, nXBlockSmall, nUnMax, fVerifyFileStruct, nIob, nFcb, nFab, nVhb, nWinch, nUcb, nFub, sOsData, sPTW0Buf, sPTW1Buf, sPTW2Buf, sPTW3Buf, sTPInBuf, sTPOutBuf, nYblk, nSectorsPerYblk, nZblk, sZblk, nMountedDisks, nReqEnts, nRespEnts, sStatArea, sTermArea, sLineArea, sRouteArea, nLine, fSrpClock1, fSrpClock2, nAdapters, CrashDump Analyzer Crash Status: Fatal Error in process Current Process: fProcess: Version: <= <=BPStack for process IntStack Crash Occurred on:  Invalid bin file: [sys]Structures.bin Error: File not found. Disk Error. Reading:  Not found. ? Not Implemented. T e] rgwsId] hDiskLogHDiskLog hDiskLogIndex HDiskLogIndex = Cyl Cmd Sector #sectors ] iotracebufIoTraceLog IoTraceIndex IoTraceIndex = Cyl Hd Sec # U LFA Rq RW FH User iErrorLogErrorLogError Log ierrorLog[0] ierrorLog[1] Line 0 Line 1 [ MonCurrPosMonitor Array MonCurrPos Line Time Write Read ioStatus State oDct oLcb MonArray [] [] T0BlkrgIobrgIobLcbrgLcb Chain Filler ResponseExchange ercRet requestCode pRq oFcb oDcb remainingXferCnt memoryWordAddr fileLfa ioXferCnt ioLfa setRetryCnt retrycnt  cylinder head sector numsectors fInProcess ECC 1R0RLSPBIDXDISSEXCSDXBXAPISCLFPSSSRP    fProcessfProcessIntStack[KBD][VID][sys]LptConfig.SysPress NEXT PAGE or SCROLL UP to continueC(Press NEXT PAGE to continueC[!Scr]$$.Tmp[!Scr][scr]<$>BsFilter.tmpVNVF        !a?!*a2Q=\z  !!!!"."@"d"""""#;#M#]#m######$$$B$J$l$$$$ %!%7%O%t%TD aAdDhHmMnNoOsStTwWyY!oo!/!0d!/!0y! !hh!:!0m!!2AA!!*o!/!0d!/!0y! !*h!:!0m!!2*A!"!Nnn! !dd!, !yyyy! !hh!:!0m! !2AA!"!Nnn! !*d!, !yyyy! !*h!:!0m! !2*A!(!Www! !Nnn! !dd!, !yyyy! !hh!:!0m! !2AA!(!Www! !Nnn! !*d!, !yyyy! !*h!:!0m! !2*A! !0t!:!0m! !*t!:!0m!!hh!:!0m! !2AA!!*h!:!0m! !2*A!!0o!/!0d!/!0y!!*o!/!*d!/!0y!!0h!:!0m!:!0s!!0t!:!0m!:!0s!.tmp!W*w! !N*n! !*d!, !*y!!N*n! !*d!, !*y!"!0o!/!0d!/!0y!-!0h!:!0m!:!0s!!2*A!!Nnn! !*d!, !yyyy!Invalid Template Index"A`#4DTdxTN00sundaymondaytuesday wednesdaythursdayfridaysaturdayjanuaryfebruarymarchaprilmayjunejulyaugust septemberoctobernovemberdecemberampmnoonmidnight05 invalid namesunmontuewedthufrisatjanfebmaraprmayjunjulaugsepoctnovdecampmnm05 %0:BLU_fmrx~ #(-27;?BEI{II-3.2.0    !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~   "+,-./:;=?[\]_`{|}~S lpp [sys]Structures.bin&[sys]Debugger3.2_RequestNames.binv&vHvvFrv&vHvvFrFtFrFrFtFtFrv&vHvv[Kbd]<[Vid]L[Lpt][Nul]|[SysIn][SysOut]>!#1%)$*N7  D  D  a<tltB.\B\B.\|Z|t D ~S t | \;\6t [KBD][VID]>yy  mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm LIBRARY: ctos.lib VERSION: 12.0.0 (friday april 6, 1990, 21:02) LIBRARY: ctostoolkit.lib VERSION: 12.0.0 (friday april 6, 1990, 21:29) LIBRARY: debugger.lib VERSION: II-3.2.0 (monday april 9, 1990, 14:57) COPYRIGHT 1980, 1989 CONVERGENT INCORPORATED. ALL RIGHTS RESERVED. COPYRIGHT 1980, 1989 UNISYS CORPORATION. ALL RIGHTS RESERVED. THIS SOFTWARE IS PROPRIETARY TO CONVERGENT INC. AND UNISYS CORP. AND IS NOT TO BE REPRODUCED, USED OR DISCLOSED EXCEPT IN ACCORDANCE WITH PROGRAM LICENSE OR UPON WRITTEN AUTHORIZATION OF THE PATENT DIVISION OF UNISYS CORPORATION. THIS PROGRAM IS FURNISHED UNDER A LICENSE RESTRICTING ITS USE SOLELY FOR THE OPERATION OF A DESIGNATED COMPUTER FOR A PARTICULAR PURPOSE. TITLE TO AND OWNERSHIP OF THE PROGRAM, INCLUDING ITS SOURCE CODE, SHALL AT ALL TIMES REMAIN IN THE NAMES OF UNISYS CORPORATION AND CONVERGENT INCORPORATED. VERSION: II-3.2.0 (monday april 9, 1990, 14:56)ay march 7, 1990, 12:19)$JOB SysInit $RUN [Sys]NLSService.Run $END mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm  mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm  mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm! mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm! mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm" mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm" mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm# mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm# mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm$ mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm$ mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm% mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm% mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmMfd.sys Crashdump.sys%Cluster OS Diskette 1 of 6 (B25COS-1) Install.jcl Install.ctrl Install.cmdsfileheaders.sysLog.sys SysImage.sys BadBlk.sys fdSys.Version& > 03440-1/6ɋlόl-B29|M^SysUnisys9{/[fileheaders.sysgeologySystltltlZZ Mfd.sysgeologySysulululLog.sysgeologySysvlvlvlw SysImage.sysgeologySyswlwlwlR BadBlk.sysgeologySysxlxlxl&  Install.jclgeologySys njlˌlˌlJL( Crashdump.sysgeologySysylylyl%Cluster OS Diskette 1 of 6 (B25COS-1)geologySyslll fdSys.VersiongeologySyslll EnhancedDebugFile.rungeologyUnisys "lll12, SysInit.jclgeologyUnisys  lll08C B24Clstr.rungeologyUnisys  lllW$ v1Sys.fontgeologyUnisys "lll@@'  Install.ctrlgeologySyšlΌlΌl:sV Install.cmdsgeologySysΌlьlьl>)k(j'i&h%g$f' ^#e"d!c ba`_( ]\ [ !Z!"Y"#X#$W$%V%&( U&'T'(S()R)*Q*+P+, |,)  SysInit.jcl B24Clstr.run EnhancedDebugFile.run v1Sys.font GWB]m  'bB"Copyright 1989 Unisys Corporation. All rights reserved.Ver v1Clstr-II-3.2.0 Linker 12.0.0TX\`dhlptx|  $(,04<@DHLPTX\`dhlptx|  $(,048<@DHLPTX\`dhlptx|  t|i':dF`e E     W  gHg`gggg-g6gggg3"&*.26>BFJNRVDRa'  = .;L  3% ` 3555 "&*.26:>A2AA RRRRRRRRRRRRRRRR&RRR R9RuRRRR^RvRRe"3M #Xm        OIWI_IIIII.I\IIIII III-II2 I: IB I\ Id Il I} I I I I4 IH I  '8(7(L({((((~("(*(Q(d((((((( (4(I(^(( ($ ( ( ( ( (? ( ( ( ( ( ( ( ( (" (> (m ( (e((((n(((G(8<H<:<B<J<e<m<u<<,<a<x<<<<< <:<<<A<<<<<!<)<1<<<; <B <V < < < < < <# <d <q < < <0ER1xQkw%>L :R CiCCC/C@C^CCCCCCCC~C|CCCCC "Q.*7tASOAp        4 : P  R  .  S   . B _   ~  7   9 z    S \ |  "b vb b 9b b ub b b D b ^ b c b \ b b b b b b b b tx|  A  v   L  ` u      H g  $ ) 2 I  - X   ? c     s  O v> 1> ug g g w Cw aw w w w w w C 5   E P ^ t     , R w      4 T / ) 5 p$ p$ p$ p$ p$ p$ p$ p$2 p$ p$ p$ p$ p$;S%S%S%7S%?S%pS%S%S% S%$C&FC&C&C&N&N&+N&8N&EN&RN&bN&N&>f&f&f&f&Bf&Of&\f&if&B&)&&3&@&Z&l&&$&KG c ! 5 }   Q    Y Fr~\3@M.=L[jy /> ASe}y`(FAFGFYF_FFFF F$FPFyFFFFFFFF2F\FiFFFFFFFF1Fz z}zzzzz-zZz_zzz z9zVzzzzzzp z z z& zg z z z zF zV zf z XXXXX XXX:XvXX`XXXXXyXXXXXXXX!X)X $(5IjyPiW =B\  V    . S   4    I    ?  &5G! !)HPX dV*FiNTpvGQGGRRPRw>wwwwRVgIo*1 aMfMM:MYMM<MUM^MjMMMMRMMMM5MKMiMpM}M3MXMM*MMMM "&*.26:>BFJNfjnr>MYex)09B Rn*3EV|?DSdp4Kj$coedeeeeee eeee%H\{8!5i}Ae~        """ &&&*** ...222 666::: >>>B" "BBFJNRVZ^bf###!#%#)#5#9#=#A#E#d(K)P)U)Z)_)d)i)n)s)x)})))))))))̃Ճރ烥  $(,048<@DHLPTX\`„Єބ L8L_LDLL5LLLLL+L<L4!8a!a!c!n!y!!!!!>!X!!!J!!!1!U!!!!5!!!+!0!!܉䉥艥""9"G"|"""""B"+B"nB"^K"fK"|K"2S"DS"QS"nS"{S"S"S"S"S"S" S""S"4S"MS"nS"S"S"S"S"S"S"S"S"S"+S"BS"OS"\S"S"S"8S"KS"[S"fS"tS"S"S"S"S"S"&*.2"""":> $(,048<@DHLPTX """"""""5":"]"b"""""" "6"?"f"""(#;(#(#(#-g#bg#g#g#g#g#g#g#g#g# g#3g#=g#Tg#]g#sg#{g#g#g#g#g#g#b#,#:#K#\#m#{####V######)##M#Y#^#c#o########## #E#\######v########$#X######:#c# #$##0#3#T#̊-p$@p$gp$p$p$p$p$p$p$p$p$p$p$Ap$Np$Vp$p$p$sp$p$p$p$#p$Ep$- p$* * ( 3]p ]#loG 39Du\tl>^\Q] ^NVSRQ^n>tt6h;6lu DuPSS UlWgo]]Pw ؃> u ,u 9> t2u u"ذ > u u"︰hR# tGtozu.>Fuf>v;6vt}lWgt]_Z^Y[X6ltL| t3؋6lt|Lt 󥸰z3>~>N>v 󥸰zw6v tڎ3&&5 u;6vtƋ6v4 uLPS[QVRWU&>tu-&t&>l&U&e&&. QP&I&IQP&I&IPS[QVRWU&>tu-&t&>l&U&e&&. QP&I&IQP&I&I؃> u ,u 6> t/u uذ > u u6E u u ˍSPE[&/6E u u : ˍSPE[&/6E u u > ˍSPE[&/6E  u u ˍSPE[&/UF]U츰 &]Uvv3]2 u u  ˍ2؎2&/[^U츰ց .sB ! [ZZZ^] u>tt"t>lUeߎ׋&. uPVR˚U3vv^ U3v^ %&w&%tV6P4;6r^u6Xa U3v^ AN&G&G 2=rЀ;sĜ&(^ &o u! U3v^ &u 6lD&G&G&G 2=rЀ;sĜ0&Ĝ&(^ u#uP&G #u N#&G&_ X?uI u 拄 &3G2&2 u, 拄 &3G2 &3u  &G;>=s=t6PQ=t4&G!&w;6L=sEF* ! >Q=u &G t uu;6>=r6$ 3 Dud ( tvH( &_;L=sEFd3dWG38tt;6`t)t#SlG[ uG39tˇ\p &G܉\p &W;L=sEF؋Dw&&L3GG OO6h8Lwh8Lw֋4v7p 7hzSW3TB &w&su &ty&_ &?[to&?{u&y}t_&}t2&}t\I;6L=sIX=R3 t6ގ;et+?u,&G =lou&G =cau &G ?u&G =mau&G =stu&G =eru΀>Q=u͹ t&TB :tOu3 U3v;6>=sDUn t66$ 3 t-G&FG&Fdd+ "]_Z^Y[X[^փ渰s& |+r s&W#P&>tu &lG@tw  OOh6h t 8Lw֋4v7ËlgËwd<@v<@w*ĴGdv U&T&d P&t&4&t&t&t&t&t&t&t&t&t <=" Gtҋ]ð&D uGSlGe[G&D VwَwN^&DG Wgҋ&D<tO]3ÊF l3^ ;pv;v ]F" <=;Gu!wtW*֊v GtQY3qPRX-SUu^ &?u&h:][ZX3&HF &G F &Gӻ&H&W> t3X&&6 &G &GZ&G &t &tPw U츰&l U츰&l&3^&]U3&P^&GU츰~ t ~ t $.&v #u#&;7~# &^&3] ˸PQR3E$ ` O33EZYX˻4BU^&HB@&G]^ xuF 3~tmv u NOv &Q^ AuGGFh:^ 'u"5tOh4;6lt t8Lr7 ;" r ;$ w3ø'þh9t4 u3҇ ËF R#3.lw;6ptV;6ru OVS^>i#t3uFg#UPP6c#FPYZ]kJuAjtP iFe#.lwtJiFr#.e#rw#>i#t16c#HWPbdPP >i#tlw3S.>i#uVi#>e#tSL=KxiFtSSl_S[UPP6c#FPYZ]HWubdtPw Pw ..>i#uCi#>g#t@L=uFiFL=uFg#e#Q6c#kJPAjPY Pw Uvt33uF)g#3iF)e#u=t>i#t6c#HWPbdP3]U<=" F9Gu QSSg_*ggF uP[Y]U F@FN؎&wF#F;L=wDZ=^t1FF+F;<=s" P;Vu@uFvF]FU؋^;V=s^9Fu[>Z=G=tF3ȋ:O:O:O!:O"Ћ_ۋ:O:Oп^u3Њ"u]#+"عr&#۸&#\UPv u ^&6#&]&#ZиUP P uӚ &9F3:F&9F본U^ r+u1@r+s%3&v&&D3] s &# &ğp#&Ÿ&4$&^&#&#뤸U8$~ u 8$F ~ u F ~ u&l&_&QF^ &#v  tR^ &#&#ȋ^ &>Z=&&&G&&38$ t3&G  U^EFtB>d13FlG F3ɊPB6LB&n1VQRu PH=td1P t =!tPw ZY^ɋ^>Z=9Ou^EFt-]U~r VF F#&^FF%Fv#&;s^&#;t]Uظ Pv uAFrgvPlw FP3PPFP;grFf]؋ߋD.]_Z^Yo&>h$P&6f$&>h$&\ &T$&D.P&6Z$&6X$&mPSQVRWUB&T*u0%&\ &T$&6f$&&6f$ u4&T(8&&t$t&p$ t u"]_Z^Y[X&`$&b$&d$P6`$6d$6b$ u 6f$T(8˚w &>h$P&6f$&>h$&\ &T$S&]&6f$&T(8ˋW$0(3U^]6G69Gw6GUvF~ F ;uV^ :t3]U3ҋN t 3^ I3&\F t?PF.&FN FuFF uNF@uNF #F^&]U~ ruv P/F t>]Ft?QFtG4FN V.&& ʋF% u@""&.&Fs]UF tF0.&@,;Ft1~s#. &rFtt r w+ 6x'cZ'&w 6x'6x'FFZ'&G]UQQ^SvFP^ F uhFr$vBV~r~r&v^Sv^ SvD/)FrvCv^Sv^ SvT$Sv]U$F0؃Bt n~s^&G&O;t% t! t~s^&t&u^&GsA|~!r`^&Gr&Gr&GsV^&G s~ r*^ &G ~"u ^&G!s~ r ^ &G C~s^&G&;Gt=PPFPF u^&GF&GF~s;&GR&GT&Gr&Gt&G &G&G &Gr$~sFFr wFFN^9FN FsT^&Gt QWP^&u N&&ߋN&& &&r$U~sQ^&wFPs$vPv^&wFPr@vPv>]UP~[$<t03 &P&R&T&V&X&Z$]U>$u $ue^&>t&>uCC&uI&"tB&O"&w &&&|ߋ=>u=~u =u]UvVvF44^]VUv vFPX]2^VUv vF4]2^#Pw XuUFZ'&GSA]UQFF9Fv0^ &^&:tQ%P^v&0Y:tFFȸ] UF\'uZ'T']$6Z'@F$Fs FfFV^ğ$$v&T'Z'&GFT'9Ft-Ĵr Z'&G#U'<u>T=uZ'&G!Z'S>T'Fć~'''~''UoR*s+****^*PX*^*R*`*`*!6`**PX**s *~***&G*s*&  u& v&Gr*s?X*>X*t6^**PX*P*N*L**L*PX**& uR*&  u R*&G*s0*s8RP*L*PX*6^**PX**SX*Uh*f*l*j*D]UPPv*PX*v*&?Ȱu@*s*PPX* z*|**sV * *v*& u*7PP*P X*>*u* *  **URX**sQPPPPPX*]UQf*&n*p*j*&f*&Z&W* *' *X*X**6*&RX* tF~r6*&RX* t~u]*e>*u ~wFFĀ>*u ~u3F뱀~u!>*u**z*]UQ*rWROERX* uF~r *' *X*X*6*&RX* uh *'*&G  *X*X*6*&RX* uU*":t_ *'*&G 5 *X*X*6*&RX* u *":t#6*&RX* uq>*u}>*t^>*uD *' *X*X*6*&RX* u/6*&RX* u>*uFF>*t **&G **]UQFFsr6^**PF~*:*u *Q~*㊇$**%**~*~*<v~**u F:*u F:*t:*uF뇸]U **㈇$* *숇%*$*":t *&*s**<v*6^*"*PX*]UFF^F**^*R*P*N*L*2*L*PX****~*RZ**s *&G8RL*PX*Z* tP ]UQU'<t #Pw Z'&Gx'&&O$u u Z=G 6x'Z=FFu P5FRG"s&x'9FtZ'&G = t t +P5Z'& u&G x'T'./LXiZ'&_SZ'&w&_SZ'&w&_SZ'&w"6x'kZ'&w 6x'ZZ'&w &w&w6x'A:sZ'& ~uF+P, 1F tu$v^&w&G$P&G$t@P,Fݢt$Np$tv"FVp$ ~s&G F Gv^&G& Gu@P~rv^&G& Gu@P~s FF#F;r ;wNV FFFFrFFF;Fv0B^^,uvF;FtFFwU^&Hs&@^&Z&P-vF^&Z&PS^&@_[&@Z&PFu^&^&G Z&W"F&G,~s S)~s ^S F tu ^S Ft~u F FFF^ &s9R&Or&G~ rS&G&G< r@<w<&G4^㋇v &D&D<&D &D &D&D]Uv v/F u.F r v F r w>~ s~t=ov Pv6T~ sP~wP~uFF~wۋFs"vFPrv vvnFuZ~t@SF 0؍BF^~ uE$F*E$F*Fv vvv,]UQvv/F tF0LJBNPFX#FF u^9Fv9Bu 9BuG9(Cu)9XCu#9Du9Eu98Eu9hEu 9EuG9Cu)9Cu#9Cu9Du9HDu9xDu 9DuG@]U>Z'& r)Z'& vF Z'&GF܌FފFsIFFڃwfZ'&@"vڈBs @$vZ'&@BBFu*FFڃwBZ'&@BBFu۸FFFZ'&w FPPFPPD$SvqFփ>uF F uJFs@FFڃw3Z'&@"sv&G 0&H؉BBFuŸ]UQ~rIvv/F=uF0؃Bu F uvvF>uF F]U~txFFwk0؋F9BuVvPPFF0؍BF^~w P)~w ^S F tu ^S Fu]UF0؍BF^~s*FFw.\$^&Z&PFu.~s*FFw|L/^&Z&PFu_F tu*FFwEP/^&Z&PFu(FFwT/^&Z&PFu^&_ &G"FsIR&O$r&G&> u T&G(RF%FR^&O(T&G*(^㋇v&D$&D&<&D(\&D*F^&G.]U F u&&N=s66P 66v 1FF u v v拔6vFPI> vFPI> ]U~ &Nu+JVuFF~ >Nu+JBVu~ ]Nu+JBVNF+ȃs8v0NF+ȃu^ &80tF+Ft9vN^ &u+JVt}F1^&v^ &8Pu]v&81u vN&,0^&;r- -v^ &82u vN& ,0^&;rlvFev^ &8CuVv&8TuJvN&81u ^& vN^ &82u)^&Er^&tt r w<] U^&^&< w؋;F u ^&u۰]UQF FNs؊* N*^*$V ˆ*^㋗|^*]UQ~ u5E$Vp ¢EF F F*s<3E$Vp ¢EF F F*sF]UFr vP~uE;~uEp.~uFs!EEN  EE EN~uE;~uE0.~ uFs!EEN EEE]UQFr vg~u&ER~u&EE~u&EE$ 0EF#N "EEu&EE Ee~u&ER~u&EE~ u&EE$ 0EF#N"EEu&EEE]UQ/&PPPF uT/&LJ&&&u&1/&&&PPP1F tP]UQ/&8t&&&&& t PF uN/&&&9u&9v&RPF u!/&PPPF tP /&]UQ/&FF]UQ^ &^SvF uiFuQ^&?uHS[F uN^&8u&<^&?2uF,^ &^&?1u/PFFt /&F] U/&&;s&&&;u&;r/& /SP/&&FPF upF/&&&&&&N~;u;v F%&/&LJ /6/&&^&/&]U  /&GF/&&FV&FPzF u 2PmFPFN /&ON/, * aPIPIPIe+,Pt** fF0h+*1wi+Z+*@*e+;u9**.F0h+tZ+e+P+** t-]UQFPI]UQFP$I]UQFPI]U6 ,,P>,uP,Sۿ+6,F,&G+ PFğ^F^&,+NF<v Pw  ,.`D (Y,\;+u(,rPI ,(,-(,. ,(,&,t&,l(,F<tPI(,^.*2EPI(,&, >&,t(,, ,D=;u ,&G$6xt Pw 6F@6+@ЋP+FFv;vu;Fuv;FtF@F;r,&G&NV&&]UQ8FuFFFs PF u v F]UQ/&r P7F u*/&LJ/&F /&/&]U/&&׉NV&9u&9s+f&&&&&RPF u@/& /SP/&&FP:FNV/&&]U^*㋇ *Ģ*/**F**PMPFP*]UF *F *F**F*P] UF *F *F**F* P]] UF*FV** P<]UF* P(]UF*FV **F**F *F***#P]UF*FV **F**F *F***$P]Ui+^+`+>Z+uFb+b+PR+PP]UPIvIPI]U>*uS*=t=u **+]á*= t& t"+**+s>,Ģ?,]*]á**]UF tPw ]UPI]UPI]UQQ*@*N+t 6*>> F]U6*>> O+t0,s)l,;n,t$6*n,-PI> n,@%n,*,P+]U>+u* #;u++&**= ti+&@&H+;u&* tPIPIPI>+u+sPIPIPI]U*F+rIu+JVt tu+F+]+>+u>+t>+t ++?>+u(+@":t++F+F߰++++++F++u+JVt+F+_+u+JVt ++++$ @+8+uFF**+++ȴ&@*vJI~u$F++<(w>*t:++-+~uF~uF~uFF+^㋇*F+ F~tuP+P+P+P+PP4 N+sFF:+sĊ,rh,C#;j,t+6h,,+,Fh,,F븊F$F<vF^.1vv+P+P+P+PP4 +sfFF:+s?,r7h,C#;j,t+6h,,+,Fh,,F븠,ra,6 ,r,PL>,F*uZ+9Fe+h+*+>*u **t- x-~-BMZ+W ^Z+Ff+0h+*u*PIPIPIZ+P뵰PIPIPI- yHN;v=Q+NI^Vp_9v+NIVp_96NVЋPX+FFءA&,S^UQ%-Pv,PF uPv,PF~uPvF~u5,&ć,,,&ć,,,&ć,,%-F]U 6,FP t^& t& u,&G ^&w 恼,u,&G ,^&+G ;v&Gc,+^&G ^&G ;,tg&G ^& u&G ^&GFF^&_ #㋏,^&^&ONF^&O #؊Y-^&^S6 ,^S ]U,u,,FY-F,]U6\(,=+t@$-s]6,,&)-\;,u]6,6)-,&u,&",", &,,&"u@,\,]UQQ^.gooPvFP, uF^& ;;]U$-r_,&rR&@#F&;t7&F,&,&F,&,&@#F& ,&Ƈ]U~,>,t,+-b-a-c-]UQ~,;rUF`"tLVd-Ve-c-^^Q؊Pa-^b-]UF,,F~,]UQQ.-,,u+JtVFF<wE؊NȠf-"ˆFg-"ڈ^2ttN PIvIFuf-g-]U,& PI,&$ PI]U6,FP uL^& u1&G r &G;\u^&_^FF&^S6 ,^S뢋]U,j,9h,u;؊,N,N@%j, t$-r,&,&,FF$,F$t@FFF,;,tP,,,<:,u*F,->,t,>,t ,,,FX =:,u@>,t9FFsvcP{,&Ƈ,&,&G>,?u F*-,,-rFr ,:--toFNr--#,--6,FP uL^& u1&G r &G;\u^&_^F,&^S6 ,^S뢊FrW<:,uN,&Ƈ;s P,P6\Z=^G\FF61^Sa,;,t,=:,u,z,s,8,tq,k$-rE<:,u<,&u0Fs`,Т,s ,&,,& 7=:,u0>,t)Fs ,,a>,t,>,t,FrF,&,,N<uF,PFP? FFsFz>,t ^ F(Fs>,u,,^ FF,>,u:>,u3,&&p6,v,$:--u--FFrb;sE'-Ns(-(-r,&t vv효(FsmP,P^'-sFr '-(-F,&u/Fs36,%$-r&>,tP,,,vv효(]U,&:Ftv[ (F,&,&Ƈ]U,&&,&ƇFs,,&"u@,]Uh,j,,i>P=u> tPI]U,&GFF,& 5uF ,&G F,F 8FtP,&&;t@,&^&,6,&& N:t,&@#F&멊FF,&&;uFF<w<sF^. Fud,&@#F&O>a-t!Ft 6d- P(a-d-^&',&s,b&Ƈ Ft&,Z,&Ƈ,,&G,S]UF`>+ u+F+FtAN= t@ r6,FP u0^&G;+uF&G^S6 ,^S뾠%-s,Fs%P+;\t@FPg>+tv[ (%-s),&s&ƇF,&G,S>+ uP,S ,SFs6+>+ t@P]U,,<v*%-,<t"6+(, t,ry=*ut%-s",&s,p,s,YK+FF,. sg}33# (_*-s*-,^4,,&Z&,,,&Ƈ>+u6,S,S,S,S6F6a-6d-6e-6$-6 a- (+;\tT,&sGPP>9$-&-B2"s PP*,S,Ps P,S~,Ps9+-s+-+c-sb-a-&-s$-&-s,,$-r,&s6,&| u2V,S,S,S6F6a-6d-6e-6$-6 a- (,&^&- PMvڍFPF܋]U/&ć///&t6/&&D&L.&W&T.&T&D&D 6.&G &D FF&DZ&T&D/&Y./&Z&/SM/&Ƈ/&G]U 6..P.&G/;L=rF/*^@"rF*P6//PF=+tF tPw /&ć ///&ć../&ć;6.u;.u</&u &ƇJ/&t Pw /&ć..3.&w 抌 N6/&up,s .&GY.&_  F< v Pw ^._sPl/&u Pw /&u.&G`S/&Ƈ/&t.& tF/&Ƈ/&ƇE/&s.&_S^Fu.&GFF/&u&^S1Ft^&:/u +%F:,tAN< s@,&tB" sF:rV.-,,u+Ju^F+r f-Ff-+;\uw(p+s^,&F,^,& F ,+;\uYT6++;\t@P>+s,\ٰ^&G^&G,&^&붠+,&v,&s&^&,&ƇR,aJ>+mv,;+Xᣊ,,,%6,,S>+u$+;,td,,&G,S]U>*u{PI+s&uPIPIPI+s$&uPIPIPI.j-* >*r*]UQFtFFF FF]UF;FrF]U,r,6 ,r,PPz]U.sFu+&&0v P(F P P(]U.sFu&&0v P(i]UF tPw ]U.r.I:.<.<]UQ.r.I:.<.<]U졌--<.+:.㋇---PPy]UP<.+:.؍-PPS]UQ^ F&9Gr_&Op-r-^ &ON.P.v>p-^YFN.&^ &G u~NF>.^ &G^ &GN.&F] UF t]&O;-ulNs&G%^SPF t/^&OF&OZ&WF P&Wv<Y.^&G--RQP FP&Wv<] UQF t&O;\uVN t^ &GF&GZ&WY^ &G--^ S^Sv<F^ SPF P&W^Sv@<FF]U(b.& tFFۈFܱN&WVF#FFFr2FFFЉFVFF^NFP P#F؉FFډF^PP v؍FPPF u%F!vr2SPRPFPF~tR.R.=wr2&&&R.u&&&&&&&&&&&&&G&&&G&&&G&&&G&&T.T. w&& t<T.ub.& t&G &&:tFF]U- t(J.L.J.&G uFJ.&GZ&W F--]UQQb.&G j.u+JVug.<P!  . C h ,,@b.& u2X.P.PPRPPrmPV.,,b.& uX.P.P{b.& uX.P~.Pab.&G E-,u+JVt X.P.-b.&G .-,u+JVt'X.P.PPRPPrmPV.V.>V.u 6X.yV. t=u 6X.PV.b.&G b.&_ ^.`.,&b.&G>* u b.&G>*uq>j-uj.rc.PI+s&uPIPIPI+s$&uPIPIPIb.&G vt>j- t &O;D.tS>. tb.&O;D.u &G>.]b.&GQb.&G&Wj- tb.&O;D.uSv2SP<b.S<b.&Gb.&_N.P.&>* u b.&G>v2j-j->*ub.&G>.>*t u~<<>.=t=u<b.&G l-n-b.&O>v2^Yb.&Gj-\D.RQ-Sv2SP@<j->>.u>*t~-x-v-t-.Lb.&G-.RQ-SP<<b.& uII:.t<}.vb.&w b.&Gab.&G-.RQ-SP<<>.<\D.RP-Sv2SP@<j- b.&G]Ut-t-PPPb.PPb.&w <r b.&Gb.&G tƒtSU.~ԹFF؍FP FҊFFF. /&Ƈ/&u.&w FP^SKF t ?~u뗊FsK^&?1u /&Ƈ^&?2u(6.&t FP^SKF tF_F[y/&tm^StFu1/&uN~_u%P2P)F u*P^&7)F~uP^&7)F~t~?w.&G /&6/P/&u!PFPPKFu ?F/&.&.&..&O&.aPw V?.&wA.&G6/&t1.&G &/&u FF]F.&GSUQ/&tF/&Ƈ/&6/PF]UhU'< t #Pw $F$N$N$N u Z=G vZ=FFu #P5FRFRGF^&GF΋F̉FFʉFƌFȋ&FƋFG sv;$FFF$F*%F"F#V$F&F(F (*F,F.FF0F2F4FFP FF tP5> (GWt P5 (Fttt P5(FRO N؋6FL szO +ONڱF(FsFF;Fs P5F(FsFF;Fs+F(R)G F؋R+G ^&G~w\RG 6=P>(t P5>$(t^&?t P5 F^&RG +G;Fs P5FF u;vNFFF)FR)G ~wRG 6=;4 s4 RG ;GsFRG FFFFF$F*%F"F#F$FPv&F(FF*F,FF.FF0F2F4FFP FF u!v(PksF'FFF"(FF(F~u FF@(Fv^S6 (F (>(tGF(H;Fr9F^&GF^&Fv^S^&7tF^&FFu~t>>(uFF<(FF>(H;FrjF^&GF^&F^&FFFu Pv)PaF#;u F%Pvv&Z&TFFu> u$^SR (RG ~w RG 6=FG r ~rvHF҃uF(~(Fv^S6(NFF> (tv^S6&(2FFFFFFFF҉FFPF uFF" @;FtF@F;<=r^&GF‹RGFĸP^SPPFRO"s'P^&ğSDPFP^&ğSv&SDPF" X^FFF" @ ;FtFFF" @F" X^FFG sRG"s ^&ƇFG RG ^&GRG2F؋RG ~wFأ6=Fҹ;t Pv5]UFNNF~t0F^&&G&G&G&G&G &G &GFNFʃ~t@]UQF>=HN;rP8u NFFuٸ]U~ uv^&FF]UFFFF%FFFF]U F FNN#;u &P5~t~r&F%F؉FFN/F%N F~!vNF%V+‰F^]UQQF1+ЉVF10PF1X‰F^]UQQF1+ЉVF1PF1X‰F^]UFV>]UV>]!:DPw U. ^F F FF~w~^&9u0F/^ &S^SP5uV^&ssJF/9^&9u?F#/^ &S^SP5u^&@sF/^&e^&?u|F^^&FF*^&@!seF/^ &S^SP5u^&ssF#/^&9F/^ &S^SP5u(^&@sF/^&F^ &Z&W]U6U'<t #Pw PPPF tP5T'.FV {S^Z'&t* T;V=u !P5Z'& r $P5VRFR t[NrT؊O6Z'&T;u6GP&\SR5u Z'&t "P5 RFFRRZ'&u~u &G$FZ=FFt!F@F;V=r Pw vZ=ЋFډFT*^RFVF؋FZ=_FFZ'&G<us &G sPZ'&u &G #$u Z=G 6$Z=FFR$v%F tP5> (GWt P5 (tttt P5>${u9$w$F (>$N((FRO +O;sFNs66 r O +O;s Pw "RGG>$w2=4= P56$$9FuEFRGF^&GF>$(t F^&^&F^&G^&GFG Fu$F;$u F;V=r #P5vZ=Fu #P5FRGs%9RGs4^9Fu*FRGF^&GF^&G&P5F<=HN;r" H;NuHFuנR=r vPg $FZ=FRGGvrv;RG^9FtFROF&Z=_FGPv^wwZ'&_SZ'&w&w^GF uFVGF^F^GF^GF^Z'&_^FFjZ'&G s;V=r|Z'&w Z=Fu_FRGr]FGVFFF t2RO:LuDPGPQ5uFҋ^ԋFTRGFN uVG;Fv FF^F t؋FG~uiZ=_FFR9uQO؉ORG^G ^tvD;Gt(G^GG ^F9GsG ^GFRRGRGRGRGRGRG RG RGRGVRFZ'&G& G u&u &GFR tANr:؊O6Z'&T;uGP&\ SR5uFËRR븃>Ru $P5FZ=GFFt;Rt%F@F;FBv Pw ֋vZ=Z'&_^FF&@Z'&G s;V=r Z'&G FZ=FuFGFRGsRGs8FRONF܋RGF^&GF^&G&P5FF;<=s" H;NuHF۸PFQP=Z'&wZ=Fu0FRGr=Z'&G RGeZ'&wZ=FuFRGsRt )P5Z'&G RGZ'&w PbZ'& u&wZ'&w Z=FFuvFRu (P5Z'&_^F6RD&]Z'&v P5Z'& u&wZ'&G ;V=r Z'&w Z=FFuFRFRGFZ'&_.  ( F*R^^J^&FF:^&GFF)^&GFF0R^̌^΍F̉F^FZ'&G;FsFZ'&vNFYZ'&uF&_^F&^&G-P5P5#P5%P5 P5]UvX=P'GP'GP'GP'GRvZ=^R^GFRGF RGFr~u RG"RG"FsFFF0FRO"s8@1 PE[ö‹Fƒ‰FF1FRGRGGF RG F RG FRGRvNFRGRGRGNRO!FNN~N^&^&GN^&ORO"r^&O^&G^&F^&^&^&^&^&RGFF.F^&Z&^&FF^&Z&FF^&Z&FF^&Z&V РE·ÉFF^&Z&FFF^&Z&FFF^&Z&F ^&ĿF^&Z&^&ćFF6 FYFFFN ȠEFFFN EFv~^Y^&G]˸&l&GUF&Z=&]U P &&G&]U츰Fȸ*&^&G&8@u'XSGS-P5=u &^&GG`/P&6^/&>`/&\ &T$S&]&6^/ˋW(@P0 3/ N^&N^&ďNFRO!s ~}OR!u^OB^O]^&1&Ŀȸ^&G^&G P^&GF^&GF^&G^ꈇQFFFvꈜ9F]UFF$F*%F F"F#N$F>&F>(F (*F,F.FF0F2F4FFPM6*%FP F]U~u~u8=6=vZ=FRG G v v>P=uF;2u)RPf FУ2222>0=uVFFwI؋E;Nu7vщEEELJENE":uEFuFFFvxtMv;Fu.v~Av~FFF뤋vЋPFF<=HN;s" P;Vut^G^G^G^Gы^OW ^G Fr:^_^ t'F^G ux^G^x^FFtaF>=HN;rc$ ^tDGFGFF t1؋O;NuG^G^F^ԋFF؋FuFhhFF t1؋O;NuG^G^F^ԋFF؋vg>P=tT'Fu]UhU'< t #Pw F$x'$VX$}t]=t9>x'u Z=G 6x'Z=F^u P5^RRG"sx'9Ft +P5FFFT't.sVFF^&^&?tF6$P;x'u >=;$wF6$P$$ F^?uS$VX$FFFtF~uFFsRG $;r+;FsF1RG +G;FsFRF)G Fs(FV&V&6RL +&O7FsRG +$V&V&RG V&G>x'vV&G6=RG ;4 r4 $VXFr>Vu#FsVuVXR;G tF;$FFFtFFsRG +X+;NsFRFG RG 9G vG >x'vRG 6=6 s>x'uFS$VX$FFFtFFs#RG$;r ++;NsFnRG +G;FsFWFsRG+$V&V&RGV&GRFG>x'w RG4=RG;2 w 2 6 s>x'uF $VX$FFFtFVXFFr>Vu%FsVuNFȋR;Ou9GvFn RF)G>x'vZ RG4=M 6 s>x'uF7 $VXRG +GV&RGG >x'w4=6=$VXRG V&GV& 6 s>x'uF RGG>x'w2=4=F $VXRG +GV& PRwVXV&76XVX$V&GO$S6$VGPPNPN$V&$S6$VP P'$V&VROXPRwCVXV&76X-VXVGOPV&GOP$S6$VPV&P$S6$V&$&]ˡ$F=rF $s2v$j&Z&P6x'$SF±PBF;Hr F F¹$؉II$I$sz~FڌF܋FܱFډFPF¹Y+ȋvf&HF¹`N؁vf&^x'd/>$Etw ؀9Fm >x'tF T;V=u !P5T6TZ=F^tTV=;Tw۸Pw СT*^FZ=_^^GFG +G#;Fs P5T㊇FG˷GTSG^F[G6T^G #Pw P^wVXP^w^FVS^SOPP6XVXPv^FVS^S0Pc^G^G^G^G ^G ^G 6=8=;4 s4 ^GF uFVGF^F^GF^GF^Tx'9F6T9FùPT[FFT዗F؉FQ! FFD=HN;r8uTFuFBH^;rヿBuTB^Ƈ BFuF>=HN;r[P8uTF¹$ ^FF t#؋OuO TO^FuPRw VXV&76X VXFF;t'wKN'R'9Gu-V&:tuV&%;Ft TR'GFu>P=uAFFw0؃BuTBFuFFw>ćEƱ;u$:u ^TEFu>2uT2>P=u4FFƒw'ظ9t/uTt/N GFuр>P=u> u>P=uoFFƒw'ظ9/uT/N GFuр> v4FFƒw'ظ90uT0N G/ 6>> G ]U1PU F111s1;611P>1t)* )B=61Z=1G1111*^F61L s^G*F1PT1P6119F$u@F^ Gs1QFFF619Fp1r1t11v1x1z1OF|1~11 F111P61Sl1F t>1w)>l1uFPFPPF~u0>1vLF;1t PPF1t9n't1J'^G$<t<u~,t ^#t^#u1& u 1& u11& bu]1&O&w1F1&G1&G =t=u&11&G 1&ON1]F71&G1PL s11&G F&G1P 1&GFV=;1w61Z=1u1^1srGr 1&G /^FuFFƒrw؃d/uTd/FuFF*%FTF$F8Q=u"FFPTZ'&G61Z'SA[$F֡$F;>=rFl~r VFFֱ Fԁf^㋇;Fw^ć0FڌF܊F^ڋv&x'9Fz>P=u8 uFo>2u"$22$2x'2؀9F F$ $u-x'92u$щ2222؀9FkFdPw Yb&G@P$P P $FJ;vN>n'u$PPVSv8FdVSv3&6x'6x'6x'6x'P[xL=;x'w P5x'_$؍n=>V^$FVNFr VFFֱ Fԁf^㋇;Fw^ć0FڌF^ڋv&^&>$rX^ćFڌF܋v^&^&G3FF;t'w%N'R'G;$ux'GFu_P=<t <t P58 uP5PuF¹" X^GP F^GNPDFT$P$RQ'FRn6P0>V^Y6RVVV8[YFFFSFF&$VXRG +GV&&W,$VX$tF$$V&O$F tHA@FFFBFF^BF+ȍBu+JV;tEVVVF;Bs؃BuFNF+ȉN9Nw 9NvNFFF둋FtcNINFF9Frءx'BFuF^B$FFA&FFAH^&GF^&GaFZ$F;BsI؋B;x'u;^BHF^F9FrLJB^Ƈ BFu^ƇBWFP@Dv9XVh U U U ` 5\\\ 9T'0=u $b/vF}$ $uwb/㋇E;x'ug6b/ЉEEELJEb/E":uEb/Px'X"FFu x'9Fb/㋇E EudEs $sb/$EEb/$Ex'Eb/RXFx'9F$shXb/ćE$^;u$:u2$rb/AE<uEErb/ EF FZ'&GF]UQQFF;<=r" P;x'u2@t,^. F" X^NG[F_F" X^PGR^GV^G G $FT" PF" H@FK]U Fx'9L=w:6x'X=P'^.jr*V$FFFF$Fs 9$s 9$s~ rP'vNFFP'G$6$P'F$P'G$6$P'F$P'GP'G)uP'(a>$)sQ$6$P'*F$P'G)5>$ s%$6$P'SF$P'GR P5]UQF>=HN;rP8u $FFuٸ]UvX=P'GP'GP'GP'GRvZ=^F*^F^^G^GF^GF^GF"@^G^GGF^G F^G G^G^GG^G^G^G^G!^G"FNN~.^&^&G^&G]UQF FN;vNv ~N^Y] Uv ~N^Y] UQQFFFF^]UFF]UzSF~SFvSFЉFVFFFrv=؋d/;Nt%LJd/FFF tpHF؍H^F;FuۊGsFFFVFRY+ȋv^&HPF`N&^G[FFF t7HF؍H^FN;uG^&Z&PUVFRZ+Ћv^&PF`V&F;HsrIInIQ2sFt>P=u> t0 Gs 1&G&19F$Ft 1&G+nF^ON^&N^&&^&1&_S1&wPF1&G~u 1& u 1S~t1& uAP6116161v1 tF61=1F^ON^&ON^&?tPP 1s^&G^&G>1uQ21P؊]FPFFsFFr;rPF^GF^&F11~򤠡1s1&G1S1s^F^ON^&N^&<^G1Fr"F^GF^&GF1^&G 1&G 1&G11l101&G1PFPF1&w&w @1&G!1 1&G 1&G#1SUQQ^d1㋇ f1Fh1lG j1Fn1d1P]U졔1p1P61>l1u1p1P61]UQQr1rm1v1x11z1F|1~1F11111aP61Gl1F u.1p11r1Ft1 P61l1F u 3FF]U졐1p1Fr1P616l1S]U졐1p1 P61l1]UFp1Fr1t1Pvl1]UQFF;<=sc" @;1uJ^.39MaF" H&F" HF" `F딋]UFFwNć0FFF^F9v&^&P ;1u^&FFu]UFBH^;r,㋇B;1u^ BrLJB^ƇBFuV1p1lG j1d1f1FF;DBsI1h1@B&n11s>4B8Bu+Ju d1PFF뮠1s4p1 FF;8Bs 4B&n1d1PFF׋]U11>Q=ud1n1p1d1PF]UF tv=t=uF1s~u1Mvw H1sF1&G1SF1G1FF61^SF ]UQQd1f11&Oh1lO j1p1FF;>Bs :B&n1d1PFF׋]U* B=]UP ]U v  FPL F~uPv ^FF^&GFFFP^SF tPw Fr P]U]U8 u>Z'&GFFZ'&_^F&FFZ'&G;Bw&FZ'&:G t&G ;Ftv+1u11FH&GС11^1 ^&Z'&`w> t ^&GBZ'&w^&G> t7^&-Z'&w!^&G> u ^&@^&^&7 F^&^&!FFPvFP F u]U2PF2t"t l_GX]U]X[ 2"2SP. 2U. ^F~rmuA^tFF~~rmuF^^&Z&W^&G^&G^&O ^&G^&OF<F^&G^&O&O~wmtANN ^&ONsB^&G&W~rmuN^&G ^Sv vvv F uX^&Ƈ@Mv P^GPPF t/^&G^Sv vvv F u ^&ƇsF]U. ^F~wmutFF^&Ƈs^AFF^&Ƈ@^&w]U. ^F~rmuA^tFFF^&G ^]U~wmu^ &G&G&W^&&WZ^ &Gs&G&;Gv &G&W^ &G&G&W^&&W^ &G s&G s ^&/&_] U~wmt^ &G&G&WFV&9Wu&9Gw&G&W9Fu9F u^ &G&WFV ^ &tSP F t^ &G&GF%^ &G^ &GN~ +&O&^ &t8&w&SP^ &w&wFPFu^ &?~t^ &G&G1^ &G 9Fu9F u^ &G&WFV ^ &G&W;V u;Fw2&G^ &G^ &G^ &O&W;V u;Nsgb^ &Gs &G&;GwO^ &G&WN~ ;u;w6&wщFVN;u;s&+O&N~F&GcFV FVF%Ff^ &G^ &GNV^ &O&W^ &G^ S F u F^ &GF] U^&G&WFV&O&O&N~;u;wN~Fs FF%v^SPPPFPF t vFvF t( ^&?t' ^&G^&G?^&G ^&G=^&G ^&G/^&G^&GD^&G^&GB^&G1^&OuVRWRQRQPrmPF tFFBF^&72FF2FFvF^&GZ&WF^&GZ&Wv^&_SPPPFPF u&v^&_SPRPFPF t vFvF t) ^&GQ^&GQ^&OB^! ^SF u^G P F ug~^&G &G^&G ^&G ^&GWPFPF u5^&G^&G^SF tRPP FF]U2FF&GFF F^&GFF^&t~&W^&^&?t%F^&G?;Fr t uFu^F+F^&GN+N^v0Y^&G&GFss^SP FF]U^&Gs^&G&G&WFV&w&S^&wRPFPFV~NV~u/ t^&9u&9Wr&W&F ^&GFF up^&GFV^&G&WF^&G^&G&W;Vu;Fw4&G^&G&W&+G&WFVF&G^&uFF]U^&G&G&WFV&9Wu&9Gw&G&W^Sv F u^&wPGPP]8F tVh tIG:6F|:7F:WSދ4 tL:tX;t;t5?_ 5?^X02C r3ۉ02Q02|EG r:GGG=t GGGGrGG+G+GG3P te‹89Fu&=tB2tDZ;2=r;8=v& u&E&&}uSVW&uW_^[&EUV]UVF]UV]UVF]USQVڑ $ $ӑ;Ӈt;t^Y[] $U~us.&&^F&G FFFFFPF u>FFvFPF uF;vu;FtFFPFF]U>t~=t]~]U>t~=t]ˡ~]Uv'v'9t'rgN'R':' tGO;Nu?NrGt ؁zmu):'G,'G'J''G&'g v'u]U:' t8' @'6@'$%]UQR'F:'Ou,:'zmt'O%g ~t~.tv5]PXV2Xd2X2Z2\2.^2&`2b2f26h2>j2X[T2R2SPU츰؍>3P&7@󥸰ؠl2l2sFl+" G=sG u FG FG~-u6$N֋мԷWVQS^_֋R >Q2u>P2tPؠ<u"<u<u Q2Êڋ3]6h:Ǻ33۹&3Br;6h:u;>j:uu9p2t͸[Pw p2U>,u?>,t,&&@,&&@t ,z2]˰z2]U >,u,s-,&&@t,&&@,&&,>,t,>,uqz2tc>, tOF,F&&Fu+JVt,&&捘^F&z2,z2 ]U F&&捘^F6&&^HNF&&ďNF&&ďNF&&ďNF^&,F&&@tpF^v&:,tFF sE,r,s^v&@$,&@u+^v&@$,&@t^& FFF,r,sF FF&&~Fu+JVuF r,,s= P P(,s= P P(v^&F^&FFF9Fs^&N&$u@FV s.s&&pOF&&0:Fs 6= P(v P(F P P(Fs= P P(FtYF sD,sFr1FF,r ,r^v&@u{,s =P P(,s= P P(^v&@$P P(^v&@ P P(,s 6= P(,r6=^v&@$P P(^v&@#^v&@u$P P(^v&@ <6= P(^v&@$P P(^v&@ P P(= P P(]UFf؎]UFV v]UFV v]Uv&D3v&D&v&]U^?tFN'QPo]'oPSQVRWU츰؍FG FG2Gu Pw >:=wu3G GPw ]_Z^Y[XUF^&GZ&WF^&G$FP^&_MS^&GLPRP1 &^&G ^&O^G^&GZ&W^&G^&d$F^&w ^SF]U^&GFFFFF9F w^&WFt\ uX&W^ v&^&?t%F^&G?;Fr t uFu^ v&^&G F^&FtF^&G^&d^ v^&GZ&WF +F^&G^&W$FFs^&w FPP~uO^&WFt)&G^&w FP tF F^&^&W^ v&F덋F F^&O= t;;w7^&W ^&w FP tF ^&+G^&,^&G^&d뜸]UQ^&GBFu+^&GEN1+ʈN&OE&:ODvF]U ~F t?;vNFF^SFPvFP F uF)F^&GE뺸]U^&/uF F F ^&8G/u SNQ ^SFPPFP FF u ^&GE]U(^&_^F&GFF^&GFF^&~ udFFوFF N F;u;^&1t &WD&:WEu+^ 8 Qu+JV^ 8Y Qu+JV^ 8Y Qu+JV^ 8Y u+JVF^&GQsKvF9F v@~u:^ &F۴^&u F۴;t F+FFF븃~u F +FF~u F +FF~u F +FF~u F +FF~u)F +FFFFF FFFFF~t~t ~t~uwF۴^&uFFF.F۴^&F%^HNF^&F^S^SvލFP F u/F^&~u5^SFރt ^SP F tKF^&F~t^S F^ v&8 u F^&FF9Fu9FtF9FwFFދF;FsFF^&1u>&GD&OE*;FsFދF;FrFFF;Fs;FuFF@FFF^S^ vPvލFP F܊Fs^&GEF ^F&GE^F&FFF u>Fr^SFPPFP FF u F ^&]U ^&GFFNs/&G s%^&1uF SFPPFP ]UF Fu  7^&_^F&W RPP F^SF]U2SP u v27G]U021212212u22m2m12212212 ;v22㋇;2v224222 12:s22㡼2+@2~<1P2X12121º P21Y22,P12B22PPc> P62c> PPc> 2 1P2X1221P2X1221P2X1221P2X1221P2X1221P2X12PRc> P2Pc> P2Pc> P2Pc> P2Pc> P2Pc> P2Pc> P2Pc> P2Pc> P2Pc> P2Pc> P2Pc> ]UPW> %2PW> %2PW> %2 PW> %2 PW> %2PW> %2PW> %2PW> %2PW> %2PW> %2PW> %2PW> %2 2£222H222£222£222£2222>2s252422蹵P2%mY22H22 1ºP2<Z2~2P2R1YY++Љ]UQxF u Pw xGx^vF]U FF<=HN;r@" P;V unVrNX^FF t؋;Nu FGGI^Gڋ^7^Sv^FFF" X^FFtj]UQQ^F>duFdfFF^fGt* ( ]UF>=HN;s$ FFF;Xt^FF u؋NFOtWvPV9uG9Fu1DFF&D!&| ;ttP* Pw vPF9t^O;u vFFrFFFKvP;FuFt]UQQfPW> u`PW> F2+ȋd1]UfPW> t fP@Pc> bPFdPc> Fd2`PPc> fPPc> ]UfP@Pc> ]U^&GFF^&FF^&Z&W tv&\Z&T^&G&D^&G]UvZ=^FF^FFF t?&HRu=FFF^9Gw9G v ^SG FFF^&벋^9F]UQ^&9GvP^&o^&w^&G]U^&HRuSF^FF^1 t ^ &GFF6 &Ĝ^F^ &F^&FF&Gs4^ &GP&wGP^ &OQ&w>XY j 3P 3P&wtGFvv^ &G^&vvF^&@FFF$F*%F"F#N$FNV &F(FN*F,FN .FN0F2F4FFPM6*%FP FЉFVF~uSv ^SvvvFPOF t tuЋ~9vNFYFFV맋FtuF FYF2rs 3rSzFsFFv Sj4FFv PjFP zF uv Sj FP zF u6>^Yv&Gz&O63XFsFFv Sj5FFv Pj&GFFF Fth F;FsL)FF tU&HRt 2^&G;Fs)F^F&FF^F&)GF^&G+F&GF^&FF^&Z&WNF&O_&&X&DN t &\&DF^&G&GHRFs Sts l_9F@]UQQ^&HRu,^SFF u-^&HRt 2^&t^&GSA]U nFFF t^&HRt2wfPW> =tl^&uM^S^&GFF tFF&Z&WY^&w ^&_vy tP]UFFFF t4&HRu*F&GF9~ u9^ u ^& ^&]UQQT'5 Fv #Pw T=sOP6$ PPP6$PP &ć$;Zt@2^.(T}$P$P6$6$$S z-6$6$6$6$6$6$6$6$6$6$3zF u$S6$RzF tP5&G$S6$K z|$S$P$S6$$SP$S6$P$P$P$P6$$S$S '$P$P$P6$$S$SF tP5]UQQU'< t #Pw T=sOP6$ PPP6$PP &ć$;Zt@2T'u_<v #Pw T'.AKw3336$$S6$R zF tP5&G6$6$7 z9T'4<v #Pw T'. *$S`$PS6$6$\D$S6$$S6$$S6$$S6$6$$S$SF t P5]U]U] FPw t ~wt&F &G&G&GN&O N&O FFf^&^&&G&GZ&WE&G F&G F &G&GE Ȱ2r0r&'363XF1FzF& (v@&O vB"€vA 3 "FssFFF 3sFF FvvEz 3s7v&O#ȋF &Gz&OF &Gr&OF &GPSvPhvvXvzF:Ft 3s P63X r&GF 3s<~t@ 3sFFsFFF0FsFF FfFNQQP63XFs6 3s22+2FFF4 3s22 +2FFFv^Sjj63PP*XFFFFFFFtFFtF&G :FvD&G ;Fr9&O ;Nr.:Fr)F:r"FttFt~t ~t~uFX ^FF&F^&GF^&GF^&G^&G^&GN^&ON ^&ON ^&O^&O ^&O ^&O N^&O N^&O &GV^;u$:t Fu &G;FtF & &ćFF &ćFF&G FFFw"fv^^&Z&PFu&GFFFFw<؊$;$u'FN኏%^^&Z&PFujhz6z&G &g F&GFFFFj 3P 3P&wtGF &ćFF&G 1FFFwU^&FFFF;Fs1F^&vF^&@vF^&@FFuF&G ȴN;sX ^F&u&GFFFFFrFsFsFF^&GFFrFsFrNFFF@N;t6Fs ^SQjgzFsFPv&GPgzFF^&GȴN;r3Fs SjQgzFsFP&GPvgzFuF2 FP zF ufv Sj FP zF uJ6>^Yz&gv&G63Xv ^SvzFFFF ;FrCv^ Sh^&w&7FP+F u"^&&W^ F FFuF U~u v z#~u vV z~u vq z]F&2Gr2s2&G#F&#O &OF &G 3s 3r &ćFF&G PYFF&G ȴN;rH^&FFFF;Fs$^&1NAN^&1FFu&W2s%Fsr&63r&'63F&GF&2Gr2r6 &ĄFF&G PYFF&G ȴN;rH^&FFFF;Fs$^&1NAN^&1FFu&W0~Թ,FFPFֈFנ 3sFFFىFr&GFЊ 3sFЊFЈFFF~N,FҋN;vNҍv~N 3`3d333 3II021B03FVR.؉FvFF.&AF%V  PFX&@F YsF FFsNFsNNF% FPFX.&FVR.؉FvFHFF%FFF.&AF%V  PFX&@F YsF@FF F  FPFX.&UFsF.& F.&]FF=[w.&Fu.&.6& s .&\.&LJD. &s.F% u@2Fs FN$F %FFV  %FFF FFFN ЉFjvFPXF FFFN FjvFPXF fFnFFF FFFFjvFPXF FNFNFF FFFjvFPX UF .&F &GF&GF&G&G]U.&G]jvFPXF ^&G F ^&G ^&G &W.& tFFFF&G Z&WYF.&Z&WF.&Z&W.&v FPPFV^;u$:tv ^SP^V&G% @&DvXvX^V&gvXFVFVFVFVFsFVFVFV^&G^&OvXvXFP؍P^S/XFP؍P^S/X^&g^&G^&G% @&GvXvXFP؍P^S/XFP؍P^S/X^&gvXvXF~wXv ~^Yv~ ^Yv~^Y^ F F ^FFFu  3 33 3\T= 3II031B04$/.2&&G& Gu.2&&G ;FvnF.2&@ FF^&Z&W؎&O;Nv &G;FwF s&F t$^&GPfFF F&gY;vUFF@]UF%F]&F;tB^;ٱtA"шVv PSRjFP:F tFP F u."&sjjFPF tg.&;Ft."&sKFsFs$F.&s FF$FF.&sFF .&sFF0F."&rF^&NN.2&&O ɵNFNF;w*^܋&;Vu&H;Nu NNFFűF=t%NFF^&GFfFPv2J4^&GFfF&FNFFvPQv|X.2&F &GF^&G F&G mgF.2&& (v@&O vB"´vA.& #U욪X. & G& G].2&&Gs~uvv v jvFP:F tgFP.2&&w>XPNQ.2&&wGY F^&GȴF&F &GF PFv .6&&FF~tdvF^&NF ;FsF1uFFF ^&GPFF F @F .6&덚mgF ~uvvv jvFP:F tg^&GȴF&F &GFPFv .6&&FFFFHN;rg^&^v&F;FsuFFF5^&GPFFF @F .6&&FFFumgF .2&&G& Gu[.2&&G ;FvE.2&&GN;uQPPFF.2&2 PPFP:F u(vFF HPFF HPPPFP:F tgF FF^&GF&FFF H;Frkv.:&&FFFFF@FFF H;Fr1v^&% F&F1uFFFuFumgFUFu~rNF . &]FF;w^&t/FuFFwF^& . &Fu޸U^SjRPQRPQRPQ]FFFFFsFFRPQ^SjRPQRPQ ~rLRPQRPQ^S^CSRPQFFvBFPFVRPQRPQRPQF$~ v~v~v ~v v~NFv~݋NFRPQRPQ3Pj3PjFF t Ⱦ3~~tJFt3~v Ft3~v Ft3~v FX ^F&u?g^&G&G& t&G ^&GF t jSPKmg^&GPFF.2&&GFF&Gs.&s.&&sF .&Fjv.&P.2&&wtGF.2&&G F^&F &GFF#;uTFFHN;r5v .6&&^FFv&F&@&@FuNFFFF#;uTFHFFFFHN;r5v .6&&^FFv&F&@&@Fu~uv .6&&FFFFnFF;Fw"vF^&F&@&@FFu֋FFFFFFHN;r3ulh3&Gp3&Or3t3&!t3Ћ6r3&!4h3&z3&O|3&Hz3 &Hh3&G `3h3j3У`3b3d3f3hv3h3 t2&O x3&W l3n3Qh3Sv3l3h3j3ĚG]UT'5t #Pw L=;$v6$&SP$HP&w@[_Í}^G$9HBrA$&+V=F$PSQ$IQ^G[_Í}Y]6RBZ'SPA]6O`:p%L:N:>Q=uA>b:uQS3P[Y>f:t(>M:t! uP&P&P&wEM3 P`:PL:N:>P:DZ >N:V@%T:0g>_:u p"L:L:V:>Q=u&e:e:&V:>X:DZ >V:Z:%0 $VRPbp@@us>M:u,e:?Ⱥ@@t:GfpL:@ u >Z:˺@u* tGȐpL:˺fp︯PSQVRW؊&L:|ctX|K@btgtCt XT:t+ЉR:N:`&0! u u"_Z^Y[XL:ظUPpﺀ u"ؚU >3u^&t]&GU^&G&G3AFB;s;s؃Bu ^&G^& Ht>3t &G`3FF3 ts3F_^F>T=t &G;3.^&GFmB;r+F%ȰviB&u3u G3^&w 냃>3tkF33i33 u ^&G)J33GOG O3F t33>3u3F3GG ^S]U^&33>3u3_^F&G;L=O~ LFı P舆RXP%FXr ƆRЉFReB&;FwFRaB&^Fv&Q3u)QtG9FvG G G G3G83u%G sF+G P6G3G tG 3N FFFFF3F؊O s/~WG RP^̌F΋3G FЋO NVG F BF^FOsvwB&3ƆPF;FwlF^&FF^&GFOsLQ$FuQt:~u4Ps-ƆP~u3&ONwSL[~u~u~t~u~~u׊Q$u@P~t^&<[t{:t3&GRt3SwSTL3&GRFƂS}F~vS^[&8tvSFv3&Ow~SL3&GFFƂS]@F~vtv<&8 tjS@F3&OwSL3&GFFƂS>@F&O)w*SL3&G)FFF@%FF;Gv -PF t/S^ ~9vv^ 8vNLNA^ v8vLYF^&&GFFFFF&GFF@%F^ &vNF^&]U3^w~¹fFȣ3;3s53;3v)F3^;3t u^F3GFFOG<t+<t3uvs3u 3S~ouP3G rv3 3;u>|;u~ uFgR m~ u;;rPP~ u ;r;>;u)>;te6;F t ~ t1R *;PP$e;v ^S;; tFPe;rPP$e;s>z;t F uƠ;s;s\FF;;s Pv;tvP=>;t P;PPF;~t\; P;PPFP2s ew <v[]U PPP6\FPF u^&G6\Z=^FG\FFP^SF]U;;S6<6;F6 6l;F6n;F|;У;;]U6l;P;PF=uc;PPFB26n;PFPF ^&n3GGv&|us&;DvF-f^&_SFЋV^&+G&WRPjlntS^vԍ0[_n^vԍ0ľjfYFʋ39GsG3G ^&;Gu3t^&_^F63D&DFN€ FIJFJ‰vx^rtƆiF:ivĞv&F&OpĞr&9Or;FvF-Ept^v0Ğr&?fp^v0Ğr&?fYivrvv]U졸3 t 3v~>3t3S33]U졼3@3u33]UF9FwF]UQQFFFs FF FF F^]U3_^FF&GF3^;3t u Pw ^Fދ3v93u3u3F33F33^& ot ^S]U:@:=v::؊F4F4F4^:4:]U]U>_:uAvAM]UB&v(>`:u!&G :e:u:e:6Pc> :>`:u::e:t> :tR:;vOB& uDGGG:&G J;s$&O t>R:vJGGA_:B&r& uM :<t<u_:w]á3@3v:rAP]ø : _:P9M]UQGB&G&G&G&G &G &OZ:As &GsZ::rE : 33_:BV:X:BN:P:GT:^:]:\:> u`PW> c:/>P=t/62Pc> 6VW> c:6VW> Fc:$c:P9M]U>`:u^3:tb<@s^> :u,3؊ : ::c:r=e:P9M_:]Ê:Ƈ :>3uPa]øP6`:6R:P9M]U]:P\:B&GZ:V:X:BN:P:T:Y]:P9M]U\:B&GZ:V:X:BN:P:GT:P9M]U\:B&GZ:V:X:BN:P:T:P9M]UB&GsZ:V:X:BN:P:GT:P9M]U3sZ: 3V:X:BN:P:GT:P9M]UQ>L:t Pw FM: F33uF tP]U N:FFR:F>`:t::e:us%^:P^&P6R:5>^:wM :$F :$F :":um> :tR:;vI^& u?GGG&G J;s$&O t>R:vJGGAk :s+ : :":uf :$<uF:]:tl& :tF:\:u F:]:t P63\:P;^:^:<v^&GF&GFR:;Fuj\:$\:Ar353ć3BB6o^GPvr&P\:PP>L:tP^:X]:N:tWQP^:^:<vzb^: : :$<u!BGPZ:Ps M :lgP6`:P.^:^:<v>`:uPX6`:= t=u :rGT:BN:P: :P9M]U3P3 P3PN:&:&G :`:;63u;3u$_:.}M문3;63u;3u>L:t P3SUh:j:FFPFPl:PF;s6;P(FP6;BP6;BP6;BZ^ tQP(;P(;P(;F;N;S؊G ;t2;;PP$e; P^S;;Pe4 uJ6l;P;PF u1;x;|;£z; ~u6 P^S;B2F]U>;ti>;ubz;u6 6l; z;6n;PFPFУ;;F uB2]UFFF;P(HFP(Fv~l+" 1^^?t@;^YPPX 3sUv&G;z&G;;#` v&G#; z&O 3s*v&!Gz&!Gr&G;% &G&;&G;&G;&G;& 3s 3s&G&G&G &G &G 3s^& (w& w P63XPPXPPXFF uP6\FPF^&GF;&GFF6;FYPPXPPX;&;&G;&G;&G 3sO;v&G;z&G 3sv& Gz& G^& (w & wP63X ;r&GPPXF#;u r& r&'Fs]Ur&']UF<<<~t3<<&&G&G&G&G&G &G &Gt;t ^ScF~uF^&Z&WFFFFN^&WVN&ONVVNNF^&GHN;r1F^&@Fv^&F^F&Fu FF V u F V Fv^SF uHF V ^&O׋^O8;u;vF+F u;N V F+RQFPF~t^&SvFFFFV u FVFv^Svv v FP^S F~ t tF1Fv^SNVF+RQF ~ WP^S]FVF t4FF FF F^SFVRPF u ^ SvFF;vNNv ~^YF)FtFFFF PS6Gt3QVRWU،;&;м<{;;&;]_Z^Y[XDUN]PSQVRWU،;&;м<;&;]_Z^Y[XϜ`ؾ>;aÎ;&;3P6",3P6;X[YZ^SPVRQؚX[YZSPRQؚ ːUl:Pvq;;F;s>>;uF6; u?FFFF Pvv;F uFs Pv]U ^؉F^FFFFFF;FvF؊_ .FFr^GF tsF*^F&9@w&9@w*F+F 1؋.;" @;Fu-h:j:^G ^G^^G^GF r4]U>|;t=<;;;;;<;;,;E $2Q=\zII010C01wswsSys060I01 == 07/15/85II010C01080E04 == 11/12/86*XXXXXXm>@XXXXJX|XII020D02$'$%%081A01II010C06%$II010F02?$$%4B:B@BLB8B>BDBPBII010D02:ERC xxxxH:level xxH overlayed))- -II021F03081A01II010C01081A01081A01II031B04'050F01=== 12/31/84    s ;FF6",^SF]U&FFF=F\FzFFFFFF2FQF 1F1FF1Vu FFmFm1FF1VF1F ;vNvB;FvNFF^&F 1^&W^&8Os&vF+B@^&GF1^&WF <1^&WF 1F1^&WF 1º PF1Y^&G]U v ~FF=r=r O~sF-F-F~ vFt ^8s~u~uF1 t LF蹵PF%mY^NHFNt1;t p~w ;8Fw8Fv~u ~u~t GF 1ºPFu^ S^SvG"PG!^ S^SvRPPvFF t^ &7PF tFrF^щ^ &7PPRQPF u;^&?GWu ^&tF ^&G^^&G H^~t^ &7FF]UQQӨ>򤡮&Fv;Fp;r;6n;^S6t;RPP]Ut;p;r;>u^SvO"QO!QRP^SvRPP66FF u5^SvPn;PFPFPLF uPP(L]UQ6n;F u ^SvL]UFPFFu6n'J'G&;u:w:;;;;;;;<<<;>;z;;;|;p;6r;t;;;>; t ;;;;У;;;P6;Pl;P|;P~;PLF tPhjF|;;:=v|; p;r;2=F2=6l;PPF2= u & drt& sn;Fn;|;PPFn; t;v;PQPn;PFPFPLF t1sNFp;r;6n;QvRPPF~uӨ>t+JtS6@L&:t(LF~u*ScF uPP(LF t#S6@LS6LF~u;;>0=uL>:=vDT=r<2=;;2=4=2=;6n;F6l;F|;]U^Oh6h tD:Gw47]lh9t4gUQF"FF$:u]UE]333333w33 CFFb  080D06II020D01HWIDp  Kn,X` %KII010C01012345abcdsiABCDSI.,081A01HP ; @ 'II031C29''A070A02$AII010C07II010C01II010C01%+  K080E01II010C01080B03II011A11'II021E05=\z2Q2Q=\z060C01 == 05/29/85060A02 = 04/12/85%$     $II020D02II010C01 II021B04VE1081A01II010C01%II010C01%;;e;l:;;;;n;5                                                              ! " #   ѣѣѣѣѣѣѣѣѣѣѣѣѣѣѣѣѣ& ' ѣѣѣѣѣѣѣѣѣѣѣѣѣѣѣѣѣѣѣѣ  SSSAAHAKVjjjjjjjjjjjjjXnnnnnnnnnnnnnnnnnKVjjjjjjjjjjjjjX,K,BB(.!F.!.!R.!X-YUu%.;drSѿ % ȁ.;s'.ĝp&..s D.&2+UC&72QS233&L&&G FF&GF [XFC5&:r Pw t 26C 26CCNN&C&:sC2&CCRPFP#u,vFP#uF;Ft Pw ;FuFZ]22]_^VW 4CIWcCoo|o  $5$5$5$HCS_S_gHvvHHCHHCCCCC";L_xC CC&C11BCK^h_u;L_*CC2=CICT[g|CCcCcC&4CCCUC[gxoCCCo 6HHHQ]pCCIICIICICC C 8IZCmCICCCC CC S++__8EKKuL[gsKyyyyyyyyyyyKK  $  $ "$ 5 w~XXXXXXdXXXXXXXkkkkkp @ @ % #$       0."  (  & (  &,* $ " "  $  * $ "" " . "  ,*$6(4$ "  $"$  $ "$ ""  $ ": $ $ *, "  $ ( &  "  & $$     $ "$  v1Clstr-II-3.2.0,="GTqy0t '' !!c   5 5U  ?Y w do yy n   yy Z  v     f 0 * gmgg;g &H H H H H H H H H < 6 L H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H B H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H B * B r&n P *' .&%&'6 ,% ff  """@BBBI,"?@-.<l l < BM[sys]Sys.Keys[sys]K2Sys.keys[sys]K3Sys.keys[sys]K4Sys.keys[sys]SSTSys.keys[VID][KBD][SysIn][SysOut] 0 ^ j             @L @ 6       00010203040506070809101112CRASH STATUS (ERCLAST CRASH STATUS (ERCCLUSTER NOT RUNNING, ER[sys]DebuggerV1.sys060E01abDLMCEHIdeSRK<sd  A0 _  E#|A@@@*,7 C = CANNOT LOAD EXIT RUN FILE, ERC =INITIALIZATION ERROR STATUS>Please mount a system volume in [SYS] and press GO to continuePrimary SysService00[sys]checkconfig.run@J J [Sys]Signon.Run[Sys]Config.sysSys  _AB DfF HIJG 3fD@CE> W7 8 8 9 9  @. ?: ? <sd <  !!0M A   <R"g#@S"<a!"_&!S% (!$!N&f&C&"4!gLS%&& &p$[Sys]SysInit.Run: [sys]<$>DebuggerSwap.sysvwsB""("3"E""j""(""`3RP11# I( I< I 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ[sys]Request.sys&081A01081A01081A01060A01081D02060A02081A01081A01060A02=== 05/08/85081A01II010C01081C04: ̋X=wByB>l'u>l'u Pw FFl'H^;r9㋇t'vv%t'^㋇t';FvvFFu0 %0 0 V'X'vp$X'V']U6 ,FP s6 ,^S~t^&_ ㋇ FFĴ.Zd F!^^.x ^& FtF FaF!F^&GSGPV>"t t >Qt @tPX PX PR3ZX PR3ZXU3>P=t>P=t>P=t6.66 6*62&D&G >P=uV$" V]U>P=t>P=t)>P=t($%V"RZ RZ]U>P=t3>P=t">P=t!R>0=uZ RZ]UFuN&F(3Q@3&&-;u!&&-;u&&-;uGGYYEJF\FG`lH FG`l pP  UQFFw,F 10+v^&F1FFű]UF FFu'$ t $ t ;t ~tN^㋇$+~u($ t!$ t ;t ~tN^㋇$F~t9FF;^'w+J'F9Fu؍G^&&_FFu^&Z&W]U FF^&?u&u FF^&F^&GFvF֨^;u$:t Pw 6ڨFڨGGG=u>Q=u R=s8t]UFF>u^&&_^&S6PP^SF>u$n'^&&_^&S6PP^Sn'Ftn'PPRPP u]U t&&O&O&Ou|F]U FF;D=wЋPFuޚFFP=uCFF;^'w*J'v6<GLXFu͡^'@>P=u>0=v>$u>P=uO>$tH>0=vAF$HN;r*$$v6 FFnFFx FFF FP+P=t<s0FDDf>P=uV V]˰0.ˀ>P=tr;ﺨﺤ83@": 22 :> 4 6*Zu> \u> ^u> >0=u8ﺨﺤ83@": 22 :> 4 6*Zu> \u> ^u> V@f@,tz"u> 꺠8ﺨﺤﺦ83@": 22 :> 4 6*V@^@f@}ˀ>P=t'>P=t7> tUwq栰桰桰 桰 "" "">0=uy@v@ X@ P @˰ XFˀ>P=t> t2*t K@N>P=u '˰bbb bbbb1bbbbbfffffffffffhfˀ>P=u>P=u  ӰU@'8'8'@'$%]U.\ t9H`'\Pp$H'FF;`'w Pp$vH'Fu޸F܉Fޣ$$FFFFF^'t` u Pp$J'F`H^;sğn&$u\~tV[Pp$'vJ'F^ķn'[F'؊_!㉇$GXFNj&G$t<uZ~tT[Pp$'vJ'F^ķn'[F'؊_!㉇$GXFNFt FH^'FF܋NNރ>$t u$>$t~u$NދFt:Ib'FPp$L'FF;b'wPp$vL'FuްA&BPp$Z=؉{B}BFH;Fr>Pp$vZ=vZ=F~sG FGFuf tHt'fPp$N'>^t"FF;^w Pp$8'@Fu>Zt9FF;Zw+FPp$G9|B'B'&%Fu; OGu⾋&(3Q@&-;uGGYYOGu3  :=3]V">P=rn>0=uS"3۾&7CCU&7&7u CC&7Uu r"5"¹(=3&&CC3ɸ̻>P=t"&7&7"&7 r}>P=t"&7&7"&7 rV>P=t"&&>P=t >P=t;uP;u%&7tBA>P=t5>P=uu)ec"S>P=u uKuA5>P=t P >P=u@>P=u 0  KCt:=UV3V3 &&GGV]؎мԷ>P=u3VJN #3&?&wl&&G@$V VzV%V&?&wP؀>@t @$XU36*&D&GPVRQ @V]UQR%V]U>P=u2 VT3VK"T0K"T>Pu Pp$]U>P=u0.F(F(>P=u5fP@Pc> bPFdPc> `PPc> fPz> uBVP@Pc> TPPc> RPF2Pc> PPPc> VP162pPc> 62F2Pc> 62F2ĴPc> ]U>P=u0. C>P=ufP@Pc> ]À> uVP@Pc> 2p6>> ]U"8PF>puNuPp$mP=<s<t[>P=uEPPc> P Pc> PPc> ">P=tP7F> uUbPPPc> `PPc> fPPc> psbRPPc> PPPc> VPPc> > w|624Pc> 6VPPc> 6VPc> psKFF>P=u>ufNuNu O> sKNuNu>P=u V?>P=t8> u 2 (6>> >P=u-=Uw==s Pp$9>IvE*E#> u>`mvbP|Pc> E]U!ffPg#s]˚Cg#s]˰Pg#s]^&G$Z&W&\FDDfZs'Pg#rCg#rX\uڰPp$FPg#s]˚Cg#]U3>P=t>P=t(%L,6t&D&Gqrp>P=t>P=t$$]PR>qtpq>P=tR>P=t.> t p2 V@u> >rtD 1f@u> ( >rt0.>rt Pp$r > u"ZXU3>P=t,>P=t> t @6|L6|606x&D&G>P=t6>P=t$> t$$#2$$V]PSRVt:> r#.((0. 3V3VV&:8 Z[XPR  "ZXPR>u> u P!> r> t  2 > t  ZXϰ "ZXPZ>X w >Xr Pp$f8b Xx" 3r&G% u@ 3s@v&G#` &Gz&#O &O 3s'v& Gz& Gr&G% &GSj"%x @r&G~Sj"%r&G r&G Sj"r&GSj"r&GSj"r&GSj "PSj "Y #r&Gr&#B&C"Xf&&G&W^=`=i""*PjPj FPjjP 3s FF FF FFjSj(PPvQXjjXFww>b( 3s 63Xbv8F 3s 63XjbSjjPPP*XjjX2> 3s 3s &G 3 3F$u@F":u˰FV R¿F~~YtFVN 3sFFFF>@>@ 3s 3sFFwwv8Fv8F 3s;F63Xv8Fv8F63XhzUQQFF@|^&&_FH^&&_FLl^&&_FT>^&&_Fd( ^&&_Fhd^&&_Fl* ^&&_Ft$ ^&&_Fx& ^&&_Fpn&^&Z&WF" ^&&_F^&&_FP^&&_F^&&_Fh^&&_F4=^&&_F2=^&&_F8=^&&_F6=^&&_F:=^&&_F ^&&_F^&&_FX^&&WF\^&&WF`^&&WF|J'^&&_FH'^&&_FX=^&&_FL'^&&_F^&&_F$^&&_F$^&&_F0=^&&_F$^&&_F22^&&; =W2=2  FRGF^&G&RG&G^&FGG^OHH^*H^&<=" X^]U & $hj]U >P=t"ЩҩЩ&?u 'Щ&?u Щ&?u  > tnƩFHƩ;r\؀Hu > tƇHPƩ؀HAu > uƇHƩ؀HDu > uƇH Ʃu> tnƩFHƩ;r\؀H uƇHTƩ؀HuƇHSƩ؀HEu > uƇHƩu >P=u  p$> u #! p$>P=u# <t<u!4!P Ap$p$P=t<t<u BK"!P=t<u!ƩƩ9>vćZ̩Ω̩ƩܠP=t :t:u!P ƩL=HƩ;r_6Ʃ؍n=X=Ʃu0 K #> u8>_Fn'^&&_FE^&&_FE^&&_Fd=^&&_F^&&_FF^&&_Fj^&&_]UEFƒ µF^G*RFRONFRGFP=<t<uF@>P=uF@F;Fs6vFP t ePw v~N^YFFFv~N^YFRGF1RGGRG2=4=GFF^&F^&ćFFFFF^&Z&^&ćFFFFF^&Z&^&ćFFFFF^&Z&^&ćFFFFF^&Z&^&ćFFFFF^&Z&^&ćFFFFF^&Z&^&ć*,,,^&ćFFFFF^&Z&Fz&GFr&GS=s PFPlGQ2P>P=u> r>P=u^&G&G PFPF t^&G&G ^&^&G^&G^&G ^&G&G ^&G^&G^&G ^&O&7^ ^Y^&wF&G ^&@ ^&w&O V&w^Z_y ^&w&G ^&@ ^&w&G &G^&@ v&FF&GZ&W^&_ S^&w&_S^&w&wPPFYF^&O t.&SQ^&_S^&w &wPPF=uFv vw ]UQF*O+uNuPp$ *F]UQF*N+uNuPp$ *좯]UQQF>uFHFf u Pp$]UQQ_&PY >u Cg#sMCg#rDPg#r8Cg#r/>t Pg#rnCg#r>t Pp$TPg#rFF~wBPg#rCg#r;Ft Pp$Pg#rCg#F}Fu좮#F*O+uNvg#r!Pg#rvg#F]U36&D&G]PR3%3t 7 t+u>u>t" ZXUNPp$" PPp$$ PPp$PRPp$& T@Pp$d*Pp$^TPp$XPp$NPp$8 N<=P>=R@=TD=r ts Pw <=H;r&P8 ^" Hu΋6mB>=+mBP8X$ `& d@=;r8& @ىЋGWGu@=H& @=H& f@=( V* B=xX;rHHuٸTV=H;r2*^RRGRGu¸hj]UPp$. <=" lGlGlG lG6l]U<=H" lPp$lGlGlGG G OWGlGlGlG6l]U&©RRG8=RGE‹Fþƿ õF0 %1nRGRGG8=RG 8=RG EFö‰FjRGF1jGRGRGGRGFRON~N^&^&G^&GRG!RO"^&V^&^&^&^&^&^&^&^&^&^&^&RGFF.F^&Z&FF^&Z&FF^&Z&N ȠE‰FF^&_&FFF^&_&FFF^&_& NF^&_&^&_&^&E^&Ŀ6FY^&ć*,,,]UZ=_^6^D*RV#^GTRO4< 0=v1@P p$  P X   > u5>0=v. P p$  P X   >P=u;> u4(PPI> ,PPI> :PPI> *PPI> >P=u70=< v0P=t4!>P=u"A@< Pp$: Pp$䩋6A: ZZ#L#tƩAH;ƩsPp$䩋6Ʃ: ZZƩ ؍ʩ橌詚ꩋʩwp$ʩGGPĩ tPw ȩȩʩO" ;H tȩȩ" @Ʃt-p$#P > uHP PܩSةPSFPPPPPĩ tPw !*>P=uV   @V8P=uU <v<s6>> %$2> t6>> %K>D>P=u@>0=u> v$$2$ƩPƩƩ9Bvć̩Ω̩Ʃ܀>P=u> uPIPFPĩ tPw ^&G&&_&G &G&_F>P=u> r>P=u0G^&GG&G &_G&GG&G&_FFF9Frd^&pFPĩ tPw F^&H&0~^YFF^&Z&PFu^&G PFPĩ tPw (#~^S^Pw ]UQQ0 @%0 N+N;s ePw F0 sL0 ‰F2=;v/94=t ePw F2=4=^_*RGRG]UQQ0 Fvj^NF]UQvH0 N0 ]UQFt<v Pw FN  ]U>P=uN" *:*8O+N+JHNL.,*]ˀ>P=uN**O+N+]8P=t+8 uT**O+N+&"  ]ˀ> u`** O+N+620 ]ˀ> t**O+N+ ]*f*dO+N+]U FFFP=<t<uFHFF~w+F~wvF^&FFuFFuϋ]Us]]URP=$P=<t<u0=$:=$P=<r&<w"`=ĈF:t`=Ģd=Fl33>P=ttr&uFw~F~Ҿ>FP>P FvFPFP4&w P.P)P PFFw*&pPHP PFuF(F~>FP>P F> tIuv%GP$GP46 PHPFF FFPP FFF>P=tP?P>P4F~u&&GLFFPP p$FFF9Fw>P=uVPFP3^p>0=uKF&3FFFOw2FPF3v&^&FuFFFukP=<t<u?FFOwSFNPFPF3^&^&Fu!FP30^9^YF@PH^& F&FF&G Z&W FP&&GY #u>P=u(%?$ $D*' t u*F~t*O+t %*FF~ w*R F~w t uFuFu]UQQhjF ;sN#F +1FFF)v6>"]U":=H8=6=>P=u"]U&GE %Pp$&&E&G &&G&W&FFN EF^&^&Gl>P=u  >P=u0T#P=<t<t4&&G&&G & Pp$ A6>^Yw>} ^NNOOY8 u8Eu &G&G> u &G && Pp$ A6>^Yw>} ^NNOOY&G&  &9rI&9t9u6 !6 &88u&G6 P u>u@b=FFw1b= PPI> b=0NPPI> Fuǡb= PPI> b="PPI> u&< r6&r&H1&&XhS>B&11PPrPtdsr&&H;rD1&YhSB&01PPPtu1&&@D^;u$:s!1&&@D s} &&;vn02zs vs1r؉t0&Z&Wp&Z&W&Z&W&Z&W =0"="24&&ć.0&*,wIƇs4*&S>.&qĜSĜSQu rv؊r ćªG]U`=^=FH`FrmFHPFb=XP@FYDNаFF<wb=F~w VFuFuF`F~w~F FFw)Fb=FF<w؊VFuFuFFw/FFb=FF<wVFuFuFt|b=FFFаV*1hVnGV2VpVVFVFFtF@FtFtẀF Vk]UQQFb=FFuF]U0 @2=4=P=<t:u 2=@2=4= ]UQ@F8=+;Nw ePw 8=+F8=6=^_*RG 8=RG 8=RG8=]UQ@F9Fs ePw F8=6=^_*RG 8=RG 8=RG]UQ r FPp$PYCFrF4=n;v ePw 4=FF4=^_*RGF]UQQ~tKFFHN;r;^&Ft':Lr Pw ^ӷ ^v&Fu]UQFFwĿ0W^{Fuۋ]U   *=PBH]=&=>B(=DB$=8BPBF1FP p$FFPB t"NLBNB2FPBF>B t"N:BBFDB tkN@BBBFDBF>Q=tBFF;DBs4@B&8Hu!DBF;DBs@B&H&FFá8B t"N4B6BF8BF]UQ^v^F&GF@&O&HF]U ^ &FF^SvF^vNFF^&9r^&F+ȋV;rp&++A^&^8u+JV;t>^0~N^t+J;YuFF^&FF@FF^&?u/Pp$FnFF%FF^ &Z&Wn+FV0 =r ePw vp$n+V+F^&^v&48vNFY^&@v& ;r N^&]UF)FF%F;FvNFF)F^]UF ^&P2S^Fv& v&4FY^&F~ tDFF HN;r4^&~Nu+Ju~^&FFu^&;Fu!F24^&Z&WF^&]U8:<P8S6<RPPrmPAt@ ɱuA"r tP]ˡ6= 6PP tP6=$""&G16=(&"&?LRtM&&Gdv'&&u  &>@1&&ADBD&&ĀFH&&Ā6JL>u&&ćzNP&&ć&&ć~NP&&ćRTć0VX1ĄZ\ć^`ćbd>ufh fh jltA:³tC ˈ$Т8u7ćė^;u$:°u@>uB&&Ā&&Đ^;u$:°u@:tヿt |Pw &&;w@sC>u {Pw >ubs {Pw >n ㋇ Vn &&sjヿtU㋇H;rZ&;vuѠ1ĿW6z &&r s>uH;sV&8t@^&8ѣtC "Šf&9tA "Šj&8tB "&& Ȉsr P?>V s >6& 6&n&6&z&s6&v&s6&~&s6&&se= ĪğƪȪ&PS6ƪ& 6ª&4FYª&Z&W>upƪ&6ª& 6 GPI> 6 PI> 6PI> 6 PI> 6 PI> > t6>> F$> u8]UQQn33333 3G&GPp$F3FGH;Fr3^3GFFuF3]UsB&G$e:u&GsB&G:s]U캄f@P0 f@P0 E0EE"]U\>\ wl^^wB\06^ ؉BB\6^擋$؉B^u\0؍BBB\u^^w( ؉|D~D6^拄TD^uи|DDD^^w( j؉\C^C^㋇$C^uи\C|C~C^^w( 0؉CC6^拄,C^uкI$CCICCICCICC*CCCEE9F F&G]U캞PY ` tPw ]U0&/P p$0&GPPdPb tPw d& r0r2@P p$t2v2 P p$x2>v2]U2 P p$22 P p$2] LIBRARY: rmos.lib VERSION: II-3.2.0 (monday april 9, 1990, 14:50) LIBRARY: rmngen.lib VERSION: II-3.2.0 (monday april 9, 1990, 14:54) LIBRARY: rmclstr.lib VERSION: II-3.2.0 (monday april 9, 1990, 14:45) LIBRARY: rmdbg.lib VERSION: II-3.2.0 (monday april 9, 1990, 14:46) LIBRARY: ctos.lib VERSION: 12.0.0 (friday april 6, 1990, 21:02) LIBRARY: rminit.lib VERSION: II-3.2.0 (monday april 9, 1990, 14:49) COPYRIGHT 1980, 1989 CONVERGENT INCORPORATED. ALL RIGHTS RESERVED. COPYRIGHT 1980, 1989 UNISYS CORPORATION. ALL RIGHTS RESERVED. THIS SOFTWARE IS PROPRIETARY TO CONVERGENT INC. AND UNISYS CORP. AND IS NOT TO BE REPRODUCED, USED OR DISCLOSED EXCEPT IN ACCORDANCE WITH PROGRAM LICENSE OR UPON WRITTEN AUTHORIZATION OF THE PATENT DIVISION OF UNISYS CORPORATION.  THIS PROGRAM IS FURNISHED UNDER A LICENSE RESTRICTING ITS USE SOLELY FOR THE OPERATION OF A DESIGNATED COMPUTER FOR A PARTICULAR PURPOSE. TITLE TO AND OWNERSHIP OF THE PROGRAM, INCLUDING ITS SOURCE CODE, SHALL AT ALL TIMES REMAIN IN THE NAMES OF UNISYS CORPORATION AND CONVERGENT INCORPORATED. VERSION: II-3.2.0 (monday april 9, 1990, 16:13) PSP@]UvFFFFFp&Gsj/FF~uFlNF;|sE"  &FNQ)^wR- F:>t%&hu+Jt-~u>^u+JVt+HF @F FF t! v`v N F~uD>u-&?{u_P}Pjr9-PkP               = ? ? @ B@&     AH* ?      ?}}u @   ??H$? >B!B@@  A@      @A0 0      @ A8      AH1 ?      ??               }}u@@@  @@                    3???? ?@ ? ?? x?__  A /O88      _ _?O>8              }0 @D @@@  @  @@ @0 @!       @A  0 0D @    @    @  0    AD               ﺮ P@ @@    @@@@@     @@ @H@ A   ? @A      @ @@0@          @ @d                     }}u@ `@?? @!  @ @@@@@@   @@ @D@ A ?  ?  |@A        @ @      ? ?@ "@!  ??? P $       ? ?? ? p @??!@ !   @  @H  @@ @@  A @      $@A       @> | @ p@@@  @  @@H$  @"""@ @ @@  @?@>o @  @B_  >HH       ? ?? ?} <@`@ ?!   @@@@'   @$@@@  @@  @ @@     @D                ﺮ@@@@  0@ @@@@@    @ ( @@@  @@ @ @`      @0 H 0                  }}u @@p @ H@@   @@  @@0@    @@  @ @ @ ?0 0 0 @"                  @@? "H@ ??@? ?@  ?? @@ ? @8      0 _0              }}u0@      0 0                            }$$$$$$$$$$$$$${> 2B22"z2z22 < 0@000x0x00B@B@B$R$BDD"""<ZZ`HH(@HH$$$$$'?'$$$Z|">" "X@` | <b^<~|$$8 DB@( BB~@BBBB ZFBBBBBBB( B<0Dn<x4<<"""B>~$ $| $$ $8$8BRXBD8"~" Fj@000x0x00$$$$$$$$$$$$$$$$$$$$$$$$$$$${@$$$$$$$$$$$$$$Zx P ~""@~2Bz2":2220@x0 8000$$$$$$$$$$$$$$~@p~|8><P<| 8<~< <<<< xB>8~8B>B~BB<\B<<BB~<<><< "<"D"<x0,l">0 ~JBJzBJJBH@H|@HH@B|B|<:<X8<<<:d@x0 8000$$$$$?''$$$Z>>>!>H 8`|*"BP~$|RbDB~BBBBBBD"DB""BbB""BB$f$@ """"<" $""DD 2~JB"b*::"2rH@``$88 0pBDBDB$F,BdD"F<@0H|@HH@$$$$$$  '{">"J"X|Px 4 x\~@$~TD @"@BB@~rBBBrB"BrBR@BBZ <"""" ""DD""$~JbJJ2 BJJH`HH(@HH~x~xB$J4BD"" $j@``$88 0p'$$  '{>"5"~~ p~*~~D^~@$p( T||D08$>><| ~>B~ ZJB>B><BBZ  """""& $&"DDL""B`b~? 8>"H@@"|B@\$~*T@DBB0B@BBD$BD"DB "fFBBBBBBBB$D  $ $~$ 00$80<bB$"xZZ$$$$$$$$$$$$$$Z>>!@@8<$H|J  8<< ><~<< 8x>8~~8B>xBBB<><><~BBBB~<<  0 ~$0$$( $$$Hffff\ff ` $B$$$$$$$$$$$$$${ ~ 0<<0ffffff <$$$$$$$$$$$$$${$job B25COS ; this is a floppy install of Cluster Operating Systems $IF Unattended AND (InstallType = 0) $DisplayLine $DisplayLine $If VideoLevel = 2 $Displayline('AE Unattended mode is not supported on floppy installation AA') $Displayline('AE  Press to exit AA') $ENDIF $DisplayLine $DisplayLine $DisplayAndWait $Cancel $ENDIF ; INITIALIZATION section for the following strings InstDoneMsg = 'When installation is completed, please reboot your syste? l Floppy Only', RmClstrs) B27Local = SUBSTRING('B27 Local Hard Disk', RmClstrs) $IF (B24type = 65535) and (B26noLocal = 65535) and (B26Floppy = 65535) & and (B26Local = 65535) and (B27noLocal = 65535) & and (B27Floppy = 65535) and (B27Local = 65535) Temp1 = $UserSelectYesNo ('No selection was made. Select Yes if you want the menu again', 'No') $IF Temp1 Selected = 0 $ELSE Temp1 = 0 Selected = 1 $ENDIF $ELSE Temp1 = 255 Selected = 1 $ENDIF $EndWhile $IF NOT temp1 $DisplayLine  $DisplayLine $If VideoLevel = 2 $Displayline(' AE No Real Mode Clusters selection was made. AA') $Displayline(' AE Press to exit AA') $ENDIF $DisplayLine $DisplayLine $DisplayAndWait $Cancel $ENDIF ; Chm.' ; initialize variables TRUE = 1 FALSE = 0 RebootFlag = False CmdSpec = ConcatStrings(DeviceFrom, 'Install.cmds') LocalSpec = '[sys]' ServerSpec = '[!sys]' $IF InstallType = 2 $DisplayLine $DisplayLine $If VideoLevel = 2 $Displayline(' AE Installation from Server is invalid. AA') $Displayline(' AE Press to exit AA') $ENDIF $DisplayLine $DisplayLine $DisplayAndWait $Cancel $ENDIF $If Public DestPath = ServerSpec DefVol = '[!Sys]' $Else DestPath = LocalSpec DefVol = '[Sys]' $EndIf SysimgSpec = ConcatStrings(DestPath, 'SysImage.sys') $Command Path ,DefVol, Sys $RestartLabel $If Public CmdFileTo = '[!Sys]Cluster.cmds' $EndIf $Displayline $Display('Copying EnhancedDebugFile.Run ... ') FloppySpec = ConcatStrings(DeviceFrom, '') $Command Lcopy, EnhancedDebugFile.Run,FloppySpec,Destpath,,yes $Display('Done') $Displayline $Displayline $Display('Creating new command Enhanced Debug File ... ') $Command 'Merge Command Files', CmdSpec, CmdFileTo, yes, DefVol $Display('Done') $Displayline $RestartLabel $If Public SystemChoice = $UserSelectSingle('Press GO to publicly install',& 'Cluster WSxxx>SysImage.sys files for a Server') $Else SystemChoice = $UserSelectSingle('Select desired Operating System Installation',& 'Cluster WSxxx>SysImage.sys files for a Server', & 'ClstrLfs SysImage.sys at Local system') $EndIf MultImg = SUBSTRING('Cluster WSxxx>SysImage.sys files for a Server', SystemChoice) SingleImg = SUBSTRING('ClstrLfs SysImage.sys at Local system', SystemChoice) $DEASSIGN(SystemChoice) $IF MultImg < 65535 Selected = 0 $While (Selected = 0) ClstrChoice = $UserSelectMultiple('Select your appropriate Cluster System Modes',& 'Real Mode Clusters', 'Protected Mode Clusters') RmChosen = SUBSTRING('Real Mode Clusters', ClstrChoice) PmChosen = SUBSTRING('Protected Mode Clusters', ClstrChoice) $DEASSIGN(ClstrChoice) $IF (RmChosen = 65535) and (PmChosen = 65535) Temp1 = $UserSelectYesNo ('No selection was made. Select Yes if you want the menu again', 'No') $IF Temp1 Selected = 0 $ELSE Temp1 = 0 Selected = 1 $ENDIF $ELSE Temp1 = 255 Selected = 1 $ENDIF $EndWhile $IF NOT temp1 $DisplayLine $DisplayLine $If VideoLevel = 2 $Displayline(' AE No Cluster Mode selection was made. AA') $Displayline(' AE Press to exit AA') $ENDIF $DisplayLine $DisplayLine $DisplayAndWait $Cancel $ENDIF $Displayline $Displayline('Processing your selected installation ...') $Displayline ; if the user selected the Real Mode clusters then display all ; different RM clusters $IF RmChosen < 65535 Selected = 0 $While (Selected = 0) RmClstrs = $UserSelectMultiple('Select your appropriate Cluster system types',& 'B24 Cluster', & 'B26 No Local Disk', 'B26 Local Floppy Only', 'B26 Local Hard Disk', & 'B27 No Local Disk', 'B27 Local Floppy Only', 'B27 Local Hard Disk') B24type = SUBSTRING('B24 Cluster', RmClstrs) B26noLocal = SUBSTRING('B26 No Local Disk', RmClstrs) B26Floppy = SUBSTRING('B26 Local Floppy Only', RmClstrs) B26Local = SUBSTRING('B26 Local Hard Disk', RmClstrs) B27noLocal = SUBSTRING('B27 No Local Disk', RmClstrs) B27Floppy = SUBSTRING('B27 Loca@ eck for the type of cluster and prompt for the appropriate ; diskette to copy the cluster file over WS#>sysimage.sys on the Server hard disk only ; if the type is B24 $IF B24type < 65535 $Displayline $Display('Copying B24 Cluster OS to ',DestPath, 'WS200>sysImage.sys ... ') FloppySpec = ConcatStrings(DeviceFrom, '') $Command Lcopy, v1sys.font,FloppySpec,Destpath,,yes CopySpec = ConcatStrings(DestPath, 'WS200>SysImage.sys') FromSpec = ConcatStrings(FloppySpec, 'B24Clstr.run') $Command Copy, FromSpec,CopySpec,yes CopySpec = ConcatStrings(DestPath, 'WS200>') $Command LCopy, Sysinit.jcl,FloppySpec,CopySpec,,yes $Display('Done') $Displayline $ENDIF ; end B24 Cluster ; if the type is B26 $IF B26noLocal < 65535 $RestartLabel $Displayline $NextFloppy('Cluster OS Diskette 2 of 6 (B25COS-2)') $Displayline $Displayline $Display('Copying B26 No Local Disk OS to ',DestPath,'WS252>sysImage.sys ... ') CopySpec = ConcatStrings(DestPath, 'WS252>SysImage.sys') FloppySpec = ConcatStrings(DeviceFrom, '') FromSpec = ConcatStrings(FloppySpec, 'B26Clstr.run') $Command Copy, FromSpec,CopySpec,yes $Command Lcopy, t1sys.font,FloppySpec,Destpath,,yes CopySpec = ConcatStrings(DestPath, 'WS252>') $Command LCopy, Sysinit.jcl,FloppySpec,CopySpec,,yes $Display('Done') $Displayline $ENDIF ; end B26 NO Local Disk $IF B26Floppy < 65535 $Displayline $NextFloppy('Cluster OS diskette 2 of 6 (B25COS-2)') $Displayline $Displayline $Display('Copying B26 Local Floppy Only OS to ',DestPath,'WS251>sysImage.sys ... ') CopySpec = ConcatStrings(DestPath, 'WS251>SysImage.sys') FloppySpec = ConcatStrings(DeviceFrom, '') FromSpec = ConcatStrings(FloppySpec, 'B26ClstrLfs.run') $Command Copy, FromSpec,CopySpec,yes $Command Lcopy, t1sys.font,FloppySpec,Destpath,,yes CopySpec = ConcatStrings(DestPath, 'WS251>') $Command LCopy, Sysinit.jcl,FloppySpec,CopySpec,,yes $Display('Done') $Displayline $ENDIF ; end B26 Local Floppy Only $IF B26Local < 65535 $Displayline $NextFloppy('Cluster OS Diskette 2 of 6 (B25COS-2)') $Displayline $Displayline $Display('Copying B26 Local Hard Disk OS to ',DestPath,'WS250>sysImage.sys ... ') CopySpec = ConcatStrings(DestPath, 'WS250>SysImage.sys') FloppySpec = ConcatStrings(DeviceFrom, '') FromSpec = ConcatStrings(FloppySpec, 'B26ClstrLfs.run') $Command Copy, FromSpec,CopySpec,yes $Command Lcopy, t1sys.font,FloppySpec,Destpath,,yes CopySpec = ConcatStrings(DestPath, 'WS250>') $Command LCopy, Sysinit.jcl,FloppySpec,CopySpec,,yes $Display('Done') $Displayline $ENDIF ; end B26 Local Hard Disk ; if the type is B27 $IF B27noLocal < 65535 $RestartLabel $Displayline $NextFloppy('Cluster OS diskette 3 of 6 (B25COS-3)') $Displayline $Displayline $Display('Copying B27 No Local Disk OS to ',DestPath,'WS127>sysImage.sys ... ') CopySpec = ConcatStrings(DestPath, 'WS127>Sysimage.sys') FloppySpec = ConcatStrings(DeviceFrom, '') FromSpec = ConcatStrings(FloppySpec, 'B27Clstr.run') $Command Copy, FromSpec,CopySpec,yes $Command Lcopy, Bawssys.font,FloppySpec,Destpath,,yes CopySpec = ConcatStrings(DestPath, 'WS127>') $Command LCopy, Sysinit.jcl,FloppySpec,CopySpec,,yes $Display('Done') $Displayline $ENDIF ; end B27 NO Local Disk $IF B27Floppy < 65535 $Displayline $NextFloppy('Cluster OS Diskette 3 of 6 (B25COS-3)') $Displayline $Displayline $Display('Copying B27 Local Floppy Only OS to ',DestPath,'WS126>sysImage.sys ... ') CopySpec = ConcatStrings(DestPath, 'WS126>SysImage.sys') FloppySpec = ConcatStrings(DeviceFrom, '') FromSpec = ConcatStrings(FloppySpec, 'B27ClstrLfs.run') $Command Copy, FromSpec,CopySpec,yes $Command Lcopy, Bawssys.font,FloppySpec,Destpath,,yes CopySpec = ConcatStrings(DestPath, 'WS126>') $Command LCopy, Sysinit.jcl,FloppySpec,CopySpec,,yes $Display('Done') $Displayline $ENDIF ; end B27 Local Floppy Only $IF B27Local < 65535 $Displayline $NextFloppy('Cluster OS Diskette 3 of 6 (B25COS-3)') $Displayline $Displayline $Display('Copying B27 Local Hard Disk OS to ',DestPath,'WS125>sys@ th, 'WS241>SysImage.sys') $Command Copy, FromSpec, pm28spec, yes $Command LCopy, t1sys.font,FloppySpec,Destpath,,yes $Display('Done') $Displayline $DEASSIGN(pm28spec) $ENDIF ; end B28 Local Floppy Only $IF B28Local < 65535 $Displayline $NextFloppy('Cluster OS Diskette 4 of 6 (B25COS-4)') $Displayline $Displayline $Display('Copying B28 Local Hard Disk OS to ',DestPath,'WS240>sysImage.sys ... ') FloppySpec = ConcatStrings(DeviceFrom, '') FromSpec = ConcatStrings(FloppySpec, 'B28ClstrLfs.img') pm28spec = ConcatStrings(DestPath, 'WS240>SysImage.sys') $Command Copy, FromSpec, pm28spec, yes $Command LCopy, t1sys.font,FloppySpec,Destpath,,yes $Display('Done') $Displayline $DEASSIGN(pm28spec) $ENDIF ; end B28 Local Hard Disk ; if thImage.sys ... ') CopySpec = ConcatStrings(DestPath, 'WS125>Sysimage.sys') FloppySpec = ConcatStrings(DeviceFrom, '') FromSpec = ConcatStrings(FloppySpec, 'B27ClstrLfs.run') $Command Copy, FromSpec,CopySpec,yes $Command LCopy, Bawssys.font,FloppySpec,Destpath,,yes CopySpec = ConcatStrings(DestPath, 'WS125>') $Command LCopy, Sysinit.jcl,FloppySpec,CopySpec,,yes $Display('Done') $Displayline $ENDIF ; end B27 Local Hard Disk $DEASSIGN(B24type) $DEASSIGN(B26noLocal) $DEASSIGN(B26Floppy) $DEASSIGN(B26Local) $DEASSIGN(B27noLocal) $DEASSIGN(B27Floppy) $DEASSIGN(B27Local) $DEASSIGN(RmClstrs) $DEASSIGN(CopySpec) $ENDIF ;end of RM $DEASSIGN(RmChosen) $Displayline $Displayline('Processing your selected installation ...') $Displayline ; if the user selected the Protected Mode clusters then display all ; different PM clusters $IF PmChosen < 65535 Selected = 0 $While (Selected = 0) PmClstrs = $UserSelectMultiple('Select your appropriate Cluster System types',& 'B28 No Local Disk', 'B28 Local Floppy Only', 'B28 Local Hard Disk', & 'B38 No Local Disk', 'B38 Local Floppy Only', 'B38 Local Hard Disk', & 'B39 Local Hard Disk') B28noLocal = SUBSTRING('B28 No Local Disk', PmClstrs) B28Floppy = SUBSTRING('B28 Local Floppy Only', PmClstrs) B28Local = SUBSTRING('B28 Local Hard Disk', PmClstrs) B38noLocal = SUBSTRING('B38 No Local Disk', PmClstrs) B38Floppy = SUBSTRING('B38 Local Floppy Only', PmClstrs) B38Local = SUBSTRING('B38 Local Hard Disk', PmClstrs) B39Local = SUBSTRING('B39 Local Hard Disk', PmClstrs) $IF (B28noLocal = 65535) and (B28Floppy = 65535) and (B28Local = 65535) & and (B38noLocal = 65535) and (B38Floppy = 65535) and (B38Local = 65535) & and (B39Local = 65535) Temp1 = $UserSelectYesNo ('No selection was made. Select Yes if you want the menu again', 'No') $IF Temp1 Selected = 0 $ELSE Temp1 = 0 Selected = 1 $ENDIF $ELSE Temp1 = 255 Selected = 1 $ENDIF $EndWhile $IF NOT temp1 $DisplayLine $DisplayLine $If VideoLevel = 2 $Displayline(' AE No Protected Mode Clusters was made. AA') $Displayline(' AE Press to exit AA') $ENDIF $DisplayLine $DisplayLine $DisplayAndWait $Cancel $ENDIF ; Check for the type of cluster and prompt for the appropriate ; diskette to copy the cluster file over WS#>sysimage.sys on the Server hard disk only. ; if the type is B28 $IF B28noLocal < 65535 $RestartLabel $Displayline $NextFloppy('Cluster OS Diskette 4 of 6 (B25COS-4)') $Displayline $Displayline $Display('Copying B28 No Local Disk OS to ',DestPath,'WS242>sysImage.sys ... ') FloppySpec = ConcatStrings(DeviceFrom, '') FromSpec = ConcatStrings(FloppySpec, 'B28Clstr.img') pm28Spec = ConcatStrings(DestPath, 'WS242>SysImage.sys') $Command Copy, FromSpec, pm28spec, yes $Command LCopy, t1sys.font,FloppySpec,Destpath,,yes $Display('Done') $Displayline $DEASSIGN(pm28spec) $ENDIF ; end B28 NO Local Disk $IF B28Floppy < 65535 $Displayline $NextFloppy('Cluster OS Diskette 4 of 6 (B25COS-4)') $Displayline $Displayline $Display('Copying B28 Local Floppy Only OS to ',DestPath,'WS241>sysImage.sys ... ') FloppySpec = ConcatStrings(DeviceFrom, '') FromSpec = ConcatStrings(FloppySpec, 'B28ClstrLfs.img') pm28spec = ConcatStrings(DestPaA e type is B38 $IF B38noLocal < 65535 $RestartLabel $Displayline $NextFloppy('Cluster OS Diskette 5 of 6 (B25COS-5)') $Displayline $Displayline $Display('Copying B38 No Local Disk OS to ',DestPath,'WS212>sysImage.sys ... ') FloppySpec = ConcatStrings(DeviceFrom, '') FromSpec = ConcatStrings(FloppySpec, 'B38Clstr.img') pm38spec = ConcatStrings(DestPath, 'WS212>SysImage.sys') $Command Copy, FromSpec, pm38spec, yes $Command LCopy, t1sys.font,FloppySpec,Destpath,,yes $Display('Done') $Displayline $DEASSIGN(pm38spec) $ENDIF ; end B38 NO Local Disk $IF B38Floppy < 65535 $Displayline $NextFloppy('Cluster OS Diskette 5 of 6 (B25COS-5)') $Displayline $Displayline $Display('Copying B38 Local Floppy Only OS to ',DestPath,'WS211>sysImage.sys ... ') FloppySpec = ConcatStrings(DeviceFrom, '') FromSpec = ConcatStrings(FloppySpec, 'B38ClstrLfs.img') pm38spec = ConcatStrings(DestPath, 'WS211>SysImage.sys') $Command Copy, FromSpec, pm38spec, yes $Command LCopy, t1sys.font,FloppySpec,Destpath,,yes $Display('Done') $Displayline $DEASSIGN(pm38spec) $ENDIF ; end B38 Local Floppy Only $IF B38Local < 65535 $Displayline $NextFloppy('Cluster OS Diskette 5 of 6 (B25COS-5)') $Displayline $Displayline $Display('Copying B38 Local Hard Disk OS to ',DestPath,'WS210>sysImage.sys ... ') FloppySpec = ConcatStrings(DeviceFrom, '') FromSpec = ConcatStrings(FloppySpec, 'B38ClstrLfs.img') pm38spec = ConcatStrings(DestPath, 'WS210>SysImage.sys') $Command Copy, FromSpec, pm38spec, yes $Command LCopy, t1sys.font,FloppySpec,Destpath,,yes $Display('Done') $Displayline $DEASSIGN(pm38spec) $ENDIF ; end B38 Local Hard Disk ; if the type is B39 $IF B39Local < 65535 $RestartLabel $Displayline $NextFloppy('Cluster OS Diskette 6 of 6 (B25COS-6)') $Displayline $Displayline $Display('Copying B39 Local Hard Disk OS to ',DestPath,'WS220>sysImage.sys ... ') FloppySpec = ConcatStrings(DeviceFrom, '') FromSpec = ConcatStrings(FloppySpec, 'B39ClstrLfs.img') pm39spec = ConcatStrings(DestPath, 'WS220>SysImage.sys') $Command Copy, FromSpec, pm39Spec, yes $Command LCopy, t1sys.font,FloppySpec,Destpath,,yes $Display('Done') $Displayline $DEASSIGN(pm39spec) $ENDIF ; end B39 Local Hard Disk $DEASSIGN(B28noLocal) $DEASSIGN(B28Floppy) $DEASSIGN(B28Local) $DEASSIGN(B38noLocal) $DEASSIGN(B38Floppy) $DEASSIGN(B38Local) $DEASSIGN(B39Local) $DEASSIGN(PmClstrs) $ENDIF ;end of PM $DEASSIGN(PmChosen) $ENDIF ; end of MultImg choice $DEASSIGN(MultImg) $Displayline $Displayline('Continuing installation ...') $Displayline $IF SingleImg < 65535 LfsClstr = $UserSelectSingle('Select your appropriate Cluster sysimage type',& 'B26 Local Hard Disk', 'B27 Local Hard Disk', 'B28 Local Hard Disk', & 'B38 Local Hard Disk', 'B39 Local Hard Disk') ; Check for the type of cluster and prompt for the appropriate ; diskette to copy the cluster file over sysimage.sys on the hard disk ; if the type is B26 LfsType = SUBSTRING('B26 Local Hard Disk', LfsClstr) $IF LfsType < 65535 $RestartLabel $Displayline $NextFloppy('Cluster OS Diskette 2 of 6 (B25COS-2)') $Displayline $Displayline $Display('Copying B26 Local Hard Disk OS into ',DestPath,'sysImage.sys ... ') FloppySpec = ConcatStrings(DeviceFrom, '') FromSpec = ConcatStrings(FloppySpec, 'B26ClstrLfs.run') SysimgSpec = ConcatStrings(DestPath, 'SysImage.sys') $Command Copy, FromSpec,SysimgSpec,yes $Display('Done') $Displayline RebootFlag = True $ENDIF ; end B26 Local Hard Disk ; if the type is B27 LfsType = SUBSTRING('B27 Local Hard Disk', LfsClstr) $IF LfsType < 65535 $RestartLabel $Displayline $NextFloppy('Cluster OS Diskette 3 of 6 (B25COS-3)') $Displayline $Displayline $Display('Copying B27 Local Hard Disk OS into ',DestPath,'sysImage.sys ... ') FloppySpec = ConcatStrings(DeviceFrom, '') FromSpec = ConcatStrings(FloppySpec, 'B27ClstrLfs.run') SysimgSpec = ConcatStrings(DestPath, 'SysImage.sys') $Command Copy, FromSpec,SysimgSpec,yes $Display('Done') $Displayline RebootFlag = True A  Enhanced Debug File $ENDIF ; end B27 Local Hard Disk ; if the type is B28 LfsType = SUBSTRING('B28 Local Hard Disk', LfsClstr) $IF LfsType < 65535 $RestartLabel $Displayline $NextFloppy('Cluster OS Diskette 4 of 6 (B25COS-4)') $Displayline $Displayline $Display('Copying B28 Local Hard Disk OS into ',DestPath,'sysImage.sys ... ') FloppySpec = ConcatStrings(DeviceFrom, '') FromSpec = ConcatStrings(FloppySpec, 'B28ClstrLfs.img') SysimgSpec = ConcatStrings(DestPath, 'SysImage.sys') $Command Copy, FromSpec,SysimgSpec,yes $Display('Done') $Displayline RebootFlag = True $ENDIF ; end B28 Local Hard Disk ; if the type is B38 LfsType = SUBSTRING('B38 Local Hard Disk', LfsClstr) $IF LfsType < 65535 $RestartLabel $Displayline $NextFloppy('Cluster OS Diskette 5 of 6 (B25COS-5)') $Displayline $Displayline $Display('Copying B38 Local Hard Disk OS into ',DestPath,'sysImage.sys ... ') FloppySpec = ConcatStrings(DeviceFrom, '') FromSpec = ConcatStrings(FloppySpec, 'B38ClstrLfs.img') SysimgSpec = ConcatStrings(DestPath, 'SysImage.sys') $Command Copy, FromSpec,SysimgSpec,yes $Display('Done') $Displayline RebootFlag = True $ENDIF ; end B38 Local Hard Disk ; if the type is B39 LfsType = SUBSTRING('B39 Local Hard Disk', LfsClstr) $IF LfsType < 65535 $RestartLabel $Displayline $NextFloppy('Cluster OS Diskette 6 of 6 (B25COS-6)') $Displayline $Displayline $Display('Copying B39 Local Hard Disk OS into ',DestPath,'sysImage.sys ... ') FloppySpec = ConcatStrings(DeviceFrom, '') FromSpec = ConcatStrings(FloppySpec, 'B39ClstrLfs.img') SysimgSpec = ConcatStrings(DestPath, 'SysImage.sys') $Command Copy, FromSpec,SysimgSpec,yes $Display('Done') $Displayline RebootFlag = True $ENDIF ; end B39 Local Hard Disk $DEASSIGN(LfsType) $ENDIF ; end of SingleImg choice $DEASSIGN(SingleImg) $DEASSIGN(FloppySpec) $DEASSIGN(FromSpec) $DEASSIGN(SysimgSpec) $IF RebootFlag = True $DISPLAYLINE $DISPLAYLINE(InstDoneMsg) $ENDIF ErcOut: $DEASSIGN(InstDoneMsg) $DEASSIGN(TRUE) $DEASSIGN(FALSE) $DEASSIGN(RebootFlag) $DEASSIGN(CmdSpec) $DEASSIGN(LocalSpec) $DEASSIGN(ServerSpec) END ; end of cluster option :PackageName:Cluster OS Package :Version: II-3.2 :RequiredMemory:50K :RequiredDiskSpace: 640 :Commands:'Enhanced Debug File' :ProductFiles:EnhancedDebugFile.Run WS200>SysImage.sys WS252>SysImage.sys WS251>SysImage.sys WS250>SysImage.sys WS127>SysImage.sys WS126>SysImage.sys WS125>SysImage.sys WS200>SysInit.jcl WS252>SysInit.jcl WS251>SysInit.jcl WS250>SysInit.jcl WS127>SysInit.jcl WS126>SysInit.jcl WS125>SysInit.jcl WS242>SysImage.sys WS241>SysImage.sys WS240>SysImage.sys WS212>SysImage.sys WS211>SysImage.sys WS210>SysImage.sys WS220>SysImage.sys RelatedFilesB 00O00[Sys]EnhancedDebugFile.runExamine and modify the data in files and devicesFile Name[Write?][Image Mode?][Symbol File?] Volume Name] [New Volume Password]^[Format Template][Device Template][Log File Name] [Overwrite OK?][BadSpot File] B mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmC mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmC mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmD mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmD mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmE mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmE mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmF mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmF mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmG mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmG mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmH mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmH mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmI mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmI mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmJ mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmJ mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmK mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmK mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmL mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmL mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm