pki-javadoc-10.5.9-13.el7_6$> +5ƗL>; oX? oHd  J P T l p w }     D b     / >yÙ r HHIIv(I8I9Mp:yBGHCI~XYZ[ \P]d^Y.b Fpd G?e GDf GGl GIt G`u tv w x y 40 oDCpki-javadoc10.5.913.el7_6Certificate System - PKI Framework JavadocsThis documentation pertains exclusively to version 10.5.9 of the PKI Framework and Tools. This package is a part of the PKI Core used by the Certificate System. ================================== || ABOUT "CERTIFICATE SYSTEM" || ================================== Certificate System (CS) is an enterprise software system designed to manage enterprise Public Key Infrastructure (PKI) deployments. PKI Core contains ALL top-level java-based Tomcat PKI components: * pki-symkey * pki-base * pki-base-python2 (alias for pki-base) * pki-base-python3 * pki-base-java * pki-tools * pki-server * pki-ca * pki-kra * pki-ocsp * pki-tks * pki-tps * pki-javadoc which comprise the following corresponding PKI subsystems: * Certificate Authority (CA) * Key Recovery Authority (KRA) * Online Certificate Status Protocol (OCSP) Manager * Token Key Service (TKS) * Token Processing Service (TPS) Python clients need only install the pki-base package. This package contains the python REST client packages and the client upgrade framework. Java clients should install the pki-base-java package. This package contains the legacy and REST Java client packages. These clients should also consider installing the pki-tools package, which contain native and Java-based PKI tools and utilities. Certificate Server instances require the fundamental classes and modules in pki-base and pki-base-java, as well as the utilities in pki-tools. The main server classes are in pki-server, with subsystem specific Java classes and resources in pki-ca, pki-kra, pki-ocsp etc. Finally, if Certificate System is being deployed as an individual or set of standalone rather than embedded server(s)/service(s), it is strongly recommended (though not explicitly required) to include at least one PKI Theme package: * dogtag-pki-theme (Dogtag Certificate System deployments) * dogtag-pki-server-theme * redhat-pki-server-theme (Red Hat Certificate System deployments) * redhat-pki-server-theme * customized pki theme (Customized Certificate System deployments) * -pki-server-theme NOTE: As a convenience for standalone deployments, top-level meta packages may be provided which bind a particular theme to these certificate server packages.\.x86-02.bsys.centos.orgvCentOSGPLv2CentOS BuildSystem Documentationhttp://pki.fedoraproject.org/linuxnoarchq49 #/ZF/'y]S3;`WJ,G{-)+?4.OZk"t${XD-8DP?p.-.^--h-0t.*?` 2u(r% * "L7<?Y&l{&ۂLbg"J2.2KV,I4iG;80*";C,i8cb->--.M.y.,le*\0#.)<? %o!g@8)/2t. 3GY,k,C32Q2(7y% :0(tdBD-:@2D D195C:F44N.+=%%0aY9?]0Ad3D!Bj Xhyynl.!c0{&s${DNcc%Ji0RKn!/YD?;CF.LaBu2(4 ++..++-I+=,BX7+q^P+OncncB)M#'(yh Q+&!Oms#.wKg ;d>\1YL(.P9#"`@O7Hj,[2u !#?Nh< Z9i0IE;9{4n\q',";$jP#zw/kY@`&6x/+?} D.C&D9#cL.(0W30b0$$u(m2Cs/$f 9- ,%;/-7&'8`#_N "?7)?eW.61A+b6-:q5PS.623`F6@*+G"7J<|&6?_1i,M}$1'eB+MgQt9 WeT.mK&s@G<;^3#=$ep!9!y*O_%47+[q$B! $&1e8F([ߥh+2#3-Z 79=,MKu=-WX,9H+&a,R9XIBu:[94- z= ;/hY#qDf%%0U#7H/Qd)&m,K,++<%X%&R:0J*4l"q3V6<&)9B$ M)XB2X-){fXbqMJC7:G]R=OcFUHZBQOE@JX::; I=V{UI=dDF@ EZK^FAD<MJO@#89;m999797:B3M LCBJ9m8I#< &Wz H$8o C##i 8 >d#%C-Y--CzCD"GJ\.987eh$%('O4'-Z*#"(mm&16e3 {eO$ 09%C#d!0j3!21201|1u22,40I%L-pc;^$$;ZS&U::2eFH.848.Y#K"_vj 4S$l4/]G>8$%#,A<W 7" W{Pr8)hC;@)U:/QhNhV- (>We,X,]LM,b-----R-0f2+J;W24z&uFxAG.bE*N#+l$4,}"nyc{9A;C33Ve!`QG3.;.y~(K)&D!|#tH3J&ra#XFh0)r-UԥS%7%$*$A.LV.&%)d}ά&|^ Jl% $)cq7w))3b0M)+2zhq[$9Y6t:$Eq&YIvJaM5IuD/Pm+.B.9TTelI@_.'  #u"]dA+BaCD>H>%8>!t(@kEX)b7;m#A]7}5"S/|Ne>SB,/k%zI 218n$$yND 25{.+,<-{2' ,#Y0];d3O.2!O1r2&'P4 a!@;/f")&9Vs:0%%J S  *, YL`01x&S&cO328NV =JK!M L0N00&& NO11&&O5=1J5" g;do!$> T!"#N /'o{;-lI(<+dEfP-X_.%%/\c33XJDk \M +]5&[&9'5&t$` 4Lb-b @q'[_|O E!`'e:+c*\0C,5,pn*Kf"ŪA8,F. B!ev73B, Xyyy (35[vV]yc`U[TT>TTcaTUPnccyB)DF6EFWMeG`dJ,yBX4oGT]UaNQe !)41I+hA*c-l4WBnv L<n!mAkX\@e309;[ h 18"$]?r{B=_jimugz~F~8sxu=lixIoh1--7"d8No-8"zd'.x)j SF-~0#YUw<?'_v -d"+YYCi#D""g- Y N-N  zdte X@9pnpq$nuPipjp{n@1 rp (-tss+}sqYOd&G"zo Pz0&HfjYg (fEhvyB|hD:"8Y8\%d70CXR-XZbgDgK}}   3jN8 h)f<qBgg**To%lg JP.nSPGXTXoPWQX/Up5te/UcS.0z *E'pd.;Ne3+Z44/ g,g ;!0;`2w^d):6~~0VC!ǯ|&*~~E~6[.krM|C"8}g}}Q\"r\rrr;@< ?TW1G<ZG?DD.xqo<+r[;<9F6?;7<77G.5&JP$$"{:#q-8-Ndl-w\0^20Kj=B8C/0>b>ye4L1qBhz%>}?+}-oF0>AN-,/O ,.Z.,8 }$% Ag(+s`}."QQ ]#!84~~U&S @iUT$KS(=*(!/1t%':53+CIXh*7-    #G-  !w!.)DkJ';w1I}k;*+1 L%/bM*88H&}I591,#.,2>V :!G6@A;APAA<::@@?77M7M.(3C+:FvbeHf7 7'q<@OVA?QSUH;~2c~nIYAd?D> yy\l?E@?>A@B@A?J=B*M'ccM8? KJ@M@Q@/@I@@>F@ D?B>!M7BnnM!yy K =J!?A?I{AoAAK? &yceH>  P0 -.#>7:;8=T=4=!=J<<7=< yy~56J<<y=_%??V?vA?z?z?n4wyyyZ]Al@NAD@${ @@ B>@G@BD BABD@$+ $>=J@BDD:DnBBN/eYooY X?B,?+!kqX@BxA!UuyfACC"CVAA-!0 J5A,EBCDCCB&CBAAN-.D"88" ^#@@@B B>@x? *?[DA>A;?A3@@K7!c "SB27 {'G8750O!/?Ah/b4/p7J/B6Ig/=|/=\0.K/G<G 9/@/R/7/m>/F/~H.~4Fj!T$ jB9/qZ+j~1%d, $,9<8:!+p$;;/I/x"px<G){**-c%/[%>BT>>?? />xC@t?dK=9=7=<?`O>K<@LFW>>>>T@U>l>>1> iN%%>F>vW,>)s'+\>@ G>A?ZMu3X^Py +'Myy4X7h!ItG-'fX+8dMJmF']<!G (mLc "g\c T'Q6OL5U6t'5D#,BSW$;#$$#/w8i%&%r=Xi/  K'%O%|T(&?absVsos't diskzsOt,yLl=s## *:\|Qp<_~?cy#"+h~~h.W3P."!++II,Qz/tP<*0HAYɐMM7BM7,M7MyXn, "#-1Dk{!D36?=::86;I@sJ@;6;}?>J;;v;:9;A,=>`<2l6;;888@:k:7=<6<3QIH,mMB!,c)*7X MB!,!BnM7n!7M,,M,7C552h<ƚ]f7L8jELLSEF89"8899j?#8S:z?=A!0|,77BMXy#.6MX #!/eGtB;ZY2*A큤AAAA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AAA큤A큤AA큤A큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤\.}\.y\.y\.}\.}\.}\.}\.s\.s\.s\.s\.s\.}\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.r\.r\.r\.r\.r\.r\.r\.}\.x\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.r\.r\.r\.}\.x\.x\.x\.w\.w\.w\.y\.}\.q\.q\.q\.q\.q\.q\.q\.q\.q\.q\.q\.q\.q\.q\.q\.q\.q\.q\.q\.q\.q\.q\.q\.}\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.s\.s\.s\.s\.s\.}\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.}\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.}\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.}\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.}\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.s\.s\.s\.s\.s\.s\.s\.s\.}\.x\.x\.x\.x\.x\.x\.x\.x\.}\.s\.s\.s\.}\.x\.x\.x\.w\.w\.w\.y\.w\.w\.w\.y\.}\.s\.s\.s\.s\.s\.s\.s\.s\.s\.}\.x\.x\.x\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.r\.r\.r\.r\.r\.r\.r\.r\.}\.x\.x\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.q\.q\.q\.q\.q\.q\.q\.q\.q\.q\.q\.q\.q\.q\.q\.q\.}\.q\.q\.q\.q\.q\.q\.q\.}\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.y\.}\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.}\.q\.q\.}\.w\.w\.w\.w\.w\.y\.}\.q\.q\.q\.q\.q\.q\.}\.w\.w\.w\.w\.w\.w\.w\.w\.w\.y\.w\.w\.w\.y\.}\.q\.}\.w\.w\.w\.w\.y\.}\.q\.q\.}\.w\.w\.w\.w\.w\.y\.}\.r\.}\.x\.w\.w\.w\.y\.}\.r\.r\.r\.}\.x\.x\.x\.w\.w\.w\.y\.}\.s\.s\.s\.s\.s\.s\.s\.}\.x\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.q\.q\.q\.q\.q\.q\.}\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.}\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.r\.r\.r\.r\.r\.r\.r\.r\.r\.}\.x\.x\.x\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.s\.s\.s\.s\.s\.s\.s\.s\.s\.}\.x\.x\.x\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.s\.s\.s\.}\.x\.x\.x\.w\.w\.w\.y\.}\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.}\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.}\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.}\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.w\.w\.w\.y\.}\.r\.r\.r\.r\.r\.r\.r\.}\.x\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.s\.s\.s\.s\.s\.}\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.r\.r\.r\.}\.x\.x\.x\.w\.w\.w\.y\.}\.r\.r\.}\.x\.x\.w\.w\.w\.y\.}\.r\.r\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.}\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.r\.r\.r\.r\.r\.}\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.}\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.r\.r\.}\.x\.x\.w\.w\.w\.y\.}\.s\.s\.s\.}\.x\.x\.x\.w\.w\.w\.y\.}\.q\.q\.q\.q\.q\.q\.q\.q\.q\.q\.q\.q\.q\.q\.q\.q\.q\.q\.q\.q\.q\.q\.q\.q\.q\.}\.x\.x\.x\.x\.x\.x\.x\.x\.x\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.}\.q\.}\.x\.w\.w\.w\.y\.w\.w\.w\.y\.}\.s\.s\.s\.s\.s\.s\.s\.s\.}\.x\.x\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.}\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.}\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.r\.r\.r\.r\.}\.x\.x\.x\.x\.w\.w\.w\.y\.}\.r\.r\.}\.x\.x\.w\.w\.w\.y\.}\.q\.}\.r\.r\.r\.r\.r\.r\.r\.}\.x\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.q\.q\.q\.q\.}\.x\.x\.x\.x\.w\.w\.w\.y\.}\.x\.}\.q\.q\.q\.q\.q\.q\.}\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.q\.q\.q\.q\.q\.q\.q\.}\.x\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.w\.w\.w\.y\.}\.q\.q\.q\.q\.q\.q\.q\.q\.q\.q\.q\.q\.q\.q\.}\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.q\.q\.q\.q\.q\.q\.q\.}\.x\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.r\.}\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.q\.q\.q\.q\.q\.q\.q\.q\.q\.q\.}\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.y\.}\.r\.r\.r\.r\.r\.r\.r\.}\.x\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.}\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.}\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.v\.v\.v\.v\.v\.}\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.}\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.u\.u\.u\.u\.}\.x\.x\.x\.x\.w\.w\.w\.y\.}\.s\.s\.s\.s\.s\.}\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.v\.v\.v\.v\.}\.x\.x\.x\.x\.w\.w\.w\.y\.}\.s\.s\.s\.s\.s\.s\.s\.s\.s\.s\.}\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.s\.}\.x\.w\.w\.w\.y\.}\.v\.v\.}\.x\.x\.w\.w\.w\.y\.}\.u\.}\.x\.w\.w\.w\.y\.}\.}\.u\.u\.u\.u\.u\.u\.u\.u\.}\.x\.x\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.}\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.}\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.u\.u\.u\.u\.w\.w\.w\.y\.}\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.}\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.u\.u\.w\.w\.w\.y\.}\.u\.u\.u\.u\.}\.x\.x\.x\.x\.x\.u\.w\.w\.w\.y\.}\.u\.}\.x\.w\.w\.w\.y\.}\.}\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.}\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.v\.v\.v\.v\.v\.v\.v\.v\.v\.}\.x\.x\.x\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.s\.s\.}\.x\.x\.w\.w\.w\.y\.}\.s\.}\.x\.w\.w\.w\.y\.}\.v\.}\.v\.v\.}\.x\.x\.w\.w\.w\.y\.}\.x\.}\.v\.}\.x\.w\.w\.w\.y\.}\.v\.}\.x\.w\.w\.w\.y\.}\.v\.v\.}\.x\.x\.w\.w\.w\.y\.w\.w\.w\.y\.}\.v\.}\.x\.w\.w\.w\.y\.}\.}\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.}\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.}\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.t\.t\.t\.t\.t\.t\.t\.t\.t\.t\.t\.t\.t\.t\.t\.t\.t\.t\.t\.t\.t\.t\.t\.t\.t\.t\.t\.t\.t\.t\.t\.t\.t\.t\.t\.t\.t\.t\.t\.t\.t\.}\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.t\.t\.t\.}\.x\.x\.x\.w\.w\.w\.y\.}\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.u\.}\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.t\.t\.t\.t\.}\.x\.x\.x\.x\.w\.w\.w\.y\.}\.t\.t\.t\.t\.t\.t\.t\.t\.t\.t\.t\.t\.t\.t\.t\.t\.t\.t\.t\.t\.t\.t\.t\.t\.t\.t\.t\.}\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.u\.u\.u\.u\.}\.x\.x\.x\.x\.w\.w\.w\.y\.}\.t\.t\.t\.t\.t\.t\.t\.t\.t\.t\.t\.t\.t\.t\.t\.}\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.u\.u\.u\.u\.u\.u\.u\.}\.x\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.s\.s\.s\.s\.s\.s\.t\.t\.}\.x\.x\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.t\.t\.t\.t\.t\.t\.t\.t\.t\.t\.t\.u\.u\.}\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.t\.t\.t\.t\.t\.t\.t\.t\.t\.t\.}\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.t\.t\.t\.t\.t\.}\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.v\.v\.}\.x\.x\.w\.w\.w\.y\.}\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.}\.v\.v\.v\.v\.v\.v\.v\.v\.}\.x\.x\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.v\.v\.}\.x\.x\.w\.w\.w\.y\.}\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.}\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.}\.v\.v\.v\.v\.v\.v\.}\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.v\.v\.v\.v\.v\.v\.v\.v\.v\.}\.x\.x\.x\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.v\.v\.v\.}\.x\.x\.x\.w\.w\.w\.y\.}\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.}\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.}\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.v\.}\.x\.w\.w\.w\.y\.}\.v\.v\.v\.v\.v\.v\.v\.v\.}\.x\.x\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.v\.}\.x\.w\.w\.w\.y\.w\.w\.w\.y\.}\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.}\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.v\.v\.v\.v\.}\.x\.x\.x\.x\.w\.w\.w\.y\.}\.v\.v\.v\.v\.v\.v\.v\.v\.v\.}\.x\.x\.x\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.v\.v\.v\.v\.}\.x\.x\.x\.x\.w\.w\.w\.y\.}\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.}\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.v\.}\.x\.w\.w\.w\.y\.}\.v\.}\.v\.v\.v\.v\.v\.v\.}\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.v\.v\.v\.}\.x\.x\.x\.w\.w\.w\.y\.}\.x\.}\.v\.v\.v\.}\.x\.x\.x\.w\.w\.w\.y\.}\.v\.v\.v\.v\.v\.v\.}\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.w\.w\.w\.y\.}\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.}\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.v\.v\.v\.v\.v\.v\.}\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.}\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.}\.v\.v\.v\.v\.}\.x\.x\.x\.x\.w\.w\.w\.y\.}\.v\.v\.v\.v\.v\.v\.v\.v\.v\.}\.x\.x\.x\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.v\.v\.}\.x\.x\.w\.w\.w\.y\.}\.v\.}\.x\.w\.w\.w\.y\.}\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.}\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.v\.v\.v\.v\.v\.v\.v\.}\.x\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.}\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.}\.v\.}\.x\.w\.w\.w\.y\.}\.v\.v\.v\.v\.}\.x\.x\.x\.x\.w\.w\.w\.y\.}\.v\.}\.x\.w\.w\.w\.y\.w\.y\.y\.y\.y\.|\.}\.}\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.}\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.w\.w\.w\.y\.}\.}\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.}\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.w\.w\.w\.y\.}\.}\.w\.}\.y\.}\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.}\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.w\.w\.w\.y\.}\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.}\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.w\.w\.w\.y\.w\.w\.w\.y\.}\.w\.w\.}\.y\.y\.}\.w\.}\.y\.w\.w\.w\.y\.w\.w\.w\.y\.}\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.}\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.w\.w\.w\.y\.}\.w\.}\.v\.v\.v\.v\.v\.v\.v\.v\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.w\.|\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.y\.w\.w\.w\.y\.|\.y\.}\.w\.w\.w\.}\.y\.y\.y\.w\.w\.w\.y\.|\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.v\.|\.y\.y\.y\.y\.y\.y\.y\.y\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.x\.w\.w\.w\.y\.w\.w\.w\.y\.w\.y\.y\.w\.y\.w\.y0dafb55e530d3cfe6fd721f99ea4efe22d5e7a25bd45002d2f2a58d744a1124f97b7d8c9f840d29116b1c732535a084b342b2ca59313426d053e584b6fa764ea7f652226c9d7ab0ffef88f5f0383cce401e9b06f074dfbb156a92a0baaf703ec4742cacb29ce3449167f35b0bdfb6447ced699eb9acc818330819fbb0f37c5a970254bbdea074bed17c9633bfe3b89c5d930b0863032a0fd32c726bbec8347e3f0a4b47521fb063be194e0f8d5ad3817c4af342eb6f34beba975fe773f505f89619e2fb0c3ece33d282d7135df9b6af142f86e05c77fc25543749e5728ddb8dc87230afbd9e00064ca7b2e759450f5bc7694e70b5a3c92e9f3a82ea01a34deacadfe186652c2bbf7974df87a606d19d7d0541af998072881c8188c84ff335d2067840ebe3e390211a2c35baea5abc194f8fac43084ff3ce61f7cf62b63480ad8755871f0e02170876f0c1c2caf7ee14013aa3cffa0ac5e126ee30167a618b6f37023d49bf99f5e12ee5321b5b2d4dcd9acefe39dd482a5d413edd48411e6043eaf86e57255a05d9b5e423ebbf710bb558df0c4d7ddb9babb104d240a7afca799ab6dec59054e50bb2366c07d1332f25037073223492e9b87d7dae79e8242524e502c292543720d1004f88e477c917d70a86672d9403a1ec2696976f1ea3331cb4a425d32d4bfab287480e7577a8e002e50a3e6f1a6e628705524f75c2a7e4f88e403b6d49d4919500edf0fff47f67e90ea3b7121f19d07c52617e2601463fb432980f914af9bc0021e0471cf8d0b70d8c06b0ee724165271d4ea458840e09d816623eff677dbb1d0f04f76c924698a666f539a92190cc5459ca058e7d77cdc7386c9214520e3a3c4588cd157f2c299f2e902223968a8351cd6b958155f5ea29507bc965cd52d01e0d7f70eeca0e0975043174e198d533aa5033dea51cf6d0f0f914240a46e1eff9e95bcae750de11a458c9d24639248845b277628028bda37d2345b71da7d75e5ac5634aa8055782c026fa9cd4cdbd2fee999cc7e1343a3a4806ed791e6305d0c233b3ffabe9bac3bb8bef94c1d13d4d032ed7c30a3a1a138c449ce866b68012c9d1d6489d1e78a2cc4a0d51836cce9ad99ece67b977585465ef080f9be89d59216903aac63be25ebcf461570e6acfa32503dfd1918192cb9ee4b9728227fdb9fe6284369ce66c5641bcd12edfe164d858c4eed54fca735b6113225f8d657b90892e41b5c6abcbf29e8d8ca88249e6392dbc679d13d7c777bc1817d892fe6c6186bf6b31651597a52a2dfbb77b84492d74eae09e894924c6293c022f1b3ca9d975bcfce953b81cf49f8d2e520e184c50d18b2b333c525c862cbe9895d55a586afdf7af436f306fb828a67d7729cac85d4e807369f3e409634352f769eadadfb623aea1d97c334ebea515049867e87597d9b396a8ff1e286d6a2ddc144f234739dcbb0ee626c7b001ec06ffa71bc3b5f49b15222e56e04732a4a6e58499139e4f374e4aff435b5cd76785cafe1a4814c97e47f438a25d4e7d897bb2f8719c39d2c13b8740585816b93c49870105c5870e4c04717218d6765f666014c4702fddf3cb384533a23611344eff6c14c116bc8014787658232400419e43a5c647f6d5208fd04d93053af11da678d0e48ce732ed4ef16e288d952fcc9e15c4ab996b01abcc10477fb77b472034dc631311aad968e008799c534e6ef06f4a95af996944ad4ee880ac4a02d4a19c854fb96cef139bdfa9f15de8e402b0f63c4114d0bac67fa553a32ab4a4f76ff523f5baeda0490faaec9cbff5cf8647ac9790a973099c5c482856272770241a27fe757007c78c202a92b50ea9f28fa4071ed3c4e90b878e11f746939df80af1ba4e64d41aad93e90611b9c7cdeda00510b3f5fa25d9275b156d89a33f8cbbe10e104063d0d0ced3fa2b1298cb13eae3fe93d96b48f085ef5306683cdcd1c689889ee6af8c2c25699af19b0ecde3924640f2a3383a2146f57ab66fe84c895fb030e168d568031a65c59540053c2ce50806d99e402c20538f8e53608fa8f1427184fac31da3859da623d614744680665ea14746a65493fffd2a76c853d3bf6fe7ea9d67d7d290ad8e761165bd2a766b70d11306a53856f0de60f2f8c97c9c75739343ab080f773c42b6c703f64ff4e2bc701329882e024967d3c03eb37c697304c90637a6bc20f773c1def704e1e77aede9a00a6e89bd73032b674a4b494601c061919d9814009b06c30726271272fb5181da08c84da78e5d893ce195eed1956257f0dd476089fd311029dcc0076a7da68fdd43d32cea7bc26300873223350cb546b917fd1b83a2b6f438ecf683e13fb0423fdae5d44cb8cbc564a372d7d57d150f6ab2876fa40dd16fa9e364e527f593e21d56ac1f6aa5623f8afbacf67507db74ce93e45377356c06d2ee69643ebb8bdc0149bf10e0b21817c95744fb81e2882333316f91fb226e7567f80c1edef36797a5ee1ee101d8f87d2b62578b7ed1b468559079f74270a3072c8f299ff9c2e7efabdcf3c3017244a4358acb233c615a7269e9290d324f84babdfa5c8926416497e8617a86ecc06a8b508f61c82307a09a20da249f0860b82185cbe00d715cadea2fb0a2363c8c7d2ad0f302c2ee4ebf824a971ff7c71c52ae2865ff16c5647ff927d20ce9472701fafb3185807885d61383518eedf0256a24648bfde49677a8564764623037a6e6a9fee38e9cce8737461151044c03600eea6dca16d7ee4e48db4a78b8c0dc63fd8a8fbc78a52c13fbe52a1cf0b4eaa645762574ff5bc17633186296aa0f33208830fdd538727907716595b79ce369c1151a30a19ee26af54842717b9689a9b5ed076c9c355dbd990b7a73d78f0f29c341f04072f5e938a5b8b72c5c2a2216ba2d475dcab873bccbb07cb15bb1593e6b2f976366048fd8cb521100d864c3b399e577dea2200aa97ad0716751b14aea6622f3be52c769478c83d50829da8447d4395af307f2854e6a8d6be8dd29981822ae9e06f2b470081273fe08aebcbb71e8d73170f1229b50fe3eff8121011f29789e871a91d7c3b8684047b18798789a980b61430c3c1280961f5841b3e474237855f466c0b818105523f96f2cca96b3c612ff53daf751ab619675eb44fbd389347e4fbe0d0662452de77dfb4749e84ec8b3c508ef0124898f09d71cfd3e172594b717c650e8ec999702d14df76ec289d6bfc9990696da805ae8cfb86b80b42ea3c0984a19db0b983a481862b5f382284e90f95f0ff23ab79fdf1a079512460b25fb87af0b7e6031159f544dcf5481727ba82c32b7b621976c9fa63c50f33aa1175d126bf6c4252779639d6aaa148924ac5c7cbff815b6daf30f8ed24a1bbd5dba613b59f9c6fce582a71488bb42ac0e8a8bba75e72da9e5b17cfac8df1c0cf2996a92509b5bf783ec21ec683bc457396e049685f1474f90ec5ae381b32ee7dd75d010e93c2e1bb2d912dfd03f0527bbc4239257e35a12a267420babe5727492eba923ca6ef1d4fdce778657fce304398e4cca23b94744c01eb3d5d63143643ae3bd0e8fc97757f6b96d4bd4b61d24b2fd43fc462c12440705c318c57e43d237dbddef250f79b53d9c9392fb4861741ffd02956abd99c8e1997aea11165d76c75df118c0a37366463d7bc269a35752140516df2f22111e871033e59bf3c9a4c88db50d21975206699f7b6fddf798b467ffee75c10690b1e02f56178e21fd448ebc2922463a0202cd9d77450dc5e373ed32a4515262ccd27d1c21ea53085a74ff01fc7ea09733d07130b784e8cf3a34c2df92b5f6d87e6c8d274f73529a4b3c921465192dba9a8e4adef6d6fd70f8aa487dfe618ac4ac89e1767a6913ffef4f0423dec95156e394ed9f74bca813171ae31299e175b59ffdece19495cff03c2266e1faf7fa9c7ab33735f873564779253b2209e4ec320688387855f91d8260ce12532458c86c71e10dfa57c701b9dfe38edfdda570180459c3b17d5e2664b4d1d1666496725160db1c7ddb34902f2f4069782aab715a29f115bd334f35a74d22be644693c11432bef97ac504ad28c2aeb7d0d9f2153c9abb24c4ab9b5a3f3f62bc65993c1f9ca8ef6217b3e6f57bfeecb4d875394c578d3484d132faaf7d3d12b42cadb1604d10428df280a57fc7793b1a17daa590b5ef5b0c806a7e55946f11e2fc3b242d865ea7ef4a58e907ee8c730906620fb6e182ab22b53b7619d269c6747b872ca91c7c984c5831bda678288141db4c692a1d65d90da6f8853a08ddbbf79e32ef54aa5c9a27263f84d3bb8c8cac300de7e6fae9370abdb0f6f558804fa49a132d856a53b8c2dd3b2b2d95ee9f4b5d6e4509bc241d1e5de12ea062e9ce04eddcfaeea99f4758b7d372d7bc251bcce6617a307f1f558363ba3eebae1f1e1ef406111612a9ffb688f69c72fa2dbf383234a046a22ffb567c46a04f261864bba586856dc122a6c87f3c235c48d5093a4eaca66db7b661f794e292cfaacfaa8b5bde0f5dda847288f7523402fb9172d76c0bdb08b598f34f8b0201a1579d63b905bd88f4924dd4b4b3f0d2b0c775fbfe31fdd8b896ae920e9b40d40de9a68d339c9545093545c7f949f8f507862a9547866300b005104f4220947554155fa75e460050c51a0bd51fa90c28590c1bc3639dc2e5cd5e5651fa00933c0ad97084bd984dd213db1884032e02558a6e1548f1191693811095413c7427d1900436ce14603c8b00d6d1d3cae62c38ada615d803ae94f4b3b73713782fb5bb339947769cdebbbaded28bf6068ecdfd75139546154a4d7bfcc572d1c9586561ea82d0e6435f0f0e56b896e38fd2014eed6cdc72a7e079f993a685631d74a510a3b2424c3a8213b32753cb240f0d963070d2bf84c6107c7e90227ffe6056da24b48629e3299f76eee8930ba75e6596aa774d513565e905a1203fcf64b7b7b9beabdb72909e7c1fb3b7d7623ca67dc906c67a42fa25d61dbc5976d1377076bdd5d642413a96b9bc8b7231794f2896cfb178015779413098818e468741f06e924e90b99db329bd036a0b9817ee469e8c4173d165e26c612fffc2946197c381244dee325fce230d526b977294ab9c76d99dd0254e2cb0de7a0aed8c5e944b29170d7f850d32612d82cb1d8a1cb28ce7e633cebbf412fd37e0d2300def20c60496fe7065f795119b50a5de19bc0eb487d6c24a0ab6b59fd46279c9adc2430b2e92ee6c017f6b689ca330fa0e2b8c9fd9a3d1678ee5cc56bc21989b9fe25b9964c694863f4af6ffb7d513ba04207906ee0fad4268fc55a38709a526b65ca2ea437da15024fcfb4dfe03dc60afe6555718bf4b98a4a71036d673627b9315b19725a9bf0397a4fcd8ad64569a2b564da02247cd611e22b11df05fcb8121292ba695ed2fc5e73655aee9679098d0ff9ac3871a7ed0517aaeb27b7402d3319dbfd2019cbcde943f3381a763646a6e729fbdab733bdf80eed2010ac217933658ede6a95ff458eb4776b4cbd04b5faa8dd6a32e97043a869bbe145c2ef1f8f484fc9cbaa3e0a825f66b80136b6f90338b64bc70ed0829cc6c37c2fd8c6eefc363cc487e6181aa39e14d1293751bc12831f9ab0e04ce0365ff9b704fb5c29328d429ead60438f18886373ec1aadb38e923293f08a981416f6c5bfe2e089ab6225611766d19cc1bd26d955433eb0a03d8fdc9ec29d31255324a7ac137856ac6d7c8177e1d239d9da2ef230d4ae812dcc8a6ddd48c5ae9a1543b36e469309face65abde8c0f326d3a2e5d9ab0da6f989c2182f6a8a170f4e2423e71955da34252946f13d068a76e13150c1ca4b620e8a5678c26a182fb30a88a899433a568f70531559672fe32994698ca6727290ecff625e83b58ce046ff1b3a78bd8611ee83022481a54da76f376c26d571bf14be3669452b8f02c20db11024e20339d7b8dea4411fb1341b94fee4855c958f7299477734ecea47159a78a03fcaa28bac4b9ec23d0fd475cd2c068fc9d8523c5670be2870cf2cf73b8db3088b602de9388efb42bc16af77ef939496fbab2b078ef085c38370b23534d16f1389ec7cf237e5904f61058b62885e30a6b46b89df019b571b23c24aa0a3cd4364606a336b15df1a661e2fddbd4002cba34e8165c69edee6fada0dbfe8f718b860488ccc7ffde4d28c444b88a4c89149533e9c4da6742847edae2af5c90e218a9214c492ced07615bef7294248c42b59359a4cb8e49ac181ef68870d556070ec6529d715bde8dcb453ddb0d92dfe92bbdf9f8933894a4223de8e728bee7b37ff65b9905faf28d6de13ab5c4e4477a14f4728a9539b809fe89f3851631d26a9223c07d433da9aaf1d5232e39bd51aa215f05d4b6f0dab4c4405b70c83a8b814acec58ea3f24b0cf636aac323a76423a8fcad1ac0c8bc9900e39fb064e9804c23b85eaaafbd8d8519b9f48ab92228d395bb20795cca592a2b29d4ef8758e729e089691bd75e4f9e2c5953bfe439052a72d9bfd7dbb34e4efda557d524f58db81aa6a79614adadb916b759a7856651f10e284166698c36108c32b7d3a601843fa1606ab49706d9a9c58da9996ce52322063018dd3108df33e62eb189018505bfc723947757ca809b83f7fcc87cde9a68ef4501b3e419627d31c5a174713bb1669ff08e24d7b3a6126eda829a151401b36f2ca6f40be78f1181da4a3871e93901c3e0eb84ee3e0294046518a00c9aa5f3157d4c32537a8881644802562bea29f5fd3e84cd4d6e568e55bb34b99bcf1a3779f2c79758c73e257a56098859d6474e7c5fb1db931acb719667a66e434f0943b1a22711e1f59ec17546998c2f351e14775c999c0278a455e97f30ff44718d6d6c1e16ebbab90427386ccc2320fb25e5472651d91d0ea9e1153750508e92053db4f8930b03cf872a046e113a47e35ecf7dab17b929d13820cacbafe6079ab30c87bfb4aca8563c9f25b0a324b24f111a33f86e9fd717ecfd1b03773e0dacb8209f41907dec3ad47b792fecd189509ad258b77d91b319ec29663ac78d4b54e4ffaf022e485e086485636ba134364aad84f4ad52076e6061a53e055ee961124069902aedd4e8cb42adf74417584f4d60c5c141da655292b6491912ce0d8f8210d764400ee2d411dff339215e7c6f05152420957040cc6febc2d2eff8b6b70cc73cbcf43e9c38aad241b5d44691e30eb51a5bde19b86c440ca98f12d1c78630982071eb2042f937bc6da68bea77a34271b30031f0aa75a2b9562b953f937439fff241eff0645aa9fc84c826cb73c68fad901b5c7a7a92b39400ca16e459d75f3e8051850913ea37c6fa5d66ddab623f708d7535727ce2443276fdd90c479a1f736ce3ce16ce9991013edc03537397b4b3013632afbddd7353631d1fce6e18098cda5617626c92f504d78be20cb078196d3a1ff9d291a6394e0221f5fe8e9e8bdc2b6fd786961b7588db9d4b212ab9e5ddb15345c15a09d7897d9ebc97e0ed1157fad11a08bd37f62ab49625ee304996b45b2d5f66f0e48c5ae3e9033543986a0c4c7849e130ac62fb2e81ffc77834b8a5674c5bede4ac8dbfa195c57a192b26c8debbebf27c42c283164ef25899e19625030f6da7a0a033f9f010789c45f65f28e4e94e3c351e247305ba8ecc8c646bd5daf35a3611cdfe20a49808e657f89e67dc11da40b5477ba5733554062065b224052f92ed434eeb65ac19a209315f3796ed167419e6ea0a9c14ee845c87ba71b06a082ae7e5bd53d32893be597239e7740acd7a59a4d55abb2f6ae996795cc28abcfd57ad16ef19460ac0e8cdad8a1fc99ee26aefa7292ba179f0c93ba1c1c5bd7b67026fca4cd7fd01c12158f0b24846f350fb2c5f6c86cf6c1a3c75be061c1ddf0250e5cdda4cd5d23fc8ee35be4e57fd9fca9ac11b2c31049f0d0f3fa4835f8c3006ac44b1f3441d2da86dc44d2807d00ed25a03c95bf1cf92c0efe49b8344b5258ceb07436ac44598c684ee28bdcb1e9d2ac4cb79d0d0c1b7149f263d60597e4a5d8b9c7c9be66aeffbc18f29252c2e4edf99f55d6fb9e9373cdb938ecd4e6a2e547bbfaed4507d87474d089b42ecfb790ef0da4293c94de36a2eed9f06505f53bd2e1c75031f22a99e5fc1be5b19dcc3b417e5048523326126e93d62bc71eaeb01a8265684dc0e8248fc32b1984a998e18414f7d7b9b92c88f910cc4710ad4aa1ef44a6f450526a07b2a40eeb63ebd5519f207fe4a39f4d547110eacbaa171fd9389b4d61c80177c54eeefe9648581d276e61fc4c66cebca888c9dbf6901dd7cf8d98604e63fdd18a983128f19b68dbe3ee8fc1614707f6480596b5c8c39c2773c5915683e9f97c84bafd1238448d38bf4420eb2c450745c7aabd7de046c813ff554fe1c5908be920792eca5dc8ec930265b74ffe36c7226417304c0e46749c913597dd7e3bd16eb9b4bb09e5de3a0f4e00ec0994857bcaf2190e948c608c5bd59259b832dab1522794f08548906870d0f7a8a50d988ce0d857975a6f0af91b4411f94e9f8d8aa1b8e57d8bdf523db057e74f5866d3411a1c9e817a5bd47f85537aeb29aa2254dcb08061f277d353ffbef61e216a92bc1368276fcec7685b63f7c2a8d6882211515c56133eab921353c99b178657971bc1245db62c1d47e70d048b160e32a0c6617e3413deebef8d2a0e7d29e67c810172992f35124ba875b838a6e8a9c5317acfef7b88f1addd5e9f67d36c41892d34f2c5907b6d0dd01a203f379bb2e4c2f12cd4a3f4add31f399465a00b9c76e9256a626b32ef1d4184b3c46c9c38f3128db136162db815e896c2083cb77e47b695ac7de82b3e4ade21bf1a1c634d8cbed2e69737e8b8140416a5cd0177fe5c201ef1b9b32fd2cf938b75606711c8b8d89db1e30dbd4a354fa70f65aec7c0310b632d56e6baceeaa6017f3a62f25fb7fe154007211cbca6bdde595ec398d28d35e233ea95ae9b21f0e9338795381761c244baf2cf4910d9900fb92620e3117ad1d75b7ee7adba7a5ede0dc1b6ad63f20ab917d60f8a188882f8bb1cc5f0b2f4b78b0d44f3494c6e139b4e9a3f3694c914bdff334de9cefa5ac49809e8d90a88830a6341555051e69ac1c75c5f559b847bb28baa06f5a6c4e437f4d256103d8e046e293562d3daa682f6b7f1005356c002cb00edfe4de7a760261ec365f1bf426168e5a7ff5d5b4ba13b07311257d24d5a8cbc6ba4202a6fcf1d7aefdc5e785bb9ca2adebb348abde830ac310397bf0ff8f237a855db28e2e859d70d3a9ebacca8af10617497e4c3c1f4600ccc025a3a982e222de5895975b901a29cddd2caf67da6e33252b3a63f255eacf2dfbd3b9ddf568dba82ce5eaf402082aaeaf9fc0f93009f1895cc168ea5524231336903b56fabc03b5036ef0d73a8c4a01581050578576b9df192de8de8c311e8be8058f519e08e65afc5ad3a1b4bf5b405fbc8e2a121fb566e8305639a2ddd3b65bdb10e3c9e6085ec4fbe6e35b951536354bc01fc2aee95f678345f7ce5f7dff1b209fd7ebc2cb75f7af4ffccb5dc733fe0bba1b7ecd420fe7937e4b4f4904000450ffb4f23734cd41b082c64ac3b0d1f0bd49dcc16c88eafe4bc5e54b2e69d95cd03d131d650ba8613a944dfce6e26bf7b7df2e5adbff71e6dae64c19b26844ef31cb0532b1a2fb0a416d681dc8e62e998490e8e6b37b5b76d4881534a7ceb180c17402aaa9f9b8b5435767b447e87de7ac45deb4fc9a9b03c54902359c6a338e3e5c3fca3ffc18aea634e6c5263708fb8b564ecf019a5cccefc0c8eea9d80c5c71a10263c0bced65ebce570bb64e1d5c0d6fef0a48a435f6f5c1949b52b8d91029b31c663becdf9a379e130006be0cbd8ace7862b5130c93415934742185c11aaddb56b4a432cb14b9f01b43eaa9f3a09d2eff9ead611ac22b2fe06cbedf1dbfecf68616b85fc07176cbf43b1f2cbafbc25ee336b707b7d9660c34e291ea7049ea911a5949fc1ab767f866cdbfeaf3c4122909c265119f4c6cacc06048f4e3de9ff34d471ebe8e0573fb2be82c603706ab3668d1b00336bf184f976f4f1c95ffc13e973d1a2669227e4315321b447feab7ec16378fd8bda6bd3dc837eea0d8a816b758aa66157e843b19126b375f0a1db9e46a41d313b1225baf21941f0ff0f8d8f559e2f14d7121c11a17d434bfcf481ca5a5d7c67c726d418c076778208978feadcc5e30c76082fab29e173ac58458993a28b5df33d38676e9ed3730e6b02fb0fcb9796cb70f0c184f8a4a655279ca90319fb3cedd4062e9ba46b017532805e4396eaa4fcaa4f90da79a8a2514c363dfc9dff28e4fdb8ed542096eb5df74d301cac7daa55869507cd8f853bb654fab4846cc0d931c6d4ff2973cb59a7f3f6a9f14f6dcaa28fce1a74b06be4d193cf637ab4ac57c04aca7894f893ea55d122b4b9d1947b872a2a5b0c88bedbc4c38726e3ded3c7ab0997f615d1e9cc9cc7a8842a0fa7eb1f475cef4b4cb1a9f3b24a8029bdb99c33a59d190bf628a07f0d9bd503b5925a7f17ed456d144541fdb7afdb2c26a8e9960abb733526aef82ca05529b1fbdce6bfacadc6fead8529b81e8d56d41275242e50d67fb3e8c9a658f2aa0e9c5eae7069707e2647141ee9b9c3ad834d9c277dd9842c1b2d39e3cb2f4340c0f17df47168f842e0b3faf13b6f823b7a1ce5be9ff60380735c59d4f7b7c70687f447c48fbdf92ed4498cbcd0b943ff3bb4b66e6d86d25c8437f621c997696ca60c714fb7ffbf6011043bf487bd4e23d5e72b9a531062483f995cf04dc0860d64413731f46a2f646ef3fbc85144ff57804c91a731e6d7cd71c3f66a7dc410f4d64b80df3dc4d38104432e6f719bb14906077d076709b3f6e08ab2e268b23fc6f25cdca17049cbdc874b8bb3cd8731dc9c4b9461ecd28d4c0e4178f18b122d28abd5451195ef44256811acb9b6cb69b2843d33066ae8e0178e04097a06cea2b2818185784a307791d3ef5c0cf81ea231ff8a1a339354b88f74f2551a153c7b1bc3d324d4f0f0b5c52ea569a8cdda9734e0057aa8afa117b8ff4a2bd92e49c1368237389602c7dee8d843ba74d858e358e64c1b049330d2050f5c37289247a19e8a464366d3610fea4e99111c2f43d7f2d87f331dbbf65c5526dd6594a9441cbe827db8ee0bd6f5dbcfbd9713fce58c27a19a57c82dcd6eb08faa46c727c2e4898356f4c79d207e2ba9bade53908d8236af52e9afcf71249fe04b1724b4640b5a58ccf9e7c94ccf0a8e53915097a08ddb29e5021d7242feb7b08199700ea3382de6a46cb19b39690f67ec183fc4b42d7d7520a17c08a9e82bea4dc8886c8123bfae86c919526adcd7be2270eedf0dc643b6d75cce9372d5f09fac9f62c937569bb21e3fb0745324c60ae975d543d29a4363df9f4c099853772ef025ee2c18e7178a0b69f7349b2c1491c66c37b9117eedd88f87e4726744bb3b5f7862e15d6af0a7d3391bc9133b231f2557f411c4d18ab46543660103faaa0929de3f2c8354ecb37ad60e2e34613e047396edacd889e47effebe71886d1cd89ed5d4f3ea0ab5db1162e7a06573afa916c1d8cc85fd13c32d05380d42b01f0c99be34161166de83f685ff826abaafa0eb48a09a500139f859b0a0cdcdf8a2775d050540aa0345e59233ae2df30557f257601b0d40ab63792ec407a1a9b1835a7e283950bf9d9046cc0ddfa38b87fefb3ae3f29cf7b7f18573dc15f59825bbf46f99ea86ac8f86ddd53f861cc18d7ae26535ba7236ae3f0dc6fcbcb1cc20de925492987fcf663681cd6327ab8b5c08362790662011ff4e8f7de58ba0066b2cae3b3316adf1c9b63cee5fbc2cfdb9491051bfdd7acf78d9c5a2d9e0ad42befbf22f1dc66724e77139ba67d70a9b00a94d1781ac587e6f61ba10509210caf98d394a1f3b4668639870b7ccc20bf62becd36bd12b0a52acb3949998985fe038e943d759d15cf42e7af2a3d4806f34025494e4adc59b65e0f908bcbf1d87f221a078c7d6c05586b9a872ca100bdbbf0685c6d52072d3d48733915a0b726a8b395ab2ca403dd17c71f5df4f7c7869159f52b6bf805c333988a2033a7075590a300af97d0e3f291c9db72682352f1e875ce25e040e6940d541037cb26ed7d658965a7a92007cb07c2d0a44320ebac3d1081c8426934ffc451de55ebf09e58298852f1259ca09ffcd039c17c9d36ca5764db6ecc859df7c603585ef57d3b51978a35f630c448cd8bd2e387736d04d5da2c6acb93ebd258d0a64d7308de1d1d3d3a0a74130ad1c01dc00dfc178174d9769aee1a53cb0275fd7351251930fa5661f6855c5b5b6ba06d4cd1d1ba49add4deb85157388a109742bc7b83e4f8b437aa66160e567994898338d97a23c74700a09f6fc067b3808ff2d9406c8c2c1be7ebc25e45dc39c848b9822f5922e0a1a7b14cf10938e13fc08ad6ac3a6d2cea9af15fc2be7db144ebdb0181be249aa0b293ad4a57aac8744e9d7737f9c759136453fc83654016c234dd82fff882987d90893f872b557292c7e6be75e358875ae9c30fc73921939b5e3024348e73f40eab4ddd18b83faa5bb11ab99fe4593153d509f0f4ac8f54f4bd6dcc3edc63fed6591315b8a1b089a4c88dbdf3edce5355a2a7d081415645307416456efca27b217481a61ac132cf160a2f05fc8b3a4688791c3ec552826e5cf32ffd14b5c0f8b6630e91ced66757d4129ef72d296d0444f684fd505df6a6983cd872217ab6086fa1b25601d3de355ce23354608de2483484b48b29e06f5aa5f4a2f0da716f5b2454dcd983a4911fdc5a222c4c3a0c9f9d9e496b447c6cc1d8cd8b35cc4b0c063dceb8987d5abadfdbd94685bf3228c393499f6057c66f395e6c44e400f9bfcbb9b44d01599de69dc3a19355ff76b464292606562318e92327135296990f559252ff7dd014d23e2754e511df53e7e67a7c79d084cac47214092b9757e401123e170621e757d738bea9164c631c677114e77208a1a47d0835c1cde6c5f02daf22eb3c95786b98110d47d29a9c1d49bb08267d315f0a87026f8cc4db7a12e79916e395e3d240fea1e218d0b4c807dde3d500ead42413a77f3e2407767340b03cdbda1c3ff61f54bd4149d0474ad047f663ba74beb22900e2b518960f0eb6c48f3ea8722912b68566b7d2c1c25eb1e29baac861202f2bd1abeb0bb9b7d9822cb2e4c9139d1b9bbaff83ccebe6cfe6048204f145e191d7ffd2d2636448c2541a36056999a73656151fc94a088e1cf567bb9d11a59dc04bffbafb5311382962dd5df985bbcf1bfed968101e4aac5d4c54e3035f6f645e6beae1825e3a8455ad52cb0a3956352b524c261ce2f7119b756982b88c565f69a47e525562605ab5d428916af09c2827ffa7d36cda19c6cb2a4c9b1350541256dea7c07253aa5a1d74e64b324588c777060af88303567f634c629c7c8cb55df97399a03a75077510cd2a3c673fbff2f171bc57682afdbd38914021b453576e0f71ce51c9e6a08ab6c8624565f435893896b7e28ac9e6d7eac7da61a68f9ef224881ce33765d0f270ab7f46179f455e1a4a5bc8737456673b2a3953da7e5aefa747abf9faddfabe9b90ae6a49da3d4e9230d5f974f215d468f814f35b6c0022e716538bba9504b5bb195dc707240b4c9b7b8ec9f71cf0b498f025fac1fe71fa5303410d9f5e2465d08a136fcf074ea9bf7ff5a041978ba2a3eb2847dc7f10431041f4f88f5a199f959ceca2b4fedb4667a1db1b92f9feff45c81acaac092b4c10f41979cfa8f822f6e60970d86db5806a9f0176f787c8a87c4e2388444f8d201ca3d587797580f73f41719737c3fe17b2de6504162f988efcb2931769276e0445cc8be965bef9cf4b25bd3c5d784d732d271a1c344ee7744f57d8d4faee3ebbe54e051d1ba09f2f34b697f889bc7a59e52039f0a6f5c0e3c9586bcb3cd2233c0753223d0ef0cb6829dd9248d9045f9eda8398c90d2f3aaa3a7905db8e03fe1ee5a71732d9414fa211c0814ff899700479e3f0d244b7ae127986c07a5e17bbb3bbe25acb52bab8dff6caf0bf72229eaa841fd61031328da6e0d539be386fb3cc45ba3650ee897035c7edafeee3b85d10a8d6ed3460611d58646af1e17f22adb00fab9d3c18b6756e197b0b607f0a77e6c42f9c0a7b4c8db3f94371f77265c7d072ca325dac3b2fa6279c562c9242806499aa5540c5933f5178190080ae3b847a9802b62a3c28cca87d8465434cf7db4a6042a9b36515f3ebbfb84751cfa82459b21356529cd15c80830d1704c34d2826730765298621ece946a08db2187b4331696d0e60795a904dcee09a6a9ca7acb55be3c4147e975331e39aa2248cb2b52af1c24d60e797a22dac1a8d64179143dd3c9448b08a64b5ae4fa80776eb46b7bdd8e5be789ea803bf524fee21276c003bfc6be44db5e05f098ab2deacad9bebdaa32dead3c7aa2e4263d59c418cdf4b1477ba1cfe4261b18447c2b8353fd364b1533c870ade959c0d238324e2b23967909420afbd18442837083f084bf2b1049b856c8d46c400c0bbb08a4115370d10303d9c407a3f843ebb2e70d6799821fd96664d6c4987c1c9039129e79db6a75b498e01c76bc70d6caf363259edf5effdfbf4ec7e41ced6d80ce04ac142796a36fa841a1baeadd45e34a13a917b2da2cfc1c4e51f2113e47bca0f232a11934b3728416be8c88a5c9b97100d0f55627b644fff5c576796b00a6fb95a2c3d078939d4ef6f0ce2a5283f4a5e4ef0d247806fee1d2ee91c8e4866afa1b3678434a4ca76457f4e149cf3289e8cb2904225f154c5b22444febda2f1711b17680d956dc3a2d87cd5299ceb3fc25c562aa4b995034733a3ab3e7b717e4762c1f399d7fda4dcfdbb5aac187e447f4cb6febd8ceb6849202e6faf2f16d9fec1af2d6f79ea42a9e7b24838f265cd76523176a34d7717096d8139370692e28e9fb62ae9a7df98c39050fd7ff7901057f2f4cbbccf80b797ec7b41e3bae1bbba790e749e1178e27386971e5d30a935402f11f083501fef40b023350f8076ea227edea0fc7d5bfe1d501a24ad352e127eb4edb3480a7daab1e732f270c1fb6ee0ff8cd21ad40b25ec2a7c9fa188bab83cca15f48aa3abbc2dca9fd5343cbece45a0beee4534ca34fa9239c981891161cfc59cd949b6a31912e3da0b033e30a0dbe87cc0be633d015142f96d2576b51aa919cef1f1a9a2f841e6c64c653ae14c9bffcc971114eb90fe9427e19a917cb2195e06ac01aec6c530115b6c17553977c29c6e9caf52f2bfa6dea634a6fc29786f7081e2b3b4c587af2bb14532a11c2ded1acbf00319805024aec08bceacbd41b786fc746a6281e8b9c0573b9a5e17eb86fc41e380e8e7a9f0da6d96ea2bec2f5e5cf2dec7f23e021edf628075758e21e1da0558756c6c3d1093a499c4feb431805cf77cd6fa08bb5dfaebc905ef60117490b255ca78ae3a1e54379543273858cd0e970f828699314222c33316ed8231c8d48e43f9065c81dd548e8ab8726953624ba914d1c0d958a1783feadaf5f72d22d94f3c73742579a096a452fa56c88492a036e96cd93d50233166af5c8322d7b8955ada1f7e74c48739bd909d6468ce6ca2e223267512e1dab7a957d04fa7821c3594a3efb44b399fcbceb3cc408e5b93a92a972ccd2ef0703c6ae6f80c0954f979677c8455a4d38f010896a8acff560a4156319196467c99f8972ae65648cfbbf18a12a09802b3b7aaa5c9528e65ade39129ee8d05555efe51e0405147fb0ceacce1e7c9c5081ac655b7aebf4f0e6e605b37f87f0ded78b00fe5aaa57916878fb3997c3a1e5de15a88ad88a1fba7b9919d3a5434914f058dee20e67b28ffe60b18b15def25b39dfac8375d886b86b65085644a2a895b22c661347cd39e3b823e5976f81d2aeefbdd979a7ce51cb8e08f8328d973ed177f9b709e8c02584303ca5d83160e53a58da919e688809fb8b495668c514bf3f370a54b163a59368351e24db865dea845aa60a4edf95ca1001c97aae60c68218e0704b44eeb7817c90d3b80b09c004fe80ff463318fd87d74ce4768941fc4ef820d8780c3b60eb5eb2f1f72ec06be0d621ea5292b74859b959eb116eee2a5be2458d531bcbc4defe38ea8396e07d18350580e6fcd206c8c35cec7907d05a53d170a4d97b32caf4e19fd36af804fa116fb7018efa0e5ddef46408078d25ea1353dc796d85ac0ba0962bf07ed36a7e9f8e7b1623c6cb27cc7ec75458856a8ab2a82a4fcea46a63f200f9736b138da29ea53a8451f78ae7a9bf15bee568a0be0deac533c270c02abd751a0765216076caa0d8080da6604d7aca8dc352a12e41155771755d1e4087aeea9fb419636b6e82dfbd51834c490020505ed93f889308031d6c11c9543b8a616575be8ec6c11fd63f94607f0442de1161876d0467466816702e1d06cbf3923e81d89cc98e566639a678b5cbb19f6554557c05a8845717fdd99b60ddda291f5a370794897cc15d9cb3f7d48444afbd87dba4d8e5071e2a96999b9c0f9fbc3c36e6fedb2450842a424735c05131f50e15d38041617652715fb64784ec3fe46ba919241d22cf374401d7b0382050ee873595e75ce4ab7f3fcf41529db39a93e9b5e14c54d9b32decd5629e01853db9d75af3128d57e3b2892622e7cd753d8aa1142ad987e12db1749d47ff79aa3efe550732f0144b32cd0bee52298bcb9d8b6597a6fdaa888d5a69baa0a235fbb1824195b00289d3ef3b18ee774cea75fb781ccad9b6442f251ea97c0b494a0d1906c2cbf458d9ef92a793cd7bc05ba62efd57205b8dc6dc48a1c4928222cd6bd08680a29c75052fe41c974083b64301a70d5ef21f8366001f07ebc3c77fdbb28338706d20aa74df7661593b7e17f2ee5c39a8a02741814af0f3df78ae150a03056891a6ce56e2e727583b9dd2c7f9e64fc016f60f1d123b5e3fee385e58024eab7e6b6b5d397d2f512edaf2c4bab5468a9e904b7b9bdb35a98de3d0b28d9fa6924bef8ba80ec01879e882d9467184df8ed889151965a778b6a7bf2ffd87a90017dc78d31f5e0888db8384eae72afef2cc924a45d73ca3582118a6d2007323c4e3eaf600f2ddcc12d85705aacb559c8e04c1574ab583751c5ced2d092a35b19aa94fcf0101e4dee928a037be64c9e56cc782ebf5f87ab4bb47303031071d61e15edd8c5ae109eba763874ba3a5de0c83c4ac67ee4112ddcd332fd697fc5f2019f6387be1ddb32300f63c33ac41632afc9a43d65bd03ee8f6eb4ee301e03c161dbb95c531508b6304a62cd521435811897c47f2756953df05031dd6a3c6f25d0156627419602861589762ee2c8e8eb0a941b3a4b2e20341fb7d5640d449e9ad8abfe120c50ae77edb033641a3166a29c3f13b3e52a5c3b91330fd89f36d57fcfe862ca97c851d8bc94c2037f3bb0012ffcdc50deed47c9f70fb50e91e25d209d0244a04c1af66c3b13c7946eaf9a69b58d75425d6b4c99e0a33e19c8c27247917e905a0c3256862d620780768b0bfe40bc7d995dcafe014b663ef81fa6c4be6e1b3407432817f163b220d45fcd52d2f988b44574aee68a7fc6780091b700a673b4998eb7740067f8d22e605dc32dee92b4639bf9fb2ee421f2f57eeac1fbefd2500cc24a4fd84d24136df76a1f77ed529c025ba4387bd1ce9a0ffb53cf167f38da9b69471723d8db9e5abb2ae092ac917428aa302f31018481b6ca6d9849285ee3e56dcd6384f9cf969637ed59a40906fc6356188128828729c99089048fcb8a12db121fe6f8248111c8ad98b5251a6326a04daaa6c16a037a5d221f670fe06dbe44dcafc529e9874d54ab3a254e89cbd871993884002778c301820b67201d0d248c9a31dfdc429a225415b88ea5ff328712ff1e77bf70e7d7b8d9cd24d92a0324162f6dd56ffb8929c7d556519d7f205350711b22ea14311ad2799d39323fdc5863f08c34833292033c5beef16ffe20167f73f4ac82fa90deb03bda988fb3b4023b28159eb6722cfaa9288e52365d9962c3e8045d89cf41436000c005c05d6f2003422c442a9c7afcb5108d868283b50039e25ba0d333d0e36c641fa095a0dae343e781292bf9b2d4672c93d88675df55bb5bc54ef0a91eacb36eaed32548e7384991e050612fd069c37308a1337b15069a73395ba7dcb4fbc0910cfbbf1853887a24d48ede4456ede575dc24fc3107c659271699b5d68bb5798ef45df4ea9842dd16c52fc1d9170d26348463b20e7cff8d0b7e3005cb82476dc6e2a3b72af4b1361c45c0e19a28e52e841f0e4b4d25ba08e7de96f2db3a5ba4c7fb87eabd38bca7add7838e1e8934420b5023f1e93d1f05d85db0c6e90a7366424fd442b10eb8634ff9e1ed848d1d98a2ea8040270f2ea43f9d69924fffc1bc0e6f46c1352683979516090275636a843196a70fa9ba45d8e2c2bae8ea6e1ae29c3abe735a8448091b101ff6e0a0f5dd094869809e66ce797cfc7150442614df1734f51d3446b53549b9b43f980ad6de9e9e1bed1ce681c2366381e29736a1d289122b7b4af72de4db1643e34e025d0bd71688fd34edfc32ee82c4284ef667a36ccb3766730d0707868523e557d6f7909959e00f5ef9a95301e2c67787344a735f488f4df999cd4423bc51f07e78735fe33149638540bdce310cca185f366204c5f2b06ddc56c32133b37d3fe50d9f7da5b9c9513bd873f9add7e6e388f0e41753ec4736ac59c920735801dc29634e13a6dca722f268561a6a96781514f1268e975a79305062f3714f63a3ed1fd00b854d818d1f55ab0a0a250063657e33ab24d4c4916491dbc3f6140f4a03fc82f50fdd98fb94b3d2ea511c97018db8994b9978c389c28c1270525e8a8d0504e8a0f2eb5227d0e77380b4e59332044eb5948252141362484422841c7ae425fba955d6bf258669afa5ea54aad7c998e5beb0db85c241d3572338ac7e6562e60a2d41ba9fd041e416f33acf34d2e836c6baf3d831a15595441e76c5ef0de30d1860ac37516214d0184d3c8404d660954040ea2aaf2ab5380f3cfe17b011540f14a3869714d60d9cd1cfaebbb9a7bb3f6a3d619fa84692cf5bc1c9e5d12352d81c892a77b8c23e5cd4873802eb73e6aab16e7ff232c22aa7970798302ad536372d5e3e37ba782fea2beef8ff6813788f577c8f300787d71a8c549b4d28b42c7f2ebe7d8bac0173e9e8f5c3edf3e93ad65963b408f35b40c8f105afac0b023ea1b8cdb31230539752f8fb4bede82f2f4feb0c1a3acb47abe77a51e049a4bc1ca61061f0cb1e5abc68e39b8a0eb435b38d103b01d84394b9f93b40020999fae18c48aadc9801308480c448a1f18a52ad8d3035f65aa9ecfb31c60718cf3bdd1fe2c3d04aec0722b03c744377a0b4700fca748eed2d647ea0a1e15939e3c197ad4a45471220ec16055e2463ebcfa2792b6182e4f331735b0dd1fcc9e6575b91ecc765f00445e5dd0c239c94b6236e5587d858d3ccf92e0e5abd2f4b2981bf8522f84c398ff12c12d5899594ec26fa9491fbd63135732de1e731d976b8c4213d0d1c5a2b01109f5ddad3fdba98f41887000322b9ff73189d92f33e3a0c4ef57f63ab4b038811964900b0dd073dca2a6d7072455556f098f3040ae469052c72326ade4b409b9c7f230617cbdf07da19bab3274b73c364b98e557a6160852120037f95ed3ab3976462ccf2715d5c42fc2d5d1538fd1850a302d625906e67762dfe3930873817bec21fcd46643f9786e1f95e6b71c899fbd5b8b6ce61e5166c69fe64394b65e2ca255aa70361ab23a8e34ffc395b3deff98ab6d9c47e14060835ce5793444b9b0d4880c2faca3aebec8271f35b06f3f435250edb7fbb558815e1bb3c54694cbd845f612e3151d40688c8c7787a2830db8aac266a367c25b976237b346c4d95df0140cf8994de5cf853071f4dbaefb8b7b4971ef9072504d023c4ecb9fffeb4312fac514789b0fbc4268e2bd02a37ab503be3247b4de87108151eecfb2085484f0daa947fc33a2bc4690b056c8fd4ecefe0f889ede295ca072fc07bcf3a86db17a1ce52094e530dce5d9456c3e1ba82f2e55ddac9c7aa9c3aca7d2c2fb687dd662e857f2d874cc4dbf2914952fe9b32b4bdb86ca219f9f6ec6dfd359607adb2c5cf36488a4b0610707dc1d14adadd7b8c23c44e8c8a6df3182bcb68fe78bc12b1d3328cf0a32e322d677635e14c3a8e35458c49be91b285181425910ffe1533f9e13f1743bb2e1acb7586fd30ecc2ad911c32082f22105e070e0224404a6a57e520ec61ba092e76e21dccadf6661c76ef4642ea31257eb2a59ca59814c455a5c1363f90f80ffd425ade8ac829d17f29f7c26c3f68ea77a5e810edfc3109a0e3066a49198fec3322e808fbc064b078cbcbf1273b6812032522114ddb809cbc717e51c830e937f0df8ab2d6d05ed4eee0be8d5f836b6b33defc8cfdf1a1b3fe5a09bdbd57f7168389ffd8c8c0aebe584bcfc4558ff6ab9b1ee2a2f1a12470c4e0578b0255d3efdc7942c2ceff0c6a4e231788623904e35af32db061705ee2fd9fa7e1d0ce8c4041baf22434dc2eb33e58bc8f56e6557e9e44fcb0d517f1ec7a09f49a14642108875025c47af06f6648a8a84120422cb7786970f3d8ce7b8788b463269e06c00e04db4fc8278fb2857e312e16df98c2c5faf487f00649a13c4c75c0529a1a745cc4df321d09e4d2e06cdb553c5444d0e549583f06ccd04b0c887e7c4fb6c985e43df32d0bb05942b5278a1d03ddad382f84d9f7fa3de08f4170a14ad7d47beeb87dea70f691984d877978a345e315e350bb9b2e6226394dd2e6897e94501f0cada676d210f8f889c90067583c1eb53a3a36a7afb3797016fc07a9b33415ae3afde56fd2fba2e4b2fb0d6d2e3245fd9524645939a18a79e4d07d565a287520d926a99de3a9585b5f2eefaa0105e55ff4a6901020666a9a1d1b70b9ce544712e40e49357ffa1e61d2764a9e6d626e59fbcd566f8a2b69b757ccff31d0d0c77ea4a8b32d10a65e733e9edaff5a97c902d9705a6c0295238084b8bfa9787def8bd8433b8c3bc6f68476da135253bd0bf61809011d470fa0324dbe6b4ea8063dfcb1780c4d5aaca37057245c40542cdcf01e5f1e2f330ebdff6fb9342c80c4a8ac85f19e22f355992256f11219ab87e2a5e2659eac922f13700b78f99f86ac925103586dde3b32a6821847d9fcefc61d2873cd3fe8ed47d211e8c06e0db36d5752f26b6f0bb9275462d8fe452c891bcebd9d83ba4b350ec68b16508141dee4a39614c6150a176c7052b9104a2650effab8242241b3b582940c33b71e20811e3e5fbc603ff7a945aa3a59a55323cce219a367a0f3c3a6bcb6653eba24289f546594398ff6765e829f9a75dbddccedae6f3e10c912d1323603c9d01cd572a46c2685216f80340b233adb8d33d0c57eb6e99794d6f8bc434612e8087090848a1332707f52dc03d7a42a7514fcde46f02f6b03f0eed2f700137952d64f7fa17f7a3fa0565ded92a5f0c16c25b4b9b0e62a8af6b884b6a623ab58e48a5abf51557bac5b66be4cc9d32693670ab079816334901267ae5900d50a51936c88bd96f312aa929eb171e96dc96b8829c0764eb5a3a7581b952d9004e4ec1f0e949bbbd77cb83ceccdc8e4ea4778584e6903859e88ac7f3d1a1016e33caa99a3a5c0061aa7d0364e61e79ad9b2c969340998c5741a45fef3bed1665a7f27750471003231522f852bbbca07d5fbc0c133a7b58ec5991259effbe4aacab92f73a812adc12fe02825c91330ab885c4dd2312b6cf5d77cc5bb29fc26dc5750588bfab4dfbb4c958e73f13763657e178299d0d892771535435803b81f5b73cffa552fb273267920360ea33f8cec96e36248b5a0ccacd21170d927e7708987c4da5575a17864fbf71f87733be1e87671b3e36346f6a0fe00149736a6f54517aeec09d546acf8213eaf8a1b4f6315d9a4ce27cbf49d7d30bcef57a21f3b09fc5532821bc776d89955bea2327ab8a1c7adfbc5933e8ce3d8ded486bd57f4a49a78660d9ef910e8608f71eba311cb3c26849a5a5e31bcea3eb0228602154fc7fe10b4f02485b67686b5cb3d3eacb5f44a9d91f24a7968c49e83c33061606e7702b3c98498b50e92d8db581dafff13fc52e267c98e719d0b22e2d56840ab7fd79dfc650a98bfea92f2fdd92e0f01eb6bcb19480218a0e254917251417ed4da74d6d64086f921c4ca4204f7e29dfd24410aa6d6da2eaa340ba554fcd2aa7d7b853bed0b820aea7047e59d3ce286dfca122fe2d51c04dcfb34bc5e4782871f5968b3e322bb2681fb8019ed211d3bffbe4f103ed5f6eddb59f1ae2ad40bf477a4cd6261bc81ecb8956a9d51304f35344975715fb27291b453137d3ec3087e2f0f41e7867eaecd9652e1456c52ca7211b4dcf63cacfccad1d1349e1aac99061ca0592e8a426c0f4aff440d8c5e12d22b3641df5c6c21b6d038ce553e9c68ca63b197e52a6594eccef3fad3c5b4df22298e0e6397cbbec329fa9beedf21e01afb87315bdc90e54576701e541f535e29c49dcf554ab8ff23ffb9369e91b4df0f10a3f66d7277e3f664c7e94a32c5bfc7070296b984ac2cea2fe7b78dcf9fdec538ed2466e6e0a460f133fd61160667ebf75076acfd438d2f6c8194c6aa21a9d38fcd94c80f2308999dbc2ebcacb2a5bf9eb7839685c6652f6f4544bf6f703488c1c40a2dbe79d607da82a9564426a22b03f3291d12069ceafc8a6156b100e9fcf41cf28f26870d4f860513260b443bce4bd312ea3a5143f2e7d4e07596623eb8e5e34680ec7647f1e49b52bedbfa585a0b76f53e3795f6a33587d8421edcf6b3ca584cf47b40c1223e22a3ea3ca82b72752907ded77b767efc228c9bf70ff123d0b93e50ea270f76ca050d0f0e424d3c621d278fad4441dece4af8e7d69cb07707f849b35eef5768a251acba5c6289688994fd89a81bd17db9a34e7aeed4af2f30896ec7507504983680ab956a3d5b5cc9e003db485384e4036a46687f4dca600bf2d13edbbe7cae97cd6b4475b92e8bcea450eb52ea28ee85193de378ff078e01b53469e63f3a3b379251ea53c689abc597380fd0490091546301a06aed212877e715de17601c7ac21e0d344b3c2f2d9875717126750c1eece0e4daa0c869de0baa9e4c644e183045169493fbd24f70cc84e525c19a9592a041e3d5936c171ce709297290dbc76265704a7f548db366eb0c95766a500dc7f762319695a0ae04208a4a6e0fac4e92142c74a0cd3a7962eb747011d3c0fb180e4a0119bc1a6dc1edb8befb92090740be1c33aae4ed3db79a0fae0f97c92fb1e937ee852d92958910abcd737b3d4c8122555bb72354b21082b88f118d4cff6885337ab18a33c285dd7ee22e4486f05ae3a554766f54ffd186ee0d0c04d1f8d15d236f71c1079b555922a9a3518be8443b0f29c6c99a05574aebf4aa5f3ca2f16f333a8e37bcce37e0667325d57c11ad239292d6e42c6011f275cc0ce267fc8fb07db04c821313da1c19c7a74d5fc742f982b059ad4fadb12ad4db89caef590492ea6d5c53634b46e2a5966878324b17aa4a060c183c3b972e70b4e3b19b518cb8cddb7a7b2dc080f2d0df00840e7f6cd7df848ae785b731c635dc714913ca1d0be461645af077cec5b9020bf5a12f0ff9874d0261897511648f6bf7b530a15c68ff8e535958e11d5064d4d043f32ea7976d94b337f56ef37379575a5b46bb5b7e3c9bec97429ffee934fb11ce563cf89bd3971811f503c45830f34c8c31d5a5320a91b387913e6e44bd64a0ce381076373642e81f149a5a975ab254c1b8e2a12df223d8e70d7947319faaf538d9ba02b4114149946952003d4101f9d6f96e0f67297859efb3d8be398505e471a1deaf69a5fce559d7b3532bebb56869ed9844cd5a324cf15d7703b02b363f5413c2af80cc99354ac2fb1634379f95994750aef8391e5e585b6b00b631fe42b78fd0f08c656c40938ca2065ef38b2916941689ea5d7258f466c2a608b7933a3443a6c4d12043f95031305bdbd0d5933d7aba941cf89c85ab40cc1e140b807a72a6607f1449047eb3f5512f4995868c98e614819f4554fadb66eff749797ef2021381788e54dee9bf20939f9cafd48916fd203fa644745224f9874e14ccbb7aac3ede9009b5771fadb9f05f63fcbdabb77596717ef4f5fb2752b0f4c2512af46f3f5d41fdf90b7f45c3b21b5872c1e1e1e289bcae0175815724542e48a0ac1a0b1ada2f9f9edfd2a36e1de6a1b93606304d2d438c9ee58af2f7c437cd030499a9349ae561630bbf5652194c2c16a8abbb2a6421460f28b1e29b1e280f5e423e5831659278dcb778e0536b96aea31f85b137db6d1ba5a6c9321bf0ff87fc14c7977087cb209eeb805fd30e3d8e3997ddfc17c7d9c6a85cc3e3c28fe4e222b07c3735015b395faa8b730b2cbcf6f224c4b5996b70427a26520ad1ae03e800f80b4e38fe3953ebeb36dd1756f343cec821c83324bcd3cb39a809343278ff1e21b2312b3a2d8c937ef8e44a9fd10010895d7d4a1fd97b4fc9b8099693fef7afc9a096b0e9c66eb09a0fb863d6176ddca30cb7b4ef24aaf4938f34b88fe167511c3336bf9ba8253ca11f5004df7f9e889d38012293a6f2b05c23ec4ffa00676f5b6e9bb6911950df40298a8bfe1e7246337d2ccf486dcb5881301ca9eef26ff51adf932cfc4c415e24bc15d1ad93616deccb3898a53bba720f80cc7bd87b19f3905cc31b2663797b4e643060f0e3593ea3fa010be1f27e89e43d329f9d4b7e87e644d727aaf91e6df9bb9c1b1a6467996593f2bf46012163b8cf2f684db549d44b71363992f16321abf6efb075592fc4460e5552508259404eca4529bea9e1c9ab7f374770a66fc924090c6cb75806852a7283943148406653eba9af8a0166091bda68c05bf7d1f8886a5c486c49d53c93309c0ff5dc2d34e8fca51094dc19275e2730151a1dfde7c92c9dcc34962e75fbeda5a220fca35f1b7f7750ca64389c619c45c858795118dee4a9e32552995741de106c4aa923d85f79c18c8e5b9ff2012cb5f5c8522a51e6abe6d8948b2e6d83c19fca4e0c812eef1f1da51cdc648786b82e2e7e8b9d81d958518de010ee4e2f42ba2a56de35f62ce8459b57c7eeebe22f18e51d5d08a8d1e837a9ed05e6992c2dd98819247084c045bc39cbe5c2502e8178b4edfc935dd251d792383b5887a392bdcdb6c168690cf5dea0c1c02f2f2f42bc216ef4f7c952d6c35a66ed1b5b9369021893c00c0d0a059e3ad31db6b4e4068fbc1ad961fdf6612b8d1d3804dccdca496691e1edcac3219a3fe6f6983e1f9c1bca2b7db0734cfbc69202985faf8ba26b7c146523f6afb03245c7d26e9dd03c260f4788a50336fd063d65ad433e52741449650104bc37f0d9c6a464fb427d977529fda1d65bb9c1d9e6aba15e7ed03aa91122cd3b6d60d517167983238b374c698e883e28c046186ec99ddbe91cfe71227a703963ba4f5f80c434ea554b4f7710997349c7eb094f6e8bce5d15c9867015f761066bf330d7a8ef9e295f1f748ca92470bb101815941e5824e1fbc4920cc373812e95bf52aef209da69f1b31421b212add655c0fde442b72202bdb2127d41e5a39f091de1b1ad6702d208877ebaa1248c49edc194d2e0dedae0fb64e31433b49c87d3594a54c69c5cf2454fe16e31f5602a177ff0c0d17b4f8c252d8f071769a02bee59354c241ff846e7e3bdbca0750af24fe78daaf7603330e8cbaef02be519e9e2d206ca9a3bea60a515fedb54c079523069263c1a86037e6b5b2e8559ecb9f3e78ee611689596399119ceb86eb96335da023a7c5874f5f7dab2068f698d499bca1d233b01d7692a4849ef9e834d7d54e4406e4487cf17d0962492a99e9ed5ad289bb0c5184c0453669f64dc63535fbe0cdd5ce6e1762b1c51ad167df3cda7d0076a631f9ad7c1c9a56c03df9584d426a0298d9f1ac59b788c5f111fcedeb8706c52f927301f546e1e04dc0ed79d8af6c1b39cf7748ded34e43b3bf874a61b35a24d9e9ef2b4fc0d05a08d21dd5dd66b627e82a943afc52ea579d666d706d37cae008bdcfabebef5b9a2d3ee66ecc9ee3c6ccb9903148a91e657e787bd812fc820625543dfcd4ef78b7a33d17f9eded6e90c3591b1d1fcfc5aed24f87bb86ca416d06ed8aa1c5948c21085e19806236f3a589e6e81e9224ec3c05afaeba4575b32c844811c55722e6d084585adb9a848bee2dcc1927d778df8eeba67252cf7bfcbedd4c1422a959a4b9300a32e1f2608a1073f96a4a90c438752b901936907e2b36915c6ece9566da82b259e67989cf4353fafa69b8ce07358ee72ad965fd4c54adbdb931cfeb128efe93699d3ccba5de070cf45ee0ef615a3320a929fae6d506442b2cb4de4915c62396f21bc2c88d42b8d5405a6dba621e9edf8f8b815ac24314c5ad70d715a8b3ef38fa07efc258744cb399da5a1e4d9465aaa65ccf3e4e4c7183d715f5d7d94235f95e0f8b6a074fdd5f76edb4a4df6808c4aab6af57425b136ec5c69b3e4c9a02911bd4875dbc9246ef7a3da8d498dd13cd26c302720da8b11adc7730e8e9d71f60d480750e214b0a6a7e15f242d70ff3160a506ef63911892806e059fcef932fca869a112395482dbaf35b4c32cdccb0e633d129af0eb66961fab43ed041e566c822d86492a70c8f37bfdc5e8a47208d4386d5fcdacb4401027d1192d356d0b2a6883d117e5a0e599ba1150e7595cdfad83932a835c91f00ef6997bc7f98227d6fed136166cc2a93f113ca95afb18c510246c89331cef1a15fcd151577b711cf6ca4c063d0ea15e6393e29c098a7bc55170ed865dbd8d021a1f766cb1ae879f9d2cdc149ae3c295ee3211aeacf766195c86c0cf0d94faff677b0d24c3bb9805ad1372dea4d18c76d781223a7b0fdc0cde0d0a3583afff59f9050011c51241268940ea5ba5fbd2002e1bfc26a21070fd36f57d1352928c30a8403f6882919dac0d6ef62f1289b9da0730ebb19b3be095c366fe1de06d97bd24da253e21c95c9a565bea81b9bf12d98603d824380f65007db35aac7995ea4ae7ea0164b3fbac2a845b847c26da5c566f4b4e9b7845c30ac1859658b9f2e4f7abe540455f8fe05634d85f40b0083548650491bd4b99a99f170b8f8ea5f91f83587c2d0fde27252e756325d69240850bc6724cbe960f5127693b318aa53c7f2dff316984b6f8d054bc18593618ea98cf460849e9206b3780a723261a9309c8bf6d40d28c8ad60703dedcf52e8621c9da9c75ee300272b1e63436ffea736f338cfbe0dbf1b77baa04c8d070390494cb2b57f4bb2eeaec5d1211aeafd0e677d27319fd1d73b659d682b259bfd8551f218a891c9537ca6f2a3914a5600897c55e7f4a4f5a663d01e0ced81a085ac6588c8c375a155feb51950ad21b80576e614c8548e7492c9bdb6f75a35c679672689a0c799b9b4463e365848c6296c8fc3826b9d9226872caea7a69eafb91a00beb6929aebb8d2c828a2bcd02b6acdee42fab8e1a3a469254fbf86fb0a68f9ef1935db21476045a70b5e971cdfa914d3ace7f82fd75e223c95fee01f691a99a497f489e473c22553ac7fad86dd64856e42af0375b0a0914d3277d893fbd079bab915dc3abdb85a43e8518829bbbab07be7ea06f51ead50e1f943c18339c4bac1dbada5455c347953c0a090bbfe0fd8d64a8a1066153938fec1b17e19ab2d60038fe52e316004a0972ac629e91f15269015ba617a63421cba9d4ba7d64544b5775ca5d98505be998e84e3619091edd4889e176b73f5a7199c414747c99440751982895e298fea8a16ce79607a004ff7c692bcebff15c6cc7061ec8052eb659d635b750521062c9e33beeaf0196abffbfcec428cf80d90d32037b2d9542aa2c5ef0efe0c012cabd89420311f7f0ff123ea202c2546457817d2d17a0a4e124224bc469155ab2198e972f6663fcce297824d3fb95f334bf3bd2b6dad184f4dfa5b01afeaa86475e16423d8f1f276cbc837fb99f9decada04602718d2677857e4c0c67537fad34168c4de570f54048c1d36b5e0de5209f0b20453b2de4d47be7ab5618ec0b923e27fd8f18b7b7416b902f6db7d128efba5dc1fefa00cd0dc6c43b3d1e56b4313e351c95e3009158c112373f57623fb87cfe565c9e6c1deeb6af838daad2e44aaacef4ffb23d085cc6483449459d1ec79bbe021219d5cad646b5c9becfbede645d234780f81e12f0ec4d984886d73cd7a67ec1a3d4e0e01b622cfd930faf165d530a4a670214d35e89d536a1b912c6b213b3e9a7b12bc7b615e8918af2c428713cd9d579e46498fcf491414b66aeed315ca1089f6f2df70e9c15f18ce8b247d2e52af9512b19fb86053f98632db36ed55fcff06fc1f75f5882ddd5990867aea04a2e9b497ed806f50a6361c9e4895feeb941f1c365ce8ba4a93a97dd03ea1fe0a5f9f5bc3ec6dcde997f64b63ba12d366f2321f646c7c8d115aeccb4cf0cc6597f23da0d107d388c3ffd936e348e4d9bb38e528409a7ef63147a93546501844f059b3dc5e142acd45b31c36c101e7f9b30db95780972398927a2b01cc7aff81ee26700fa59c82ca6c5210db7d86ba2f409e0cfa6c72a6fc0ee2e25fd74346d930d42f92009f96c68e1289bdfb54ca0b0899d32dc1f4eae7c408bee17f8ad759239fc82f19616e26c618e7489db0f5e33ee29a2f078b4aac51d0a9379154262451b39da10edebbd4b6e09c3a14263ab0f2e560be14c3995324f452c27b8248b21a71f5e0ae1e789f30db6f3153cd9d33db8f68c1b63d07458b9e9f38013c7fade542dee381c667c918367fa88080457c118b5857be05a5a19e5d457560f2bb189a97877a69bff40a84c06d4ac8160c7b2258f0c9e53a5791d2568bc3055f4ea1c097d01ec0b42c642289a81a93c6c62eac567d2eeb7ea45415413cd4752b51a508852f4dcfe1b235101bc8a8c2805ba76eb7b1d3c68c4a5945e2d57a0684bfd3b97ad391a6e80033c6cdadfaf80e20e8adc4ef764d3f693db82d36d3ea34c52351c381d53a1fb7af7222a476eee22abd522cba89a37f3f08948a6bdfbe8894826e744fedd4affcce31dd97d4ad9a2f8c0f87eaf936592bd88a09eb2b202f6262bf4e2fa117390bf558d20057a0bc70c6dd00922c5fff98e86625d90f19edd2cc2a46da71cda0cf7efb6666f7b1191004be68faccca5e60c7865ebf89cb63bf16d15a7e625620095691517ed6ba0bd6b9b0ec27741fcaf02af86ae5c18d49cf8bfab6ea8d69bbfe08384ec08a7fa30ae7936b2ece12e03a5c765f3afd391de0efff923a0f19854fd8e38416084961957c51f356757595530a5283122312a7ad052c826d03fcd84cddaf8edb658fdc3e293f78926447121bfd81f1e1e5321689c88695ba8305c63ba4b54c01901a2d84cb6c85409c04db8df553b0e7d2cef30018bddead415fe67b42b2487dbcc2a1289d1623ea229b60b57f718b459675f8543d634d3ca28db36a1021c83847bd78a1ba623dce0d2a322a1bdca23060523201fbced193ff8e4524cef60af60272f6083e1ab13d6e1a0b4e47ebd0e92d0eac111e98e9d4686d36908f67771690f58540180060253303d895b3ab6cc870316a52636025a608e4a8e42bac6aaff5322d2f02bd1fdfaf0dd91e481da6e3314d62d53d717953cdbe130ba3c096fbe3d367d3040b1c6bc1db0a799eb90a1ec3b1831794063eaa8c3f52c5e5ef7303fef5ab752d5afb714c6aedbb062aa5040df60d33c3b95f5cd4a1e4b2bbc6d8d1cb11730fdbc376e23ce624cb4f03d4ee194faa9e3bf74d3de0623517f4c6c17c9105e29c1f3ec5e43f108ddb7b5318b48aedde36e9cefc768db4db73bde6201a0f04cd8df4e7a98de962891d63b444e6f4cb1bb43718fdb3fa55d92e388ccde4600807163850d7604d193de4ca009af27e1d2ffb1aee469bad2bf014b8d7c9b111c7ad6661dbdc7fd8721fa179f5cd89a106201eef3acaddf152b864e857fe1786c275eeab78270ac8e4d3836af0cdaff2e9347d7d05326a1df437e1211bab6bfdc4fab0d59a4f6bd9d5d8fac62399fc55e1d7f6406a716a15accd8a3b8a2448539a5e1b251c00d8a52da7cf321b57f8f5e4416c0e376c5a3d66bcd385598ba175f5453d89ed62ac0090672059d7cd1f23d4cad3fc9f9f0c75ccd515f806df4a7a89f0704cb46dc772550d6b991a8f2c82310749f076dc72373aad469ed3674fd54926b6665a982c23500fa015d194450afe99d485a57fa69a5427e6d9e1b3237666f73b492ec0ed9a8649e11cef1ab02ae64da98ebeb0568234b9664d49a54010eb4b4ac1e3945e215b6846579a20e6c46f640fcbc6b7efd00529133b5386b79c29a2939de3a9cab4a5ac059a3d182c41d6ebeb8e0520fd01c31bfdddfa506c67c69dbec6e08ce565f68149fe181ebd74afb3b7fe5105ad9611f3e2a1b2a2f8d61116fa04328d5253263dbed2396e72524991d61bf7fa257585ccc93e66f9b9fd796a9f0a4ad7b278215b803cea16d5f67cfc8140f4221bdcfccdb76eea1a77d7e6d5b22994bb1e04d666145acba2eaeaaf4b84da5ac2536f3c99d60ba34fdc6fea4ae68b71d8a1ac6c60edb5f87dda43383060147ccd45228427541733108292e266017d2c5e1d23057c9e5b8c1b59d1256f95430d86f0535537cbcfc58e3995cabab03c2c4f1b58fa923b1415a2de9dc3374c5a702458d0fb47e15e737a6b6dbe5d1d4346631136c1ba360cd69248d8a32e7e157636f39f3aa7a4f3283e9d53a3e722211c680b914508068e415d5ee8e430a74f312fbac2bcb5ec0cdcc60edc24f8a1b95d33ae880d4108f5841e2b431a1af08109c8d6575dd15661f96720382496477e16c99a90a454038e4d0b0b62844e5ceb22746e2292d4f6b52c10b6882e9cebda7800d16cbaca079702ac0b9a5ea731151f759610e8c7a93ca7fd405670737bacdb0bfddb6141f8228ab3c59d0376a6c243f465c92486387421a13d3c0cf229a07b93bb4832a88941df157b1b8dcf31421563925e2d968709b0fa11dbe13d502f3b6f7f06473f5024cb981dcf5df83f37724a3ccc613c4a4a697022293bc4d443a880f26a8e329b33f5cf3733b0c81b2654716bbaa6165d166a594f85d30b90626c17ecc92e1b25605d5fa4b045004a5e2137a9d9c074b39ea3f94603570e44fe3007014ad3d1ebeb8d653d4f44953ca120bb6a32482be05b5ffd8f2597937ee560ffad9f72d8d7dd2892d889679af9a5e579184511ad0a633d23dfd0179aaed4f716fb65252a1f2bf9cf7f0c3e94c8e6775ecfcbcfb90f88a65ec01ec14476cbc950d09366a7d017a1686dfda50d69fb68051cbfeed27472561147326633671d342e6cb90955259fac0413935447fcfd2884ee32cf108f3a9b1b0479592875d9a34628b5858cc1edc26c79ef56f6dbf8f965f592c74ac961e470f3e75f469d1c355729aa81d976f28d95868a151bd6242bc250c5e3c2e38b22ef76199395edc49bb4d97899deff87ab8517f8a66238188ab1aff4a86b0bf8a53104ed0da548d390a9dbf2e37f685b5a4cdf05f369e98e63649d3768c61676a7aeac28923f09fc1289ff7532bb8a1a37150c467997ef2a9910b6021a2f1f938ab777e41c9740cba89f2cd0fac0742717ab07562cb63038730cc08dfae1cb01707e4a4bbb100e60b57b7303ff06b105a80b3e83d809f9591517d7aa7b6c62d73b4961615bea73a5e632fa87df19c0711a1a27a2a36c847c0b7934db78f84d1f1ace5ac1a2112dd4c61b0d3979ad798ddf038f5484ac766556aaa516cc55969ecda19739af60df44b014810f5cbc9ec5947ef5e5bc8ed5ce4109b5dc6efb8ad509883fabe477cfe76fccb313fc4e75df82659ba9d11f7dae5e57719cbf94da9ffbaeafefa9f48516f6ff588ae25a439282db0366d543cdbdbe20880467acf05719f344bb6afec1f303fccf6097e364279e1be5e3eb2c8bb90b63c57070066e29397deb1d413f4d3148816951db7c2f19d3c07a255da6d62f2fa0ff990c1ccb7d69ce5e3fcd408318c9d7014929c44323d2d7b25bbff95e284a7200efcd0396ce0fa2bdb96b7b9962d3bfd267f8babeb29064b3362022ca4e960444d10edc90d7564abe46c2d4780cafd808be731d1e38e8719fd3d977f733b1d99b427c046f200275a422b4fa869c92f72ba11e836477ebdab2864dc4585f60726b3b675603a6b370cbe959b671379b442cd5b7e8fc9f802d9f8757b0b46019128666a9e5904f5e294773938ea91f58f5df2c778929a9525834373f2a9004b27b60740c867268b698642871a266fec239e63a20a3fbddace7346e6a320664cf8a4b2bcea0a6cb05d9eb14bca0f828bd0ae8dcf243d6cce38b687b0353fa97678dcdac07fee22e58a3f5e9790528f4b87382ff015912c6eac984db3a7b489fb3e07a85c2646c9573f5c6c2d4e6d9b26484cf7af4c123270ce884d037d42cd6b34ddee1830bcbabf5c58834a04538b21eb32d70b80eeab7a7de75edc2a4cc0afd1e1c91ca77a66febb1fb83a362cbc0a7b9087d501725114f064e35684175d25fb251410a8560ca9071ee0827a08c0b1a37b04cb9b9d19c084598544ab7f84e551f10b0d60fbb145e01f8f665e61f0c41424b02e7a37a23f67db4274dd248055f01de55d6c3d64765b4630d0b1dd9cf631f3ae65b4b713e4d74843b7cb365b432af3ccb3bc99074ad4e75b611ed73a1fad8c55a0f356d6378728de1a6f8a17c617977aad7ac877520ecb8b4e0ec01a71ee6f21c9f2a22b406f2c57dea2fc0f6efd2f19f190a5fcc4dac169eeddc13561053f5155d28ac5f6d66262b997fc09c7c7841c417d8aff7b9a6445c06bc42c966df340f6bd8e4bcbaada7bfd48ee78821b514f9d02103e42894d074e7134abe5726bdbd496e70990199597eaa7ea279e70cb674e1d832afa92773ed91a6bf999899af72c96b12ba17294088894f5355853efdba905eedbfdd4aa61b1b88fc5d5a80d1b1586fccb5aa9b7318ba55b9e5657900056703542a01c66122cc997aa0a981f1bec3681f83fbc16aab5b1e7e204ce730909e8125cfc0a25a35ffe8b4428b3cbc95aad8b7b4bf734c493bdef4004f09c9194755a43d21386d95187e4cf7bea624b382c737bb4f8ff5bc64148fbe1cb74f18e4d8b78278b7ddddfffca4f6256fc5b0a192a53ee60c4e0431b0d899cfabcf7222af91ab957457d3a1696806f73891bd445d1994188d7bd31f15cfa2fefbd255cb005bcd3bcdeb4e7ddac4ae103b698dfe92dcc14f1078fa1e3a190e302e3dd9da81f2103b7848a596e3aedb74929870d7321f391810abac020c3b9a54d7bc7cbd5bce4aa425b1b079e14a0eb040dbf26241a5e3e445af9d2cd5515fae81e828e90de38e02bacad7eb6d869ad7678d8d6e2a0685fca97af5cfe402b5a371f00bdcacd84cd8de1206b0ea8aede79f2905d65343167102141b38d8b27379b343f3e83b78b8981c5d5d71f2269923295b0d83c65872e651d23ae3d64a0a690dd0aad88865966b2b1834b102a17d462a9daa1e21964a2867babf1cf0bfbb48d3d9b0648ae604c6cffb7716a466065f308e045535659c12d7e7fa9fc6664581c1d3b975d553e989323289caf281b26e2c6b0c3cde4a192b31776728a65fcad05f2cc6fbeb9f68fe4c8d7abadd1de7f8a6d4ec1eff4e74468f66b40ee5d329205f529a8fbd52dacc96d347f5111d9f12f571ecbd5592b2774aca42dbe43c95cde9693bd8fd009dbc3e92596bc6fad06f614ad68bff12168cd8dc4103544778ca5d8bf6fa20483358cd3fdf8e450e5d5ccd74fc13594f9cd66cd6874381967e5703fab7bd3645b345b7e15edca6438cca0709fbe30c4f6f597014529e0248a7dc42b7fc249f7f0e2004def5026e5416af7dca7c3c5ec451937e73a791e67959158f8843d90b4fbeaa32c7308bb58f6731024d94680291657ac2db0deea21c7a1243db29d8d5a769c4bc1c787f1687f0c49cdeb514202bde8699a36c9a538ce76ed4ee9eef98bf3d3263af5c1685d50da04ef49b22a301ff91ec4cfd88bf899dc4d4718e3b9de4e4b4fe2b188488c2e61bf57f7a899771752c580aa0c993e36f304aadced16e8648726b11345117b2a4fad00b3651b8ac177c4c512d00440ca6f5d5a3aab743e92a781ad7c8d1d5a9dbe559ebe1e6badb8f03864a800862104bfba9c3b767993de1cdf386bc3bd564198716127f18541a0a55e3665bb3d3ddda53fbc173bdaeeb67820dd12ec7f1daeb60b9a24284428ea6dcb382bbadd8220134e33c048b5e1b7d44fa1544c717b83c9454f553f3913e9f7b9238c488c112ca1ac86004051782c1d6ed541cfdcd71b0ea1e11aa5a12e78f7ad8517cd3686d3e61a1f741a86807e9941024aa04c37b91c60f8f930606877a6587759e3735bc5cf0f399e11ccf0a53e64c3c12ccd67c62da8ce45a05cc0a0209f3849936f16c89bcffc77069c1b727b2e204891c10f0f7279d0b8424a145ba9b5c1c6d28ec38f6bbfbe56179a8d89d4d8eac9faccaa51a4721cccea2abcdff3ada47e60f851ed5959af248ea3c2f80b738414dd75d4ad2e0d886b92a9dfeb1a5f3ff0e98e278262483cae53735339d4a610fe9a3df5db309163a0eebd96875116f7bbbb4b9473a2abd872f4cd7b0c26b679876dcfa56e9265277e20b0ec77d0d48cd6561675d3cbd31b457ef56f4920ff9ae56e81214dcdfb0089f42098c3be57b40f29099e8d49616f8610aff65c8cfe2a1a98e7976f65a69f8f022ab06a3d80ba9e65490427ab419626c2c18708844c2b5f96e77a4b3187b68e471880fdd963a7071fbca4a5d25791725d524cc230a9330777a058296d8e246cf1e40ab3944e9e5800bb19c5029c1c47cf427ef6fd87cb0ff40832b99172b999bf9c899ad0f197207011e06dba05c392ec5ab74f4ee4473bd52cbb3caec563fadb7657d11efc4edadb338a709e358a1e45a92fa6baf689416080f987a96f87c16501bf265d362ee125bc096d5b40707f582c3f88aaf14839456f9fc7309d8158cbefd2959b87b24f9100a0ec5086ce67d5d95e001306e9d8bfd6149088ba91db7a74d17e9ffac708c388314b4793e1cd19ab86357e371c857c03fab387159df5cde84e76fc8181a6728e5435a3f01f8a28d67171e31c6d279221191e4117c369a5e2486d83b8718454d1be84b153ca4ff7eed05b54943d10e3bde6c0c1acb89998317ac6c10612592f11f20b871520935bcdcd153a720095a3c6260c9a1bdba580898037854b34f7b7f044a87d436e8f36d9bea10f46ceb101efd85206396add0d817f56b3f2e02b06cb61a4b13f5b48483032348c2e8f26090ed5c4cb5aef4cca5ef6e17b1564d3038ce1395b43570f4d7bb49e99ec57231f4987a627f3d986f2ce1b4b92004c943431036fc5d9626e3a7298da1c3b4f22fdfa4afa96abff662d2b293bc19cca64222a9d8d66bcdbfe639771ccc90ce5fa3d329092b24b37ad3368b410d49ff2afcb33ed39672fcf8457252784f4ee3abf3f8a54ab6d7d742ac68a6dd68f51bcaf17880cd6f32fdb51d974894b97585f6681c15893b56bcaaf524b4eee5ce184d089e2d8051b010f8876e15e45f8396a23c545bd82309183eed6c367c4d62949b7b4fd331169111d87296f6a852279d5ae95ae70526d6e70a6710060b4a8ed3840f7f24907035c1ddb4e86ab44cffb7969dfbeceb7c682cbe3793e5e519700f89cab3efa0edd9cc0059ffff67296296f3358f5e44b5f145d2a4e785db7951065b2b2857da08ece44d1233d2ac53c7283de91b0c82000d72cf6a94f086522ea75c1db110770a152de93cf0bf57e48830cb991c60f4a69e3521fab67dd267a9ef04ac9dd85ec7653e7ae4439a6a1a0dd6a41bd27ff22781470978a14354b8c21a22b0cacb031ac98168cb446ad53f67e6bf8b0fe1d8d42617db85592aa101950b4440fc0c88526995ea84ab1942347ee0da64a1e1d418936c6cddda6156f8bf1a0d405340d4c66b7a44cfeefbc300efb1e303c1a7b827a62c94a71bb8fbc58671cef262ff77ac5d6968f792dc85e974b63b96fa4d3e94df54c7b94ad9d191e36437c6e8240dc28bf33b4bb82d7e8ff6992df054e2aa593114e5bb734eea585352ebebdb307c550159456a2b78b74684f9be3fdd3378f8f37d9d3c69bfc1a4a5169532863a520c2697cde7222b73c5ca5a69e703b122909c46a03bfe0d4febba4faa2a9922ab993bffdad6569161315e482706ac8b80218227c896d162651db9145cb00e5d5f23146cbc7e659a37d3328395c4083e5bafb7fe0730a6ab9f6a6b74d99c149bec6ae0223a52661c01dbda26578755fdba7b5b21343654807de0f1ad9775f79375bd4c389cc6ffebf6aa8e6ea0b433c038cf70762a4475a7cd1d29a93f25ff55a794342bb5345eaa139f9b8ee52b318c61ca9c612389368481b8bd561bcedbeee1ecfa230d514740b5cf7d57d9d88a6910757b6ab6fe623925cb390e10ea0a861097ef9376dd96c3e8328f795f0315b7cde97452b2774f86ad78215468cd346af0e8317a5270eea406ca3d3241fed40585a8c92ee659a4be29cc8b8cd8b82b8b7adeecd215909390172f081caf3809174bd70228c4e9602c62ea015ae4b36246ab0a359ab635e681219d63f654b7d9f4e1ff46582c5d83ec2776b4a8128dc493726e6bd84a7939172c5152831fddc68760f844bd2c238c4425af314758ce0b8adf04f9821d5c3442392ef2785f06d8513ca69218471c2cc37b0f454e1ffde3c276f3014170845d09af87eb32546a68d282f3dffbe29456e4791b5acbde3495b4bfc8bf93eb90e028cb7293075f3e81068efc42c5a2911d60f4c2ab31520c6f3bc3a6f16a377c77d44b5a2c127a47c42c077e8920f6dddb8e06a2f0eac262b7d307250394d059fbf5636dcc2e1fa039d41f2a77b8a88d3e7effdbb8371ab769f97d0947d32e3655c76918305bfab3a89c9bf5a2d2e8b991764d8e33f7f822b42bb6c967ff4d54d77052b8588111242694bf2fdd68360f96bc64a3836518142ce838757084f4badd2d9b2e991e7e69b8cf17543a0e6d09bdcfcc1e6f5d9aa816bddebb4ed35515cd504420d6626defd5ec0e4027d5d9a08f193cd12695b359fafa0b5ebc8dda216c7b22c7f8b812bb2e933bdc68cf311fd979f63aa58e394821d393c0226cbc1d667c2e80a38371c3628b6d8f90a2024a4b947ce9f2af8581d232a426baa776f8a5e21dddfae61ad64f069d83ed1b76ef95c98bd51ccf6d70a6ddae57eba993097a08f22ed5852734a1b77157320814967d2709476db0f142c598a8707f8e3ae268a074e02fbe1bcf8cef28db4b8f43446b856bbc7b40b355208e65017a4f3e207683040c9f477ab4bcceec032300b611767541e8e47a379924e20c2b7ce44802821943bcc5c7b48b978183a4c238ef9e7f87ef09ff51c058ddf821e88e5bde85bd0e1413dc1a86e08d07642b754eb8dac4a1a6efa0631964e7b16701b3597985eb36daeaf76b05e94e76779653f3d9462fd5ba1a83de805ab49d69d4d6821d12dbdb85da3e8f00f30d353db463716cb6b9ad54cbb8efe1745788ed701107f3bab082fcc384aa27a2a6d1958a262a11bb8049d6bbaaa39a3b71045fad8038c8219d4469e3241b2c61f88ab07b423134d8c6572d1ace88b32ec1611a77acc1355fe2ade27cb2034a0b471247a08be63dffa75cb631085923c4bab03b8e34eb59bd6137b822499677a1ca7cf323c8f3ab9972f6367e7a88053c1d16fd06042a4353bd62507ea216b006d6591d6dd9f8e2528cb3f6b3296da121452c10866a1abbbfd408de21c8aef91ca2c96df3f146579e64a46c772a80a35cb4a94ea6216cafb2c6725a3b0d61325bb750c53e49f8c2925540a1ee1167323390e0606b623d12473b1c2614620146cf62a161c6b68295f8b91faf0f8e35e62ad8bb6b0fe3aaee1d8e9d7c6b27c7998e299ac24bccafe5553c0fc996811c4c05d8b04b2ed354dfc57e1a82c827b246cdc860f70b1643184c99066c0a184c39e9371c3a7f35f22f559414e8b01d9d4bb0a83cb7021731c68133154f21c7854aa58cab3c87850b3ee98eb3927b009497b2cea4433957bf3a0219c4f39385e5948c1a298d8e7d93ee006413e4d6742854df4ce7cdb68029d5054c941abd90b17b499bd033742e71f1f5f6befcb51660e343139bd575ffd53596573c325f9b06d07a4fdaff9776dea8baa8051561768b68bfc7fb37071dda464010cd4884a93ff17659232842f75e0e43dea7ccc1261c18ad3190896ac6d0de9fbfb1703b98bbb903f8346285c5ef56070a82101296abb977199906ca7ea8c319b672abdb5750637b55416f8c1ecd34afa003764b4244e09bee6c1794acc242697d436059e018d7d89d1ac571628c084843cfbfaf0b89f0b6ab4fe9dd9bdf00367a2f54b864b64d3ddd92317f372e9813f9ca63d207512e24d028875e5500a448c67ab50ce7937ec59e37c66e4010ecbd7d8cef084a509754f547a2b905f9e00571249ee3ddcbf5dd678cdfe96ff2f31b9928e705667fbe03ac12125e503a4a023f58e67bb43428a4b52170d7440635afc178cf366698b9da4556636a6fd50075192d27b04a0db7f1f6381d59909595b8ba97c12fa3ad552da5adbbc588b5797b043f0ce117a4f9b1d7f7d47d623ad2331789b5b214a59a8493c7d3fcd89bce898adb90087583235df6ca70b574431916ae98351898a701a17a61569a7c11eca9995e27bce9b87a9c44eacac46b311f8f2a6b1e621aceb6f1905eff404079aea9eb7a86af25ece730cf57200b937bef0bd0d6397c88dfa50d4c4a5bc0d59abdb16cec56901017acd7d2055b0683cd7376b34e93a958a2a3576d4d62f3eba52eb941c5e205fa0b3f392473619deb09518f587ca9292a7a544342761d6255f3289108d0187db553156214dd57d9638cf06a865022f28e19fd605d7d479a7be162a19a9eb72a5350b01fac1facbbca6279173cc4226266a90d4febb0bcc0051d0ea320e17fb6b564d4476708cf97563441d29b4eadf581b5f1dd99360b16601f803a59755137b97ace1e26a702352915b542e38a0f95376f6f36f03dae03056878528bb4865b1f6d08586354846605bc3713c8496ad4dee60205df8c0160e167ab6999dbc2d5296550abd2d341adbec0dbeadc8547f637bac4f8b45c71b77d824a3df04faba1c96baef570bda8b7a5ecce3283084537436c80b35ab7b9fdf20c0f851bada48b82258f3bb727e481ba698c8a08f3964b2788262f28c84b50797c053f2f38cfcb1a1113c8b747d6f72952d7f70525c3be551766db7a86ce9b584a2fad37f997fbcdc8e89081a4095041c2f832d9a50cdc5e2c2fa27997adf1a94b8f040d58145a15d80599cb60eb8d9f9ba3f04406b5401a2dda472bbadf8d1652d357edb1bb67ef7555157bc1a7edefd17696d41a33a52826f0e0f7965156022fcca2563d2ce0c02cc9943d9bf482f5498c8a525b99e92c811dc8ef34e7dfd053b98abe976952b8dfcccdc72fc7d90122edf88e906e231f0ecccdf896cbf15d68526c5f2cc5f77646ef367b1ffa6ee8061de796a9d3dc29b8b57c2096a89dae4615638245667ca49eff553734446114dcfa55b717e585cb7cf8230b49ab80aa4e47fc8ad472a3c727c417a88b6d2cd85b52a60e9296ea91783fe13d2334fb908dd8f1fd2621618a2dbc06c80b6767b5b89d2c877fd064323ffa6f17d5aedda846731554aa1ca56a27687cfc4097d29262db5a90a7dde81faa41f90382267bfc46202efa86dd62f7538a359e86f3f3515a5198adc9ddba81dc3ec28d4b1f2e11489b11960e30238f1daa0643728c2267a5859dd40319feed380e2dc1c83b2e72e0e790de481f5fc6ef5e541bca1a7ad0567dd3a8c6ba0a545d552d7b99161f34d42d37334abef6fc7e8ec8742471e80f077e37822e314983f6c3be43bed8ae8d4f9b1de8326f690d4c8d2d465094eca8f6cad61a496f5b4a69ec9aab5722d737d44d2798bf4829afaf000eb851bd578f99491dc6d66d133714739a34b7432c18947997dbd6c7a7ca175ef6b534f9d106daef44c496349bd6761973094c74a2c13abcaa4ea25e6389110d0c6415f2420522e6c1adfcf39158590dfb652fabc1e12d1d6a78a9e8ad20b9679e025fe18be0879602409357a65ab7890b58af0c510dc20db9c1eeb0594837968c6bca8d3aa060a784a91a13b1aacb025acde96a1bd25a1b8366aacf01ea44569dfdb9c0026c4e8d119faeacefe1f355fe0d49883fd1fe0ee9cff2718beecde48b8879b488586980054612700fd559bb61b0989a8856eff44c91742270ffc741645d230128470961a8c3b37832e3560f94d8e9548f2efb7d9bbdc2c8039df20039ed64d30ccd484b20e96d9f925271078a99b5e6c18cad7fa66d21b2d06cfc3bbbc9f37849f1ec445ef05aa1c7d9b652c48106ce1e25f2656cdfae6163ed5c6d53e21d29bbbb9ae6c12b83d7a44c2c4d6f280e4b84d0b19e1f5bb654561e9007574d1f567dcc6438261d8fb446e1aaa163fcc782fe1c7282585bd1df0cbfbbf37a26fec22fd9a2860e9146660eb8e68676bd39b68a1169c31ee49a1b388019ff623b9d2945c4d4b50d3715b8dec35f9237cf2ef5c89c315004580db794605ad314324e9321795c1cfb6dc1ab540df5fdfe1e5a34e86f80b4425b120fef1f8ce22b0ec977567c59450c1202ad9cd159b17aef7a6612842fef43291a8c2c07d6ed0b99ecd803748b8de2fac089c8f008a9b471f3d4fe82684090386a5a9b8f064156ee33e19aae0f9df24cc319416bc4b94ac89cc0a8ce2f8d8c4a7377afa99a01fc27805995c706b2179fbab8c4cdae7fce403f5129d213b2c3c2a0cca68e4d98044800f4ef65b095a33893a6a7a2d872810d51dfefd60a5b6ee45eb422125e390660088391c70343ab6f01f848212ec0e65c5261f1d41b65a48fa7237619c171a9a430a36781c01ecfb46143311d847e2798147862aed2cd212bccf2cff03a17bc586d10e6c407a04880ae0ee67b54a11df4254e25914b44e7dddff42e85685acbf21d96e5afb0a44af34c2db4027935b6f74e535990feabcc5699b585a148b564fcad4d77b0bc00b9b0ba1e06d1e9867373c5139becd509f5061033cdb273cb30dae6e3b79d76dfb81fdb98ff7e7d0a67530611c72ef8ca0235d9e81dffc5d1b7dc8d62d61eb736d45b547ae8db698e9aefb27a72febcb299419b5f7db63bb3d7ec82dbfec10176be12040f36ceac2223f35aeab4d3f652be4f476d48f1520d4fbe346d09068482c56b4aeb726f01561b94fdd860a226ef708d21ff56a6a6739d4acf1cc4e9c0d610f3a01f1d7612af78b8f8e9272101f6cbef0deb1839fbec2ee90205d78433d79967ec26d05c62c9a8916d3a3c0028d7c8e67fa4cc744a67de782500e3edb9eaeae2426ac3764c81a37148dfe7a18810a495f8f69a0c8986e4e3d70d1db40568aba314735b9d6e32ec8b11065240849ee0fb35840457a57006dd09c7dbb08a61b46747cff3cb93ba50f903ec3238b87ffb33e118286934f772fd8be9f3d9a384cc1710891d2461844944513261be47ef3467f521242ccb3e8474b0d4bd6db101aba7dc1845bb4235dfde965b2d0f400594142a55b4fe24efde9d54682b63807f467d58e4aad9515cec27eae97b04493edc2a686ce0eb496a8cf775aad599793fc5f256ac88719d622f925a52e01cbe766d917f02b5ee7bbf8b71d5cd40049d6ad282c6ba14498906371505e5f9977090cdea6152885689b994fbe05c0533b5e90e3837fe9275efa1a5cad6d0d98c9a5904c4fe2d7d23eba4faf60096dba9552a9c803d4195e7f0fcffe54dab3db130e970d20c63324313c87ce1b807ac58fa1a9b358e0cb24ec4ad130ad9ab6f27a3859cc8bb529e25fc632715c98541f799298ff36c82e28dc54c2e15e8a981c9d1dbe50e65f5d3f9b4fba9e8897ac25d1624bb93bbb426f0e2a8f0bc0ce1d07addc4b12990db66054abfc6250e57817dea57cfd2f0ad7d47461d3ed0c00eadfc5a9a5f83b415e141a8d1cb479e567f5454ffc60d6cb2cefb52091e56797d031d79b364790a63e0063418392789f5ad1e67cbdd79f5e9887047d9f272f047f01dff75aa9252fcfd13e6f7de295ff4e19dad2744fe12d41c2f62df7e3881d400234384e20b6cdaf0304aa6bde864903576bac7b9e2ce7d63de723d8e694931ad7de4328b39d90fd89b579588fc31a634149555d84edd5523a05706021ebacc18e164fc464de9e09a521b83fa6305000a6e693a51072cf344680e04dc9754abb68c6d4a22b5e5c24cd4fa8732461846e0dd9362b3e222d51cbb5737ff026cc7022d991199dee21cd5b881bce001fa9c69d90b6ce36060c0da1e0556e04e15b2ce5f6a7ca9777cbfb35b06639c931fb87ae11ba7d47af825a8b291564a8bea1de5dbf56f019b1a2c188ebe671b872d86eea30d1de2e4bec26f07d15a5f2eb4fad860d8864f9008b63c41d9c76efa690c20202271ccd1887e1462ae0e6ba3591107b42d38d9ce550c318066ab6ddce8b98856eb51aea77f8f586a19ff449c2351501dfdf9606ef6347438809a149b9d39b1d9bcf56988a01df7786925776122a69c69b40bc4fc7601245d352232672ac3d830062ba82da3242cd602e3434fde003d446f2b461ffb1ec5d8a06051fff8e9ed979ba1dcfd3034baaa03863f9b3ab3a198aef911c7772a5b798a311b6739958577fbd3fa9c844cc464ed7ccb2f42b51765f72cdce8996a391537d55cdaca6ef362a990f8c89b099ba5816a13efb98bcfc242f98960dcf52169516e92a060144a5a8df185b94ada3d1f2029a3467e9680c4f8f5c66afd278cb6cef4253fd37e46532c17a4410319dd34d87cf5de46579e5cfb9b98cadeb52a71c0f19e57daa39b49ee94f0f55a52879780c35562f32b6a9375130e7bfdf1ad5a3ba9d90add8d6dcfc6f1d57ef529437238b8fe49967c3d4dac04e33f79247f0134b5de875d70f92830c3b02b26e8c3284a3b68346e118dc01b6610d62396921b8ae05491b96f59d01ee0731441de06446f4d53a8bec9bc78e96ac81c1aeb5d1858a7b5df12d746b4f229b85c37abae6ee125f06d6608fe899b2aa12f412c7bd34f892ea9508750edaf71e5ab29548b43b16c3f7f03a8a3b737b6aecbe666874c042ca83b8cd570f0347553d066503bdd71e9dc111a05589d3e958d2c96d0fafcc7aa7f5785f8c35daecad904e57af9de9dee02e120facfb591a78205f31908f932767c072f918ef2f9cb6d744ce514bc2eb70f5be6b8fa68bf3e2efcba498df58c74e0acd70eff1b85e7599a46d2bcabbcd8c6f9cd5b1e877fc7cbc8cf709262ce8fef5febed31e20b4da10eabd849ae6201e34741ec49c3574c0eeddc1704743effeada091852fdaca64a576e4a3a3b89b787f3756823d770e53a9cc3657a2a302ab9b178117b6ec39e80f348963ab07e0ae112ffac2fb14be10016c41a95955b4518b1650e886cef8b70ba32a4ab23d45dcd37411ab84fd09a969f5a61c62c59b458e1114aae4070ea4e079dcf15912117d564c9e3fca1e0eb8d3805f229c94a5b2c6a32e985138a5f547977c61bd3e82c1df5e248c40ee2372c7f5f2fd30b885cd88e0d9e037d3fef53496ba3060bd998bc3b29419a9afe9f0e1a2ef36a228fa80b09326b7093ec375651d7b1692f9abb8dc46cc5a423b9b090acbcaf4409e1462c5dc728024eeee46e24809d2b6e4c9bbe50608976443b76bde702bb5d6b98e7d6e99641b1610acaf6517d9a2a77f84544f9d881cd31023159e52ec4b175d8cc62b3af9570c762d631f2a5d3b06f27b0572b9f00cc7db504b78bd8a5cca0cc84943515e0e9cf02db9868063be87c467f8ddafdbbfb2bc59c90def3e5ae4e3a5dcc6b6cd5386d8277b237f28b7cbe09c1f080ef275b9bc7532423cbf005b10b20635110a4f26bb4861029f4551c23f464c1ff83500e95990a803c87e1f689efbb036310ac3af2d37dd3f2266a7316ee779dacdd24c1fa014b2340222692f7ab602a81364906f2ddbdc702ec25027ce276bfcbb5b70158ec65ab3246747858703ca26a172ab362650871b50e3b6e2de87e64901aa9f32235c0c68a0fcf2f9232fe14fbc1f4b0d06de8c43ca14cc61c09260d06beb1a877b5e73356af8b01b488c9801985fe0bb83a49cdc4001a049e6d82e9acc5708aa2c1042ea33a94a89db81e49c7bceeabc8c109f194070198737b34627290a1564bd56f125ac0372d44095704a8fb99f1088878f3dc262abe0bedbc59da1d5d9294b5486f32b6d8e2cf6252981ecc43527d79f02dac670c33583c476e0ceba0518451c3752abf87b8eb6a3a4f43d0de94ae334675635c10f531be84901a3a1f3f22202e2c6106727bd33cab6e7b262b8578951db56bf6ab06e8db270a6a1476221f294b833e5e82cbef2092b35f7bbe2269e6dec31cb07693b83fa8e6ee4b49fc6afd0f3df66662e8658331162a84271131593d9c5e1911f4a885816aada860a3edbf6278a6548426c5271734e4cd8ceb55797a45187b78070354e3756f8b0f47454dc5f121fe7baddb0071b2ffbc29ee0c38b387e8614745366f2ede5c64d97a7bdff3ab423f688b7238ed72db3cd414c6d2df75d5010171114b2d20c388a35b06025e91ec72b83ef2dc7c9f20384b6041764b5d3021607d800d1ea1412f11d1cf94a454b837f2245c5caa4a003d8f5122f56e114935aa76038ece113831943cee81ede5500803af99d5fee18a0235e50408319b6d5b58a2a1d14c200d64ee407d4f071ce53a7f20ffff0aee798479123e2ed3bfcf2995a83b35f6295e4f1ff4547f23bd30ffb51bc67d65626205281238cda3efdabe593ed59efb627f0409ee4a8a68806c4e58280476834632cb0649e22d8df9fa00ec99bfd35fa63a6c56b5f47c53e4200b26931d463a7bdb5117d020b2c1018de67d2f96fd0190192174b7f902f8c9e2a158f07f084fa125376d4bfb7e2eb2c213b972b23fd4ca4f5683ce6956e2ce33ab842dd1f5bdf3209ae8776d74a48794b1b1c4d0491786fb1f96b358a940dfd50f7d9ec5f28eaa13268056f0b04e084ed857c7c18ec5f96957313bc80d9aa8aa820ffcfbdcd99702c55a3493c7918e992c6aeb8b023c400b231ff125f69594cbd73abf3264f275aacd230ad4da53762ee53cd06c77408d9834614988c3f7f628516ce4a4458ee6f86a875c5489e8782796839d4b615ebe0583f97f0677c129514508ceedbce361d8d1297b650edbbca11bcb97760af1ae20f4b4c4719fbd12e0151cca62eaac28de63d652b13d091c45da3bbfb74576d12598e3019f5f92de4f664dd7fbc3533d0ba120f6781a4afd6e315e75b10e8924a59b1902b1c998e435b20efe0270d5d863f3393e82b9836a7dc4d2a9ef7c30c1b79ae7f9e499d69708dc3f6a69a12ca934958ea6b6061f01521bbc94aca080ec5affdd05dc519ea593756955879db56089d870fb1afd6c7f324a6390b0c022ed8e5dc26fb89edf098227739850aca3b26abe3f08871e2568ff6199046d6e71f1576a446a10aad5380ded42549ca40909bfe7fe88a61e3871ec8c9bc5482ea3f94f820db62eeb545e01e704f01e7d71074706c89ffd191d338792fa0e5fe8ac22267dbb6b16ab250d6a8c5b735de196f551d232f18f488241bf066e5d4ac15e6fa2bd92f00d8b6b7ca58b3a25571447718fc13eae635b42b96fa517996606e014d9e3e97f80b8528d523f0a8d8f489fdfe6a51b60d71a9868c6ad24d249fbeaab014283cda63535766d4dfe8d6070e29b5a08db3e0bf8a93434784abb66ee30a4113998c4c7a23cf2326f971ad7ef4cd6b29da709f617550d3ba39d8a9932c169d8df2b8c7744c3fe9e796a7746460fc29d39df9d60fec7b2aad36d59a340bbf8f9ebd4a4286b425d1412904a0ad34e947a18f4d827d88c0d524f03b8e70797bb5f89f172eb9fdb806a290c545e8efc7a568dbf30db94a5ed87fc30c3467f790876a6447136fb63a852150b144f7e1f0081ce344c28f41f82cd24125ef4a3041b4e136746917166935b68c6f4288d2721b4c5a077b79976a716e52830ba4c0659ee627e2b011e5971e9311add95b1f5d29779acd7f94f0f7fef5ec8b10e5dd2205a77041b4e7caa52a2c8f0ff914c15da4022b419fe2ac86d5ff66689a96014e884bc90370197add34ec60671ab6c0d1150eb445fb1e6c6bc3c8d45bae88629a9c0814d43d17e36a29ea108b1835df0a50871204c07021ff6e72a284d87e2efd70c15c80aeb598a06d11ffc68424f88feda2825e757bf102b992c00a222e584a46bf1c5449a4c6bdf3b80e4d9601f7f3adf1e9956cdf0c1a1841f0508a1fbd23e8596920b534c2ebf989fad1520edfcf91c2d7fb3957c9a01e9b2d4f1f5da38b9b2644ab8462a6d30bfe191a0574c6a75b5f742295697fdaaa711b50b443960f1a1d1fdf55347b58018fc7de669da90fcc27c4a2bb0ed7defd896e7fd156db295e77d4dbb59a10c186a25605ad26829dc09731cd13aba65a046731a4f03fd0ae46eb11976541aba50ed5d9ce03e49cda46c400d55e8d898d2b0256fe1204bf9584651a1ed210afc458fc4ce4e6a99fd08a99c1d387da9e081875a30395a87a21dcb5d5a262144f32521a44290a75d09b7ac719d89ebe33ebe7753346ba7b8d0b772766fd1019fba32a2a84ec263ff77d91d5e6cc469b0fdb0a86b17ea4a50617d34fc582d3748b82016c661e39ae188f9952f5aa727468dfa9aec3d09d617c1cfb8e4be21d7f2af524499bdb6ec2804df1ab1dba4cb8b630e8fdea8bcc62ceefc330a0d6ac9de214210eb219388c1bda8f3e84d3aa5be5cf6bcc7996f2b6d1989cec8ab7ecb77efefbe8ec50bf37f9f75ff44dd16a4f494ac2e22dda9e457362c1af4f44a4cfb9183e2b50444addd55ebfb15aab9b92a5f29d33bbfb00725b32cea81acbd95a26e5201bf460955acd4e08232a8670ab70ff2047bfb0e077bc99e7a2f080f4d0196cd5489586603b38f9e4c64a9bc39f7f17b098b667f7c6cc6599fa42abd6a899da5baf139ebbfa096f2107201e45c020b865393aeef9ea3466c38ca57bc149bd35765e1982cdd1b804644bab8fc988d9116b32624594777899949d6c9844625bd616e51c4e3a9d4deeb6b481c28cf7188896ecd3cd3e9222527d4541af43b922a1100d1fdb2b74d22232ea212f33f421fb3b155b97c4e4eb7d31a162aa87655fc0ec0945a4b70b6895d5efcc9ad0fe48d3caaac20fea1a4e43eb25efc7b0ef915723d9695821995d9c304febbc574fc480c8b3fa6f6c8f355edd432fee53e1d8a8210cb74a13441489f3a33e4e0d964204ec7aa34de4d01ff1b941e6c93464487593e148d27718db6c333beb32cb559095f535de4049ca497353ddbbce3169979e0176c8509f1b68aaa9f49219f256a286a51bbe36ce28b8105510152968377a7cfa2e4e0a61beb5a1be690e4659292aea1f6ffd5ef9b387047fa0126e799629aabfb628829d4af02ef838057d0ccab530a9f5facb4b2d8fc2cc43c4af824c4ff58345a62fe864ab4dde67a596008c7589ef8f8d3ec53ad688e2006e9b366c9481eac057f6a465a11d9806a2447397c177e7dd95cc42dbfcd6b8d22a0ce709f10d95754a58c597d4ff4e0d4f32cd8c3b964ef488898f58b5fbe49676bec2b680b94d99869d5cb55a255ef1f3d22f9c2c42dd5f5554cf0ae263fa9775b3144694709ff997b074d1cd45001d5bb569ea88379172058aaf4ef423f4843b69562970c502f6c91fec50124030eb2d903a7bd1ad5bb0925f75b19d03184d555e80cad875584db4e0697f4b74ee031597a73461f2dc3b52a21f9f0e60d2234484852506ad1077f2bda6742de44399ce272d2b8acaa1cb31ae395b23624063f88885c93b6cec276898931cf8c232da8011dfc18791e66d780f9f01560048b7013ea36e034cf11299830694dea10a14efaaafa5d566d159c55a38391adff5fdfc8cddcaedddeb58ab2915082bbee9082d2395465be5bd27827ac0a2588c3beefa7198bbc3e00ee201dcb2bb7ca1159df173db520c5f69e9ae4ee3ed5121f258bfa94ba0a1ba7948242245029f8a2107eb4facace6e83c969955fec6da59b1601fdf391d30b8a6878f5e50ae8ddd80895cd7f435d026aa2e91728776dca8b9219fa31441da78697db7fb35051d26eff05d64d2421f075cd5c773c9c952924e086fe6f819071b4715988fc2dd883a360791607e2bddef6bd5f33cf69aea31a7f58017c39e34f4c677bd8952648ce44fcb602c9ab7e4c84c42fbfd7eaff3c089bbf6d3307cbf6b8ba418a1895eb52464a1bb3911c610cd7ea9f368e55a97d48bacc58878faa1612b4aa8869772f91f1ac4c8b02670409588b84463f918eeb29a7b0e52898894d88ed0de19698b1f686c207393c35a6177fd2f5b530c1151d59cf3f5d0bad75a5c58180c301e3adbf11c03082a91c37242e1560f118978271e823258143d3aae71673983a811e81f03d76fad29b00acfc4f161dc65f44714f630d8a78181f1c2134e1a331c746bd50c7f8ca5fcc4d4507265b4d132406132f3491e69d5b1efb0ae79cf409422675205a26c5dd121e5ab480fbfb40a75b0ef7cbf2224cda3d9f3caaa015f87d5c4b22e385831bdb14cee14d804ded15eb01a03aac859ef98a26b0e4435f1545e3bad4e7bbb4b19da208b42ee99c22a9f70bcc9fb4c3644de79f54946e5047b25855cdfb1ceb57f4728331f4747ef2477a10230416b43c5351221da35953832737358d9ae8c6089a1dd94c3ab80c0f266102aa975f0feea2a0d688488ed3da96dbe848d215cf2816f75a225f03e8df3ae4208eaaeb09473920d371589fedecfad636d721fe0d522d4361938778292dc30f83ebd52ee2d8a25d8f01b3d264b66729d4f09a869c04fe4bd06f88d66db6563367abe99bd7348ecb5f212c1e5fb1fc6fa9ef8f7fc80ee984875d84f50d5afeb0ecae37a4c720645a0c8df9ff2a4f50cbc0f3c21e6b63d9ce72f9edb38d96bc07edb35c9d21b4f37f048b0e76c12ab488fedd944c9b73588294058420eb307be9d4f5e33987491ed96b0cb23fb5808f54f4dbaf8a4c7613257bb73251bc5df18180b07f0fe6f7579ab0051b47407c8f179359dddde5d023ca6b6e69d414177da61aa6423ada9b57d59d9a9cc95bb09557b63e68c5833372a6f50c54a9514f84bbf2bd086686b79722139635ce2d4340c112a12610518b27f81208e9d21aa31d988912b1ad7cc0272ef1df6d7b985b25bf8fa37b7084d9b8a50163441c7c1082d35242fabf091ff1db498405a731fc26eede428c8463b50fc252a1ab7732726f83b45263307ccc10d66bf15beadff97a0faf67092458c4a1e45575dc00803b8c2a3cc9e94a4c75b933da09001ffdda2c25a3e2250b200ea21c65087ba09e32ca8779be25cd58a534c9adaf56fce235f12b6615ad97f8555f35aeab5c129b85091805fce8f9cc1d7aded947c85ce5cfbf64e2ac964fe1f084e17b7d2acb8247ef8e7b602b12b437928eb0638bf9cf65056a38b8579a82a1f9bf02d1376a2c8d0734f1c0c658583daa656819c23406091f9ffb0dfeeaeae84355b4098a0c1958d7ced0a39749a401642b054959a68ba538512c766dd7db2c8a14bbbe3e429ece1f9774ad49520aa5ee116a2aba101adf2ea5e017b2c4158be7f90add1759dec1b287af1c4901b60d2e6ee76da0ec1a9cc6115dc568692e1641d3b0f449fcbe883b28c14fe0b7721baf5a1129059f07e8682272c57aa48e16691409fa8b942e2ffe3325c2c79f8a71f337cd900451e8ff5576171f49ed220342fba9cf01a2e60654eaf82e76b723addbef283e84079a0bdc0fbf3a38c1c6a056ae87ae8e4200b3d4d50ecb95f178e852b19a4c9eddd0d7d686316e94398ecc5073d1d6fc08aec8b2bc7b803566ac9d60152a1ae85f4cb8c657090b7279712a1c085d598e1ffad4ac6b601152b7d4833237a38bb84183a0805948436e675f8abbcb59c717b07497474bdb1bfe2cccce8ab4cf387e274190ce56d0c72637c9915116f893825256c975200ff0748d55cb52fd44fe621a7bccaa9307700884689c79cff6da0082a23ff6cbc0f3582b0f105154e21c2c6c77d1132c9d41e173967426cff3242cf535dde97b25aa78a03b215a5b2cd82317312564f1f7a8544dc4ae9f8dae036eb0e2148614346a7b4e09e92f06b76a7a6d0dd7e84c3dae3cc64cca956b9c9c755e1aa4658a7c3f9d8fb0c7e28d8294862e6c61b075e7308edf4a4da35b4130f9d96308eb44e45658d1323489c2fe397521f6174f92d5857e13cfc34a649a0864a60ff8675ff18ec8b2e93f7f0bf9f267c57b48583badd6d2bcdbc88d0bd08ea9b86f7418cc2aa96ce2f705390f14ab0bc07d5f07e686b7776da74c0a57a3f9cd9359e5050b0074ca2e51f91f837f0d787f58deb8b83974e81fba41b1e67dd84a64d685f6dda3ccfe0a245eb167821dc90ddb9a59edcfcc7fa5cf83c1dea718f100694073117f3df2ff76ce0636926c11902925e8e99cc79a0f727d06d3d0d981f030dcf268f8a29af3a6378a81ac72df1c596d46bcc982496f7aa0e2ad876cc56240753e8c9cf52784b8e67c0e378d02370a47714c8c1f62a7d2b4614fd7f782197cfa3dedb27f91c9403983fcde135e037ac7d8cb5b19ff8f9b1e759ee0473b44a76e7c034fc9dce85cd7fb5e43c5e41b15582c36fe2acf0dfc0fed704ce5d8c02a409920cf0cfe924ed9fb66aee2f4fd65d670ed5478d22acf39fbdf4d3532364f5ba2685cc00fb30e8074ad9f0a6041f20f6a1c58c207d61ed3e27fc3d2723910c0de33b9972b2c2bd9b6b38db0bacf1e62a4bf22e3528e78e7f2fd8ed07ada2cbc690d7ce074799ee61fdb29c0878c458166e33df4d6b5f5661455d19196147f46a8dae8b0f95c71a809c8a6938f3297046e77b213e48a289f6f23350726304c598399c4ee9ffe8f85c89124fb1c67c28dfca3ec6059afe3b2d5886d8d1bc07d21c27c4015f0780939de172a9ac6211982436539adb0837f4e33e70fac980aa82f8a8e155af077685b0c06558648fdba834f626b723a4e63d9796bc39d4314144ad956bba917ab0ba7c340a64bb1fec49873fa6dd8d0f7691b44fcb9c407c00684ab3e1a5b7d69df691041e1d1de7358c18e1a244e63e9ae12b323ae0a5ed7ee52b7f52472969fcd868ba07f72192f60ac0e54e4e8448173d28308838949a4f323ea891ecb230650c7b0a91fa4e79ceb6c758d54235ffc1b91890e11a0a5b08dc7939cff6173cfc142f05cd21500ae5a514d3cc4efcebf5e0dcde26cd2682859bfa7655b87db1428249310e2fe78cd275c9252a896b80e10c27b6f80045606f0b05770d423f723295fa3c18cfb85c3476228255d19e7482e9a8808cf3c09b090108d9c564162fc2d7e7969675c338e0c91582f9b1bd042b8ff5b4fea66cbc5df3ae7d26b0bdd389afef50c5d89c1b7009b0d190b30e94398a18d47624b58f40fa576761b4dbda1b4e30c054b653cb3eeb3cdae51d378a2c9c8b43eacc559d62b7761a098df7482063d6beaeb4094819ffecc1aefa18fd0e7f2bb5883529fc61e14efac6972d738e4e2ebc5a4609ec63f1a1e04c9a84e9e2552de60ea864dbc460e50355f2483de30f4344414921204e6f066b4ac8435b7c6ec024cbfc2ef44efe7a87f7ce72068fd0bcbda534d9566bbfa659bbf353e47ae12e5904753cf7dee5460daa1c24b01734fcb091031032810197a46120cc59bb4313eade57207f0fd1080be0d80ea37be7277346d45d29c1b19d5f107e451f5caae79680407c3f8d6eea5c2b8a862fdc417682ba1a7a5ac7c8bde5d8dd1eae8deec1032cf3e4858a34b29a6b396a28b0c266ae2bbd0221d124cd495e3c58a908fe3678afaf37a52b803d11b149ee9fd864c3ff702d2108ad864da0eb0e0be13d184937c443de216df5efc2151bbcb9b3ead8931fabe75cac61e26f449e0eff8f2e28597b013683a7b6fdfeee2f31255ab6de18320896e2937a7a2f385729eaba89067750ba34821c7d2a95b752a21d42aedbf8013e2c40c5869d9998c8808286c63d176f2296d2206156c5f12a615872483bad2eaf135133f0064fbed76ffdfc4947e6c4424fca3eca588057436b05918af21c4f557a26f708e5569346478b785e36223d0b992571a129ce19ae145e1fcbe47bfdfcb635a153e72ff64f8be1e72f5e8e62ee369e5d5e4a6b6bb452b89e5db9c7a9e02bbc35fe88c94f3a70a947bbc25a2ea99acc8673bb108bed3ed746fca00e116ffdbf57e1cbda4457ee18a2e2acc801b864a80bc52f38825506ad224b8ec613bbab14dba3662b4f8b2952e98d1acc912527adb0368449fb019c33503bcbc9ecf685907349385991ae1d14ed91b6f17a3b229cd81326fee37759cf129325d5baf0959e9a010269b1418b4a45f74041a5466b1c10e4793ac78504cf7ae3af97443db7a25b557ab8e8aa85eaabb09d9bcee6e806920300f6fdecf32ebcdf7fe9754c363cdd1c570fc3e4b3b15b813d2090e6cc37ea3e2585ac0c3c7ebd82387a41d0511af5e8c62e65d25667a3a78357a5852d86369addd991744eb48b28f4d363199b76de81fc70826a77fe4d1bfe418197671b8202d106bc1a7f6b23d5d0f16c67770d7b9dfdb17969cee407cdb89d99090f2b65b732c4668e052b514eba1ab962b283b190f6584e645e3e95a0330e852b522b90c4c050a465865eaed0d2999fff42989905d8c7a742e173b094409c960b65043b478aac98e0219d83e2066fcbfab3b3e67eb59a6f2eac6801c67d57bb48d67ea063933f07fe34c355f402082d1233a075a34b8154f5b11193604336bd5ae6a52b11b036a7202956bf9b714618781ca6c86d6b7b34494c072b3572c4d43944e161c07789edb39791076e38f3c2089a92fe47f02e64034f2ed3d5784b9f6d4c59561cdad6763f7c69a6d3955c463e431b5a1833262d3f0afd80e7c6fa80b45f7a87b476073ba36fc8c6012fc76e97f8ceb2c255493598c47596c39ce21bd024823dc73e1e8fde470f7f3488707d05ab468e1b94610dc09d2ac97a19c0256c77758c3a1471388c5844eb887bb59ebd740faf1ff615bf824d236e9b287bd05a5c73058013c8548ee8ffba265c6a32422008310bb26401bca4dc8d525b39a4b2bd306fc7195075a05ea53ceba343be05bc547d58975398062ae3d08b2dc41342ca3b387d1178f5c56997227241c08fc3419d1c6cb69cda2d9561f8f4399b453f0e2460e49efde09e9a42d51c47416dd5a501d1f7c175e299191494ac5a40d3f9f16935a1db9d04d6420941a09907ff0fe003ab9b006d36f2b5caf8fcc56c9f7fcebbfe38ad18d7b02467dc27aa71848728352fb6c785f90fb5d508802531f99be266e9b8f5317dcb1ba71410d30ab81e7009243908330393917ee98c6c0990b93105f38429aaa2d870049f0ac8b53bab468e64f5800d00274a31ebabc2ed7ee147908e69590eca55fde478017a9c3cf885b455f1091f4f9f94ed458332b514e4c9af05b6c766e8c97f4a05aa7621a7e0223331b517981e97467bd3902c7d3ef14a1798f1c91b34035d3ac5405054233befcfec53dd14590fc386ace457b90d31841fa333b780eaa1acb8cf78d096c2b06489ea95be27b6d5b0320a386208a4677c4b954e7967d0683978e54353ecdffe72748c5641125fdd4967b1510dda71d049c17c5db8252fd8bfe371bf2e0ce565a5475a8544fd6e7d0136e1994c042e53ab4d806fb6108658cc8acfab1f1622823abb553aba488149a758d02e47ede49c340cfa06b35e41aff3238fc41cad4e2b47785cc3cb4d26428195991be181a04a0ec314e37070c87bf441023e0e5de67cd67158601b1ec27f255457a72fdde2e5caa4e47804f3e8c50ea52e13adc55bcd9d68b4f2f821d18e8fbc064dcc5a264e965dac896e182eeea3ee49a48217959a32bb7c0cf8533f67f588d227a497f6be20a1e26078357295c8d03164a35e7bee98f11c5d76c71027cb5e11cb0fccb6a2a79300d07206d395e7869665d0cafd3cd1ab8bc3514dc74358ebe3184c443e4166198bda45f42d2c6d0af7723d5b25704a759c197ffa2a1cd477f421beef6c987114d95f3d54805abc91b8e2ab50f1c8d2a608f91f0391add84d6c21ee2a66001e1dc67bb2ce77d283c87a0450544f5881f3a1b4d5cc09e1218d21a66649125a3889e502bbe3fd3d111e8744608cc652add06b1239b60715951bf70bf3328c7a7c37e52d196e6941815a09512b9055eeda2e14bb31f931b3bece0bbbe0ff05305ceaefb6a85daf3f0ded146b91ad975837a24dc0351bfce9648556ff4267001b16799ac7b9e9d8ec5fbedf65593fecbd6f103d30607a05bdbeec645981c7da5f8ef8af3696d06c1b4c07137429961c86da9926544b198047ab996898330d68efd6488ec153ab1acaeaf214f7f48aab3103cdd95d6dbaa5987dca41dbb8cc940234bd92c40c6ebe7e72b07b6e3b705b1e7e6fecde98f94861255279a3bb660ea4cc8e167a2eac4f785f0142cd55a7c7c1f35eca7c412de879745db509b12dfca93f1cafa75b343068c1473347a94ad08ae74bf7aa2543b779998af38e1db11670f7bfe5ef5b4fdadb83545757799382dbd269795e6a92fca2ac20d7a134e76314449356d89158f86afc7518e2ee16a26dd7189ef951e6694a2c6654457de4321bdb786a19a40c8923e5f406dadf9e0fe7b4d09c3f1d0836edced10813b3b8394ba9f1d551c29ea1392df9e9bcc7795f974c0247cfa5b9a7dcc3a685ccad06dd33d2d3f7b2a2aaa8aac090316085836eff4bde101fb37d2342a76d6cfae785f167595f44127083c7abc2b3cb898700f57e473bc6d6607e8be682b15d804bd361d1a7169a345d6de15e647e90cfc119e5c114dc6b2ab9f5f821c04878d9033263675f4e7fbc6100d4b2f2b3b2e742ffd02c1a250933d7266b945cddbe3231f9bf688c28c64a3ff92fe93192a37fa35c87357267fcaa5f0a0eccce066a9222473d641bc34dbc1ef2fdf31ce8b3041f5792c930018c22fbbb6114090a519daa97a4d79e20b3780e4798a2b9e1c4bd76cebe5de925448d7e68cc153932f0d417dd748058baadf5227fe5f217e21e9c030d263c36be321302f31f1d2bebd75918f498e3e638b9dcc1f817a2fd3ba13317508fbcf1561c4bb09992622086e893e34f1c0a667d9230d22f5b9e0dff1ea489efefa5f5be62f079b37b17f026172f7e76496e924e60ef4596ad3496a86931d7fb4844de13b3a1ff7a2873626ff45f24a2756eac97e32a732948bb3817f4bca7b62f320b3813d4acdc18e173e7bfc7be31768015d8d1765acf21b8af2a5f88f96033236be9ef2a718be865de2cb45bf52c2e972f9b0d85ff976f18b20e438c2d9b429d96c21f4a7682670259bec2652894c66240ba882807110111481d183725748dc752425f0d4ee0947a2ee62068288d3aaefe0bad6427d2eaa124d20b7f1ee948bd09777a57ab842225f21923b67f5ac267aeaa49d53c5302ee99736e8103349e8b89a8a024fb3927951626b15c99242bd7528c28ff8851651d71b09a6b9b590c58c4c172474d34b2224b0c9d82f93ef41a81e0232ac1cdbd7704945275f5f30514435d1e85c321ba577b647d20d6ef37f84058a9ddb956f18a470db91fdb1023f0ea76497e7e40d0d4bd3599f3edb8f91fac6be54fb76b14bf218a858ae91c95dd3d75fabca40eae385a74a1643463adddd0f64962a7510ee8527ccd41483c3ca8ea15ca280ce11744cb66dab90c7f2fdd8641151b2c86838506a054e8cb0d3172db383201f346b8ba424e96991f44aa9d09171a2bf17a164f06b53f55fb43428aebe62eb753f71c3af5035100ca1d64cdf66211a9c0bce4287bd4473f5e1f46cbac0c22de6d5e1a7049accf81fd9b15853db7abd886ac10dac4b7d3a4154da71075f6e0843061d8b39c488903b4b258c3e04022f1207b57b78a9c4f1c74fdf0d83fb9d7535628bc1f55ce1af7fd970d804a03b054d6993eae1f1fb1a17d70263b62df9a4977aa798eae763b26354c48cb60121282d1bbb901986987f10513fbff5fbb0932ccc96dede4524f72c783a1ace7367451865329331801f652c391ad91eb1814d8322a6cfa30dc49122fe4972037295511cac6da034558fbbb8d907b2b17683b72e178515f2c74bb5ddf4cdaad90522fdf46603e2c44bf46d7ed3689dad493be88a22fc6b102551aaf589bfecbcf0da1ac0db278fbe39e20ed698dac4ba4283119fda7c840011e035422db08d1532474e69cd3a659c3aa87de07c7710c752ca45e42e5420cde117ac0f42ae14df16c435531603464035b9787c3967dd96c3f04d520a8b56914e56375de41f5d341cc8a4ca54387238b144c4f5f17cc5aa1191c799ac7cca586c902092d5bbf951060f01564e66954cbb975e2760ce1115dfb6c5ffec4fa03aeaaac9f7bc74eba0e069c8cc3e35bd781d5c8a0f6c86c3772d4aee5bfc33434676d961be79c776b027359f91522b1e5df82b3101abc4f5ef95641bbcdefe00878d8b3db9cb8af37ef8a6cd8d86da995e3b9e92033d3e2f72bf11d7f57751bc0319ffac8f6751bd3c56611abf293233d7d3a45f0e93f2bb6a4aa8bf290106f5e77a25d77caf88004129986c492c8e81fe73845863fe22757361949de86fea163f6c2de1f0ec688216d613d19246c786b73249148e6e5be3294b4717c9b419bcf796abeba269ebb7adeaaa82b51a09b3aedfda17b9c569111f2dd1a0eeec65313b468e80d5a74caaf9c8e94c64a871b69f2610c392861b7d43eea44245fc0cb22e9c081f4a5d9bf9a685bf814d1c12ee9bb63f66d9b783ed211f44ee450fd579e6de0ead98c1bb4dec1241e4b5d711001514d368c5f4d0f72ce558856cc78f2cc58086f2bf3527ae080a6a605d60122c12b519f87f2b6777c0ac35aef0f37243047f1789aa0d5fcc1f2464f7756fdc5dabde163731fb30d5dbb0e3fafc1ae8076c662127aa746847265fad57b73b78fa016d080827d4e3e553d467d2fb2d8b21a0fa15685ecaf5dfbe180fbf931c562a8431cd88f4da223add66306d2fb4c29c67c600d0411357d69c5b07a381c8b688bc36ac49498785a4dd186a28a9747977e542eb54a50c91bed108850864ecbc3c61be4e744d30305eae9853ac69147135c5398e7a45749896acf0b1b67128b8e72df7e6900691a85fe3b86f7b73a3a17c727201f37a98d99058114abd86bf9934f29fd7b83a695805b26311e01e9db46ae5033a9428818b0da9bba85c22957406ba7a8d4e0b5c47a81a633f933363783f10987d8b6b507387f0b58244437a06b6aa8cd721ab17da1c5ce0db587596d326cb4ce4319e715cc1923f6f53257980bc6390d56132b9b5ee356b8571ccb242e68586669bb75578e34341ce849dd8816b62a9114714d767e5f3a872cba4e129b40d93e56c5eba6b3d118aa3453b2c1e6e3bc96738811d982b885086f8c85e9dc9be5c8e106187d3056536898a559986cbe78d757f51f1da65c57fbc016657c7ea0874586ac38c9822ba1dc77fd00e6102fc797aa82549e38ab249846eedf88e0bf253d529d781ec68425fefc0bb31c333ce138db0ecf51f3dc0fa7de4aa5aec718c18e21ca70e11a65cd4d1576ce3737849c828cf1aedc6caf910f6e3977c5d3d1508843c4414d4ee5f526aeec758f94f2b26273c4c5125a4994a2e05b9b86bb0aa525382fb7f1e0d70b199eb751cb14573644e9d84b404a9d075f5b27012e39c376884dcf032a87ca3b35d4b99176382dae65a09871c2d8602cb931f893558a7baa4af61b2972b66bd744bf6bffcd39d55f3e06b3e111df192d77c4a813f60ec15f794f56bbe34f61189ce1867a97171de63d9709827cc17d2899c126e86b502331b60da831e9ade4d333387bdfa69486d866b0fe73e4f9b8d04797928c0746e1b1cbce4916a59c499e7dae2017b8258ab3a1b6e1a5c67ae99c977e4832a8dc80cb548056faacf5cb9f58a8ad9796fc1b64f737ab74d874d0fc0cc17c82060be33087bb49ff5b06dccc261362cf454c12db016eb32f90ff30bda25b93122de0b2a5f9740f8a0ef7db96d426d72e9225957ca3d54d11f198b0b4668df0394ae4c8ee4748ea0abc7cad286ba9ed823757f4770556e7ddb2e1aa4d27ff2a23be42b0ddb9794853e493994a8595d335eb90e54c84510d8dc3b0c9a6f3679507711670f456670a0d262480221e79b201fa2622652ca6defb94fd90d62507e70704543ab84fecafeff612dda9795be9852f0c050938a138612224b3bc7cbb02ac74fab84a4a37080a161fc9e9ba7e9ebeed5b61df7496c1b85e77a7fff1ea8a70a874fe86296ff59e59690755930cf64f46f383a511a949aa5e2017f4f4a7a83e05917fbf070e5b09de2110895a807a902361c820b0bbb7749d6c681ca20dc3138d6acb4f67eafd03e989e3620c424a8b6730165dc6fa2d9d79c5d114e4549530072d3dccfab2d64b6bff1bf2d51621913dd240d9ba29bc2989d2139474e1ad0b166e79a6b44cd8619ac02dcaa866bf36db6c04901ac6ba5e125402fcdbf0224f697b1af381c46e107c55fe0bf8926051a43752a4d48789f353ff6d7d0bf3de5fdca7d4837ab3555bac34304128a8e76027aaaa94a3226956863e350779d26f8d78fd4d48260f7bdccc780ad6ad68299357912dccca6602e7cd874ffc23aa0ad292b95fa4e2e1049a01484f07de6bd5d609de1feb3e55e3fc6a0687b177df8d78898f270d2a73ca7baadcda45e417e21eeb4fb1b39d3ca10f6e77f9ffc68deddd3ec29f01e91b92c4d33801deaa0dcbf557c3f433d3a729a3822a4b29563668d93e49c462ec1e3f44c99c9cc14f0e8d13fd67ab017981581f2457f855c4da6bc30c20e0f12f3ec30dcbe8454a62ce740959253179e370c45664c05b6069da425a7e300f3bf3be706592a2b3f7240e05fabb95d6eda53574c1cd617b4442ed1ffc6a177d9b9551812125f0889c8cb6dbe1c870e62b11a6db283eb97e1990365a26f5447b5df245c8f8cca4d28d0a5cf3ea999c516928f9f38cc44e343b425799ba4535d83387ea1d23765f41a346f99510bc0339907601b83e1101bbb4b9a96c707c27dec35f62bd1b0cbd363094cbc11d236efd5d11b3d50b13d143fc1c85b28b21a98de4d72ca7c565a47254def2edeea4f65e9ec54dbbc97b700c705b7c6c93178cda02e00b82127cb5765d9c0cbe18c9003f5375cba67d3ec3da1d63c7bba9a07f55491a99186366f9e1846b4b1a0cc3bed70883e0df2fbee0281a924826ecaf3bdcce4ad2526afbf27508307b6e94c553baa95cf7bc87b13ac7dd0b2472ba6fa1d077992f3774564c606df7bc9f72d97adcfe3ac2a02c246f13f66ca7da462f81568e7ad83b98b4c20d8af8de6f378bf91d7c83bda179b26ff6c652f8a23d4d14238b3caceb010fdbd245d44dd2770bdd757a6be2b925eec53653514cee21dc70673036b4a2242383fe7c768d2c679a31ba60dc2888b23db9dd194d67a3b56dc93a0cd5c00999ba6b5565c6fa6cc99345f9ec0129ecc5ab03e5fb109c98a64cd76c96c56141853d41ea11a7a6ac02156b98258cffb210413d3ac0bbd8d710fe5b1e1ee9f85cba8dcc986e628ff0f8764a2935d2364ec218879d7168f1758a1d38c1a23b6026ac11bcb66d8d7308b2776b5129f70bb5e61de288417731c2ebbbd7d2d568894da9bd6ee16672fc5eba1003a86db6eea1c389ee0bfb69133ac9b434a936d75278ff28a75881273bc85b21496f34f7891e328cf9d6124cc94b845a082bfc43ddb5f92ac199653681c53fce697fc96cd43fcfdff8ccb404f5975be413395341cc3227c339fd2d6ad1bce9f6b75225dbcccbe3a5e381879423de0b0a4003ae7451ba4638971a11b5f2dba7a79057cadf7833dc8f76a79bcaf6c5f40672d87eb6aa0f9010f621e765462d33f8a32106a4e08b424cb29a0d121fb5a5efa84a03a9672ab54b2b398afb02f38c593e6586e5981679e730b889d46b60aa9d7fa01437a3b8bc897b8f27f8120dc8513fc863ebad2b567af649982949e37114565a3f0427bc55ee91b89c3eef6c2656d8739cb94921fac744d70b99605e95cc36e4f40eb1f7d86dad90709bc305b908c9a3d32be0c92ec5bafb50c5d23a85d1f099e3d557e5ad760d79369bfb5d7773a266e7c3cdefc13c830f4334092784b9dd1c2eba5b617427112e7b444af54a597b1ea817992e79fd76375903bda28161507b4fc0874dfd0dfe9d959cafff1f9e0f26906e6ba3d7d0fb21be82ddaba900e7c1655f18f607b4c73919e64715347213c3af37579ee7c923f536f4dae921eae69bc574870bb2f8bfa12acc4780348c711c0bd615c09c69dca95fa4567f430ff8d7c791b06f759b20ee1b9d9b2423071493c3b42997d7aeddc5ef64de376bb721c2c420c40fc1d535ad844123fd1ba8094cccb3093da458a6224bff6d43261600a688d59151cac3e2061697b0a87a5e914bb8616d763fbba070da3d51c70d7a7e28da5824b42cb9fcae03c1dd09820c1e02080dfc779a66053b61828c86ef0d2e17bba91be92e94b9c9539e45e8f6dbbcbbe38f15698655b97a7758f083fbc33eb3c217738e1428ad602aadd8e55966b64e2eda914803604645b3cf387264d3b8319a15242518d17248b092dcd91740be8505000a3c5bd151fde0d300af457f4c9e0899672f325934a3cb3b20ce6b0b0bcd247f2b25a90afb90ef2b8f65c0625002bb194ee389c37f326cba186a3ca7a0bf921d0073718eece162967d8f0cec2e4a9a5af04a02e2f170c851bf549167b553913d52114be1de23b15914513b8f11757f72771b286ecfe73d720c59b1c0e9ac43c53fcafad60fe7b69cabac97c211ea710ffdc5a06b7d93ee22c5deedf5006a6ecc18dec516ec83b146e1874860e0f529b44d3c3cbf02021edfed499619fa57da5e3b5d6d0725fca81b50010978efc5294e2b7df24e7b25e31930efb6f02f68a1993b471979a2a6375c8571ee4765d7876983a8bae11ea80391a740ae4971e5f44e4865d394868e2ddc5840d8c5340ee234c319fd5b4fd687ca03f77a11ce535b9a57c20e2e6b0d27cb31f3e7d645e1d27f44593da5b860ffcd82d235a0417094cb85042a1c09247f91dd9d830f85cb3cc7fd4fcb334d4c2316e0773e9cc20af06ff0437340ed324eb767fc887c918612e949738a9600bdf33742f4163ed52165766e259d7432d5e630a4da1ec906eca07425ac0fce0616ff8d62d2474c32a46f0fcd3f3c341d1f413e95f4745426d782e35102e02f39a89b7c3f7b3e15f108df9e0c700f8d762150d368f3609340b849c79af0bc706a502bf84d18703941f8211508137a6251558ff36cc53d75a8f7e7fc96e088b0fb3fc23c27c6944f1c3c6cf6316e22452f90db3a7f05ce974a5cbe31dfdff92ec63771a31de60cb40c29459aae212394a8d7950ec77dc51f69f90f62ba6c298695442388ddaf6fcf09064a6dd972a787d67b86ccb551001515943aedaa933cb97359de6561fdb52383b94158c4b1cda843d842ef2ec2a88103b3fd99128fed53a8be4fd777437646bedd1cca6ebf30f3cda6e300603a83581fb6d158600186751580eda09cbb46ae623491b4be717e24f8dcab9eaf445a4f192f452cc89f1d9fdd1a8a79c2e713221bd2d305a5d0ec7d591d6a2c51000b62e0c4362072211c977a12c36e367e740388833cee34ec4c57aaa32d6271f9465c51a1c68e8fa92db5e7fde19124aa91a962c9ca58cd578234d33377b7439b3fea9e4493aaff63f1cbe22ebad9a189ae9db60eea72c9d44e4cdc882ae259f09d30f7df0ded3b780cc91939f835ab96736333c1141b7ad6a1eed9909fea606ea4e8f7f406c37a8a9feee441c3256a26d2d2551dc0d59bf3356b3dca1d27efdac8e9b0d03f8349fae0a4d9e1e2bfd24747524db9594bf6bec9515109bb6663e2ad3e3b34373f6a0e33721c738f4dc179d60449905b2ec3f9fab152e9ad56501c062d1fe8f221f3e71fc0457c585cfd2915cd061370aae33efec8957e0ddd2acc4b27fa9b13fbfd424ce3c91c0f5c41a81ac2b71b91e4f2285b7f294d24dc205011fe9ac5f44614e6ce0500ac7ea04afedbfd9dce9843807d307572cc0eea0ffefc708c1b531a89a5eb8f10e140d59eed5f2657ca7482d50e2184ea9fdd4399e809ae3b8f0079b1603d7cb7a9793ee8dfa0ab3cd01ab5482c50cb4883e6cb2075a54da92d74bbe2ae34a4f13a0983e205cb2cfd6e27fcde39ac91e6f3214706c164d3836520332fd7fcc5a95f35cba5e45964ac056c9dbb45b2422f81dee1a074fc9d84c392bfda4cbceab60f89ea40cb03d55e5ed8c75065e28f4142ba585dc95251899c8d8426e531f9bb5cf6f878f7c0cbb8fa34a7e2d43f301036bc22c83aafaef31b75981731f45c2a690600f5b68e437fcb7da5fabdc2db044a4a5613d431bf1b8d151cbfc82526476ee187e37e1a6541d7d3934e4a9a09396dac6274946cc5a8ec2b6450e4b1b763947d89b03ba122a4a5320d6b83040c78161b73c5639e625306f28a372f17d0ea3eae3f7dedc23f85b3182ad96ef505b8083f50ef274fd80ccf444a45b23c432c632164c33c08d3323309619a0f75d5fc906f6cf05f3afa5301b13839ad9471fdb6aa55993a52bc3940ed6770b9e9b9915d7494841cd80474b07e10b2b2bbe37f652acbe86213cd94acdb3c269fcac75332176543fde9e0d6c89f8e982f16138d160b2fca869f83456f74d0467819f061980f85ba06c1fdd022fbe4ea7b6376dde494b5535bdb3d42dd9bf3cdb320c95ee9b6fa5c6c7c22267d1ccb771c93e8500965d0c291231b7cbdf54f67fad5d24e6dc32d46099f15295895037e67c66b31fc464896d03897729eab4e9a2c63fb447a79f580aa98ed4d6beab115507fc140ccd4a282d3ffd7d2a313de449a9dd166ee93cb710d6b51fa77b520e2523f811982dc5ec3fcb8df609c48f164f6e6f22ae2969884f2d66a09807ab4c0e5a3152566441b962dc2cd83252c47dc1b6aae094b3ab6bb210e802da8bd8b99c327e3afda3e32faa6bd811f496b4c644707b448c8b94067cfdc8eebc305c1397f440cb44952bbde66567a38765bc913655b119645eeb4add7caf838495e1dc92005851219b43c6c12f41572bb0ab786e284b053543a864ce6be87c9d8d4ebc2489ad3a4d4e119368ae665af73a5e548c4d061959ba1cd686b64b19e4b21f281a9b0c25a6f4eb7d3d4887bb1d88187c36e8f0d9eb3505f5e778d8670f97fc1f35dc4ca03587c81f00682e6f5394adc277442d5342477721cc68255f567099d04205f9a1f815e198685d5a1be2a852b1d59cfbf5e0887eb1e18bce0b01052af9a4ed86ee0bee07aeea9548622d31b756a9b47bc2ddd615b85cb18d993de36ce6a15c6df3258ee3730ed1706ab9e32521ae8f7e143548fc1362126d756c7ab4ffde8aad4ca4c57afcbf14f8dd44371e4fef57a898b835e18b21f5fda20765062ef05791ae72f82d1fd99f659c170569dd83f78c6fce550e35b97db0c12648eb1a4f92e006f909451ae40352c303ccb336aaa6ac0a52b97dc755a9c8a10f4b43022c06c62096c91261c5bbaf139aebf56bf9cb873fc588cb195d0a0eaac527bd2f17058122eba6817608621cdb9aa85d9823563f5bdf33fc577ed640f812168334598351457852368908bcb83562898f09958cc66e00f6a81d8ed2282af535e82c39eb170decb504a2a31d3a1c5a1409186a10288172015d6420dc091cbc51f989eaedde20ea0c4ea787e9762b0c2c757e16ea7d7423d869dde77c9f2b6fa90f37578aabe197c12bfaa39fc9f48cef29d210573fb537350a906b3df6703de42d7e11192641986c820f7f43ad9edc4d9cf7079c63b277b55337a30e1f8145d2faa75401366724531ec8805d625b6de67b24f165e395b12d3c5758ea204206505afd0ef6a41f475f6eddb959c8d05b2d9474c8e7bbabba4b97a3aef8a5aebb1d46a81b3a16448cb594772fa66bb3bc0dc22d3f97dbbb76e3720e19ab9a6ac4f5497c74f1c56da2ceb37413ed5ff16ef76b5ca62c775fc1eac9432b366310c30fed6c904a3cb154fa166712514b26db6dd345db88873cb98c8bd724fb90d29786266df9e16bd463ac1a4d1103fb61b06748c4db877ad7a42132691a7fbd7d093bc2b4240392210c11eeda93070c0d121296c4151f0fe986908e2dce33631febdb98a4567b92e2f0d5ff90a2672dea8380cfac5766d871832cf9e9801b826bedb4f4e08621ebd110f670ca15243eea3b45bd33e51ae04d4b6894c5dfef40e607c825e5342722cc7c2d8af396376542a0d0bd9749b747dc5f7b8f4c2f75d960cfd6750ebf1cb237c4349c4c0d961455746d08ed5738deee951140867c0a39dff2f833a7c6d184ee2cad1612728e5b466814bfd6de0019be984296132e99ec3c70109061d8f6fe27d140d41ec83ef59f0f4c979e41d0f01b1cd92be27a73ae4427c5fe297a1651a1b44272f4e6cd484269011c5771f872cdaf4e19195db3b057af1d9cda1de914b3e387e93aa509662343c8619266f648306ff47261b968b97e14971710b327a137f667ab4041a15cd0e00000c0f7a5e416f131ace266c048703eb2165a9f4aeedfffd9e8e14b36739aee3dd123963b41b36856cb4e988307e42294d20d9a0ddbe47fbfbffc384c80fd7bbaf0711a7e701726f5c1c1fbd60ed18ac826df42197967bec408544a43de365560922e86401fa7cc54a5cdc89cabf9119855a147073795e3bbd5b86420ffe693d996924b10bc60e3ab070feeacc9866ee9a59efff85d3c051e9447fb6b7b97c7e46e306898dd12b29680b2ed8396ab57825f46b6c188649025806f5213d476b813e4260f33a6e2bff9b81eddf4789fda3e3a38333ab7c23625dabcf30e70681579cbe7d8c1388102c08ad0293bece4bd140480a63bd29d15757b4f3869cdb3fd3015aa56454c34c2fa8d7cd0248a5de42fc1d03fd7b88916e17e64bfe2c01ed25f6bd2499d50a5defcd5a3bd4835b830f3eb4477983b856943e3898946c8502ae672bc291ad32955859839fd0ee83f8cfa20febc8310979cb7f6eaab54b7c1f587dbd49ba267a50c4b7f0de17e2ed97a93e128b2d36c5911abd6211471dbcac902062d0427e4d4232d8c66c8afea9809ba3cbc44d4f8b617928f024988e4f177cd71ee32f2ce061139df3970bc53ad02f32c4dddffeb35260ccd5ae685ef2032b621ab3c49123acaf85bd167bd4fec97976d484dc29eee94cd23c332e6c242500e82cccaf2ea81bb38972556f7a4c71432b9f1dffb5cf030489352c68a41fe7240c9a51f0bcf426591ebf150ac0d42ca1ac354c231b3225cbb0bc48bfd678af6e1a21fd8a8e2dd02b2a1751b6d79ffcd8e87d0a0da210fe636adaea956dd44f13512d4df564e5a88ea395eeb6fd1788a42599605c9de270903f849699a2d65b4344bd84ac2ee3eb00fb07914ec0551c862788986e773e9888cfde3eba0757bcfacbd1f6256828bd228f52924394b66e47b09bd984293a9d47ada1405cc92ef5b2f6a90d74eb296bfda827bc2e8a051442b320587abfd5a094c7fc1b43b06e99e4eff4ac1463247230b1bd06515bc82054a6e7d7fa54fb15ec68a9601614ca82daed408d70abff53ef080a7f263adfa527d0affec45eeaa3509db4646cdb7270743eb5fafe96255969ff8cb7622d36555459b8c1881be858608524eaaf0c474c5503bcff8fd4c537e0db63fd97f7c0fb8f9d0e341f4090be1615eef4bf867f9475b8b60ac2c8267eac3019bfc889d99f31608d436dfc7d6bbe85639026d87c0f1d70c8bab0a6acde02eb6e303f2d5d4dd1f5a2c17b5695a33e9b3732f9fc3bf25fb315bdf4ce2d9a635e256c118706a4e02c66a3915a171b95d0895006db9576417cbbead301eacef46cd7522c0f85d2e429c21e2d660767377b82984ef5c02b858e69fac4a1dbf5067473e3d6c8fc21bc408967c4ae9fb43855c90d406eec419a4ec9706da4c13a5c34886475f653ed6060bd972d3fe508f1ce3d9f12974d7634bd33394cfd45852e75fe8e66dcd7b37019f028766e5af6e09b578da1baf355f64cecb9ee5c079e3781ec1e4effdd3862c0d40a8b9be2359359305ddb9eb1021c516a8fa92b26278a1ba66500f7a0e3b9bb8cbbce6c0ba99a3e80cfa21cb7318caf6bfa8106bbe96f2f64a2a7899208d9c614c5652e590a78ac2aed2b8339daa149b134c4b449c8c4cc812608d11e0c1cd7c1401ec893916652195afff8bc6183fa13d4e807bdb303cba3c6302a47b759a33fbd099628e6d22a117d825cac3eb79fcd89b5d092a60fd3ac9d815c4a6a238eac3f7be475af77903fa50a91fc4d37abfe9a34c4c6260c4df110be98ded49ae8c31c8b620a148198d22cf5a018720cb918c217056e0f65bd82a7daea37360997fa5974bca3f8a9dc79cadcd41b0dce70928c5289987321188a3c4e32beff8e84aca2ce1444d4e77a7fe2c016f5f018029712a8446c381fcfade4fb134ca86e6b02571db4d7610eb898f4db3f9a246c82afd524972c4ae6b70f382ba5ff27d448c82819644f6def01169dc707d3b80822549b56add8f21c671f1553d6bbbde41c8ea9cf3ba49f5be39cadf1839626ae99ef5248c19b6a1c68d79790300ce52959dcb9fab0ecf40d3247bbba97cd29cdae51c42a85ddc4bdfc45424a165749afe8a3ed9bbedaa40ed8b019e1b657c629944bef730f3a24d0941eafc876eeae1db3de2a7a4bb840fd65b2f0f87346751025d54626e6e6cda7fbf4b0f22bf90dca99b100632271a3ba92eaa30c794f53455cba27db690a8a83e061a55261008c3da94190bd76f0097bb3fd7a5bf01375158f2f8d0902ae65ef86e3fc8fb4a1338a433526fdd9337889dc179ca623ada8eb9aecff101e367da297ea76772b7382a0ce35b0003e03b2e9e0c34c0762a59b3bc5d946d84b22241cd25f5180d3867f9246383bf242b2900772cb84ebe184739bf2dcdc7318885cfbd616fa8375d263fdca01034497ae7eb3fe385b13879f11ce15791287b77c1a13c2ead0b487aa3064c01d75d345d513fa4b1ff9b8183651a5ac06c55d26d34d0a138ec7390c0629af86d3b892252a6cb125f33f4197ee1c374671b6da530f8b16c109456e8ea4e6e62ca9b87f3bf5110ae7bb0aa25b9bb7360104be8a45865b4cc376fbb0ccff2eafe5bc0333af5038c876da2d4a5732cf01df447bb289bcf91d80ceb59fa8db666566642045539103af6355ed538b4942c7322364459e36594a2877255023e72f87493a5c0d8b7fc7d7334f62528554bc0efb95c80efc2ef85244672d80aed76462e34976ad7b432e501c4ffdeaaa7e6c1f6ffb956cf7f3fcd6922dd283b9965cf93edd3a01a3f1e951d7f98ab570bb3bca53a4cee8e7afd23a90053fd1da05ea87bd77df896d928eb2abb736d6c87b838cc7e2591df6b852eb9177f25c2bc3bbb9b3ae2a3af4340f1c33de01f723cb027eb50e541a324c48044db50aea725c26c399f1e785ca4314505200fd7f35122a845c7f83c7543bcdbc019723a51483bb81e3ecff787fdaec077b619c660d9c595730a2420d64119e6620247050913dd7419f6cea220046a56e4739ca29d9dcff2dbac4cf8c3f84e5901649a27954cddf3146a8de4b4083bad2bcc58ffdcf8d70e9155322d5a606032af9bd75b611c0d74fbe0394a6e2be92f8bfe5a13f10453ec0a2a3c54ed2c3243a7d4e3954967b9614d560afec78652a4fba573d9023a4a7306c653a1ada51728fd6591ca3824eb3ef8fe12eac096b1a29b01671a5e520b817841b9b41c68cb80766f45cad43b1731b4338c031e9bfc0237c22c72154675251ffa890a257ada7146da8386ab85a344aeec9b50f8496f6c8a4a8a0053b66d2fdad855d265e8ed4652a53718237f82053e9924b4f4c19155ff7af5675bf7b46295251095bd72e92292783cee99804114b4886fc418f9e9b5112c9e73d92437a0c6c18659e064fec1f879fc8a9480c1d7245f08c2329ddab1621522522143c75ea2ee4bfba43369c41f3d370983dff6ab35460f8922083eb86b728b5c095f2c8bc93499be8a8efd57b0c71edcb8aa114fa3eddd26be55c104fc4bf812271e075aa00ca6470389f3f8f12c60321352c7941ae6d8df414dcf0abda21f3fb1d0cd01202e0a36366c0b4566c7b227a3abbe0391f5c2dcddf34cdb10c62f5e566b3f9635ed56318d983eb8982ad9a7698ed54c3c107c86a2a44c5d8120c36146acbf6823939c9ab4c0c428097453c7a3b4d6bf5019ae6d55880a90efa7a012614ee99cb2183569aadc6daa6c76513c37daac13f49bb3812210d0f137d91521378540c5d31906db52fabe90c88b3941703e4e9ffe4006c771e5c1cce09a91f7db7b49d83a3f0bbd54c8fc2f7fa42256a88888896881e096bcfa6e492dd4249827e2c64ff3c45543203c1a50d55ebef7b9ebdb6af860a5750215929f809430804f5ed2abaf9da3dadfa3b518110f408817e476fcfeb141cbf1a90369b23f10df55a7001c3ebf610b4676df024fd1ec7151094178e6ee75dd663e2a156994c35f07a6d019b4c5255b78daf3d1ad57e41f24ad565cc40c4d049c228ea2be94ccd6474684b57f1395db12d742bddded9186a0c3d9e2781c5ecc573913a00ac7f9dfaf0ee8bc3febb51d31a836dd01a9c440da1b4dee26395e1b0491a7b0dee9f0e365eed3b23f298500cc40c062cdd1e8f04b9be0dcf6bb69ce13cc356db5f35ac63d73d72e188211e842148ec7d6f78a75816feb03deb84b582117e72ea2bc6d929f5d79e62ce46a5990045d58da2478a0633402c837f4e70492ac65d822cd72648a45474155b2b2b6cab64209e94bd4725c7dcc3c4c97ca80b9972bc3d6633bdb4a3d19be41c96909e0bc96b2669b543665ecbb8a324541ecddf3bcc5e9ce5df3fcca4d780c2d1a44d7b537281bb3ffbcd17610925624d910e9f245cb66516a1ea9444f5236ea935a84e94aa34f0cf9f5ac615a19e0bdd5987c04e476d7cc3017a72dfdf436f8ddcd0e129bd783680c4e0339ef875efdb65c4c9cdd9d1b91380aae4ea47baae154df8cb20512693d8e349719e59c8b96708d2350fe970c74efb25cbe0f04d26b6b8174a4f92c54c317fd18c66ac09e9afb0275d7d7201fc2b98f87cd7c1638944d52f64eeff0afc38e4d7dd3629d34bcc54a95d12e776fcea9c29a204d8b2372dea929b7b971b6c11fb3cfd25fbbea935751cfc768d2abb23d30d57b11e4d99eca4a2c694ead4cc04ecc99fd2ee66659c36cd68f18970f4040eedc9310dcda0d535fcabb117d99c8a46a052b3a5b219510de538a65b7cc2ef5f43038a9d5c2280db9698225b08b574bddc8949e2c3f8a8bc7ccd232602eff161d3110bed70f1b3e685c92dc420040e5633f62952987723a6e03505a307d90280520fd1efe0e0142e646c393b93f39e8b86cd25a15e9aea6ff88b53be1082cc0a8fde7a0a25c31f5636fcfba3e5c78804cc6f3e6a52a5be7f8d06aebb66007d2158b0b2b70d67a40b787babb52bceee890ab793cdb4bf79d59611e921c5afc243ec55ed0a1a62126a6f1af9f203cf6fe6aeb3300bc4b6fe989157e3c710e418f5306e4f0df4f781f24b556f851bac22530080f2c26230fc953fce946400014a307fa65da2083754ead2519a6b34354a0cb2946a4315533ade87205491d5853369ef31cb3c0da401ff7887094ad089408937ca0be3d017514e97928210a731aa092b8d43613e299dea2480ec6c9a34299e81fbd5d6f255c5574c3fea23419369f0958ee44e0466a3b763bebba68a774f76509b0dd3df1f25e705810b2f7689071715dfc8a53323d347acae9267e42fee3d8b258129172cf8799b2c47977cd87d3ac03da8cfb1a56df6c5d72ca2e0e920ceb9bad3bb3bbeeaa8973c2b34a1eeceecf2ab72d901c662df890f1b408184a9380033180d4a8ead3c18995d14d17312c9e014baea9bf8dad8d32ab9d7f311e2fffdc9642b8c20adf6b4ca4d00b23ee3515194699ec91c3e36ba3e6c16ecb26db0abfb416bb28272f2b49f5fb806eb8a7a043824aaa632bb1d60dc02ab16db973e1f2d0ba8f6c3097e975a99a65d86ef80b48e261e039ef9ac71daf4fb103f19b7b836f8f3012351edbe8661659ff1450da00b8e0a13b53e547585d557f636956bba39d4aeaa2cb271a94f9d66576fa3538d5cadd02e0b24efdb989e0c90741b5f7452110786589da4628f2bbfa96e3014a10aa60ea72fba14510e9b2467ac7b583426bbf2f4515103f969110789a2ddff4e77a3583911b5d16ffcfe4fa06af676ca3543b9f6dcf1932360aba89690914ce10e09815f619e78644ef4fa0dda246233202918626fbe8c5a5b71bc652eae1b63fa3287b728ee78c41f66b6f4a9128724b235e4bafdfba52a780c4d4816d1745e494087411938fbd9fb296342db5cd0d5ffb0e09db1360e9539b565094b489a366893f6fa8a73daeae30ad66c0f2d4348931a1ac5d41b7fb349b7a62ec321fdf8a44dd8675769832c39114a11f100da6a799be612d9de63f1a64be7a2af0e357a09e4b39ad3c7d3ad5723cb2920697ead697efdf3571b348ff7e8b62dbe2caaaac913246c5100af19db0b8bbe412ed69f02ceea5f1a68968f8d2666bb7a6dc7fdd7b1c60ad0316f363cd1b850f66603111d4740a7f90689c4d2d67f49a68dae939741bf553d86c58553cbe2e4cbafce3f26888b7beb0cf6fd361aae527ec56351d0a65840ee81c76e7e01a322ab97cd7672d0799353962aa376ee6fee55ba5b654feeb958712d7e3db4ff0c65461d0cf16bcd34bbd98679f089827a86efdd0769176e3e5c19d57d540b9d47f9c6e8d81531f379682f62f86780fcdbd5507b35efe7257112f7723ed858d9708c5765713fa41e3c46203e85ecf3e0ad96f7856f5593ea4063ce0173500a036dc125318e4decbeb56c155c228eec322f7700871097c3c3261845316a5304d434e4dc014c3dd12bf9b864e42a01e3c5cf3a380c0d486cbef364e98077fad4f98c2d3d37ed3265cc667e4aae6c152558fa4f44c30db60df6c156e71ceffde52fea94eee54b651898aff019f62365e60b9617cf32ecb16d67fc368349e8dcf4f3023fb67e638bd831529dda5c08af6c856063d46d329cce15edbcdb15425babc797b4dfa9f9fa9ff9a076438600ebabfb92c2477c265a8ffb3e2daa1e7f902f6eadfcbb6b0dd8773de8700064c1aac57cd51e89d51af56fb51b0baec7eae718d9c68e822a34def9b1ba9d6c5ae1d367556728aef14ec31fa91c8d8ee7fcca6b8874965844e04824a61ecd14bb321916baddd1c85f76a67b9b03c2e51b38ec745d264fa093ae601270df68a34ac988116b4a33d5a1e5c29165bbf299f80f6ad4dc5273fff40019e5ebf869a70e686439ccf9c96b0e1e24d32afa4a3acfa939d2af040407f67b10a907b526d857a0045a7d23c6666472d2ff3409ba6bff2a48964a972269c532d771609303887f12e4326b11f8486acbde56e0f597f160441ad9a6b2dcf231971f02beef26a696ac88141c04936d5cc54b01ce0e0e5222088893231919b52373898f9b05331c0e8440d8e00906088f974ded29de69316aa2bf86b6390eda8e439300127c4227f61524547ecc0df0c2c6289e6db978d85b16b7bf547d66bfafae33533fcfbd15762905bfffd20e9b2039aab204dd45d2c0f10baaec3cd4da1cd983443f538f3a569dec894b23be575040a9dd9f2ac3ab541aab411c2134e5700c40894676eeabb14d03dd8659f438a0a5e9557254618e497dd2702be1070e5e781b828197914a9daf8296745ab1db59179a1c30bd3feaa1aed12a4ab7e2deb3fb1118453dc2e476cfff62ef454bec9342650b298e95c977de8902ae24c8a1199697141dab16f6c0698c6097a3f2299a6513016bfea949a783f19c231e08e14d2a43ba3b0d50017b5a8bfc3f123b5e8f250f51b5562cb0ee33722eaaa98ad192c3f6c6ba97ccbb181d9ea9aa44e835dfbeccd9121691f34f2883f1ff34ca56192f27dad4b026538dbb77f9a0f73e4850317356125929dcfabc6a8f5f95f3f03cef5da9f8d5bb27f2e060808944356d82d7749003a3b9320b65eb8f432d5696722176ec21ed89cccb4eba8825bcea6ebffdbcd94a9f51d7591e5dda6c2c0912192a845bb41c8c4031a4d31d39f09efffd9ae776ebec9d082dacd1f599a78b516e3f39ccf1c860a1007f6ba3c8b4a04e726d1b335bf2d7afcf35b17f2da26b26c3f29cf58ca746a1e6ac426cba04fe8ba7ab5319b6a921bfabb1bcc878e9b738d243148dbdbcd882349d25d8c44fdcd13997eb54e9dd4c621bea6916033d076c026c0f8124f8dd7f4bf642f283556ce84b49e3daf1028d5c2e49c7fb02a0f4c1faefafb032f7ca51dc7cf13c25c1273b98456fd4dd829356d904da05161826da3da61bd3f534152e57097a415b73fabaf171e4de59a7c0ced148262467e9a3c454bf2551a502dcf0791db4043909559add366aad2666edbeeda4fa0671461a563ebed3e072b97b04119ec5514c822fc68e720460f2ea182020e8f9f1141275cef8eaa312598b5f9ae7a27450b8d669ea13f3473c640d4a87bd25a666f75239ad508f37c0e1ff5730d11fdb0e13d284675941777a0ed68d68273c6edc0a4db9274cf75926621f4e1d9f0b1d9730312ea9ae47bc4adf0f000fbce3719268068ad447dad034d8aa60b03f98b8b08c572602a66bebbc24b264b8d0687a98347f7010ba2b3b5ae5a72ab412cf80e9dc6f0b4c280fee1e7cafeb1877f5cdbb01436486fce534484ba27d445acd00c41e964b7b7b1a196ed4076f78ba29b1183e59f11f4a6bcc36f65382e2e4ab60d1976a95b434e98694e441dc6817e4dfe1304b53f0c2180f9f1d18c77fc36f95f953d1622f135f5cdd94d9ef914c43ae860e37202813ef33bb855cc6481dc94049aab83bcc3109830bb2403cb307fc0fd88f513ed1915664bc84701988f0e8df26c249618eb06dea6f3b7d74f23f6f10d945c1778fab552bcecde57912d5c56d88cb92f834cf9b9efcf9746ee2135fdb238a19cc06d95492f2d3795fd2bb856b29d340af5c42eb8eb87fd48f70b0bd2bac19dc7d3cda886ad71bf75901033bb39d99d49af9ac75d96d9896e5e073b80cbfc73b6288533b4703526486a47aa36fd349fed65101c6dafc5a3f102f2b171c5d98d81d1df2c96de34d56477f96dee84683587ba9f200e504ae360381ac1ba0db3993709a991ea8e320bc0886e8dcc388e4f5a7038c73f7540f1afbb27c2ac117a8e08a5927b31074bd8a01de7b306e35c783a25f1cd1cf4d3b352c6a83f985e3123e88c4a55f9b6f281af8262379d4c788ab7c0e9f8bf7c1850f292e42645a4b499d0fd44d81306b104b378565cc8a4b2bb21f13d41e05aab9e419c9d49072539d22842321252c724c4dcc91a5dc744037f333cfac50fe3ff165a413dbddab55a404dc621df015d402957595bd1aa41236597bbc3e64b02f6dfd3bd772257e5a908f71d1c6c00925c276e0c4c3616f9b6dbbec2c907242a681392e0b1120bc6885719527a1e430385d3762c5e78828953b8296a58db95a8ed5aeb40bc2954e4c4fd875b93c77151ea88480a426c884f7aad148b1256aa234459bfbd311ab78d0f20161b2ca4b495938dd732c42aad068d092c7de74bca167d2f19207761de15ad6ae1dd8745f5b3eb167e1174ef82ed8fa0635d55e29a3b6b9df2017351d946f924f4fa499a681e700d2f374e238f5f8bda69c544ecaca6d805ab4b5bdcbba862636d8d15a596dfbe900820c60946610d0fd714789c52a3e58af515c3f96fc0003b39bf05e64f4534f5f1f8cf1c66953427ff529bdf10debab540518ed9bd0d33d21a2e43da110374f7f914deec4a56904112d661463131e89159f6865c315e0d59241210d6b47ae8bb3910e34c2fd3155863b936dbb054ea9f3b435465cac52c9c49855987ebdd69ac1a7fcc5121b4602b1906e0fcd323f2c436299286021c1a6d9c6dfc8ccb8e48aec0c2b92c6349248d2fb59fb1a75a6cc057c881692f4ac8e56e02c6b8f290c9975b3a3e08af459d1593010bf938a88ffbe4e80c3761f73ed0783345355200e077859fbea032aa71838a12aa1d9ecf895bdb1cf828487a609c920d1e006998b0c25eeef87fd491a7624d6e1ed3ee4a0a4b098a2c2c1de03a2d9e065149431f4e9495ea062691087e4cc427732e0e33fabf1219d54647860a6668887597330263f0862233e0b13c9f494166a0066d57814ae40c08b935db94fdcb6747dac8afbb6b606e0cbc5c95927f51b379b9880d95913e96f98d0e7d2a64f9df80677366f616ed2d86903d262c4bd9ddeb9c475a0e3b73e302721844d1463bd9ec31c619ac0b060c3c55042028472ecb22c78d167220dd1434baea2cbab83e9130899f7f0b4d2719e44bacd1de2dc949fc00a026fa07f1dd88aadc86c19e3fa89afc0f8565ed01ac73c8f85f793cba1cf0f84589e211030b2103140307147a8d759b9e6746336a3c1546e7a9b1f267d978936f363b8ec5bee17e874502b24b30469ab19bcbfcfba79bd2d261e9e1ee16360b3868af33060518168666390aebf62541bd88ec11eaa70c4b3791ddece29decd5278e6ce0de65ff323d49bd2c4799b01a92c6263e5cb7d3487cb9f99b2d5ddb0d86150986c80a9204d96e4bcb26a955a7341af3b82f32d8711d54fcc1d67fdb3f6f847461027e5b6bccc46e87b8ca6165f51d60fd719e188753939e9080b5bb797b4934cbc163daa07e89949e000c873278f517ca75e27ea89d62d23a5aa056299066660ca7249c78f1efd9c1e4617187a7b8b243af9ee3c4c38c9ea7a558f561968b3f7ceaf8ee95498dc02946943380d27ec4a8492e9f44c6a37148a7e283d42762aaf084983abf85c78ca80f1c692d9856980b0edd8e63e782937769ed8d9ee0981e973989563f05ca53a85302ab25404db2f915a2c680717d6b9c327e09d5d9d9e88bfcaf08d5fcab528a3c826becb8d3f20ba34f011c49fc4a5e522150e02f07a7d7eb1170ce44d97ced6043879e3003961d3999ae6f1b198257580941c1e4f50ff0a47c96dfd4a69dc84c085a994d8b251cf288ef9cacd756c6aad8c41e062bfeb9e66139ec64753d4f40e2c125c2d9c8cc060af217101c71e77eeb868dfc73529e0f2f7223370d4842f5e30538d6a2d383d0257e03f90dada3054fc087a2380ffff7de61f26cefbc2cd1bcdb082d85535476e361504b8d50b7214b2ca47d16ae681cc43683e6003d458f46cafe423be6dd83a8b61f2601354c11467221b5f56a12b03fe6752dc59eaf4a87b5a68be0a1cfe55caac5c88abedab89b55a5b5bb822be05fca4e4373deb79f3b6f934e60b11bc25572f3d3b257bff3d28979e60e524cc74a4e75161f5673bf29250582a11fcc294ed9fbf2c2757f8ec2c1cbc7b554e0b941e810e98216fd07e24a014ed31a1e3c2ac29e6930d81a0127f4b18458499dbbf115b4f3f2517b86daf7983643cedfb764276e65100e861dd8d2178089719f55c2bd971b4e39b1ddbdb645b9593c2bca1770d0e3745ac0042ca0a05810c8b6c00b322a1e63cd386477b2b92cd30e2aaa0975a0027e48dd433f943940448b5fc577b413b18e347faa7a79d8555c29e7968cd2c05cd9e5f1a7d6b039c6c3ccfb54143361b2bba1ab4771a54a3ce80c6b77872dbbda628972808c9e43e3af22921b3a6ba4527eb52ffe3df8cd7068b33e580af18bc1924359a7e5355eec6105a9749ef0a526ff188db7567781b9ba254deaec9f9c6f7b8f7058ce1d654dcdb8eef8eadf1e96c40f720ef1e485f581dfa95282a7539fba16b375227cf4b86a84952b4c865d62d4a693d6aa52d3e143351c4263b47146075e3813651e50820d74daad95d08755f47caea22447a9d96f2a32ae4bea9f4f69b2b7b5971751fc63a1bb0a05ef12593ed84d6385e4e6a283527815bb6db2954a77c97397045cb8b499e3fafabe6274dccf91c9c7a0719cc9d2edc371d8b7bc958cc6e44eb01843a5aad327402f5db9e58cb338557ae9ddde93a74af47be32fc8a6c46e93834fb80f13ddcaa0a465838a8a2013d2b582d87299e7ea32d61ff1a3b2718849ee949c6293b3e83bb1cd5c4a0f44d72d41fa9978a233602e17939c9addc4c265972e29de68d10db522bfb8887db095ccb1511bb2fce4831598f3797a7f035555bd86f34efb406d20480f734c72caf3dd21f4828c779e2e2676f68ceaa184f062780f1088ba9a1b3477e6559e52abf9b7038cd717202326d0af84d98a45ee21829766898920d02a613f895cb06b2bf2678ef2039fde9e98eacc050e56ba398a48a0895a96aaee9c5866c1472e7839e6f2c2ef0304649d564a2ac12fc82045d4fa739c30db8dfea68d16225414c87035f28e1663227d49af2c6ab09d87c0b4c0be31efaaa5c9b80a4cb63ad5724f5d78194e24b36fd8f9bfda03d9149bb7b7f297f45826d086cdf63d47280dfefef5791c19b61821cc5a94fbb022a7481a9238470af550899b0f6cdb9c3ffcb291c402c2126606b811f182025810ef89b4f4a4acfd854ea8969e33e0ecc8b442ac4b021fbe560ccf9d4fb4fecaea02e04b10f0018c8f3072c7b8c6c5ea1b1cbb0b3ea18830d42d24989c4ccf36ca33786a7928975b165c6cda9115e47cfa1ae49c7dccbf9053c6327405a22bddca12c80901155f60256d7ee2fd881c1a68d53f03022b8c15f5f227c0b54182506089ad34a05b695e97d760d87101f6406482608165a14245859c78cdc544c17952be7ae2f31a47b88412c4d841f1b4106fdc1cbc01c4adbf8da25a7b2479afe0ae3f7f485c11e648f36099185254de839c34e5f5dbd2dc2242de10be110664175b203c90af1f535bb9b38621a523f3ae9ff43997d1370fddb23549547cabb69d17c870e57859771ad8453b6f3ff3aaa52d72fbc61163b88bba70868eef390ffb08700cff5de4de9f2ee7e64bf735b24ec4986dabe376ea8b23c5f1b168252d070956908d447e4960b37ec25032cdb9299f862ba5239b63038b626dae1a62db5f1fe523c971f14615d7b4faed4cbf33c6e6d8d2ea09da9ffe4792d414aa2c222d61d6e3ecff8a32a62edb01c3aad4d03bdf62caeb05d57f48659d746ebebb6fd9fcbe7bb9ef18e28173860d5bef7420019730687484ef3a16e17815f6d0838e20abf1b0f7c0f8c1449955b64cfe4e5b206c82619cf25f965f0bdbc0007e4d638ff98b14d58f5f59dceae52d088a8546698b1f53d36399ed03cbaf66a66a3c46a433850e5bbec475835d575ee0eeaa9405b5a97cfbd83b7f29456e541f20af2a8e9ec92da42dffefd5eb08c5c27bdadb0155e0e7c7a7d28ffa76dfd521d8812ad12fecc53b211842dd4aef2a6a2b13a970c9f889e49e44599848410c725eba7b178c34d38a6c1fbbdff13978b4ec93a99d4a340a16112e753c872fc3cfc150f90aa98abe50211b66c67af840708832ea82bf4d2ff9972b9bd5ec54adc780a3bde737a3535878ecbce8064a8e66348ad043225fa7d183347f084e5a8cb226e545dfebd38eaab0654c6ea75b43952b1d6a7ca2d1200c89869e9e2480299e4eb34465052008cc910425886d9b9c0c5b51687d13e486e1b72df067341b9a394ad82ca195dbc7c7bc01f12f352399c60466a90b4048dd386f956511dcc93e98e0e836913a121c46831310f8d42cdf3a57db90ddf11253359f80d20f9dbea1697e8d646c5da9acbfdddaa0b227bdaac494cefaa7902762cad2d9344679b48e247c6c00eb0beb2bbbb256856b4ba6fcc2ca85ea4fde0e0dea502fe11c8cb8c8fc164fc0f10fabbc2a6994fc03671990b20535bbbe852cab47461a35704d60cd86530a62bd01ead9f6e7d358a4d35ece71d3ed97bf2b86e519bfe0dd86a269d41a92319c5cda3ae137c3de0feeb35d719753ad16570fb75c830940b9ec5db58d0f5ae8b04a3c4fac262da70606f948ecdf612855f0d9a0cec8a0afedba2297670968de7cbcd31b54c3542b04bfb70835948470dd5368c36dd347e6b11fdf45ba1c5dac1bc8f98337dda5cad66307be55dbf0a93afeca81e0191ba81a62ff34c9a2a132593b5474ada33012c009adaea9d42b5f9c1eaefe7d931af44cf519a93110749df9fad5543f7f741d27bb24803876a77bd79c3e5634cd9b920257c2b338f6dd5c6f5c478661708c182d0e25c1f3d45d2d8f74cb5d5793fa5d62c74a9688384229397ad86542c38582c4925a42a668f3de635b7f65f098193da0cc0c1ffb11e55737d56b30ecaed8f953fc3d0827ff48fd9bf9e39113cd7bd442827ce50606aa87ff28ff5e4cd04e4e31f60f0fc4fdd264f2e57466b19159bc47502810142f315a0dc0940b1371253eabae1400a3fa5c8cceb15c624246c6b8c041dd32c84145f18e03d39eafd82bd05f38c0dc2a5629a548639b757715cd34412e20d2c702487e265fd5b057aca6b70935d2b256ddf3089c88bc59b34de1f0f4fb3f9dce4baa8404af64362d44b4d72ff03684c0f0012154cdb04b2dcd05e8f946d17821e4c1819c93ac11a65eb6770d0e395454c147ae8424bed14187c399289ef2063a5439291251c7f3eaf8f9b4087fc6f351794f2fb52c2783b2a50b6492068a586f3bdcf4bb92a30e00290b8c5f0d2fb64fdb23c9dba14ad7513d36074372d88c23a91da85363438b60cb57ae1f4e5ff8d87423507c834913282fd87df8609cf23a629abac94a7e924c9b8e73dba540de5dfdec4779810103b1768c6cd4b635caecd60cc82fde15284719274ad2601df353d1df22a05fbc65be7ee12c61b3c36f114b25d1b6c97fffded043844d7610225665e9d731e3162bac5aa66b5dd0c6ef79ec2d20455f0b2ad84391fdb1b6a5400df633b4138fe1ed7daade8a3ac27d49dbdc5fc232cae10ffcef820346dd5e6d186d87f39aa26634264d0a23ce092cdb409fa93d2c276cd060e3bdd7c1fe25c5f22959da8ab770bcb9a681cd555c9e734f5d32469a4c568810f6304153a1624f7e44d6cafe6f3245fb0d3b1c019ef2e9eb5fe11a5fe9b747ef07b033501a5a66efb5a3903793bf13361d4f3700b5679a51914e0a065f7345753a02837da2bc18b3beb0244ccc0f6a287898c3d52a146aa0011bca280b55a5904ca1923cc56dc4970da41042104cc2094751f19e7d27ca7c8a32fbf650ec5892578d617f43e10a54911cf97089bc4e6093f67f06337eb3e47ab4591294cc76416015a5e8f75955d97d687eb9ec11793a6c6e980c267db1aad5be94ccf499b6ff110d160c00a64604268d02c9f55351908683038a7608261615eaf443d30eccded36b0873a03d092810ab114e59a976983b7547578a9957accdb78fec32e60079883f9206cb92a17dc96cc195449903c394ef40169901fb4f892b9853007452ecc34f9bea732371befde36b3e923563ab5d97b8755e2ee49987510ee150971f70f96f92b775dd75434abc84bbf30bc6a8670ecfb22a1ce833782f62cb7716e1baefdfeec15e562e255d0a2d8f62487ef946ddd0faabfd53b4097771d178f2f5100d9bd06c36330b86d18d10e1ee94bdfd1388ddcc864ab0a80dd8f5d7ce61eac2de9656fd42777e696177e2511c97c599aba647350bf54ef2a14d75d5f0c5c1b77d3b4a53d6d0f23d0f93e78dbbb7c7a2ae22bfea681514a92c6abf4cdd43f36d9b908e1d0572e5c6cf78aed55b3e4fd25bf63ad03d4035c823468134e92526d26f53e0967461db397a996f00c7f5068ae6aa03ebcf44dc8ba99a70d3c4d3b940f57dcd8fb1055891daa9ab28e668e49604ab1b355706e6ab5987c0cc3c4df0a786d0500b1a9f2af944d877ad36951aee1f483863ec6f37dafa6a4127f5a4d15c1dfebf671001eb6fa22f4d1e449029cccf49f3d7348e5b1d9c934a186bd6c26f2670a62c7b1f3cdd35f66ab919e42ffb923923510bb3c4bfc402ebea80df8b3360d84a8c4c06bd7ef1ec3f2c36edfa4e09d19ed17aa1f9cde6b1abb57b3a10db9ee359b074685b85d0cf438e1c889a93a81aeab26aae09f5150235d47ea5d48b9506f49070629d8de675709ee674518b338e62ba4a94cf8bbe449dcac893515d5daf77dbeefdca315e6c26dfc09b3db1f82465f63e2873d8c350648c68e6a8f2efee6c93f13afd6c95c4628072cbefbd81f01778c712da8def02a93b2fbad8f3e1e9dba8b1ca5cb892500310a3315e9294df16ecf2661070e7264e1e8a589f80032b2eea87879467cde6192e36a116bbae98c7351f8d2283927c271fda8013f69bcbde64ac49d968d61fe63ed5fb691f01ebf3845198a2b45e89063e95b0ade34987687c29334cc80f4986cd3da82bb58cd8f94a174a23674ccbf386534babe706858d1f36a4149690b990894301f76a3f356b20c5c7960ce6511cf962043958b15ac279213279167faf75c61ece6f65edbb33fb3f0c368bf31b022c74b14bd6e5db00fcb972fe93f8075cd5217ed47e0408d7647831613c6192f020c18f5c295f7d4adadf54842aca41d8a29cf2e14c209554ab2ff4be9ab04867c65dfce748ac6472604f967cafd7f307885ea61c2de6107e168b256461904d4aee03acd8a6a7f9f120c28093d7641131afae4ae46863fc4bb4660d55890e11ab5265a57cd263b18ea4383b057dc01ac0999dcceb1428ce6f87e6e879eb85fe0472cf394da671dadf7a703fc8a3d1ab4d96d86988de24fbc86c3b35a180029680efbaaf46bbb3dbe7c2eddf2692fa78b476318987374924c7ceffa1924aa4415ab038dab62ea4da60aadb2c7f03348974fc98bad359f2d97f3a17517a9cf4ffbb3a392a00179378bba307013010755c7b4ae6c6264efa9e7890bdaaea8fe967ff0bda4be915c57bf16d1f4a94d007db19909aef4472d076e1b0838d846180663e49eb67381fd06846390098da70d3fffd951cb75aa6f7b3dafb1058df4408aac7286dcdde15bfde92672577891cb750f81c15a4d9afa9a40c4b26d0418d673b50826cf4fc1566c10e79213f23caf775b77e3fdee8b9fe2b5441bcaf63bb8adc75b62e7a21719a06f5b799f68f844920ae9682c92d5268e622509aeb6c4b21d5954609aed4a1a675be2841c9b9a6796d62cd31b61cb277a87fa37bbd11ec7a638ccdc406206add1494b6d9177253dbc40336fab04b3c791d9c185a0dc50efce5a2e0ff6cd835072cc1622976423651d3f0096ff1fe35b9c79d59c938cc2c153da6b2205b1cd1c739fdbd4e6f6943bf581d5438b4dfdaece25b85ca9d4cf93778952efc456fffacffe433e489a2d3b5101ff06ea98c70d7255cb8720bf5645bb309462856ee84670624d9059c48d0f8d338e2c80afd41b88a4ed96ad68986749ee9b816e331d15acfc2c0c0997e0c6d6b375394504fd8006edbb673b0952f051259e2cea660c033bf169f2e776a028f4936c349f507a93faee8e5b09449154dc5d103950c3548e06012dc636d2e1d997d6cc6483ce2c8960934dba9e1105baf8e054ca7b8f0118069b7912037bb0e9691f90c9e582b361bc3f2c9bc32be90a0221676569c86e7315430cb69e9eaf51f603e295dfc46c9489c02219adf8906216fe1be8b4a0cd77502f9dc7951aec2061bf2aed127fcc4221838bd9961b96352e563296c12e017c81c40bbbdb091aef8837ea0d6d19fc98a0e34a07225bdaa6846889a58db7149d1852185e35ecf7a1fd6a6076bbd54640cd6c02e46a08e096b3be00f68fc3b192d4faeda0e1e89d62de6111797bbd2597eecad84c1d741c9b6d2b370cbd4473632cecd805d43b13e98e3fa2d6d379dc0256a4008cc7fcd6ed568f7a4cd051ec75a487b2949c07c394880266ae4d177fad92f7955cc9f90004fd534661c58adfb3b557f5959cc150505e1d998c7f2fb3e4f4c4640977ff662b1462010c2caa5954fe112574e73446e1491f1dfc37c2b86cf7ee57db3ffc4ed76269b4132a2c38aafe4565a839389ef7850c6c9e8c1b2656dcd339b2946075fd4570855f307cbed9678da381b1d6518d33920ad660598b07f86e9de0de5ce693155e764cacf209d902c05dac1ce5ea6e235d735cc1dae1660d9e8ada8c03530e49cbc24c7a73459c30a1a3e3bbdaa9ed6bd8bf406c7f1cdbea36161031a27eef3933bdfee17a5273e881d2722351261f3f778189e4fd4b98a6f56d16ae6847137e667ea6d8ae46be123cdc9078e95e8aa70869322ee60e467a665522d7e529bd6e5fdbfe67880a6b56a19a3a4cf9e64bd1def078fa3ea5b2de6289d6f29c4e3c5a35219295702c251d87571e0c560a6cee461040ee47390f6daa33b7fd1cb7bf6725d79b40cb855787acea5a4490ddd3716b84a4b432ad29c8bb4ee3548662f8ec6bc3d77e6e646852432c98e9ce73d24732ca7f55ab0bf3d8331055a6a233f6ce87756f8311a59a87b00b4c842ceb373764a633e4e13d3733072b182fad185986511e4cc3ec30cbeeeeb906ca4928079dfad74250c050c7767d74b3964818c74063105de4d7bbabb8cf2f1ed603f00e24cafa0a093b9d792079a5c64f1ef6fdef860bd20f4efbae3eae3bc1e477d0dd960f29887d301ef64bd6ec3ee55f859736b98478da338a045699d7be62b162276131876c37b81a117c967f7003921dd99d9d3f36aa5d21c33116a9528c6c79b8d78298bd703880298fddc0ee78f2f4010bbe70e04cb427b9dffd1ce088bf9e79c73bbe83f71eabeb418ded81f8b76a3ea54a061d688fe5cc80b7b03ae7d7b02a49185c71cdd3e77ebfe2e082e150f40eeacad5fefd9e08b24675af8fa25b81f7819a2ce7f82d6bd6a68448cfd1ae1222a62d369e07e408d381d9cd62feb32569e48b2b25c7f444505e06334225bba0f22cc4ac17802a8d9df52eab3bf67d0558910b71b653a52b683bb8814436ec09a7375aae44feef72eaaf7df66556f4737a96b1413ffa2cc030e9920ccf61f60f7f828873f797d5b81c7b4a92c944d0411c64e108f9eb10d8bad36c319e5a1683dec2b237a7325986d9f9f5d935313e5239e7cb32152774821295b900feaccc1ecbb4c4a185e8c2bb6530b68f998f3ede8accb4cd96d87e1abec1cda0eba38c783315c302fefc397919425269f0931d547e8e75c2d21da9fb98a6c5168923118135c93235ab20a679f561dee34f611a98277d62cbd6420e4a984d1c22c69d074fb48e5eec4f96febd9dd45e48e34acb82d0682fd0c812663c50d7f17d07792549b4c11f80df614e646f47a66fd7a625855a661c95d18423902cf059432cf3347d09d472d4386bf20322674939507e7e94fe7e7315b65b4c579231742549c6207e9797e5254a03837c7a55ab3579a3c6d8097091959b1d9a688e94874da7e8145d0c159111702703bfbefbef46fc44e3c690a0e8d0ec0ad68496fccc45542d031dd6795d3ee8d93eb710be993dd11451c47d93d6785cdb59a86d84d37057a2ebdfc14587003b8686145ceaf1e039d2204e1f1b63877cb192de4140353db5d43416931530d0a28e8a932c049b41afb5300c0a6367dd1b25b64bf29c310c010c4e00c5e8f67eff5b83bc494b764af985a96677041a55889540b68fa83b489363b7494f04083333bd1730e26e35d52b4a81d15c292cd388c03c1a7068829b993df5dda98c15f3f7108ebb0b87f32f712df00c283ae59e80dadf0c4c0998eeee8390cb272ca47dd6ee51d92d2c1dc03c4b2bf8ca4a97ca883ccc1ee28654355c8c576e9c23795a837e85e42fcf438fae984e97a1fa1968e4baee2a6704a7d55ee5a7cb2218523ea5ba6f56a850304a0b2dcfe0616a92949659e73fc371bf61676876a28300d6e8316243b32222b43a1d19727eef968612ee5c523565379ae038a926f0a76b416411c12c22e48fecf6db8c570c1e37266fe03f5f61322a14c9bb8d128cb19a946efbf3317a3854b9b6baf1b28197653a54d5fe552f12c949f55548096af49e728609e573c8e7151a40d09e58d3efdc16b4772350cb78a8cdf81c716d347eaf90147cba786d3aeb8562179a0645f652e16d46328b4e842a50cc6b54fcc4f0ecebea29c36183a0e0cb40d254992ed4796dc3236f679c9c60745caa83fca990b47f8d5b1948280da05487d4f083050aee664566793973caabbfdbb6303ac1ea694b9ca40c0baca289cbbd1155df798d2ba035be22007206c825a2b730fada1fad8c5e795980c34a6fa2af31ddae0a73f008e302f630cf65cc7f4cec9aa57d3ae41fda3419e96c98a09f41f881073c4bd5ae1469781c2ed90983cd7c7492e3fd3886abe54a510be22c0517ddc39dae4bebf41a3775ee7139d76ccf12c9243dde92431a187b7b4cc15bd05fb2a2837953b8b62ccfe2d097bb4c7aa52254095f3aacf8b1739f5f32ab8250fad9ed9e17cf5808955b508ad979678ea81b7d5966794b43214dc383331dd9f4a39d10370edb60bf07a2bb4ae5c8b7f1f41f58991da6278dadbcdbd704b054e7df222860c4eb0fbdaaa519c2ef434e50e717650b9d129d7facee74fb02ddb2302374bfbd8d09f88941967d67032a085ae5e35bee36a3fec7addd3e601a09d60fbe43ffdaba2aa73d1812553a74a73e59f3280404db733c7c1cb89991abe2217d1352641ac39730f320aa813c287eca1a9b402746f7c628b4517f36e835fe15faa4a945838d3a6cc97526484699d5ea6df0d29648534a22e3896bcd1b703d64b205b5da60b380aecdb0083cc80755fa80cc8ab80a38d09ba080d53191a5843b602afe83521f29a28ac136d8ae67ba32328928bd27b1ae2cc9834abdc78264e5781f1d0562f2bd38c7e0692f6001bf578f0eff0b8d572bb51089dad10c3e06ce479677cdbf829fe11dab6045d40f7d48be9db444609f1ec9999d72d252d9874ddc8101dc4dcf68b6e9864c6ef352102ab6596fadac02dc2ebf7859b3377cca53fd3fff9a7ef81566c59c3cc15362cebbc72486fe3a138f4635729d53627f9c990b6e6e17717831ec2865c60935e434cb15f97fde7e79a091b69b42732ca1c50395aaa85150ab96a84b5518f7804f3fda1ff72927027705ed7c6cbe6b3c4d1e140ac67beba3cc5a612250ec3dae6f5757b14b8cf1905fcec57d59b3911c4050e8eaeefc5f4e706913e84f045b2a036eac060fd2dff873490062591cf23967a027e6db32e12102616ad52db63f8b3ed8df48f635849ffee1b62b2e9bb21d1feee06daf38b78409db5dc3827ad69e39e5a59893f20bc13c9a08f76ae89d6d73e76ae9d6fe487e07f69dc22e79e30902d556b6829ca2aa56eeb86a2df3f482cba421d09869e5d1711dd0f48be441aad0935420ccc2b2adc10f79efaeddb24492876d061a21c8c570fb446a1e8193974091063509b7674b09ede7993e616955c6e9487d3abb014e77c55b145fc92d6e4e3f93c36f4f563c137c93c2e0823db56f22900c500ad5aee7617b94e233ecdb69b9156287df6f5163f3f7fa2b5e0d4654da63eeb810795150bb270581847fb1ee2667c4074ee977a3bbb8ccf68550428bae0f808c0a3db55f8c8bb4b0c7adf6452e9295a8ddfae5fe8727682e5ea019cab5d9b6409e0014834c182abdc4fa5e4ba5bb75f6ba30da9154f6f3832165f32d94722204f8a4516c5250652923e6f1fb141d604fe53298d07cae262cbf3499e786fd54c21ecbe9dc624f153bcbfe338c1853c77d77296b07e193aaec70bd480efa48995319f7e014aa1d6936bd0748f64d7892196b132ca62802bdec6531b12332227322d0a59e9665c1fb717b4271f60d5b129423fe64dcdf0c227e66e6827c0edf7817d44773f302c39e5c91f241bef203976d60a0ad25caa5f4c3d9e7601271d3796f69b4af260cb19964055603661b58ea9d7f4f033bb4af049099745bae911b7dc1fc3cccdd3ca125139a01ae67abcdf69aa2c2626a49b3854c6ad02e32fad71ef4ed265425b9de731daf03d1125c424b9cdb0d8b593b9a6416fb3d9f619f104295d2d65a655b61e5a40c76a01ee9bcf5c79d9c278d0f06552497bd872e1e9daca4f8affa842d22c5399abe6f1bdd332c84504b48cb10db7b218ad2a5ab222bb698d87c9a3d98fa3ab8c18f4bce3b891c03a27d4fd5587d8d921ab67cebafe5949ab5e562066c4bf1bdc6d470f457c381236aa4f7e3ce9fb08a9f8aa5c5935e3238ee0fa0475d1a4ff23fb5cfc22ac0e34da09d69dd7059425c5b70107af01864c23e99802bcb284d02efe4a7f288d9d706d986dc75832ab3a892e6ba89721862465e9e779fb1e5a654b20681e9cc6a5f669f4af808b910b4906fc5a19744410c5b2f90a9f49dc9ec0e84da3a3a7ac7c6a2a2542061dc5e86ab49ac5133735e4d100f968d1dd1fe44b8884b0553d65aed991d348dd0999a5fd2789394ca176f467c7b647ce74ef1768f74908db6e50df976a33aa2be140ffaf8dd1cfe2ea81e532d41feb62ed45c63ac7e86c338b0cadc255100ef151e10e75d4885d11b693a80f741e03ba23fd2960097093a79664c26e8aaff7ed34d52accd644490ee6467ff6bbdd00ea919d99f250c26e3c2e2f2c173148668f01591648db08acce1536b0402eb95ecf6b67767b49b7692be51319207dcda0d7f7f9028e2e9a6d02683fca141903c4780b85aebbf267756b71a4c6f901470f81a73eaeab369d0a17f20b09635cdc42d16ef3cb3d3aee9e590f43359d6bb8ee97203d4d6459b738a0a0d356cc93bb146c814628ccd23b4e5a25eac928cc4d76c0d1e2831e8f9585661d99358970c2a133f36796c40d41f817b62fbc7742f080ac855f6e660d1779fd9abc653aa8298e5b6d3209dbcdb8e7b268fdd99a1dfcd15c0e37ea8d8a7646c4403e1b4ff0f7a7c3f3d5b908d675c6fa9565998fa20cbb2784e91d3eae1f52bfca6e623014f3e13be6ebfcc2ca90f2d45cbdbf280dd0aed4352668cfecf25a6079df06c5984924fc41ae0384fb1078af78075e332adcde56c8a36358fcb9a84375a11c9ba5d577a58b3e3135b4f0daeee0d0c26e5acfae12e81e60037cf9f8457ad59a1be87c4f3696146eda2c696c3408f59f23c8cf7000349902213ecdffd6bf3bcd3588808f09dfcfa56eee1dc5d7d9790a62f052092eb9267401f22b1ae42d0f814c933146759b08d5ac1fec6401d8edb4a320209b0c33bd5b8a8d4b96ac1f5e34443dba4fa47601df8f84c25d647e4cc062466ddf6e0c351ff10c21633e61530d2a68e2884bf8b038e66c48815f481d8e6f44878d2671f9217c4b6159b34e58c68d3b8aa8f49d4c8499076f03885d13195dfe668a2afd5b38c13c70c29c8ea47e51de7ea90be4a525dbe128c94ba5ac7bb348014e6f025cd7a2b7de350558a8ef0e6231bab7dd89d8722b5a52971dee6656fdafc026824a5aa55986e46ba4c8ef88b85036e09e3747ec567af2aaaf212f20810963d321ee20de8bdcfb4bbb9c6ac2ed9951ea4d5d14ab6f75c3cc0435a0830af780a11e6d7c0b6a62510d28ada54ea5ef7b0959145b80b5cbae35bcd7057eae29f54403c6c45ef0e735496ba6b2298d6a9a8fa4786ddb7a6788153e780a6a73f4553d1bf06323e04682c34c4763bd6f3b8499b2c9656d59af515cb6e6acc4181c6ce839c6be4d4022d32d5d665b20c328a20781ba5732c864d5357d97a61140a51452dc845d22a3f335326736c425c7cc7e99d04ba947ec747a2b68b57d447336b60b914bf3b00d5380575b93c86cc8f91ea43f09624a506b3d8f3f27acd43ed7f99cdb0c5624dbb660e66796b924ae4486deb8611f87ffe2a51ae88a6150c21826ad93ebeeff9ba162a3c3d9c4231cd5f40acfece79c4c2dd11c19e8a8fa7529d794202ce44b27c971514596f130f5faa890dbea3ee2deb0be1fbc8ffc1a16014093ead915e1dbd636402f57c166bddb2f402107f1c493dc6d2c3f3355707634c78895b63d3c03fa853d92f56e26324a50758088fb192ae54c9979798f0aedc94a0f95569a40144e41b79522c1a80d9661d843445eef537ebfa6f29d152d3802a3d76608da90aad40d3e20d6f52d639efceadca526b9b1b2ae764bacde731f889e85fd98214a16c30be0dd2a88135a5e2a0e39800f2e90aaf63880435ad9d136cefdfba9128ad7b551538e2e7ed5440fbe4a807269102144b6fcb59bfff1212a261b967fbb4863fd6440cd64e5d59f94b3b794b9788c8a81ee79f3452a736f85107bf244fc84ed2eac9c8f1afc4f0fa072a650f7b3e001fadc99d23a600be1e01bfd8325ab8a2c59510e3e318fa0cf8c48f70a278e25c862329abd039fa954eef2f7b7bf49de35419c38eb20e3eb4292b880b17b64a18f6aef7015d1857633a472ff0854dd125849e11ef6e5a3ddf2346081933350b0cd99b8563360b9300eec650081797842a45af9809bce87b8272bd70170a38c7d86bd2a1b6be3f4984604f746c8d03bb1b3a18d4c9a90ff8287084edc11eee21a69d951bcbc2360fea5eb1b581877a130d5bc7fad789ed1bc23f62235fc67257edb161631c831370c3c41b2f05fe2d0a2011815696a27f3e12a74ee123f50bab2d856a9c62b70d6e8e6571dbbcf79597585236dfd3275e1eaecf46f986c53f179807981759e64d40307b674fdcc00f60a4ab4c5339cabed044fbbf315a0ed7127960d09abd1f3150cfb1b53c878c4adedb06763870f6330d22ad6fd927658457c1a55abf7cbc0e6254e8e2aee0a9e01a27dde7a97610357b6e61641533588e3d73d6d3c1d0dea4231fe1e0f84f4bbe342c143893d18ec70d79084958797358d5137881d8ccf6445f70bfc87e085e5602934279b154af23669dbb8154165ea7f2f45be7f2e2a490b6e022ae4c63249b395de9d945e66b9df28020d4991bb7977bade8cb320323ad8fe14fc5b2ca718da97dbc1e5442a17ab9703604f2609cc9e9ae196a7690d75d1c5f1d4545be27f9b0c039f1049e510d70fc19584bbf9187cd922dbe68d0ad9d7745bec36864f991436a69083af27974953a87287df8ac8e886c970fa85eb60ecabf8da9da6289de333ea92b0a62faf6a657d819e6749ddda12c4c4d26dcd000bce842112531986c244e70239ffde0d31f4beb3681815e216a489c69b54446b72409c756b2a75c01c3f968f33b40bb15b574502b6f6fb06ecf6ef2360d891b70bafd7e04b2297d3bc8cf20f1161f035cfdbdef27f86903c45eca7b941a63213c02a7eb4a1d953d7da773c6d7b983569eaa36048faf2fe45026d112778d5dadf72cfe4c659fc2d9fc5a61a77dd21b7bb666adf6f4846da17b3a037ee57d809e187e448b5594926f040a6cfcd81acc7981dd487b70bad1eb0362a9f2c23370e688c6fa1c4f44d317afb4e51d7546064fe144877db81b9f44015e2ba5aedec7a6be424ea4f6233d804ddfd457bc556494b52807e6da9e1b3219044958c65d0dee17bce35661a7a6806cf959f547873edf78f1051d0912fb356027ca0ecb0960b4f32836b29abce1f063b8012c5ca0789b9c7d8c0a169f175054b34194f5870037d15736ca76c93ce70046688ac0015925156528cd841cadb641b371fc18d97f28bc35e8190f4cd42e30d3e7ed86d68475e7b2248bee449099a98a0a536bcbf8b6026b1d73f9d43fc10f8f66f12923944ac11c671168e972ffcde09892ed16ce99927f777b4f522d044484946e19db2bb8be87080be36d3cf41b1ca7954bd231cf6790cc257810519cbb77455b3b518f1c64ba626b866761f461e1e46ce4b0560d1f90807f02becfe8528c6d4f61b29f9e8f71898ee3656a62bfdfb1f4b69545775b07ef76ae1eac44e109df767e05b8bef299d9917184a0290256430b374b4a45aa3731f9a3433921bb006c592614d83c7dee40d9481b2b1c823e9f5940d355699d66bb4ed8d2e6a50b7e67a98155142fdd180d1373c226512fde49e69459888af3c4cfb82aef6c17ba601bc30a494c58e55e0aec33e579ac0cdc988dd29579e60cf4b3c6a665b19ab23a4fc09c4e709b2cfbb2932359f3bf8785491b42c082f636655cae8965c94fffcf618a537052297eafc2ce99ed63608ce0c87503a91ef42787ec2232d2f3e7038a98a5721c4c5819c37e8a731c920e5cacbc771965cabbe107288b72701bf39326deba933f022852a7963ab1d51217bed04ad9986efb4ff00042f1e6a1fa9d032ff0e2f71f35c3bf72991dc5cf6e8964fd6e3dfd0be0199c903c2608ede959efd6c704598697ad4048da9192d7939957d8008144cdb6265b20cab9a21c979a73cb32cf972adda14bf569d9f9360df400b6425c56269cabaaef36d8a2dccda41cbdaeaa747d3954b96ecac0725c30f53e6ad76d6061d656587e8ec4457a88e11c9bd7b8d59df11323351eddb0d977e410dd29710dc8444aadc65c93f9f6a0a38c0e3ec6a4a2b7c68dbca22bc8c4d4941b83139766948275c83a8720f09c5b4dd81997d1ac465157d4cdd2916418004fb43352ddc4753548b8109501b447668cf36e7d265c3abeba6e8338e59f8948b18959a9589562dd2cbfb42ce41b19150ee0ca1186cae5af878f4b289ecb0a78b1c86c91bd90e0725658706d4fa8b03591ae5144dd35597121da8faf22ceab045af20368f0061bae49f120fb005a5a455b67a902828df115ba9478876e2e2099850150f6f7b62a880a469d4334cfe5004092b24ca781d5e118d7f4f87c7b0a596d0d60803775933a68b2bfc1a2e8c5480f63f00835b2c610cf88f3942a904289ed09faa02ae5b80cd69c6fe2fab5f3756504698ddc12cc2767daf66a05246b90a4b324b41891fdc204558a19a650c460d50e8acbeabb2744c5109c8a73766dc588e2bfa459735af1e29b00b7732af0d8e2755fc0f460014a0f6cf7995b345d050013ffaf7337cbd79dfa8c9b147a69536f31588b4c14669c9b27156049c0300e4bf302385dff1df8dbf23db0cda23e15846600199a50800dc140df446ee7f6d26d76ce50cb8de864849b3c077a9737f12441c75dfb7b544b8e608f432fbb46a44793e22d274600bc8c2cc951daec9368f44858ea720c179303a910346623b034ab5186d1ef374786060d1c6168f9b2674e0b3bd89fa04f4cd3e08cfd5c1ff774da865d92435cdff9c208ef7ddcd418b0929d086da0eb3f9cb2c958f156fb93729a8fd947d5e72cf99f9f84449639ef710f72cb8a6c3787cb11a25b4a24601a1a38afe0658de14c56cf15747a492146e5c07df51e8e93a0471395b7dfefe009f7261dfd76d7323ed6ba4692be715896a614c370d614ada795b9bac01f5d2bec3ab6d55fbefd888c8f5e09f7f9962afb448f4aca8e1f949f7f44a0987356793e4c7887029e29f7f0cc757ea8021a6b1ca9e7b27e502a42bdc293f6a572c6614c64634b0401d7c7bded5d2da2d51b277b5ced69bf228f8d47936ce45d11a428d711d953c0558f227252d00185ade92f10200f7fbf147e1f73cb561d8e0436adcb8b45e7b16fcaf9352ad5fde41776cb04c4149b321f0f92979346c02e8208103054db5aa08829b4a3e4b68d243983465ce44fe71f600fb092b820f1f11fc972cc440be7ddef3a338a6e29aa4eafac5944ba07da0dba19109d16615e0352f931c6dab5b2172e4e9a3101a85dbbbe3e60d966b3133957947ab18e6605704b5d7e3bbd07ce7e03949418889734156259585e17997b5847aafc902003b830fc71664631e3ce1e0680f949f42964e22088f156935c95c1e722faabcf626cdb24c70316728c7a032bc93c45526a101dce6ed01ee152ec1846e1d4cff2a5d9b462ed5575b733f6ef41bd8dff7a2a17f2dae5190f07bcdc97f1844bacb2cd9bfa38c42bf72c28046084eafe381806706ee6ab4667b4028ca598c9f860c8c5aa5c95f39137e4981db008ad7fc987d5943af2fcc1efa10e1ffa0f740412cf03525f99c5e925ed07ce10acee46bc8c8c302ee0662cc3dfbccf6ee898c268c97426a58acbeb55b3c92a8a3e353716dbb961c2c4dd677a366e6810aa81e2cb2dde302e5887443be3f18f04e4c4e58e6d725a2ca54c8cb2797bc3b4ef96a2d251ef2df5adebfcb252098b9f72215ecc31123e7c8ac577c8c1aefbcbc06d9a0154dc065a4477ddb2c20b3df513aed28e91431d68e1803fa3ea86b7ea8145fc7989827406e1a350dde5911260cef888dddc1f8fd6c74c9ee881e3fdce105ad29c50092811fb121ac9027d1e2a8c780790db37197f0ec9ef179d5924e7fcad1b5f63b6e1b7e09d60b7ad1b339b4318c346dea7a863bb20dde5e0712081e82053191c48e9036cccc9e22312a4859f9cd7073291bebc04274cb0a185dddd7e673e68947604e8db11dcd17289e784c1845ebf6a85b6ade3a6d6dc6e0273a90fbe72cfec49b273b2bb660ed688e875aee11fcf485d1c6bbcf53bb2c2fbfb4abcdf62424a207b5ef5a5b50f7a659bddaf721f56771a95dd0890c281d1645dda63ff73a34beb6926c325bd066ab01e90ec379fb7c9362391bcb583e23e622d556463da1a7468a42d8c6bbf55cfe033fa1bc04da8754225d0dd8be80bbbc30396771b72c74eb10b9c34493c22bdc33a527beb433bbfa9e2a8744851e3a0f3ea5991d842eb052b5fde1ff1a9c67230e89fba0c296ff8ff875b47c6fcd125fe1413d9a47578253bb1c9c20983ec2aef23e67f3b6769543b7a4bc04d8ad7c5ec09163d1e8bd19d6e07d76e12e8718a2aa850ea2458ffe74b1010df0ae459e8732f237b408be25457a9b719990c5a0346ae7e5de2f9144182b566dbb8d25040f216ef185e0064d359d442bc35d93c138533cd938a0e8e3a61e4ceab61ee494d268b0810dbcef33e8bf0cae60ed26196ad1551f3e674227bfea845cadb2d2de916256d1847d46ca18a0260383bc807b2edc0ef817148b9dee5abb8b85a98aa61b3a1dcc5d01fae30569e74c08b2366d8435e4781a77b19cb31525952c957d495513935d483089cdea8db6a2e8baf88ef450c1833202ebd2113e5aa0fb93306287b6968626b942e615c05816fc306d861bbdc8fe2b96491d99c6e95919180f7132acade686ac39a7ab11bb5ac4a3656e10a95df718ba5728f779d33c381a581c94e3dae76af31fda9b8362123c01e458e53fce151e0f3ac5825ae58e820a7f86f56d9c8f0c3221a709f2b9e304f4854bce9702ce61a4a93055228976d084b73c74a9bfd81cfaaf074c9213674942eb96cd12fd85bec0c6a5001d34b3a452cd46052cdd18fdb13a0f372aab77b57daa27cb6451730c02379c78321a8b6fa53f1d650818db94d0a010b2dcd41ccb1f0ed4899d971dcf7e970b902089191718a466d1597c95004d6317fb629a7c6c747e7e00b427f8ed713e5c4682a09c556255d3b71cf944ad62ddbacde46ba53343510d1da3169bde9b3d2ba74f69b71a692922c468a4a54324756675ad1026a56b30194f8871447c1c288f539ec4aed2a53f915d572196283cfa0d2cbcbd39b1eb6bb0e924a7e34208ddae36184210148fdc0637a833654f463c326ca43016b6bbcf33b441665612a4f91abdbedd96bd9c1db7600da80fa568c37c84c901be807665bff2df1f7aee94fa9a76b4f62d14bd6be5163d6cc0e779a2ac13f88ce13576023d711b995e011dd856391ebdc2b544495c54b84533410f9ae6836cda845e80058f38c43c88f4271f1fe0275047cae37ad678270b04e68e71baa0aae74678a7c9524ec07d3c63b63126ba126236e5ebfa23877f95b1e89cc82dfa5cb82d567b7fc32c4c4c31e628228b780d3c6ba55cec7e561888c527b3498156b9ca3fd70059f0e3ee07953eed4f84b07738161f1e1edd6daf671e6e6eb56768e6fcd53233af93f45c1b5cb4b145cde8f3961b0ae6282bc3b166cbb655d69234ed8bf3ece823aecf0093d44ec32fb5e04851f3002c6ad001f6b47ea15da6e6e563d1444d5fe4762f61206d710fc3bdd51d4e86d1227895622f96cd3b48723866759f9d524d312b221dd9c051ce84bed2bb8bcc3d0ff82aadd4f95eb3874f0cdb3ea8b8880b458265ebba67415f89821afc7d64b021355d88708fd88ea435017898567dc39c2dc4a6ffe2fac6a158505eaec7c590f73bcb662fe694a4d04e4c43df1cfce80ed19eea846a262761093413746cd61e0e5b984bfffdec3536fbe255bcb04b380007b1bae0e18faf5dfcfdf5f55b1f7809c366e23da543fadacdb8d92255a63bdd70ef11fa14f2ae1d3edb6213b368481592e79e385746b6ac17d4a64d6e692c6be9e11566f98038fb920938ac10c223d0d53c5dd7736311d06088e79537da145e51ca0b0e9587073325e340936c55efdc23da3444d58045aa789eeb0be6bd3bc098220a076217ff3af2159d754b6ce813109d8aa11661b807e2b9da87e53dd42ce3baa2f06bb378e8e11864a9557463554a145d9c0f4dfa654b26972cab5d82a3724e9267ec508e99f821b4834fca72a6b8c4f8306d43cc5b74c95665bcd129e9f5d2c7687b66f36444a5381dd1bc3ad492427b6232f8e4b10918ebca2e7fd404355a74448ad2a564523acb744a92782988b8ee8402b2c63934e5f2db8a366f56fc5c3f71b47724d32890b6c01546fb3660f1e3eaee22f635ee0fa6fe6b79542a5608abe0ead37b19e308349673b92d6ac83575243d0476892e9aa285e5f319c4bb9a8c4b40621cc3859554b97c71c692e2aa0d904912a337ec14189aa5a29ed632ab9e0b7da0a24dce93f9d0e4f023dc693d5a81da0d6dbbc85073931c245477aac65d3767b5fc4d6a6feebd3ee28fe46ae38cb23736e270ec266d814a3b760375e6f15b0a113c992b3a5c0ec9426d88bdefcf9041b6e570bdd0f1cafd7d479f23fba96a8c416dd848067870335e02b0f5701f57bbb937c6716e7aa5bc92b22129e2a8b24d8298fb04a2f6fe3815f2bc4082831a305c25cfae4c9b751978575379565dab6ab3f53f6867962cf27b0874394f7463338cd7bd8cb3fc57cff7b6a31c196e91034d3eb9cfc82f66fec1594e44326ccb0316eb7b885f05d4843128b3b9f70965e8a35a2dea7e05a976602ec6698d5f853301ac1cdc5f26a370f3a451a5734c6859ef849b7ecbe6dd0d6c75159369ae952dc55ea6fe462c621a17255987f18588b0fafbc2157a00500fd213e1219c0166907fd1aaa5aaf994fc037bdad47e0f816f100d5e608edfe71509995adf2c4e0849a9c62b99762687126eb08c51822c1226acae213494acb1bcab6143356db6fa21abe83ecb07f152a5d8f2123805f2d842e6c572f4b7016f2845abab962f1860875b2866ea9dbc15ea53328013105a24aa62b058006c9339132d00879e280ef7ebb8fab2622b0edd4b8a97954dada3603061edd980f0dce661d2090d04bf50c30836a532cb2494fe6e6f48fb9955f166e081ef529af10851c81cbfdc3a0947978ffaea4c2310106ef81afec23947fe7ad4987b9fac42c937d8a6c5cb388f04248784d23d1d2218a5e4ce28101c3eb88287582da20488341fd9a0208ae89a9195a460d4f4291b71015241e7e288e8128d162f0a362d4deee62999399f50a21f6d1b9a9f2bff1ed1ee781e077cb2d51411e968b37d1551d7b8d3dba9e598ab0768c50550f754e349417256b6a0aece4f5daf0a5234056079fbc0d4615b6bdbe58eda5dd1bc6005b5068ba49dbf02464f86887107aea3d0cc4ce22844058d4c2fa83d9c2db5c15d441f8afb643105e532f64569cac432fd6e4576d2e49c7399bd36ee21146e1d17663f383062ae91d9bd88ebf4e52c43dc354e93bda6450ae4461d21a5492249ae6f22c3d954e12caf3785a84980502c43253c121c4dc7b4049eb0470f011f6ab76e6df663406583dc843cc6d3b9900fcdef80e709611096811507fea0909ecd2c17d1bea1b64bc8446d39af45a4b26635fdab43b7843c3f1972c39f9879657c3cf29d0b314ad5ecb8ab8d2cbefdca7c4b0eb81b90b35bc3eb1c70ccc201f9a087c5cc4ac6602d89c073c81fe0baf9d9627ee65f20fedfd27123c12e1d04cbfaa17e13dd186cde625c93014c551537a1351572fa9d624f58b0c9663b6834520cdf25c862754f4174caf589a492b4551d029104e39ffb942c27f0d201e6d10810452653835beb75d645fe67cc32c145c7d953975904c6cfd7ffb64536c3001b09230ad4f57cbc8a7ececd3f16831a2066645a671d54abd94fcf052db1a4a0cb268e65b683342e3b9fa889abcb1e94871a9e8317537cd735369905f8426fdd5bb560a030ce0476e5a60cd1e35cbd74a84f6a1cd7594e5c7b7936f1efedd0df2ef7ef8fdbb36ec40e82a79b28aac30ca09296c1f3d3dc87fe3610c368fe4a57b87b77c58e5d9127c4cf108f92505bef51eb51436633e4363d52ab31bfdc7aacdfb7a311b1bb2645dc0f4a3a56eda5be97a7fdcdf7cc40f18a3be4fe8d1515498cac65ec0ded790f1e87872cc567b921f7266172cffabf94825769d133de403850d5624a302be21c18cd6ce788800c3f2855e4a968ccc1c6ff9e750cd54515161e54707258722cbf9fc4815dbe1fdd1a0262f19d54f54a3306bcf19ea7d1d3b3b9d46db6403ece455b9b33bb18fbaafce9c0d9bd8890a3c4b4bcb9e7c8426ce14784eaa391149fe837e503508cd4eaf3c32c540d7d9155d64117bee6342499d6c44fee9b9e5923c5e3f5624801382c06d64da1c421b1c126d2581dc5d0f50adc013ab2b9f29454b2da96ab55d34494878ed48416e9775b9f0c92b875c5459413aee9d3f137d8a1aa15b74786bb7872606e442228dedaa68cc737298bf02c51d4c69199672d1cdec836f6f8f3e133cd21bb0982dc6994440f704c44f7f7f6ee9863ee6f6862fda8ff55b3e1b5ae1661dc80e0551afff5096f33129055a5f0d78dee28d8db99e07f127a3ab9e4da59829db506d32cd6ba684031401898c22535c267d8e8b18d7d2e8a3071e6242e0711c507f64a3d5a5ef7c88131c2d3852d86314ba213e1d65b712474f55c9ca6b6f16eb63a42a01dc0904c1521860121ff6faf8e46b9c2e0d2a3325ae4b8f80a3f7fc89bdc2c4b32b524ee8c38352ce372a2e434239d999aaa4caa2ff2f492b412c000e34963ce60fca0baadb7cee22ea18e2693ad4d15ec1009ce4c9561f2f6283637bc87af3d926eb8b6b8dd6b319332c5b034b13c918c67ad58f20830da495fbb91e7d608c06fb24efcfca9fe3926a78dfea3bcf37646632fbc83355ebb19c20ae750744fd939b1f8b2eb58a3b9fd0a9e07332ea1a3115a73b98bba66718089e36b874935d4a59f31c4df4c4141509527377796a6157a173666ddc801ce3787b682b4a3aa45997f08b8b3e55832a64ca0713b44a8974f16ec74d508010a8434fc41add43f7c22d8e04a30247353f8534d0a46057e15c16910b8631acf70114a3a2f197fc39ff33cf088e7407b113bd7a391d59b7ce5cc50b80984ca1556c8065a7c203c0c986eeb13ab039c2c80d83c6cb5188bcea843e33d4255813785137fd6d8d782e90bcedc324583e2ed56e4d23cfae00f20240244c66f15bc67d76a95573fa7bda4a912821b9baedcda125aec726563877308db912698466227a92f7e54e19d808a3791eb25ecb93471eb3934999ea75016537f130c05cb14cf3caad123b5b0bab2ab9d980c147b389da6e47fe76c477bf4af5ec36c44096ba5ddbd439c5ebe6e2bbfa42fefe51d2f77e87a31ce205c86f62c65d0ddb1076e84ec2fb2911db532a64f8aeaebd533a413001d04b4393bd5112e20fc5433dbd1ef4b579530cc3bc2dc6c1c3dd0c238c81f43f79ff32dcc11254a38252984182b90f3cb413c4b5c414fad8676bdd351ca05750d7ac51cb05388a64c118585070bed3bf4e4da453a8b0639e84ac5ea92d1504d15e8fecb6d3669ee9546a08e2f2be294f4d3e4d509ef3178eb4ccb61feca3834912b0f4297f39850d5536657c128513b0831d63253d56711079e43fa1497caa1bc859b8157124e43c85f92a6651cd4e346739ccd83f5dc31e9297232ef89635ad9c277f563cfa360533ad1c55ecd8d96765cbfd11572f6ef02c2c73b87f2c84c7ae4e4598b2f7ef25f74c430cefae7f1759bc8248ede9b265537fccdf7550de1880060cfb2a3354b5023e9f0086c87ccf4a8ba1f815a3961a3f6edda78481d36991736d77f14c787d050033b6147768011da63ecd973d0c97a1208dcd507914e645cf2ecc61df17c8915447bddbc55cef3333b6b58eb82b2cd6fa99d6f0e9535225bc81e7fd5424bfaf5e56ceb72018ee1c3abf6a8f199a1af2077e75a2b0086090b75832a7835c542065af54893b4454955b29cdf9dbd32e13f660cd23c815558f5fe4e3a4b4c87272c5339b6695bc52016339b7c58c0ce35720789fb617d72224f52dcda76914ad92c1d1ac512c2927c38c90da0d02ebb12855401bf89dc07219f697a83a79a7dc27476816e73eee85ee3e94930983aaa17fcfff0654fe6fefe2d51a75704c1d79913d513d9af782f0c4eb0dcd1ff02ca6d3ed07432a3e43117c11bfd152d67a836c7a5a9a674a2d7bcad642e5acfb07ce971176863de38edfe99030d92d3ec04948a1759523e3a1cea0ebfa50fdbd1135358d11db4caeaab79048e6ca4e0d324a3c657f9c29ca05beb35e60d9725147dda0daf56a3643ddc576b12beb6da9df7d885020689bbb4c3950a1d3ce6e0a19cff312ec42ece417aab9c85fbc87e0914f7494957883efb473f9daf47a47fa7b87724be9910d23210a19fb361036ca2b5125d59869fe7e36a668690e6779020bff5661ec29a4a2b9781f6209c15c602b2b30fa35b400ffaa81c431091f0568b1e9c8a4d2d43ed316bacaa1184882ca71f4eaa7b27bb16bbd046ea2a3ac1e99063efd7a83b8b1e7a598728127e2a6ab64dcc4ae0bed15ce4a438b0684b19fe06f2d0f5f1266ee5f6a188bb300e20eaaa066925e8939c93a0b39929f08dc137e18c3a27848cea26cf4ff5960d9ea4e54b95bbfbfc21f649d320e548ac4273023f284dbfcf86de3ed4509c51e8803a914e6c6bb98c2c8884a539acfa591d3726050403635aff32ccd792552e4d7d36f605220882ad8025b430bc2203713da1737424469457c7679111944559da15577650cab2efb33e8016ceeb4192ac77cfea01cf2a6303661ecc5b4ce56ea94dd7e219f762daa39002893c26b2cf9c51208d06c8324640121bf3c13469d9198238fba2d017e7d805c9f3c65e03c614abf8c3124fdaf1be8a94fc9e8b0b8a87a1b74fb595d200df4e86ad522060c88da8e718577803bd6fc75e4e6eb9e343c79bdf8c111d94b975a9946ed3c51f8eabcaca732277903aeed42c2b6830db877110f89cb950c1bb0c30467ad365e212525b5a5de13a85279fb9dee9bd04fd6578cf741b192f9e6a08960b8fb88788c58681ef1424a0093269e9ba263638a8fc4bec8df2368775a07d9277fc60ac3aa29fc3818ab546397cadd480958e8557459acbc67824bedc08592b39427a5b68a5eba56da4429049f6bfc9a1856c72f62bc8c3c0f878b0a650d47183015a9e53106af1887b7b5a97d0b9e09907cad79a68a8d42e204f916fae9539efd0444989227d0029c3549c0bbd674814b28ea5062aafd41b258fab4aaec9e85e1af4965d5c1c528e6aeee4dac2dcf54bae091d6361ab77dda460a32e8ecaec195ea8a2b94c65cd41a1ef74c248f9f9cb78f55cee7fc6defcc6541a7d41f26188d624bff4bc4ec703b5d5a15201bd28658a9dd00a1660759b045474144e6730752da320e2e2173f7f84bc080529146ab97533b688784084db26f661646fc724b6729a58e47938cdbd1e0977a5edacd27d59bec5492d4112ebd31098af2dcdde166396e8aacc10ff3ee3142cd3933d142efe2af5910a65d6ccfddfc311d8bb1343173be9a9d38fabfa6f161ac9b77947c7940440c593da534b94111697f3f6ff88206fd721fe982daf6dd501a54a0e4d5436f0647c51971a2a8da15844c23b65020085010382140f77b7d699ed8294622547de0e5c40b076ba8e9df9d3c4a89b9faa5fe783bf2815bd1bda39dfee37e3468dc7c444dc5df56f23d573a2f31badb4c444fd2d388b77885c7dfe017a21030689bd0facb60f6425234e30f6739b95af9d8ef6f287dd6fc4dd4a873d298d36eb996311d9258eb1ea8bf21ab2e272317a44ad7f0999190f8857dc092bc275dd8149d429fd7bc278bad9fbe4e8cc5eae4770486b761d69e1bd12c100fdac7777bdc43d1ade8a82137e06eb099dd8f7e76355160c982e1a40c616da530f39ee91acb24d78794188a5feada65dcbac5bb7b21484cb4c437d209385da70da70ab66094bb737cceee52977c7862f335286c98d9097db3bb484d4b7294e2f0a693978b44a573948611bb8186ed342cd1d5e2cf3e730401276d49653f380831433b7f27f6bc88a57a10e635d7c77cd4726232c3c10debcff95b3b0912fbe5a66d13cf6e2413add132711da653d5cff1801ab259981e098183c3e8b61b8aa8db4a0738b9e8a6936593a7a064237971f347d52e27e0aaf21ea175a2f3f786706f2c50abbc6eb245056b105b8a6466f69190dba49a6453ba308b6871d1f5b6500c50129b7388caef004dbe8406511b59d48759dedf3c50b128471275b10b17e0cbc3c05088021dddf2fcfd50645533413f7fcc521890d0d38c806bf35bd6a89a7c81a865cf373165d9a8e040ecf5e6ea0c3b5775945c23018dcb615ffada2ac1861b38f4c0674172bb356b1a6f322e2de406656bd656a28315acbb7210e4a301353833da0b9553d1dd3960a7bec9148ad805c65e3747a6ba1f4d09d10dca7dd927dd65048fedb1a0fac501ea09777502da58e042fcd22dd03e1fc5156e80a5b151cffd4eb9b3c4fa0d186bfee88fd7c0a2db78f6b5bd81a84c3118402df5f61c1354abfe68148c869de7a415c94b88f4e3b043bb6345f3a40e661645279194b1440bb930d59b118acc5b22a20fc1b3fd26ce9fa669d71bc9ba9bac3b05f09f5a7a1f72a304e8a5054c4f0c15c072296db07b42ec3d8252d3234cdccec8f2e71e393f44e1b5c3b2df5a1e4610ad96dc011854c57048a9473e6fd5eb59e8a8481e594c30deba7a833b957b25a765cf06e3e6bd2d40c34580fa4e8440851935d4dbea1342f44e6e93f364406fb36a0556d04f8509294c128cb25bdb6ac58465e3e2334c1be2fdcd2a34b9d79c504005779ecca300cdf740072177714aaf0052f0e8fa16ae048c351f7417864b8d372c03f0ea45871ba25376947936713b0c88b2657798a7fd00f36a94709c15a79f6b1c0028995853a555852c14f6a54d06a713e3afce37ca227dae3faeda0894c1a5e722654b05c5f1ab00515e70e31d3285ce07c3b252d90654d25a49cee64d33697af5f34bc6707608bd60bba37c835b3a435ae41ab36fbadeb807fac8b9d03feea74140a63ac4fc213cfdd1ce1c82bdd6cb19d1634e09183cc39222cfa99aa41a04ea5b085cd5da4ef7103d6ba4b2725145cdfeffd5fa4ea7b9f01c7eb27bf6b46c65ac8a8b8e0191bc6632dba26ef4577afe499c073a0dbd7c3eeb00aa49de4cbc62145696f2dfed1e222a9e0874324dea5c4d608a805a44643227cbbad64e33e9c50360996b39b6782bbefa5ede2326dbae843b50cc359480a5118169e20d3ff59cb0e3d8f935c2049317750d42bb232893552348f8ad90151b049432e05a968961c9f82cbc3c468e6926eecadf8d1f15ee6c8001c91504176a14d9e6c8b4fa1304215cd0a7c8e0d290746ecde8cc7b4c97733d5ae27de8fd58fa7270cc15cfb2f2d6dfaf1f1c4d8965e3a42b77041077104e17a861e8c42ad7fe4841f10eb687e7413ce1c950c08880bffe3fd2b1a15dbf9b84b29d9b2504a59933b8251af5fbfaa85692dfad78f84afeb7b12a213dc473fc94745922d3e4a4c1be7c48f6317f2cd1ff1fdc5053cd718f6597f368a78677622773ec822e851120bf40dfc8615fdd0ec8ddb2492ee71bf1fddf4443f49c1acd25ecfc2dd7773b20a68ad902b883a469414e27e7e55beb55d371f7a7934b83133523bd45e469c81cf78ba371fe08b50c5e078ca2048a839ad408640037f15294e2b66126cd8e18118f9115f6d8e262a8424356e442999ea8e6bcd0dc5adc26a015acd24982352815c820947eb6156eef1c6d25f6794e47bba3c295b28cc0074fd25996bee4f47cba0ba1f0a5119146e8e4bba813c4e00163d8a82f0e6f2797a3878b62a91ea24bdffeb4228d55cd217c8de7579050df202790d9808b8aac8b08ea0de55ee9b72033d4e8d43df826f5784f8ec55555e311d710cb7efd967f14d2a9ed6db89a5dcc90a63de8ddedfb0058291d97f5e3ece20ff632d5f2fd411ac8cac0edb9515f0c1d0d752f733812ec059d497aee18773703705b2f60e0afd2fdc12365c4407fe2e80e670d703ae9e2b9199dc063ed59a97874b5d29b306c8e554c6cf963c21b8d00e7fb343678a07f248175da464b6f02012f01f413f7b53d1d3bb8381a7c3cb6b4f89c661bea7e5a10ee0fb64c39a4a0015e40c9c507462699533fc492d40e36ed17189bf8b5b2d59c2cdb6eaa316702bae3ac9f30da6559edc4c42c407e4b55647791dbde01db3d284058cab21d2ffddc21c7e0d51e8ec427d1a8b3d56dc0ea7eccf817209ec790d7ce7604434ac8523520191b1f8514632865b669d896e5f6e07e7cec454e1ead23f1707721044319c7174aebbd52b9f07a13ba784def87f761c96711c3d2c630e3238c29d06a8768134bf6e5f3d7db0b546f83c6cfa4b82a9f3a4ffdcaee71878b7df273b9a4d1deca4b3fa8f0ff1faae76f5829495cffe7f1dd79b1825c1d06088c251aafbc7567f9d2922c5f4c3a072fc11ea86bc2c785c954f7e13173dc4a5cb770c1a817b15521794083b39b670b5fda046588d541cf5a8a65e5f3494da38abb2707ad039c71e24a39f515591c65aad1c47e5b9f54c7d7d9f70512d12515fcf87d8344b25e4fdae787c645ffe62eff5f2d20e9d1c6c7f00f40dfd94b6ef36e0bc4cde2c29405b1b5dc85967d8b546e3d985fd2c8870ff5b3ad9d4628d242aacd6fa931e50739aef863c26c76eb1aea5bc93f6283d8254fe1d87384d06f30ad36d202cd282a9004a21c839b8458219ebcaee0bd046e3d836ae0e932d0cdf3bedb9e8b54c1e75ef2f48dbf89faa0d2f6fc352423c913db56500e836aca8f936b0bffdd5b4d9098d720ef963954a95ec0b0bd6b811480476d9b44fbb0500a71fcf983387848b34dad9283932fd05bf969e9c1fd2e532b10c9c271ce544aa504ddb4c2cb4fe57322c7fe594935ca03a6de08a2bf08fd6be6f5abe733017a9c92c3e9e32f49a458affafc9869460b4f18537668d3b1113e70486d2a7810356d031bc5cb277dd11b35add754e05e20bb4cdf7f593db34c17501754cc620b222b8605ea06f9f54814097287a2728feafdeee9b3fa943f99a51f3758d287a40171c4540bb5038c5ffd926890a870576742adfb9a34df980014716c4ee200a114d25841b3c6998c702c3d78bec725240345f5d9d2a8ca2d1e302b687920547b93e051bc9faf0b014df819b73d348a8d6f24d0352cd2a16cd8bf0826d3c17e2b8050a982efbd0261555fb9648a7977e6d4ca0147f6dcea3d4b87385ae70df730fe7b64faf270818064a7c4dbdb01189a9002ec82e760d336bd5db88de418490b180cd91810a14f4cb1b0bd894380b831d78dfa2966f7f5fadec03ae10667b22d888fa75d57ab0e08b2059a5e67174e418138185c2f0e7fe207ced3f9bc5d7524386ebaba6ce7bc92086f1ec47f46c39f0f1be8a06127506cf24781d9036bdc694e9b6c88438024a2c92c1a5d416ccc86f5dc668a8ca37195991bc5d259631c9d0da6e358e1bc96816ae7e95d63bf1a0e12ad977fa929cdba71407b90010b6772e8b55abe81e5e4e79221422438c82f293de394208499a33d12140ebc1249eb61517fc835ea042a382205e2c00800f1f24bca5e37052a33728a66641586a734096655d87073b9c1d9157f06b23566e17c26176985bc0c3ee1f7627fff0fcbbc48114b1a4f4d5d6375d364504e76b309d35ecbce536b5017af43ec1f679b5629074cb8e1b8927d1364ff1fbab6f759f94faad5d1e6c23e0d57194059bbeae533d384c5d3b1be380f8700f9aaeffd3dacd64d8253ac236843d8b2a25170857a9817d2ad033aac4738b562722eeb3346aae0572d77b6eef588cd1c9c664b5d4097a16321f391d1427f8dc5a12560ad39d23b5528cda7cee5a577d64e7f06982eeba72d2d5032b8dc3e363bd8ab53bb1155d6df596abeb1f3ea3a7fc88c847f33f814250a79d9ed252b38b1eeb9aec3fa110a7591153a7645957e692583757745b2c351b615bc15ac7eaff7815c8b92cc59768df903ba5421e025769e621e48eb2d0a0d15af47c35b866ab899a574ce9ddcc5a0de50bc91a2e0b774a29ad4982abaa52a0235a424bcfeb09f323c760626d75319d86f2de0d2b4313575599d5c78184ddd5c2371fdd6fac8bafc7fe545f3b81a77c5193a22b135e48195ea805e6af43fa3ab5f1f4d5f0d240b11275996aa94053df8ad25344dca6bab7c55fa24332eb9609ef3f82a38057f4221abf2adbbee05e721439251410852ccf6232205d80e1bece499418cf95dac91f91d5c409b265c846fbe4b7a7ba9359b24498632f02a654bb2e519f14d0a6b1ea0ff26cc3e01bac68f09e79674869891634924b7ff1a5e55de0c7f72adf9423e131b3d1f0e413c77e4f1c9d2ec4f385db391c2124a6368e825ed018923a6ffa1c20b24ab4701a1c2fdc8f655fffc0a34fc802a48a7c72513da54623da1f0c905725f5365bba8d3f0a1e37409b5107ae747980cc42fe9c7b33cf9ca285873938cdf8b669af5fe7a1e7178c1fa3f70b827d1d24e48421a128b993139b38951c3c355545a3e6012fa549e97ec06524d61b06f0b2dc94b717dd202f9ea717e3999318575cfa94ec9b04aa0027586ea0567002e4d0dda5f916a045f9263103e03273c108d7fd9b2a2b870789186af070e715e13765a7c38bbe6e150cea53ea7b4e078a55e50ca78a5a7275d881d106c95cc18c65d182eceed7d03dc450a18e8e11e8f6d218c18c90465d4891090935061a1a4195d2b0fe311005d8069adb5b8f5520aeb5d90950cd21b0dbcf07e769607f553cdd7d03184efc35330deaf4273d671ff2fef9630f579c2de220035fad12367d7dc0125ea3b64a6bf8bf118c8ce0116e969c43933c7230575e5fcdda933bdc8338365f069f7ac60a48ecf46fa1172631e7cb6fdb0b55e14a2f917d911aca62e54d9cf1bf10db3957fe71ffce4e4e1d9d3b69b3c134d632701186b437eb684c27e67e320c4bd8ad70b6efdff1a81765da77376edd7bbdd6eac43419d31a3cbe1794c93eab8e32a0914ce7fa55436ab8c434b07818bbfbef6f6883ca861f2ebe3677c7c92426a6f3f990dd7728ce09edea360f01e08afb939954db7559fa0070e4b7e87dbdcf17543dc9c38c069f830c30fcd9be4994dd35b5b66ea9e3176e494bdcae5b50ecef052e57211111d199f39f6baffdd64aeab0a1b6eecb78878d7756316682c0457d431aca2583ee4da8710206027e3cc7744149b999c8b04e624243afc25986209f1970355078bac1e262b152393b1beafbc167c8910659ff668cdf349b1cb5d4d7f220d1c0548d27d220b14440d706295e20a6d6dd551d92890f439048987e4e69d355ad852629e36a3d24ce25a8a2eeb00500f39754f383dc2c1157d59b723c87b4d1a6fe8b4fa74f4d40bc5320a850c9e4a63e2519143a36c754c06c4b4ab7bc20cb4ae8acf43c1abd2ba8a0aa5e36aa994696cac4206108e603be0dabe9fcd37366e105cd3d412612355842df20c3292f144b8d25810c6c03da3e41e47152184ce3cc5eeeeeb85cef8c8d8105929ded76f652574be3d9e6de5d6425412b17969ff3f37fb5a558fc898f08c5c4fb26bda85fdd53ef671a1251f3d782eb035fd2e04652ee9d4e5f7982f0a427f0bf4394c5bc1556564db710303ab13eecd2c9c47a9f28fc9237782e360f6b9af9b097b209bab55f6d746616da6f0117972b28d2da49c093cea7da4f0393e326e7e1467a03b6d9058b5a6f8760dc160a540a077aeaecd57f887e20f76eb9c8ee3b692e4a57327e59e818fd1eb92518d55130d2dd7747d61eb03539cdf6ea16fa4cab7405def54c862ec88ab415dd8bafa028719d7e85f79332e4ac7395007be5fe3c8940665532d6606fcfb4386b6d3686b1dc22313794d7421d2cbe7c1abdf7160c79f0fd3d97c20a9349d6e0eeb4893416675a6e42c60863883ab26427917c1fc829da54bae6ffeedc8e8cb7463c899498084923cde2e5b812e2da28cbe88810b0996b496564c6d73012fd6411628baa66fe9f1da996886ca7725f53acfe6565030dcbfb94d24541172ac2b327f42a5262426f9b1ec38e1a1e657963ade1eb086926f0dd2eb04b80905f0db9e840ea50b7ce7c2f39c8a7a3b08046ab5af37fcbc63d9abf607cfe002d40257059a7ab6e00de087d5ae0417df838a3bb4ab56299cf5b28277a7c06560ef03d301baf1117e05fedc09eea7da6aff1ed12ca75783c94693cdc4a37e1197066e88d82db6f5a7b887857b71648141c3f9f8f4642d0ff3158fedd080b95eaff7d46647519857bd245d90f2796275a412bc3794aabb9683e68e64b377ec6bd59613903cca2e1a6c16a412aeee43c504c538a42ececa68ffa470d27e0158b398db405b8e6fecb3bfeba29a11ed4775f13f47aa9ec64f322cdc27bfdef67787ef1e434543c2e7a4edd71e319a3025aee76d505311cb9afd306f160f847b3fa81e03a203bbf4e6a828b1f8d542d39c01830f717d5d1e94483f2f18d66da567a40b1aca8d81d8db60d34b1fd2b1e5e0bb2f7b32ac37e129b91c92dcb418e0a4f6da7d7789e5487746491b5176cd7769478cab2c7fce73182e4ea37c6480b216e370ec982bd5921b003c26196129c68fc51c724c91f865ab63bcb7a9ec028c6d06fbb966ba640995b699e3e9b9b9a12b32086d9f9c4ba1c6fce6265ad38cfc710cab15a81f6131c40a3f9f8094a07471d6be8e3a5f5bedf7451a5785ae2e0cd0f0a0fe056e9cac66964ac76fd6925c0fb8c5b2a3107a0895b3ccb8897919b8c387fd51c983a6290381352f2af51609a33778911b02f6f4d0e655d0b52d51f19a59f1600d9c43ee69810627cb7d066e3ddb86caec37a5ddc1a7d2f7f2b81d83a4e2b88d3f472d23a9a9ee63e66f966da7d9e0dcf87988571cf601086502fad9655afc42e9760d7721cc88dfea77d36aaea0c2cf025fa774aab82d6cea8a73e3a9340fc395c94db132b18057f3e900dd032b0f02a784b127f1030c6cfa4c3860eb5edec342bf950be026638510a0628433ba0bbc82d534ca33db75a7ed7b0879f95563cf16c8024a1ecc1f7be376c9adf3a8bd5edcad6caf7674bec4eed811e333cd3c8d9029260df21d19f8e23c3d3b84f86e39db394ee26726c5d6ea6878a0e4d1b9d042fc3ce09a80c7353d7b09e90ad275e6725da17f76d792a0a37a7334c6dee7668019af19c0c3b8f6b703b2c121ba7b18686a6161c9dd308318ae1670e819733c675a32184fa684179e21d9c89a5939bf3b0032b69bf8f22630f061598b74cba4f03e87a57753d65f6c220b0526ddd4f72a71064143b30fe3df933f0520aab403736cedaecf0c3c5756a8794446bd9fa7912c02503d3774f9566a4b5bc85acfbd6fd2252f253b37d393b3dc01b10bd458b6e19191058bb6d0806726bbcc9d9f87c1595f621f6091e9e5ceb3d8e999fc144346031cd0eeebe7f3f693857f0cfbafc00c63822cf47be54c605ae1c371da96691cd13772e6ecc2c150bcac4c2c49eba978bde94e8a786f4c58d652c435947c2c97806b9217b27118ca1760faab57cf2123487da095b6c3745735c58aa7b062d204c39fa27d334e03395b105397b9b22c5720e47dc4083f22eeaac97459ec631ce81e8df2f80c32c33d57a2b478a6072aae2683f32ac8b7307c4dea7ef73818cf01011a5c429e5f7e4ae25cb27a0e0ea4f530589419daf1264f5292edfa24653e9268d5a279b9b3866a606a60fa5738556c5eb79c9158623c0d7d28dd7641429d7fef133a12385a4d8b545fed0fd301b081888a909bd1f758897ba9cb396aad89bfd9e17f336f820503043413a858e345a3fd9c2c0c4cd8c55868ac5f1096f85841ebed1493b9f95a7220ed9bf8db9db59ba30c19a062272b83969eb74fd416a21849be8669a78ce3fdb9e293a51e80027d5a2ab90277aae25b55beea059692275a52d4df41e6a9c72982d7cba13c95d8c27c70d1ab35bb18840896e52a98b5e9278c69b7af72db384487b0adfeee65bf39511d5a57b2cf96d79871cf60797dfa248c35c95ed55471af7c29071ace8dee6ecd1e36591b56613f06809582ad2a8ffad452fca47a918a60e920b452555e8f5b86764809fc0feb5b9190c63706a8a1644630c6d0a02a7cdf4c48efa1a94f96e07e7138ba40628efb1ef60aa18bfe2c6cc24e347a494154b92b2503bbabd5708cb380c515a093c922e16d93c3a5a246cd0ec9700aaad7df7d89d4ef2e168f36936b0becc6ab8f982bffac210af1c07e4cbbea650e23b723b2429cc22d37ecec9e7a3de2743040dab4feeffc0bc8a4fbabc0432ec80674c98d679736b34d50a930f5a9e83121f6e0b4d5963fd670d716e5f1b752de5e02a0173ae906e08e90cbd63e44c7bc19d88f7a1b6d3f111c067adb20c117564cdb72d6df42d2c38ea46df82411026fb801368820515fa82c29b68478d25a92a15645a82fff93e4598ad80d7ab3790ea8c33cfd0ca967140018905e905db018b32798446b9645f3d08ce3812079700ef9a86064bcd1811d32960ae14854883c9b3240760a69aabbb9793e82d8474434d89a30b70faeba1d5ec781c5fecf944e1b99d1ac377a8dab2ed0cddbff45314c4e228977323019ee7c357c0dec57535b16d9913c83597c365ed0a621c3c7b25f580b1df5a4f39e378ec7e1d38cd6bd8abd6764c80517b54f3fdc7a8f820c153c6070483648a67f1df50532c54150b837a0e4282de219a99d09b61bad60e835ad53ad8fac44ebe1c87814c83eca111c5d3390f99f5c3d357bffed999c56a3bd75ca1c1e3609568bc48a3b6682a0b614e0aba0c072f8fae59bdcb4eea2d413fe44d52ddfa99fe98aeae4a290aa18438afbb12f5f6fe087fc0972ac73729d5835e8c3cbdd60805ec05c029375433ba7e7989015b57b863fd7af3ea66e5bc245d5901199cb0f76e5b58b7b3bb002380c802243c5702c28823e9c61d99c5075ed15f1420a5a5189831b2f43ce3ce4e1933329495043abcce1cd8a22713413b9efc932d6777f070ebed3de71ef459f1e827201845cdbdc59e7d6e7c12db78ff28cd5c1f490c4c96d0fdceb71aca1095e1df63324ad864326aee164770b43df178568f5cb123ca0e7a712a8a538a655a270b1ac68cbba5d283247969eef58006a97abd7fd10305a7bcf47af316753175924ba9a85bbc90ad35cfd7dc5dd40e2876877571decca7c981c8597adbed83db6fbcc3041e0188577f1c1527474db613193184b3ff9bc2ab19da4accd7612c30b365ee55908cd5ffc338af7e0332e98501ea81e8937a522575a3c61a0c299a4a2cbb4b35f0bf11b100ad3fee8e996816429d2be4c68bcb7d30b3ccfd544f7896f1739d659659283c67e30411020a34ce6bfeaefaf00fd5ca4b6d2e6a5ca8be1ecc8cde48e913ad7aa8bd801e409bfb0a717482e6138ab84fd012b4e97e385817cfbd58a33b720ceea29480bc943215a4690c1acdb25c354acd2d177f71f01b64b40af4bae5b3bf88bdecb2892bcc7bdbf8798f39a3bcd9e50c400a2061108beaf5527d574f61eedc898fc6d111632e018d7b182252d2760f5584d812aa74156636a79131f35851df02e4e81eae9e0f45d6b292f74e0003133f3528b07f679a2acb5892520c6820dc9ee122db145bb03edcc456aae7d5dec3f09ed2187fce8bad8ef3076b85aa274f0468f4fffc987fff783dcc46d717037b81fecda213f5a9a903810482b3aea3d1402c0f403591d3f0b61c047eb3feb5b7bda8a86303d771b0d6a365252c1a5fd93d583b607bf3247f7f6bb794da4316a6e7edd04e12c7add7e0d5000776d9952135ab080378078e310b57e14f37481e0c5fdcb5d6c4aa96972ea2d1fd459d9330fcbb46f846220a7a88ad12b92aa66603f44ac0e829d567c094ea6c2dd0bb7aad5dc95aaaab20143864661ab41915fdbcb8c62f78d13cd2845dcdbe17d4783b656ba65f4814ad5e13d45a16bec1a147de1f7fc848927052bf7f55122be37b2c8778ce40d28a768abadf878cc1342183d73bfe5961e487fe6b4cab2db21e83d834406319ee2c033ff30a16f82ec1754782d75ba756abfba750e4b46a01b8c54f9e0b65d3837cf24d27b7782a34fcd4092bdd6f26d0016244fdb2dfc67bed3db669b91be7477e9ffbbd52999ae2512f3383cf8e4ea45e26e07303ba291b078fc385f801ab6d0d7bf3b1ef04994f51052e9942492d2f5d507657f317f3a00272db7163b922ca8d1307343ddde7d4481f7e174375e9e872c004432b03dacdcc7fae49e6d89540324d48c9915d796b054366ae7f9f9818dcf79885bcf5725fc26c1c437430042ba2df36f7d0302ae5468e5d4c548d808a13581506d8dba9339fe4320f21aa1cc4a5fe2a9237e87f6efe78ffd559b7cf0aa28de3dfd8d9685a2fb9ed06c61572f39888a975bef147edb68f73cc4c7419a68f9c51b5b7e3df3ca28fb0baded0ac9a676fcf5d96cd3f408c78b2ae432ce3e6add0f47d114261442e83c9d82db678b6c373064a9a4cd063e4073aa0e905abcffb9d5d4e9203f8e9514b17e86bf37ec4ff3aa90372113a2f7206e925f24a8952f8c5e1ae014aa6262599f70a274f5efcdca6df27ecfffcb7ede734878def2321580b09b4ee5d6f5598dcb80eb6860510a10730473522f4fb37ebc3595b54a9bcb015172393627af0ff836a07664dcfc102cc27a1284d79963b96c6fa1b3b56f58537fd17859952eecfd0807e32ca5023e9e7c1404f0e241b5cf16eafec080780d3160b67b6296bc20fc0796e156727320c301ccf0ae915e3cc2a99f943ae4c4ee2e44f2883d4337f4fdeb23feec19e70f334232b561fb5643fa94a25de7ef6875386eed59219478f2a374e934a8be8ea523b4c036a410cdebe395e0322c43fb191258e2fdea21fd2c166a895a03ad044952451be2ed0741daa8068ff0bb6a235f6cface53b052cef95815287f29cbed77dd745f2e1c23b882d9524571d776f5d61b48afac82b836eee62625e74349318eb578bfbe79d344307b6ab1697a2fb46bf43f7c91c8380abcc02e1797ab0a595e1530570b5f2ea85b8a112de3ff18305a60b510328120140957b0cb3f4687e2d1c5450e84113f6ca6528ab6c3c6aa7ae7d452d70cb6b125dd1993ab5b253c48de547ae51bf87f861c7d2d351061d5bfa5d953a45edc32b0507df126cfd73ff4dd23829b60593610711792617dbb97384d4d4ddb70fdf9c13b77a6d44ac99e1d7936b3576ec6087d4c2bd57e693865b2810ec89af63f65d8025daee874f870b547a180a5fbd6f8509bee656a575bc335cff438d3b902e184ff77a10a87aadc9f240019cfbcc24737ff58cb9f39d160a775a38f72ab8f1100474933a703bb122b8592b5b1b69a4ca93f7695f00ce98de48700545beb673756d15e6deb38ab98ad693e9da77c99830e3edec4b98b5cd10a07b4e04a96ffa15e798dce5bbdc983cfd984e1df6b26495e6467f9ccdf2b42653ddadd4bcaa71175b984a286c92ac9d7b3fa8984537a548496bfd53b76fecdcf83d6a715841c02185a3165e109ac45b8e4bc3634fd0dcd4133bf9558fd78e35d26d8a14dd7961eea00273b9b4c92bd25cb947f37d3e5d014d80e05fed510db80713f9e310096b08006875d743d4f11bdea3c72cfd3531c2200c8992e650ee734261bba32b1475b25964a266222a3e036f87f89cedf7bea481d2c5c58a0778a86db863559d0af6d4211f00659c85834d9a0197c8c871d7b6d3bd73de615b97cfcc0d573b9237e026c804a4f4ffe2e24b004670647f510ba834847c07d8704330d46fa2a8cbb295e401d94df7fe690b02fa5550ba1cccdefa839af025a25318cd2ee57d0414a179092cef4383ae5303d5cf00232baacc88b92550996b6d66f249582b5fa1790dea190d85eacc035b5211d0c722e9caa44fe247d782f34501e790ae3349edd8529d84dbf356c3ee4c3a8231d9b4e47163595539f0f82c939915f12183233e7e597d36b5505a64c16fdc135b4904be7a94f8d460da61f68cf57d74a5eea6d09d4e258ab16a99e50f1caf59c85bb1b90aef7602b93eeacc54667b5c4cfd7fdedef8ad64e2a259192fd2b60275e2d0c4b63b53dfa9498f00a737a9cb2517e929349fa2aea50e8dccd8f99c8ef4f4f142a043db079b2ca5f03f62b610de917cfa086f17bdba025fc580f4aae128c6d36eaea68f6310bbdc9e9a35844898568f9578f5a080c7a0a46c4456fab64605679039a23c378d2947008a004ecfc3d40940d6223c24c55d049496a12b3b4a61ddae69fdc88c0b566a6835b402b2c591580ea37f7a66dc9a2d4bf1500316b1e00579f6a22eee9c1daa646a4a54318e5051ea234ca1b9be4bada9ce1e02aec39219997b105d9c445c96676651347cb8516b990882fe40c92b716c8425a08015914e17c038d6bdc693bc7fb9cf9bb337f7e21a25f171c7a8aed8bc5302ae26d0c0e3d5cc68674dd48401822d5c57fc69e9c96bd5bf849681342170d84090f1179824b121fbf1e29cd99e7171363a1af1b7bf661ec94329344ee8199cbc8333a186719ce6be8dc75f6653303472c59c889b3c8d093e3f886c0f02b5245580f0c2a33a51599cedf0bd8ee6b7facb36917330ce96825ce71e66e3705a0c5888fae53e2fea43eb20796fa6e90ae39e06f666ef62b94f41511b8e484753ad80ff38dc129dcbda704c524b14fe777e5cd8a2f44259ccb35515d6f27bafede946e7e3924b791d64716ae2ba2d91804e3edd2c4e92262bf9725539afe7ea279cc0a8182348a3fc89a2ffa1bb0ca0fc6ffe18bfb42c04b1f28c10db6e08c3ce33f24cf8c7b23059381e3e654cc70ddbf1b2851725bf38ae170ee7b7e30202fc8255cce637124e75582dec455a0be0fdb4e505c09992bea9e1b2982cb25fe7f9762a7d4e0182e9bbd1d1419d48db9845c766b3921204aecc44769848716a0fed0739131d9166e89317a9747a50cfea24b5bd28a1255db18859f96bc683a460e8f2d9ad63878d08a2127e7aed67f0e6a62f58de93b2b6646dad4d75c03658d98b6ff98f4925787eed3a38b351d95ff724062158a177ee441490ac0208d8e81e9bf75cb322b08e280516d2e987f6a39260333d9c5aa46c1178529a54f1697076077b11eef10a14a69e2366585265248737be344dba94d1fbddbc7565c546e8cebc6a438e92c5b1cab96bff3f038fde6200385c0044c5a661a97225ea6f114193fa201c380bcb5ce6fa3cd6e8afc0b02af1ab1b3076983786c0f14437839750d037564b305b6901716ddade4e3440075d5aab36f26572e2a129bdc320cc66f54956a80f325c486bfe4fa1ed32e5347393f4011f4ff0d5a1d4c1b9976a611ec625fe256e75d4b2f7ade9ca92f7c76cce9c110ec64f07160cfc6ffeb77781d2bded1f3ffb4026f48979c05c447d0cea9fc76edef1cb431e460a861cd483daca28f3067a2fc5fb296e48fd239c282c7435281ff11b67d07db8c31cd7d255486e49151d529461b0b67349cb757fb56c242ea9e8e33f418c5aacf13a2aeb9372272813d9ee601be5efed10cb5c47cefe9581c2d2386adf5c424e01acc1fec80d4905c167d21db72929eef8f32a8ebb3ec4d4adb7af360dc15c0f744efebc67ce083e2ef24ab6233966d5b92eccd48d25121831a8766edd60c0443607f1fc18491409617b4753582e134598a1374b6683653bb9c79762ba927ad832f66e30e8a0ac98ed650a68863aaac4c39ba6c7656fb14524835c1f58a93ed8792590704a153efee32487c53263a2954fa047bbba20e6a3dfab1ca268c3e119ed7a1d33101824985ad06343e52402dcc6d6e4d8cd70cc487c53c661a1016af6ffc04884ae37f538f46d65af285588a9fb6e95efaf338cd6e90440e1929012e58170e09e295adf1ee8ada46f95ee595065c4f550414a876ee1b56df4b108e9f7b76eec1df720a3ee522875109d761f031b4631dc245a73d142495d34cce936f639e70093f065659d1840508d5b7778024519ca792198426e841462ca39f9e72f1bbe045f23cc3207e5766dd4aac4eea686fcbfdcf840dc830c1e7dc4aede3afd4d8eb3ce0640b8ce6c52c0961498679c3b6fda2c24836e9470bdd025d579fe0c2aabfc0ecb602cad3c92d12cead7ab7c9aa67a646b1ec8e79da8b767930a6106fb78cb49e65519df7a3e0fe56abb6712a7bacf9f57d113e13421dbe69de2f04f35c46e53607d0bc9b8f19fbde84afebf0fc74333b4785653aae87b09b556722bad9c8317ed26a8097e1e075d869855e9d0dee645f83fa450f15b05a99e50476407b17bb255bedad50035b50cff960b0657c22708d4cbc26b1e3b6dbb9c3fe47b2e63f5afe714e9c572fcbd7f5e52359eb4c7c6f0f694190e253e652d2d5390eff7594a87e0c843749c0e82b24a7ab326941b2a9f36f30f76c11675555c214960fccc2f10fddfcc763253b1d5734539179b07eba20c013b06bb70a1cc53c6480cba3ccc936cdcfbeeb9fd7fc73b56031cfed139361a7d608b3833ccaf62af835611a0e94e959663f681c51a5fd474193cbfe5241cf2fd675bed70d00efffe372fde46219f22925393a378e481c1dd440eb57779d6045efa2352b0af1f525d943f9110636c76edcc4c094eb98af872325cd942d1b093d2ce474333bf02026a0ca33efbdfadb4426475ca4b1c5d26649d367daef3e2a22f62c525091bd25d0afa6aafa470422d13ef1746cb7d64af1ce9475af3640fb33e74bac9b5859c769949e6e8105130f289480f1c87aecff721de23a3c6ffd316604f733e1d664a51beaa74d0685d697fb07cf678f630d80e69188df5dfb14767a520a01a591232c3312d9c064735f4d24ffc1c4315ef65979fe3bc9dbb68e9c62e0c016ea1a5089c863e267504e15763954c8b4c22d1195a47a36e0f0d1df901b430efb42bb7730cd43acfbabe458fde1e1d6c3b4750581c0b15def4cab5e59887946e918a211dc4002534de8f3131fc65a2cb144608d03d5f61c2204c8bcdf228699fee062ad3d072da7b316dfde5315c1378f4fff0d79f9a7e6bb3e9d4ff8e61b437a6812677d2a6309bc6627ec51a29efa6429f9e5a3356e6727af87361841fe7130e6bcba31c6ff38f944f8529146d9aa13a333de0a66eb73d4545fa1ad0779c7a327eda824e5358dddfa73f8a22afbe631a598b85d59039a300d7a7bb47f9c90018bac4267b436b40c5c9bf6be81e1427de208adb8ef7a378f5fa925ca64e135d3fbdba72aa7056f5f3d7fa51f80bf80568b71da75c9a081e1cd760ee02993eaf31a8dcda97f6c248c561b205c013494549474686629975e3d27ff1cac6b49524deec1e4b1de5e15863a7875cdf3fdd1ba780661fd7366d94490d66216dc45cd670ebdba513119e314fe9b2f72db19136035814e64f8a295353db3ab613b7b31a5e14ac6f73c6b647a778cb76b35c8b305ebf8bd2d397b3383eb0b35b0f191b5c228b7766d5eea419acf345ffea94419c1be4c43d8bec93cab9a2162a267230250fff3c12e735bfe42198e00be5a43f5a65755819c81c39186e27146db7818275a0f22c5910f4f78e9f57b58d43011748cbf4b8d61bf95e97abf08dc04a141f15c522b6910fe228d82fe030dbb31c0312ea09ee9111cd65616c84ea5e8c837850ee9e78d1fec0e6c4bbf0bcbedbede7d23affed612de13102a6751fda5394692bee12bd492d95e5c173b5decfadd3f4589e6a528d9f4ec15f09ebbb61cce4117d436f75342b2574db02d56ccfe09441e6a053ec8463c2e04d2b64c6aab57b147eefb2d7dec1614cf9f2f061172cca1b36ebdce10e078483b024e750628ef45cba9f45ffb29893e4e140d65bfdf38475b9d9e40d302fcfd8636c51bec394b0c2a206e9c97b201b41ddcaa773eff877d8e7df1b8e510218d5449dd4aee4e0d0c53c73898cb86d77eb4747f92091614ee84334d58f18ad5c90f3c4645fb8b703193379488606d5cb09e9d01ca26bc2ff1eb94866e9227453bc5853c333c1ee968d9126fd27254a18802a30f18bc64fea0fe3b7b2b88a4385d5c2704506d5dd5031a49c18a3bab237d63cdd22ab42805a6d6eea5c320df9c04cee6819ea9e74588a8a07e29cfd3e2203dac371153742bf9f0af6981888fc0be1779458e6f09baffc7fa1252c789f8176c38e4eb85c3cfe7a231fd52e61c72ec4d8c51418851f80266e3ee5cbb2924e830a0f73997814a5851e8a959e342d40632cc3ab1aeb4615cf6a2603e024eab5955af36289a1fa66c27e7870049f9f6766e73182bf186237fdb231544609297ddebb90aa36200e3bcb64c7e911a27857d531a6c8b6819c4d4ee3ea6d2d054a58bef28a87caa551e746d6e9e17141131c33f249ceeba532fe9fa8723c382a47394923e55cce786552a3135159cf4fe6fe23d1ecb89b4b6747acfae6a5155ff2d016977e56c3c21e2b26674436d7423860cf444bfc2eae103bb2012aa12689ad73c998b434f0e0dc73c351a6d71a0dcf3cc0c655489c19c8fdd6ee76ec90befa7f0d164f05eb02f9f626559f94c9aa7809144f12213da4bdde585b66079882404f78175ca954e766f5b7c361a5c15e900a31fe853ef4022cb23e3bd349914120bfdd0432cf6fe89e046f8f3782d8572e6e40ed129327e09a9e987ea08c661b12a32a816df3f9e0bce3eee19c8c95fbf4745da2a99845ff3a40d24a93409d1f6739551a3f4a55714280440766cdd47441aeef90d7cbe966731fcdfdbeffe68a3afb397b9dd7e40becfa39e1ccf3151f1fd65ce6c77b841c2ca44df08b4a53e6a59ef79073205c34a0fcc68cca9393552e6967290704035f466dc4a84d7cbeb373d30c8293d2b60bb383a2dc4579422f3d24e22d692c183f61a8b93c408cb6544f0a75d2b32efce0c170f38c71a97558f0b07c3bc87d551be13f87c82e9b23fe40feb46b67c1b926eb5f865693b20285adedd2a58c893a946c818aaf4c062e356991e43d5ad10beee8d7eb8fa37304cada1d4591dfc0ee845692c9c8f21d1f6216a5fd2efe503de434e119107137abd7faa3e984d1f159a8680431d42e17009fffe52971eee51932103b99eae7d2223e69df67bd1e757add620d5296f73aa172cfcfbaa60703d85ac0ac5baeb4f3d143b78c3e06765bd66a7ab9888b07e81eb6ffc8d604c5b2d2b349a8d0726233be2d296ba8ebb952cacc3b017cd8da36f7cbb3428d8998dd277b3b3d6252c153ed6307b0ca4d2897d9c8d885bfa73ab63ad11985299055e8c137af51d35effde69c02ff597078213f9cf9a5cbb16ce91021e20555d2201b44fd00ebc0e1830850beb310228d6d4cd123162237eb567e725db20375dd7b48f2cd3f385204363f51fc0a87cbd9bd7c2903befd33b6e250e306a85a79dd1e9bb9f614177c703fbf0b6860467ed857a9c0e45a87d2e75c9ff70e9d917cf17c8c007dd4cc25d3afab9f61ac2bd6521c7d19a356783c3657cd2784e49f8a98cd9498f59d9bc7512cbe7a91dfa853565ac530873caf153da458fff901bcbe51fbd70c962417078210034ff0cf46d78eae712f6c5015a7e261aba14cfd45f9aa1a2aad8b365f081c8a29757a43e8a654b1b01bac6832e1342aa1067e0a0024ef3e35f49e2fbd4b8db13ed8eccb0d00355598bb8b99d4ea300ca4039641f743417b7b65bee1dd4f732f05a8e11c8d4835ccf1aafb70eb23be29a102ae6d90d6ddf01fa2d7a42c593040ee4fbf845cc8e8c34fbb13ef7bebdba97c3197e1282cd826429f12965dce8aca9fb0f27a224bf03c9c1bb235d067e256c3cd318c3521a964f575b93c590422001543c66f9ff94fd0e80c1ef8b82720b862a55ba095cab95c766495a376c7fe75981473780b99db37bb8ce7b655373195616b5b65eaa9e6d80074939cc48ac31991287903b8a429a5a6ac8223db25d0b849569c1d3c261a238e25828f9d1faf61a0dc651f7a96b74707f1b46693efdc6294fdd353ff671957c2cf4a3fc656d0450ba969c2e5e64c82b0298543bc83cd27878a159939afb4466d1dc3153d7e428ffd8448a3f7cd4be2d0e76bedcfdab68a25a14b29664efd9a754a6a949d5813401427948cad7d345c8f914ff13daf8b7dc6732bde7e24863177b0ad28d85e1cd9a19981fc39f2675e4cf17c0b6d5a181f5899ac3ed290f3897402770829cad260966bf61a581d4503091962d6179fbcfc67e8eb9cd0d8f956337782fba4b241df1005a4f1a761dd98b7693d99d7aad63f6663a56641f6405c6b216d02f6552c8f2557f8e38ee473301e0a741f3bdb47ce72e22e3c24e6546cf189b4cd6bc5d39fbbec13b3a448e4b71284c366c08e408a79f012a366b0c05218f4f833ad0f406adcf4539590bd72bccac38da2ecf3209507e20b73cfadb72a57c30cf0130ae0a743546ce3c811f990377f9f044c870380d91cdfb2f69da5d04aef00d414e1db0da113c4021cb9a15311b48ba139aa4d76e15c82ed3be32f9d91bfe3497ca17f4e4603b56a6a01a863cf285c4c20a12776540edbe6b5153ba5a6927c0d98708887717d38dfc8b5b46f186e7bf9a00d1572e49741add2b89e7ab7410eae6454390a8883b940738be76c2c5acf915205dc96a401072dc52f6c2f680451dd90b372405751c513c842a8dff81a944edbb961968c8048072d1ea75e42c9221d67fcc34744635cf88ef338766a17672568f485095b660e1e304724c276bcc2377713eebc8413b5ca9654dcde7f8b0188e6f9d2bd5cc8c5a1f03e7e2758e8eab5ab252b22b4d05fa140ba28d51d09ac3a709a4a5000cd6ef41f427fa6266ea5551622eca2ce7673408b4452c9548dd62f500fffadcc18301c26528a8657f20c7bee2fd13e9a858df8c8e14de0555a1bfa5273ff78d11c7fdf858f56d49ff82128d35b7e2155c889bda6334112aa9dae5547506c59cc71794062d0fee45da51ce29c91d8006cc75d22dec0373a2615175c626ca5caaf622d4e5259edaca85741caf24f60dcf44d948cdbf82c0f331aa6608bcf7cdd0ace664d3bae8d531d94faf971aa57b93817f2cb51b4e240bbcb7fa423b8daf3e8b70b82657c62684d11fffe8b814279ea880ec90a638b9ed0d08314e36db550c963040574da422b8493a35edec0ab7bba2eb5c5b618162f0a7393ddf6c180c03b759db87c4615c0e8d96240002ac24f4220412da216c05989e85a86925b39f90b40cbe7ea3b2d18a5fec62b0e46c41ecdf24f9d187fd6500a7243a839e8c18e148b10582841aa7091cce1d37dd17ff12521a6dd76c399e6abf8143f73c48bca9f629d0c387192668f78280a49379c73bf91af4cec70933abbbe0e82ef3d15db28bf66d14075078c24bf56e8398172810fdfc1a7a8023ad7284ba644ed3400b595d54324a192390f7f43d1b5cec78789a0c4013ec2580b5245bbc20973e8fd73847bc3cbf085133f6ad8c78f4c251a7e1d1c480226058d35d997ad41c450028cceb22967af9f5bfe72294473a20c07da67be4bfbaafb7ab053e313c25bc69d092bf5c177214339ebe9b194b9b37dc01af4c8ad6da80cc989f8d9ca921457926f066977addfb91b586898d8a31d515a0effcfa3ffb98f3e2ed195883ef8507c64886437f7018a5e7624e914dbe9691faa922ed3e4b20edfcfc2c943f0fb9811f5f0492e8bf6b5f664f2f90d38220cd9e2357750c7cd5dd03543a9d6cccd976902382b43d089603a6dc26f76d3c042da8bf74e24ec5baabdb02e85d3dddd7b35e22d31f6a75dadd55a64bc67876a6e3d9a8b7f06d7103fb3534fce4dc36269d4707c60dd89f0a6915145a4713c2090ffd180733e7c39efa79ef75bf7e699207d141562fbae8d39efa84e074374148f679beb1c8afc431ab1db1be7b8d41fe3089d685a735e9caacd3db2aa4303cb819933279f13827743ca88b1de476ebdd0fd21e65a42e597d7358872fbdc874526b46628d71a12e0c4cef8784f02b7924be052dd7397aad8afb3e0d68b6725f3b0269f935b719bc689ff0b54b6e1d1f8893beabaf32ef83ca52332da4a85544caed866466f098d3fad2e6dd33de848566beaff87279c33a9c23bdb628617652ae247cfba19df86e83fc43aba203df9924bb4da22a5c8b8d13eada0a9eb031c2a97eba740eb2f4cd02205e604c782a3a253d3cdbe87eaa517c5b77129321cfb79e916cd63a27407db0ca7a5b797f35103d8d7e5ccaee8c634ebb993565b2ff010fe3bd5ea24dde28cf12e359a3e7361031e817620a6f990b940004bb27522cb54af2489f5ba655539c84818b174aa4b1f45237db5cbee6401a03081d6ee3e5914c7339ab5103f7ab8a8df9332b8ea179e9783b17fe1b2ab441c073f1deaffde2b5d6867da947036601740d1542b6125eccace4c34cb4bc293116d6eee82c081b7342f8fa46fd8301b924317fbc34b4af8ad9e7428c3e5e13e68cdfaef371dcd31fd95b78b8854acc6005fb428044f1d7a7654f3ecba8d3c2985bb10a03a9ef9b2ef97365fec347d4708b660e4260fb60ef04112d14642b58d483ef3d33523c55df6cc04ef8ef0c9ebbd2b6d8a0468bff77084de78126f62d1dcc6c570e89a8a7147bcda2299e2c4d4466927c4e328a78e868cbb5fd53cce3ac0fc2d55030a253edb57aa4167e410eb43c8024b2859581f1cf5c4af45617c8904384c645ea89c243db2ecd36661a1510cabb990cd59bdc7a312a838dd53524fb947ba32674476af1848868ac9b4ae25919b12a8af03050c6d777dfd0956fa7ab90cd03658f1943bd1f75a9aa6cf371febaf3d2e144b286dc74a25ecb07537d553eba83ac69363189f65d7150ccea5a335c43fe2b7a2d798e67c8c94c5d43d13831db3b78f27e29600abbfdfc5dbc792280304d134eb6af6e7741604175b4774e1901c42daf06b47c79cadfec00d27c2095a2b93b96944ae2a9f7338c00738e5bf44e19e2cfb7ae4e9b856095d6e7528e622eb571c9bfea120fe2db127852213686e0a01b1e23a44dca8ca170260bbbecae0ba68857709e1e970b0a044d27162a279315b7151521185e209fddea9db0273bd8c1972f2cd36fb1cf0986f280f870d0f27514fa122e8e02545e60df4ca91dbe5f8fa24882fc8f6942f81dac66245bb205e5816129b43351d571618b0e75be8132c0775633720c9a4d2e3b8a23e6883755bfbbdf96259bc9a20a92a07aaa17a714683053fb83c0aa9e397aa456d6c446884600362af793b9468cd0c8801829cc2c1cde224bd9a99163155c1a1f7ade756ade60c1d510e866a893c06e93f0582c546fdd55449ef51e96f41de6694b96cd7eec3cd5e2bd4f85cc2ca6cf808c8d1c8efca4c4dd7d136203f4485f14466e3b6bba0fef2ff7d631b26471dac319506a021ac5f2f2982239a3d05acdc83ebe7da396be0ba1cfa1879bfa18e37c44963552b88dd0550037955eb340a41c75c2709376fe73aa3b88b18ed49ab56fd7ded482cf0280993e21f369a8c5739e4a3df4c0b38be5ab2b2f366f8ac9554bcc29c1389d8c3f05924479ea544716b9988087f76d36351506d268e1e522dc2940b80ebc5ceb80ad3bd29c9edcda8df3949083587a8a080569d0f6db8d55db4fe3038d1f0029b2d43764eeb4c6129ec0bf33791c7dca0d4597816187c59988ee47b8f33a2c718d3653c184c2ae451847b2e7ba18ea66057c2894bc17d0982be4d4914208a73c39357e3d80da067b7abd40f28fed04efc8c067c2a0ce7c525b90da41efe1c4478283342a0b1f39243d99531d8ff1f9781c250159f3931859eddab08bfee7b4f194b97e387e07d98d7e32ac31079cefb9bdf5de7b6b1ea82a8b46e9e62bad3d79f393c8f0b0687685371be63b6aab2a6a20ea71aa6bf94ac1c773cd2992ad2f16e973c4dbf9f994182a9482c050a862b3c596803b0a775b96043e667314d264747125c5d262a1e2571cd368524254b96ad47c9dc419b2ee3c04f0f836c2d0d016e41292c6295e565bcff8e1bd91297f65235486e54513df52330357d9a97c770d58d56cb7342b479166005d36fb186173706b4db5fccfa001bfe5be516d7489681b756368018c24b2b436b6a0f5c21ad552c180bab5c9fcf5a934f4f7db4dbbeba86776e9ec354ca748f1f087edbc3fbaffa39137c1634eda9868e27574d9e04a0b60646b5fa5a926ea9c4aed5f299e45953f449f68d0abd896d07931f47dd4692c406318d470b3673b6d12a25cf850a2ca731007f90a32979932151703ffac5b089dbac61bd40afb466cc435faf1b977189434eeddc71be3d34c776cb978d1afc766bbc4b5b80d6a2224e03829a46fd3ccc013b296562a4ff67363a46a72e58e5e03b5bfcbbee9b8f54bd58f54cb04626c1f61c82e7bfb37537c0ef7e208a70b9ab0733ecc68c0f81aa714c24cf627ecaa2712839e64cd8757468ad0a3c33c7bc5a2c5f58c04076d6224de408cad8b877b18204cc02462a9e4ab81a5b52468d0d7fb708236d539aebe025f090100025afb169cfe247823bd948e543702940515ae660376214b08d7f73500f901d0e94305a02faa8af57a08b4ddfff538078faafbb56bbebfed9fe7f8405b3007b821214a7aa858e84ca173c763cc3d45fc994985cae855ee3cb6fc5b4730c2b21521502addfa32efe9164d59055a53a85b6b5a39050b5c459d7f47e204bee512ca2dead831d13eff28841e0a8a06981747315c71ed542fb8f78fc18e29fd36fc9a892b7a8160df5407c1c624ebe6a1f97436f57b62c0f232cb94340a2a237ce1c16c5566919a41af40e2122565098ee11b6d26a916cd45bc64bcb223b3d44fffcabfa37c3c539bcba633ff11e23b5c07922ab66399a2a465d846c5e7fe6ce38de566203ba21e6a75a106ff7b0abc80dc095ec32c4a164cbf04b6c7e90fe7be17bcfc31875823f360d1560c3ef5b3efcc69fb5e85e4b87c8e2d6af32107139bbd9ce0e6595af909834ca6dbfc8244367584ffba0d305ed8d2bae9b34f570064a2db3e3f753214d3c051d7fd381d2be989b912f6be138773218c6899a25fcb225d7d588cc3ea31f4c6a89cf6dcfb437260d378448700ffcbdfb81238c3e772883e9920dcc4c1945622143c299bc775220879d1d7b133bdd74bb6ae01f14bde8c54919d732c4fbb5bd201419b1747f2f939521d67f5314d87d06a5decde3fb3e6c01e0dc2bd4ea95cebb6a10672b12397a8d508a07735a956432d70c4aedd130e6286a9e76c388a9415eb5b4b48f54a6003ef8cbf22a09f56f210cbeec95d4a7dd0bc4565254e57921f9ebdc39115b314e32e7f5d4d4362792dbd2ce1e3cb81340d222f0575e9e302ceeb3f43b7a9a5e3d3a8a0c11a0df80be81dc8542aef88eab4d4bf40126adb5cb299d4d9609757a314201530492126366faeb838cb028d8f3cce17480b69bd9a06104c5bf5d52c5a47672178e8147aa78af7c2b67955e32ee236de8ca1c1e2bb35637f2e06fd91c715d9252cf5eea247e115e887bbe48de39ed3162ed894f1b6602b1def4d88c8f397f70612407fb90623d6eacb9eb6d3fc50dad1f281a13d594806ade0e5215c6b9cbd109d47fa7fc6da4d14eacd160601f0c1266ce3600a3ca8c065be86037ad3fb555ba190b762eacc091c2a4542af434beb94e43d96312f964791db55c8ca41cb5ec7c119d871682dbbcac0c26de3e8318b959ef09b272d71873142e835c8a474978752b51b1e47c02d24a3d7fb13d203fec1302552789fcf5d00ea7e93afdd406454242e18d4102e81244b5b7a360ed15ccccb473fea26ccfa8663bf32b8781a7c361403af49ca01bbf86aa1501187c91faa2d3eed73229cd8f7cfe58dc9529a6efff0236bddb6e55c52bd116215dd216cb4d6a4772b88d462eda37f9f53f8587ac5ff4a912f69ad17251cd255941dc9fed7c8fff18a2741e51685aa0fc59099b16e60dcad5e0b218c30205ac2837c9b68b5c0d397e4d142870c06dc308345df49cf1683b466f89dce8065fec29538f393e470952b1f85b90ccba3df952db27e4f5b95cf0de7ea75ceb7b7c3810ab74eb2b923ad14df5aaf0e34664391010098123d7507d5478e2aac5ae83c46d19188dc24428dbbad32ea70a2da9abcb46dc0bed44e7c16d2c137efdf4b36eee7cfac27493e597403846d54ac2467df94e73ba7e07093c67d968c976870ce5bedda9d8cbec6a417335ec836e363a49c57a7045642647cf81b842366a40ae4853eea814e015907d1a1f0a670788dab36878e8d6ab6fcef9cc08f83418d6b49952ad353531971df026cf6bf2dc28a19e038a030b8be2ba3cc4ad1b01cd180421912c143f4cd0d03c7986e3519af656f4c4f4d01a13052860e0a72fcd4f69be56f31eabf43d335fc928901a543db479aa954f1766d4937b7be8da712b5a7e1a5ffb6d6e2156c0d2d83e197b541ae8e8d90fc749fa47eb7f6cb5e89dd713cc4af1d581b708950176020d1b2404456365ce7e7c2579874d40bc0899deceef86044d85f36b3781c9c20e57a25542d02d00a6bc357763b027382ceeba0b006e4c71c808a6bb0c9939a6db32e43c07fe2862d4c3a21acf05be98a2fd7b5b623707d442dd2d335f9881070c70c31639b76070a93e0709fce866226f2471c6440b97bc131807f2eb9dcbba68f2b4cfd0321f02a9d865aaaf9525d906d718725dba36de2b7a79d453919975895e1057ee124456c1deef5c5e396f94651bc9e0b433b4734468f7f9657922b9fc3af68b118ae283d177ab269b3b8b0e45b87449e8ba7132451306cf09f9b5a59f4121c78b098cfe25db90c2c004597b4e862a0031394bb1a271f44263289de2888358d5d2a9efaa3dfdd72d7021bdd7f81b05cfc3d3b995a4ec109266f2a8d4628227655be6a9b9ca2ca363da965ccd4050367b84b56b25beaf0e42fa0e837e63bfd4c511682d370d7eba96a8e1fc09d743f265ae8941302b36c60be8c1e7c8b20edbabdba22301a62b0e94085c7b93c668cf058d9d1b02c5d01ce502c8a7dd93e5ec608ab6852f782d432fc71e457e3d005b867cf0a0329979c7ec726923747fa678d292dce23dfa73bfbf5273123e9ca128c76b62f6908afc934088836556fce665604ae6a9eb526fa6b9616c641650dfcca588641e8790ee26e16768e5f0636605cdc2ea92d6180d1dc334057a518f904b02ff632f4042deffeccdfb61b00ec8b292baf6d2c7089d5fbc8aba2136e8ea8906778542aef33d81db1c0aa2add237a4d3ac2e26ee633cdadce21f6860a60ae5c94b40852c01bfcdb729f2867ab423eec80890c2b7815dfe7cb241b91af93c4679851f6bb530a48a080e11104511c3483366d6faa385c506bac30e265512cceff403fe7fd9652c1aa558cbe184f66c0f9f845299785ce90c574edef3aa8747810e488af14594b685047ce9b73847c364db0edf6cc2b38458f4e579825d21c6018a8aff3c3950993afdc023903f49529b583e1f34ca46bda6e8781253a68aae7159f5909561463b24c3a100a8e85f6e3be01e027527790be7493a699039a2b4245955125d129397a594dacf318f1d2475a3bbc2ab420367f18f2d232c84cc4138d97c150f43b5a8c2eca64e9f08b6912c78904b0e0d6b0c413900097354ea6b8a8cd89e5119878f02178879f3931e53fb7503d1cd811f49cb8abb760c3413a0270eeaa32f6fe0dfc7244a81f5eaca77d7dd2a3ea040bc8696a9c4af47168d460c6d769a4dfc2569cbcaf3a04133712d9f79b56504947d54c2019eb53d9532fc3288c8d0612ddd76aaa632b6fdeeec341bf51b5ecbd0841afefc5dfaa54a4acc3ffc82b27e04c11e77f77f058b5a4b64efd496e2652c3a9140078dd381b22b55cb0be5a5f911ae1c09ca1d2e806270aa260712059211d3f57b46e22a4a914172735e4460991b0748e8dc052133e18de79bf26dcf63c3976107a899a7ba91f1d752645f84d233eb69e37654e28e1f401caf41216873d52083d47251a1b652cfea16aa4d0c62699a96e18fcd620d4c45835a6197bb5a0f85f871bd4a35d281e12c156e04ed0ed53add94b39cef18b989156da4992484d1c5447e80ba496999354a29a18a5a21fa677ef8993bd3520fe517d5dca33db91708e98dfeee8ef7ce2089974b64fd1e81febf566a6397ddb6c15459e141689b7044501a38c5b7794882a8120f14443b0ebb12698f816206f1b8717c796f8743ae68a544df7ca6eb7d2edfc8ade83c24d789c9623dfb7d3c267b10d7c89064e07d320975245faafda664073e489e2aa554ac78137aa14185eafa1cad526bbca5d62ec4e1d0a87d713a5e8278242c88ff8aa7f6fe7677afd9cc0a2b01041fc425cc2b9d55d761ea396bd9db6b0c20b1c1efe199a688d0de470a7cc9051112c93ee04c86c96a18efee48cc40b0bf10533c967732e652a6f203b76c7b4d01bb9cc40e9940935b7342c493a14f8798c29fd1de48e564b482c72d41abb4b332cf65a4ae7339b402c29ae95c993e54acd08b6aa47b92850022dba07024096009a95d1baf5a309440c94f76ccdb89742d23ae80ad4adacc01fe24289818e04c3cb68a7463f58c1184995dbcc467bedb7579c7a68fed8b233658067ba0ad83a2c6648e7aeda59db83a5e401118b0bb280c09f2d246354f13f9873e45eebf3308a00fddc0eac630dc884f49aa70d5bbe51e16ca802e06ee7500af74f12f32a488c90c0f33cb8d4061ebe86ea122e6c92e09e735743f1177bd19d0ae1f87c04afbb3c1fdb7d9da022c410d0e64574472716da858f33e4823919ab4c34cc37aac64d38eef6f5a3bbeda97fd7440eec31a0e64d35c2a9b9c6d2397f4e8cbc450b343233e09eb75bd6ccc3ab660b9ced5cc0badd7deae705b9a5d06323bf743bbe82213f98090df7161562a26a1fe4d03077a756cee6ba18717bed155dc94b018f1b912e33d227cea12c0a5038a00afd16d7db9a578186a08cbcbf1d63ce704e94fb7189493245a190d1d0092511602a453598a726d8bd4555c90b2113f9ccbf9f93e249e6a92eee9962885fdb721a81c15e0a5c014018b9862511400794272a86a28acd91a167a34c54d2e908779232cc28d5dccb20f0148cccedb36d678ab525e8c4aea0e9f97a8d11dc5a284ecc8bdd590e07947a4a799e946cc92c0367ec25882553f761fb9c7de076edb0256b489636380842f28407a75d78c65a2a99eab0771e5691a90a648e3c03fde080b0ad850b23436f8bc646ea44ccf922b25dcafd4b13425b6fb44813d89c126f3e52e827608092cc3936fa6f58e347abff6687a65d8c27415ae4241f12a4fa9d9617af38960e6efcb3226c90e34174c033a77f4ca2b6848b51fa9e8ee6b4bcabdb801aec962a68c1ddb5a8286b39437bf447862be5d86757e0dcbf3cf415a6f57b4f0d48f8962f35c37c0b9f118d150637387dad042b18be3f3ce9ca4d84b51879a690817da345251b358b3b31b395bc941da272d24f6be140503db42303190f37d6a167f7b71dde3cf7289ada9afc4951469b3e0704c982fb8ea4911faaa0ed1fa6d4ec54f481f16385a8dd54884be98449420ce676bb7839e1e2391aa85a3500ff2f520913eefb2f98c158c17e18f95722b32b1dcebb789ea8a0201735ae3c5dc1820d52f3263fc3819c0409bb3d5a5d59c7124969294d025cd880d26d7f746c2a707866fd9c657ba012ac70c97af697164a5598b40e264afb63fd23dcd3a11e6f66a5b7fe480dfe00bdac597c06021c2dddad4dc26cdc9c380a14c9028e7e0339afd672f22ec5f6faae701e71797d714775809d5e0a3e1bad4361a8b71ee7a7fcb5ed4525dd6e5e060b598a1c239a8903240b6109a6e977975e1c0827e9aafc81a2569e4e6fb62804fd0e7c5dc0873f02f3284d55f096ae7db8039baa61f0664b9210e7948aa24b28a885888e680f2e4bc6e8096ae114618c71f6f25ef2bbe3e0461db87a50ab95ce84ff73eaf62edcfa32135bfa187a8454e64b13558ff5bc350b6f2ebdeadb7cb17d17263b39484451646f2ed33e9c0a2638fa7733f6fcbc5908b5d088bb8d8de9e0be7c0c701e96fc1c31f522ff672a7b11851105d5b468c609d06b5a7e2735f13e7966d897c3a02cb458cd700b75e7cd6c5fa789100dd543759370f29225f24ac2a7ae7319bd51532f98b059f680f3b8aaa9c51a0c3aad2fb3e30625996d932bd18648fc5485024c8457cb0f1d28fabd1cf44ceda969b52e4f9ed3a9be55aeb741f5a82340200b8a64d9336116911a471704e57ca2d7c0db831b8f4e7f9552867d2c89c9d632229e61c92769765dc21111ada06d85f1df7408e9d33cda76e05db26c012849223470f916e33cf2f0d4296ffbe50b8cbc95a61fcbcdf918499ed1945a8537dca40fbbf93272f155a6d897f4deaa74e079350a63ceec09f436452260ab0ee7560194afdb91f3657d2ef3b86612c1ade423616bdd59b7ef0df31f1466cb050146ad80c94afedf1736bf54e84a5ffe8dedcefe842ffb4cee1425124df6c07562de467c4c82c6c8e7386b21eaf270f6e4a93996cdcd11e6eee57e6f07e1c13e9ab6a6ee5ea6519a64667bbcd680a9c5262d2a6da3fa895fcb066ca2469b295f36016b3db14a734c5bb397b18e252e1697504277c7dcfee74651afc17a7cbf2714a15298eb2206ef6fdf2d36b5962821dde64f8beeeee0c4070c835682c4e4922da7a2a6d4d20fdf6bca3c06f30617a6c91a8f4c1f45a0674eedcdf416ada30b0d715512f430a239a79a747abc6bcb68f085c8a2d4e3db511cbef5da51e460ca7b6ce2a94fc5d94a06c21a2dcf80736f77a647559ddc1c233a40f824f19c8977afa4becb886de68dfebba673bf523960458da28dc36f240b582e0acf57c3af05c3a81f3c6f7f82f4616dd60c02ac9086e0b85db9afbe390b87fe60cbb60e9d9505a9b2c99f1cccef17e8787d5a1ef03efc6c2e6c45263a3f316f894316c2bcef45e7140b6b8274bc580620bb6b692f6266b4079fe677c9eb151f01e587bb0b079d9d8664cfbc8b1013106182caf27c65807028159e97937f9bc9f244d65e620bd7e560b0edecaf605cf544543b6feb4c2c6b7b27493a41c96b04887a9e9bd96ff49a0e1e47f5dbf68acba856b9f83f25acf99ea6f033673b70fab94fdea981cb154b387255c6e3b8c20291ac0b3cf4fd3940717ee14081a84f527152ce72993cae10e2a7006a0d899d478f107fa665a1c3fa14ba0a421c1353dccfa7b7ea1a10e6b539803de5db95fbb1e4b94ec2d41b916505d9797a2d0bec080398073bd6b7fce41736fc6a91184dd84236bbbcf516b4dbeeb541da7682968663505a68c14d63fbb53e19b8304737fa3b58578f04d6ccb1192e894f162a3328bb225deaef803ae2d52e1d071a2f171a8ef4af5949432aeaf4122a918f2f1b8b6b31ae6101b9e711d9136cfffcec797dc83ddc2ef8e6175cdfa538003ff354aabd45acc3396097617ad39571e63d7ffc464b7c5c9ea1683a5259d68ca74414e1923696690c20088ae6211cf3bff3102800285f06509f0946ae49e60572be2db70aa1d16442f6fd14c8fdf5a54d426fba57afa6c0c2050b868eaa2ebb152b17ee003105bcbf1efc21e40151b2ee9cf5c6d21721f6b40e882f039789bbe3453efd725dc2bc439d73cbd590ced3366948ecf0d6d4b7e277bdd5a6abad882f153134b5811c30ed3def860d09dd9351506492582d9b2b1567b1c4a3831e4aa7ae0a42adda4db89ef44f7a6651e8c9a6ed3289e8348066e3b1a960e0d89a6e2833939edaeb2c800c1d2a46d18ee8796bfd9c956b60e525ceb6914932a799b5342e6f88c9c04534a1c80d5692df2f4b0f2ba0be81349e475c92a2454ca60923b3a87ee3ce2acfa754b5520db7ad177b082a63f1d4278d87b6c5c636c513248bd5f25936c2390f45640358917219ce4ae67ef99b086fa4719b3af6abca23fe6838edd80fb93934d72006c4e69fe9edb1e44749a4de5bbbc4efbf833f4d935980794ce287b384e00b2232552af1aa5fae7b5ceddfbc0534b9f874686db4040b4ad7ad8c6c25668e6891014cae333349084a140c5568fe3126066a95b1c15195032b4350f098bfcbc5e20ecab928852b57d1c85112901ec81f0a19f85222246e7add5c08aac0b8555b0f8d891e19ead292825abff496a5491f04c10232766d127ebe83084718a4f7759b0fb63eaaaab615181372118048038ca25cb05d795b5f81d239df69335e432268cf54730b982c02d218b3d2cb6123bc134c64f32e38940df4d8a9d2f4ba508c47f46c7029dfe60e5623495404612dcc53225124f02c225bca4e38cc56f093fdb3ca34371b69a6f9107b2180959e601a09684a512e1ce86e34ea5dc953bc679a83d2636154bcd1671cf1715a720286f482d01483dc2837358fbf401f39dacec2ea3e9600173a130fe5d8ea6d50051252105bdb0ff3e8c56a1903d2a6aad3027034c26fbf2869fdeeaeeb094ef8c10d574c4f0237861634dad076ae34d0ac47104c0fcbf8e6d71acc8620be0038f93db58ea8803cba2e20bb4e90d71c91668c97d0102c16a81c2b1aff8f73d208562b9ff103366bbd7c478cfa62b5d0bb4b8f9ff27b1f3202bc894978c3afba0e238a992d4b58b6f30c406b643bb2d8b3b433d640c64db2ad09b5116a170622fd20c794c85d42be60099a4e64024554d768a473bb5f937d381784f6954c7b6d7f8cc19e5d9abd99e67640b60a88927329db40ece94fed8c4372fb349be20688b6ea7bc195eb03a7822108e60b60dc1795c0ee824c958fb228179758b3176363bda24f4955aa0eafe192c56d36c43961dce4486c8b98cc5afbf033f9e151e96e5575508e1e1f83255045c1d9f980acd29c11a7ac864af3e8b1442278d0d6bf1dfe18bd89d894ddcb7025ba7dec965a41e4199fa6060f76c194973d6065ef17a62f1bc3b3aeede316f861a898b9e19d94e26ad747a39afa2b1b04f0bcaf0c22f6aafcb1486dc626251637074a2f4ef2904a4f0cc2ca379ccbb9ddb5d0886ef3825360a4df70c5f021fe1f90137821309b982a116f271ecdf99be176a70aaa9c08d88ca6f9d7bf05874006a9daf336b61bc51daefaedccad0df83265937efd2b56004bcd3950dec1ff9eb6a982a6b8f0d0fbf261ad040c5dd0f6396fe24b5138d4a1da7a3b7dfe850bf36d476c1a304838de0a001ca7ab01951b73f95a762902b3dd258ff94a329197fda497855ed0ff5839f6f038529447b0e79dbe6a2a9f36df242c76c5dc5b413b43131b1a1380b7664c627d6ce94f477c7bbc82290063dee3b268afb8461351e6f43e34f079daed93cb81f94ade5cac9aea01b191bea2caadca7e70f9dd9b2bd69e76a9eb49eae9bfc796609032be593796dd09b53fa3f2e6b035aa378552a1296ed445a541ab6a15d1570b7baeead7dc4393f6556d36585d719a5986a21acfac44d39007e6b55a416ee52e8cc29418e8bae9a92d8248116cf2b1fb48ef508341b697fe5c81b1cc20730ca5ec088d1cd0700e45fb930d7bd79578f70a86a3b9c1cf986f0feec75c1e823a317d70fd911400cba8f13834b72c059f863e6e3c00f01923f5d2ca7a367877426f0e2979b28d5ca12cbbb50f26ba042593831503625afe40e04079ef79a173e33a7f1b9c0f6a39b42243a3508aa1cf229e47a05d516dd72313d909d649cfa53d65ad2c8ad02907a96894543fa4a39ae2ac4c48f037f7865e881fbc1652c291ec7140958f1fa9c3b77bee2d1579041a0ab2d514e1818624a9fe70d1c18205bbccc6f406d395af1ca1601217cd88df338e1b11838edfd3c9dee7b9910b54671a111fb6de417cd235651265dd19d34f3290093b39141c990f404ffc78a03b7091e9429b90917415b8e6dc6cd827dbaab07ef1cfeb403c51d7d12047f6e90b5bb2d230d30a9995722fb072715c2e62b52d105a1841a1333fe0061557859de7000b14e26634484a20e77a0c2f54fdd3f7a7b822dc21416d4cc1e04d93886f8a82f88b9a0d63c30294594497d82cd867bc4051a05a5d8a4e83b8273cdffab35cb60c7e6aa461abaf5d9f15fb2db0f3105db212d273fc8794e60982456b3127c448694cb055e450a7739a17bbf712af5559380588437d7ebab7baa3225fdaf191224e0421036274d99df962520014daaf91833f6e65c85a14a4567e67b1cfb24e9531b3f6056e28435ac5824543da372b836e34c11df0f00fb992de4c4b39d023635d2f1c664dc7fe9127306d630f03ad00375b5ba5bded64e5dc0886491ec60b3a4e6f60ef1250155d55451b332085212f85096466ac08409bcced3baeb4c38b9aa6e391c5483e3470fb0a24fb5a8bfc0049aba3b220a7fea379eaa60dd13b5fb3c3f42bdb263c599a38159797f75337ac5b08690d3ec1aef8493d8fea85de6848588f8c0281f5baae105f796dcbac025fe8e82914ab6f05aa74614b68cc9f961c9b99fed1997f0b52e52729ba081faccd078669d1e845842535082a2175d4fdbfecfe7ac5041e8d9be6b9689ea0b2d8cd0af04f325020f5cc32437ef88644c3646971bc6d6e7084bf959733b5b8777a73d6a1677f5973120af055140023e60cfdf8b412602544eb6bc9450c8aabdb3a4ad8ae04daac561e868dc670523711c5209f157b864bfa7d43d1306d5c8afbb9acc3be072710b869b04a31fcd08603e600b9bbe5be2ae39af4a345c11423132bc1be4b3f1c2bed5d3fea92b859e4e4672012b565be2ef610f6aa456306cc9f0e69d5502aa3ddfbf2b93d2bce80e089f867cc25f0fb779e3fd0b6b3864fc808d4b1f830154b3118969a03e7d980ea3171ca3801303866528110907044f3750be54ac02963812d92b592c898171fe6875261d61f72626c3ce9d09bddd084119f7f3ea0cac2cc68d9c2625aef16d23750ba97141a854f0358a85b859c9d323316f77a0fecf6446e537a259ffd530c23e93fc13475596d10f8e1f85b2023d6ae7d9f1c49a53d541d1ab76290ebf6dc488a6c179be858e06fdb8d6b1cb0f48ce60bb1a3bf383aa5af90d449a2b49f0e0901450d923584752d98c42c267a0cd753d40cdb0ce034f9360836980efc10c29553ed344709e416c084287dd607427a15296bcf212ebd580af7809d3fbd1dfe6648180ba893df15e71aad984c9be8ff1a0dc3a3edd13b91e89b59bb9015b2cee41a373fb8e04fc9ddb6ba8465d2f95882d6e378c9aa29852e7a372d6c80a96fa97e5255ca227e14469036eda0934f60f67cc762532eef639a153979077ff136cb87ac29f865b94bc9fd215a3ad46cd86abf38002d0a3a4feffb3d9eddb5e1531d14c313e149589e6cabd04a9f804afc76e9704a5bdd40a2297fe13b5e4c3af8a67e447a3f66e785416963817b57e674592f2e358b9ff0fdb6905c7f832117a01654bd3562c624e47d86b20a0ee16c10d95d9f9b65f0263fdd1ef2177170220c5fb2e64695f46d11824fc29c95a4a91223b73e1167146a67cf1eecb615a96a446a16f00d7a2da20c43a57b5f87657382ec25baf649c8ad5b3a2e36177ef8e759238b9deec850beb6ffe08e8a3c5ca5fc6bcfa1910d2ad679f4e24cc4b5cc9aab3d371658304acbbd63489e0c27519492b771c6bb6109ede2f57de6fd14dc156eb25ab6b469af8e3fa94fb16203da41c8287b19ea6284bbdcce734994cb46d72cae51f0ecde89ddd9391368e3ce8dacf34b137f57112eeab5a35c77037a477aaa3136ead947d36e798686b72a8cb9bbadb9d6b7cdd7b88d683e50320b4f57c24a6178f7b76ff30d6bc96392b63219e84ff1ed55fdeb6a2e1279c615130ecef3b8a4a84ae0d6ec9f63e713f2c850c75b0862b777b6dad3e4d94372253344086d27adea6fca08c1830513105c0dc51b59ad24988fa987015333555c25d4c8bc192018e9104ccbd5be3e73542895ded920975add93621d29a0bba34d1b8c5a1b2d6d4eb15112c00213ecf8c991aadafeceb926cc4976b50405424991f828b97802eb7f3dc4f71be05a76d73c7a87397456ad2fcaea8cabe4784e739fda55ec72dc27e533918d1db68bf02f833bc2bd4ff47d37b775275d8c9693d4e4e406fd883826b39240e1667895ad3e182e89cf0ff0114bce7a5e9f615572843a8099051eb5e624b902e771d0981d9ffd5e931a290fe93ef9db15aee13c83cf008f5c6356e8ab2cabe9ddcce1e55c06a0f2e72ea69dcb8020dea4f2c41e234c10d288d9b130e9c9d921830cfea41b41ca8b9f05c32424f42a5fd70aa06b1e3579d1eca014bfa7e343851e85e661f2245d330d9237b14c4a27afcf27f05f2611a4047df851d5d9d7e85af1899e6ba78d7ddcc21040c3cf2841d3cfafd0df059358db8e298931298d061e46fd95d9b2746d924719bdd540fc349df73925741921de424b0609316e981ed0e5a37f71c125800fe87dfbda0c543ea23236c1eb7dbcce4d07cbeeae6899300f7db11b54b0aec626c458858518143333c3df2618fe55e0fe1701217740f7e6eef4c76ab8f7143b919deed4dad563b2aebba15a428dd41cf5a71ad82d7e274d9008d5078a45cf908decfcd23ac965bcf3f7e2e1ffa325ad9e571809acce2946b95377066712a634e76bfed396f7c36527f751ab2e3e6de4d9ec81761aa5eecd403ab0f1808ff6acbd04ae945ae98d838d91e92f48e06e21249efbe5a29b41461c667b0a3934612f0de866b49562b85029e639138797612cb90a2f09f4c41a2642472acb83e2ce2c171a1d947a4edbef0635545fe2675a3341bd6415163be4fe18a01edcdb65c34889fb40d7f21d2616cc0045118423f0f0b5cbaeccbb6e70cb7124ece0a807c2ae84ee53d71d637ce4f36f6a92a6532277c05da7409b557f42d1c4d6b5730898240bd7a4202e06d2c3319e9be8b8c89050b72b4fb0ddd19b358c1362d8ca5b4a2b9cdf0ee8f3c1d58a85947e65b2084fc6bbf661deb13c1808b87b8cdc7b826ab70e5ef372a9a4e4cd0fb46eb66857bd0d32ba80032700e9979c3ab0d3d41f79b4e7e8dfbcdb34ad84ee76c32e9705dbe077bd444d35000c047ab1cc0dab15104c9f84099c15fb1d2b7cc964cc3aa232341aabea751cdadfabebe91e4b56831876c94a80ad6e06f550ecfcfb3d082f025d4a5aaab903fad3c8e09252fc4f0812a3b750c3fb071c6db22e6f9ec0191afd9b69c258cfdb16996985bdc5a59c7e918cc021d7b2fb9f494d1f3807615194a79879dc450385c49b4e36f15333e6b5d59b15d81cbc6e3a29147fdd8b13e9d09af49efa9187c06dd25f0149a497d1498a74a2ca091760fe9255f3f925e20b9b5c4a90ed7b12e4b33b6a6584aec34ac492bd9028972c024459146f31f7fd63aee3a7d3deba4ad590d0537c5131dcc9933b0ce41cd493e1200bbf91b6a8fc6dbd232d7fd0722bc3a9cf62c9fdda9e5c380dba104e4ac3fe5aabf685cc19d6b991d155b12150b1599ffde9990e7eae5d8722c6274b25f38254d675f8ecc82cfe8b9dc9e55b0b85dec123a82484331889cc1db16ff4b4386739d2273d6c5e40e7d1275db2df8b6ca348f26c33c7a5dc0eb279c4223c066acc2cf576c65295976e541b295d00dd3a475bdcdf3d4d06ae920389e4203770ab8dfed477a062458fd5fbeb2c8f3788d20919036edcea795710af4d71573d7d31d78d79b17af5954e2118af35b83f8344e8462d1fffa9718e1f396ef97812a59d9f7dd2a1cb8f675c139ed3dee10eaa8f7c7eef4a6e708b53db3ec90a11fb8efe571d5a0deb51c149e408b5cf84a63d6a1ed1376ce3149b7f4aefd6229184365c36b80e173714acd5e8739f42174e5beead078fa7acec8cc980542550609161ae1b8eec3df3ac608d1f5e1a548741cb182bd953b9e33c457a4add8798f1b7c899b07021854d933d3c3bdaba4f1f8cd578b0ffae6084aaa289a7c7ba4e1e95fcd96492203fe61c81547d68a7384e7de6af1cf07adf3c9efe597fcb7413236112699c1a26a880f4b1f5b89ee9a9f70e6774779aa56514d88573c3a37fd0c5b095dc08f1345f3bbb20d9f2fe7d6241062d6294f598979da6d831792f460d597705295e40fbc532da16ad87344ee671205161cb97191702d2d0fd61a2b475fec9e2cfb7e9d2422f74412486c88d309f540e6e7ac0b7842455ffade0dfd4bc035e0e530e5272eba82867521c233b345f9e20b2ca207209151f8606341715ce258054a3b7fcc22bf13dee142c18acf729decd820a23248c99336131918273468799cbb4bd2bceb88865eb8433fa77b20448d29c81bf56f55a8cfda5b5cdb62f69565cd931b649c727e1c422fc05e03ba4c4034eed67acde1dc2ab61faa3ba6cd498ad334402635cfdc3eb45b15d806261c857c4d4ea0f4727f645017561c76ad7bdd99501135a5b7f11a2c66baabe8432ce4a1ecddbf912a32f63c0d3895df8ddeee7d32d6e3e9d812fd534a46dd4d17648857ef329bad469b70b393b4ee4d20d0bc9e44353e5158848b6a7def91c3478c05adcb0661f242fed846bef6612ab9826ee8eeffa4e320c53dd45591e88c77c0ecc8e39647e13904fc7d943a7c2815fdee0216a1b1ba079d4656ada1702761c7d0c74981e7652080c49d21b389281024c889b0e1381e7c3ddc4ab9a3144b4261205433f1bcdd943a4663d0caaa8d0909918f590f9ae34d20d6020ae1a4167a6cddf2abd565f6de23adad3cb40315598e5574ca62fe9ba82d4f36688862ab244dd42ae3c5372abd5019ecf5b54a4f61c39bf51db6d96e06c65bdd3e9189cca2cee2c427742af191acef751a3b7fe9b9068b1e81aa0109a8dcd0bec78d4aef59c989773a5f3607fca1784bb51ca3521b04869adcc9d9444cc27e6840aa2ad747a2b9639f40ec469f1d9a161e7a362f63165870c6479b4e94d275b6d2d9dfebf9b707b65fc507a852bf28ffa67c2449f05cb44e510e2a4fa35ee65e3d89f3e9b8d1aff8e9309e93f1bf2434798e36da44e23e401db6e579ae853c7b8b07602f9465a37c9f17a06853ac93c6c55ece5d02d5a5bea240a73428658f3110bebc5b5df16936018c806188174d949865cbc1e83b619dcbfda1370901eb53b09c21a7d926c2be892150521b8b8023f33d3ec968f594d60d90e7fe3f36d96ce54a064312dd2a67ebf9717e0e890a930acc38c56720e9410d60c7a1cc4ebb6b9b762395721fe6b849c05cca9dc0dc3b7db08650374ba1dd6135a00bd4491b070f8b9f4ae2ea98e8b1b6a6ae071b6d29216023738d5c7b84ab367d5453fd444f9a7b5fc6449fb3c634a74cc2f8bef9becd7ad5019a8998770232d9e329b936b65ecc20197dc9394a00ba5fe3c9bf75863fc0321b248c8e552e966eac03c1a91e4e4cc48c82b83663a74367c0be4b3f8cf34e2418ae638c9bc3c9efc3043f40e487aed2e203c5fa2a6ca98ee4a0929c70fdfacbe64fbddeec41a07b095678807e6c7caac23d921755cb4ea28c80a401f6538454935a9df132e66d94bcade457575b5d6e20d8d03f796ed0369b81b682e08c804701b9576d9a6bd3a53ef67c3e682dee13b605ea8a07c7e599712d3ba7a0dec1ae0efe8180a5491b56f7c4a19d4afc2ab572060d008a45d81f745df04f8f977a2f6eea69bc2dc570b41f3357030758647528928058ab6d5e2eb51ec58ceb8b062f43472a825bdcf2dbe318ec79f859fb5102304d33fedc2337309435de7c1c0ef8b6dd451cc33c3c522ecd2bad1734acef15c299a0b38ee52c073f8aa82b43dc25ab363678e494ee0288ef03e40cd27e2e56682cc4e35dc10b9569fa0325b45fc5774c18676297004c5b4f7107da1d706375cc7824472765c6c059873ddfd4a5d4859168600e414e999fbdc47ddda230d0a776ba405d0f62d6cdd415c32f671626566792b7414c42f9675ab7447cfa57fee8875005980e48e4a650844fa35c0434729bc0f86fbef35ee17d47179cc361883ebdba6f817c50bf6e2fc65d35be49d155e934e52e32a6b3665e16b65334b9673fe9682c8d446d5272cc0b506503a06ef7522ddb2418bc64febbf031cea26f7060869f20b8bd1a55fe681e8738d33571c054aeeed75512a9d772e3acde2f5e4578422d776a6d49bcecd86348724988bcce80df9288ba4676382268631ea4e0b0d7b5cde3b730a452dbe7717751152b7b9988fde4271d68547b1c364f342f76b41a00f9bab301bd3444b4bc85fd9f9ad5d487f7333de82de03aa2ee598467ad53729282fe7ee2565b569481b2fa5496a9de837f46d95f1ae818fa41111906d496836be1110c80ceeaa7203432a055bc0f42543245f072b38a2f83fa71cff5fe216bd33ed5a584d5dac8d1f6be228cee83aa02605a748d911fa513b1b56c53d56c490c3cd8e20c17ea9a78c2ea51ab886ca7aa55138e8efc27128c53fb460c6b916acfda2dd7c1ed58328db7d4399e445029e1b4f2352c936deb05c3a4eaed67ecc2617c1a36ba2c4afb4731f04cba7ee44e2644eef7c0c701a6856d4041b86cf1837a8d562fc19c7223193101b7726f3c18092cee365c624324b02fe325b1597fed08f364c1ffa47142549351324ddf5cb8e5ac5c084fd34163f6d0f70c6da7491f633a644eac3073f576b5d8dd507b15e885a78301a214a5873a3da6114f3a1e72be90f13db0eb76a32bc3d71797269730a45cadd2f273a31485f4267037be8a9e0a20bb63df11ae2b8991e7e6c352115b2564715b89873bc7a16a4b9ec499f9a69f8544f8296fbad3942325535ab7eee950b34486ca8fed06d135e083107645c26ea0543694a5f182bbe08823a84cb92e7b322ab9f69692093cb1d4139e183502b81c98f05c994c4a7d55fa862aced8f8ad5a0d64ccc7e46742d58bb70d4ccaf641ebb394df4129665f4f49377ddda17a9832c335c351c1c977867c9edd95c87411c643e3c4c67ebf673e7b2751baf24d58203c72be6b221255cea280dadc27fd52802a350549c69b06787dd807a3d8150802c1177593f19fc2d2f12fa6c8869478a012126c9d598493516f4bb8f35322a84169f8327effa55d1409d1219e5b6adca4e4e8ce360a1af07852bee3d63f60502f154c15516701dfcc61af4703323aba74150835a8d23ea88d7f428188217452c4b4181b3a8781904ee0b15f2fdb1ea38ac5b044fb452e7a84f179521432c8a4776107e7b5845806006dde2462c04c109658eea18a22612bfd2902e7eb4731ea794706d460d036339781a749bc746254c56ccb1e283d21e2dbb96b427c086e02a9d78f6ba7f9c034d0d4e97e28d0f520e8c2891129d71836b530226a6448fa7ff350701579a28778aa906b0386a40f372dfaaf70db3b9652528aa7a998dcce539c3f8101773036464a72bc56aa56b1fa426734e9ce7ccfd97534d1d50eb407d4831d902718c826603bfcf31c9c22a9b87059c1c02ebe3147ed8fac72e0b7c2262cd70a9961758fe902c0733afd6a1d8bab0c4c1122d1400633aeb95e06839fcd438e98bb353251ecf07f450618da68a678974494ee0a572c25636bcfcd8c837837e9ba91f7e62f7048c05f4094e5cef03e5ad05b5259c3bd398f03a17ebf579f9923cc0489d99cadd527f130525d0a39a8a3a5297b1a48dfca3f36fa3c2cfc156a2a16c53501d03eef1faefce0e5dbd71983387b4522d14cba0bcb3ad1d59f22487565b26b0c3eb47cf19aea6241bde2ec80a439e907e476a2416757ef9872c9511f37486794a39b1f909d9e26daba38a6e5cd395eb64d9d38a706b87722a567c7ce5af97b0bff2189b1425b4eb05052c0085f70c45b60ea76cef1216719092cea5a50c9fee0a7f7bb70f48ef4a99203bd8b90c5293a5f864956b33342a6826c687ad0233a50d0176bca34de42e8c13496fcf26f1b7e3597b62b650b51e8fb358fa5beab7ff7bf3823a11f1a18c0920a05ac2341f046372e02a42de2c076e47065bd15ee90705b80047325a84209248313817362a8a853226aff871705f709659551fba2de37fda99fd8e3d362aa6ab52f2c6110ef745fc1d5e5a39d381cad1d86e33148cc6b18d2039b8c4381eccc5e1db5d157726e9893c2bfe285810ac4c42d98b767845514bdc2d957aa6c2031315b4e66cd094b3feb5d4d3fcde104bce3442dcd9cc7cddd2c7f35eb9ab7fc21b78a04cbe29c93472242388e98d7c67b2e66f383e6112fbd1982e08d73c4b5fb86c3330b20dd52e686476356eb294e290688a0ea4912b5e3387110f758071c4785f9da86e15919791e2c5fd8d188ee0d72bedd68767682b8028cb5537751c8fec3a721f85fa86bb7cdab58f5e4c848161e54c44ad5365f30ac97efd996a8824f35e389cb44652979483face5222c8d3bfcb27612cfc992194a49c658cbe76e4bc70438c5094775009e90695a2ae89ad38e03841a2b23a6cb12d1211cbea5cc8559978e021eab5b6a6aada3e068489ceff2f3f944c8cd7ac8704d208af4b389e75fb9ad3e5fb2165e6dfa1d0beaf54b5b42bda4490b49eca1a4b693550894b7052f24a29d5c19364e53e2f34863e8471dbddbc5674344a3a753f4673dc34357b8fc7a4b56299154cd1efbae587c40da0a4ab421641629661852d1dee9ef69d130e466648d62c8e96bac476d601a3c77deb7542364e1102db6e1d69c45b0003ea742291849e6be9d419dae4c5d1ba90a7fb597214d1d898aee4aef2513b6b01fc9daf0122653128181028290e472e498263d5551d297ba72192c7e07065a95f10d3ec6ceb5d8fbf8f8b8c7979c68c86a630d0167eca8ef5391f5b2956896d286e84e0a3cdc33e24ff42cf65b76f0d1b28b44ae5a7eeb9b3397df36c75caca0365c83c763b413a5b7fd898aaab0b7b2af99b7856f9f6f33f81b9dfa2f81aa07805b0191949d04010773eb3c6b8f93dfe124b9614c397558807ea42d2b59feee601aa288fd6cd3386716b31d60846a0b0a5c8d756266880b299d7f8d366511c09d69a11b7a6a8447311433a94f24ea867e341fff273ce69b7b8dd919ac622c58a9d2052242353d8610d479b44b86ce7fcd2ec310948b5a128b7ae6a8a86bdb255abe8c14a7f5d92831c8483b4b922ccb9db3199da4482e197406b565742c6528b2b21e8918cbafa5b2aab4864ddd1a2fde43cc11d3b9cd0567929bebbac346f0ae89a4d87a082e1e2b8f71c02c69e430cf8d21d2de7e012b0f91bc8487d10f8b35a84f4d7d7d910c0f0ca5dcbfd982723fec4d4d4936aed0abec5482dafb4a37760494cfbec11c9bbf6d545fe175863db6e576f8f824a10beade849076a7758c5ddaf2aebbdcd7324f7ad9abb2f72a5226a4cde3e05d71e46e0e9d2bf1cdcf94ab01948e6c21634ec9bbb28fd8e0bd0fc97deab9cfe0e2e8d4b2cdc3fb16100b9b1bdfb996be3de1deec8916762c3a83b78cc76b21392c372886010c5e718cd08b90f24d56bba23b207324624f4079a1d113640d2222cb378e8e42e2bdd4cd66be544df642b7213ee7af1d711b3a4ce4545e1a6937deb15dc2ab3eeae6f9bb01b9871a91eb64dc439b5ddcbf66e5fda4c62bda327ce45a17753a82ab9017565656817d04e9a2cef9b345cf6ef5dca2f6d7793387fe4bef928d680de9b7b5f4305a9b1f4fcd40586e5c7c50ecae586f0932930073c5c5e3f4792fefd962876dd74e4a1845d426983284ce8f04ffb53d1848362d4f5961bd4a2f1b15f0ef84e1cc76f698a7e572629ada7058f54b55579c2c622acbbb1147d2368b391dc8599e19b97a01b1b8a664331dc162d0fdcbb5c9197855147c4d53455441f094b5ac088efbb0f6140529d492a36ac592e4b2ffaa71455b4a4741a9b4a47d48901e31b7d4997935dd36cb982dbfd7c8c8898e6b4c56ff745dbd12faabf69471e38c9326a8b6baea6e1eb07a4aca7353415d1515088bfc19774124b669360b4d8e2cd4e51b196d942f25585447542425f72badf0c71434e9fbc304af139509aec32969ea6f8b81ac20b1b0c0620b0450cfec859d221203d2cfbf6dc99be3c6ede3e767a7a7be7f59c82961b9dab9a135f7b6f46cc06c3f2bf20580fbe65e159963f7c2625ca07a5b4d06f29cf224c9ab6b1b1ba42ae53c5126d55b26566be4c9f70a2a0376b6c6b5e39eb03aa5d69d7fbd62253e35236c18d5dd50f65d0ccd4d83a45d46535f3efd887fedc74fe044649afba454ee0ed1400c78595917376e1b69c7750325e7afd0befde0a02f432500cc0393c8db0ff8db71224c5d818c404cfc3e6fe8885dc870040b443d71b5d9ac55af3f10d911c4dc5507b9b5bdd7bc08e96036b0c5eceb1ad516dddc0a870e5282185f0f213ccdfb999929d71096f5885a349b2c93587695598901920030af435bdc2153a2fc04a73bffabf0299e9245822c088ccb3c89d5e8fde719392fa11790c4b2b2bc4f5978803760fdb189c3658785fcaa931dd3634a348b4c4e85dcb0473a89341ccac44db06796130fb0e693d7b461eece971a922af0e0b1ed11efbc851f2edef4ed1e681c4b381c958db4cc194a467c219ac3a6dce4dfb60c5564eebdd978db206782598a2ae16021a104a4b0693cb732997e23b51792f176afa33aef2c42882d004c3d92b7c7cab4250f9055311f2ad94eb4866cfacd22942c700654e9ae0cff365ea446263d36509e9be4ccc4538fcd3b836defa53b8b9533d36667056cbfcbbadda3e478b4af11239184dac9b57f6ed7a8ed51cf4d04e6c0a755a62bf548f5b93a3f9370100d2dd3d8ab3fa743ed74fc1cf3bf5a94f0c8a8e5469873a362edcd288a839018d5f5a62cab6849946112bdc80c6c8315d44e2e1d76e293c671b34fcd78381e821b0b0f698599f3e0165ba2f491861d91c632710cc3ac17c9d67f56cc2bde6a662f8d878978c759f187a5c03ba578aab86663489581ef8a0b4059e4b4f93b988a39259c0e4c1bc2b82bf773b6694dade031f873c7db21033a59a1703e3ce835529013d7226707b86cc4c2055f3619ca6d57aaebb342f6b2e8c97333f2e8446f3332d91cef09c9ec04964ddd995f50c8f89bac33bd4f4f7f694ec585bdf932ed400d49f9f695ba75b62c2303d2317fc370a544e5899350a26d70240f9b6daa76d84a1dbbbc689aca022ae741a7e26b803fb7b036c3defde05006218563eee87375320760e71a6d9126f6fab887a0b24021f90e5f63cc6521136a9cdd2cbc3bb3fcba6c787f109f05bed08f94b95958c502eb9183ecb0f43ef49e17ef0c4b2fd12cfa8fe38df924d28d10e07feb1c4a8a216fb5a8fcc010e3628cf0f9e3534f0671f87b075d3566ddabf9209e2b5af44eef101d1dda69d46d2609e319f6b99333d4b247a540a3a858a2728e40a658714b7664b00eda9664337da639bd241e082d846ce11cdebb8f5fac174a65945a9f4f6819ede09e24c4b62d151db2d984c10d87fbecb7eb80ce9443a6e17903ace8c274dde98e54752d183e1008990baff5b926a734ccd0553412bb6b4cb4502eaa2bb3496f6bac2b4452d9df9acf726d24fba335ce694abf9315b1b1ab38ef612c5f7ae6c279fc4e1d0f31e0ed3a70a4d4c318a725e123b06848c341a255eb8f723de35313dc1d44c0020f57fbad3a3862046c36153ac9bfc1407c4d7fa06819065c57856c1383e9d0dcf09b2b6fcd61dbd1e2062fa72a11c754102099ecda6bfd59de2df459d3352319fd86aaab5df839f69236f57b765c2076b300902290f22ced719d081b405925f575918c9c08922102c5ba73e60c955841760d527b8534552a4af9720f51db8a416723ba0129b079cd97d3ba0128111a8c7b894a1cd4db91f98f17235de8723557194d40d55c64b910a779fd05a8632633fca2612a89ab98fdde7868883b824a992f7707f806823bb809b46ffbd9f5f4e1fde9d389065776d947d1bbd5569ec34ee17feeade0da4ab9e157d46e4e0691b30d35e6874687553d733b2a0bd321ef2db03dea6b40f4ec56b144e394daf2ca14125af967e0867a2f69da6d7b12bc494dab7719a99f612be15d786d28e77c55f4ec12a91ac23e4069becb7af74d605a9ac78c08fdcaa1b87aae55839484d28979a1a3626fd9e974941741be0eb18c90fb362fcf3db33b504a3ea506c2455ce4e6381d4291fdb66dedb15a2ede90f1ccc33d24fb9b70f812be7d11dc6d98a8a8796194e866ab785f38ff92dd4546602abdd12509867377fd24786dd8be634ec9c639170d296430f3dd553b0ad4b05e9ed8370757401fbda1f23ccf2b1cc43f69567f8797357102007b2541653db9a1effc36a9f465d2f81d7fec880f5e6d74208e22677c7656bb91b5c44a297b5a33894867345e33895df0d05617e88e2984c78ca3d95fca047e949f94f81b1b7aa216bb6642c6c0d05e54f856fa822d7b571711653ce44a23b268983906da5d0ca76832284a66391dd473a463ad2ff0fb0288d8d40d4e09bedab8ebafe2e1de08f0ee63512532730da155e3d8832c1ee8ca9fa42affb38bb1ddf414fe82ee17f7b8ca1a985d290371e96682636bb3ab779d2ff99e0e77376d174e3d60177ad76e9170a23f97353ca3dc592a2bc424708eb4c2fd689dfe49e40848a110522b2e410c45a868b5d123396d7003a5ef60432cd36b618de251ac46b2d32ba5969c91fd36b8883e487be5768014529fb63bcf81cffc01c0b39a0c0e29be2fb6f1696220bf8a6ed0b3cb3f5a5223cd15ff3b9f147253922edfac15cf00022aacdc223e2d7cd3c61de08a941fc3b332c46cd4abac6551beeb5165acb10e0d98256df9b576d0a5d623e29e0a51b1e61917415c4aecf6daaa0c4c99aa0c43bdbf1d92adc20c92bda7ce4dac16aee98d1abb286a5d8cc2fc3ea7bce82f77d2aa7e353b9f2daf58d92704e4ff8bebce65e9fffc750ff298f6f9a5cc37b5bcf8d0a58b85843bd99334235755ba0c08f87536b309a765effe321343b97284bd6854e82209aed385af993b374a42a9bdcb9fd95ca529be0f56c661f59ec171064fa1f1001eb0b7444d9b9f1a2e186159d508002ad56d1c8f54f241bc74c5f2a47f933026faf0a2eee13c069a0050107472b8b81a2483e4897f54a0f08619da2bf6b0ac6fea373c9709c1c6333aa7853c2fb663af9f069646f92eb18ad7cdb665090693223525ffe88ec8b7709558749403c0f217d2d6bc90aa3d2172a5b861cccdce0cbc385e6412dd3ebd3d1a2043ad7b4b082d30dec2f59ae7ee35ddf6098e9b4c01778568afeb658ef43ee75d3fef3bbc8043e243914493bb2ea7e26dd9eb57df49f01db42274272fdd4b4367222870a77ba375bba420a0220065baab95321039a7c9e562d2bb60cd34931ecef88c18210873cca1654ba2e4b3214d9f2ae11186b0c55df8de6e11334479ba6074366013fcbcfd1d176fb0e4f6dd7f2bc934fedde0120ebe2898d6c6ef621fa482e5bc02d0c79c5076c5959e4b59eb72e20092a853033fa113ee9529a6157d13a4a09a5f8a64772fa8662253fd9d200ef9d8f13113ec7210d04a96926179e87f22ba7dcd2ffd3c8c54123521341fc124df6a9c42ac642aca0145e26b0c9472a340d76b8777e05e3d83338222a84069d361cb99f163ba3dcd6328755085e3c6b24ec6204c0f3ffcc0ca7df072e4290ee26fca4706e7f2f2cd4d42edf0851a451c955fd53210aece88b8c0be76340a401593f236c5194e68153d1ac92955cb1a18dfeaf6c5155dd9be7cc4c0c4e708a1b563195d5e4b99e0e1211745f9f2e33fccb0357ed8a8fd17d5d8c9f4b1d604e56e42ff1e0cc106e12d8d3aa56ad3708350131810573dd24bbd9754a1e7d4fa7a7300715ddc1fcf9a437dd7e312e937b8ad669cd88f4995b43a98200d85ae5dd436f6d2f195215f19efacebf75236cc51d99c89bce5d255be58b9d0b70a92a6142340087a4abb2f99f1acbdb0cc55bb19519b4f65de2c768545589a3d69a98c0a6e6daf41f9acdf4b0c5444e4cab2ba01ef0fbad532102009577786a9a8dab96315b94143f3c01479a285be0789de5fb5bbbc02b43ac4d953f8605ae408be6e1fb3d8c5c27ead1a5c1b878e495ed7fac11a4ac114e035f8eed5190cd1e2ec86452d08e55ce2e0f49065b62a6171a0755210c23bd7cf781a8d81522d56f31e99a2d07fffff90aafbebb6660bfaea5cd3d4f232967127ab60aa07bbf4b537a427271e2a98ecf17414f1c1ad469c28dcd608ac5dbb377fb533a258b998d1fa82c145be73828e131c78db2ef5b335a818f5d04992e549d22fe805546ea1337061114ee2de8a3c153ccda35065bbda2c0eb760faabb128da53807ef286757abb53f312c8a068fcfb300d3fd0c138afaea8433be34ccd9954c2d219ef37215bc1e971d8130a1a52b74a6568542beb0074d2623d641e368e95fdc42f56a22eb8212edfc01879058fa9340dd5b951605fab6444f34e0210b5c3fe21b987281cdde22794110c56f976f61fd60e4dadc94a41feb172c43d013b2732b20b1732744adc5b61a1e5d5771ce9ec555617f465cfc32119ac95662118f72fa1f4c5fb9c8bb75e4f9a93558204fb45aba90cb9aff21fcdd093c9535a887a0fb30afe392c272a8023aec4d3e8f67c0ed09ea50679d2182c713660d228888ae23b345046c4462056e0353067561fef75bab5ec1bdc8403c9672c073d00c7d4723e9b06d06366cb00975edc958dc2177d22afb0308cc4203d3f8dd177ccd5ed353fda8af9edf149088a00a3e2d529ec4fc5bba4213bc6fc4cf2d99e6e2b40810b71b5ea209d013258d635c51cfe5e7cec6ee6a54c1c21f17220ed32b42197daa7a18929947b6bf996095128960142fadd0b629b9dfe837ddedb6cf997f97239ff68cb1ca00522ba5c77009bf885275af15c410d2b4b586605092dc378fd29d5846d31ebdbb0c729c0e8121085f1f63559afc9dc6d2fba7a190bcaca04bde297f89c1792096de20d32d8d464326c9550970f38e74c45161a78cd8145872d8513fd790e8406b0802d5db8946cc00f5be257ab9dc4f49af532c880fd2eb788849243e564c13106463199ad621251e9af092bcfa2471a09955f5f9a6b94991525fa5d07881b1aecbf69921fc2f34fe955a63fd88a1a4ecf3ec582c1cce974813e09520ae9d3d9d19b275a507e4b6df5fc1cab64689b3d908ae5c3da64e636fa1abefbb709b99861d77e45bc7f363f59822e6af0679e2c04fb62a2f11cfc5381f7b1dc600158d0b80ec0cba4660f9d2fe0d3cb897f7ef4ffb71620b58ebee5dc310586f7e68382de8055b5c64b15894ce0b3a7ce1f79f1bfdb1d655d3e3e66a54e1663fccc75ef7c52c4d36bc4821ee887a8daa18e3ccb1560c92bab693b9d47e2788d1f35e85b85a6eddaa423ecff1bcc00f4380d7fd5e81fbc15811e724527717ee7982064b755a8b192308f9b7b8ffa5191af4303846ce7060293b1d65872c3ec861bb60b6d2b61e83aa669c4be799c92015bbc0a7f27efc7235361d2f1b3aa2aecf70606c69b7ab9054cf0405b373fbce20720c3c7a41d168c2ffa3884368d98980a5d5c1bb653212688e15f5071ff79e36733532371999a8e2cf7097454713b5d2190f25cc54aa7511940a8402d3ca216f07ae09a19dd9dec9d46bdf1a0a600b623f3c3453849562bc911354f90d98dee6ccfa55eb77bb8536afb78bd38455f401613e06e13c9d1ed635bfc75c5177f5d831dff5b21ecd18c17e3535f99fbedc33f4b5c81ae21248e973cbab324d76f0a12da8e70042e64486f5670a463ed9b3de71a0923322681c0200b11b1fc83ad2a7aab4b36d2c0054730b33f7d89c2fd2ff97c10141a663caa635fd36869f9b7b2b5ebb5c3d254d6771edfd91351c1db2898a32d7192e25de379fe83450bbd3a2449e7473564eb3695792f6c5b348a2b37a4dd53d1bc260156d84c94627a75f22cc2d598d67ad81e08ae99d835f3d257ea828e0c0e3b13af887a2896ad91c5ada77fc9026714798d62829aa35b6299f16efc4b79ab4fdd841319388be0af796895ba9eb98d77ff5aa0b27762e7ccc1d58eaf240995b0009cbd641d666d249243c0377c6d097c0e61dbd09c67187b0f832d1f50be06bacd591502ec7347cd10c9948f7f87a53f88f7dbba9528238097ca790a6d78daeffa4c8fc36865c0cc1b04dd102720f31c6024114e243c930808346e99905119358206d1e39e91dc0926c493484293f2c08fa4a8198c1244c81cb5a9ffe3f1fa92dc83ce5028c46646a270054398d6be344ccad6153cb44cdbb5b15bb64df62adf58290db3ce13572767bf4ae9cc62237124bc9f36a45ffbb745df2366bf2cc7e9962243d4db417ad076851f624ee5d096341b4e1239d834b83543f9925b741195d46738bf2a4f2b61e25618d86f8d73810f90164b1a92547fb809aaa0dc5238a14e12d00051344dc727af5e22157b93a5c84ddd302100170fb48fdc2f298fdce947d7831be60eeb9018837ab893687b647b41594dffac6e905c5b9bfa8020e3b353270744075a33843b85cf202f840fd4923f8ac4065cd19945ff1f4dd675a3090b23b92d7967193fb04fc6143b692943dad72c25627ff35420c62c85778743df74f9b90901dedcd2c98f8baf07c0cdf63e112d21d652aa353353b0ec2e7c0a561e891ee8f05435717e2d02c05d729c9b75c2dbd77bd890268884c893946ae596a42c60174f74f5c150bc9b1099a858f24560668dd4fdf7662ae1d9490dede7833eac0140a1df06cbe32c7acf349d0452c64a23fd19b45f1ee5c039e7232fb423cb4bd783bec6ce9b2de4e2ac9f10c0fa43fca31d2ce8361a4b24624045e3c1f1f5d1fc790fd9e49c0e7563d01d425beb2cf0dc136bbce2e8094b77a72b7ac84d474f503e4091bb815a3d13d027ce85ec90ca8aa4b55cf5084dc558285864b1c4c38917110b87661baf9ff1f91313d2f33ef492055ddfa77f2a3006d8a7badca8bf98622954fedae7d70f54375ec96e1926ed705a1c18cfc1381dbbae5500cb0f4cb2895fa1d1e1d77d43022b2d40e751d1c9a6293dcc58c847633c7a0ddf215e609f75a065549a863c35318cdcf9ce314cdb53b0b05b3d751f6887d58710c682f765482ead242d966fd73059939b6661d36153c9e2869853a4ef99733f001ec528e022ad3f5bbc1ed6ea6819e2bfff835605fb3e54fcd34e1d7ab2a40efc16808427e18d81c38c1e42a58ee706ceaab311db791176e5f573d3d91a6ebba7601e1545ffa898b2f91dab3dcca3f47c5275d43ff8e8f9a862941110be590bfb2b21fc27528cd046364203110bb660534275e505bdd984158dd2bc41fef8dd403bae8ede5f553ddfcf87a9aa24ee209028afe56908229ea952fecb04b61cb0fcb1d46895e27e1f43ccebaaf8d3a6fd18ca2034d2238fa363861155432ec6b88e9bdda1fd1e06a2fbca7788566efab06b68d51413231ace6cd6f0f6fa1acb944e0866a761002007f20ff94907ace281388bfd4b735b12ab5e237bf39d93b5b99a8bd89f98d2cdf89f653b626b97b7de9c30175603b1c28b16b32d6cba80a8a0f60359355779dc59d1eb039374b8d95b55d8c79022f93b0b79f8c7f099166bcb847a8a6af86acd618e549f0c0f52867635100b344f877ef41c5bb26b2a05c4f1390e38e6d7882c869a19d7e7948a25a437bca1724b62d98e62014c74a6e7845086b3e1e7e19831f1895cb3c5da44313c08477583ba21143c38a13524d5e8a3afccfdfbde9b94c056bed3336ec6bc8ee2157012c1ca28fa50ccf257c322413643b096e9cb3b8a51e92a16ef0ef66ef03fb7b526159fda4afb49dba79bfe4ccf32b0bc6f394df85a5cf8f90a988a11c434181f40872054765da83604f2f5e23f71356bfdfde8f2afff22b11dc57421286d28ab0d195a63adc7575782d320e6a0312a9afd59b0b1427361fe3d66bba8d459d2e4759cbf3e276ef177c313184f80da94ac9d12aacb9a8c05fc1d322f8e0d68cd4ef6e472ad73ea5651d3696a460e7cac326aafa8044937cd97276b7ad716621e5ecf040479671a022f9ed5996f6b13d3e1e831f685486f08a950a7778566122ff6c0a71e77f9f19dd9e0f0ce8209a0650ff6ce14299012a9294872df0b3bca1f8ca3c6fcb8fd1102a7ad3d15a79e1be71bdda0d14d8d8dccf72d664942a5a2c558721d7f166b7c42ea208e46da85045c4b92971abb5612e164b37e6fd7a21c12417120487c11b78e15a7dd780a258fa8f2aca74a0086de4d15d6c64d3c39e33e8852687ee16d46958e7ae5dc7fbb3afbf3314b86b41587b7b853cf798b67cc31704ebb3487fd2f70c55d31de562973e4e2d8be99a1a38e371ec1a3cf6f1793592cf3cf25ff49b3a8f0f715ead2eaf0ca399e33309ba4b3f1efb2a8c4e0fbbb41a561f2838655a9051116a586244a40e05f9f4b8a8ef49efff6bf55979c7bae845c6234605000222822f089302caebe760d3688abbf79a12e22f15bd9b70871513f6dcb403264b4932917869a670b26fecc71fae2b5e7a2d1471882b73c3065ec7d886f84306d8bcbe21161823b78675cd7515a180e67fa38b014f79733717d78744360f528608c26372fe4bd8e2b036b0f86b811855014467482285364ae17ac223f1a9570212441da8c8a5cc930d17d01fe5992d3bdd32c66f1bbf7a8246c0238afd78834bbdede5653038c6090f156679a6a8468004dd32ddf686841e7d596de3ca2d80c1af78beb41d2f51d4fe38ab3e043d69e5f2761ae4465ac74831d5f091326ea9ec98d83eaf62d2ff4be3ca19dfccc4c35a6433936708a7bd0e462f3d32bd8beac013772370bad70b7d0f4e87ce258f23e2fe379c61ca03d1d8d1a81b86149671868f36abafe52806b00dfbd425a97228cd36dc5234bdf401e68f1cb81d91ffee61c938e7eb7a9bfc8670bc5c25fd5b86f526aff0ce2705fecc7a8d53a45b78930a90f6411d4af76c93d8e146fb371234133845e0ea9a6497325ec77e6cabc900fe301cea0509c62822479ae51d79129d7b68b25404946b5a3355eda85892fac6907d30723d67ad5d184a356eb04bc4f9db355711b7eb6a49650ed8e14e7ec012f9bd7d9de878ec7025474431fc5f98979c872c4c9d3093dd908cf2e28a2de16e091b324c1f0f25e0cb6723efaefcf967dc47df92b5b40111c8a6bd6a239c945b908e021adeee4face4db499a0b40ff62ca619d89a0ab3c8904380f5657b2f5e45fb13bf50f155880fc88b53913914c33a10ef248d87ed515957e4db4ad9ef83c08f4aed035c8414aa4300532ccc3716d4540be5897f8aca943dc5d96fe1e3c028706d2e1c8d4e38a313d3d7a16fc08b3bbcb43b19e00cf362690dd04eb21d6fd4fdf0755d994de9115d71cc55d2bccb9c54a41c0e5c2a7c9d99003ced9c1899b6830dadae302c4a87ab302157c9b3c038562edb5d5ff7ee262424a4ab2912985217c5c51f7b79ef089ee4199fb2a62822369bddffc9e5d36b4ca98b67f89366959916e4cafcc7908bacdf1e07f466c41f6bfdeb7a96bfef5110337640d293053a644693daa29ea6eec621492b7544db923a2b60f6b6c0822ab08b4b436047ef7e7a800c6e60fbc45cc09ffbb89ae49282bb3e36187e65f331ca12104e287c842f5d57fad77ea8c9dbd9ab4d94e27823c2a3f0ef4f7b69db1931d2c8d1c3b5bca8755ffbea78b7b431406a184e8c2eea1b4f107c3ed5ec9ff6e6ff0cb7e93fe7d2389207cfb1735605d13faa73831c346c5786cca6d4dacc8005fa97402e215f0ab0ab547c2e97ddc925f6183730b6df623de723beade12b5d4ae3985cce1d535e337cd916602eb322510a607265d353517d4f7a669c0be8fca8bc501d96f0f549eb7f4a094dc9efd281482ee8f151eba0a90ca302a9a88e6d788e8642ae9a0ac1ef5acd8b9e57aedb06f2448a5daf495fc37fa9bb606189abd2f12db3baee3bf07f9f038bda1b8bd76bdd0a5c3bd15ed825409937aa65302bb304143bc8f6ae28f9eb8df5ca79fdd5fc1ec26c4830783d5bd577d6f941b3cc67050569bf0cc38650f52248da686a92f3ac4fe2a99088973bc4383514ca4c52082369295d35f06ddf58a4b28881d6732b0226017a537df8c150fe64c4ce1631b98189306119f53f774a944a08eb90304cd3c16eac837d28b78ac0347acc4ee66a9740d407639b5a27e8106698e541015545505c72bb02c6d6b7d2a74db60ec03192e545c340d4580fd4b17f4b5a548873c61ebdc817eeb4753a9b7351de68a1b7f68c3d8c45df914be30e31dd4c8f2e7f9673229eb9090507b930f4ef9d7ee1720497b884ba5a4b92296983368ce0569957b3304b030f7c0ea869efc04c5a5445a9577aa47c1f6b6f9aa8c87f4d6ea9c616eccbdfb0f5fd1bebc4c4f72fcdd86aac9d6de5b8718afec81dc16d3f99ee27ccce8b04e173413e649fe229c19e693ac834d8302aec9f91b864e35e8990c79d2216efe15038bc7c0959b990da9d13a706edf3e4b862b198080a31690deceba3a456a5a8491d9170c393f099dd99a0ff3f49136c0d5a55c38e3bb573954db4265e48df9d038b8f64640713e45a6f2ca7cf655613fcca9d92b5303a6ed173163b62d0ec8af4173a743649cc6db5a25e1365ad96136ba4d46fa787117df6911445f69ef4eb3be483ed0ac59826e85995a6adc601081a161059dda2198b58515a2f9429cc308060825a4d613ebf4ad2463937c1fb6191edc9f4ce21bb9f605b0d4f32d5e637414bc7763d5b971f3d0e959f330294c032a2da13e7eef188e13313399f93fbf27a1dd38cfc3050917f5ece18465014052bc1f770da22a583e735d0587fb609e60b27e273f109c02f57075304731dd9dc7bad1fb9a2366465b93a814a1caa60acc0f24540e65be19f2457a9358909de44361f2d8e90dd9529f7116b39ca72be877032a472204532a9707eeca8bde1431ba6c1ca38d02afecc8c804444ef8278bb381a8a7bc61d738edc5bc9e739cb7e3c7e2d43a1e33421dff20c624fd036a96198a4c73ef093b4b35b5508b3030289ff6cea91da43b3b7884714a1538c6d8dc0fa11491cd8f9eb7d383fc7c4409da5d2991fef4acebcc432fcd9e6ece75d161f85560eb4671efb7391f7c95cdd4633c0c64bf112977c73543ee76420e9e11c96faeabad1ae77e281fdbd48d30af5ab4a6d82878f1094de18f69da6366417c8498faef2842652c5f798031c104e2e4dde8e597d84c6f9edd03568a32658dddfd1736a3c3b63de67d7dce9c5766dbf6ab7b530c70e045f39b6968db77df86909813967d2e8a85c571e80c2bda3fb173196f59e58c06dc5b19c98c88d4a038f5fcb33258bd62017dc24244fa0d132198edf21be208716ba798822b713837d0bc822b39ce196288d6fc96da68ed94a4eae598ecc50112f0e705e48d7c5e8f78c47d16c8e598c86b9e762b1469fe1a6bb628ac2066233a735ccf01300c78d67d29024914565d24e31aa15629170b412d511323531f17d42592de48836b4b21c5c12597cd1229bf98ac69a8dead56b4eba5596138f9ec0b213d26e2bd8e1ee166b11d9b3b884a703c252a4cf806671fbc37356644cbcb97e12f9c5665a1cb8d5d91d7ebc26b27b1a5f95dd1296ff71606fade0f52a598c89c7c44041d5124940f39e0da412fc2405493fd051907eec044d848dd4954df061eb39da5c65f9974e0c6ad94dc95013152fd5617d85cb73822d226717580f6bfb2f3eb5fdc7026ae2d56f60dad57798993fa73784c1eda01212a280f69175878b9cb0bf9a11bea945f2533a7202162f5b69d8006f6906d6245f69d5c4566c1c8f573fd8894fd636d9a5ab2e459e814cd70b8c47ad12ca2f44ec967219343108a9f916fb0f29436852eaa21008117f537dabe2b31d473b1bfffaa11c19ad57357e813a27e93a12c55d11d6a47563594216c0cd290999336497dd015df3abab10ea5c14a23a3a93c38396f62c97874b81f98b76b92ac349477e59766091820dfadc71de9de5aae5166fc81c3355e9066c5cc533316d909bd4363d1dfd57c280b8b04159e1fba79017c17caf516294dcf8d7c646bdd8e6dc6094877b6258faadad3755313a86d3c53f76b1ed979b50f6cf02e123d1de0f3ba004e2170df378ed443100eb9680e0a11c30ee507fc6284ae5f8ced3d98c9fb0a9b6d3433cd424a9eb2f78c192821727356dc0b238a7c8d5a90647152acf916d20f1373c09af98cd398588146ad8d74ab2e0d8c96f4ff3a8c1533436624a4d6d07811664bebdf4f00fdef5d69a50efb25baa8286686e17daefc2dd1188dc45065f7ced65e837d8def417726aa609487f21249d8edf9da3715d75b1ddc43c8e79a0c999d88d8682eba5724d8676dfa9590ae9fa134a6013fef6dff38d40e12c7f8535e7e0bb0816f331c6aafb469a1ebe34aaafb4846457180b5f1972ae1cf028ad523a399cc85948d3ccb375d9ee5af4aba0cf5e39c4b418554e398eba7b18c9e7af1350ca0b9ec83c9f854b55b34a6e7f81533492c0ee3f60cc550e4bae6da7d22aefa872f9bc7824b7168a92bb7265fe2f8433f6dfca054c379fe236440df5d52ad7e7078572bce2e373908fdaae8e13673075317cbd12cee2f382ac49e97aa882bbd2b9238ab722da24abc887f74dcba07bf729688f957d7fee1ceb6f9c979d1cad767efa862e9b7fbf9857d9283c23bbdeec713ac0229e92148770691fb5d949aa9931daff36d4e93e46664877695b97b9a44e1f873879f4a7bbf08da061ccd140476a9bbd8d0432b1d83e449c2eafdc57b8141ae599b63864e6ee985fa663e2b60dc440a1769e72cdb7480331663ac6fe05add0d7d9a55838a5c2bf1327b12c175542e6eedb91aeabbd85eeb223c2eb41bfa12ae7a15dd81673ec99b40d58fff20b825c7abc9dc49b574b2fc6ca259f593bc1cb7bdb923f868a50a8f211e8fc8aa71e3d927eeedf06874abb3817daf0f5522de0c5ebe57bcbff4a74cb7a8aeebcaed24595e4c08acba89c4be5ef3af0496d9095ef84063af99b6e28174eaa39008f30c19df921d4113a4c48f3e9466c9f7786f740a0c05af600a0211afcef26355c4a39b7811fa7c11d8c009c4d783ec3c80a856b438b5e65ddf8b2545ac1f91972cc3709e80f4e1b29eebe8e3d1986ebc837eaf3c7f201265a7b972c20b97f485328439ea4eb65236adf8dce60143944ce34a6df4e5968ae7ac78434cbe2e6975595742b09bd6106cca7357b7b7e46aabf97c7d1978f6653823dc9925164435315120f96830d1f4043fd3298aba24fea41730a85039b3633c4a345393265b0c8d2b352c6af847874db607366563d3574713f5493e3036b270925945f46197012bcac53a1f1af13f68f1dc67cb537a8266ec49803c1cf04ca52a89830dc12de316fcb90b0bcb5f0c3e69f4495c6a04af5193ca578144ff09555dffa03c46384b21f83730ded61bffcbe2ce35e24f7734a46b8c198a867ffe5052a1e7015f189db9add9b8c0f6d5cc05f0794d8b68aef89708647d0996b8039cf1ade4f4a0bbc3453188713be22664998cee71df4a0ad13ae18dc1f18c57db359ea7449eebec59da9c49a4d85a49541fa5cb6a1a5411b463cd276282afd5b9bafbeb32a0d20584438230bcce7659c65d6cbc18792f927c8ecdf1c4ea40bae9dda5bc950864f01ddc01d9780b0f2060b9d03da3a6761ee9753d9cc0456b3f4f48dea76fb9345b4bc6c95f5abb0917d2756a4c178afdf75e89a6042d3bb46402c48be948f320234861e576282a964a9cb7bf5da755c56c041d2b23fdd7afa2d6bfdc7471b01107d9292678f78675c5efb44859d0bed1ae30ee8397266c146a4d5182f6f3760778a3fb6e6d482bd0a8da5c838ae8bfd0a4ba0cec4ad2bdabe5d4be8a6725c367dcce073229a9b68f985c012c149a738089501e77e46fd2927d70cc94ff31aea7d809a3ef5e0a1bc677232a0b569439f9f73bd6ba008e345edfb9fc7c42d40a712dda7316305ff11b37bb4724d32b714a2c5dc0d9017001cdf7b9b326850b57076f7add92a086c6963bbfccf54eb7c33046dbc6b9bdec63632ce0a9522948272b1c0327ecb13c313a43ad41641ce302de273866b36e5e0566fcad7b660871a510fa2fcecdcb4cb1ed5ee10f39c856a7a1f4e8d8e68df7b149d48bc787d9727253e4d7a77cdd8b4edb9250d781d0ac39e4617d6092e4e4c0e233fc3825a8ac6812c38c7e4300690a0dd8360d4aee68f932980408bdffff9ca02f5d9805b57026a36305badc7ce61e76d580e1d67585ffae74617bfe379faa162dcf3395d7484be0cf5e2a231205ff968f8096f774fab997bca675a27f7d604a2f4f7b89cd8ee08423ebee0437a84a82c52c3a64d936b3c0a9b02128cf37070079c6c1d298815b23d073d3e54f7fec025fe6a1b1d6f80845c1ae6cc31db5b72d4a8b8f2a48e36e3d9eb94609ed4f4ef73f6b4dfc94988da8feeb734fd375d11ded7d244bd783070708c89c68f81d921662c6088be3d042b24f2d3dbcaf7bafcdfc02aad15b1a0c13c1c2dc05270ffea8f756ee025cefebb92285ad36a3c2cf2e7b1d68a2fd0c5f5c1e78952d5921fb310999b61991121cb0027ec383950667862ad94639401bfa5eb7076f56d1afc82d5b4b69f953da9198ab3ef3e91b4ad64d829a4914699f5c181401d5fccbd46b46b4ec1a70a6b2dd4ec4dfd431d2aa7ddb95479b21c0de83c42d5531356e21523d5eadd61e360019dfef12b6272bad9e6832dab25b128767fc064467d3818019d8c87e3f5d30cf9af05d382abb27d03e21fc48de475e7809a2f9151e7e37d46ba913cc26a0ccf5f042677dafdd86931f9437e2760eb6f61b3549f50dd8d27648c831fd57f8e91b1c9bc702e4077d9ef5a2574592befe44b4104de11db3a52fcce8ea470e0ec4e1c502ba552fb37dfb2c62d49dd0d73ebae40fe0498ce7adae474a2e84afc999f8d3783abd873fd2ceeb2d34a86b4860f31569ebc83171302a8c93bb4ba564e671ac0ec8755f3ce1a6676693b625aceba4a3af368df73378db6a3cadfc84a108d72278f825123388d617e042526b3cd8a81dd782b8409d7fec88feefcf580f308df81659534703c4f48ba5305b0d0d4c8b42d3f7a2eb267ccf364aee410f89b064835112cea25ffe783acbc62fc54fe46288469ca26d25a11753e7dc41944e71c053875a20d6befb2dba104d34f9301fe044c1bf738f6a640d431fd7bad8bfb70e9974d250c53470831636050cda42432a8d33b2c816b9bbea1bd4df281b5add4cb9463df78d84dc8579eb61f619152b301394319cba118e91de6a54123e3c407b07163f65958975ac542f11ebe1a4e4e6d4488e2b9a7494e24043b40e2745d8e4a2d35819206f8308d302044c82cd59d14639e27a1e83506393161b692568f588d68beaecf9ad5d33f147abad909d9cde12918dbce7b7457716dbed791e4a03f208777ac357cc980a73dbe0b8c5f238dde0fd1e98ce9e1bd7e17fe3d51bcd775fff086f66b19fc97a2f467248f382d8310c6b114c4d5erootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootpki-core-10.5.9-13.el7_6.src.rpmpki-common-javadocpki-java-tools-javadocpki-javadocpki-util-javadoc@    jpackage-utilsrpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.0.4-14.6.0-14.0-15.2-14.11.3\f\T4\R@\\U@\[@[{[l,[`O@[U@[>@[d@[@[o[@ZUZ@Z@ZZxG@Zg#Z.s@Z@Z ZYYY@Y@Y@YoIYlYGY>@Y5GY-^Y$$@Y"Y@Y#@X@XX@XO@X*XRXOX!@X&X2@WWҤ@WίW#W:WWt@W{@Wu WgWV@WV@WV@WV@WV@WV@W 10.5.9-13Dogtag Team 10.5.9-12Dogtag Team 10.5.9-11Dogtag Team 10.5.9-10Dogtag Team 10.5.9-9Dogtag Team 10.5.9-8Dogtag Team 10.5.9-7Dogtag Team 10.5.9-6Dogtag Team 10.5.9-5Dogtag Team 10.5.9-4Dogtag Team 10.5.9-3Dogtag Team 10.5.9-2Dogtag Team 10.5.9-1Dogtag Team 10.5.1-13.1Dogtag Team 10.5.1-13Dogtag Team 10.5.1-12Dogtag Team 10.5.1-11Dogtag Team 10.5.1-10Dogtag Team 10.5.1-9Dogtag Team 10.5.1-8Dogtag Team 10.5.1-7Dogtag Team 10.5.1-6Dogtag Team 10.5.1-5Dogtag Team 10.5.1-4Troy Dawson - 10.5.1-3Dogtag Team 10.5.1-2Dogtag Team 10.5.1-1Dogtag Team 10.5.0-1Dogtag Team 10.4.1-15Dogtag Team 10.4.1-14Dogtag Team 10.4.1-13Dogtag Team 10.4.1-12Dogtag Team 10.4.1-11Dogtag Team 10.4.1-10Dogtag Team 10.4.1-9Dogtag Team 10.4.1-8Dogtag Team 10.4.1-7Dogtag Team 10.4.1-6Dogtag Team 10.4.1-5Dogtag Team 10.4.1-4Dogtag Team 10.4.1-3Dogtag Team 10.4.1-2Dogtag Team 10.4.1-1Dogtag Team 10.4.0-1Dogtag Team 10.3.3-18Dogtag Team 10.3.3-17Dogtag Team 10.3.3-16Dogtag Team 10.3.3-15Dogtag Team 10.3.3-14Dogtag Team 10.3.3-13Dogtag Team 10.3.3-12Dogtag Team 10.3.3-11Dogtag Team 10.3.3-10Dogtag Team 10.3.3-9Dogtag Team 10.3.3-8Dogtag Team 10.3.3-7Dogtag Team 10.3.3-6Dogtag Team 10.3.3-5Dogtag Team 10.3.3-3Dogtag Team 10.3.3-2Dogtag Team 10.3.3-1Dogtag Team 10.3.3-0.1Dogtag Team 10.3.2-5Dogtag Team 10.3.2-4Dogtag Team 10.3.2-3Dogtag Team 10.3.2-2Dogtag Team 10.3.2-1Dogtag Team 10.3.2-0.1Dogtag Team 10.3.1-1Dogtag Team 10.3.0-1Dogtag Team 10.3.0.b1-1Dogtag Team 10.3.0.a2-2Dogtag Team 10.3.0.a2-1Dogtag Team 10.3.0.a1-2Dogtag Team 10.3.0.a1-1Dogtag Team 10.3.0-0.5Dogtag Team 10.3.0-0.4Dogtag Team 10.3.0-0.3Dogtag Team 10.3.0-0.2Dogtag Team 10.3.0-0.1Dogtag Team 10.2.7-0.3Tomas Radej - 10.2.7-0.2Dogtag Team 10.2.7-0.1Dogtag Team 10.2.6-1Dogtag Team 10.2.6-0.3Dogtag Team 10.2.6-0.2Dogtag Team 10.2.6-0.1Dogtag Team 10.2.5-1Dogtag Team 10.2.5-0.2Dogtag Team 10.2.5-0.1Dogtag Team 10.2.4-1Dogtag Team 10.2.4-0.2Dogtag Team 10.2.4-0.1Dogtag Team 10.2.3-1Dogtag Team 10.2.3-0.1Dogtag Team 10.3.0-0.1Dogtag Team 10.2.3-0.1Dogtag Team 10.2.2-1Dogtag Team 10.2.2-0.1Dogtag Team 10.2.1-1Matthew Harmsen - 10.2.1-0.4Ade Lee 10.2.1-0.3Christina Fu 10.2.1-0.2Dogtag Team 10.2.1-0.1Ade Lee 10.2.0-3Matthew Harmsen - 10.2.0-2Dogtag Team 10.2.0-1Matthew Harmsen - 10.2.0-0.10Matthew Harmsen - 10.2.0-0.9Matthew Harmsen - 10.2.0-0.8Fedora Release Engineering - 10.2.0-0.5Jack Magne - 10.2.0-0.7Matthew Harmsen - 10.2.0-0.6Matthew Harmsen - 10.2.0-0.5Ade Lee - 10.2.0-0.4Fedora Release Engineering - 10.2.0-0.3Michael Simacek - 10.2.0-0.2Dogtag Team 10.2.0-0.1Ade Lee 10.1.0-1Ade Lee 10.1.0-0.14Ade Lee 10.1.0-0.13Ade Lee 10.1.0-0.12Ade Lee 10.1.0-0.11Endi S. Dewata 10.1.0-0.10Abhishek Koneru 10.1.0.0.9Abhishek Koneru 10.1.0.0.8Endi S. Dewata 10.1.0-0.7Endi S. Dewata 10.1.0-0.6Endi S. Dewata 10.1.0-0.5Ade Lee 10.1.0-0.4Endi S. Dewata 10.1.0-0.3Matthew Harmsen 10.1.0-0.2Ade Lee 10.1.0-0.1Endi S. Dewata 10.0.2-5Ade Lee 10.0.2-4Ade Lee 10.0.2-3Endi S. Dewata 10.0.2-2Ade Lee 10.0.2-1Ade Lee 10.0.2-0.8Endi S. Dewata 10.0.2-0.7Endi S. Dewata 10.0.2-0.6Ade Lee 10.0.2-0.5Endi S. Dewata 10.0.2-0.4Endi S. Dewata 10.0.2-0.3Endi S. Dewata 10.0.2-0.2Endi S. Dewata 10.0.2-0.1Endi S. Dewata 10.0.1-9Ade Lee 10.0.1-8Endi S. Dewata 10.0.1-7Matthew Harmsen 10.0.1-6Endi S. Dewata 10.0.1-5Endi S. Dewata 10.0.1-4Matthew Harmsen 10.0.1-3Matthew Harmsen 10.0.1-2Ade Lee 10.0.1-1Matthew Harmsen 10.0.0-5Matthew Harmsen 10.0.0-4Ade Lee 10.0.0-3Ade Lee 10.0.0-2Ade Lee 10.0.0-1Matthew Harmsen 10.0.0-0.56.b3Endi S. Dewata 10.0.0-0.55.b3Endi S. Dewata 10.0.0-0.54.b3Ade Lee 10.0.0-0.53.b3Ade Lee 10.0.0-0.52.b3Endi S. Dewata 10.0.0-0.51.b2Endi S. Dewata 10.0.0-0.50.b2Matthew Harmsen 10.0.0-0.49.b2Ade Lee 10.0.0-0.48.b2Matthew Harmsen 10.0.0-0.47.b1Ade Lee 10.0.0-0.46.b1Ade Lee 10.0.0-0.45.b1Ade Lee 10.0.0-0.44.b1Ade Lee 10.0.0-0.43.b1Ade Lee 10.0.0-0.42.b1Ade Lee 10.0.0-0.41.b1Ade Lee 10.0.0-0.40.b1Endi S. Dewata 10.0.0-0.40.a2Endi S. Dewata 10.0.0-0.39.a2Ade Lee 10.0.0-0.38.a2Endi S. Dewata 10.0.0-0.37.a2Ade Lee 10.0.0-0.36.a2Endi S. Dewata 10.0.0-0.36.a1Endi S. Dewata 10.0.0-0.35.a1Endi S. Dewata 10.0.0-0.34.a1Ade Lee 10.0.0-0.33.a1Matthew Harmsen 10.0.0-0.32.a1Endi S. Dewata 10.0.0-0.31.a1Endi S. Dewata 10.0.0-0.30.a1Endi S. Dewata 10.0.0-0.29.a1Endi S. Dewata 10.0.0-0.28.a1Endi S. Dewata 10.0.0-0.27.a1Endi S. Dewata 10.0.0-0.26.a1Endi S. Dewata 10.0.0-0.25.a1Endi S. Dewata 10.0.0-0.24.a1Matthew Harmsen 10.0.0-0.23.a1Endi S. Dewata 10.0.0-0.22.a1Endi S. Dewata 10.0.0-0.21.a1Matthew Harmsen 10.0.0-0.20.a1Matthew Harmsen 10.0.0-0.19.a1Matthew Harmsen 10.0.0-0.18.a1Endi S. Dewata 10.0.0-0.17.a1Matthew Harmsen 10.0.0-0.16.a1Ade Lee 10.0.0-0.15.a1Christina Fu 10.0.0-0.14.a1Endi S. Dewata 10.0.0-0.13.a1Endi S. Dewata 10.0.0-0.12.a1Ade Lee 10.0.0-0.11.a1Matthew Harmsen 10.0.0-0.10.a1Matthew Harmsen 10.0.0-0.9.a1Jack Magne 10.0.0-0.8.a1Matthew Harmsen 10.0.0-0.7.a1Endi S. Dewata 10.0.0-0.6.a1Ade Lee 10.0.0-0.5.a1Endi S. Dewata 10.0.0-0.4.a1Matthew Harmsen 10.0.0-0.3.a1Matthew Harmsen 10.0.0-0.2.a1Nathan Kinder 10.0.0-0.1.a1Ade Lee 9.0.16-3Endi S. Dewata 9.0.16-2Matthew Harmsen 9.0.16-1Matthew Harmsen 9.0.15-1Matthew Harmsen 9.0.14-1Ade Lee 9.0.13-1Matthew Harmsen 9.0.12-1Matthew Harmsen 9.0.11-1Matthew Harmsen 9.0.10-1Matthew Harmsen 9.0.9-1Matthew Harmsen 9.0.8-2Matthew Harmsen 9.0.8-1Matthew Harmsen 9.0.7-1Matthew Harmsen 9.0.6-2Matthew Harmsen 9.0.6-1Matthew Harmsen 9.0.5-2Matthew Harmsen 9.0.5-1Matthew Harmsen 9.0.4-1Matthew Harmsen 9.0.3-2Matthew Harmsen 9.0.3-1Matthew Harmsen 9.0.2-1Matthew Harmsen 9.0.1-3Matthew Harmsen 9.0.1-2Matthew Harmsen 9.0.1-1Matthew Harmsen 9.0.0-3Matthew Harmsen 9.0.0-2Matthew Harmsen 9.0.0-1- Updated jss dependencies - ########################################################################## - # RHEL 7.6: - ########################################################################## - Bugzilla Bug #1671245 - CC: unable to verify cert before import [rhel-7.6.z] [manpage] (ascheel) - Bugzilla Bug #1671303 - CC: Upgrade scripts for audit event names (RHEL) [rhel-7.6.z] (edewata) - ########################################################################## - # RHCS 9.4: - ########################################################################## - # Bugzilla Bug #1671586 - CC: Upgrade scripts for audit event names (RHCS)- Updated jss dependencies - ########################################################################## - # RHEL 7.6: - ########################################################################## - Bugzilla Bug #1671245 - CC: unable to verify cert before import [rhel-7.6.z] (ascheel) - Bugzilla Bug #1671303 - CC: Upgrade scripts for audit event names (RHEL) [rhel-7.6.z] (edewata) - ########################################################################## - # RHCS 9.4: - ########################################################################## - # Bugzilla Bug #1671586 - CC: Upgrade scripts for audit event names (RHCS)- Updated jss dependencies - ########################################################################## - # RHEL 7.6: - ########################################################################## - Bugzilla Bug #1671245 - CC: unable to verify cert before import [rhel-7.6.z] (ascheel) - Bugzilla Bug #1671303 - CC: Upgrade scripts for audit event names (RHEL) [rhel-7.6.z] (edewata) - ########################################################################## - # RHCS 9.4: - ########################################################################## - # Bugzilla Bug #1671586 - CC: Upgrade scripts for audit event names (RHCS)- ########################################################################## - # RHEL 7.6: - ########################################################################## - Bugzilla Bug #1659939 - CC: Simplifying Web UI session timeout configuration [rhel-7.6.z] (edewata) - ########################################################################## - # RHCS 9.4: - ########################################################################## - # Bugzilla Bug #1639836 - CC: Identify RHCS version of CA, KRA, - # Added Batch Update Information to Product Version (mharmsen)- ########################################################################## - # RHEL 7.6: - ########################################################################## - Bugzilla Bug #1657922 - CC: CA/OCSP startup fail on SystemCertsVerification if enableOCSP is true [rhel-7.6.z] (jmagne) - ########################################################################## - # RHCS 9.4: - ########################################################################## - # Bugzilla Bug #1639836 - CC: Identify RHCS version of CA, KRA,- ########################################################################## - # RHEL 7.6: - ########################################################################## - Bugzilla Bug #1645262 - pkidestroy may not remove all files [rhel-7.6.z] (dmoluguw) - Bugzilla Bug #1645263 - Auth plugins leave passwords in the access log and audit log using REST [rhel-7.6.z] (dmoluguw) - Bugzilla Bug #1645429 - pkispawn fails due to name collision with /var/log/pki/ [rhel-7.6.z] (dmoluguw) - Bugzilla Bug #1655951 - CC: tools supporting CMC requests output keyID needs to be captured in file [rhel-7.6.z] (cfu) - Bugzilla Bug #1656297 - Unable to install with admin-generated keys [rhel-7.6.z] (edewata) - ########################################################################## - # RHCS 9.4: - ########################################################################## - # Bugzilla Bug #1639836 - CC: Identify RHCS version of CA, KRA,- Require "tomcatjss >= 7.2.1-8" as a build and runtime requirement - ########################################################################## - # RHEL 7.6: - ########################################################################## - Bugzilla Bug #1632116 - CC: missing audit event for CS acting as TLS client [rhel-7.6.z] (cfu) - Bugzilla Bug #1632120 - Unsupported RSA_ ciphers should be removed from the default ciphers list [rhel-7.6.z] (cfu) - Bugzilla Bug #1632615 - Permit certain SHA384 FIPS ciphers to be enabled by default for RSA and ECC . . . [rhel-7.6.z] (cfu) - Bugzilla Bug #1632616 - X500Name.directoryStringEncodingOrder overridden by CSR encoding (coverity changes) [rhel-7.6.z] (mharmsen) - Bugzilla Bug #1633104 - CMC: add config to allow non-clientAuth [rhel-7.6.z] (cfu) - Bugzilla Bug #1636490 - Installation of CA using an existing CA fails [rhel-7.6.z] (edewata) - Bugzilla Bug #1643878 - pki cli command for RHCS doesn't prompt for a password [rhel-7.6.z] (edewata) - Bugzilla Bug #1643879 - CC: Identify version/release of pki-ca, pki-kra, pki-ocsp, pki-tks, and pki-tps remotely [RHEL] [rhel-7.6.z] (cfu, jmagne) - Bugzilla Bug #1643880 - PKI subsystem process is not shutdown when there is no space on the disk to write logs [rhel-7.6.z] (edewata) - ########################################################################## - # RHCS 9.4: - ########################################################################## - # Bugzilla Bug #1639836 - CC: Identify RHCS version of CA, KRA,- Updated nuxwdog dependencies - ########################################################################## - # RHEL 7.6: - ########################################################################## - Bugzilla Bug #673182 - ECC keys not supported for signing audit logs (cfu) - Bugzilla Bug #1593805 - Better understanding of NSS_USE_DECODED_CKA_EC_POINT for ECC (cfu) - Bugzilla Bug #1601071 - Certificate generation happens with partial attributes in CMCRequest file (cfu) - Bugzilla Bug #1601569 - CC: Enable all config audit events (cfu) - Bugzilla Bug #1608375 - CMC Revocations throws exception with same reqIssuer & certissuer (cfu) - ########################################################################## - # RHCS 9.4: - ########################################################################## - # Bugzilla Bug #1557570 - Re-base pki-core from 10.5.1 to- ########################################################################## - # RHEL 7.6: - ########################################################################## - Bugzilla Bug #1596629 - ipa-replica-install --setup-kra broken on DL0 with latest version (abokovoy) - ########################################################################## - # RHCS 9.4: - ########################################################################## - # Bugzilla Bug #1557570 - Re-base pki-core from 10.5.1 to- ########################################################################## - # RHEL 7.6: - ########################################################################## - Bugzilla Bug #1548203 - pki console configurations that involves ldap passwords leave the plain text password in signed audit logs (cfu) - ########################################################################## - # RHCS 9.4: - ########################################################################## - # Bugzilla Bug #1494591 - keyGen fails when only Identity- Re-spin alpha builds- ########################################################################## - # RHEL 7.6: - ########################################################################## - Bugzilla Bug #1471935 - X500Name.directoryStringEncodingOrder overridden by CSR encoding (cfu) - Bugzilla Bug #1538311 - Using a Netmask produces an odd entry in a certificate (ftweedal) - Bugzilla Bug #1540440 - CMC: Audit Events needed for failures in SharedToken scenario's (cfu) - Bugzilla Bug #1550742 - Address ECC profile overrides (cfu) - Bugzilla Bug #1562841 - servlet profileSubmitCMCSimple throws NPE (cfu) - Bugzilla Bug #1572432 - AuditVerify failure due to line breaks (cfu) - Bugzilla Bug #1592961 - Need proper default subjectDN for CMC request authenticated through SharedToken (cfu) - ########################################################################## - # RHCS 9.4: - ########################################################################## - # Bugzilla Bug #1557570 - Re-base pki-core from 10.5.1 to- ########################################################################## - # RHEL 7.6: - ########################################################################## - Bugzilla Bug #1538311 - Using a Netmask produces an odd entry in a certifcate (ftweedal) - Bugzilla Bug #1544843 - ExternalCA: Installation failed during csr generation with ecc (rrelyea, gkapoor) - Bugzilla Bug #1557569 - Re-base pki-core from 10.5.1 to latest upstream 10.5.x (RHEL) (mharmsen) - Bugzilla Bug #1580394 - CMC CRMF requests result in InvalidKeyFormatException when signing algorithm is ECC (cfu) - Bugzilla Bug #1580527 - CVE-2018-1080 pki-core: Mishandled ACL configuration in AAclAuthz.java reverses rules that allow and deny access (ftweedal, cfu) - Bugzilla Bug #1585866 - CRMFPopClient tool - should allow option to do no key archival (cfu) - Bugzilla Bug #1588655 - Cert validation for installation with external CA cert (edewata) - ########################################################################## - # RHCS 9.4: - ########################################################################## - # Bugzilla Bug #1557570 - Re-base pki-core from 10.5.1 to- Rebuild due to build system database problem- ########################################################################## - # RHEL 7.5: - ########################################################################## - Bugzilla Bug #1553068 - Using a Netmask produces an odd entry in a certifcate [rhel-7.5.z] (ftweedal) - Bugzilla Bug #1585945 - CMC CRMF requests result in InvalidKeyFormatException when signing algorithm is ECC [rhel-7.5.z] (cfu) - Bugzilla Bug #1587826 - ExternalCA: Installation failed during csr generation with ecc [rhel-7.5.z] (rrelyea, gkapoor) - Bugzilla Bug #1588944 - Cert validation for installation with external CA cert [rhel-7.5.z] (edewata) - Bugzilla Bug #1588945 - CRMFPopClient tool - should allow option to do no key archival (cfu) - Bugzilla Bug #1589307 - CVE-2018-1080 pki-core: Mishandled ACL configuration in AAclAuthz.java reverses rules that allow and deny access [rhel-7.5.z] (ftweedal, cfu) - ########################################################################## - # RHCS 9.3: - ########################################################################## - # Bugzilla Bug #1471303 - Rebase redhat-pki, redhat-pki-theme, pki-core,- Updated "jss" build and runtime requirements (mharmsen) - ########################################################################## - # RHEL 7.5: - ########################################################################## - Bugzilla Bug #1571582 - [MAN] Missing Man pages for tools CMCRequest, CMCResponse, CMCSharedToken (typos) [rhel-7.5.z] (cfu) - Bugzilla Bug #1572548 - IPA install with external-CA is failing when FIPS mode enabled. [rhel-7.5.z] (edewata) - Bugzilla Bug #1574848 - servlet profileSubmitCMCSimple throws NPE [rhel-7.5.z] (cfu) - Bugzilla Bug #1575521 - subsystem -> subsystem SSL handshake issue with TLS_ECDHE_RSA_* on Thales HSM [rhel-7.5.z] (cfu) - Bugzilla Bug #1581134 - ECC installation for non CA subsystems needs improvement [rhel-7.5.z] (jmagne) - Bugzilla Bug #1581135 - SAN in internal SSL server certificate in pkispawn configuration step [rhel-7.5.z] (cfu) - Bugzilla Bug #1581167 - CC: CMC profiles: Some CMC profiles have wrong input class_id [rhel-7.5.z] (cfu) - Bugzilla Bug #1581382 - ECDSA Certificates Generated by Certificate System 9.3 fail NIST validation test with parameter field. [rhel-7.5.z] (cfu) - ########################################################################## - # RHCS 9.3: - ########################################################################## - # Bugzilla Bug #1471303 - Rebase redhat-pki, redhat-pki-theme, pki-core,- ########################################################################## - # RHEL 7.5: - ########################################################################## - Bugzilla Bug #1554726 - Need ECC-specific Enrollment Profiles for standard conformance [rhel-7.5.z] (cfu) - Bugzilla Bug #1557880 - [MAN] Missing Man pages for tools CMCRequest, CMCResponse, CMCSharedToken [rhel-7.5.z] (cfu) - ########################################################################## - # RHCS 9.3: - ########################################################################## - # Bugzilla Bug #1560233 - libtps does not directly depend on libz- ########################################################################## - # RHEL 7.5: - ########################################################################## - Bugzilla Bug #1550581 - CMCAuth throws org.mozilla.jss.crypto.TokenException: Unable to insert certificate into temporary database [rhel-7.5.z] (cfu) - Bugzilla Bug #1551067 - [MAN] Add --skip-configuration and --skip-installation into pkispawn man page. [rhel-7.5.z] (edewata) - Bugzilla Bug #1552241 - Make sslget aware of TLSv1_2 ciphers [rhel-7.5.z] (cheimes, mharmsen) - Bugzilla Bug #1553068 - Using a Netmask produces an odd entry in a certifcate [rhel-7.5.z] (ftweedal) - Bugzilla Bug #1554726 - Need ECC-specific Enrollment Profiles for standard conformance [rhel-7.5.z] (cfu) - Bugzilla Bug #1554727 - Permit additional FIPS ciphers to be enabled by default for RSA . . . [rhel-7.5.z] (mharmsen, cfu) - Bugzilla Bug #1557880 - [MAN] Missing Man pages for tools CMCRequest, CMCResponse, CMCSharedToken [rhel-7.5.z] (cfu) - Bugzilla Bug #1557883 - Console: Adding ACL from pki-console gives StringIndexOutOfBoundsException [rhel-7.5.z] (ftweedal) - Bugzilla Bug #1558919 - Not able to generate certificate request with ECC using pki client-cert-request [rhel-7.5.z] (akahat) - ########################################################################## - # RHCS 9.3: - ########################################################################## - # Bugzilla Bug #1560233 - libtps does not directly depend on libz- ########################################################################## - # RHEL 7.5: - ########################################################################## - # Bugzilla Bug #1473452 - Rebase pki-core to latest upstream 10.5.x release - Bugzilla Bug #1445532 - CC: Audit Events: Update the default audit event set (RHEL) (edewata) - Bugzilla Bug #1532867 - Inconsistent key ID encoding (edewata) - Bugzilla Bug #1540687 - CC: External OCSP Installation failure with HSM and FIPS (edewata) - ########################################################################## - # RHCS 9.3: - ########################################################################## - # Bugzilla Bug #1471303 - Rebase redhat-pki, redhat-pki-theme, pki-core, - # Bugzilla Bug #1404075 - CC: Audit Events: Update the default audit event- ########################################################################## - # RHEL 7.5: - ########################################################################## - # Bugzilla Bug #1473452 - Rebase pki-core to latest upstream 10.5.x release - Bugzilla Bug #1542210 - pki console configurations that involves ldap passwords leave the plain text password in debug logs (jmagne) - Bugzilla Bug #1543242 - Regression in lightweight CA key replication (ftweedal) - ########################################################################## - # RHCS 9.3: - ########################################################################## - # Bugzilla Bug #1471303 - Rebase redhat-pki, redhat-pki-theme, pki-core,- ########################################################################## - # RHEL 7.5: - ########################################################################## - # Bugzilla Bug #1473452 - Rebase pki-core to latest upstream 10.5.x release - Bugzilla Bug #1445532 - CC: Audit Events: Update the default audit event set (RHEL) (edewata) - Bugzilla Bug #1522938 - CC: Missing faillure resumption detection and audit event logging at startup (jmagne) - Bugzilla Bug #1523410 - Unable to have non "pkiuser" owned CA instance (alee) - Bugzilla Bug #1525306 - CC: missing CMC request and response record (cfu) - Bugzilla Bug #1532933 - Installing subsystems with external CMC certificates in HSM environment shows import error (edewata) - Bugzilla Bug #1535797 - ExternalCA: Failures when installed with hsm (edewata) - Bugzilla Bug #1539125 - restrict default cipher suite to those ciphers permitted in fips mode (mharmsen) - Bugzilla Bug #1539198 - Inconsistent CERT_REQUEST_PROCESSED outcomes. (edewata) - Bugzilla Bug #1540440 - CMC: Audit Events needed for failures in SharedToken scenario's (cfu) - Bugzilla Bug #1541526 - CMC: Revocation works with an unknown revRequest.issuer (cfu) - Bugzilla Bug #1541853 - ProfileService: config values with backslashes have backslashes removed (ftweedal) - ########################################################################## - # RHCS 9.3: - ########################################################################## - # Bugzilla Bug #1471303 - Rebase redhat-pki, redhat-pki-theme, pki-core, - # Bugzilla Bug #1404075 - CC: Audit Events: Update the default audit - # Bugzilla Bug #1501436 - TPS CS.cfg should be reflected with the- Updated jss, nuxwdog, and openssl dependencies - ########################################################################## - # RHEL 7.5: - ########################################################################## - Bugzilla Bug #1473452 - Rebase pki-core to latest upstream 10.5.x release (RHEL) - Bugzilla Bug #1402280 - CA Cloning: Failed to update number range in few cases (ftweedal) - Bugzilla Bug #1428021 - CC: shared token storage and retrieval mechanism (cfu) - Bugzilla Bug #1447145 - CMC: cmc.popLinkWitnessRequired=false would cause error (cfu) - Bugzilla Bug #1498957 - pkidestroy does not work with nuxwdog (alee) - Bugzilla Bug #1520277 - PR_FILE_NOT_FOUND_ERROR during pkispawn (alee) - Bugzilla Bug #1520526 - p12 admin certificate is missing when certificate is signed Externally (edewata) - Bugzilla Bug #1523410 - Unable to have non "pkiuser" owned CA instance (alee) - Bugzilla Bug #1523443 - HAProxy rejects OCSP responses due to missing nextupdate field (ftweedal) - Bugzilla Bug #1526881 - Not able to setup CA with ECC (mharmsen) - Bugzilla Bug #1532759 - pkispawn seems to be leaving our passwords in several different files after installation completes (alee) - ########################################################################## - # RHCS 9.3: - ########################################################################## - # Bugzilla Bug #1471303 - Rebase redhat-pki, redhat-pki-theme, pki-core,- ########################################################################## - # RHEL 7.5: - ########################################################################## - Bugzilla Bug #1473452 - Rebase pki-core to latest upstream 10.5.x release (RHEL) - Bugzilla Bug #1466066 - CC: Secure removal of secret data storage (jmagne) - Bugzilla Bug #1518096 - ExternalCA: Failures in ExternalCA when tried to setup with CMC signed certificates (cfu) - ########################################################################## - # RHCS 9.3: - ########################################################################## - # Bugzilla Bug #1471303 - Rebase redhat-pki, redhat-pki-theme, pki-core, and- ########################################################################## - # RHEL 7.5: - ########################################################################## - Bugzilla Bug #1473452 - Rebase pki-core to latest upstream 10.5.x release (RHEL) - ########################################################################## - # RHCS 9.3: - ########################################################################## - #Bugzilla Bug #1471303 - Rebase redhat-pki, redhat-pki-theme, pki-core, and- dogtagpki Pagure Issue #2853 - Cleanup spec file conditionals- Patch applying check-ins since 10.5.1-1- ########################################################################## - # RHEL 7.5: - ########################################################################## - Bugzilla Bug #1473452 - Rebase pki-core to latest upstream 10.5.x release (RHEL) - ########################################################################## - # RHCS 9.3: - ########################################################################## - #Bugzilla Bug #1471303 - Rebase redhat-pki, redhat-pki-theme, pki-core, and- ########################################################################## - # RHEL 7.5: - ########################################################################## - Bugzilla Bug #1473452 - Rebase pki-core to latest upstream 10.5.x release (RHEL) - ########################################################################## - # RHCS 9.3: - ########################################################################## - #Bugzilla Bug #1471303 - Rebase redhat-pki, redhat-pki-theme, pki-core, and- #Bugzilla Bug #1492560 - ipa-replica-install --setup-kra broken on DL0- #Require "jss >= 4.4.0-8" as a build and runtime requirement - ########################################################################## - # RHEL 7.4: - ########################################################################## - # Resolves: rhbz #1486870,1485833,1487509,1490241,1491332 - # Bugzilla Bug #1486870 - Lightweight CA key replication fails (regressions) - # Bugzilla Bug #1485833 - Missing CN in user signing cert would cause error - # Bugzilla Bug #1487509 - pki-server-upgrade fails when upgrading from - # Bugzilla Bug #1490241 - PKCS12: upgrade to at least AES and SHA2 (FIPS) - # Bugzilla Bug #1491332 - TPS UI: need to display tokenType and tokenOrigin - # dogtagpki Pagure Issue #2764 - py3: pki.key.archive_encrypted_data: - ########################################################################## - # RHCS 9.2: - ########################################################################## - # Resolves: rhbz #1486870,1485833,1487509,1490241,1491332,1482729,1462271 - # Bugzilla Bug #1462271 - TPS incorrectly assigns "tokenOrigin" and - # Bugzilla Bug #1482729 - TPS UI: need to display tokenType and tokenOrigin- Resolves: rhbz #1463350 - ########################################################################## - # RHEL 7.4: - ########################################################################## - # Bugzilla Bug #1463350 - Access banner validation (edewata)- # Resolves: rhbz #1472615,1472617,1469447,1463350,1469449,1472619,1464970,1469437,1469439,1469446 - ########################################################################## - # RHEL 7.4: - ########################################################################## - # Bugzilla Bug #1472615 - CC: allow CA to process pre-signed CMC non-signing - # Bugzilla Bug #1472617 - CMC: cmc.popLinkWitnessRequired=false would cause - # Bugzilla Bug #1469447 - CC: CMC: check HTTPS client authentication cert - # Bugzilla Bug #1463350 - Access banner validation (edewata) - # Bugzilla Bug #1469449 - CC: allow CA to process pre-signed CMC renewal - # Bugzilla Bug #1472619 - Platform Dependent Python Import (mharmsen) - # Bugzilla Bug #1464970 - CC: CMC: replace id-cmc-statusInfo with - # Bugzilla Bug #1469437 - subsystem-cert-update command lacks --cert option - # Bugzilla Bug #1469439 - Fix Key Changeover with HSM to support SCP03 - # Bugzilla Bug #1469446 - CC: need CMC enrollment profiles for system- # Resolves: rhbz #1469432 - ########################################################################## - # RHEL 7.4: - ########################################################################## - # Bugzilla Bug #1469432 - CMC plugin default change - # Resolves CVE-2017-7537 - # Fixes BZ #1470948- ########################################################################## - # RHEL 7.4: - ########################################################################## - Bugzilla Bug #1458043 - Key recovery on token fails with invalid public key error on KRA (alee) - Bugzilla Bug #1460764 - CC: CMC: check HTTPS client authentication cert against CMC signer (cfu) - Bugzilla Bug #1461533 - Unable to find keys in the p12 file after deleting the any of the subsystem certs from it (ftweedal)- ########################################################################## - # RHEL 7.4: - ########################################################################## - Bugzilla Bug #1393633 - Creating symmetric key (sharedSecret) using tkstool is failing when RHEL 7.3 is in FIPS mode. (jmagne) - Bugzilla Bug #1419756 - CC: allow CA to process pre-signed CMC non-signing certificate requests (cfu) - Bugzilla Bug #1419777 - CC: allow CA to process pre-signed CMC revocation non-signing cert requests (cfu) - Bugzilla Bug #1458047 - change the way aes clients refer to aes keysets (alee) - Bugzilla Bug #1458055 - dont reuse IVs in the CMC code (alee) - Bugzilla Bug #1460028 - In keywrap mode, key recovery on KRA with HSM causes KRA to crash (ftweedal)- Require "selinux-policy-targeted >= 3.13.1-159" as a runtime requirement - Require "tomcatjss >= 7.2.1-4" as a build and runtime requirement - ########################################################################## - # RHEL 7.4: - ########################################################################## - Bugzilla Bug #1400149 - pkispawn fails to create CA subsystem on FIPS enabled system (edewata) - Bugzilla Bug #1447144 - CA brought down during separate KRA instance creation (edewata) - Bugzilla Bug #1447762 - pkispawn fails occasionally with this failure ACCESS_SESSION_ESTABLISH_FAILURE (edewata) - Bugzilla Bug #1454450 - SubCA installation failure with 2 step installation in fips enabled mode (edewata) - Bugzilla Bug #1456597 - Certificate import using pki client-cert-import is asking for password when already provided (edewata) - Bugzilla Bug #1456940 - Build failure due to Pylint issues (cheimes) - Bugzilla Bug #1458043 - Key recovery using externalReg fails with java null pointer exception on KRA (alee) - Bugzilla Bug #1458379 - Upgrade script for keepAliveTimeout parameter (edewata) - Bugzilla Bug #1458429 - client-cert-import --ca-cert should import CA cert with trust bits "CT,C,C" (edewata) - ########################################################################## - # RHCS 9.2: - ########################################################################## - Bugzilla Bug #1274086 - [RFE] Add SCP03 support (RHCS) (jmagne)- ########################################################################## - # RHEL 7.4: - ########################################################################## - Bugzilla Bug #1393633 - Creating symmetric key (sharedSecret) using tkstool is failing when RHEL 7.3 is in FIPS mode. (jmagne) - Bugzilla Bug #1445519 - CA Server installation with HSM fails (jmagne) - Bugzilla Bug #1452617 - Unable to create IPA Sub CA (ftweedal) - Bugzilla Bug #1454471 - Enabling all subsystems on startup (edewata) - Bugzilla Bug #1455617 - Key recovery on token fails because key record is not marked encrypted (alee)- Bugzilla Bug #1454603 - Unable to install IPA server due to pkispawn error (mharmsen)- ########################################################################## - # RHEL 7.4: - ########################################################################## - Bugzilla Bug #1419761 - CC: allow CA to process pre-signed CMC renewal non-signing cert requests (cfu) - Bugzilla Bug #1447080 - CC: CMC: allow enrollment key signed (self-signed) CMC with identity proof (cfu) - Bugzilla Bug #1447144 - CA brought down during separate KRA instance creation (mharmsen) - Bugzilla Bug #1448903 - exception Invalid module "--ignore-banner" when defined in ~/.dogtag/pki.conf and run pki pkcs12-import --help (edewata) - Bugzilla Bug #1450143 - CA installation with HSM in FIPS mode fails (jmagne) - Bugzilla Bug #1452123 - CA CS.cfg shows default port (mharmsen) - Bugzilla Bug #1452250 - Inconsistent CERT_REQUEST_PROCESSED event in ConnectorServlet. (edewata) - Bugzilla Bug #1452340 - Ensuring common audit log correctness (edewata) - Bugzilla Bug #1452344 - Adding serial number into CERT_REQUEST_PROCESSED audit event. (edewata)- ########################################################################## - # RHEL 7.4: - ########################################################################## - Bugzilla Bug #1386303 - cannot extract generated private key from KRA when HSM is used. (alee) - Bugzilla Bug #1446364 - pkispawn returns before tomcat is ready (cheimes) - Bugzilla Bug #1447145 - CMC: cmc.popLinkWitnessRequired=false would cause error (cfu) - Bugzilla Bug #1448203 - CAInfoService: retrieve KRA-related values from the KRA (ftweedal) - Bugzilla Bug #1448204 - pkispawn of clone install fails with InvalidBERException (ftweedal) - Bugzilla Bug #1448521 - kra unable to extract symmetric keys generated on thales hsm (alee) - Updated "jss" build and runtime requirements (mharmsen) - ########################################################################## - # RHCS 9.2: - ########################################################################## - Bugzilla Bug #1274086 - [RFE] Add SCP03 support (RHCS) (jmagne)- ############################################################################ - # RHEL 7.4: - ############################################################################ - Bugzilla Bug #1303683 - dogtag should support GSSAPI based auth in conjuction with FreeIPA (ftweedal) - Bugzilla Bug #1385208 - RHCS 9.1 RC5 CA in the certificate profiles the startTime parameter is not working as expected. (jmagne) - Bugzilla Bug #1419756 - CC: allow CA to process pre-signed CMC non-signing certificate requests (cfu) - Bugzilla Bug #1426754 - PKCS12: upgrade to at least AES and SHA2 (ftweedal) - Bugzilla Bug #1445088 - profile modification cannot remove existing config parameters (ftweedal) - Bugzilla Bug #1445535 - CC: Crypto Operation (AES Encryption/Decryption) (RHEL) (alee) - Bugzilla Bug #1446874 - Missing ClientIP and ServerIP in audit log when pki CLI terminates SSL connection (edewata) - Bugzilla Bug #1446875 - Session timeout for PKI console (RHEL) (edewata) - ############################################################################ - # RHCS 9.2: - ############################################################################ - Bugzilla Bug #1404480 - CC: Crypto Operation (AES Encryption/Decryption) (RHCS) (alee)- ############################################################################ - # RHEL 7.4: - ############################################################################ - Bugzilla Bug #1282504 - Installing pki-server in container reports scriptlet failed, exit status 1 (jpazdziora) - Bugzilla Bug #1400149 - pkispawn fails to create CA subsystem on FIPS enabled system (edewata) - Bugzilla Bug #1410650 - [RFE] Add SCP03 support for sc 7 g & d cards (RHEL) (jmagne) - Bugzilla Bug #1437591 - cli authentication using expired cert throws an exception (edewata) - Bugzilla Bug #1437602 - non-CA cli looks for CA in the instance during a request (edewata) - ############################################################################ - # RHCS 9.2: - ############################################################################ - Bugzilla Bug #1274086 - [RFE] Add SCP03 support for sc 7 g & d cards (RHCS) (jmagne) - ############################################################################ - # Common Criteria - ############################################################################ - Bugzilla Bug #1404080 - CC: add audit event: various SSL/TLS failures (edewata) - Bugzilla Bug #1417307 - CC: Audit Review /Searches (edewata) - Bugzilla Bug #1419737 - CC: CMC: id-cmc-popLinkWitnessV2 feature implementation (cfu)- Require "nss >= 3.28.3" as a build and runtime requirement - Require "jss >= 4.4.0-4" as a build and runtime requirement - Require "tomcatjss >= 7.2.1-3" as a build and runtime requirement - dogtagpki Pagure Issue #2612 - Unable to clone due to pki pkcs12-cert-find failure (edewata) - ############################################################################ - Bugzilla Bug #1394309 - Rebase pki-core to 10.4.x in RHEL-7.4 - Bugzilla Bug #1394315 - Rebase redhat-pki, redhat-pki-theme, pki-core, and pki-console to 10.4.x - ############################################################################ - # RHEL 7.4: - ############################################################################ - ############################################################################ - # RHCS 9.2: - ############################################################################ - ############################################################################ - # Common Criteria - ############################################################################ - Bugzilla Bug #1419734 - CC: CMC: id-cmc-identityProofV2 feature implementation (cfu) - Bugzilla Bug #1419742 - CC: CMC: provide Proof of Possession for encryption cert requests (cfu) - Bugzilla Bug #1404080 - CC: add audit event: various SSL/TLS failures (edewata) - Bugzilla Bug #1428020 - CC: CMC feature support: provided issuance protection cert mechanism (cfu)- Require "jss >= 4.4.0-1" as a build and runtime requirement - Require "tomcatjss >= 7.2.1-1" as a build and runtime requirement - ############################################################################ - Bugzilla Bug #1394309 - Rebase pki-core to 10.4.x in RHEL-7.4 - Bugzilla Bug #1394315 - Rebase redhat-pki, redhat-pki-theme, pki-core, and pki-console to 10.4.x - ############################################################################ - # RHEL 7.4: - ############################################################################ - Bugzilla Bug #1222557 - ECDSA Certificates Generated by Certificate System 8.1 fail NIST validation test with parameter field. (cfu) - Bugzilla Bug #1238684 - Generting Symmetric key fails with key-generate when --usages verify (vakwetu) - Bugzilla Bug #1246635 - user-cert-add --serial CLI request to secure port with remote CA shows authentication failure (edewata) - Bugzilla Bug #1249400 - CA EE: Submit caUserCert request without uid does not show proper error message (vakwetu) - Bugzilla Bug #1305993 - Add profile component that copies CN to SAN (ftweedal) - Bugzilla Bug #1316653 - pki ca-cert-request-submit fails presumably because of missing authentication even if it should not require any (edewata) - Bugzilla Bug #1325071 - add options to enable/disable cert or crl publishing. (vakwetu) - Bugzilla Bug #1330800 - Failed to start pki-tomcatd Service ("ipa-cacert-manage renew" failed?) (edewata) - Bugzilla Bug #1368410 - Misleading Logging for HSM (edewata) - Bugzilla Bug #1372052 - Unable to search certificate requests using the latest request ID (edewata) - Bugzilla Bug #1375347 - Typo in comment line of UserPwdDirAuthentication.java (edewata) - Bugzilla Bug #1376226 - IPA replica-prepare failed with error "Profile caIPAserviceCert Not Found" (ftweedal) - Bugzilla Bug #1376488 - pkispawn fails as it is not able to find openssl as a dependency package (mharmsen) - Bugzilla Bug #1378275 - two-step externally-signed CA installation fails due to missing AuthorityID (ftweedal) - Bugzilla Bug #1378277 - Spurious host authority entries created (ftweedal) - Bugzilla Bug #1378527 - Miscellaneous Minor Changes (edewata) - Bugzilla Bug #1381084 - KRA installation failed against externally-signed CA with partial certificate chain (edewata) - Bugzilla Bug #1382066 - Problems with FIPS mode (edewata) - Bugzilla Bug #1386371 - Remove xenroll.dll from pki-core (mharmsen) - Bugzilla Bug #1386424 - Fix packaging duplicates of classes in multiple jar files (edewata) - Bugzilla Bug #1391737 - Changes to target.agent.approve.list parameter is not reflected in the TPS Web UI (RHEL 7) (edewata) - Bugzilla Bug #1392068 - [RFE] add express archivals and retrievals from KRA (vakwetu) - Bugzilla Bug #1395817 - Unable to install subordinate CA with HSM in FIPS mode (edewata) - Bugzilla Bug #1397200 - pkispawn does not change default ecc key size from nistp256 when nistp384 is specified in spawn config (jmagne) - Bugzilla Bug #1399862 - Dogtag 10.3.9 Man Pages (edewata) - Bugzilla Bug #1404881 - TPS throws "err=6" when attempting to format and enroll G&D Cards (jmagne) - Bugzilla Bug #1405654 - Token memory not wiped after key deletion (RHEL) (jmagne) - Bugzilla Bug #1409946 - Request ID undefined for CA signing certificate (vakwetu) - Bugzilla Bug #1409949 - CA Certificate Issuance Date displayed on CA website incorrect (vakwetu) - Bugzilla Bug #1410650 - [RFE] Add SCP03 support (RHEL) (jmagne) - Bugzilla Bug #1411428 - Unable to create a CA clone in FIPS (edewata) - Bugzilla Bug #1412211 - Unable to set up KRA in FIPS (edewata) - Bugzilla Bug #1412681 - update to 7.3 IPA with otpd bugfixes, tomcat will not finish start, hangs (ftweedal) - Bugzilla Bug #1413132 - pki-tomcat for 10+ minutes before generating cert (edewata) - Bugzilla Bug #1413136 - Problem with default AJP hostname in IPv6 environment. (edewata) - ############################################################################ - # RHCS 9.2: - ############################################################################ - Bugzilla Bug #1248553 - TPS Enrollment always goes to "ca1 (cfu) - Bugzilla Bug #1274086 - [RFE] Add SCP03 support (RHCS) (jmagne) - Bugzilla Bug #1274096 - [BUG] Add ability to disallow TPS to enroll a single user on multiple tokens. (jmagne) - Bugzilla Bug #1379379 - Unable to read an encrypted email using renewed tokens (jmagne) - Bugzilla Bug #1379749 - Automatic recovery of encryption cert is not working when a token is physically damaged and a temporary token is issued (jmagne) - Bugzilla Bug #1381375 - Cert/Key recovery is successful when the cert serial number and key id on the ldap user mismatches (cfu) - Bugzilla Bug #1381635 - Token format with external reg fails when op.format.externalRegAddToToken.revokeCert=true (cfu) - Bugzilla Bug #1382762 - PIN_RESET policy is not giving expected results when set on a token (jmagne) - Bugzilla Bug #1386257 - Changes to target.agent.approve.list parameter is not reflected in the TPS Web UI (RHCS 9) (edewata) - Bugzilla Bug #1391207 - Automatic recovery of encryption cert - CA and TPS tokendb shows different certificate status (cfu) - Bugzilla Bug #1395479 - TPS throws "err=6" when attempting to format and enroll G&D Cards (RHCS) (jmagne) - Bugzilla Bug #1404900 - Dogtag 10.3.9 logging properties (edewata) - Bugzilla Bug #1405655 - Token memory not wiped after key deletion (RHCS) (jmagne) - ############################################################################- ## RHEL 7.3.z Batch Update 4 - Bugzilla Bug #1429492 - Add profile component that copies CN to SAN (ftweedal)- ## RHCS 9.1.z Batch Update 3 - Bugzilla Bug #1391207 - Automatic recovery of encryption cert - CA and TPS tokendb shows different certificate status (cfu) - ## RHEL 7.3.z Batch Update 3 - Bugzilla Bug #1417063 - ECDSA Certificates Generated by Certificate System 8.1 fail NIST validation test with parameter field. (cfu) - Bugzilla Bug #1417064 - Unable to search certificate requests using the latest request ID (edewata) - Bugzilla Bug #1417065 - CA Certificate Issuance Date displayed on CA website incorrect (alee) - Bugzilla Bug #1417066 - update to 7.3 IPA with otpd bugfixes, tomcat will not finish start, hangs (ftweedal) - Bugzilla Bug #1417067 - pki-tomcat for 10+ minutes before generating cert (edewata) - Bugzilla Bug #1417190 - Problem with default AJP hostname in IPv6 environment. (edewata)- Separate original patches into RHEL and RHCS portions - ## RHEL 7.3.z Batch Update 2 - Bugzilla Bug #1404176 - logging properties and man pages (edewata) - Bugzilla Bug #1405328 - TPS throws "err=6" when attempting to format and enroll G&D Cards (jmagne) - ## RHCS 9.1.z Batch Update 2 - Bugzilla Bug #1395479 - TPS throws "err=6" when attempting to format and enroll G&D Cards (jmagne) - Bugzilla Bug #1404900 - RHCS logging properties (edewata)- ## RHEL 7.3.z Batch Update 2 - Bugzilla Bug #1404173 - user-cert-add --serial CLI request to secure port with remote CA shows authentication failure (edewata) - Bugzilla Bug #1404175 - pki ca-cert-request-submit fails presumably because of missing authentication even if it should not require any (edewata) - Bugzilla Bug #1404178 - Changes to target.agent.approve.list parameter is not reflected in the TPS Web UI [pki-base] (edewata) - Bugzilla Bug #1404172 - Unable to install subordinate CA with HSM in FIPS mode (edewata) - Bugzilla Bug #1403689 - pkispawn does not change default ecc key size from nistp256 when nistp384 is specified in spawn config (jmagne) - Bugzilla Bug #1404176 - logging properties and man pages (edewata) - ## RHCS 9.1.z Batch Update 2 - Bugzilla Bug #1386257 - Changes to target.agent.approve.list parameter is not reflected in the TPS Web UI [pki-tps] (edewata) - Bugzilla Bug #1391207 - Automatic recovery of encryption cert - CA and TPS tokendb shows different certificate status (cfu) - Bugzilla Bug #1395479 - TPS throws "err=6" when attempting to format and enroll G&D Cards (jmagne)- Marked the following RHCS 9.1.z bug: Bugzilla Bug #1382862 - TPS token enrollment fails to setupSecureChannel when TPS and TKS security db is on fips mode. (jmagne) as a duplicate of RHEL 7.3.z bug: Bugzilla Bug #1389757 - Problems with FIPS mode (edewata) and moved the patch from the RHCS 9.1.z bug to the RHEL 7.3.z bug.- ## RHEL 7.3.z Batch Update 1 - Bugzilla Bug #1389757 - Problems with FIPS mode (edewata) (added KRA key recovery via CLI in FIPS mode) - ## RHCS 9.1.z Batch Update 1 - Reverted patches associated with Bugzilla Bug #1386257 - Changes to target.agent.approve.list parameter is not reflected in the TPS Web UI (edewata)- ## RHEL 7.3.z Batch Update 1 - Bugzilla Bug #1390318 - CA EE: Submit caUserCert request without uid does not show proper error message (alee) - Bugzilla Bug #1390319 - Failed to start pki-tomcatd Service ("ipa-cacert-manage renew" failed?) (edewata) - Bugzilla Bug #1390320 - pkispawn fails as it is not able to find openssl as a dependency package (mharmsen) - Bugzilla Bug #1390321 - two-step externally-signed CA installation fails due to missing AuthorityID (ftweedal) - Bugzilla Bug #1390322 - Spurious host authority entries created (ftweedal) - Bugzilla Bug #1390324 - KRA installation failed against externally-signed CA with partial certificate chain (edewata) - Bugzilla Bug #1389757 - Problems with FIPS mode (edewata) - Bugzilla Bug #1390311 - Fix packaging duplicates of classes in multiple jar files (edewata) - Bugzilla Bug #1390325 - Typo in comment line of UserPwdDirAuthentication.java (edewata) - ## RHCS 9.1.z Batch Update 1 - Bugzilla Bug #1248553 - TPS Enrollment always goes to "ca1" (cfu) - Bugzilla Bug #1274096 - [BUG] Add ability to disallow TPS to enroll a single user on multiple tokens. (jmagne) - Bugzilla Bug #1379379 - Unable to read an encrypted email using renewed tokens (jmagne) - Bugzilla Bug #1379749 - Automatic recovery of encryption cert is not working when a token is physically damaged and a temporary token is issued (jmagne) - Bugzilla Bug #1381375 - Cert/Key recovery is successful when the cert serial number and key id on the ldap user mismatches - Bugzilla Bug #1381635 - Token format with external reg fails when op.format.externalRegAddToToken.revokeCert=true (cfu) - Bugzilla Bug #1382762 - PIN_RESET policy is not giving expected results when set on a token (jmagne) - Bugzilla Bug #1382862 - TPS token enrollment fails to setupSecureChannel when TPS and TKS security db is on fips mode. (jmagne) - Bugzilla Bug #1386257 - Changes to target.agent.approve.list parameter is not reflected in the TPS Web UI (edewata)- PKI TRAC Ticket #1527 - TPS Enrollment always goes to "ca1" (cfu) - PKI TRAC Ticket #1664 - [BUG] Add ability to disallow TPS to enroll a single user on multiple tokens. (jmagne) - PKI TRAC Ticket #2478 - pkispawn fails as it is not able to find openssl as a dependency package (mharmsen) - PKI TRAC Ticket #2483 - Unable to read an encrypted email using renewed tokens (jmagne) - PKI TRAC Ticket #2496 - Cert/Key recovery is successful when the cert serial number and key id on the ldap user mismatches (cfu) - PKI TRAC Ticket #2505 - Fix packaging duplicates of classes in multiple jar files (edewata)- Revert Patch: PKI TRAC Ticket #2449 - Unable to create system certificates in different tokens (edewata) - Resolves: rhbz #1374054 - ipa-replica-install fails setting up certificate - Restores: rhbz #1319557 - pkispawn KRA instance is failing server - Removes from Errata: rhbz #1372041 - Unable to create system certificates in different tokens- PKI TRAC Ticket #1638 - Lightweight CAs: revoke certificate on CA deletion (ftweedal) - PKI TRAC Ticket #2436 - Dogtag 10.3.6: Miscellaneous Enhancements (edewata) - PKI TRAC Ticket #2443 - Prevent deletion of host CA's keys if LWCA entry deleted (ftweedal) - PKI TRAC Ticket #2444 - Authority entry without entryUSN is skipped even if USN plugin enabled (ftweedal) - PKI TRAC Ticket #2446 - pkispawn: make subject_dn defaults unique per instance name (for shared HSM) (cfu) - PKI TRAC Ticket #2447 - CertRequestInfo has incorrect URLs (vakwetu) - PKI TRAC Ticket #2449 - Unable to create system certificates in different tokens (edewata)- PKI TRAC Ticket #1578 - Authentication Instance Id PinDirEnrollment with authType value as SslclientAuth is not working (jmagne) - PKI TRAC TIcket #2414 - pki pkcs12-cert-del shows a successfully deleted message when a wrong nickname is provided (gkapoor) - PKI TRAC Ticket #2423 - pki_ca_signing_token when not specified does not fallback to pki_token_name value (edewata) - PKI TRAC Ticket #2436 - Dogtag 10.3.6: Miscellaneous Enhancements (akasurde) - ticket remains open - PKI TRAC Ticket #2439 - Outdated deployment descriptors in upgraded server(edewata)- PKI TRAC Ticket #690 - [MAN] pki-tools man pages (mharmsen) - CMCEnroll - PKI TRAC Ticket #833 - pki user-mod fullName="" gives an error message "PKIException: LDAP error (21): error result" (edewata) - PKI TRAC Ticket #2431 - Errors noticed during ipa server upgrade. (cheimes, edewata, mharmsen) - PKI TRAC Ticket #2432 - Kra-selftest behavior is not as expected (edewata) - PKI TRAC Ticket #2436 - Dogtag 10.3.6: Miscellaneous Enhancements (edewata, mharmsen) - PKI TRAC Ticket #2437 - TPS UI: while adding certs for users from TPSUI pem format with/without header works while pkcs7 with header is not allowed (edewata) - PKI TRAC Ticket #2440 - Optional CA signing CSR for migration (edewata)- Bugzilla Bug #1366465 - Errata TPS upgrade test fails- PKI TRAC Ticket #978 - TPS connector man page: add revocation routing info (cfu) - PKI TRAC Ticket #1285 - [MAN] Apply 'generateCRMFRequest() removed from Firefox' workarounds to appropriate 'pki' man page (jmagne) - PKI TRAC Ticket #2246 - [MAN] Man Page: AuditVerify (cfu) - PKI TRAC Ticket #2381 - Throws exception while providing invalid module. (edewata) - PKI TRAC Ticket #2383 - CLI :: pki client-cert-request --extractable should accept only boolean value (edewata) - PKI TRAC Ticket #2389 - Installation: subsystem certs could have notAfter beyond CA signing cert in case of external or existing CA (cfu) - PKI TRAC Ticket #2399 - Dogtag 10.3.5: Miscellaneous Enhancements (akasurde, alee, cheimes, edewata, jmagne, mharmsen) - PKI TRAC Ticket #2401 - pkispawn calls dnsdomainname even if it does not rpm-require hostname (mharmsen) - PKI TRAC Ticket #2402 - Conflict in file ownership in pki-base and pki-server (cheimes) - PKI TRAC Ticket #2403 - Deployment problem with RESTEasy 3.0.17 (edewata) - PKI TRAC Ticket #2406 - Make starting CRL Number configurable (jmagne) - PKI TRAC Ticket #2412 - pki client-cert-import --trust option does not apply the specified trust bits (alee) - PKI TRAC Ticket #2418 - [TPS] Some template substitution didn't happen during installation (alee) - PKI TRAC Ticket #2420 - CA subsystem OSCP responder fails when LWCAs are not used (ftweedal) - PKI TRAC Ticket #2421 - Incorrect SELinux contexts Installation/Configuration (edewata) - PKI TRAC Ticket #2424 - ipa-ca-install fails on replica when IPA server is converted from CA-less to CA-full (edewata) - PKI TRAC Ticket #2428 - broken request links for CA's system certs in agent request viewing (cfu) - PKI TRAC Ticket #2430 - CA Agent certificate list is not sorted by serial number in migration case (jmagne) - PKI TRAC Ticket #2431 - Errors noticed during ipa server upgrade. (mharmsen) - PKI TRAC Ticket #2433 - Lightweight CA GET /chain returns bogus PEM data (ftweedal)- PKI TRAC Ticket #691 - [MAN] pki-server man pages (mharmsen) - PKI TRAC Ticket #1114 - [MAN] Generting Symmetric key fails with key-generate when --usages verify is passed (jmagne) - PKI TRAC Ticket #1306 - [RFE] Add granularity to token termination in TPS (cfu) - PKI TRAC Ticket #1308 - [RFE] Provide ability to perform off-card key generation for non-encryption token keys (cfu) - PKI TRAC Ticket #1405 - [MAN] Add additional HSM details to 'pki_default.cfg' & 'pkispawn' man pages (mharmsen) - PKI TRAC Ticket #1607 - [MAN] man pkispawn has inadequate description for shared vs non shared tomcat instance installation (mharmsen) - PKI TRAC Ticket #1664 - [BUG] Add ability to disallow TPS to enroll a single user on multiple tokens. (jmagne) - PKI TRAC Ticket #1711 - CLI :: pki-server ca-cert-request-find throws IOError (edewata, ftweedal) - PKI TRAC Ticket #2285 - freeipa fails to start correctly after pki-core update on upgraded system (ftweedal) - PKI TRAC Ticket #2311 - When pki_token_name=Internal, consider normalizing it to "internal" (mharmsen) - PKI TRAC Ticket #2349 - Separated TPS does not automatically receive shared secret from remote TKS (jmagne) - PKI TRAC Ticket #2364 - CLI :: pki-server ca-cert-request-show throws attribute error (ftweedal) - PKI TRAC Ticket #2368 - pki-server subsystem subcommands throws error with --help option (edewata) - PKI TRAC Ticket #2374 - KRA cloning overwrites CA signing certificate trust flags (edewata) - PKI TRAC Ticket #2380 - Pki-server instance commands throws exception while specifying invalid parameters. (edewata) - PKI TRAC Ticket #2384 - CA installation with HSM prompts for HSM password during silent installation (edewata) - PKI TRAC Ticket #2385 - Upgraded CA lacks ca.sslserver.certreq in CS.cfg (ftweedal) - PKI TRAC Ticket #2387 - Add config for default OCSP URI if none given (ftweedal) - PKI TRAC Ticket #2388 - CA creation responds 500 if certificate issuance fails (ftweedal) - PKI TRAC Ticket #2389 - Installation: subsystem certs could have notAfter beyond CA signing cert in case of external or existing CA (cfu) - PKI TRAC Ticket #2390 - Dogtag 10.3.4: Miscellaneous Enhancements (akasurde, edewata)- PKI TRAC Ticket #2373 - Fedora 25: RestEasy 3.0.6 ==> 3.0.17 breaks pki-core (ftweedal)- Updated release number to 10.3.3-1- Updated version number to 10.3.3-0.1- Provided cleaner runtime dependency separation- Updated tomcatjss version dependencies- Updated 'java', 'java-headless', and 'java-devel' dependencies to 1:1.8.0.- Updated tomcat version dependencies- Updated version number to 10.3.2-1- Updated version number to 10.3.2-0.1- Updated version number to 10.3.1-1 (to allow upgrade from 10.3.0.b1)- Updated version number to 10.3.0-1- Build for F24 beta- PKI TRAC Ticket #2255 - PKCS #12 backup does not contain trust attributes.- Updated build for F24 alpha- PKI TRAC Ticket #1625 - Allow multiple ACLs of same name (union of rules) [ftweedal] - PKI TRAC Ticket #2237 - Add CRL dist points extension to OIDMap unconditionally [edewata] - PKI TRAC Ticket #1803 - Removed unnecessary URL encoding for admin cert request. [edewata] - PKI TRAC Ticket #1742 - Added support for cloning 3rd-party CA certificates. [edewata] - PKI TRAC Ticket #1482 - Added TPS token filter dialog. [edewata] - PKI TRAC Ticket #1808 - Fixed illegal token state transition via TEMP_LOST. [edewata]- Build for F24 alpha- PKI Trac Ticket #1399 - Move java components out of pki-base- PKI TRAC Ticket #1850 - Rename DRMTool --> KRATool- PKI TRAC Ticket #1714 - mod_revocator and mod_nss dependency for tps should be removed- PKI TRAC Ticket #1623 - Runtime dependency on python-nss is missing- Updated version number to 10.3.0-0.1- Added dep on tomcat-servlet-3.1-api [Fedora 23 and later] or dep on tomcat-servlet-3.0-api [Fedora 22 and later] to pki-tools - Updated dep on tomcatjss [Fedora 23 and later]- Updated dep on policycoreutils-python-utils [Fedora 23 and later]- Updated version number to 10.2.7-0.1- Update release number for release build- Remove setup directory and remaining Perl dependencies- Remove ExcludeArch directive- Updated version number to 10.2.6-0.1- Update release number for release build- Resolves rhbz #1230970 - Errata TPS tests for rpm verification failed- Updated version number to 10.2.5-0.1- Update release number for release build- Updated nuxwdog and tomcatjss requirements (alee)- Updated version number to 10.2.4-0.1 - Added nuxwdog systemd files- Update release number for release build- Reverted version number back to 10.2.3-0.1 - Added support for Tomcat 8.- Updated version number to 10.3.0-0.1- Updated version number to 10.2.3-0.1- Update release number for release build- Updated version number to 10.2.2-0.1 - Moved web application deployment locations. - Updated Resteasy and Jackson dependencies. - Added missing python-lxml build dependency.- Update release number for release build- PKI TRAC Ticket #1187 - mod_perl should be removed from requirements for 10.2 - PKI TRAC Ticket #1205 - Outdated selinux-policy dependency. - Removed perl(XML::LibXML), perl-Crypt-SSLeay, and perl-Mozilla-LDAP runtime dependencies- Change resteasy dependencies for F22+- Ticket 1198 Bugzilla 1158410 add TLS range support to server.xml by default and upgrade (cfu) - PKI Trac Ticket #1211 - New release overwrites old source tarball (mharmsen) - up the release number to 0.2- Updated version number to 10.2.1-0.1. - Added CLIs to simplify generating user certificates - Added enhancements to KRA Python API - Added a man page for pki ca-profile commands. - Added python api docs- Disable pylint dependency for RHEL builds - Added jakarta-commons-httpclient requirements - Added tomcat version for RHEL build - Added resteasy-base-client for RHEL build- PKI TRAC Ticket #1130 - Add RHEL/CentOS conditionals to spec- Update release number for release build- PKI TRAC Ticket #1017 - Rename pki-tps-tomcat to pki-tps- Merged jmagne@redhat.com's spec file changes from the stand-alone 'pki-tps-client' package needed to build/run the native 'tpsclient' command line utility into this 'pki-core' spec file under the 'tps' package. - Original tps libararies must be built to support this native utility. - Modifies tps package from 'noarch' into 'architecture-specific' package- PKI TRAC Ticket #1127 - Remove 'pki-ra', 'pki-setup', and 'pki-silent' packages . . .- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild- Respin to include the applet files with the rpm install. No change to spec file needed.- Bugzilla Bug #1120045 - pki-core: Switch to java-headless (build)requires -- drop dependency on java-atk-wrapper - Removed 'java-atk-wrapper' dependency from 'pki-server'- PKI TRAC Ticket #832 - Remove legacy 'systemctl' files . . .- Update rawhide build- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild- Use Requires: java-headless rebuild (#1067528)- Added option to build without server packages. - Replaced Jettison with Jackson. - Added python-nss build requirement - Bugzilla Bug #1057959 - pkispawn requires policycoreutils-python - TRAC Ticket #840 - pkispawn requires policycoreutils-python - Updated requirements for resteasy - Added template files for archive, retrieve and generate key requests to the client package.- Trac Ticket 788 - Clean up spec files - Update release number for release build - Updated requirements for resteasy- Change release number for beta build- Updated requirements for tomcat- Removed additional /var/run, /var/lock references.- Removed delivery of /var/lock and /var/run directories for fedora 20.- Moved Tomcat-based TPS into pki-core.- Listed new packages required during build, due to issues reported by pylint. - Packages added: python-requests, python-ldap, libselinux-python, policycoreutils-python- Added pylint scan to the build process.- Added man pages for upgrade tools.- Cleaned up the code to install man pages.- Reorganized deployment tools.- Bugzilla Bug 973224 - resteasy-base must be split into subpackages to simplify dependencies- Updated dependencies to Java 1.7.- TRAC Ticket 606 - add restart / start at boot info to pkispawn man page - TRAC Ticket 610 - Document limitation in using GUI install - TRAC Ticket 629 - Package ownership of '/usr/share/pki/etc/' directory- Change release number for 10.1 development- Fixed incorrect JNI_JAR_DIR.- TRAC Ticket 605 Junit internal function used in TestRunner, breaks F19 build- TRAC Ticket 604 Added fallback methods for pkispawn tests- Added default pki.conf in /usr/share/pki/etc - Create upgrade tracker on install and remove it on uninstall- Change release number for official release.- Added %pretrans script for f19 - Added java-atk-wrapper dependency- Added pki-server-upgrade script and pki.server module. - Call upgrade scripts in %post for pki-base and pki-server.- Added dependency on commons-io.- Add /var/log/pki and /var/lib/pki directories- Run pki-upgrade on post server installation.- Added dependency on python-lxml.- Added pki-upgrade script.- Updated version number to 10.0.2-0.1.- Renamed base/deploy to base/server. - Moved pki.conf into pki-base. - Removed redundant pki/server folder declaration.- Removed jython dependency- Added minimum python-requests version.- Bugzilla Bug #919476 - pkispawn crashes due to dangling symlink to jss4.jar- Added dependency on python-requests. - Reorganized Python module packaging.- Added dependency on python-ldap.- TRAC Ticket #517 - Clean up theme dependencies - TRAC Ticket #518 - Remove UI dependencies from pkispawn . . .- Removed runtime dependency on 'pki-server-theme' to resolve Bugzilla Bug #916134 - unresolved dependency in pki-server: pki-server-theme- TRAC Ticket 214 - Missing error description for duplicate user - TRAC Ticket 213 - Add nonces for cert revocation - TRAC Ticket 367 - pkidestroy does not remove connector - TRAC Ticket #430 - License for 3rd party code - Bugzilla Bug 839426 - [RFE] ECC CRL support for OCSP - Fix spec file to allow f17 to work with latest tomcatjss - TRAC Ticket 466 - Increase root CA validity to 20 years - TRAC Ticket 469 - Fix tomcatjss issue in spec files - TRAC Ticket 468 - pkispawn throws exception - TRAC Ticket 191 - Mapping HTTP Exceptions to HTTP error codes - TRAC Ticket 271 - Dogtag 10: Fix 'status' command in 'pkidaemon' . . . - TRAC Ticket 437 - Make admin cert p12 file location configurable - TRAC Ticket 393 - pkispawn fails when selinux is disabled - Punctuation and formatting changes in man pages - Revert to using default config file for pkidestroy - Hardcode setting of resteasy-lib for instance - TRAC Ticket 436 - Interpolation for pki_subsystem - TRAC Ticket 433 - Interpolation for paths - TRAC Ticket 435 - Identical instance id and instance name - TRAC Ticket 406 - Replace file dependencies with package dependencies- TRAC Ticket #430 - License for 3rd party code- TRAC Ticket #469 - Dogtag 10: Fix tomcatjss issue in pki-core.spec and dogtag-pki.spec . . . - TRAC Ticket #468 - pkispawn throws exception- Replaced file dependencies with package dependencies- Updated man pages- Update to official release for rc1- TRAC Ticket #315 - Man pages for pkispawn/pkidestroy. - Added place-holders for 'pki.1' and 'pki_default.cfg.5' man pages.- Added system-wide configuration /etc/pki/pki.conf. - Removed redundant lines in %files.- Moved default deployment configuration to /etc/pki.- Cleaned up spec file to provide only support rhel 7+, f17+ - Added resteasy-base dependency for rhel 7 - Update cmake version- Update release to b3- Removed dependency on CA, KRA, OCSP, TKS theme packages.- Renamed pki-common-theme to pki-server-theme.- TRAC Ticket #395 - Dogtag 10: Add a Tomcat 7 runtime requirement to 'pki-server'- Update release to b2- TRAC Ticket #350 - Dogtag 10: Remove version numbers from PKI jar files . . .- Added Obsoletes for pki-selinux- Remove build of pki-selinux for f18, use system policy instead- Update required tomcatjss version - Added net-tools dependency- Update selinux-policy version to fix error from latest policy changes- Fix typo in selinux policy versions- Added build requires for correct version of selinux-policy-devel- Update release to b1- Merged pki-silent into pki-server.- Renamed "shared" folder to "server".- Added required selinux versions for new policy.- Added Provides to packages replacing obsolete packages.- Update release to a2- Modified CMake to use RPM version number- Added VERSION file- Merged pki-setup into pki-server- Added Conflicts for IPA 2.X - Added build requires for zip to work around mock problem- TRAC Ticket #312 - Dogtag 10: Automatically restart any running instances upon RPM "update" . . . - TRAC Ticket #317 - Dogtag 10: Move "pkispawn"/"pkidestroy" from /usr/bin to /usr/sbin . . .- Fixed pki-server to include everything in shared dir.- Added build dependency on redhat-rpm-config.- Merged Javadoc packages.- Added pki-tomcat.jar.- Moved webapp creation code into pkispawn.- Split pki-client.jar into pki-certsrv.jar and pki-tools.jar.- Merged pki-native-tools and pki-java-tools into pki-tools. - Modified pki-server to depend on pki-tools.- Split pki-common into pki-base and pki-server. - Merged pki-util into pki-base. - Merged pki-deploy into pki-server.- Updated release of 'tomcatjss' to rely on Tomcat 7 for Fedora 17 - Changed Dogtag 10 build-time and runtime requirements for 'pki-deploy' - Altered PKI Package Dependency Chain (top-to-bottom): pki-ca, pki-kra, pki-ocsp, pki-tks --> pki-deploy --> pki-common- Added pki-client.jar.- Merged pki-jndi-realm.jar into pki-cmscore.jar.- PKI TRAC Task #254 - Dogtag 10: Fix spec file to build successfully via mock on Fedora 17 . . .- Moved 'pki-jndi-real.jar' link from 'tomcat6' to 'tomcat' (Tomcat 7)- Updated release of 'tomcatjss' to rely on Tomcat 7 for Fedora 18- Added CLI for REST services- Integration of Tomcat 7 - Addition of centralized 'pki-tomcatd' systemd functionality to the PKI Deployment strategy - Removal of 'pki_flavor' attribute- BZ 813075 - selinux denial for file size access- Bug 745278 - [RFE] ECC encryption keys cannot be archived- Replaced candlepin-deps with resteasy- Added option to build without Javadoc- BZ 802396 - Change location of TOMCAT_LOG to match tomcat6 changes - Corrected patch selected for selinux f17 rules- Corrected 'junit' dependency check- Initial attempt at PKI deployment framework described in 'http://pki.fedoraproject.org/wiki/PKI_Instance_Deployment'.- Added support for pki-jndi-realm in tomcat6 in pki-common and pki-kra. - Ticket #69.- For 'mock' purposes, removed platform-specific logic from around the 'patch' files so that ALL 'patch' files will be included in the SRPM.- Removed dependency on OSUtil.- 'pki-selinux' - Added platform-dependent patches for SELinux component - Bugzilla Bug #739708 - Selinux fix for ephemeral ports (F16) - Bugzilla Bug #795966 - pki-selinux policy is kind of a mess (F17)- Added dependency on Apache Commons Codec.- Add '-DSYSTEMD_LIB_INSTALL_DIR' override flag to 'cmake' to address changes in fundamental path structure in Fedora 17 - 'pki-setup' - Hard-code Perl dependencies to protect against bugs such as Bugzilla Bug #772699 - Adapt perl and python fileattrs to changed file 5.10 magics - 'pki-selinux' - Bugzilla Bug #795966 - pki-selinux policy is kind of a mess- Integrated 'pki-kra' into 'pki-core' - Integrated 'pki-ocsp' into 'pki-core' - Integrated 'pki-tks' into 'pki-core' - Bugzilla Bug #788787 - added 'junit'/'junit4' build-time requirements- Updated package version number- Added resteasy-jettison-provider-2.3-RC1.jar to pki-setup- Added JUnit tests- 'pki-setup' - 'pki-symkey' - 'pki-native-tools' - 'pki-util' - Bugzilla Bug #737122 - DRM: during archiving and recovering, wrapping unwrapping keys should be done in the token (cfu) - 'pki-java-tools' - 'pki-common' - Bugzilla Bug #744797 - KRA key recovery (retrieve pkcs#12) fails after the in-place upgrade( CS 8.0->8.1) (cfu) - 'pki-selinux' - 'pki-ca' - Bugzilla Bug #746367 - Typo in the profile name. (jmagne) - Bugzilla Bug #737122 - DRM: during archiving and recovering, wrapping unwrapping keys should be done in the token (cfu) - Bugzilla Bug #749927 - Java class conflicts using Java 7 in Fedora 17 (rawhide) . . . (mharmsen) - Bugzilla Bug #749945 - Installation error reported during CA, DRM, OCSP, and TKS package installation . . . (mharmsen) - 'pki-silent'- Bugzilla Bug #734590 - Refactor JNI libraries for Fedora 16+ . . . (mharmsen) - Bugzilla Bug #699809 - Convert CS to use systemd (alee) - 'pki-setup' - Bugzilla Bug #730146 - SSL handshake picks non-FIPS ciphers in FIPS mode (cfu) - Bugzilla Bug #737192 - Need script to upgrade proxy configuration (alee) - 'pki-symkey' - Bugzilla Bug #730162 - TPS/TKS token enrollment failure in FIPS mode (hsm+NSS). (jmagne) - 'pki-native-tools' - Bugzilla Bug #730801 - Coverity issues in native-tools area (awnuk) - Bugzilla Bug #730146 - SSL handshake picks non-FIPS ciphers in FIPS mode (cfu) - 'pki-util' - Bugzilla Bug #730146 - SSL handshake picks non-FIPS ciphers in FIPS mode (cfu) - 'pki-java-tools' - 'pki-common' - Bugzilla Bug #730146 - SSL handshake picks non-FIPS ciphers in FIPS mode (cfu) - Bugzilla Bug #737218 - Incorrect request attribute name matching ignores request attributes during request parsing. (awnuk) - Bugzilla Bug #730162 - TPS/TKS token enrollment failure in FIPS mode (hsm+NSS). (jmagne) - 'pki-selinux' - Bugzilla Bug #739708 - pki-selinux lacks rules in F16 (alee) - 'pki-ca' - Bugzilla Bug #712931 - CS requires too many ports to be open in the FW (alee) - Bugzilla Bug #730146 - SSL handshake picks non-FIPS ciphers in FIPS mode (cfu) - 'pki-silent' - Bugzilla Bug #739201 - pkisilent does not take arch into account as Java packages migrated to arch-dependent directories (mharmsen)- 'pki-setup' - Bugzilla Bug #734590 - Refactor JNI libraries for Fedora 16+ . . . - 'pki-symkey' - Bugzilla Bug #734590 - Refactor JNI libraries for Fedora 16+ . . . - 'pki-native-tools' - 'pki-util' - Bugzilla Bug #734590 - Refactor JNI libraries for Fedora 16+ . . . - 'pki-java-tools' - Bugzilla Bug #734590 - Refactor JNI libraries for Fedora 16+ . . . - 'pki-common' - Bugzilla Bug #734590 - Refactor JNI libraries for Fedora 16+ . . . - 'pki-selinux' - 'pki-ca' - Bugzilla Bug #734590 - Refactor JNI libraries for Fedora 16+ . . . - Bugzilla Bug #699809 - Convert CS to use systemd (alee) - 'pki-silent' - Bugzilla Bug #734590 - Refactor JNI libraries for Fedora 16+ . . .- 'pki-setup' - Bugzilla Bug #699809 - Convert CS to use systemd (alee) - 'pki-ca' - Bugzilla Bug #699809 - Convert CS to use systemd (alee) - 'pki-common' - Bugzilla Bug #699809 - Convert CS to use systemd (alee)- 'pki-setup' - Bugzilla Bug #712931 - CS requires too many ports to be open in the FW (alee) - 'pki-symkey' - 'pki-native-tools' - Bugzilla Bug #717643 - Fopen without NULL check and other Coverity issues (awnuk) - Bugzilla Bug #730801 - Coverity issues in native-tools area (awnuk) - 'pki-util' - 'pki-java-tools' - 'pki-common' - Bugzilla Bug #700522 - pki tomcat6 instances currently running unconfined, allow server to come up when selinux disabled (alee) - Bugzilla Bug #731741 - some CS.cfg nickname parameters not updated correctly when subsystem cloned (using hsm) (alee) - Bugzilla Bug #712931 - CS requires too many ports to be open in the FW (alee) - 'pki-selinux' - Bugzilla Bug #712931 - CS requires too many ports to be open in the FW (alee) - 'pki-ca' - Bugzilla Bug #712931 - CS requires too many ports to be open in the FW (alee) - 'pki-silent'- 'pki-setup' - Bugzilla Bug #689909 - Dogtag installation under IPA takes too much time - remove the inefficient sleeps (alee) - 'pki-symkey' - 'pki-native-tools' - 'pki-util' - 'pki-java-tools' - Bugzilla Bug #724861 - DRMTool: fix duplicate "dn:" records by renumbering "cn=" (mharmsen) - 'pki-common' - Bugzilla Bug #717041 - Improve escaping of some enrollment inputs like (jmagne, awnuk) - Bugzilla Bug #689909 - Dogtag installation under IPA takes too much time - remove the inefficient sleeps (alee) - Bugzilla Bug #708075 - Clone installation does not work over NAT (alee) - Bugzilla Bug #726785 - If replication fails while setting up a clone it will wait forever (alee) - Bugzilla Bug #728332 - xml output has changed on cert requests (awnuk) - Bugzilla Bug #700505 - pki tomcat6 instances currently running unconfined (alee) - 'pki-selinux' - Bugzilla Bug #700505 - pki tomcat6 instances currently running unconfined (alee) - 'pki-ca' - Bugzilla Bug #728605 - RFE: increase default validity from 6mo to 2yrs in IPA profile (awnuk) - 'pki-silent' - Bugzilla Bug #689909 - Dogtag installation under IPA takes too much time - remove the inefficient sleeps (alee)- 'pki-setup' - 'pki-symkey' - 'pki-native-tools' - 'pki-util' - Bugzilla Bug #719007 - Key Constraint keyParameter being ignored using an ECC CA to generate ECC certs from CRMF. (jmagne) - Bugzilla Bug #716307 - rhcs80 - DER shall not include an encoding for any component value which is equal to its default value (alee) - 'pki-java-tools' - 'pki-common' - Bugzilla Bug #720510 - Console: Adding a certificate into nethsm throws Token not found error. (jmagne) - Bugzilla Bug #719007 - Key Constraint keyParameter being ignored using an ECC CA to generate ECC certs from CRMF. (jmagne) - Bugzilla Bug #716307 - rhcs80 - DER shall not include an encoding for any component value which is equal to its default value (alee) - Bugzilla Bug #722989 - Registering an agent when a subsystem is created - does not log AUTHZ_SUCCESS event. (alee) - 'pki-selinux' - 'pki-ca' - Bugzilla Bug #719113 - Add client usage flag to caIPAserviceCert (awnuk) - 'pki-silent'- Updated release of 'jss' - Updated release of 'tomcatjss' for Fedora 15 - 'pki-setup' - Bugzilla Bug #695157 - Auditverify on TPS audit log throws error. (mharmsen) - Bugzilla Bug #693815 - /var/log/tomcat6/catalina.out owned by pkiuser (jdennis) - Bugzilla Bug #694569 - parameter used by pkiremove not updated (alee) - Bugzilla Bug #669226 - Remove Legacy Build System (mharmsen) - 'pki-symkey' - Bugzilla Bug #695157 - Auditverify on TPS audit log throws error. (mharmsen) - Bugzilla Bug #669226 - Remove Legacy Build System (mharmsen) - 'pki-native-tools' - Bugzilla Bug #695157 - Auditverify on TPS audit log throws error. (mharmsen) - Bugzilla Bug #717765 - TPS configuration: logging into security domain from tps does not work with clientauth=want. (alee) - Bugzilla Bug #669226 - Remove Legacy Build System (mharmsen) - 'pki-util' - Bugzilla Bug #695157 - Auditverify on TPS audit log throws error. (mharmsen) - Bugzilla Bug #669226 - Remove Legacy Build System (mharmsen) - 'pki-java-tools' - Bugzilla Bug #695157 - Auditverify on TPS audit log throws error. (mharmsen) - Bugzilla Bug #532548 - Tool to do DRM re-key (mharmsen) - Bugzilla Bug #532548 - Tool to do DRM re-key (config file and record processing) (mharmsen) - Bugzilla Bug #532548 - Tool to do DRM re-key (tweaks) (mharmsen) - Bugzilla Bug #669226 - Remove Legacy Build System (mharmsen) - 'pki-common' - Bugzilla Bug #695157 - Auditverify on TPS audit log throws error. (mharmsen) - Bugzilla Bug #695403 - Editing signedaudit or transaction, system logs throws 'Invalid protocol' for OCSP subsystems (alee) - Bugzilla Bug #694569 - parameter used by pkiremove not updated (alee) - Bugzilla Bug #695015 - Serial No. of a revoked certificate is not populated in the CA signedAudit messages (alee) - Bugzilla Bug #694143 - CA Agent not returning specified request (awnuk) - Bugzilla Bug #695015 - Serial No. of a revoked certificate is not populated in the CA signedAudit messages (jmagne) - Bugzilla Bug #698885 - Race conditions during IPA installation (alee) - Bugzilla Bug #704792 - CC_LAB_EVAL: CA agent interface: SubjectID=$Unidentified$ fails audit evaluation (jmagne) - Bugzilla Bug #705914 - SCEP mishandles nicknames when processing subsequent SCEP requests. (awnuk) - Bugzilla Bug #661142 - Verification should fail when a revoked certificate is added. (jmagne) - Bugzilla Bug #707416 - CC_LAB_EVAL: Security Domain: missing audit msgs for modify/add (alee) - Bugzilla Bug #707416 - additional audit messages for GetCookie (alee) - Bugzilla Bug #707607 - Published certificate summary has list of non-published certificates with succeeded status (jmagne) - Bugzilla Bug #717813 - EV_AUDIT_LOG_SHUTDOWN audit log not generated for tps and ca on server shutdown (jmagne) - Bugzilla Bug #697939 - DRM signed audit log message - operation should be read instead of modify (jmagne) - Bugzilla Bug #718427 - When audit log is full, server continue to function. (alee) - Bugzilla Bug #718607 - CC_LAB_EVAL: No AUTH message is generated in CA's signedaudit log when a directory based user enrollment is performed (jmagne) - Bugzilla Bug #669226 - Remove Legacy Build System (mharmsen) - 'pki-selinux' - Bugzilla Bug #695157 - Auditverify on TPS audit log throws error. (mharmsen) - Bugzilla Bug #720503 - RA and TPS require additional SELinux permissions to run in "Enforcing" mode (alee) - Bugzilla Bug #669226 - Remove Legacy Build System (mharmsen) - 'pki-ca' - Bugzilla Bug #695157 - Auditverify on TPS audit log throws error. (mharmsen) - Bugzilla Bug #693815 - /var/log/tomcat6/catalina.out owned by pkiuser (jdennis) - Bugzilla Bug #699837 - service command is not fully backwards compatible with Dogtag pki subsystems (mharmsen) - Bugzilla Bug #649910 - Console: an auditor or agent can be added to an administrator group. (jmagne) - Bugzilla Bug #707416 - CC_LAB_EVAL: Security Domain: missing audit msgs for modify/add (alee) - Bugzilla Bug #716269 - make ra authenticated profiles non-visible on ee pages (alee) - Bugzilla Bug #718621 - CC_LAB_EVAL: PRIVATE_KEY_ARCHIVE_REQUEST occurs for a revocation invoked by EE user (awnuk) - Bugzilla Bug #669226 - Remove Legacy Build System (mharmsen) - 'pki-silent' - Bugzilla Bug #695157 - Auditverify on TPS audit log throws error. (mharmsen) - Bugzilla Bug #669226 - Remove Legacy Build System (mharmsen)- 'pki-setup' - 'pki-symkey' - 'pki-native-tools' - 'pki-util' - 'pki-java-tools' - Added 'DRMTool.cfg' configuration file to inventory - 'pki-common' - 'pki-selinux' - 'pki-ca' - 'pki-silent'- 'pki-setup' - 'pki-symkey' - 'pki-native-tools' - 'pki-util' - 'pki-java-tools' - Bugzilla Bug #532548 - Tool to do DRM re-key - 'pki-common' - 'pki-selinux' - 'pki-ca' - 'pki-silent'- 'pki-setup' - Bugzilla Bug #693815 - /var/log/tomcat6/catalina.out owned by pkiuser - Bugzilla Bug #694569 - parameter used by pkiremove not updated - 'pki-symkey' - 'pki-native-tools' - 'pki-util' - 'pki-java-tools' - 'pki-common' - Bugzilla Bug #695403 - Editing signedaudit or transaction, system logs throws 'Invalid protocol' for OCSP subsystems - Bugzilla Bug #694569 - parameter used by pkiremove not updated - Bugzilla Bug #695015 - Serial No. of a revoked certificate is not populated in the CA signedAudit messages - Bugzilla Bug #694143 - CA Agent not returning specified request - Bugzilla Bug #695015 - Serial No. of a revoked certificate is not populated in the CA signedAudit messages - Bugzilla Bug #698885 - Race conditions during IPA installation - 'pki-selinux' - 'pki-ca' - Bugzilla Bug #693815 - /var/log/tomcat6/catalina.out owned by pkiuser - Bugzilla Bug #699837 - service command is not fully backwards compatible with Dogtag pki subsystems - 'pki-silent'- Bugzilla Bug #695157 - Auditverify on TPS audit log throws error.- Bugzilla Bug #690950 - Update Dogtag Packages for Fedora 15 (beta) - Bugzilla Bug #693327 - Missing requires: tomcatjss - 'pki-setup' - Bugzilla Bug #690626 - pkiremove removes the registry entry for all instances on a machine - 'pki-symkey' - 'pki-native-tools' - 'pki-util' - 'pki-java-tools' - Bugzilla Bug #689453 - CRMFPopClient request to CA's unsecure port throws file not found exception. - 'pki-common' - Bugzilla Bug #692990 - Audit log messages needed to match CC doc: DRM Recovery audit log messages - 'pki-selinux' - 'pki-ca' - 'pki-silent'- Bugzilla Bug #693327 - Missing requires: tomcatjss- Bugzilla Bug #690950 - Update Dogtag Packages for Fedora 15 (beta) - Require "jss >= 4.2.6-15" as a build and runtime requirement - Require "tomcatjss >= 2.1.1" as a build and runtime requirement for Fedora 15 and later platforms - 'pki-setup' - Bugzilla Bug #688287 - Add "deprecation" notice regarding using "shared ports" in pkicreate -help . . . - Bugzilla Bug #688251 - Dogtag installation under IPA takes too much time - SELinux policy compilation - 'pki-symkey' - 'pki-native-tools' - 'pki-util' - 'pki-java-tools' - Bugzilla Bug #689501 - ExtJoiner tool fails to join the multiple extensions - 'pki-common' - Bugzilla Bug #683581 - CA configuration with ECC(Default EC curve-nistp521) CA fails with 'signing operation failed' - Bugzilla Bug #689662 - ocsp publishing needs to be re-enabled on the EE port - 'pki-selinux' - Bugzilla Bug #684871 - ldaps selinux link change - 'pki-ca' - Bugzilla Bug #683581 - CA configuration with ECC(Default EC curve-nistp521) CA fails with 'signing operation failed' - Bugzilla Bug #684381 - CS.cfg specifies incorrect type of comments - Bugzilla Bug #689453 - CRMFPopClient request to CA's unsecure port throws file not found exception.(profile and CS.cfg only) - 'pki-silent'- Bugzilla Bug #688763 - Rebase updated Dogtag Packages for Fedora 15 (alpha) - Bugzilla Bug #676182 - IPA installation failing - Fails to create CA instance - Bugzilla Bug #675742 - Profile caIPAserviceCert Not Found - 'pki-setup' - Bugzilla Bug #678157 - uninitialized variable warnings from Perl - Bugzilla Bug #679574 - Velocity fails to load all dependent classes - Bugzilla Bug #680420 - xml-commons-apis.jar dependency - Bugzilla Bug #682013 - pkisilent needs xml-commons-apis.jar in it's classpath - Bugzilla Bug #673508 - CS8 64 bit pkicreate script uses wrong library name for SafeNet LunaSA - 'pki-common' - Bugzilla Bug #673638 - Installation within IPA hangs - Bugzilla Bug #678715 - netstat loop fixes needed - Bugzilla Bug #673609 - CC: authorize() call needs to be added to getStats servlet - 'pki-selinux' - Bugzilla Bug #674195: SELinux error message thrown during token enrollment - 'pki-ca' - Bugzilla Bug #673638 - Installation within IPA hangs - Bugzilla Bug #673609 - CC: authorize() call needs to be added to getStats servlet - Bugzilla Bug #676330 - init script cannot start service - 'pki-silent' - Bugzilla Bug #682013 - pkisilent needs xml-commons-apis.jar in it's classpath- 'pki-common' - Bugzilla Bug #676051 - IPA installation failing - Fails to create CA instance - Bugzilla Bug #676182 - IPA installation failing - Fails to create CA instance- 'pki-common' - Bugzilla Bug #674894 - ipactl restart : an annoy output line - Bugzilla Bug #675179 - ipactl restart : an annoy output line- Bugzilla Bug #673233 - Rebase pki-core to pick the latest features and fixes - 'pki-setup' - Bugzilla Bug #673638 - Installation within IPA hangs - 'pki-symkey' - 'pki-native-tools' - 'pki-util' - 'pki-java-tools' - Bugzilla Bug #673614 - CC: Review of cryptographic algorithms provided by 'netscape.security.provider' package - 'pki-common' - Bugzilla Bug #672291 - CA is not publishing certificates issued using "Manual User Dual-Use Certificate Enrollment" - Bugzilla Bug #670337 - CA Clone configuration throws TCP connection error. - Bugzilla Bug #504056 - Completed SCEP requests are assigned to the "begin" state instead of "complete". - Bugzilla Bug #504055 - SCEP requests are not properly populated - Bugzilla Bug #564207 - Searches for completed requests in the agent interface returns zero entries - Bugzilla Bug #672291 - CA is not publishing certificates issued using "Manual User Dual-Use Certificate Enrollment" - - Bugzilla Bug #673614 - CC: Review of cryptographic algorithms provided by 'netscape.security.provider' package - Bugzilla Bug #672920 - CA console: adding policy to a profile throws 'Duplicate policy' error in some cases. - Bugzilla Bug #673199 - init script returns control before web apps have started - Bugzilla Bug #674917 - Restore identification of Tomcat-based PKI subsystem instances - 'pki-selinux' - 'pki-ca' - Bugzilla Bug #504013 - sscep request is rejected due to authentication error if submitted through one time pin router certificate enrollment. - Bugzilla Bug #672111 - CC doc: certServer.usrgrp.administration missing information - Bugzilla Bug #583825 - CC: Obsolete servlets to be removed from web.xml as part of CC interface review - Bugzilla Bug #672333 - Creation of RA agent fails in IPA installation - Bugzilla Bug #674917 - Restore identification of Tomcat-based PKI subsystem instances - 'pki-silent' - Bugzilla Bug #673614 - CC: Review of cryptographic algorithms provided by 'netscape.security.provider' package- Bugzilla Bug #656661 - Please Update Spec File to use 'ghost' on files in /var/run and /var/lock- 'pki-symkey' - Bugzilla Bug #671265 - pki-symkey jar version incorrect - 'pki-common' - Bugzilla Bug #564207 - Searches for completed requests in the agent interface returns zero entries- Allow 'pki-native-tools' to be installed independently of 'pki-setup' - Removed explicit 'pki-setup' requirement from 'pki-ca' (since it already requires 'pki-common') - 'pki-setup' - Bugzilla Bug #223343 - pkicreate: should add 'pkiuser' to nfast group - Bugzilla Bug #629377 - Selinux errors during pkicreate CA, KRA, OCSP and TKS. - Bugzilla Bug #555927 - rhcs80 - AgentRequestFilter servlet and port fowarding for agent services - Bugzilla Bug #632425 - Port to tomcat6 - Bugzilla Bug #606946 - Convert Native Tools to use ldapAPI from OpenLDAP instead of the Mozldap - Bugzilla Bug #638377 - Generate PKI UI components which exclude a GUI interface - Bugzilla Bug #643206 - New CMake based build system for Dogtag - Bugzilla Bug #658926 - org.apache.commons.lang class not found on F13 - Bugzilla Bug #661514 - CMAKE build system requires rules to make javadocs - Bugzilla Bug #665388 - jakarta-* jars have been renamed to apache-*, pkicreate fails Fedora 14 and above - Bugzilla Bug #23346 - Two conflicting ACL list definitions in source repository - Bugzilla Bug #656733 - Standardize jar install location and jar names - 'pki-symkey' - Bugzilla Bug #638377 - Generate PKI UI components which exclude a GUI interface - Bugzilla Bug #643206 - New CMake based build system for Dogtag - Bugzilla Bug #644056 - CS build contains warnings - 'pki-native-tools' - template change - Bugzilla Bug #606946 - Convert Native Tools to use ldapAPI from OpenLDAP instead of the Mozldap - Bugzilla Bug #638377 - Generate PKI UI components which exclude a GUI interface - Bugzilla Bug #643206 - New CMake based build system for Dogtag - Bugzilla Bug #644056 - CS build contains warnings - 'pki-util' - Bugzilla Bug #615814 - rhcs80 - profile policyConstraintsCritical cannot be set to true - Bugzilla Bug #224945 - javadocs has missing descriptions, contains empty packages - Bugzilla Bug #621337 - Limit the received senderNonce value to 16 bytes. - Bugzilla Bug #621338 - Include a server randomly-generated 16 byte senderNonce in all signed SCEP responses. - Bugzilla Bug #621327 - Provide switch disabling algorithm downgrade attack in SCEP - Bugzilla Bug #621334 - Provide an option to set default hash algorithm for signing SCEP response messages. - Bugzilla Bug #635033 - At installation wizard selecting key types other than CA's signing cert will fail - Bugzilla Bug #645874 - rfe ecc - add ecc curve name support in JSS and CS interface - Bugzilla Bug #488253 - com.netscape.cmsutil.ocsp.BasicOCSPResponse ASN.1 encoding/decoding is broken - Bugzilla Bug #551410 - com.netscape.cmsutil.ocsp.TBSRequest ASN.1 encoding/decoding is incomplete - Bugzilla Bug #550331 - com.netscape.cmsutil.ocsp.ResponseData ASN.1 encoding/decoding is incomplete - Bugzilla Bug #623452 - rhcs80 pkiconsole profile policy editor limit policy extension to 5 only - Bugzilla Bug #638377 - Generate PKI UI components which exclude a GUI interface - Bugzilla Bug #651977 - turn off ssl2 for java servers (server.xml) - Bugzilla Bug #643206 - New CMake based build system for Dogtag - Bugzilla Bug #661514 - CMAKE build system requires rules to make javadocs - Bugzilla Bug #658188 - remove remaining references to tomcat5 - Bugzilla Bug #656733 - Standardize jar install location and jar names - Bugzilla Bug #223319 - Certificate Status inconsistency between token db and CA - Bugzilla Bug #531137 - RHCS 7.1 - Running out of Java Heap Memory During CRL Generation - 'pki-java-tools' - Bugzilla Bug #224945 - javadocs has missing descriptions, contains empty packages - Bugzilla Bug #638377 - Generate PKI UI components which exclude a GUI interface - Bugzilla Bug #659004 - CC: AuditVerify hardcoded with SHA-1 - Bugzilla Bug #643206 - New CMake based build system for Dogtag - Bugzilla Bug #661514 - CMAKE build system requires rules to make javadocs - Bugzilla Bug #662156 - HttpClient is hard-coded to handle only up to 5000 bytes - Bugzilla Bug #656733 - Standardize jar install location and jar names - 'pki-common' - Bugzilla Bug #583822 - CC: ACL issues from CA interface CC doc review - Bugzilla Bug #623745 - SessionTimer with LDAPSecurityDomainSessionTable started before configuration completed - Bugzilla Bug #620925 - CC: auditor needs to be able to download audit logs in the java subsystems - Bugzilla Bug #615827 - rhcs80 - profile policies need more than 5 policy mappings (seem hardcoded) - Bugzilla Bug #224945 - javadocs has missing descriptions, contains empty packages - Bugzilla Bug #548699 - subCA's admin certificate should be generated by itself - Bugzilla Bug #621322 - Provide switch disabling SCEP support in CA - Bugzilla Bug #563386 - rhcs80 ca crash on invalid inputs to profile caAgentServerCert (null cert_request) - Bugzilla Bug #621339 - SCEP one-time PIN can be used an unlimited number of times - Bugzilla Bug #583825 - CC: Obsolete servlets to be removed from web.xml as part of CC interface review - Bugzilla Bug #629677 - TPS: token enrollment fails. - Bugzilla Bug #621350 - Unauthenticated user can decrypt a one-time PIN in a SCEP request - Bugzilla Bug #503838 - rhcs71-80 external publishing ldap connection pools not reliable - improve connections or discovery - Bugzilla Bug #629769 - password decryption logs plain text password - Bugzilla Bug #583823 - CC: Auditing issues found as result of CC - interface review - Bugzilla Bug #632425 - Port to tomcat6 - Bugzilla Bug #586700 - OCSP Server throws fatal error while using OCSP console for renewing SSL Server certificate. - Bugzilla Bug #621337 - Limit the received senderNonce value to 16 bytes. - Bugzilla Bug #621338 - Include a server randomly-generated 16 byte senderNonce in all signed SCEP responses. - Bugzilla Bug #607380 - CC: Make sure Java Console can configure all security relevant config items - Bugzilla Bug #558100 - host challenge of the Secure Channel needs to be generated on TKS instead of TPS. - Bugzilla Bug #489342 - com.netscape.cms.servlet.common.CMCOutputTemplate.java doesn't support EC - Bugzilla Bug #630121 - OCSP responder lacking option to delete or disable a CA that it serves - Bugzilla Bug #634663 - CA CMC response default hard-coded to SHA1 - Bugzilla Bug #621327 - Provide switch disabling algorithm downgrade attack in SCEP - Bugzilla Bug #621334 - Provide an option to set default hash algorithm for signing SCEP response messages. - Bugzilla Bug #635033 - At installation wizard selecting key types other than CA's signing cert will fail - Bugzilla Bug #621341 - Add CA support for new SCEP key pair dedicated for SCEP signing and encryption. - Bugzilla Bug #223336 - ECC: unable to clone a ECC CA - Bugzilla Bug #539781 - rhcs 71 - CRLs Partitioned by Reason Code - onlySomeReasons ? - Bugzilla Bug #637330 - CC feature: Key Management - provide signature verification functions (JAVA subsystems) - Bugzilla Bug #223313 - should do random generated IV param for symmetric keys - Bugzilla Bug #555927 - rhcs80 - AgentRequestFilter servlet and port fowarding for agent services - Bugzilla Bug #630176 - Improve reliability of the LdapAnonConnFactory - Bugzilla Bug #524916 - ECC key constraints plug-ins should be based on ECC curve names (not on key sizes). - Bugzilla Bug #516632 - RHCS 7.1 - CS Incorrectly Issuing Multiple Certificates from the Same Request - Bugzilla Bug #648757 - expose and use updated cert verification function in JSS - Bugzilla Bug #638242 - Installation Wizard: at SizePanel, fix selection of signature algorithm; and for ECC curves - Bugzilla Bug #451874 - RFE - Java console - Certificate Wizard missing e.c. support - Bugzilla Bug #651040 - cloning shoud not include sslserver - Bugzilla Bug #542863 - RHCS8: Default cert audit nickname written to CS.cfg files imcomplete when the cert is stored on a hsm - Bugzilla Bug #360721 - New Feature: Profile Integrity Check . . . - Bugzilla Bug #651916 - kra and ocsp are using incorrect ports to talk to CA and complete configuration in DonePanel - Bugzilla Bug #642359 - CC Feature - need to verify certificate when it is added - Bugzilla Bug #653713 - CC: setting trust on a CIMC cert requires auditing - Bugzilla Bug #489385 - references to rhpki - Bugzilla Bug #499494 - change CA defaults to SHA2 - Bugzilla Bug #623452 - rhcs80 pkiconsole profile policy editor limit policy extension to 5 only - Bugzilla Bug #649910 - Console: an auditor or agent can be added to an administrator group. - Bugzilla Bug #632425 - Port to tomcat6 - Bugzilla Bug #638377 - Generate PKI UI components which exclude a GUI interface - Bugzilla Bug #651977 - turn off ssl2 for java servers (server.xml) - Bugzilla Bug #653576 - tomcat5 does not always run filters on servlets as expected - Bugzilla Bug #642357 - CC Feature- Self-Test plugins only check for validity - Bugzilla Bug #643206 - New CMake based build system for Dogtag - Bugzilla Bug #659004 - CC: AuditVerify hardcoded with SHA-1 - Bugzilla Bug #661196 - ECC(with nethsm) subca configuration fails with Key Type RSA Not Matched despite using ECC key pairs for rootCA & subCA. - Bugzilla Bug #661889 - The Servlet TPSRevokeCert of the CA returns an error to TPS even if certificate in question is already revoked. - Bugzilla Bug #663546 - Disable the functionalities that are not exposed in the console - Bugzilla Bug #661514 - CMAKE build system requires rules to make javadocs - Bugzilla Bug #658188 - remove remaining references to tomcat5 - Bugzilla Bug #649343 - Publishing queue should recover from CA crash. - Bugzilla Bug #491183 - rhcs rfe - add rfc 4523 support for pkiUser and pkiCA, obsolete 2252 and 2256 - Bugzilla Bug #640710 - Current SCEP implementation does not support HSMs - Bugzilla Bug #656733 - Standardize jar install location and jar names - Bugzilla Bug #661142 - Verification should fail when a revoked certificate is added - Bugzilla Bug #642741 - CS build uses deprecated functions - Bugzilla Bug #670337 - CA Clone configuration throws TCP connection error - Bugzilla Bug #662127 - CC doc Error: SignedAuditLog expiration time interface is no longer available through console - 'pki-selinux' - Bugzilla Bug #638377 - Generate PKI UI components which exclude a GUI interface - Bugzilla Bug #643206 - New CMake based build system for Dogtag - Bugzilla Bug #667153 - store nuxwdog passwords in kernel ring buffer - selinux changes - 'pki-ca' - Bugzilla Bug #583822 - CC: ACL issues from CA interface CC doc review - Bugzilla Bug #620925 - CC: auditor needs to be able to download audit logs in the java subsystems - Bugzilla Bug #621322 - Provide switch disabling SCEP support in CA - Bugzilla Bug #583824 - CC: Duplicate servlet mappings found as part of CC interface doc review - Bugzilla Bug #621602 - pkiconsole: Click on 'Publishing' option with admin privilege throws error "You are not authorized to perform this operation". - Bugzilla Bug #583825 - CC: Obsolete servlets to be removed from web.xml as part of CC interface review - Bugzilla Bug #583823 - CC: Auditing issues found as result of CC - interface review - Bugzilla Bug #519291 - Deleting a CRL Issuing Point after edits throws 'Internal Server Error'. - Bugzilla Bug #586700 - OCSP Server throws fatal error while using OCSP console for renewing SSL Server certificate. - Bugzilla Bug #621337 - Limit the received senderNonce value to 16 bytes. - Bugzilla Bug #621338 - Include a server randomly-generated 16 byte senderNonce in all signed SCEP responses. - Bugzilla Bug #558100 - host challenge of the Secure Channel needs to be generated on TKS instead of TPS. - Bugzilla Bug #630121 - OCSP responder lacking option to delete or disable a CA that it serves - Bugzilla Bug #634663 - CA CMC response default hard-coded to SHA1 - Bugzilla Bug #621327 - Provide switch disabling algorithm downgrade attack in SCEP - Bugzilla Bug #621334 - Provide an option to set default hash algorithm for signing SCEP response messages. - Bugzilla Bug #539781 - rhcs 71 - CRLs Partitioned by Reason Code - onlySomeReasons ? - Bugzilla Bug #637330 - CC feature: Key Management - provide signature verification functions (JAVA subsystems) - Bugzilla Bug #555927 - rhcs80 - AgentRequestFilter servlet and port fowarding for agent services - Bugzilla Bug #524916 - ECC key constraints plug-ins should be based on ECC curve names (not on key sizes). - Bugzilla Bug #516632 - RHCS 7.1 - CS Incorrectly Issuing Multiple Certificates from the Same Request - Bugzilla Bug #638242 - Installation Wizard: at SizePanel, fix selection of signature algorithm; and for ECC curves - Bugzilla Bug #529945 - (Instructions and sample only) CS 8.0 GA release -- DRM and TKS do not seem to have CRL checking enabled - Bugzilla Bug #609641 - CC: need procedure (and possibly tools) to help correctly set up CC environment - Bugzilla Bug #509481 - RFE: support sMIMECapabilities extensions in certificates (RFC 4262) - Bugzilla Bug #651916 - kra and ocsp are using incorrect ports to talk to CA and complete configuration in DonePanel - Bugzilla Bug #511990 - rhcs 7.3, 8.0 - re-activate missing object signing support in RHCS - Bugzilla Bug #651977 - turn off ssl2 for java servers (server.xml) - Bugzilla Bug #489385 - references to rhpki - Bugzilla Bug #499494 - change CA defaults to SHA2 - Bugzilla Bug #623452 - rhcs80 pkiconsole profile policy editor limit policy extension to 5 only - Bugzilla Bug #649910 - Console: an auditor or agent can be added to an administrator group. - Bugzilla Bug #632425 - Port to tomcat6 - Bugzilla Bug #638377 - Generate PKI UI components which exclude a GUI interface - Bugzilla Bug #653576 - tomcat5 does not always run filters on servlets as expected - Bugzilla Bug #642357 - CC Feature- Self-Test plugins only check for validity - Bugzilla Bug #643206 - New CMake based build system for Dogtag - Bugzilla Bug #661128 - incorrect CA ports used for revoke, unrevoke certs in TPS - Bugzilla Bug #512496 - RFE rhcs80 - crl updates and scheduling feature - Bugzilla Bug #661196 - ECC(with nethsm) subca configuration fails with Key Type RSA Not Matched despite using ECC key pairs for rootCA & subCA. - Bugzilla Bug #649343 - Publishing queue should recover from CA crash. - Bugzilla Bug #491183 - rhcs rfe - add rfc 4523 support for pkiUser and pkiCA, obsolete 2252 and 2256 - Bugzilla Bug #223346 - Two conflicting ACL list definitions in source repository - Bugzilla Bug #640710 - Current SCEP implementation does not support HSMs - Bugzilla Bug #656733 - Standardize jar install location and jar names - Bugzilla Bug #661142 - Verification should fail when a revoked certificate is added - Bugzilla Bug #668100 - DRM storage cert has OCSP signing extended key usage - Bugzilla Bug #662127 - CC doc Error: SignedAuditLog expiration time interface is no longer available through console - Bugzilla Bug #531137 - RHCS 7.1 - Running out of Java Heap Memory During CRL Generation - 'pki-silent' - Bugzilla Bug #627309 - pkisilent subca configuration fails. - Bugzilla Bug #640091 - pkisilent panels need to match with changed java subsystems - Bugzilla Bug #527322 - pkisilent ConfigureDRM should configure DRM Clone. - Bugzilla Bug #643053 - pkisilent DRM configuration fails - Bugzilla Bug #583754 - pki-silent needs an option to configure signing algorithm for CA certificates - Bugzilla Bug #489385 - references to rhpki - Bugzilla Bug #638377 - Generate PKI UI components which exclude a GUI interface - Bugzilla Bug #651977 - turn off ssl2 for java servers (server.xml) - Bugzilla Bug #640042 - TPS Installlation Wizard: need to move Module Panel up to before Security Domain Panel - Bugzilla Bug #643206 - New CMake based build system for Dogtag - Bugzilla Bug #588323 - Failed to enable cipher 0xc001 - Bugzilla Bug #656733 - Standardize jar install location and jar names - Bugzilla Bug #645895 - pkisilent: add ability to select ECC curves, signing algorithm - Bugzilla Bug #658641 - pkisilent doesn't not properly handle passwords with special characters - Bugzilla Bug #642741 - CS build uses deprecated functions- Bugzilla Bug #668839 - Review Request: pki-core - Removed empty "pre" from "pki-ca" - Consolidated directory ownership - Corrected file ownership within subpackages - Removed all versioning from NSS and NSPR packages- Bugzilla Bug #668839 - Review Request: pki-core - Added component versioning comments - Updated JSS from "4.2.6-10" to "4.2.6-12" - Modified installation section to preserve timestamps - Removed sectional comments- Initial revision. (kwright@redhat.com & mharmsen@redhat.com)pki-util-javadocpki-java-tools-javadocpki-common-javadoc  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                           ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~10.5.9-13.el7_610.5.9-13.el7_610.5.9-13.el7_610.5.9-13.el7_610.5.9-13.el7_610.5.9-13.el7_610.5.9-13.el7_6     !!!!!!! """"""""""""""""###$$####%%%%%%%&&&&&&%%%%''('''')))**))))++,++++----...----////////0000000////1111111222222111133333333333333333344444444444444444333355555555556666666665555777777777788888888877779999:::9999;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;=====================================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>====;;;;????????@@@@@@@????AAAAAABBBBBAAAACCCCDDDCCCCEEEFFEEEEGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHGGGGIIIIIIJJJJJIIIIKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLKKKKMMMNNMMMMOOOOPPPOOOOQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRQSSTSSSSQQQQUUUUUUUUUVVVVVVVVUUUUWWWWWWWWWWWWWWXXXXXXXXXXXXXWWWWYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZYYYY[[[[[\\\\[[[[]]]^^]]]]__````````aaaaaaa````_bbbbbccccbbbb_d_eeeeeeeffffffeeee_gggggggghhhhhhhgggg_____iiiiiiiiiiiiiiijjjjjjjjjjjjjjiiii_kkkkkkkklllllllkkkkmmmmmmmmmmmmnnnnnnnnnnnmmmmoooooooooooppppppppppooooqqqqqqqqrrrrrrrqqqqsttttttttttttttttttuuuuuuuuuuuuuuuuuttttsvvvvvvwwwwwvvvvsxxxxxxxxxxxxyyyyyyyyyyyxxxxszzzzz{{{{zzzzs||||||}}}}}||||s~~~~~~~~~sssssssssss                                                                                                                                            !! ""#""""     $$$$$$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%$$$$&&'''''''''''''''''''''''''''''''''''''''''((((((((((((((((((((((((((((((((((((((((''''&)&****+++****&,,,,,,,,,,,,,,,,,,,,,--------------------,,,,&&&&pki-10.5.9allclasses-frame.htmlallclasses-noframe.htmlcomnetscapecertsrvaccountAccountClient.htmlAccountInfo.RoleList.htmlAccountInfo.RolesAdapter.htmlAccountInfo.htmlAccountResource.htmlclass-useAccountClient.htmlAccountInfo.RoleList.htmlAccountInfo.RolesAdapter.htmlAccountInfo.htmlAccountResource.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlaclsACL.htmlACLEntry.Type.htmlACLEntry.htmlACLMapping.htmlEACLsException.htmlIACL.htmlIACLEntry.htmlclass-useACL.htmlACLEntry.Type.htmlACLEntry.htmlACLMapping.htmlEACLsException.htmlIACL.htmlIACLEntry.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlappsCMS.htmlICMSEngine.htmlICommandQueue.htmlclass-useCMS.htmlICMSEngine.htmlICommandQueue.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlauthenticationAuthCredentials.htmlAuthManagerProxy.htmlAuthMethodMapping.htmlAuthMgrPlugin.htmlAuthToken.htmlEAuthException.htmlEAuthInternalError.htmlEAuthMgrNotFound.htmlEAuthMgrPluginNotFound.htmlEAuthUserError.htmlECompSyntaxErr.htmlEFormSubjectDN.htmlEInvalidCredentials.htmlEMissingCredential.htmlExternalAuthToken.htmlIAuthCredentials.htmlIAuthManager.htmlIAuthSubsystem.htmlIAuthToken.htmlICertUserDBAuthentication.htmlIPasswdUserDBAuthentication.htmlISSLClientCertProvider.htmlISharedToken.htmlclass-useAuthCredentials.htmlAuthManagerProxy.htmlAuthMethodMapping.htmlAuthMgrPlugin.htmlAuthToken.htmlEAuthException.htmlEAuthInternalError.htmlEAuthMgrNotFound.htmlEAuthMgrPluginNotFound.htmlEAuthUserError.htmlECompSyntaxErr.htmlEFormSubjectDN.htmlEInvalidCredentials.htmlEMissingCredential.htmlExternalAuthToken.htmlIAuthCredentials.htmlIAuthManager.htmlIAuthSubsystem.htmlIAuthToken.htmlICertUserDBAuthentication.htmlIPasswdUserDBAuthentication.htmlISSLClientCertProvider.htmlISharedToken.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlauthorityAuthorityClient.htmlAuthorityData.htmlAuthorityResource.htmlIAuthority.htmlICertAuthority.htmlclass-useAuthorityClient.htmlAuthorityData.htmlAuthorityResource.htmlIAuthority.htmlICertAuthority.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlauthorizationAuthzManagerProxy.htmlAuthzMgrPlugin.htmlAuthzToken.htmlEAuthzAccessDenied.htmlEAuthzException.htmlEAuthzInternalError.htmlEAuthzMgrNotFound.htmlEAuthzMgrPluginNotFound.htmlEAuthzUnknownOperation.htmlEAuthzUnknownProtectedRes.htmlEAuthzUnknownRealm.htmlIAuthzManager.htmlIAuthzSubsystem.htmlclass-useAuthzManagerProxy.htmlAuthzMgrPlugin.htmlAuthzToken.htmlEAuthzAccessDenied.htmlEAuthzException.htmlEAuthzInternalError.htmlEAuthzMgrNotFound.htmlEAuthzMgrPluginNotFound.htmlEAuthzUnknownOperation.htmlEAuthzUnknownProtectedRes.htmlEAuthzUnknownRealm.htmlIAuthzManager.htmlIAuthzSubsystem.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlbaseASubsystem.htmlAttributeNameHelper.htmlBadRequestDataException.htmlBadRequestException.htmlBaseResources.htmlConflictingOperationException.htmlDataCollection.htmlEBaseException.htmlEPropertyNotDefined.htmlEPropertyNotFound.htmlExtendedPluginInfo.htmlForbiddenException.htmlHTTPGoneException.htmlIArgBlock.htmlIAttrSet.htmlIAuthInfo.htmlICRLPrettyPrint.htmlICertPrettyPrint.htmlIConfigStore.htmlIConfigStoreEventListener.htmlIExtPrettyPrint.htmlIExtendedPluginInfo.htmlIPluginImpl.htmlIPrettyPrintFormat.htmlISecurityDomainSessionTable.htmlISourceConfigStore.htmlISubsystem.htmlISubsystemSource.htmlITimeSource.htmlKeyGenInfo.htmlLink.htmlMessageFormatter.htmlMetaAttributeDef.htmlMetaInfo.htmlNonces.htmlPATCH.htmlPKIException.Data.htmlPKIException.htmlPasswordResources.htmlPlugin.htmlResourceMessage.Attribute.htmlResourceMessage.AttributeList.htmlResourceMessage.MapAdapter.htmlResourceMessage.htmlResourceNotFoundException.htmlServiceUnavailableException.htmlSessionContext.htmlUnauthorizedException.htmlUserNotFoundException.htmlclass-useASubsystem.htmlAttributeNameHelper.htmlBadRequestDataException.htmlBadRequestException.htmlBaseResources.htmlConflictingOperationException.htmlDataCollection.htmlEBaseException.htmlEPropertyNotDefined.htmlEPropertyNotFound.htmlExtendedPluginInfo.htmlForbiddenException.htmlHTTPGoneException.htmlIArgBlock.htmlIAttrSet.htmlIAuthInfo.htmlICRLPrettyPrint.htmlICertPrettyPrint.htmlIConfigStore.htmlIConfigStoreEventListener.htmlIExtPrettyPrint.htmlIExtendedPluginInfo.htmlIPluginImpl.htmlIPrettyPrintFormat.htmlISecurityDomainSessionTable.htmlISourceConfigStore.htmlISubsystem.htmlISubsystemSource.htmlITimeSource.htmlKeyGenInfo.htmlLink.htmlMessageFormatter.htmlMetaAttributeDef.htmlMetaInfo.htmlNonces.htmlPATCH.htmlPKIException.Data.htmlPKIException.htmlPasswordResources.htmlPlugin.htmlResourceMessage.Attribute.htmlResourceMessage.AttributeList.htmlResourceMessage.MapAdapter.htmlResourceMessage.htmlResourceNotFoundException.htmlServiceUnavailableException.htmlSessionContext.htmlUnauthorizedException.htmlUserNotFoundException.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlcaAuthorityID.htmlCACertClient.htmlCAClient.htmlCADisabledException.htmlCAEnabledException.htmlCAMissingCertException.htmlCAMissingKeyException.htmlCANotFoundException.htmlCANotLeafException.htmlCAResources.htmlCATypeException.htmlECAException.htmlEErrorPublishCRL.htmlICAService.htmlICMSCRLExtension.htmlICMSCRLExtensions.htmlICRLIssuingPoint.htmlICertificateAuthority.htmlIssuerUnavailableException.htmlclass-useAuthorityID.htmlCACertClient.htmlCAClient.htmlCADisabledException.htmlCAEnabledException.htmlCAMissingCertException.htmlCAMissingKeyException.htmlCANotFoundException.htmlCANotLeafException.htmlCAResources.htmlCATypeException.htmlECAException.htmlEErrorPublishCRL.htmlICAService.htmlICMSCRLExtension.htmlICMSCRLExtensions.htmlICRLIssuingPoint.htmlICertificateAuthority.htmlIssuerUnavailableException.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlcertCertData.htmlCertDataInfo.htmlCertDataInfos.htmlCertEnrollmentRequest.htmlCertNotFoundException.htmlCertRequestInfo.htmlCertRequestInfos.htmlCertRequestResource.htmlCertResource.htmlCertRetrievalRequest.htmlCertReviewResponse.htmlCertRevokeRequest.htmlCertSearchRequest.htmlICrossCertPairSubsystem.htmlclass-useCertData.htmlCertDataInfo.htmlCertDataInfos.htmlCertEnrollmentRequest.htmlCertNotFoundException.htmlCertRequestInfo.htmlCertRequestInfos.htmlCertRequestResource.htmlCertResource.htmlCertRetrievalRequest.htmlCertReviewResponse.htmlCertRevokeRequest.htmlCertSearchRequest.htmlICrossCertPairSubsystem.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlclientClient.htmlClientConfig.htmlIDataProcessor.htmlPKICertificateApprovalCallback.htmlPKIClient.htmlPKIConnection.htmlPKIRESTProvider.htmlSubsystemClient.htmlclass-useClient.htmlClientConfig.htmlIDataProcessor.htmlPKICertificateApprovalCallback.htmlPKIClient.htmlPKIConnection.htmlPKIRESTProvider.htmlSubsystemClient.htmlconnectionIAuthenticator.htmlIConnection.htmlIConnectionFactory.htmlclass-useIAuthenticator.htmlIConnection.htmlIConnectionFactory.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlcommonConfigConstants.htmlConstants.htmlDestDef.htmlICMSRequest.htmlNameValuePairs.htmlOpDef.htmlPrefixDef.htmlScopeDef.htmlTaskId.htmlclass-useConfigConstants.htmlConstants.htmlDestDef.htmlICMSRequest.htmlNameValuePairs.htmlOpDef.htmlPrefixDef.htmlScopeDef.htmlTaskId.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlconnectorIConnector.htmlIHttpConnFactory.htmlIHttpConnection.htmlIHttpPKIMessage.htmlIPKIMessage.htmlIRemoteAuthority.htmlIRequestEncoder.htmlIResender.htmlclass-useIConnector.htmlIHttpConnFactory.htmlIHttpConnection.htmlIHttpPKIMessage.htmlIPKIMessage.htmlIRemoteAuthority.htmlIRequestEncoder.htmlIResender.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmldbsDBResources.htmlEDBException.htmlEDBNotAvailException.htmlEDBRecordNotFoundException.htmlIDBAttrMapper.htmlIDBDynAttrMapper.htmlIDBObj.htmlIDBRegistry.htmlIDBSSession.htmlIDBSearchResults.htmlIDBSubsystem.htmlIDBVirtualList.htmlIElementProcessor.htmlIFilterConverter.htmlModification.htmlModificationSet.htmlcertdbCertId.htmlCertIdAdapter.htmlICertRecord.htmlICertRecordList.htmlICertificateRepository.htmlIRevocationInfo.htmlRenewableCertificateCollection.htmlclass-useCertId.htmlCertIdAdapter.htmlICertRecord.htmlICertRecordList.htmlICertificateRepository.htmlIRevocationInfo.htmlRenewableCertificateCollection.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlclass-useDBResources.htmlEDBException.htmlEDBNotAvailException.htmlEDBRecordNotFoundException.htmlIDBAttrMapper.htmlIDBDynAttrMapper.htmlIDBObj.htmlIDBRegistry.htmlIDBSSession.htmlIDBSearchResults.htmlIDBSubsystem.htmlIDBVirtualList.htmlIElementProcessor.htmlIFilterConverter.htmlModification.htmlModificationSet.htmlcrldbICRLIssuingPointRecord.htmlICRLRepository.htmlclass-useICRLIssuingPointRecord.htmlICRLRepository.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlkeydbIKeyRecord.htmlIKeyRecordList.htmlIKeyRepository.htmlKeyId.htmlKeyIdAdapter.htmlKeyState.htmlclass-useIKeyRecord.htmlIKeyRecordList.htmlIKeyRepository.htmlKeyId.htmlKeyIdAdapter.htmlKeyState.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlreplicadbIReplicaIDRepository.htmlclass-useIReplicaIDRepository.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlrepositoryIRepository.htmlIRepositoryRecord.htmlclass-useIRepository.htmlIRepositoryRecord.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlevaluatorsIAccessEvaluator.htmlclass-useIAccessEvaluator.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlextensionsEExtensionsException.htmlExtensionsResources.htmlICMSExtension.htmlclass-useEExtensionsException.htmlExtensionsResources.htmlICMSExtension.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlgroupGroupClient.htmlGroupCollection.htmlGroupData.htmlGroupMemberCollection.htmlGroupMemberData.htmlGroupNotFoundException.htmlGroupResource.htmlclass-useGroupClient.htmlGroupCollection.htmlGroupData.htmlGroupMemberCollection.htmlGroupMemberData.htmlGroupNotFoundException.htmlGroupResource.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmljobsEJobsException.htmlIJob.htmlIJobCron.htmlIJobsScheduler.htmlJobPlugin.htmlJobsResources.htmlclass-useEJobsException.htmlIJob.htmlIJobCron.htmlIJobsScheduler.htmlJobPlugin.htmlJobsResources.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlkeyAsymKeyGenerationRequest.htmlKey.htmlKeyArchivalRequest.htmlKeyClient.htmlKeyData.htmlKeyGenerationRequest.htmlKeyInfo.htmlKeyInfoCollection.htmlKeyNotFoundException.htmlKeyRecoveryRequest.htmlKeyRequestInfo.htmlKeyRequestInfoCollection.htmlKeyRequestResource.htmlKeyRequestResponse.htmlKeyResource.htmlKeyTemplate.htmlSymKeyGenerationRequest.htmlclass-useAsymKeyGenerationRequest.htmlKey.htmlKeyArchivalRequest.htmlKeyClient.htmlKeyData.htmlKeyGenerationRequest.htmlKeyInfo.htmlKeyInfoCollection.htmlKeyNotFoundException.htmlKeyRecoveryRequest.htmlKeyRequestInfo.htmlKeyRequestInfoCollection.htmlKeyRequestResource.htmlKeyRequestResponse.htmlKeyResource.htmlKeyTemplate.htmlSymKeyGenerationRequest.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlkraEKRAException.htmlIJoinShares.htmlIKeyRecoveryAuthority.htmlIKeyService.htmlIProofOfArchival.htmlIShare.htmlKRAClient.htmlKRAResources.htmlProofOfArchival.htmlclass-useEKRAException.htmlIJoinShares.htmlIKeyRecoveryAuthority.htmlIKeyService.htmlIProofOfArchival.htmlIShare.htmlKRAClient.htmlKRAResources.htmlProofOfArchival.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlldapELdapException.htmlELdapServerDownException.htmlILdapAuthInfo.htmlILdapBoundConnFactory.htmlILdapConnFactory.htmlILdapConnInfo.htmlILdapConnModule.htmlLDAPExceptionConverter.htmlLdapResources.htmlclass-useELdapException.htmlELdapServerDownException.htmlILdapAuthInfo.htmlILdapBoundConnFactory.htmlILdapConnFactory.htmlILdapConnInfo.htmlILdapConnModule.htmlLDAPExceptionConverter.htmlLdapResources.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmllistenersEListenersException.htmlIRequestListenerPlugin.htmlListenersResources.htmlclass-useEListenersException.htmlIRequestListenerPlugin.htmlListenersResources.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlloggingActivityClient.htmlActivityCollection.htmlActivityData.htmlActivityResource.htmlAuditClient.htmlAuditConfig.EventConfig.htmlAuditConfig.EventConfigList.htmlAuditConfig.EventConfigsAdapter.htmlAuditConfig.htmlAuditEvent.htmlAuditFile.htmlAuditFileCollection.htmlAuditFormat.htmlAuditResource.htmlConsoleError.htmlConsoleLog.htmlELogException.htmlELogNotFound.htmlELogPluginNotFound.htmlIAuditor.htmlIBundleLogEvent.htmlILogEvent.htmlILogEventFactory.htmlILogEventListener.htmlILogQueue.htmlILogSubsystem.htmlILogger.htmlLogCategory.htmlLogEvent.htmlLogPlugin.htmlLogResources.htmlLogSource.htmlSignedAuditEvent.htmlSystemEvent.htmlclass-useActivityClient.htmlActivityCollection.htmlActivityData.htmlActivityResource.htmlAuditClient.htmlAuditConfig.EventConfig.htmlAuditConfig.EventConfigList.htmlAuditConfig.EventConfigsAdapter.htmlAuditConfig.htmlAuditEvent.htmlAuditFile.htmlAuditFileCollection.htmlAuditFormat.htmlAuditResource.htmlConsoleError.htmlConsoleLog.htmlELogException.htmlELogNotFound.htmlELogPluginNotFound.htmlIAuditor.htmlIBundleLogEvent.htmlILogEvent.htmlILogEventFactory.htmlILogEventListener.htmlILogQueue.htmlILogSubsystem.htmlILogger.htmlLogCategory.htmlLogEvent.htmlLogPlugin.htmlLogResources.htmlLogSource.htmlSignedAuditEvent.htmlSystemEvent.htmleventAccessSessionEstablishEvent.htmlAccessSessionTerminatedEvent.htmlAsymKeyGenerationEvent.htmlAsymKeyGenerationProcessedEvent.htmlAuthEvent.htmlAuthzEvent.htmlCMCSignedRequestSigVerifyEvent.htmlCMCUserSignedRequestSigVerifyEvent.htmlCRLSigningInfoEvent.htmlCertRequestProcessedEvent.htmlCertSigningInfoEvent.htmlCertStatusChangeRequestEvent.htmlCertStatusChangeRequestProcessedEvent.htmlClientAccessSessionEstablishEvent.htmlClientAccessSessionTerminatedEvent.htmlComputeRandomDataRequestProcessedEvent.htmlComputeSessionKeyRequestProcessedEvent.htmlConfigRoleEvent.htmlConfigSignedAuditEvent.htmlConfigTrustedPublicKeyEvent.htmlDeltaCRLGenerationEvent.htmlDeltaCRLPublishingEvent.htmlDiversifyKeyRequestProcessedEvent.htmlEncryptDataRequestProcessedEvent.htmlFullCRLGenerationEvent.htmlFullCRLPublishingEvent.htmlOCSPAddCARequestEvent.htmlOCSPAddCARequestProcessedEvent.htmlOCSPGenerationEvent.htmlOCSPRemoveCARequestEvent.htmlOCSPRemoveCARequestProcessedEvent.htmlOCSPSigningInfoEvent.htmlRandomGenerationEvent.htmlRoleAssumeEvent.htmlScheduleCRLGenerationEvent.htmlSecurityDataArchivalProcessedEvent.htmlSecurityDataArchivalRequestEvent.htmlSecurityDataExportEvent.htmlSecurityDataInfoEvent.htmlSecurityDataRecoveryEvent.htmlSecurityDataRecoveryProcessedEvent.htmlSecurityDataRecoveryStateChangeEvent.htmlSecurityDataStatusChangeEvent.htmlServerSideKeyGenEvent.htmlServerSideKeyGenProcessedEvent.htmlSymKeyGenerationEvent.htmlSymKeyGenerationProcessedEvent.htmlTokenAppletUpgradeEvent.htmlTokenAuthEvent.htmlTokenFormatEvent.htmlTokenKeyChangeoverEvent.htmlTokenPinResetEvent.htmlclass-useAccessSessionEstablishEvent.htmlAccessSessionTerminatedEvent.htmlAsymKeyGenerationEvent.htmlAsymKeyGenerationProcessedEvent.htmlAuthEvent.htmlAuthzEvent.htmlCMCSignedRequestSigVerifyEvent.htmlCMCUserSignedRequestSigVerifyEvent.htmlCRLSigningInfoEvent.htmlCertRequestProcessedEvent.htmlCertSigningInfoEvent.htmlCertStatusChangeRequestEvent.htmlCertStatusChangeRequestProcessedEvent.htmlClientAccessSessionEstablishEvent.htmlClientAccessSessionTerminatedEvent.htmlComputeRandomDataRequestProcessedEvent.htmlComputeSessionKeyRequestProcessedEvent.htmlConfigRoleEvent.htmlConfigSignedAuditEvent.htmlConfigTrustedPublicKeyEvent.htmlDeltaCRLGenerationEvent.htmlDeltaCRLPublishingEvent.htmlDiversifyKeyRequestProcessedEvent.htmlEncryptDataRequestProcessedEvent.htmlFullCRLGenerationEvent.htmlFullCRLPublishingEvent.htmlOCSPAddCARequestEvent.htmlOCSPAddCARequestProcessedEvent.htmlOCSPGenerationEvent.htmlOCSPRemoveCARequestEvent.htmlOCSPRemoveCARequestProcessedEvent.htmlOCSPSigningInfoEvent.htmlRandomGenerationEvent.htmlRoleAssumeEvent.htmlScheduleCRLGenerationEvent.htmlSecurityDataArchivalProcessedEvent.htmlSecurityDataArchivalRequestEvent.htmlSecurityDataExportEvent.htmlSecurityDataInfoEvent.htmlSecurityDataRecoveryEvent.htmlSecurityDataRecoveryProcessedEvent.htmlSecurityDataRecoveryStateChangeEvent.htmlSecurityDataStatusChangeEvent.htmlServerSideKeyGenEvent.htmlServerSideKeyGenProcessedEvent.htmlSymKeyGenerationEvent.htmlSymKeyGenerationProcessedEvent.htmlTokenAppletUpgradeEvent.htmlTokenAuthEvent.htmlTokenFormatEvent.htmlTokenKeyChangeoverEvent.htmlTokenPinResetEvent.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlnotificationENotificationException.htmlIEmailFormProcessor.htmlIEmailResolver.htmlIEmailResolverKeys.htmlIEmailTemplate.htmlIMailNotification.htmlNotificationResources.htmlclass-useENotificationException.htmlIEmailFormProcessor.htmlIEmailResolver.htmlIEmailResolverKeys.htmlIEmailTemplate.htmlIMailNotification.htmlNotificationResources.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlocspIDefStore.htmlIOCSPAuthority.htmlIOCSPService.htmlIOCSPStore.htmlOCSPClient.htmlclass-useIDefStore.htmlIOCSPAuthority.htmlIOCSPService.htmlIOCSPStore.htmlOCSPClient.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlpasswordEPasswordCheckException.htmlIConfigPasswordCheck.htmlIPasswordCheck.htmlclass-useEPasswordCheckException.htmlIConfigPasswordCheck.htmlIPasswordCheck.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlpatternAttrSetCollection.htmlPattern.htmlclass-useAttrSetCollection.htmlPattern.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlprofileCertInfoProfile.htmlECMCBadIdentityException.htmlECMCBadMessageCheckException.htmlECMCBadRequestException.htmlECMCPopFailedException.htmlECMCPopRequiredException.htmlECMCUnsupportedExtException.htmlEDeferException.htmlEProfileException.htmlERejectException.htmlICertInfoPolicyDefault.htmlIEnrollProfile.htmlIPolicyConstraint.htmlIPolicyDefault.htmlIProfile.htmlIProfileAuthenticator.htmlIProfileContext.htmlIProfileEx.htmlIProfileInput.htmlIProfileOutput.htmlIProfilePolicy.htmlIProfileSubsystem.htmlIProfileUpdater.htmlPolicyConstraint.htmlPolicyConstraintValue.htmlPolicyDefault.htmlProfileAttribute.htmlProfileClient.htmlProfileData.PolicySet.htmlProfileData.PolicySetAdapter.htmlProfileData.PolicySetList.htmlProfileData.htmlProfileDataInfo.htmlProfileDataInfos.htmlProfileInput.htmlProfileNotFoundException.htmlProfileOutput.htmlProfileParameter.htmlProfilePolicy.htmlProfilePolicySet.htmlProfileResource.htmlProfileRetrievalRequest.htmlclass-useCertInfoProfile.htmlECMCBadIdentityException.htmlECMCBadMessageCheckException.htmlECMCBadRequestException.htmlECMCPopFailedException.htmlECMCPopRequiredException.htmlECMCUnsupportedExtException.htmlEDeferException.htmlEProfileException.htmlERejectException.htmlICertInfoPolicyDefault.htmlIEnrollProfile.htmlIPolicyConstraint.htmlIPolicyDefault.htmlIProfile.htmlIProfileAuthenticator.htmlIProfileContext.htmlIProfileEx.htmlIProfileInput.htmlIProfileOutput.htmlIProfilePolicy.htmlIProfileSubsystem.htmlIProfileUpdater.htmlPolicyConstraint.htmlPolicyConstraintValue.htmlPolicyDefault.htmlProfileAttribute.htmlProfileClient.htmlProfileData.PolicySet.htmlProfileData.PolicySetAdapter.htmlProfileData.PolicySetList.htmlProfileData.htmlProfileDataInfo.htmlProfileDataInfos.htmlProfileInput.htmlProfileNotFoundException.htmlProfileOutput.htmlProfileParameter.htmlProfilePolicy.htmlProfilePolicySet.htmlProfileResource.htmlProfileRetrievalRequest.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlpropertyDescriptor.htmlEPropertyException.htmlIConfigTemplate.htmlIDescriptor.htmlPropertySet.htmlclass-useDescriptor.htmlEPropertyException.htmlIConfigTemplate.htmlIDescriptor.htmlPropertySet.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlpublishECompSyntaxErr.htmlEMapperNotFound.htmlEMapperPluginNotFound.htmlEPublisherNotFound.htmlEPublisherPluginNotFound.htmlERuleNotFound.htmlERulePluginNotFound.htmlICRLPublisher.htmlILdapCertMapper.htmlILdapCrlMapper.htmlILdapExpression.htmlILdapMapper.htmlILdapPlugin.htmlILdapPluginImpl.htmlILdapPublishModule.htmlILdapPublisher.htmlILdapRule.htmlIPublishRuleSet.htmlIPublisherProcessor.htmlIXcertPublisherProcessor.htmlLdapCertMapResult.htmlMapperPlugin.htmlMapperProxy.htmlPublisherPlugin.htmlPublisherProxy.htmlRulePlugin.htmlclass-useECompSyntaxErr.htmlEMapperNotFound.htmlEMapperPluginNotFound.htmlEPublisherNotFound.htmlEPublisherPluginNotFound.htmlERuleNotFound.htmlERulePluginNotFound.htmlICRLPublisher.htmlILdapCertMapper.htmlILdapCrlMapper.htmlILdapExpression.htmlILdapMapper.htmlILdapPlugin.htmlILdapPluginImpl.htmlILdapPublishModule.htmlILdapPublisher.htmlILdapRule.htmlIPublishRuleSet.htmlIPublisherProcessor.htmlIXcertPublisherProcessor.htmlLdapCertMapResult.htmlMapperPlugin.htmlMapperProxy.htmlPublisherPlugin.htmlPublisherProxy.htmlRulePlugin.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlraIRAService.htmlIRegistrationAuthority.htmlclass-useIRAService.htmlIRegistrationAuthority.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlregistryERegistryException.htmlIPluginInfo.htmlIPluginRegistry.htmlclass-useERegistryException.htmlIPluginInfo.htmlIPluginRegistry.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlrequestARequestNotifier.htmlAgentApproval.htmlAgentApprovals.htmlCMSRequestInfo.htmlCMSRequestInfos.htmlIEnrollmentRequest.htmlINotify.htmlIPolicy.htmlIRequest.htmlIRequestList.htmlIRequestListener.htmlIRequestNotifier.htmlIRequestQueue.htmlIRequestRecord.htmlIRequestScheduler.htmlIRequestSubsystem.htmlIRequestVirtualList.htmlIService.htmlPolicyMessage.htmlPolicyResult.htmlRequestId.htmlRequestIdAdapter.htmlRequestNotFoundException.htmlRequestStatus.htmlRequestStatusAdapter.htmlclass-useARequestNotifier.htmlAgentApproval.htmlAgentApprovals.htmlCMSRequestInfo.htmlCMSRequestInfos.htmlIEnrollmentRequest.htmlINotify.htmlIPolicy.htmlIRequest.htmlIRequestList.htmlIRequestListener.htmlIRequestNotifier.htmlIRequestQueue.htmlIRequestRecord.htmlIRequestScheduler.htmlIRequestSubsystem.htmlIRequestVirtualList.htmlIService.htmlPolicyMessage.htmlPolicyResult.htmlRequestId.htmlRequestIdAdapter.htmlRequestNotFoundException.htmlRequestStatus.htmlRequestStatusAdapter.htmlldapIRequestMod.htmlclass-useIRequestMod.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlsecurityCredential.htmlICryptoSubsystem.htmlIEncryptionUnit.htmlISigningUnit.htmlIStorageKeyUnit.htmlIToken.htmlITransportKeyUnit.htmlKeyCertData.htmlclass-useCredential.htmlICryptoSubsystem.htmlIEncryptionUnit.htmlISigningUnit.htmlIStorageKeyUnit.htmlIToken.htmlITransportKeyUnit.htmlKeyCertData.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlselftestsEDuplicateSelfTestException.htmlEInvalidSelfTestException.htmlEMissingSelfTestException.htmlESelfTestException.htmlISelfTest.htmlISelfTestSubsystem.htmlSelfTestClient.htmlSelfTestCollection.htmlSelfTestData.htmlSelfTestResource.htmlSelfTestResources.htmlSelfTestResult.htmlSelfTestResults.htmlclass-useEDuplicateSelfTestException.htmlEInvalidSelfTestException.htmlEMissingSelfTestException.htmlESelfTestException.htmlISelfTest.htmlISelfTestSubsystem.htmlSelfTestClient.htmlSelfTestCollection.htmlSelfTestData.htmlSelfTestResource.htmlSelfTestResources.htmlSelfTestResult.htmlSelfTestResults.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlsystemConfigurationRequest.URIAdapter.htmlConfigurationRequest.htmlConfigurationResponse.htmlConnectorNotFoundException.htmlDomainInfo.htmlFeature.htmlFeatureClient.htmlFeatureResource.htmlInstallToken.htmlKRAConnectorClient.htmlKRAConnectorInfo.htmlKRAConnectorResource.htmlSecurityDomainClient.htmlSecurityDomainHost.htmlSecurityDomainResource.htmlSecurityDomainSubsystem.htmlSystemCertClient.htmlSystemCertData.htmlSystemCertResource.htmlSystemConfigClient.htmlSystemConfigResource.htmlTPSConnectorClient.htmlTPSConnectorCollection.htmlTPSConnectorData.htmlTPSConnectorResource.htmlclass-useConfigurationRequest.URIAdapter.htmlConfigurationRequest.htmlConfigurationResponse.htmlConnectorNotFoundException.htmlDomainInfo.htmlFeature.htmlFeatureClient.htmlFeatureResource.htmlInstallToken.htmlKRAConnectorClient.htmlKRAConnectorInfo.htmlKRAConnectorResource.htmlSecurityDomainClient.htmlSecurityDomainHost.htmlSecurityDomainResource.htmlSecurityDomainSubsystem.htmlSystemCertClient.htmlSystemCertData.htmlSystemCertResource.htmlSystemConfigClient.htmlSystemConfigResource.htmlTPSConnectorClient.htmlTPSConnectorCollection.htmlTPSConnectorData.htmlTPSConnectorResource.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmltemplateArgList.htmlArgSet.htmlArgString.htmlIArgValue.htmlclass-useArgList.htmlArgSet.htmlArgString.htmlIArgValue.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmltksITKSAuthority.htmlTKSClient.htmlclass-useITKSAuthority.htmlTKSClient.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmltpsTPSClient.htmlauthenticatorAuthenticatorClient.htmlAuthenticatorCollection.htmlAuthenticatorData.MapAdapter.htmlAuthenticatorData.Property.htmlAuthenticatorData.PropertyList.htmlAuthenticatorData.htmlAuthenticatorResource.htmlclass-useAuthenticatorClient.htmlAuthenticatorCollection.htmlAuthenticatorData.MapAdapter.htmlAuthenticatorData.Property.htmlAuthenticatorData.PropertyList.htmlAuthenticatorData.htmlAuthenticatorResource.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlcertTPSCertClient.htmlTPSCertCollection.htmlTPSCertData.htmlTPSCertResource.htmlclass-useTPSCertClient.htmlTPSCertCollection.htmlTPSCertData.htmlTPSCertResource.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlclass-useTPSClient.htmlconfigConfigClient.htmlConfigData.MapAdapter.htmlConfigData.Property.htmlConfigData.PropertyList.htmlConfigData.htmlConfigResource.htmlclass-useConfigClient.htmlConfigData.MapAdapter.htmlConfigData.Property.htmlConfigData.PropertyList.htmlConfigData.htmlConfigResource.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlconnectorConnectorClient.htmlConnectorCollection.htmlConnectorData.MapAdapter.htmlConnectorData.Property.htmlConnectorData.PropertyList.htmlConnectorData.htmlConnectorResource.htmlclass-useConnectorClient.htmlConnectorCollection.htmlConnectorData.MapAdapter.htmlConnectorData.Property.htmlConnectorData.PropertyList.htmlConnectorData.htmlConnectorResource.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlprofileProfileClient.htmlProfileCollection.htmlProfileData.MapAdapter.htmlProfileData.Property.htmlProfileData.PropertyList.htmlProfileData.htmlProfileMappingClient.htmlProfileMappingCollection.htmlProfileMappingData.MapAdapter.htmlProfileMappingData.Property.htmlProfileMappingData.PropertyList.htmlProfileMappingData.htmlProfileMappingResource.htmlProfileResource.htmlclass-useProfileClient.htmlProfileCollection.htmlProfileData.MapAdapter.htmlProfileData.Property.htmlProfileData.PropertyList.htmlProfileData.htmlProfileMappingClient.htmlProfileMappingCollection.htmlProfileMappingData.MapAdapter.htmlProfileMappingData.Property.htmlProfileMappingData.PropertyList.htmlProfileMappingData.htmlProfileMappingResource.htmlProfileResource.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmltokenTokenClient.htmlTokenCollection.htmlTokenData.TokenStatusData.htmlTokenData.htmlTokenResource.htmlTokenStatus.TokenStatusAdapter.htmlTokenStatus.htmlclass-useTokenClient.htmlTokenCollection.htmlTokenData.TokenStatusData.htmlTokenData.htmlTokenResource.htmlTokenStatus.TokenStatusAdapter.htmlTokenStatus.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmluserUserCertCollection.htmlUserCertData.htmlUserClient.htmlUserCollection.htmlUserData.Attribute.htmlUserData.AttributeList.htmlUserData.MapAdapter.htmlUserData.htmlUserMembershipCollection.htmlUserMembershipData.htmlUserResource.htmlclass-useUserCertCollection.htmlUserCertData.htmlUserClient.htmlUserCollection.htmlUserData.Attribute.htmlUserData.AttributeList.htmlUserData.MapAdapter.htmlUserData.htmlUserMembershipCollection.htmlUserMembershipData.htmlUserResource.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlusrgrpCertificates.htmlEUsrGrpException.htmlICertUserLocator.htmlIGroup.htmlIGroupConstants.htmlIIdEvaluator.htmlIUGSubsystem.htmlIUser.htmlIUserConstants.htmlIUsrGrp.htmlclass-useCertificates.htmlEUsrGrpException.htmlICertUserLocator.htmlIGroup.htmlIGroupConstants.htmlIIdEvaluator.htmlIUGSubsystem.htmlIUser.htmlIUserConstants.htmlIUsrGrp.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlutilAsyncLoader.htmlCryptoProvider.htmlDateAdapter.htmlHttpInput.htmlIStatsSubsystem.htmlNSSCryptoProvider.htmlStatsEvent.htmlclass-useAsyncLoader.htmlCryptoProvider.htmlDateAdapter.htmlHttpInput.htmlIStatsSubsystem.htmlNSSCryptoProvider.htmlStatsEvent.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlcmsauthenticationAgentCertAuthentication.htmlCMCAuth.htmlCMCUserSignedAuth.htmlCrypt.htmlDNPattern.htmlDirBasedAuthentication.htmlFlatFileAuth.htmlHashAuthData.htmlHashAuthentication.htmlPortalEnroll.htmlSSLclientCertAuthentication.htmlSessionAuthentication.htmlSharedSecret.htmlTokenAuthentication.htmlUidPwdDirAuthentication.htmlUidPwdPinDirAuthentication.htmlUserPwdDirAuthentication.htmlclass-useAgentCertAuthentication.htmlCMCAuth.htmlCMCUserSignedAuth.htmlCrypt.htmlDNPattern.htmlDirBasedAuthentication.htmlFlatFileAuth.htmlHashAuthData.htmlHashAuthentication.htmlPortalEnroll.htmlSSLclientCertAuthentication.htmlSessionAuthentication.htmlSharedSecret.htmlTokenAuthentication.htmlUidPwdDirAuthentication.htmlUidPwdPinDirAuthentication.htmlUserPwdDirAuthentication.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlauthorizationAAclAuthz.EvaluationOrder.htmlAAclAuthz.htmlBasicAclAuthz.htmlBasicGroupAuthz.htmlDirAclAuthz.htmlclass-useAAclAuthz.EvaluationOrder.htmlAAclAuthz.htmlBasicAclAuthz.htmlBasicGroupAuthz.htmlDirAclAuthz.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlcrlCMSAuthInfoAccessExtension.htmlCMSAuthorityKeyIdentifierExtension.htmlCMSCRLNumberExtension.htmlCMSCRLReasonExtension.htmlCMSCertificateIssuerExtension.htmlCMSDeltaCRLIndicatorExtension.htmlCMSFreshestCRLExtension.htmlCMSHoldInstructionExtension.htmlCMSInvalidityDateExtension.htmlCMSIssuerAlternativeNameExtension.htmlCMSIssuingDistributionPointExtension.htmlclass-useCMSAuthInfoAccessExtension.htmlCMSAuthorityKeyIdentifierExtension.htmlCMSCRLNumberExtension.htmlCMSCRLReasonExtension.htmlCMSCertificateIssuerExtension.htmlCMSDeltaCRLIndicatorExtension.htmlCMSFreshestCRLExtension.htmlCMSHoldInstructionExtension.htmlCMSInvalidityDateExtension.htmlCMSIssuerAlternativeNameExtension.htmlCMSIssuingDistributionPointExtension.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlevaluatorsGroupAccessEvaluator.htmlIPAddressAccessEvaluator.htmlUserAccessEvaluator.htmlUserOrigReqAccessEvaluator.htmlclass-useGroupAccessEvaluator.htmlIPAddressAccessEvaluator.htmlUserAccessEvaluator.htmlUserOrigReqAccessEvaluator.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmljobsAJobBase.htmlPublishCertsJob.htmlRenewalNotificationJob.htmlRequestInQueueJob.htmlUnpublishExpiredJob.htmlclass-useAJobBase.htmlPublishCertsJob.htmlRenewalNotificationJob.htmlRequestInQueueJob.htmlUnpublishExpiredJob.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmllistenersCertificateIssuedListener.htmlCertificateRevokedListener.htmlPinRemovalListener.htmlRequestInQListener.htmlclass-useCertificateIssuedListener.htmlCertificateRevokedListener.htmlPinRemovalListener.htmlRequestInQListener.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlloggingAuditEventFactory.htmlLogEntry.htmlLogFactory.htmlLogFile.htmlLogQueue.htmlLogger.htmlRollingLogFile.htmlSignedAuditEventFactory.htmlSignedAuditLogger.htmlSystemEventFactory.htmlclass-useAuditEventFactory.htmlLogEntry.htmlLogFactory.htmlLogFile.htmlLogQueue.htmlLogger.htmlRollingLogFile.htmlSignedAuditEventFactory.htmlSignedAuditLogger.htmlSystemEventFactory.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlnotificationMailNotification.htmlclass-useMailNotification.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlocspDefStore.htmlLDAPStore.htmlclass-useDefStore.htmlLDAPStore.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlpasswordPasswordChecker.htmlclass-usePasswordChecker.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlprofilecommonBasicProfile.htmlCACertCAEnrollProfile.htmlCAEnrollProfile.htmlEnrollProfile.htmlProfileContext.htmlProfilePolicy.htmlServerCertCAEnrollProfile.htmlUserCertCAEnrollProfile.htmlclass-useBasicProfile.htmlCACertCAEnrollProfile.htmlCAEnrollProfile.htmlEnrollProfile.htmlProfileContext.htmlProfilePolicy.htmlServerCertCAEnrollProfile.htmlUserCertCAEnrollProfile.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlconstraintAuthzRealmConstraint.htmlBasicConstraintsExtConstraint.htmlCAEnrollConstraint.htmlCAValidityConstraint.htmlCMCSharedTokenSubjectNameConstraint.htmlCMCUserSignedSubjectNameConstraint.htmlEnrollConstraint.htmlExtendedKeyUsageExtConstraint.htmlExtensionConstraint.htmlExternalProcessConstraint.htmlKeyConstraint.htmlKeyUsageExtConstraint.htmlNSCertTypeExtConstraint.htmlNoConstraint.htmlRenewGracePeriodConstraint.htmlSigningAlgConstraint.htmlSubjectNameConstraint.htmlUniqueKeyConstraint.htmlUniqueSubjectNameConstraint.htmlUserSubjectNameConstraint.htmlValidityConstraint.htmlclass-useAuthzRealmConstraint.htmlBasicConstraintsExtConstraint.htmlCAEnrollConstraint.htmlCAValidityConstraint.htmlCMCSharedTokenSubjectNameConstraint.htmlCMCUserSignedSubjectNameConstraint.htmlEnrollConstraint.htmlExtendedKeyUsageExtConstraint.htmlExtensionConstraint.htmlExternalProcessConstraint.htmlKeyConstraint.htmlKeyUsageExtConstraint.htmlNSCertTypeExtConstraint.htmlNoConstraint.htmlRenewGracePeriodConstraint.htmlSigningAlgConstraint.htmlSubjectNameConstraint.htmlUniqueKeyConstraint.htmlUniqueSubjectNameConstraint.htmlUserSubjectNameConstraint.htmlValidityConstraint.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmldefAuthInfoAccessExtDefault.htmlAuthTokenSubjectNameDefault.htmlAuthorityKeyIdentifierExtDefault.htmlAuthzRealmDefault.htmlAutoAssignDefault.htmlBasicConstraintsExtDefault.htmlCAEnrollDefault.htmlCAValidityDefault.htmlCMCUserSignedSubjectNameDefault.htmlCRLDistributionPointsExtDefault.htmlCertificatePoliciesExtDefault.htmlCertificateVersionDefault.htmlCommonNameToSANDefault.htmlEnrollDefault.htmlEnrollExtDefault.htmlExtendedKeyUsageExtDefault.htmlFreshestCRLExtDefault.htmlGenericExtDefault.htmlImageDefault.htmlInhibitAnyPolicyExtDefault.htmlIssuerAltNameExtDefault.htmlKeyUsageExtDefault.htmlNSCCommentExtDefault.htmlNSCertTypeExtDefault.htmlNameConstraintsExtDefault.htmlNoDefault.htmlOCSPNoCheckExtDefault.htmlPolicyConstraintsExtDefault.htmlPolicyMappingsExtDefault.htmlPrivateKeyUsagePeriodExtDefault.htmlRandomizedValidityDefault.htmlSigningAlgDefault.htmlSubjectAltNameExtDefault.htmlSubjectDirAttributesExtDefault.htmlSubjectInfoAccessExtDefault.htmlSubjectKeyIdentifierExtDefault.htmlSubjectNameDefault.htmlUserExtensionDefault.htmlUserKeyDefault.htmlUserSigningAlgDefault.htmlUserSubjectNameDefault.htmlUserValidityDefault.htmlValidityDefault.htmlclass-useAuthInfoAccessExtDefault.htmlAuthTokenSubjectNameDefault.htmlAuthorityKeyIdentifierExtDefault.htmlAuthzRealmDefault.htmlAutoAssignDefault.htmlBasicConstraintsExtDefault.htmlCAEnrollDefault.htmlCAValidityDefault.htmlCMCUserSignedSubjectNameDefault.htmlCRLDistributionPointsExtDefault.htmlCertificatePoliciesExtDefault.htmlCertificateVersionDefault.htmlCommonNameToSANDefault.htmlEnrollDefault.htmlEnrollExtDefault.htmlExtendedKeyUsageExtDefault.htmlFreshestCRLExtDefault.htmlGenericExtDefault.htmlImageDefault.htmlInhibitAnyPolicyExtDefault.htmlIssuerAltNameExtDefault.htmlKeyUsageExtDefault.htmlNSCCommentExtDefault.htmlNSCertTypeExtDefault.htmlNameConstraintsExtDefault.htmlNoDefault.htmlOCSPNoCheckExtDefault.htmlPolicyConstraintsExtDefault.htmlPolicyMappingsExtDefault.htmlPrivateKeyUsagePeriodExtDefault.htmlRandomizedValidityDefault.htmlSigningAlgDefault.htmlSubjectAltNameExtDefault.htmlSubjectDirAttributesExtDefault.htmlSubjectInfoAccessExtDefault.htmlSubjectKeyIdentifierExtDefault.htmlSubjectNameDefault.htmlUserExtensionDefault.htmlUserKeyDefault.htmlUserSigningAlgDefault.htmlUserSubjectNameDefault.htmlUserValidityDefault.htmlValidityDefault.htmlnsHKeySubjectNameDefault.htmlnsNKeySubjectNameDefault.htmlnsTokenDeviceKeySubjectNameDefault.htmlnsTokenUserKeySubjectNameDefault.htmlnsHKeySubjectNameDefault.htmlnsNKeySubjectNameDefault.htmlnsTokenDeviceKeySubjectNameDefault.htmlnsTokenUserKeySubjectNameDefault.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlinputCMCCertReqInput.htmlCertReqInput.htmlDualKeyGenInput.htmlEncryptionKeyGenInput.htmlEnrollInput.htmlFileSigningInput.htmlGenericInput.htmlImageInput.htmlKeyGenInput.htmlSerialNumRenewInput.htmlSigningKeyGenInput.htmlSubjectAltNameExtInput.htmlSubjectDNInput.htmlSubjectNameInput.htmlSubmitterInfoInput.htmlclass-useCMCCertReqInput.htmlCertReqInput.htmlDualKeyGenInput.htmlEncryptionKeyGenInput.htmlEnrollInput.htmlFileSigningInput.htmlGenericInput.htmlImageInput.htmlKeyGenInput.htmlSerialNumRenewInput.htmlSigningKeyGenInput.htmlSubjectAltNameExtInput.htmlSubjectDNInput.htmlSubjectNameInput.htmlSubmitterInfoInput.htmlnsHKeyCertReqInput.htmlnsNKeyCertReqInput.htmlnsHKeyCertReqInput.htmlnsNKeyCertReqInput.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmloutputCMMFOutput.htmlCertOutput.htmlEnrollOutput.htmlPKCS7Output.htmlclass-useCMMFOutput.htmlCertOutput.htmlEnrollOutput.htmlPKCS7Output.htmlnsNKeyOutput.htmlnsNKeyOutput.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlupdaterSubsystemGroupUpdater.htmlclass-useSubsystemGroupUpdater.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlpublishmappersLdapCaSimpleMap.htmlLdapCertCompsMap.htmlLdapCertExactMap.htmlLdapCertSubjMap.htmlLdapCrlIssuerCompsMap.htmlLdapDNCompsMap.SearchFilter.htmlLdapDNCompsMap.htmlLdapEnhancedMap.htmlLdapSimpleMap.htmlMapDNPattern.htmlNoMap.htmlclass-useLdapCaSimpleMap.htmlLdapCertCompsMap.htmlLdapCertExactMap.htmlLdapCertSubjMap.htmlLdapCrlIssuerCompsMap.htmlLdapDNCompsMap.SearchFilter.htmlLdapDNCompsMap.htmlLdapEnhancedMap.htmlLdapSimpleMap.htmlMapDNPattern.htmlNoMap.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlpublishersFileBasedPublisher.htmlLdapCaCertPublisher.htmlLdapCertSubjPublisher.htmlLdapCertificatePairPublisher.htmlLdapCrlPublisher.htmlLdapEncryptCertPublisher.htmlLdapUserCertPublisher.htmlOCSPPublisher.htmlPublisherUtils.htmlclass-useFileBasedPublisher.htmlLdapCaCertPublisher.htmlLdapCertSubjPublisher.htmlLdapCertificatePairPublisher.htmlLdapCrlPublisher.htmlLdapEncryptCertPublisher.htmlLdapUserCertPublisher.htmlOCSPPublisher.htmlPublisherUtils.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlrealmPKIPrincipal.htmlPKIRealm.htmlclass-usePKIPrincipal.htmlPKIRealm.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlrequestRequestScheduler.htmlclass-useRequestScheduler.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlselftestsASelfTest.htmlcaCAPresence.htmlCAValidity.htmlclass-useCAPresence.htmlCAValidity.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlclass-useASelfTest.htmlcommonSystemCertsVerification.htmlclass-useSystemCertsVerification.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlkraKRAPresence.htmlclass-useKRAPresence.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlocspOCSPPresence.htmlOCSPValidity.htmlclass-useOCSPPresence.htmlOCSPValidity.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmltksTKSKnownSessionKey.htmlclass-useTKSKnownSessionKey.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlservletadminACLAdminServlet.htmlAdminResources.htmlAdminServlet.htmlAuthAdminServlet.htmlAuthCredentials.htmlCAAdminServlet.htmlCMSAdminServlet.htmlGroupMemberProcessor.htmlJobsAdminServlet.htmlKRAAdminServlet.htmlKRAConnectorProcessor.htmlLogAdminServlet.htmlOCSPAdminServlet.htmlPolicyAdminServlet.htmlProfileAdminServlet.htmlPublisherAdminServlet.htmlRAAdminServlet.htmlRegistryAdminServlet.htmlUsrGrpAdminServlet.htmlclass-useACLAdminServlet.htmlAdminResources.htmlAdminServlet.htmlAuthAdminServlet.htmlAuthCredentials.htmlCAAdminServlet.htmlCMSAdminServlet.htmlGroupMemberProcessor.htmlJobsAdminServlet.htmlKRAAdminServlet.htmlKRAConnectorProcessor.htmlLogAdminServlet.htmlOCSPAdminServlet.htmlPolicyAdminServlet.htmlProfileAdminServlet.htmlPublisherAdminServlet.htmlRAAdminServlet.htmlRegistryAdminServlet.htmlUsrGrpAdminServlet.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlbaseCMSServlet.htmlCMSStartServlet.htmlDisplayHtmlServlet.htmlDynamicVariablesServlet.htmlGetStats.htmlIndexServlet.htmlPKIService.htmlPortsServlet.htmlProxyServlet.htmlRESTServlet.htmlSubsystemService.htmlSystemInfoServlet.htmlUserInfo.htmlclass-useCMSServlet.htmlCMSStartServlet.htmlDisplayHtmlServlet.htmlDynamicVariablesServlet.htmlGetStats.htmlIndexServlet.htmlPKIService.htmlPortsServlet.htmlProxyServlet.htmlRESTServlet.htmlSubsystemService.htmlSystemInfoServlet.htmlUserInfo.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlcertCMCRevReqServlet.htmlCertEnrollmentRequestFactory.htmlCertProcessor.htmlCertRequestDAO.htmlCertRequestInfoFactory.htmlCertReviewResponseFactory.htmlChallengeRevocationServlet1.htmlCloneRedirect.htmlDirAuthServlet.htmlDisableEnrollResult.htmlDisplayBySerial.htmlDisplayCRL.htmlDisplayHashUserEnroll.htmlDoRevoke.htmlDoRevokeTPS.htmlDoUnrevoke.htmlDoUnrevokeTPS.htmlEnableEnrollResult.htmlEnrollServlet.htmlEnrollmentProcessor.htmlFilterBuilder.htmlGetBySerial.htmlGetCAChain.htmlGetCRL.htmlGetCertFromRequest.htmlGetEnableStatus.htmlGetInfo.htmlHashEnrollServlet.htmlImportCertsTemplateFiller.htmlListCerts.htmlMonitor.htmlReasonToRevoke.htmlRemoteAuthConfig.htmlRenewalProcessor.htmlRenewalServlet.htmlRequestProcessor.htmlRevocationProcessor.htmlRevocationServlet.htmlSrchCerts.htmlUpdateCRL.htmlUpdateDir.htmlclass-useCMCRevReqServlet.htmlCertEnrollmentRequestFactory.htmlCertProcessor.htmlCertRequestDAO.htmlCertRequestInfoFactory.htmlCertReviewResponseFactory.htmlChallengeRevocationServlet1.htmlCloneRedirect.htmlDirAuthServlet.htmlDisableEnrollResult.htmlDisplayBySerial.htmlDisplayCRL.htmlDisplayHashUserEnroll.htmlDoRevoke.htmlDoRevokeTPS.htmlDoUnrevoke.htmlDoUnrevokeTPS.htmlEnableEnrollResult.htmlEnrollServlet.htmlEnrollmentProcessor.htmlFilterBuilder.htmlGetBySerial.htmlGetCAChain.htmlGetCRL.htmlGetCertFromRequest.htmlGetEnableStatus.htmlGetInfo.htmlHashEnrollServlet.htmlImportCertsTemplateFiller.htmlListCerts.htmlMonitor.htmlReasonToRevoke.htmlRemoteAuthConfig.htmlRenewalProcessor.htmlRenewalServlet.htmlRequestProcessor.htmlRevocationProcessor.htmlRevocationServlet.htmlSrchCerts.htmlUpdateCRL.htmlUpdateDir.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlscepCRSEnrollment.htmlChallengePassword.htmlExtensionsRequested.htmlclass-useCRSEnrollment.htmlChallengePassword.htmlExtensionsRequested.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlcommonAuthCredentials.htmlCMCOutputTemplate.htmlCMSFile.htmlCMSFileLoader.htmlCMSGWResources.htmlCMSGateway.htmlCMSLoadTemplate.htmlCMSRequest.htmlCMSTemplate.htmlCMSTemplateParams.htmlECMSGWException.htmlGenErrorTemplateFiller.htmlGenPendingTemplateFiller.htmlGenRejectedTemplateFiller.htmlGenSuccessTemplateFiller.htmlGenSvcPendingTemplateFiller.htmlGenUnauthorizedTemplateFiller.htmlGenUnexpectedErrorTemplateFiller.htmlICMSTemplateFiller.htmlIRawJS.htmlIndexTemplateFiller.htmlRawJS.htmlServletUtils.htmlclass-useAuthCredentials.htmlCMCOutputTemplate.htmlCMSFile.htmlCMSFileLoader.htmlCMSGWResources.htmlCMSGateway.htmlCMSLoadTemplate.htmlCMSRequest.htmlCMSTemplate.htmlCMSTemplateParams.htmlECMSGWException.htmlGenErrorTemplateFiller.htmlGenPendingTemplateFiller.htmlGenRejectedTemplateFiller.htmlGenSuccessTemplateFiller.htmlGenSvcPendingTemplateFiller.htmlGenUnauthorizedTemplateFiller.htmlGenUnexpectedErrorTemplateFiller.htmlICMSTemplateFiller.htmlIRawJS.htmlIndexTemplateFiller.htmlRawJS.htmlServletUtils.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlconnectorCloneServlet.htmlConnectorServlet.htmlGenerateKeyPairServlet.htmlTokenKeyRecoveryServlet.htmlclass-useCloneServlet.htmlConnectorServlet.htmlGenerateKeyPairServlet.htmlTokenKeyRecoveryServlet.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlcsadminBaseServlet.htmlCert.htmlCertUtil.htmlCheckIdentity.htmlConfigCertApprovalCallback.htmlConfigurationUtils.htmlDownloadPKCS12.htmlGetCertChain.htmlGetConfigEntries.htmlGetCookie.htmlGetDomainXML.htmlGetStatus.htmlGetSubsystemCert.htmlGetTokenInfo.htmlGetTransportCert.htmlImportTransportCert.htmlLoginServlet.htmlMainPageServlet.htmlRegisterUser.htmlSecurityDomainLogin.htmlSecurityDomainProcessor.htmlSystemCertDataFactory.htmlTokenAuthenticate.htmlUpdateConnector.htmlUpdateDomainXML.htmlUpdateNumberRange.htmlUpdateOCSPConfig.htmlclass-useBaseServlet.htmlCert.htmlCertUtil.htmlCheckIdentity.htmlConfigCertApprovalCallback.htmlConfigurationUtils.htmlDownloadPKCS12.htmlGetCertChain.htmlGetConfigEntries.htmlGetCookie.htmlGetDomainXML.htmlGetStatus.htmlGetSubsystemCert.htmlGetTokenInfo.htmlGetTransportCert.htmlImportTransportCert.htmlLoginServlet.htmlMainPageServlet.htmlRegisterUser.htmlSecurityDomainLogin.htmlSecurityDomainProcessor.htmlSystemCertDataFactory.htmlTokenAuthenticate.htmlUpdateConnector.htmlUpdateDomainXML.htmlUpdateNumberRange.htmlUpdateOCSPConfig.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlfilterAdminRequestFilter.htmlAgentRequestFilter.htmlEEClientAuthRequestFilter.htmlEERequestFilter.htmlclass-useAdminRequestFilter.htmlAgentRequestFilter.htmlEEClientAuthRequestFilter.htmlEERequestFilter.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlkeyConfirmRecoverBySerial.htmlDisplayBySerial.htmlDisplayBySerialForRecovery.htmlDisplayTransport.htmlExamineRecovery.htmlGetApprovalStatus.htmlGetAsyncPk12.htmlGetPk12.htmlGrantAsyncRecovery.htmlGrantRecovery.htmlKeyRecordParser.htmlKeyRequestDAO.htmlRecoverBySerial.htmlSrchKey.htmlSrchKeyForRecovery.htmlclass-useConfirmRecoverBySerial.htmlDisplayBySerial.htmlDisplayBySerialForRecovery.htmlDisplayTransport.htmlExamineRecovery.htmlGetApprovalStatus.htmlGetAsyncPk12.htmlGetPk12.htmlGrantAsyncRecovery.htmlGrantRecovery.htmlKeyRecordParser.htmlKeyRequestDAO.htmlRecoverBySerial.htmlSrchKey.htmlSrchKeyForRecovery.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlocspAddCAServlet.htmlAddCRLServlet.htmlCheckCertServlet.htmlGetOCSPInfo.htmlListCAServlet.htmlOCSPServlet.htmlRemoveCAServlet.htmlclass-useAddCAServlet.htmlAddCRLServlet.htmlCheckCertServlet.htmlGetOCSPInfo.htmlListCAServlet.htmlOCSPServlet.htmlRemoveCAServlet.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlprocessorsCAProcessor.htmlCMCProcessor.htmlCRMFProcessor.htmlIPKIProcessor.htmlKeyGenProcessor.htmlPKCS10Processor.htmlPKIProcessor.htmlProcessor.htmlclass-useCAProcessor.htmlCMCProcessor.htmlCRMFProcessor.htmlIPKIProcessor.htmlKeyGenProcessor.htmlPKCS10Processor.htmlPKIProcessor.htmlProcessor.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlprofilePolicyConstraintFactory.htmlPolicyDefaultFactory.htmlProfileApproveServlet.htmlProfileInputFactory.htmlProfileListServlet.htmlProfileOutputFactory.htmlProfileProcessServlet.htmlProfileReviewServlet.htmlProfileSelectServlet.htmlProfileServlet.htmlProfileSubmitCMCServlet.htmlProfileSubmitServlet.htmlSSLClientCertProvider.htmlclass-usePolicyConstraintFactory.htmlPolicyDefaultFactory.htmlProfileApproveServlet.htmlProfileInputFactory.htmlProfileListServlet.htmlProfileOutputFactory.htmlProfileProcessServlet.htmlProfileReviewServlet.htmlProfileSelectServlet.htmlProfileServlet.htmlProfileSubmitCMCServlet.htmlProfileSubmitServlet.htmlSSLClientCertProvider.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlrequestCMSRequestDAO.htmlCertReqParser.htmlCheckRequest.htmlIReqParser.htmlKeyReqParser.htmlProcessCertReq.htmlProcessReq.htmlQueryReq.htmlReqParser.htmlSearchReqs.htmlclass-useCMSRequestDAO.htmlCertReqParser.htmlCheckRequest.htmlIReqParser.htmlKeyReqParser.htmlProcessCertReq.htmlProcessReq.htmlQueryReq.htmlReqParser.htmlSearchReqs.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmltksGPParams.htmlKDF.htmlNistSP800_108KDF.htmlSecureChannelProtocol.htmlStandardKDF.htmlclass-useGPParams.htmlKDF.htmlNistSP800_108KDF.htmlSecureChannelProtocol.htmlStandardKDF.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlsharesOldJoinShares.htmlOldShare.htmlclass-useOldJoinShares.htmlOldShare.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlcmstoolsAtoB.htmlAuditVerify.Result.htmlAuditVerify.htmlBtoA.htmlCMCEnroll.htmlCMCRequest.htmlCMCResponse.htmlCMCRevoke.htmlCMCSharedToken.htmlCRMFPopClient.htmlExtJoiner.htmlGenExtKeyUsage.htmlGenIssuerAltNameExt.htmlGenSubjectAltNameExt.htmlHttpClient.htmlKRATool.htmlOCSPClient.htmlPKCS10Client.htmlPKCS12Export.htmlPasswordCache.htmlPrettyPrintCert.htmlPrettyPrintCrl.htmlTestCRLSigning.htmlTokenInfo.htmlauthorityAuthorityCLI.htmlAuthorityCreateCLI.htmlAuthorityDisableCLI.htmlAuthorityEnableCLI.htmlAuthorityFindCLI.htmlAuthorityKeyExportCLI.htmlAuthorityRemoveCLI.htmlAuthorityShowCLI.htmlclass-useAuthorityCLI.htmlAuthorityCreateCLI.htmlAuthorityDisableCLI.htmlAuthorityEnableCLI.htmlAuthorityFindCLI.htmlAuthorityKeyExportCLI.htmlAuthorityRemoveCLI.htmlAuthorityShowCLI.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlcaCACLI.htmlCACertCLI.htmlclass-useCACLI.htmlCACertCLI.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlcertCertFindCLI.htmlCertHoldCLI.htmlCertReleaseHoldCLI.htmlCertRequestFindCLI.htmlCertRequestProfileFindCLI.htmlCertRequestProfileShowCLI.htmlCertRequestReviewCLI.htmlCertRequestShowCLI.htmlCertRequestSubmitCLI.htmlCertRevokeCLI.htmlCertShowCLI.htmlCertStatusCLI.htmlclass-useCertFindCLI.htmlCertHoldCLI.htmlCertReleaseHoldCLI.htmlCertRequestFindCLI.htmlCertRequestProfileFindCLI.htmlCertRequestProfileShowCLI.htmlCertRequestReviewCLI.htmlCertRequestShowCLI.htmlCertRequestSubmitCLI.htmlCertRevokeCLI.htmlCertShowCLI.htmlCertStatusCLI.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlclass-useAtoB.htmlAuditVerify.Result.htmlAuditVerify.htmlBtoA.htmlCMCEnroll.htmlCMCRequest.htmlCMCResponse.htmlCMCRevoke.htmlCMCSharedToken.htmlCRMFPopClient.htmlExtJoiner.htmlGenExtKeyUsage.htmlGenIssuerAltNameExt.htmlGenSubjectAltNameExt.htmlHttpClient.htmlKRATool.htmlOCSPClient.htmlPKCS10Client.htmlPKCS12Export.htmlPasswordCache.htmlPrettyPrintCert.htmlPrettyPrintCrl.htmlTestCRLSigning.htmlTokenInfo.htmlcliCLI.htmlCLIException.htmlHelpCLI.htmlMainCLI.htmlProxyCLI.htmlSubsystemCLI.htmlclass-useCLI.htmlCLIException.htmlHelpCLI.htmlMainCLI.htmlProxyCLI.htmlSubsystemCLI.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlclientClientCLI.htmlClientCertFindCLI.htmlClientCertImportCLI.htmlClientCertModifyCLI.htmlClientCertRemoveCLI.htmlClientCertRequestCLI.htmlClientCertShowCLI.htmlClientCertValidateCLI.htmlClientInitCLI.htmlclass-useClientCLI.htmlClientCertFindCLI.htmlClientCertImportCLI.htmlClientCertModifyCLI.htmlClientCertRemoveCLI.htmlClientCertRequestCLI.htmlClientCertShowCLI.htmlClientCertValidateCLI.htmlClientInitCLI.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlfeatureFeatureCLI.htmlFeatureFindCLI.htmlFeatureShowCLI.htmlclass-useFeatureCLI.htmlFeatureFindCLI.htmlFeatureShowCLI.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlgroupGroupAddCLI.htmlGroupCLI.htmlGroupFindCLI.htmlGroupMemberAddCLI.htmlGroupMemberCLI.htmlGroupMemberFindCLI.htmlGroupMemberRemoveCLI.htmlGroupMemberShowCLI.htmlGroupModifyCLI.htmlGroupRemoveCLI.htmlGroupShowCLI.htmlclass-useGroupAddCLI.htmlGroupCLI.htmlGroupFindCLI.htmlGroupMemberAddCLI.htmlGroupMemberCLI.htmlGroupMemberFindCLI.htmlGroupMemberRemoveCLI.htmlGroupMemberShowCLI.htmlGroupModifyCLI.htmlGroupRemoveCLI.htmlGroupShowCLI.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlkeyKeyArchiveCLI.htmlKeyCLI.htmlKeyFindCLI.htmlKeyGenerateCLI.htmlKeyModifyCLI.htmlKeyRecoverCLI.htmlKeyRequestFindCLI.htmlKeyRequestReviewCLI.htmlKeyRequestShowCLI.htmlKeyRetrieveCLI.htmlKeyShowCLI.htmlKeyTemplateFindCLI.htmlKeyTemplateShowCLI.htmlclass-useKeyArchiveCLI.htmlKeyCLI.htmlKeyFindCLI.htmlKeyGenerateCLI.htmlKeyModifyCLI.htmlKeyRecoverCLI.htmlKeyRequestFindCLI.htmlKeyRequestReviewCLI.htmlKeyRequestShowCLI.htmlKeyRetrieveCLI.htmlKeyShowCLI.htmlKeyTemplateFindCLI.htmlKeyTemplateShowCLI.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlkraKRACLI.htmlclass-useKRACLI.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlloggingActivityCLI.htmlActivityFindCLI.htmlActivityShowCLI.htmlAuditCLI.htmlAuditFileFindCLI.htmlAuditFileRetrieveCLI.htmlAuditModifyCLI.htmlAuditShowCLI.htmlclass-useActivityCLI.htmlActivityFindCLI.htmlActivityShowCLI.htmlAuditCLI.htmlAuditFileFindCLI.htmlAuditFileRetrieveCLI.htmlAuditModifyCLI.htmlAuditShowCLI.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlocspOCSPCLI.htmlclass-useOCSPCLI.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlpkcs12PKCS12CLI.htmlPKCS12CertAddCLI.htmlPKCS12CertCLI.htmlPKCS12CertExportCLI.htmlPKCS12CertFindCLI.htmlPKCS12CertModCLI.htmlPKCS12CertRemoveCLI.htmlPKCS12ExportCLI.htmlPKCS12ImportCLI.htmlPKCS12KeyCLI.htmlPKCS12KeyFindCLI.htmlPKCS12KeyRemoveCLI.htmlclass-usePKCS12CLI.htmlPKCS12CertAddCLI.htmlPKCS12CertCLI.htmlPKCS12CertExportCLI.htmlPKCS12CertFindCLI.htmlPKCS12CertModCLI.htmlPKCS12CertRemoveCLI.htmlPKCS12ExportCLI.htmlPKCS12ImportCLI.htmlPKCS12KeyCLI.htmlPKCS12KeyFindCLI.htmlPKCS12KeyRemoveCLI.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlpkcs7PKCS7CLI.htmlPKCS7CertCLI.htmlPKCS7CertExportCLI.htmlPKCS7CertFindCLI.htmlclass-usePKCS7CLI.htmlPKCS7CertCLI.htmlPKCS7CertExportCLI.htmlPKCS7CertFindCLI.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlprofileProfileAddCLI.htmlProfileCLI.htmlProfileDisableCLI.htmlProfileEditCLI.htmlProfileEnableCLI.htmlProfileFindCLI.htmlProfileModifyCLI.htmlProfileRemoveCLI.htmlProfileShowCLI.htmlclass-useProfileAddCLI.htmlProfileCLI.htmlProfileDisableCLI.htmlProfileEditCLI.htmlProfileEnableCLI.htmlProfileFindCLI.htmlProfileModifyCLI.htmlProfileRemoveCLI.htmlProfileShowCLI.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlselftestsSelfTestCLI.htmlSelfTestFindCLI.htmlSelfTestRunCLI.htmlSelfTestShowCLI.htmlclass-useSelfTestCLI.htmlSelfTestFindCLI.htmlSelfTestRunCLI.htmlSelfTestShowCLI.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlsystemKRAConnectorAddCLI.htmlKRAConnectorCLI.htmlKRAConnectorRemoveCLI.htmlKRAConnectorShowCLI.htmlSecurityDomainCLI.htmlSecurityDomainShowCLI.htmlTPSConnectorAddCLI.htmlTPSConnectorCLI.htmlTPSConnectorFindCLI.htmlTPSConnectorModCLI.htmlTPSConnectorRemoveCLI.htmlTPSConnectorShowCLI.htmlclass-useKRAConnectorAddCLI.htmlKRAConnectorCLI.htmlKRAConnectorRemoveCLI.htmlKRAConnectorShowCLI.htmlSecurityDomainCLI.htmlSecurityDomainShowCLI.htmlTPSConnectorAddCLI.htmlTPSConnectorCLI.htmlTPSConnectorFindCLI.htmlTPSConnectorModCLI.htmlTPSConnectorRemoveCLI.htmlTPSConnectorShowCLI.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmltksTKSCLI.htmlclass-useTKSCLI.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmltpsTPSCLI.htmlauthenticatorAuthenticatorAddCLI.htmlAuthenticatorCLI.htmlAuthenticatorFindCLI.htmlAuthenticatorModifyCLI.htmlAuthenticatorRemoveCLI.htmlAuthenticatorShowCLI.htmlclass-useAuthenticatorAddCLI.htmlAuthenticatorCLI.htmlAuthenticatorFindCLI.htmlAuthenticatorModifyCLI.htmlAuthenticatorRemoveCLI.htmlAuthenticatorShowCLI.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlcertTPSCertCLI.htmlTPSCertFindCLI.htmlTPSCertShowCLI.htmlclass-useTPSCertCLI.htmlTPSCertFindCLI.htmlTPSCertShowCLI.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlclass-useTPSCLI.htmlconfigConfigCLI.htmlConfigModifyCLI.htmlConfigShowCLI.htmlclass-useConfigCLI.htmlConfigModifyCLI.htmlConfigShowCLI.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlconnectorConnectorAddCLI.htmlConnectorCLI.htmlConnectorFindCLI.htmlConnectorModifyCLI.htmlConnectorRemoveCLI.htmlConnectorShowCLI.htmlclass-useConnectorAddCLI.htmlConnectorCLI.htmlConnectorFindCLI.htmlConnectorModifyCLI.htmlConnectorRemoveCLI.htmlConnectorShowCLI.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlprofileProfileAddCLI.htmlProfileCLI.htmlProfileFindCLI.htmlProfileMappingAddCLI.htmlProfileMappingCLI.htmlProfileMappingFindCLI.htmlProfileMappingModifyCLI.htmlProfileMappingRemoveCLI.htmlProfileMappingShowCLI.htmlProfileModifyCLI.htmlProfileRemoveCLI.htmlProfileShowCLI.htmlclass-useProfileAddCLI.htmlProfileCLI.htmlProfileFindCLI.htmlProfileMappingAddCLI.htmlProfileMappingCLI.htmlProfileMappingFindCLI.htmlProfileMappingModifyCLI.htmlProfileMappingRemoveCLI.htmlProfileMappingShowCLI.htmlProfileModifyCLI.htmlProfileRemoveCLI.htmlProfileShowCLI.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmltokenTokenAddCLI.htmlTokenCLI.htmlTokenFindCLI.htmlTokenModifyCLI.htmlTokenRemoveCLI.htmlTokenShowCLI.htmlclass-useTokenAddCLI.htmlTokenCLI.htmlTokenFindCLI.htmlTokenModifyCLI.htmlTokenRemoveCLI.htmlTokenShowCLI.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmluserUserAddCLI.htmlUserCLI.htmlUserCertAddCLI.htmlUserCertCLI.htmlUserCertFindCLI.htmlUserCertRemoveCLI.htmlUserCertShowCLI.htmlUserFindCLI.htmlUserMembershipAddCLI.htmlUserMembershipCLI.htmlUserMembershipFindCLI.htmlUserMembershipRemoveCLI.htmlUserModifyCLI.htmlUserRemoveCLI.htmlUserShowCLI.htmlclass-useUserAddCLI.htmlUserCLI.htmlUserCertAddCLI.htmlUserCertCLI.htmlUserCertFindCLI.htmlUserCertRemoveCLI.htmlUserCertShowCLI.htmlUserFindCLI.htmlUserMembershipAddCLI.htmlUserMembershipCLI.htmlUserMembershipFindCLI.htmlUserMembershipRemoveCLI.htmlUserModifyCLI.htmlUserRemoveCLI.htmlUserShowCLI.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlcmsutilcryptoCryptoUtil.SSLVersion.htmlCryptoUtil.htmlModule.htmlToken.htmlclass-useCryptoUtil.SSLVersion.htmlCryptoUtil.htmlModule.htmlToken.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlhttpConnectAsync.htmlHttp.htmlHttpClient.htmlHttpEofException.htmlHttpMessage.htmlHttpProtocolException.htmlHttpRequest.htmlHttpResponse.htmlJssSSLSocketFactory.htmlclass-useConnectAsync.htmlHttp.htmlHttpClient.htmlHttpEofException.htmlHttpMessage.htmlHttpProtocolException.htmlHttpRequest.htmlHttpResponse.htmlJssSSLSocketFactory.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlldapLDAPPostReadControl.htmlLDAPUtil.htmlclass-useLDAPPostReadControl.htmlLDAPUtil.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlnetISocketFactory.htmlclass-useISocketFactory.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlocspBasicOCSPResponse.Template.htmlBasicOCSPResponse.htmlCertID.Template.htmlCertID.htmlCertStatus.htmlGoodInfo.Template.htmlGoodInfo.htmlKeyHashID.Template.htmlKeyHashID.htmlNameID.Template.htmlNameID.htmlOCSPProcessor.htmlOCSPRequest.Template.htmlOCSPRequest.htmlOCSPResponse.Template.htmlOCSPResponse.htmlOCSPResponseStatus.Template.htmlOCSPResponseStatus.htmlRequest.Template.htmlRequest.htmlResponderID.htmlResponse.htmlResponseBytes.Template.htmlResponseBytes.htmlResponseData.Template.htmlResponseData.htmlRevokedInfo.Template.htmlRevokedInfo.htmlSignature.Template.htmlSignature.htmlSingleResponse.Template.htmlSingleResponse.htmlTBSRequest.Template.htmlTBSRequest.htmlUnknownInfo.Template.htmlUnknownInfo.htmlclass-useBasicOCSPResponse.Template.htmlBasicOCSPResponse.htmlCertID.Template.htmlCertID.htmlCertStatus.htmlGoodInfo.Template.htmlGoodInfo.htmlKeyHashID.Template.htmlKeyHashID.htmlNameID.Template.htmlNameID.htmlOCSPProcessor.htmlOCSPRequest.Template.htmlOCSPRequest.htmlOCSPResponse.Template.htmlOCSPResponse.htmlOCSPResponseStatus.Template.htmlOCSPResponseStatus.htmlRequest.Template.htmlRequest.htmlResponderID.htmlResponse.htmlResponseBytes.Template.htmlResponseBytes.htmlResponseData.Template.htmlResponseData.htmlRevokedInfo.Template.htmlRevokedInfo.htmlSignature.Template.htmlSignature.htmlSingleResponse.Template.htmlSingleResponse.htmlTBSRequest.Template.htmlTBSRequest.htmlUnknownInfo.Template.htmlUnknownInfo.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlpasswordIPasswordReader.htmlIPasswordStore.htmlIPasswordWriter.htmlNuxwdogPasswordStore.htmlPlainPasswordFile.htmlPlainPasswordReader.htmlPlainPasswordWriter.htmlclass-useIPasswordReader.htmlIPasswordStore.htmlIPasswordWriter.htmlNuxwdogPasswordStore.htmlPlainPasswordFile.htmlPlainPasswordReader.htmlPlainPasswordWriter.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlradiusAccessAccept.htmlAccessChallenge.htmlAccessReject.htmlAccessRequest.htmlAttribute.htmlAttributeFactory.htmlAttributeSet.htmlAuthenticator.htmlCHAPChallengeAttribute.htmlCHAPPasswordAttribute.htmlCallbackIdAttribute.htmlCallbackNumberAttribute.htmlCallerStationIdAttribute.htmlCallingStationIdAttribute.htmlChallengeException.htmlFilterIdAttribute.htmlFramedAppleTalkLinkAttribute.htmlFramedAppleTalkNetworkAttribute.htmlFramedAppleTalkZoneAttribute.htmlFramedCompressionAttribute.htmlFramedIPAddressAttribute.htmlFramedIPNetmaskAttribute.htmlFramedIPXNetworkAttribute.htmlFramedMTUAttribute.htmlFramedProtocolAttribute.htmlFramedRouteAttribute.htmlFramedRoutingAttribute.htmlGenericAttribute.htmlIdleTimeoutAttribute.htmlLoginIPHostAttribute.htmlLoginLATGroupAttribute.htmlLoginLATNodeAttribute.htmlLoginLATPortAttribute.htmlLoginLATServiceAttribute.htmlLoginServiceAttribute.htmlLoginTCPPortAttribute.htmlNASClassAttribute.htmlNASIPAddressAttribute.htmlNASIdentifierAttribute.htmlNASPacket.htmlNASPortAttribute.htmlNASPortTypeAttribute.htmlPacket.htmlPacketFactory.htmlPortLimitAttribute.htmlProxyStateAttribute.htmlRadiusConn.htmlRejectException.htmlReplyMessageAttribute.htmlRequestAuthenticator.htmlResponseAuthenticator.htmlServerPacket.htmlServiceTypeAttribute.htmlSessionTimeoutAttribute.htmlStateAttribute.htmlTerminationActionAttribute.htmlUserNameAttribute.htmlUserPasswordAttribute.htmlVendorSpecificAttribute.htmlclass-useAccessAccept.htmlAccessChallenge.htmlAccessReject.htmlAccessRequest.htmlAttribute.htmlAttributeFactory.htmlAttributeSet.htmlAuthenticator.htmlCHAPChallengeAttribute.htmlCHAPPasswordAttribute.htmlCallbackIdAttribute.htmlCallbackNumberAttribute.htmlCallerStationIdAttribute.htmlCallingStationIdAttribute.htmlChallengeException.htmlFilterIdAttribute.htmlFramedAppleTalkLinkAttribute.htmlFramedAppleTalkNetworkAttribute.htmlFramedAppleTalkZoneAttribute.htmlFramedCompressionAttribute.htmlFramedIPAddressAttribute.htmlFramedIPNetmaskAttribute.htmlFramedIPXNetworkAttribute.htmlFramedMTUAttribute.htmlFramedProtocolAttribute.htmlFramedRouteAttribute.htmlFramedRoutingAttribute.htmlGenericAttribute.htmlIdleTimeoutAttribute.htmlLoginIPHostAttribute.htmlLoginLATGroupAttribute.htmlLoginLATNodeAttribute.htmlLoginLATPortAttribute.htmlLoginLATServiceAttribute.htmlLoginServiceAttribute.htmlLoginTCPPortAttribute.htmlNASClassAttribute.htmlNASIPAddressAttribute.htmlNASIdentifierAttribute.htmlNASPacket.htmlNASPortAttribute.htmlNASPortTypeAttribute.htmlPacket.htmlPacketFactory.htmlPortLimitAttribute.htmlProxyStateAttribute.htmlRadiusConn.htmlRejectException.htmlReplyMessageAttribute.htmlRequestAuthenticator.htmlResponseAuthenticator.htmlServerPacket.htmlServiceTypeAttribute.htmlSessionTimeoutAttribute.htmlStateAttribute.htmlTerminationActionAttribute.htmlUserNameAttribute.htmlUserPasswordAttribute.htmlVendorSpecificAttribute.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlscepCRSPKIMessage.htmlclass-useCRSPKIMessage.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlutilCert.htmlFmt.htmlHMACDigest.htmlUtils.htmlclass-useCert.htmlFmt.htmlHMACDigest.htmlUtils.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlxmlXMLObject.htmlclass-useXMLObject.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlconstant-values.htmldeprecated-list.htmlhelp-doc.htmlindex-all.htmlindex.htmlorgdogtagpkicommonBase64Adapter.htmlCAInfo.htmlCAInfoClient.htmlCAInfoResource.htmlInfo.htmlInfoClient.htmlInfoResource.htmlKRAInfo.htmlKRAInfoClient.htmlKRAInfoResource.htmlLoginClient.htmlLoginResource.htmlVersion.htmlclass-useBase64Adapter.htmlCAInfo.htmlCAInfoClient.htmlCAInfoResource.htmlInfo.htmlInfoClient.htmlInfoResource.htmlKRAInfo.htmlKRAInfoClient.htmlKRAInfoResource.htmlLoginClient.htmlLoginResource.htmlVersion.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmllegacypolicyEPolicyException.htmlIEnrollmentPolicy.htmlIExpression.htmlIGeneralNameAsConstraintsConfig.htmlIGeneralNameConfig.htmlIGeneralNameUtil.htmlIGeneralNamesAsConstraintsConfig.htmlIGeneralNamesConfig.htmlIKeyArchivalPolicy.htmlIKeyRecoveryPolicy.htmlIPolicyPredicateParser.htmlIPolicyProcessor.htmlIPolicyRule.htmlIPolicySet.htmlIRenewalPolicy.htmlIRevocationPolicy.htmlISubjAltNameConfig.htmlclass-useEPolicyException.htmlIEnrollmentPolicy.htmlIExpression.htmlIGeneralNameAsConstraintsConfig.htmlIGeneralNameConfig.htmlIGeneralNameUtil.htmlIGeneralNamesAsConstraintsConfig.htmlIGeneralNamesConfig.htmlIKeyArchivalPolicy.htmlIKeyRecoveryPolicy.htmlIPolicyPredicateParser.htmlIPolicyProcessor.htmlIPolicyRule.htmlIPolicySet.htmlIRenewalPolicy.htmlIRevocationPolicy.htmlISubjAltNameConfig.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlserverpolicyAPolicyRule.htmlclass-useAPolicyRule.htmlconstraintsAgentPolicy.htmlAttributePresentConstraints.htmlDSAKeyConstraints.htmlDefaultRevocation.htmlIssuerConstraints.htmlKeyAlgorithmConstraints.htmlManualAuthentication.htmlRSAKeyConstraints.htmlRenewalConstraints.htmlRenewalValidityConstraints.htmlRevocationConstraints.htmlSigningAlgorithmConstraints.htmlSubCANameConstraints.htmlUniqueSubjectName.htmlUniqueSubjectNameConstraints.htmlValidityConstraints.htmlclass-useAgentPolicy.htmlAttributePresentConstraints.htmlDSAKeyConstraints.htmlDefaultRevocation.htmlIssuerConstraints.htmlKeyAlgorithmConstraints.htmlManualAuthentication.htmlRSAKeyConstraints.htmlRenewalConstraints.htmlRenewalValidityConstraints.htmlRevocationConstraints.htmlSigningAlgorithmConstraints.htmlSubCANameConstraints.htmlUniqueSubjectName.htmlUniqueSubjectNameConstraints.htmlValidityConstraints.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlextensionsAuthInfoAccessExt.htmlAuthorityKeyIdentifierExt.htmlBasicConstraintsExt.htmlCRLDistributionPointsExt.htmlCertificatePoliciesExt.htmlCertificateRenewalWindowExt.htmlCertificateScopeOfUseExt.htmlExtendedKeyUsageExt.htmlGenericASN1Ext.htmlIssuerAltNameExt.htmlKeyUsageExt.htmlNSCCommentExt.htmlNSCertTypeExt.htmlNameConstraintsExt.htmlOCSPNoCheckExt.htmlPolicyConstraintsExt.htmlPolicyMappingsExt.htmlPresenceExt.htmlPrivateKeyUsagePeriodExt.htmlRemoveBasicConstraintsExt.htmlSubjAltNameExt.htmlSubjectAltNameExt.htmlSubjectDirectoryAttributesExt.htmlSubjectKeyIdentifierExt.htmlclass-useAuthInfoAccessExt.htmlAuthorityKeyIdentifierExt.htmlBasicConstraintsExt.htmlCRLDistributionPointsExt.htmlCertificatePoliciesExt.htmlCertificateRenewalWindowExt.htmlCertificateScopeOfUseExt.htmlExtendedKeyUsageExt.htmlGenericASN1Ext.htmlIssuerAltNameExt.htmlKeyUsageExt.htmlNSCCommentExt.htmlNSCertTypeExt.htmlNameConstraintsExt.htmlOCSPNoCheckExt.htmlPolicyConstraintsExt.htmlPolicyMappingsExt.htmlPresenceExt.htmlPrivateKeyUsagePeriodExt.htmlRemoveBasicConstraintsExt.htmlSubjAltNameExt.htmlSubjectAltNameExt.htmlSubjectDirectoryAttributesExt.htmlSubjectKeyIdentifierExt.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlserverPKIClientSocketListener.htmlPKIServerSocketListener.htmlclass-usePKIClientSocketListener.htmlPKIServerSocketListener.htmlconnectorIRemoteRequest.htmlclass-useIRemoteRequest.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlrestACLInterceptor.htmlAccountService.htmlAuditService.htmlAuthMethodInterceptor.htmlCAInfoService.htmlFeatureService.htmlGroupService.htmlInfoService.htmlKRAInfoService.htmlLoginService.htmlMessageFormatInterceptor.htmlPKIApplication.htmlPKIExceptionMapper.htmlSecurityDomainService.htmlSelfTestService.htmlSessionContextInterceptor.htmlSystemCertService.htmlSystemConfigService.htmlUserService.htmlclass-useACLInterceptor.htmlAccountService.htmlAuditService.htmlAuthMethodInterceptor.htmlCAInfoService.htmlFeatureService.htmlGroupService.htmlInfoService.htmlKRAInfoService.htmlLoginService.htmlMessageFormatInterceptor.htmlPKIApplication.htmlPKIExceptionMapper.htmlSecurityDomainService.htmlSelfTestService.htmlSessionContextInterceptor.htmlSystemCertService.htmlSystemConfigService.htmlUserService.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmltpsTPSConnection.htmlapduAPDU.Type.htmlAPDU.htmlAPDUResponse.htmlClearKeySlotsAPDU.htmlCreateObjectAPDU.htmlCreatePinAPDU.htmlDeleteFileAPDU.htmlDeleteFileGP211APDU.htmlExternalAuthenticateAPDU.SecurityLevel.htmlExternalAuthenticateAPDU.htmlExternalAuthenticateAPDUGP211.SecurityLevel.htmlExternalAuthenticateAPDUGP211.htmlFormatMuscleAppletAPDU.htmlGenerateKeyAPDU.htmlGenerateKeyECCAPDU.htmlGetDataAPDU.htmlGetIssuerInfoAPDU.htmlGetLifecycleAPDU.htmlGetStatusAPDU.htmlGetVersionAPDU.htmlImportKeyAPDU.htmlImportKeyEncAPDU.htmlInitializeUpdateAPDU.htmlInstallAppletAPDU.htmlInstallAppletAPDUGP211.htmlInstallLoadAPDU.htmlInstallLoadGP211APDU.htmlLifecycleAPDU.htmlListObjectsAPDU.htmlListPinsAPDU.htmlLoadFileAPDU.htmlLoadFileAPDUGP211.htmlPutKeyAPDU.htmlReadBufferAPDU.htmlReadObjectAPDU.htmlSelectAPDU.htmlSetIssuerInfoAPDU.htmlSetPinAPDU.htmlUnblockPinAPDU.htmlWriteObjectAPDU.htmlclass-useAPDU.Type.htmlAPDU.htmlAPDUResponse.htmlClearKeySlotsAPDU.htmlCreateObjectAPDU.htmlCreatePinAPDU.htmlDeleteFileAPDU.htmlDeleteFileGP211APDU.htmlExternalAuthenticateAPDU.SecurityLevel.htmlExternalAuthenticateAPDU.htmlExternalAuthenticateAPDUGP211.SecurityLevel.htmlExternalAuthenticateAPDUGP211.htmlFormatMuscleAppletAPDU.htmlGenerateKeyAPDU.htmlGenerateKeyECCAPDU.htmlGetDataAPDU.htmlGetIssuerInfoAPDU.htmlGetLifecycleAPDU.htmlGetStatusAPDU.htmlGetVersionAPDU.htmlImportKeyAPDU.htmlImportKeyEncAPDU.htmlInitializeUpdateAPDU.htmlInstallAppletAPDU.htmlInstallAppletAPDUGP211.htmlInstallLoadAPDU.htmlInstallLoadGP211APDU.htmlLifecycleAPDU.htmlListObjectsAPDU.htmlListPinsAPDU.htmlLoadFileAPDU.htmlLoadFileAPDUGP211.htmlPutKeyAPDU.htmlReadBufferAPDU.htmlReadObjectAPDU.htmlSelectAPDU.htmlSetIssuerInfoAPDU.htmlSetPinAPDU.htmlUnblockPinAPDU.htmlWriteObjectAPDU.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlclass-useTPSConnection.htmlmainTPSBuffer.htmlTPSException.htmlUtil.htmlclass-useTPSBuffer.htmlTPSException.htmlUtil.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlmsgASQRequestMsg.htmlASQResponseMsg.htmlBeginOpMsg.htmlEndOpMsg.TPSStatus.htmlEndOpMsg.htmlExtendedLoginRequestMsg.htmlExtendedLoginResponseMsg.htmlLoginRequestMsg.htmlLoginResponseMsg.htmlNewPinRequestMsg.htmlNewPinResponseMsg.htmlSecureIdRequestMsg.htmlSecureIdResponseMsg.htmlStatusUpdateRequestMsg.htmlStatusUpdateResponseMsg.htmlTPSMessage.MsgType.htmlTPSMessage.OpType.htmlTPSMessage.htmlTokenPDURequestMsg.htmlTokenPDUResponseMsg.htmlclass-useASQRequestMsg.htmlASQResponseMsg.htmlBeginOpMsg.htmlEndOpMsg.TPSStatus.htmlEndOpMsg.htmlExtendedLoginRequestMsg.htmlExtendedLoginResponseMsg.htmlLoginRequestMsg.htmlLoginResponseMsg.htmlNewPinRequestMsg.htmlNewPinResponseMsg.htmlSecureIdRequestMsg.htmlSecureIdResponseMsg.htmlStatusUpdateRequestMsg.htmlStatusUpdateResponseMsg.htmlTPSMessage.MsgType.htmlTPSMessage.OpType.htmlTPSMessage.htmlTokenPDURequestMsg.htmlTokenPDUResponseMsg.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmlpackage-frame.htmlpackage-summary.htmlpackage-tree.htmlpackage-use.htmloverview-frame.htmloverview-summary.htmloverview-tree.htmlpackage-listscript.jsserialized-form.htmlstylesheet.css/usr/share/javadoc//usr/share/javadoc/pki-10.5.9//usr/share/javadoc/pki-10.5.9/com//usr/share/javadoc/pki-10.5.9/com/netscape//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/account//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/account/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/acls//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/acls/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/apps//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/apps/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/authentication//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/authentication/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/authority//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/authority/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/authorization//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/authorization/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/base//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/base/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/ca//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/ca/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/cert//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/cert/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/client//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/client/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/client/connection//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/client/connection/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/common//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/common/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/connector//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/connector/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/dbs//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/dbs/certdb//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/dbs/certdb/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/dbs/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/dbs/crldb//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/dbs/crldb/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/dbs/keydb//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/dbs/keydb/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/dbs/replicadb//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/dbs/replicadb/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/dbs/repository//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/dbs/repository/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/evaluators//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/evaluators/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/extensions//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/extensions/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/group//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/group/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/jobs//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/jobs/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/key//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/key/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/kra//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/kra/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/ldap//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/ldap/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/listeners//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/listeners/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/logging//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/logging/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/logging/event//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/logging/event/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/notification//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/notification/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/ocsp//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/ocsp/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/password//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/password/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/pattern//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/pattern/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/profile//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/profile/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/property//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/property/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/publish//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/publish/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/ra//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/ra/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/registry//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/registry/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/request//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/request/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/request/ldap//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/request/ldap/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/security//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/security/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/selftests//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/selftests/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/system//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/system/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/template//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/template/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/tks//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/tks/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/tps//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/tps/authenticator//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/tps/authenticator/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/tps/cert//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/tps/cert/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/tps/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/tps/config//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/tps/config/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/tps/connector//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/tps/connector/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/tps/profile//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/tps/profile/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/tps/token//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/tps/token/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/user//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/user/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/usrgrp//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/usrgrp/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/util//usr/share/javadoc/pki-10.5.9/com/netscape/certsrv/util/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms//usr/share/javadoc/pki-10.5.9/com/netscape/cms/authentication//usr/share/javadoc/pki-10.5.9/com/netscape/cms/authentication/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/authorization//usr/share/javadoc/pki-10.5.9/com/netscape/cms/authorization/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/crl//usr/share/javadoc/pki-10.5.9/com/netscape/cms/crl/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/evaluators//usr/share/javadoc/pki-10.5.9/com/netscape/cms/evaluators/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/jobs//usr/share/javadoc/pki-10.5.9/com/netscape/cms/jobs/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/listeners//usr/share/javadoc/pki-10.5.9/com/netscape/cms/listeners/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/logging//usr/share/javadoc/pki-10.5.9/com/netscape/cms/logging/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/notification//usr/share/javadoc/pki-10.5.9/com/netscape/cms/notification/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/ocsp//usr/share/javadoc/pki-10.5.9/com/netscape/cms/ocsp/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/password//usr/share/javadoc/pki-10.5.9/com/netscape/cms/password/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/profile//usr/share/javadoc/pki-10.5.9/com/netscape/cms/profile/common//usr/share/javadoc/pki-10.5.9/com/netscape/cms/profile/common/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/profile/constraint//usr/share/javadoc/pki-10.5.9/com/netscape/cms/profile/constraint/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/profile/def//usr/share/javadoc/pki-10.5.9/com/netscape/cms/profile/def/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/profile/input//usr/share/javadoc/pki-10.5.9/com/netscape/cms/profile/input/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/profile/output//usr/share/javadoc/pki-10.5.9/com/netscape/cms/profile/output/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/profile/updater//usr/share/javadoc/pki-10.5.9/com/netscape/cms/profile/updater/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/publish//usr/share/javadoc/pki-10.5.9/com/netscape/cms/publish/mappers//usr/share/javadoc/pki-10.5.9/com/netscape/cms/publish/mappers/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/publish/publishers//usr/share/javadoc/pki-10.5.9/com/netscape/cms/publish/publishers/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/realm//usr/share/javadoc/pki-10.5.9/com/netscape/cms/realm/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/request//usr/share/javadoc/pki-10.5.9/com/netscape/cms/request/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/selftests//usr/share/javadoc/pki-10.5.9/com/netscape/cms/selftests/ca//usr/share/javadoc/pki-10.5.9/com/netscape/cms/selftests/ca/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/selftests/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/selftests/common//usr/share/javadoc/pki-10.5.9/com/netscape/cms/selftests/common/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/selftests/kra//usr/share/javadoc/pki-10.5.9/com/netscape/cms/selftests/kra/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/selftests/ocsp//usr/share/javadoc/pki-10.5.9/com/netscape/cms/selftests/ocsp/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/selftests/tks//usr/share/javadoc/pki-10.5.9/com/netscape/cms/selftests/tks/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/servlet//usr/share/javadoc/pki-10.5.9/com/netscape/cms/servlet/admin//usr/share/javadoc/pki-10.5.9/com/netscape/cms/servlet/admin/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/servlet/base//usr/share/javadoc/pki-10.5.9/com/netscape/cms/servlet/base/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/servlet/cert//usr/share/javadoc/pki-10.5.9/com/netscape/cms/servlet/cert/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/servlet/cert/scep//usr/share/javadoc/pki-10.5.9/com/netscape/cms/servlet/cert/scep/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/servlet/common//usr/share/javadoc/pki-10.5.9/com/netscape/cms/servlet/common/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/servlet/connector//usr/share/javadoc/pki-10.5.9/com/netscape/cms/servlet/connector/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/servlet/csadmin//usr/share/javadoc/pki-10.5.9/com/netscape/cms/servlet/csadmin/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/servlet/filter//usr/share/javadoc/pki-10.5.9/com/netscape/cms/servlet/filter/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/servlet/key//usr/share/javadoc/pki-10.5.9/com/netscape/cms/servlet/key/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/servlet/ocsp//usr/share/javadoc/pki-10.5.9/com/netscape/cms/servlet/ocsp/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/servlet/processors//usr/share/javadoc/pki-10.5.9/com/netscape/cms/servlet/processors/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/servlet/profile//usr/share/javadoc/pki-10.5.9/com/netscape/cms/servlet/profile/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/servlet/request//usr/share/javadoc/pki-10.5.9/com/netscape/cms/servlet/request/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/servlet/tks//usr/share/javadoc/pki-10.5.9/com/netscape/cms/servlet/tks/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cms/shares//usr/share/javadoc/pki-10.5.9/com/netscape/cms/shares/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/authority//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/authority/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/ca//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/ca/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/cert//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/cert/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/cli//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/cli/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/client//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/client/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/feature//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/feature/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/group//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/group/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/key//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/key/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/kra//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/kra/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/logging//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/logging/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/ocsp//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/ocsp/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/pkcs12//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/pkcs12/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/pkcs7//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/pkcs7/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/profile//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/profile/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/selftests//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/selftests/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/system//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/system/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/tks//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/tks/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/tps//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/tps/authenticator//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/tps/authenticator/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/tps/cert//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/tps/cert/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/tps/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/tps/config//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/tps/config/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/tps/connector//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/tps/connector/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/tps/profile//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/tps/profile/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/tps/token//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/tps/token/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/user//usr/share/javadoc/pki-10.5.9/com/netscape/cmstools/user/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmsutil//usr/share/javadoc/pki-10.5.9/com/netscape/cmsutil/crypto//usr/share/javadoc/pki-10.5.9/com/netscape/cmsutil/crypto/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmsutil/http//usr/share/javadoc/pki-10.5.9/com/netscape/cmsutil/http/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmsutil/ldap//usr/share/javadoc/pki-10.5.9/com/netscape/cmsutil/ldap/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmsutil/net//usr/share/javadoc/pki-10.5.9/com/netscape/cmsutil/net/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmsutil/ocsp//usr/share/javadoc/pki-10.5.9/com/netscape/cmsutil/ocsp/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmsutil/password//usr/share/javadoc/pki-10.5.9/com/netscape/cmsutil/password/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmsutil/radius//usr/share/javadoc/pki-10.5.9/com/netscape/cmsutil/radius/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmsutil/scep//usr/share/javadoc/pki-10.5.9/com/netscape/cmsutil/scep/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmsutil/util//usr/share/javadoc/pki-10.5.9/com/netscape/cmsutil/util/class-use//usr/share/javadoc/pki-10.5.9/com/netscape/cmsutil/xml//usr/share/javadoc/pki-10.5.9/com/netscape/cmsutil/xml/class-use//usr/share/javadoc/pki-10.5.9/org//usr/share/javadoc/pki-10.5.9/org/dogtagpki//usr/share/javadoc/pki-10.5.9/org/dogtagpki/common//usr/share/javadoc/pki-10.5.9/org/dogtagpki/common/class-use//usr/share/javadoc/pki-10.5.9/org/dogtagpki/legacy//usr/share/javadoc/pki-10.5.9/org/dogtagpki/legacy/policy//usr/share/javadoc/pki-10.5.9/org/dogtagpki/legacy/policy/class-use//usr/share/javadoc/pki-10.5.9/org/dogtagpki/legacy/server//usr/share/javadoc/pki-10.5.9/org/dogtagpki/legacy/server/policy//usr/share/javadoc/pki-10.5.9/org/dogtagpki/legacy/server/policy/class-use//usr/share/javadoc/pki-10.5.9/org/dogtagpki/legacy/server/policy/constraints//usr/share/javadoc/pki-10.5.9/org/dogtagpki/legacy/server/policy/constraints/class-use//usr/share/javadoc/pki-10.5.9/org/dogtagpki/legacy/server/policy/extensions//usr/share/javadoc/pki-10.5.9/org/dogtagpki/legacy/server/policy/extensions/class-use//usr/share/javadoc/pki-10.5.9/org/dogtagpki/server//usr/share/javadoc/pki-10.5.9/org/dogtagpki/server/class-use//usr/share/javadoc/pki-10.5.9/org/dogtagpki/server/connector//usr/share/javadoc/pki-10.5.9/org/dogtagpki/server/connector/class-use//usr/share/javadoc/pki-10.5.9/org/dogtagpki/server/rest//usr/share/javadoc/pki-10.5.9/org/dogtagpki/server/rest/class-use//usr/share/javadoc/pki-10.5.9/org/dogtagpki/tps//usr/share/javadoc/pki-10.5.9/org/dogtagpki/tps/apdu//usr/share/javadoc/pki-10.5.9/org/dogtagpki/tps/apdu/class-use//usr/share/javadoc/pki-10.5.9/org/dogtagpki/tps/class-use//usr/share/javadoc/pki-10.5.9/org/dogtagpki/tps/main//usr/share/javadoc/pki-10.5.9/org/dogtagpki/tps/main/class-use//usr/share/javadoc/pki-10.5.9/org/dogtagpki/tps/msg//usr/share/javadoc/pki-10.5.9/org/dogtagpki/tps/msg/class-use/-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m32 -march=x86-64 -mtune=generic -mfpmath=sse -fasynchronous-unwind-tablesdrpmxz2i686-redhat-linux-gnudirectoryHTML document, ASCII textHTML document, ASCII text, with very long linesASCII textASCII text, with very long lines  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                           ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~                            ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR?P7zXZ !#,x-]"k%nVzhQt=,2]Zj_e|,y\ޖʜBV|?6gƪwuBy>] aɐ ޝ ه\yjZRRV^MY1MYk&Fq BZ܊3@ܮN6aN&CE:B`8(h6q7w&O ZğȾ{E@pb J20?M'r?`{&VĿ1E[h]~Z<# A"1RrHZ똗}r)K&eCΆE@_jrvāA\yLm.WtU|q(uN/Y ;tMǘĸ*2Cyx߫,Fb#$VWcr]Ou>䩀KXid/GTdɵ2|(s:N:3tG[x-RByv4*I#oPĞ˟ZC_%[s;!fNv.PÁzFyI[xp ' ۭn܌R 1I0Ԗ)2k\),_P8x$}&6g( kI_=r&dYY/)[;wdv ׷5C~5 0O"<$sn7,bhgs/[c`Ϻ_ĖDӃrDcXtt`1BP9+jj{ #&ݘ@͠/.;+3gGDv\s u(LiAnd!h_ٮ 6Yzp| 갨FfW 2X%_n>UZzyA Pi^D3S\e+oxgC NGi`('Cɡ&$ regY&m9  ^_[KV+zlzۛpxNxo3WKcAp X 2V`:ᘔXN Z!нzs"qVo8G +XR1[J#EtxJk/溺HY_ 刴fL) D>i)mm7'hkƹ "*Ǥ =453䉘ir{*O)lK7Ђz3;,fp |R%is[x;M9zv\N3E5@n{bMl3Ŧ*ۅ9a*I8ʈ @Җܛ[h  ^75nY n-[^^<`媬yh_Ԋ2kKv?Eeb; hhK :PR߅Ŀm{{!\0lS%bjnxB[ĩȈ\lpVpySdSOnQo7GvC 8WC}hߴ#8>H`! ӭ%ѽ~?R 3B!_ɿ_r3 \fࣕtt(j"%&D+T6J[cD\Z{1&k'$Q~#T./flInD'eO7$Y'Ol‷xY +HAzYtIXծgi轙ބ# &k ˓[׎(nmx4_^?;f&l1 ; t,O^6(zO& |oc|Zk#PVyT_ױ\轼{-o"s?0FpՅu^g հsHt2*X(XOSu#<]*0s z@PT1W_fnNLM\->GZK؋Jƈt4IEsI;DEr)x%HZ2\<[0-EA5ֹ#8~?TXeS075CDi#,Y 7D Vb]*71^2*xQWQT|&3t0VnAɑ]Ҡ,QEY[KIo2ȩ5 |/_z 1d\GK*A0yүױմޕz].4[gR{W%!AIߤM7"Y76L0G-֨L\n"Gyrqϧ>&{aGfʥ5)j1^l ~~=U`hZ:ڈlxe]pe;m䕓<˳rtRWӽV;ߍ,{  7}1sJۍCso:TH$D17 1Jti@VJw)_yT,XE T_}[~<|:ftF٫rQ,NMw9i yӅU}| {,BPo,%/.Odھ1BH_,`)j%%p$Qh7XQ VQ/Uq%2__J"f6/zZҊH\0(1VEAZyRwwb@:quF:{_zh6/pw kfIXi36;Rq c=N<DתMZgԚ6(PI5Ӗ& cL|2u³ѥg,5%I1{i7Ч}HޒHn25 Xec\ }bEז4=BO $:QuuD iOo17qmR>}ckxwOMn? kפ%H ,v;)_XA`F| AKʶŝ,p>>km-U˞k'GDQ{[ _RZw:TX.3`Y=ӚpVa50u.No_2g]mc5c~^pɤCKm/:I_\m}5k|/hA:%+6UsP-<7nzW `H,P~ (M?0)JȔtEe9ኀ.BYi-phLG;pbT s礉y2=lք͚ S$eUMR:.PE[#uD$efScŶLd!J?S.IȠ/"OeDImOd猻:KJgN2XreYA ÜG n4ws$ڡ!nT.8DW\;qR)q)+% ,?IcTk\-Mw ʃ4:jj߆w빙%>eE}|3HswKM䆆 9˱*Kq/΍!jo\}\+'`'{.![%]4 RwHK;@25fxm3U8^u1G|@t 3iG)݄W`J.(Mq8 fኽ> };MKh*K=ob3rA)pq#- fM"^!5H%Ѯ(>B:L%xNsK]Z">963FsJQNoo!"ˢ*!!50mt3*KVH-ʞ:&h!PuBώ`J}\ؿ$gi4-r*,ER1:|$)uhP"sSO65f xnHϢ(9+$j|\F?S]b 1w L0 ōyM!`мkZ{b_P΂g)PC6G[M|0, "\ W_EX*=zkǙh$Y]>P*O,!pv&*V9-G*9 eX7Da]Q̼ns)& XeAl Ό6tYyI}bDy)哚 oj|J@ZX8sH-+ulpI,d$ P,R`3z9 q?%X3Q/^nz-Pl7wEyµXi޽4<ʼnSw. U3Iyrn.@c˼A Zuۤ# ԿF:U> p7OTFMf{%kia [k矉1-;уTt$W'rfGif.ճ %?!ұqOJ^63T`|'B|8&C)\"AH@h'ĿJǾ+;MQK(ut܏ FqT ;]C:„8AN-HKdj!Ad~,vxG'Zw-9g6g-bL^-kVUXDj.mt+AKw%%Z),}:x;Q.Fq <.儬dGjɰ$/}_ᢕykq_a3O]}*#; KFIu:𻊮QHŎb7F8yIϰo FVJF,{D|@ ^lGH1+B4GeӡfTZ :K&޲!7*qɎ?Txf ëAԑiͯ6%Ux.F#0ZYQ\/h24¬T/!Zk=K"9ǶU^d% v1ؒPƆ!NzmukkހXFXXbZWpE6@o%(&8k^P}ܧ8,Wt٦ - t@5Bz&֮22D$$iL6]OKJJ_Kҝ<˰~8IUod7Bh}bFFېEcaFyF ˵1>*dsVʃwF0S(;9TZWZE"~K'Ш^3ㆷm.́ Z6v┏Qo&ڔF2K)LUV"Y/2'#v- o,bum'v27Gށ`K~&eݝ_:xPW.=6N\ vkgqF3#"`eV$B_˾󗸝 (]Rپ9߇0j0ʞLC="OׇI0׀((b#Qb&)L+ϱSGw&K)jD0l7)ao *҂|<}W^} б( >8 ߗ B8нLhO@W( ,MBZ_\d Xa`HaSX Lyޭ=KV#?;3e &,GHOǑnLR3JJ[w &KJXHFlg$JǙ?t7ej X}YuiL麭7J;m5*Gu#]mHHMuH.+wI`;MZ^m鑟BvIyH̆jI[ZtEV+ b_O~.9Vl>Ii#+PT/oPz/lo7(Ï!]VxLRt=/;.Zs,PZ1g/-@!-h8ώ[lMnf}ܦo1؈ Wħv-iev:Y 3BSi벗9Zi4v3(QﱿtS5 ?5O)@6ƈyf+T6FX|Œ+&Mk)ef䏀=+D r#&aGBgah!hU#߿ ^ lyqB; ٺc(3ۡmAc+.v(1-D~t5(j?Zӑ{)z:B 9 ]-N[,&op+#Ʊ$4{O 59 }f ~^D Nƛuh+f$heI2BOc^HҢ ` u#@g~r"zWw"uvE9nY8JwK#ЗØ)Q^x/rMe_!kKC5"heaS(!O9ϴxQ$՘|:bLXxOHPqaG(eAUOYON1;DӅ'A6$՚Aњ_>I)~^[0pƀC/KTp`9[u!M]uX<Ŏr-PbT&WYqJO{_f3XĒZՎ7zPƓexoed\/;!9LӦHn"YWL6eVz|*cEVyRJE/Ậ3&΂IHeV\a wxqXGe6t/#j.[$B*q/ &)h`j ?jm/[ōK"晢z7~ӭJ[Ds5uw%ǭ ;eXab9Q'|N0ͺca{$>~8X3_5{|rMSz<A4d_^n€y}J׻Q܄yF.>HbM`&=2|*KgJɅ;VӇAD'WNn@MBq#˘,opw,Oln# K 'KZyo¤P"7*ܛ]uXQP۠uNϧmځOFDY}:Zw]z/MȵW[\W Ƒp\g;4Cvo_QS,]+ ONxk>P[sOVWt uJeØρg͈(I+v>h[Fr@;[NPCѴHw5X⍧hӁ N topeRDYqs]ogT\z^Uf!DN9Lִۚ`}l aGq`L.ӡQf{=јv͢q:]O {"S2 MIdO|x3`!~Tˑ|ł;!Y񌱷^v2͓ޛ!٦#0 ~enS63i_2PGUm@Bo<\R?Б Bo 8FX"ePˈSO~C27,3xZJ~C&zj R`a J'4!>E/G|O MۈݯM4#ENdY#P'qJbh%ʾRpf@A:Ea[Q_59fW -1$ěO*h8{= {1ddT[把FbVLZCK(]k/ z/B{ z/$apvqc}MW yS|ʛcB-n_ 4liI V9K[Bo méjrԞB(g ɟwWǫ~zm%C朸{a%50&ktONj?G/r|@CDL@(%g!Ⱦ;Gf~J..,yD<̐τx)qa_ 9ɶ`|`22%x1l~WiO=OR_C/2\)Y-jQAW$yd*;~e 3p$=a#H5兜oT*t})G_ ڜ֔kB]FJIe|Zva[fYT{aq־ gEYݵ^歊;-‡? ,AbM?⓼߻:r[/9p'X_:~y7X>{pU鐯ڗ27ǠbM mTk ^j;FȑS# 7}= K6tYnb4Bq8Jί—K=)N:Pd-\j: (kn I#L%r~> =z*כ~uR`&V7ZǣX0gx:K0 ̡FSZ`20,&!vP\06TiVH'պPw0 bZ#F"Ù;UmQ;{EEq193qUΜtݍRmU`_"dL(l]׌ ;_ytx`AXȔWr r܌]9h$/Nz(;MCd}D͛){Pz^$&ձ>>i>H  HluGA >SֶU_z[-a bdbHIcILdqׂsIfN`] pg)iS5MTB5Ǚʩ+k|R!UFMF*ROq*4dsqL/@,d&4OwY%$NV58:.2ȕ*Sia /(I%:EV̥e*\"vЬRi>FFKPniY)dV 6` ,C[+f^H}cv|O߆BEXmּ[kaE-G^5v͉݌|ڙHmRzO PIcF0xyu̫2rH7q=Nhr϶򘂩.hd@gtd*TѨ#rTǤqC4WoF$l4g }9\w0Wonj,=Yώ52RQHDU5%|-kCM5 v(lc!V/lwk[d㇤+::ԲpQv36u-p:~ N3_s$8h˟<rfg-Q(9f`~k*d;.{҂˓f~x+kv)c?E7G3eƌ3gaY>b֓5Rv2i1 dƷ>(y'|Fo7KknnW>}6<9GPܒj ع6eE/*]g^3c]/yC`NM7LyC @ 'ESӻ.IvaێfQVETW.ŦKYH'\xWkgj5wRg\y5U kҖ~7A{ 0ڥ%.0pz: 3:ʽqӐb"!$6wnJ)(ʋ NuTC+Q |9n HA]T_Ϻ*ЅhE8h 5Wf>D-.'LfJ)( E(24KHC&2Y3nᱜ_ ;H Qā&mӆ;39{N?W#)qI/~z5w?s+gNsYFu)`#.~Le Yc _  u3o /dVCjhTp+ŨYJU=NrUU瘋8AfNɧ ~Шl?I aR}-Q-}c'Ǹ %d}t-GvJ]: &U2c!d16 K.)wLf)"s٧`\cv4>Ch' w[ ~'A/hkZk+NvYoAI ' B۲K r3oaǺaǕLi8 lDz4߰va-ܢ[<=SvIM|16CCVRbڼ.+w 3_X S8Beބ*,Ԓ o=EP礙dC?&Q\D0 yij$>*6CNP gvlπéB-NF|j< /v $% Kѻ}1`ն`Ayy)PUv6Pz5uX/Ju=֚fdۂooL:#YKY?/3~C#>"HkSR*PUY܅m3_? ;lZL͋ BHAI`zS|JpYt4K ?-qN넟f:-yb;cn!*w:ŀMvLƋ##!cvt NYJCbX%4?$y]IDPcAv ~a y^!T~;Mji7mhK(ӷUhg:؁,;6X]F')}&;ᜫoj La6maV ‹Ύ6ݳ>Z^\Is8!wɏLX{U >wJ㴀. ҼXo ݃KB/L4{/qE9i3uv]}UcxPگ5٤%ܟ<(2j]dF91 g[#]j̲#կC<R➹)$Sl!z9XcŐ,&a~v Wt d&4@rd(dy(Oς*СӔ7Ù,s ibSๅB'`sn[ѿ>wӯK$9Uƨ|'-GRUQ]jnr 'nW>| ¶iP*mG4.hil 2n [U[7빾~z˻m٣54M!S,{0l+e1]/ϯp.eyD"KJYDF7AxLN!Pcv(΢נs uN=;W<ӡF+U3yOo]v8;Kkk ުlHE^),5vxdɲN q;Y21 hM+48a?T%] C(av !|R]y4i LrKho^6/auZU'^t;KL"¡VMDݻJiU>S}> Qɑ˓h QI5,VpDʛFhHW,$! M{r]a!lTm`kTpCO^B`H%|n LY<9 (TX1F[p"Fg / N|zAdd'`HGTEoPoyIga(SGRRZV{ŮKk iȓSPM36$s)y*,~XFi')K6GaXuEdsHTnG_?&] W2ffCn i3gAO}HM/0l* >VC팃5C=Y}8^R$TEewŪθE+}]ع,wۚTg8!$&5eX[(q;( x]3z$ƞrCE=\h=FDB XKn$憍V8X-0z,.;Ɨ~ȏ`o3 O??5#͜WSl<8yv!!5ƅ(P#k% xxF4*}m~2MmðUp_uπMlq5:N8-{Z΀'i#05 x`­* 9AYOheR0,ʏA셧O1c:6aӆB*f6gEr;Y+.yр< k3+>*Vmi*\D")_B+A]B "yAE(\6+W. Y쵫mjy l˴oYP'|k˒ *o{w%(K 0T!(4_m~9HPIl%/fiDg@tu˚( 4~Ni{ .*F!+L am+V팑ܦ'͈b2rSf1q?`K4M7$pRo- =1 }eseF2$oz3c}KwdjyhSG 1C*tL7bN?SQ j e FDj{F.nHJYϜK-y*GӑA[ʉs9хE@3pU`/cg .:(!,fvҋ=ak<h8Ca :(jӆ~d E>ټKcQG'SpȻhiY^cK~ãsTEVn=^ $?O̔#㦊oCo[9![g7)c "pίA5aCq"\me9gm>`_z_=^kx2"NWF,sC$_GVFZ"5@[  ѱAM\jMBMEY<" u}0`YS׮O 2I BM/14_?-{n&gFT0ᄅIB'ELü ]&HT_4lQrχ3J~N7emQS6 W+go$ݨnFQJ+DSMv]hN~R}uljUuEDUr?ۜc%ʛwtܿko`D9%<lm#A&FD`z[ Z%r{ Oh8i54X4RjDw}ѹ`&PQO44ߋ5|%y[t*^ooޝy|t~̀˶пdAkLXQ EͳX K9ӥ5_4uxg8df}}U >q'p, 5!9Nv]箱4 $cks!@zݝ`g"w TڕA]H>nȘ\Ri\J<|*$3;7O*,Ȕ ! :XjՀjf5 9T1)G$G2vrКyAagϿ˯/Ȝ]R09-  29JtQdx mկaº.p  ` wR*!F ]F%wҹvŖ;f^^c D++$2w})ZDAMsǬ ~e/(, e`X1ϒeg?%CUr.əj+^"X@(]Vnj؃I$R0d߫"7TKM0?LBSj[JHޣ;t֓ޟg\10j^xԪ!3.Rݼmv7ouy6q\O@*}Ѱ(?rn4MM.0SfÃ@hAo=ubWͲY󄷃{1+4oXlV2èXn$y h_lN&+qf5vCn0瀌Ѡ; {h: ӎ)?h%@.Y9|3܆O,?O=b41E3w Z2"L4#_6JܧI޸8j7,`7dhm/G]C)[vc^Sle R=q7ڽ0vK1h:48% ydBu6MO=WHITz7iF"A&n Yw3a5;M$:R &}k1!m ʒJ1ig.HoW~-8q^*ch*N ]g?,mu-{ J4M ڴ;00E4 nU*‡t,Idԡˆ/`;2wijdj]&8H7%iB0akǜ*%/PVुg鑘Pu]f犤WywyO`^CxֿW4 $CJUP*:кN\7{\GI9ar#(5|k[TJ)"+0pHQQ,t wNϜWO!WLz(*8,usu;gttn&K\<˚uqIP$/܉Aԣ ]dә?D_~x N#9UjQSF(xCb;N& FW@ɫ"rFC\ķC@ Avg̟Dvi2h} x&1h9@t* &}Zdc|5L|sg>7}HN|}!v> fej1}N-f#P4Ź,r{U!S}j:!>m\X[|T~huSM5pk[l#0Ip ?8>.Ph+]J),,i]h"cQ,=Ew-VMM]1.Mَz0A9ej  'vt@JK#s 5/huUTEOɤBg@6p?tSG\iAy7\1Rq璴.c~q^2Peבxznu eunW }v>#.xiL[rNۓ#Cn4 j x h\oyZz`+yB^Q'8/%u]W_ࠡ&2^UtZβ+KT8(wжT瓭g r-H`vG[PdDk,O!v'`=l=t^z}gJ݉J >5T{NW.fQǺ2;?Y)#c[rtf $t03@ж.ÑSJ/a >F_HQΕy멙o4f9"xwD Ԓ/߬FTV0[NO+Ł5&5)^%es썔#%P޵ jiIPϧ1'h31yN~\=RШY3fXRP.l^پqMM NWy pNqͥ&}&cɔ)0u\4,o [z<Y~b,TNrM?"ݾ*z,F&5teNYn"eؒ/8`C^YDE}y 'e (9ߴw_MCHP=|w\^-A"4fݍT鬷FA71!ug@e\1jtm]NjsQ2(FXkG r#_shfhZM21kE-γTph&l|:(C>$^~[Wk4*-:Brs7Re)cش %]"p PTD.m*.2A9>*+j1hl0`A~I tFr5r d"em6Sr== 3Rd5+C"lM/nd) ׷GETJyCN8Qj.ByB[ eA M+kب#dXYoիf0yuLlR/#!EtYU/D=B3@gJF>R|<S0i_1 4pnzcdd5KGt #ޫC6ОOZ :瞣Psjn[<I kC*uU2>#L<8FY\;D-kј>xfb;,FۦD捽Ac., _H:岩!!e}uİ;JDXh. R7HDJp%`A^ۊv%jJ46 n4z?@Ðfs31No8*-_{=6{0J6@}b,) Xp- 99ţf StMx5ct8ɐ FʓRu6tRyxbL^0qu'{E¤(ti]3XIa1 a Bh;ŅFs":UfO]lVƮ/Yr 1V'UJPn Mʏz.+ ZOE3 brx pdo' &W2s "O1tL #'PF{H>hdžrI |tKO@A u,VR.K<<0/OUءp]HKF` =[Kp`xMϡ&5L>APNa{VP_\C̥.)IjGg6X͂ю 黳0PMrTDye d캌[( AԴd\\$:3 ݘVt~l|,}"Mӥ d5Bb[ў }0z P>F2 x^ZLFMcioC>6 Q EU"]o&wÓtWcwOvߋG0m/9nsk%ge:a K'Q Mnŵ5Ee;Zt،%:L[JGQ il:wM"HY>(**P.؈8W8"~[և=c^u Lz/wރzG[!L4^ՓFj nZHXT' nBso ׺zXsoExG}2QcIzm_೴BdO,H?|&\5es.TnW-wP.)Gqm,M;&a}߰lYh 2fSyZmޤB/cXF\׹}-%c7\ SߖzM<Q+XN}d-@JvwL_~v1e`ͣLkF fV$'pKvG)5v+ _c`BӾ &&Ծ>}=ԇ "rgTbCt_luayo+JKlD3Moȷ9IS!33^TA+Q9]'R9b9#.հ ~ŕ0+q `u2fOZ n+\]FTkڽ1׆M^J}1L mXYm!kL~k ٭] V?nsp@7 4I|'j;0?}hE##̧Äw9. ˜:M3xi'KM5.+zfH^6 ɦ7u699}C(G.&E"/"@hoY)wӍTٷYW#%[\amq9_ 5,ZEHOZUC T{aL' y2f̮jg+z#m]~ܸZb <<ߍ{kras~d$r~nIy2A2)W1.[%C!K;b8O^)A+<OJK7'l`3Dm05%["'n |_ԃ}i:؄,RBil@FvͪO+…f3e[ak9F*m (lCnA-^J(NL6'%v:8>ѼLS=''?{u3ҩğop0%=֓CW Q> Fq\JV ]q+qGE{h )1atvFC!AapKP/ 6MZ kVPnUo-FHOC*:phM=7.x"~$TqZ;7&cD2/._/ awAY7]_u*_7͉ qPuE,z3; Gxo˓+hzFX(8eΈgٕq`KXTw9:JX#VcʭVǒ&Srk'-Ppb?5ayϿS*1A2a{`o BWB?'Dg8:_lo E*fn.6yaףV26mXg#2*-z  8ZH_,QOdKpN\x(+&?pTK1><Aºw6=z@|Icw+jߐE?3#HM`!X(2ju^P~rjN[=nƯaD8fd6r>wO'k̀N=k2Bo;དݡ.XCj)BQv-SWlT@ h51٥4aJ?.qbơhnð}l-{k\QuUs=+4ؕzXъ4|^$[hT1ACN7Ch^<} jYsM>s + 7߮h,#]3ͩ:P{7φuSҢ&[컫Kf\̣L/BHQ*! *}0 -+6\m~3dn [UID/kx-ĥ5}-ip7:wP|I{=^-‚uE (8 L2hv1- ~庩*D.A5d}A'e5.l{t}~G){XO(xNJc>Xc )qKse5wc94 /<=Q +v \Α1bw\ҥI,/}-!^F_ɐ#C%$%Im8qZ"s.$u(BXcՃ3S5 Tʇ >'һҏ{ߥV]-V:0u9wɳ{~O7a*޷($ⰹ3A뻟Gpt&;ە+XS|3/$a$&S4"stӝN^p ^œ;}'{ F=h>^>tۤQS3 ^< 9 ֮d'G:t$~\4Ź(.sbz 59CuC,(;s̐ږә0W]eAY+=kWJ)p5'ƐNH>k|d Sr] fGZPMr>2$P1"M}E)%'{VǀZ4B{Z*F8B ]&}/#? Q`@ݏB>Cfɒԣ0 jK4. 9*@]U(ZUfۜ&g0C\rO k2b/ו5 T_ &i@d }8otK+pgԛb}s5GfPH{5"D oq\ <nMv'8"rW2V=;% (iٔ f3UFQJw\~FuF[eoiFSEh\YPrCiY[LT}#A1+EDR *żREȀ)ٱ7lqinU + o^J>2n%LL [bC::zW`g+v:mD̩{=O2l|CTDj8yUv߾R=?kJ2'#h-DE(z&f%-٢rC 2|NT|qҿPu͢~Int1B?0v 9@/,E_)+.I/#SI8MZ`ƴҋɤ\*]տH-sZryVϐ^^p]ʬԞdV&WC!ԥCq*^d QMV$< |k8<܈_̇$DNxwJU,~,!piJ@#D/K]`Fڶx{!P*'_F5,1g j4+df/I ejj|pWXErEtD;*h^oU$ԥ2'v>Yާ.Ґq wEH/jJk1^W It4 Aj .[YY˼ bwAe'%|a pŀ~X{$쓐X+mXϯ1LUﯛ)61 JYuiLO!q6ErSN!H-a5)MM&:'&eku6SD#8}0=ʃduXӻ^ҽé}UH)bj7w=Kn uUuyh_AHd}[lDpp7Q砙>p8 XoZZٓ$]~'w\Et;y>wLi3+ObpiVL&lE5 |lc1ii8)¶O4` pB$/_h_ 8Z+3LFҨ6u~T&g Ae&1Y#oJގQ`{a }6 ߶,!F6o|j+Zڼ&4_H)!_Ct2f[3`ĘNXp\yČ\[(|8 2{7-jkFp.tJ/ԦsWnfkl"K2Dq/S>ڔE$P|sPPJ( b+dsf&^{N֪D)zoBTTs} f`K+ڲoDX+N@;b'f&$']MBD-?|!g<8h0Tk+Nȯ؀/ܥkX?yޫk7Uօ 4/7edg=O.=Mp4zWmĹ]3j)T"Mv>%\0P8Di jуaĀwIV+TģO ={-I`ot8b{z p,|89YMQN6 fÍ=75uA4tj[k_@5+̡ $T-XU93̧`6c@F b"O%Nغ0> iY;..p\9ir/DDG碛 \ִW-ˉH[A0F$B@bM!/ ϺSQBA=8.x;p&`۳PXDޮRk3Q qԝٮqy=Yu'5'5vh%p‚OvB Q*e"}#P;iʠ'k&ط{ ' k ;ݫ]ooBD4ivГIt(~+nUmx,n{?i'~~@ r 8?<鴖COt X4+ 3#%(msڣ0xXQQnA'$QiO"`Je.$c4,%m'_t 3v'=LaT5-O'_ƺTgDh˕ jG(AxGH2ۘe%fh^< 1BR<Z=vB¸ԬRA#S)vjr&sG[*Z=&'bmP0k=-'Cգ==CZ6}Eh{5q{icTe# >6kF.! 2>7>VCG#ȩTλ0)s{j@'`9Ϫa=dUZ€ ȹE\J:/ tʶRӐg^F/gHo&?;2fĀJA'M(^ f\pTR ׮>P{Ӌ,fMBBa՟y:U Kf6]_}\f:iEZYւ-ډFBۄNA@ӬN;UP\G04<~en (-(8)pڠ=%Uv)lr^p i(+MMa؍zGK0ɀuP=?Bi>E+ѪxK_xqu9S+hdAv=B}kRU/K@scCj WL%~MvKޯ=x>xg^.`I;(v#W0sl$2V :@w*<4Q +O75SF>+-]bJO piMÛs6Zk[2ά@`ħ/tv#u/V+>T'pkP\_UcHCYTsw( N,2&Pl4׺F>鑹n=dk6L_ĕX憬ZfQ3TXƔ|ՙ Oe͋j:]QVAh"?hRu,z~64,<yT/~ ?p@vPۃzj!RB豥ܬ# e͊`W/,řD suiX>px}UP bx qT}DnEVhtaETBZu33ȿ*{F.(tz 1QXE`NC#kW?PS{< ne*`%NJxRF.//U)/'NUW"gq,XNb.R7Ekݎ|0pYmMD{{WBa´ Y` A(j8$9E䲮^Ҧ7~ 6W5pxqiz pDk/d{¯0f:C!xM+(A`VEeT?~mueHXJKj$mx-)E3ԁOwW3K_PM1lgy"'Q]sO AcKUG8y,'Z+/w4f/rAKDB5[A8ض]`x!Ew77ŭp}wL).({CaT͕\(dDT`">e핌Ir~Ǖ+nY˕YBӁNg 0 hdZFhx>ljL5R.ۋZYDŽyjϴb滒>3']sm}D[]k`Jkϝ ̽e Kjo\,*;5 [JNet{E7`oרwv*!nl{1'ds&x~`4-@- =o璠i@ҟHoɚc &Emtd HԀZœtP=|Nj c%0R(@'nz-JΪX6+旲W$ $_VRBdN򈫷WeiK4zk$5&E$ `&.a26b9mGL|oe&_$(+qK :8ؔdJ.(8㩙FI]]C-x ZơL9`khVO~VOH2؏apxe]kTg܏43)r~# ~Gy0@l1@|%ط!" csU{C2Rg9mRFxMY,$=m=-$V=r'?Kh!vgRxhNץ9L|ķP/ )bII$xĴ0$Æ$E'6[lphV G-/8$T_@{sC瞂+t˭v>4ǘ;BTQB#~zģ6]Ө} :GwY&d˦$ :uSH$0g_(w掖^3"64b<1PL<pl'*ߛ&v ^iK(dUEm}s@ 8=@0ap`J2cj{k_< x37"#xE!<()], V@EbeR=q3i|uG(Wg[:.QfN*u ˷ӫ;yY8(/O.pt؞H$$K;GXNte(,oHd'@D7 AMķ5lpG0;MjC xт0, v8mI0|+ f'$DI#[~PD J݅/N%B}B{\X뺽uS]Dt| t"Ŏ?a V%fc(ů nLz@ Q*2&VO@2o:m zo6 Ttպ0 GnEѤd2PLZLM,+q* =x_aDŋҪ,4vR8|ӦD QYF]xܮ퀘$b]_xc)Ӛ@Ak#j~lKlyT{yŧYiBSX/JLs>1cJ@|%N8}-;B egߡ4INܒPLP%{e,kAX8Ӑ"4-fjL^\<+2j:U64Y PG=Ў̘g%$ #ڇBX _VFuBؤWh!*TPytCEDnܬJ=Es:hEi~101!ꖝ!.LەVq}lVNˁFs=1.\HXRwǘ=-An̄4lQJ֓HԨR3#ۈD>3FDP^$yK.҈ADp ~(d# :, sy~[$П3'A.}mi0C-rVMJ҉Ͷ/ Xb;83/zGo?u `@mt2S -ğDMdBE'VcjFhOS2i*/JJD½\,ggâqo4)A:Poq=. 9Cr@_nZmm (ڨ̫B<~wf2z{(Lq{~2akJ%Q?-uoT{U`ۭa3sn(-f@١-T ;ũp4V%89-MsVIgQt#"ꭔ@(;GgH}:Yiaҽ<mM3T©bTvc;DЭW-nM} &*0ķB=s%G!5yziwtj]aGdHq3X7?.Ҵv89mvxg/z(n˖!ɲƱFyM"u^9SJCM8Ӂ7: `˜#ń>t%X21}Fcr; _%lu׹DYwA#ވK =tOa:DʹFΡnjln-/m/Ӱ^J 3H)V]/Psx-jCSDܐcrq-敥Y_'H`wHLctv +Calc1 Gi4?ZMs?.r= gO zG?tS9僐Ӣ3:c] UD4U`XW=~9IŖAMAM(XP$*:+ [BiTfFR˛f;_.*K|+ɐmjAL942:oȠ@i^4.y9`/^}CD`U{=$)7j8hi,}ߺ!xx뛐-BeJٻ&a<6L1F+&טi_x_.Q%-f d"0_Gj}~Fҕd/0aW*jɰcylklMTy OȤ Vs7և+ah~l!*XTh⧆Ɖa b T"6O"ǍwzRC ;x`diqsĞ7i7SG= '}!f"{8GC ZE Qi9e'a7N A6m|vor/4^ 6F#^պjh}YB$Sͭ|i 7+'Ut:DHFL26.\ Ѩ'W~4/BÖ%ik}>M6 \u* 6nRlUbvK;$^27OJ Z(z.C5ej/;yBc5M#lƸk|uL!W_埴=; ,F׊S-4إqh=ã /Ezߑ6ZڭkKJwm; AbTڷK^eG.NaqąA: 5ϩHA[3$c .|e B @ W-Jo >(a[9O%%GLuK^&$9^q ZN25az+ b8E_yV_~ ,*v$ˏ jiՠSwRT@TJM:TVES1gA=l6 ??I6šP .aCOPʮ -r! $pw/6ߠ tYV;[R#BM@=ʰ{H5fS9]'e\Vô U֭@K ˤ9fFpFyq( 6mg& -gU a@| f|e!*#f(#ﮧm&o98 a9!fBБO-gLwKLB݊ {σ4/d  NyVTUM~mu)}x0tdY͸wCk/rA^@RB a1cW|_(3\jqj$reԟNGb!冱*=PTa8_dK=fS4ʿ1C\(٣X@E;03HVo>(N>I,iLsԥyM2>O4X46.M /O6KTe.Ջn*"ˆi]tDPX9NIW|Go߆r%ͱ5V6#SH(:|C^ *_Q$.ު+K^s.j2hkEWί =_ۤ 1__|HvIָ;^V-dUe"#!4<.:Bˎ6;]@B= 5W()*8DX,pDFa!*AΝs8גhfwƟmcH uEdj /p'>vySA YZ