kafka-source-2.1.0-bp153.2.6.1<>,޸b 1!M@eeeNs,|fWeo1lKIˀccoc*[*gC>Pnq'|8lȶP'c3;Cײvfͽn(#.`{ۇ5`|O=]6܄o 9DY)HIluaz ` < : [P q))&`Pi[TE"_F Jc@,R6W5s 41MAPBz3 *Vb>>?d ! =x|   X6| X Q, X k X < X d X q XL X X,, Xb<b`b|b(c8c$9cl:eFG XHx XI XX0Y8\\ X]: X^Sybcgd eflu, Xv$Ew5 Xxk Xyd1z(8<BCkafka-source2.1.0bp153.2.6.1Source code of Apache KafkaSource code of the Kafka distributed streaming platform.b 1obs-power8-04SUSE Linux Enterprise 15openSUSEApache-2.0http://bugs.opensuse.orgProductivity/Networking/Otherhttp://kafka.apache.orglinuxppc64leP}!}P:!2[!]i`ggeb_^vjj$J`_iulsunjxvakcqx234# u7#vAHu cB P 9WA+T} S#1'^Gx !'Hw h=f    ( J;  B  g{bY+tqhG r 0p> Fqm3"}V#T xD/ yE>$2HL)q N/qofgz ! p1 Pg Bb z  1)<2 ./D%\Yb{r1L;:8.({yA&pE!!Tt`}D }  *Ph V$3 1 pe/ !, c*b(Xvxy>r je'> [!FJ\%,M;TN/&Rb3Dg"Q(8!_X n   % + n#X:j U >J]*-@5A(Dw !>$M1) ; t_]h :@f-\ :?5` ~70$3]9B)%, !J$4KX/rGg6@^1,\ *1 ?c w$1 p    p *T]mio 1TG /7M>Xez !h5p+p Wm` :>?+4&$!+ O}y B9 +3*000 ^ 3 A &W? hb )  .| w" [} + _aV'0  wTW8@xZN]Vd @Bh{ E s!<#m0"5r44a v=h1&1gw{!   :S)r` %B` #;  -  |x lI  NpWd Z ; X&29}sqWw-4 [ [P5 (Y Ɯ PA . K ET I E4xlT iF 2  rr ;= )#:g6 GVqv P gej  $t   %K#Q 1Q OD hO $H`|G W0 , ?Xn;+!,q6TnE9&i%m {4)4} IS E6MP~%37A  q !b) m=y{AU ($K!I u%   1^HP Ln8 + _0 FSU"[?R&9F t-+B e8=T1 =93):ev<rScB< + Qi bXh H0, !JBy K - R:V S osG | eq.,0TT~'8 (  G'@mm*F6q\J Jx] T ]3=f*G)LD? sXL+piP H`'$  N *  9 Bj]a  tX'p o !>:oE#G%k%%Xz  u=+A0 c  '>b142 ZN%T`V}"~/M# 1 `R   0 $1Po a$l KL$qc >$K3N8 HDPKv'x    := U+L $ X wNQV `t!gYi N6E!#  C6 B = 2v&, .#' WzMN%Msr ~z*o ;. <!< dOcA!F3-GB)  Ak~lO!&sPwI:SI`/<>;Vrr[ 4&g=9W~*]9?. 1w #X [`*41   ~ TI3S{=35Ra^%A*%B2Cdu8 ^,9(cS0fA#`w GF / B<9 =* f "\() Q5  8 /Bxv !Br] 8{~-h1=,2j 5  Rp L{H!!lA?XǷZadZ XrүI>QLxVF}*ә IQ15L  cL*PYP<Q)T 6na ~/ m v ƈ xD   ng d D a|86"SWdO }*_ N ! SN *17 9B$J jd \'CMWYP aYP" mUxAwzAW ] u m # , +0 f CI TE  !0 n x#  E k@ \ D _ z w[= #. %B  e J&!&5 E+k %Y&A; /9A$] 5! @4 /oNE5"6 S8߈19 QJ! 8`[0t3sCH   F !N r GgA 1Tw 3*@(@0ZVR }  1 1 N v -#  1$ ' *_N S T#j1 g 2 *v%6  ] C\dD 0dule;>0 ['*AO)%#R,|K I&B.bR4#0}, ] +"} 3k  +Q{n=u\p")#-Mx021 Kd <42V =Wm?zN9B AA _&SI /ss).?#4MX/|7:^e! /Q@(6n#-c o$At$r.yd L+   Wg'2@P9Mc{:aJy~8 I`` 6U4D[>+,,u,v} AJ !.>!#P7 (dO_)t@"d2]+i$_, $Wp+ffg :d p11 0'  E  n  S %^|0/ < Q }|8 u  .qDQ 2 z#% m.` a:JLe[S@,+M  7GyD MA  6 [ } a f W7k&_w +wm $FXm =5 <)QE#n:" #}kw l8O6l>U/  5h:Kw 6 i** -); ,)#0 !F<#d"62!D   +@M$![F w  k K,  sX VG0O- :W)*J! _O  Q?&3+6@`4 \   < @G)4PZ  A N{ S8 V H>PJ)dF0zV 84qG+ F Z 1)A _.*"v 2_U,   , 4Wv"eA큤A큤A큤AA큤큤큤A큤AAAAAAAA큤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큤AA큤A큤AAA큤AAAAAA큤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큤AA큤AA큤A큤A큤A큤A큤A큤A큤A큤AAAAAAAAAA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AAAAAAA큤A큤A큤A큤A큤A큤A큤AAAAAAAAAAAA큤AAA큤AAAAAAAAAA큤AAAAAAAAA큤AAAAAAA큤AAAAAAAAA큤AAAAAAA큤A큤AAAAAAAAA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AAAAAAA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AAA큤AAAAAAAAA큤A큤AAAAAAA큤A큤AAAAAA큤큤큤큤A큤A큤큤A큤A큤A큤큤AA큤A큤A큤큤큤A큤A큤큤A큤A큤A큤A큤A큤큤큤큤큤A큤A큤A큤큤큤큤A큤큤큤큤A큤A큤A큤AAA큤AAAA큤A큤큤A큤A큤A큤AA큤AA큤A큤A큤A큤A큤AA큤큤AA큤A큤큤큤A큤A큤A큤A큤A큤A큤A큤A큤A큤큤큤큤큤A큤A큤AA큤AA큤A큤큤큤큤큤큤큤큤큤A큤A큤A큤A큤A큤큤큤큤A큤A큤A큤큤A큤A큤A큤A큤A큤A큤A큤큤큤A큤A큤A큤A큤AAAAAA큤A큤A큤A큤AAAAAAAA큤A큤A큤A큤AAAAAAAA큤AAAAAA큤큤AAAAAAAAAAA큤A큤A큤A큤AAAAAAAA큤AA큤AAAAA큤A큤AAA큤A큤AAAA큤AAAAAAA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AAAAAA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AAAAAAAA큤A큤AA큤AAAAAA큤A큤A큤AAAAAAAA큤A큤A큤A큤AAAAAA큤A큤AAAAAAAAA큤AAAAAAAAA큤AAAAAAAAA큤AAAAAAAAA큤AAAAAAAAA큤AAAAAAAAA큤AAAAAAAAA큤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큤AAAAAAAA큤AA큤A큤A큤A큤A큤A큤A큤A큤AAAAAA큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤큤큤b [ b [ b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b e1713ac62f6cadf1b04d3cf2ab63c27daae78aa5484793ab20ed8ee6a5a1c19ef436841e23fd173c3c77a3cdc7e0f2c9da867f146b8a8b9c1e9e55dcec4ac4c6100a8e8df93372245e4e22e25f9fb5b5db2a4750c65aac5cbf69ef07fb0b6585e99b6e007e865458570157d88d0a2b083dd0cd4395107b89e35334f6bb93ee7a7467885fe9936bda5268043f428df579e089f1287d7362c21a7bb30de325ce05f436841e23fd173c3c77a3cdc7e0f2c9da867f146b8a8b9c1e9e55dcec4ac4c6e1713ac62f6cadf1b04d3cf2ab63c27daae78aa5484793ab20ed8ee6a5a1c19e16a89bf6b29485b4065a61371b8f4a606e3504bacb796878be9115722d33679f5875110627666a61baa7ed1082b184856d5e65ad19b85c618af0efc283ac9d706f312cf543114ec1cf309d0689fec95baa338ad1db2ec21f753e6fd2620e6971aef34b0890f8215c20ad33be6b4ce5ffc758e4a7433d3ff20967972556eb9f0a9cc1a1282ae33f2571fa5c44ed2876a73166ef6fc75ee86a86c9434792ce120290e370bc43d479fe9b23435fd6ea65cf5f2a9675a58bb9a0a0d8a515fd4d2ae7071e6ea2172de3a295af090e3cf64e465422a365402311accb7f87b6617ac1f118a2080e2c001ae24cd6c1afd70535604f32817f1b345c9b586577104be8cfed3d51caf645d9cc1e7dc558542b6b9a25457a5129843ee40d8e35dfe05c7d5d0c4517ea56441d146146b7546d88828553f0c80237af88761fe899383b3a4568f9c7fc0d7ce57b0ab9ec9172cfae12b7a8f88d1120d24b930acf4e8b1d48beb7b28bf6301bd0b268fc3b15490be9a91a92a8ae5930ff755399a994a368a9b799d0b3be2c6a1af00bc134c1d5a85d975b876a797cd31340f764e491cfaf4a461044590d7bb244b51543bf0380915d9bb1dd2ce8fc186807b9a757fafd82fd317aced035186d351e0235216aa45d8e7f7082533fc595e1fc524c38a053003c97569b6ce977d230f2c73b5fad4684a5e084339fc76a002e997810b19a0db8e4010c78aeec343f63b101fb633742f695aaf52456a471c37100429fba3e6e87681ec11441f87b36c355ac47ebaa4c809acb2711e85ff909c5d85afbf94d51f2bf208efe35c7b229eef5882cf8d61885328ef9d79da3ccc2aed75394c0cc2b37c85a3105ff1986ed82a00e40012d5d85bbb80012c0a5b9ad8d035252b33befd131c8f3db88b4d02de98f73113537c7547ff93220ffca0393968bbb06dc21e8659ff1f2e8b1ff95846e98599a2c41387b53834af43de2399160a504a42fcbd20d2f7f46843759373397e76b54f4ac6f7a240fbb4eebd4b3f275cb7d97aa121978c07c2e24f0aa2f3031f16685b087a943125a27f0bc0a52711ce2e637f37985e8c64f2fc5634c886ff0995e1d0ffd300b9a9be9d67e28b6aac8919808f4ac10b4043957083bf5ab4eb740a12a74ac0c1d667090e7364c030f2dc6a294641933af3ecdbbb79238058ebf035eea3e993af58b4cbb3c4ff4391b24253ab8389b6a9afe00d81bf47217e6b48f8d42bec16476d080ef96cd1db33a2c140479aef80bc952ea0041cb4820e3dc11dd372ad93190ac3f4c95151c99f99716ea3960105de833f99218306f3092189b03ec9b80b1b35890ab740d342495c814b84695ebe99b94df106135efa9ea953e3c99883314acffedebed44321113f986fa6415ac328612e669143835affcd7cdd677b3673d3e333086ec58a42f3445dc7df7e098b09d18a5154b6f8915aaddf1aa701ffb3ee3dd95385d5bd2e596a6166bad635ef8db31f16492ca0221acef93eca27c1fa8ade3cfe57ced7a95b8d3ccb0a8872a350d097ca886087b867047877db9691709df26e86d429fd789ac581330a5ae7cc8f78ba01e5dcd92a754303b57a590198e842c172aa3ad8aa60924c54804b5b28dab0510c0100faeb8fe3a3eb352d7b0a673c19615309e8887f9a1c36923ffeece90404f1b599fd20bec393ebbe60fa0f6fe6451fb197c6f4a60ef2ac5a07dbbf70dfa0b0fce37f7366c294435e4bf8170413457ae36c7d99154922324a3602715c65f20a7b2012353c752e946d01862aa8ae0ef881f94ccbb3336fd34ae62d99187d8c5b21be4b0460f7e614fa765705dd8abbf5e517d2e4065cf527e9b8388e844a761cd3246ce760aa5fbd525557c00ee3110f58086034966f3898972b2422d69fcef32055b68f5272f48e2b60d797cd7d09e88d9a7b1f770aef37e5d923b6c892dfb3188afadf15bbcf7f0ac8b4a38b43bdc1799c5a563ab3cfc69427b978bcc90cd7e796beba563081d247ebf0195af173f3181536916e81fc746d5300adb6df4c099db4eb636db8f21172ea0c4af556f5b9d30172021f72108cbb305166b1c44966ef31d3cfa2144e5784f47f736d517c77c3dd1a9dcf80e406ba654922f3fde7c5a0d7fe74342702abc088a3c0f8f6a5d757eb65538910e49c2224f5cc13a8874a3597b0cd0410ae66bc2879a6460d9e6355d2a72f29b1f255b1bdf8619a6873c22a16558b0895463fa3bc5a79d7c82e059856d1efce76674d4112cbfe2a9210f62984fc058ba24bce9ad86d339f10473d7fd674c11f473882344583a7991715041d8376a374c90b9bf00f5273c7a5bb9fb825d45aab439fbc76c7a18e358800bc3a40b9e981cc0790ac6e470d91d21eb56d408e8501289b4d5d16897510b7ede5f4b7aeb506bbf74434dc4bd5ebcf60e2d52d9cc8e78ea413898b4c40f4fa0931b4671bfebf399b2048e6f027a0e68c4b1ebbede414ef07c6e6e28ff91f49f9eb040a24a65140f7a91e06e4d654a978bee0b3d69614444a61f14f1d81fda452a2076c090a0a9188b75563458d0f6a372f71395e12098ef2db289e62f13efe45fca89162d8b18a8639e8e669aa8f66cef571070688489a8cec69353be266f527e07ce2ae10a32bd8b49c5d80163f69e353e8977fca023fb370280e8d2fe9e73c5377e2f71bb5c19513056b555843973afe5478500f59d233a0655fbc2fb51108e1a84f4233f4e537da43fdfd5b852112e6469dc4f84941bcd1947b4ae61b8e91b66e8e1782410dfda2e0972b8ca2e3bb0d1f5e1d4e1c51e06793175305bcbbe646860eb9db94fb8fff362395accffefe3e10a5bb0846ba0423906881d605cbca35fa1298a9bf0a4c7693e613add1555c5a48d276a521ac0fc70d6a0e57329da3cde7a80577a13d50635926d25342f14af7eeb4a8f39106133d08dc1f0623486478418c8d40991e660cc4dd613231008afa44762fb9fec60591d802d60f70aa61e1277693773d89bc6dc9cf410b40c73c8d6c72891ae585ccfd79e71c49db128fe86c616be5d50dc7df279ecc63cad7b649e83038f77c11f480f0efc624f3e2a070f0ffe57b79cfed5b2dd57d75262865d6909e83a7ecc0cc35fab65e4c384631eadc71077a74216fbdd789aa4b9a19697078ed3f52950d98f4084677841ce034d742978e6032342000d2a2dc71c391187cf6406ccdffde985097c1d58f87e189e4b85dc02bda3bdcfd37d151e20a0a1898ea7ff2806a4bed60419f7737edbd38156aae0c53817850cbbbfbbf76c2bfd8aab50bfd35d257b73d99d44eced779a6e09d10f499bb726bade3a8d251601bbcda1b1e4936a72ecf27c7432a1e48ece00fedcfdd01c2958da5b52c6e56215f0923e3440286e3ced4da35fa9128aec0a1031b238f6c1bcc000ed9244deb149df03171bc021212393481af814dc0daae61028ede7e96ee0691c0501ebdc14a56f79a12de8d4227667c6d3d3e7df36a467d73397f0798e0bc32b300dff1b047216d2b7874bf90cb57e888ba1c7e1f904a8eff41a5a2652eac41762b8e8d14a94edbdb965ced99efb6b9fa64ff9c833b67577ab4bd6724fc35a3a7240c484e6d1aafd2fa4346163f14ae6e61ba7d63cec9ad527e5b13fb3349e3ba919028173bd7082bcd90485d2c0b5e34bcbd406a492d4494ffd537ad6239aab2b808e6f24be4924d3c2a9f5beb11595d8c90661ccf68ff4951c07ccd3172670d7cc552926d7f5a5a8ea9794a51c09ae42d9d014021d4752156c70788c7c1ad76a169dcd3493e52bc016adcaaff923abb8c4141ffc370d5b7b3706c330ad6fcc0c0990702429ad36b21d8604d2fde9fd5a2542badd911a5d171b56d27f56a05d80766b75bddea5aa5ba754e89f050db51e33b610bdf3bc69ba9240360e1bb5941c613be38c90be89cb8c47ada8ef2bbcb2f6ebb6fc104b2181b01606deb918e06a9e8d8f31d80493f8f95ec37641d995f78742eefdc3244c6c2e0fa561b96e07a5162bbeb930d1d34193e4609ec04d3597a48cf9b349f897cdd308ec0f1990498210e19e9477d64fee03cca0d0bdcb8b626fa2da569890ded630313e7053d48f4c30fcec3ad562e5f78d8153eeb8f523481f009cd9020a20a82e4b1de0bac26c17496677532f9fa4d0e29a5d030c22075d1c36f4fcf9a109bcb30ae5ce08001bb7795491d2312080350e07eb505ada0a31328ac0571a4f9997359f7f135ceb85dbc58c52e9da2d04f1d6c1dcecc6197f451afc66b68f28d21e6e3db48e87f7a0b50ed93511cebabf29bc56cf77228d139f941732328fa279a2cec6176152597378c0d64076f031df7a846f3989fe8d8bae2283e4d5f0473b03106b74abfbd3f88f27c47005d5acad5e9011331ce249cbf16f85a42e2f4bb7b974f50aaf46c467c4e0eb37efcf46b017b747b189736fe3ca819632ac50f30c4d4903ffd185ba506eb362bb7154ca6e538f2a825f041cce3fa83c9b8af7a75dfe859175a111191ecac817ae5ceae11b014e113728e7a65b78b463e8a4903d785704f2b2235b74b74349e147cb905f7daab98f40b7a93513ea087c1c475323f0984c05b7fa533b5777b71aea3c15e2a09efb16720d20b34860b173877ab61259e72ee166a20ec13afd7eca7165c41ad447641f949be32db3728d49b6704cf87dc2d0399e29eb9b556c6f0adf554c665c7763ec1d97c8b5e65442e8e5f0b7b92bc9e960d8f7c88feccb8a0e73c019fbf769d102498442f3fa5dc7879ae2e27864b4bfbb36f9442df6164720a559353096bb0ca50fcb7f12c1e5e440194507238cffbbe3249f861d9b33d0cd0a2d23e4baae5357b22adfd67eeb2435b0085cf9fd6dc2f4e59321bfad58416585deb7ce2d20043caa5ccc703d3a17bb115403742c84c7b41d5fcc12ffbee2545b98561207f4a92a092612b9a98a9df358487aea4341645812045fd9a02277a3fea6c47baae8471d05b6d3fdfbbcb235f1372e32a85f50757b4bf26bf187d228c10018955b1bbc6dc22d7a48ff3b6c94d9b1ee4c3f52b531c5e8b159e7e96dfb561cde2c7a948c2cf735e52ec2d47003489c8371cdd490a473dcf2dab725361173a1fd29f9d30e434add385f1a43198170875bacb0a6b12a18383b5c478fb6e5b9553ef32ebb6ef9afc4a67c54c1e3ab3aa410608a2ee20cce9a3b96e873d60c1c134afd569a288ddd5161c02153926ad41239e69ea4f30826f0db512e8bca39c6abde7a6f1a636462e4367b609dd535fdc5f40fe3c07978635eeafd4e89366fffd8fcc058ab83cb3a302db66454fb1264f54f8148985d910e84e3d797cb5028bc5e60576df859cdff16cf67ed11490b25c3fc04602b24432f944b41599f1c380b9cea7da24867beb3558b797a0949c4e799a7eeccc0d585899325f1ff90176e7b46c8ae4e492c9a9074f07056311ff36fe63bf80cff64b60a7cc9d252ac7f3e3462dec7b621f9994aa02d5f5d839110b9bd9eb9e323fe0456a678ba8e47dfd4632270dd7d96b2c4d0a5f0857e2531f996a8e1bf0742679d0f1789841efd1bb21e92e07efd316d8bb674417f7bda66b3542bacb6ac62b3007a2393a97b81b3a307cb4a81dd372391ecdb7fbc03eeaa2564ca7dd738cc1c276dda926f17565982a07e36b181eafd40a581938ff9f8c303a168def822b8776fba8a6ec3c9a215c6fb4b4d23b70eeb1013f4878f6ec1e42151ea156cab73524e91f8372213a021e287a6092c2e62c766d596611c711d193c321ca72b55ee22a4838b52916bf214fae7eb6b5400c43d32aaa39b8db0ea4bd333fadfe342a11f4c4fd95a6e3b8af5b5faa9ac36062d78fe5d806e0ce1ab9975900b9b569077eff5bde3510fdcb2fefe62c29eaea1c5e21c23ae56a36306abfb82760224fc6362ba03dba2d01ae0194b983a7de187818eb03480b3066ddd30b4732da56854b2a79726109c8c0a36c81b53ce38105b6551714bf95dbbc8f2c5a15a244ca95ff7a916af859d12835acf0a017d5605f5c9aecd1d02632fa5833b0a5a89f542f7a37e2b3747ff7b64567d197d39b92316da50b93e7489b60996ee4783c3306e00d94749a8f70eecd7a670821388f45c8549963d385ff34663b59fbee60d0b7d79a857a81cd92d1420d5f7b7cd7a835425bd8eaf074a1bd45a5b03a85fa64e6750e977409adc3bee1b5b1ee28641ec0a4e20b122bada8e7a0a0c4d77bbe009d06073fb3d34c13f03b2dc95b346b761768c72755d75a4baf00be638e35d34f7a9044369a427ac0a04b7afbe9e9c4682ee489bc447f2b2f5c003dc3cb6f2b09986932b9fde85fea86b754b96a5bbff088728673554095c727decfcc6f128ae862d2b2654250d36f1cca976f7b2d26d674727dac6ed8cd5f97aa3e9637381b43d728f9e8139a205e65c2b1d0fcf00ca3044df6bec90999cf848afc638f919c926053e332d5943703b626739c052c9603a3dbaf67f05b85920795ae31eb27dae1eb145c584f2ce4a18c336a5f873104680055e7e60ef63df18bc2c2cd9e42cd8f936cdd4e9e85989be05df34ac1056a13458aef1e036d49e43622b311c7b3bb3e267766477ae913ce1b7977748c1eb116a7f76ec1186811dd776691fa22c5b93ce99d3cde83c131cb6da0dd445c369e6ae8dfe618466de4778e4cd3b5d5e2345b8a52a107f14af52fb137c39a85a2545a3bed026bbcbaa68c46f106d0df7b162ce8b4fa35073c62ddd97c4ee5ec83714752a25d758c8609877848465743c4ad81326cda6db291e33afd95baae94cd4f9a0054c51862777a411a93e929940863bffa5f8dea74bb262beaeb6fe16c8284eeb2d110f499539140f5570c66be29d3bd097c64254e9e39e10fe5593f6841f9bd441cba410ba4606cd68eeab70460bcd4c5bdab7322da0c9ab2cf6ecc9400d6c3d2494bda71d7139fa8947ac8e10dcf7a0a12c0540ad4f1f6d8bdf6f53adbc2cf1c21590953b82710ac4a99db88988d7a4dde17d9e6c5334e0aaeabcdf994857a37a918dd9cecc70fc0f9e0ae035b15ead0c03194341661491924bbf070201122b6177b477940e6a3a5bef4eda1eeb2ba4919a2fe83256523e7b2d7bf0cbdf5f1e8abd0767d6c919c08079dcedf319f495cb44fe532314bdbc3b62936cd9a91834d0ce98f5168f6bd9f7f20f53a37b695e80b0bb37ca6f7677320e939bf11e44a024748d6a868d757bbfe819d90f00ba15ce369d12c29b5479da7655b4afb17aff76f15e257282b455bd5d540c613b28ae56a3be0d0a7339910f29af909c4267c5804d47d660a197aa7cf5f0eaab1c3edbb6de4453a1bfeae3839321e14eb3998aaea0433558b598cf519301d0ca0b3ab37e1f2183bf6c64c3ce70d3d7af52d863cf42d33f74278f828b2b35462268438e5ce10e09b6607f650c8bc78c4832eb6d231e4d4ccbe9de9a65c73db00bf42120ad030fa1f3860ccf7a853be4fb6158600f1ed0a12e9d1cb8a865f1a32fcfd47da7a1236cbc5348ffe58dc565a0f5d7a784fa872f9b7b557259c5760dd1e948984bfe9187811936a5d5aaba78a6813af258ee4cd38fe443699e93cf8b40984c77815a7743e37664ccf2f76d10f14169e5f9d8851d0f09660c35f8bf60c0808417dfbfcc629360c503804336d488e320ecff72ff8e224d6a7b741f2502c6e24619531aa049e526a897581f5fcad155ae6d04b26a23b2a652b8c7268c3dd2f2cfc581927051d2a744b99d3e068a4f2b12065eab3aa20e1dab0f7402b690d861fbad37cf4f891daf2cfdb9d46f362ba0f021c9defd250c1f7ad83f959a967099ab0413f81f1feef32602dec06d699eaf370343b72b0286689da7757a8fc723c9680b4d9b42ab0ed96aad73ea5021fc22f11dd456f857c5a6a6c0bc1fd0c17a25e4599a87a0ab782bd45c45cafa4cc122552b96dacacdd7371ef390e6715d01bd74c3ffc31446136c5cf671b777bee7c4097118437dce1089a44b5b9f1219eae7776a4ebc54453c92ef5f11720eb6e43547dbe4ac1e91a7ccebdef0c836e2a5cfa7f4cfab4844cacabf1c915a52732bae986debae3705dcfb3182dc3f47eb2024e0518788ee5d785d1bf4d294df1ca9826a61ef2e3539fed2ca387bfbadac9a96ab15b26c6bfe02063fe13a1806f26ab019da1d9d275b2eb0feb22644f9d9fe470a42e8abf51b98221bc3f296db431cd7e4a1156aba97b073628f12830374b33fb9ea2d06f14bcc597e8d77970366156365b2b76ebc601ebed35438fa62e72144b3a3416a9588c0ed10172759e5a642f899c66478eadb3ccd02f3ad09feaf55081b4853c14356c292756fa21641566813bab81082aa396575344e3075c9d62fdae2915eafefcc86e3c89bcf4ce09a9a84f84c5ca4458b820eb11e1d064d00db255764ea135ed8b992e6c70e07ab30738ee7c3c24f4578826d4fbbabf48981cd6e663202afd9ccc4ce375a35b0e6de0646aa1348fb42aa482f025d0a474c53e8d2a980386a283244932d016dac590c3fb27a259c2bfad0aa5401a36da897d2ba31aae0b741ea7c023c06ea3bec8c6d220aec2793400d1517b6ea0db1865934360a1656977d988f21e064e01c0ddc0a4ec250c434703064ce3f171f658c0244112297cae2799dabf2b42a88df382262d5fb07ddb689e39b20d197a0a85f4d9ee12eeafa6df82cb7836b0cf322f4593570f1233a05382c0ba66689c123af9264f3c12527bfc7acc62b799c24fa88faf188d0446e34a8706db3549c4598a5dfbce9a40f65e49078c8f29dcfaa354f57ca61f757e97824835b62bd78d6ed56f5cc7aad347c674f384dd6847b399330035c6e31f13a2e6d4e029593a72f99f2a228be9f1f60c311de6a6afee4efa45ae5d2ebeb71884d78d67977b5549c5505a8b818b41ad5bfdeb0a6aa6af7c1e24b77ef80c166f8b9b1743f959d8009c3091e4b0fbcfa58f9e4fbe12ab5f27a63ef2f6c2086564c8bf0bb99c2d8b3a284a58ce5725d73cad567f87c0dd82645a0313f9664e7f8ea84f76fd327fd97b6597a5d35bfcbea848d55eec199033795fe9b7626dbd15624b967371b51e60ae31224b86430979b92168d1bfdbd87aabf38034ebd98e5ec91c6677769b64b77c50299eba0cdcca3b93d400f7b92899b1ef5052e0994dabb68b563bab7e32937967bf31546813587bb9a3cee422d430b40755e2459d9a160be11d0737bff23ca017a73262775d4bd0786f246eb0286331b1bc19050a879065f060fed77a0e62772acb2bba0fc8bb97ef683a719fdc7681201d972f020581495d2998bfb67eedf36e0dfd90987a2088e288fd3eb35cf28064ea95702490357ef4294087e4ac831a647db6b959f927bbba2c87eb8fe7fb0eca674190a5324693e80966df5ff02d25e6038277999ee75ca96fb49a2fc47931a0a7eea2e53d179fe97e1660572533eec4bb14c989489b7d7c5d358f923f0619c6bb4fcb45fccd9cf94c544f928eb1abc4595a141f3bcbf52ba07cdfb93a70fd4ba409987fb232e62a6b56e3c2e4de7a32126e7ed5585f6175ce224304eb4d91ee90a7591e3551af7ee7ec9c045be5ebe995b8fc4e5a8a2250060da530746af45516ecf5bdfe375ba51eb7d83b8d695e84842250bfa1bef74fe1c2e3ecbf16b10c71a16815663463b08796e1f68091d9177a806148cef97143a79571234627d8a8653771183eaf3b49fb59809e46e7f93d3adeff1180ddd782e071b204cb288675a2011947c83e11463bcdad25ee96619370a34e38eb80417ed044dff72e10d57c0f029df838d0926703a8ca9eadb10b23e87d9a89edce61c69af898a051cbbed5ba329dd7c682e5c945c6823cd7e5cc8485e8ab82d5ff79d8dce06c82e48440b86a9057abd6444fb3ace686fd22fac79173ef07dd65f4febc7edc3f099f12a6c56ebdc5151f77e3dd5fa5629702b85b986a82b9b18d2e743b465e520353c5fa50dbeddb9e09668940c6394f75ca7cff0b7be54f0a6012167296bd924948f8b49949e0b8295648303589e45766025e21dff53945fb37475320052f9fa700178378dc21dcd18a5bb34cf0288b3ea567abbd0a6f36e51d9d06ce2fd133797fb1366640c2fa0626f0a8adb2eece81de82ba7baa2d05eb8be8238bee43f116527def8e68a3345e2014e8b2c651282487bed5f8249369043ebac5ab8ada7dc34be68e09faa20c0805521e0994e713be86e7411a2fc488bd1965f5520f2b3179677172bb6671304112c60273ac1ee92e6388576668954e2982657506cb97818c5a0a4d3f8714a48c404e96de7d3d6c8209492c9159359ffda5ed386f8b5395cf090d581d98f5ed8926c8eff7b4a6781ba61e6f9b66d9a23a422de4cfdc0af373a1f7e9d8e2e051addf2e01217b8289f15a9629bc622bf8f971b904b974e352027066f90b1026d799cb9374cf2fd5bc78c25814af27bcbd0c7b4986ba734ed4e96646c0ee7781367de6de2fbbd1202e9e069bf81e4be3b7775491ccc7b5f3a231dd9ebf326d1686bbcd74a4b803ef141abdaa8bcbdcbb320b1c0e965ce3492ee7dcd954372380b3de2ad0d2c6a7468d204e06a8e755a5667c53268f26bc7727a3bd9d80b55b23b76fb07cce05f6cd3be7bc5e14489e74bca2a22a35cc81b0f14e228566817c88061d7cfeb65fe7daa164dc04374ed25e3eaba8444c4d97d08a712dd802264b71a61b9743acc2db1929a612d22a96cfb82a1265833b9441d80b4d01de5cc51d5dbd60a99664f2fc821859ad3331c9e231fa4e4d63ccfefbeafeb39db7d7f86ef5b1d1962a79c8205554c6d2aa0b11be8601cbba441478978fc0e96bc723bf89a550c55cfce6e063084cc6ad441c5859303d82e3d63ba0774ae955da69751b559ec9a9e1ebcf897dd94ff7645724fa07e3eafcaa734863c0830da8dac5ed46cb4979fc23a4ad4cd1afa1854b696cfdd491c594ca87c2b45ba0ae193a6fc6033a9b36223bae47b73a1f774aa58198963eafa1b792c97f5774fdc5375807367543ddfafe178a2c02b6c2a9786509085a1e4fb41c89fbfb42182f62649a476ee6659029c6cd16a9d4ce2a4dbbda3e04db5e664478973258dc9ab04c0c2252ea0da4af54241c8af80d0ce8beea802ea57b5955413457834e7dd84075d0f8b831281eb39f967d40177343fdeb8845be2fb2663d235f7adcb0ea55fb2610475897e57954427584a5653c60e222e05a1e788d5100b42aa6c4e64a1328205a727c657e5be00a77aa14c7a016fe25474bb64576b63bf21089fa7e760b0c526136466e3027b8640547525b00174781465a21fa91ad7525e508657067914823222f98f81e06405963283d929d3ce8b5d4e108af83620bb31800c0cbb84a86c6eb782e6180ba7f5dfdd45d344e93b80fe57dafcc79388d8c36d99528d86eb84b5664425b20dc1f11767c1a736916c143c42b99606dbb320e0d64c3a6bbf400515e915798c6cab9d0ce07793ac4a8e8edb5b013485e88db2f4a11dfb4421a8b3229163a5f58af6d8672479ad8ae476af6e3bcdf503e71688dc1f089222cc829d1ff62470c03bb835d632161318fe5e7bd8c09e0136c291e6e64f6147123adfe4101fc77bf1ecf4749a767ed85aee39099f6d809ac8c69bb3ecd0d78fb8e608e47823174f338e00caf25fa1d9bf949f8e5c556fed4bb1127fb8bcd818de338264154386631d6f1960b1c0fcd43bf98aebc5f7dc632da1c7ea931f1519a00d8f8177789bb318bd4ed7578e9f8288758cafea99415c82db9a3726bef86a6a89f295389bee03e3a75416a79762baaf508cacc51fc3bc078ba426b266bb996c9802642c4658d474a20d00d235765ba008a6ee7630cda6d59c16585a284b3cc97f8fabf206e58f78223ca1baa75ca93cce997cbdf6c48332613aeb83cc5b8c5243a56dfe067fee792a4bf0ad0f5a430554acc0e65974f2eed6452ecbdec1a08b2b0fc8ee0939bdaebdc1cf663e10e983e57367ac4250c84373f5b244a75f0968028d68b51e7df4536fc78cb7215625c5c86eb795fcc259b61a6f00eafcb55ad84ffde733bdc71dd20a183c3afe2d88ed15fb1149829daeda2c4601950e4035b5bad7b5b99885c84f0b1d203779b3213d61a986591b089c7bf8d6fd0dd6c7f166c48027105612d184d0a8efa4bf8936c16f20b94298f667514499db900a3bac7f1a42ba46c921c57641477fac275abd88d7c4fcde00d7a9d06f64e5325fc961a4f3ad4488ee0ef4abacb9154c5cf1d452ac3ce93ddd644fd5c4d4e8f3c6947d946db88a0b562240258ef2a256e8c3e8dc620024d190c6c996fcbae0b0be8c41a4b74b92dc90d99b8257ecb0a6ec68b960effde8820efa4cf1cdb660d2b67267a13b2852b0d880c8b6ad81e6f308ee07599edb48cb8c9ab42d8f7b8aa89ae4763c3449ee7e1bb83a72fd28170d32b106e6f953f1341f44c73546ad31a28d1b0f3c802483a8af0cb40aa0158756708090fb354fa656edff129d4a296757cb125ffa84d178f9feeef186af0df453c2ee0f8b74e901fb56d041b78b4f69272b6a07a95933e2e170e343f160b2c6df57f985e717b1324e8ec5220f6ec1fe0502bd09ab9e1f4880fbc30b9a96209d8a35a4392d564ad8a37e97158ba8e57ff7692d2a91a7bbc948045c3860367fdfc4e934afbf29e848bbd4e5ba664b67416b5c2edbbb68eff99824a4ece922e955f1db10ba0e65583423956fc459f2542113423a37760c83a2db3db8cb922706bf8b4c460d8871de264cc0be6d58b2b0da8949b0ac5753d135d5aa3066b587f5ad2b80ba30befe33ab7c4aebc9d44e0b6453dd06ee13e3b4e9e337ff54e982ec9376bf72902dc88c4db86b49b02dd2027e2274686aad9f1a573d469e30f633a74eee866389e6fba759995826efc813584fca6783060b196093ad5f00666fa96d58e748a554cca42b6f6057ed71d6feb07f2e39a6941097e7c6298463f063cfed0041e8e9d1b86e18cfc13197427cba58226f1e90dc6b309c7b12fe97c7be8ad0740ec6c7d75eb6eada83d9128e222ba89764501ce6d391274abc0f88dccce6d36431fc463535f859957899301e94bf0aa0805950e36031f4df7ef6f1706b4723f05a99106bbb212b5d28ad84c55b6628206c0eb5955146a8f2387ebc991b3dd0f4ea32ffe9281a066d17a509eb1e2873f4cc7ca8eb067ff83222910a71a09c97395b55648acc5e9d5b92ab7cd24361f8663edd910bcf285939bf30f3289383c2955d03c83cd9bb0beddc3591300fb84cbd037cbc7ff66b68c6d8695edad85bd3cbdba076279ef9e980550cfaabaeb12b75e58f92022b13f27ca803298667a79e81c6838aba2527eef3ff834076af392e927509ea49c8ff8187d0253f1a354a569b48e8f968ac4105f560a8dacbb2bb0aa482e911ee32fe3f54a490b9cf03b52fbe541aeb3bdc01c6f32b8dd7e948dfb68e726fc168445797b1d7e4316257abf449fb19539d083bc99d7772fefcbd1e2fdbb6ebcd4e5a6200bb6b9a1afc5c61f24583e610c2a4005c0153700a4d31a6fa9cd5860cee934001c68c9dc017ed9e0c3598f7b264fd48b2f2f3d26b68552582fb09c5c755d1688bd30974b5530a7b23c1a22abd2f41a91736294419c15d1c41061593782d10daa54313c2da273fc24e421ec0e527d470c0bb8cac486c40da8f0949b5d506319d45e2edcf3dc3ffd5a3a6d715c9954c0314e16fed21637b42fc473ec2950b9104f709bce4c9f4e99e709fbec6396e648715f6a58300a69ca02f70b6c2c7b3d8933f84ae14a1b2b271050a772efa6c3f5410009867e6d20e538ff7b3b59f7cf5faa13d4fbe759e6a55389ac13e9d2ee690b9bf56b99308b6c6a367e112115a60c48a07ad72059f17788b8868290d8094b5351381c1c6aa35042131953bd7a528d81a23d74b49cdcf6502b0cca355c23a9e2e32321cbec6db1b6cf51f0c535da2c76741142126f4eaa060b13d06c0b83a6fdd2c18fce0bfa28b7c733705369787b2cb43f88c131302fbcf125995d65c4b1881c750d257d7734d5c5cb4a4a353ebc85ec9f69fc0dd7b8c1c62dd7a2dddf6cce4406516127de809c06d94619a443d671c951f99f41b657969bf169d52ab9407d4ef78efa34bc64037c0c58f9d71b6da041e966a85e003f70a93c3fc37cdc84468d836e1cde363c7e0032b2094db745f2b71d68005f0ccbdc3d326d8e8619e9c98b9cc4e457997871b729b9cda493403a748cb7d97d28a19a5436bc3b7d5e9f66c0541f73d376267cecd6082971af0c883cc7e5f569c2fbb0d971426fa561b2ca6ec0dc98f45ab32129a298a118418aef679524772e6be5ab0cb5a8a09ad19568f496e6a71f0c78748c63d05bec806a3419f8a01d2b724835c6acd5baaf82bc9f548f7fb26860ee201a959aa93e11909ea3cf13222a565d144e4b1f7c58fd86295ed5bd9fb17363dbbac8e6ad290cb7a0cc7bec673fdab91c0081cb33851737c2a956ce879d3716198e852991649fb848368c6f932ad33d729574191cb4793aa26e13bf4be1cb665104d04ff3887060c235ad6348e86fbf4a0a73896fe3a1c6ce1ee748a9ea0564b88791d3cabff6d38dea27269e32390e99c59885c6e5dfa3a3afdac2d40858c79ee9e0d277c681c8a4cb101cac729097c1d484511247301ca64944676ac1899fc9f174297126ed452c15e0afd525819a52a0de403a49498237a9c745c7fab3580a05d7106fc273bcc4578c3cb1222747a8d8338e8b63c7c74e896eb6fa2356fd2b2eac91fb0e87c7486325711c59245b6830d8152da75f87dd2813645f53c735f54df30cd30b6cdadcd431a5e0a017baffa3391ddc6c6b3c30ec4807b600fb14b0d7b86d1d960cf7019af773328a98b1fb7e02f166ecaceb27eb52e8ec6f0c21c24f53ffbadd0cb43683012d2480224c2d4be038081f48b088c3171e6947d2b62f381c3638784606915e9b4bfc193ae28d89a28000c75ba84ccca05adbb7bd04885ed0a8669a356c00bcb8bf8428ea5bba611e21db1fd126e45971a6d31f228925cd4f6ba7f3ad7aed1bd47bdf9ff9b5d046748211f79c4e4656bd80a4f5a1cf8f3a4cb8d9e15caf5845897f86852de51266bd6a875e3c44e250adcef67e48f4636d72070555cd44a6e1d225e36813ca6e584a15a026ffbdd7c478652b87b30b4fd630cb63d4df24869f75c3b59cedd801267d83c7f9801b46c67b8ed0240d3aba75ebf23bba8932b01b4444b29858b249c532ae3411497e39f9dedc039ee1996e2c737375cf4728f83222cea637150117accff627fdf6b499db5a5c5c7b547d2a036a0bf68af11f2ea13ae4e71ace0cdf2b7ff6f689f11808991c7e130c8e3e158b663fef21e586303debebd54594bbefedb9b8bfea4bf7c283df3513c25ca2085b70e716db3586f79ec65d2c5142e1f01f1d759e8f6fe399a514757ba5d45d246e0a794cb1819b5b1c654bc14600aef9f9f272a2616d7d669b12dce546116369104ccbd3d2b06e99279b5f97da5605b1da817750441bc268044b53f129ce7e2de803519399e3d4b9cec4b72a5b1bdc29227eb31433213115725952bd98812a07b0629c561a4e2a7a642d4d66fd956c05569bd46b339d6ed60f75a3f1c2029511de1a1406f21617eef03a2869dd4b0803d2b4272355e086c3798610c327e79f59be544bfccda276a0bc10485d2c517b2b6b8d9eb461b5a1164daffbf1ed0678cbfe56171c7cbed935977a752b74fc73d4d1cb0af14bad045041ab1216619116b2c06f749bd345ac077815a23af2bf25dbccf5703c43762a1eed88a9a29176d77e7cb23396e6500bc94c0cd7ac607588b81bdf2f4d466f6b73e1f24ef89dfea94dc8114a9db627457e5feb1961a11c9933063832eebc3ace9001b63ec6382565de172bf15ee231dbb41a8700fb333505d1a71ef61175d797d2e00b9bb0cb4f7c5992bc6e737dfc936a3e7ec86912fac7a8beef7a8817fd85fca660f4e2e5b8eb564f9726ea14679cdbcdb585d574a18fe2032ec4a07805cbae8459060b764624e1b0c3f491948264b9353c09b240daed00a4d7611d910f24078de695c2f4b3337ba0b85d650ad3979f2ccde277e804b2d600654e8a2e3e839aeb30d4f92d2d5472fe342b0e3e5724b140a77fc0347bb8473a9ce6f3305e3950da9621dafb682a368aa74ee8a406ed7be06ce13e098483998eb7540273d6d52fcf32878c17b8cdfe784670bd06ed31e7370104fcd6f6a7ff920a4c60c2db45fa26ce983bfc4473d171038ced485bce66e71de4fcede44fba98e682a596179cc863cc53d89bc84147cbf80ba6cb2956780f210c662d39948fe7a0869f1b8d3125233870d23979dea1ead20f95e3e52c2a69c1024d044311f91457993ca587a009d8d5ae2f7183579d987bbb4940eb7641ef12a9d47ea03dc47364a37c5cf8be90e0e304b3a3039e8b35eaee1981351e71cf736940421011e9521465a9b1f87de11b37cb92dbea9ec174496e77c617b876b8bf21a8767d57a6ed7bedd6693c40df7ac3ed95fbd8fbed89499615a153514298a104405fa3f538f14f8709de69d2a813ce2d0e0dbfd85e52776be7a0df8e7bb93e4675dff82b36da24c8919cba42a66d2020640279192078ec136d5ee67f085d1cf13444436b944309c0fd37465db95944a6d6913fb5147521e40a9f442794156e642856c663882bbe7849092c40dcafb4f0b3bae558d3450bed7782d9b467cf07bb1945d0cb7ea3d07f918d73c6eac9d349c66301a16112673412a9983f59fdbb99a5041267d10da1d27001efc6bc28a3e7c595056b24bd8f694962a2a500924e50a5251abb7618363e50d0599743c66bcdada9911237c1dfb76c2521f9df6557276c9d7cf75eaf354fb381144406bb72c9424e24f54acc62aa8804f461bb7148014bb3d4480d8fde9b685448d2576db0d4e6cccf1afa65486f568ab9991b716d0e477e52b74e98f79a3d18ed357bc958e41ab7341e7381781b7af063ed2bad75284292b20508b4d58fa081afd4161f5105410c84273c939c8d3da9f13cf937ba4b6c3ea2c72deb5bfd8c6906160abc724d233371fe91951507e69b45bed791d9e855a86a832b73d41f103b5c6c22342d78ee6201e384b59f0b0ba7cf560600a20337717900a4fea77d2b7e16f8f912e418b47dd07018dae8401efb1266b08df36cd8043a6db007760c3b5339f9ed78c582f49255a4580bab4ea8eff1f94be4a97390a2a025b34cc13bcc4572c08990d25932844bf7d748b3c4feb1367e2945cddd6dd8b8008145ceda0e904553e63db9ce3ff5dca595505ed5b0b738dd650693f5db29dcaab2c8d5245e84d5c752c8a978fc2a1d2c93884001dced4dc7c6135708f698780a4aded53f88a0752e9f2490ebb7a1bb173863408cad49c3ee4d1e4f632aeaf818984dbfb91ef7cae8b67108a3c138e2d32b4ac53daef1eeef5c78d15bc7d1b140c9e8889cd4273060fa027e9bbb00ce0dc3385512e4d596f79f805e2b015d4088c41a5fe7f4dd4e59889adae077634c879855a1da490cf3ca2a7442e3185dab5893a4af078d66c6cc81a8b39dae4801355937623576c7954150ddc486da7da4dd6c8c332be71be86e58e45ff8dcc3af389d83d05b78190cbec96cf40fbd62dbca93f083be1894e0c9f841484c68dff6b33941e2ec9dd91b4a6019474718b65b80dbbd2db61476de8e0f3665352509475f6234034dfd07eade78b029eed7f42e4b4928ba62b7902d4355bead01dab8422271338fe497a0282b7e765e22912c62a8b2cf1c8cd8641a7d33d191e9ac1a6ead2a20ea29bdee54e8723065754313f4e71bfd0f6c06cad9326cd7c6ed0dc55736207b574bb2089b5bab9bcbf0363d47ef68927fdbde94d0ac8a7ec4ab574639c2ded1d546db48c60399c5ed9fada932ec56fc3702985559c561de13cb64479b71f80e4752cdbe7b93424c95eeccc53e91b311d66853233f55fcfae555fd35c8774d66d2fb534b11e8757b94e183b31433deb931d1436da01d962ed085e50cab0a0fb19deda2c8d685a45019f6241f2f07915eaaca2106f6704a7285b4f64a29234ec6630673ea5bd305f272a28a2ff89fd0722028538a392236605503e9f19c38f5c1a69e01db91844840f0da36ccb4a5980c436e2af4290cfce132430b0e86a9150dd20ded247a7139aeacad1a2e6ec43f5714d3f8bc98795f08318fc1002db7294b6e938950f787d56c164ca3c9f14584e58bb6c9098f25ae024a3093dab18b6da830719d79feabacb5667f3f5255d61f70fff47d0cfd2f510b9b09d327226c557b2989582b130aff5f6468a20e8c5c093d94185dc479b5195773faebd334bdbc447ab0b8d8448de5af2ea691995696055e901dde7bda25d376c305a0260da37319338443311c89a78f85a9273a09a6599ce91d24b7435a50ead1c4871af21e99d9d091bc34b9560aee6598ffc9825b02d8701b5134e57df619ac2dbd967b1c64e51dc6e518b34a9c6bacd9b3e80eb8e7b8e5d00077a6c04f66d2a20fbb1ed62f372af1fd2b055a83bd117ea95a04f0cc7e306eca590f6282c8e0bd610f299755c3a29ff2fa10bedfd60611973fb00d706bdd1022b04c62b1564d76c3c4393742c828e87c24361be35a0df421055aa0d1473fb1501212fde784883c552a0b12cc8444ba32e06324b5d48cbf56830e2b0984dabc6a01b2a8324e56299bb41647b31d4f676009f569b60e54a6e1344479edb7842e603c3f2456cac5501c83f1153523c2fd11987cf900ffb9826ac210f7fafe9a141fca43d9075e04eb43cd40105ab0c05f3196db703d1cb0706d364879d1d540ffe1b42c8fb53bb80fdb160540e8fdafd9d6ab26fc56906a2710286855ba6d8217f513571742bd9708a4ef2de0bf841a674b1e85d48eec5a912e8475f7bba5c2cb173950ebb1d63f67ac9a3f02232e85440fbc8b367dd1b046eaec648d7af552e7031bfb8aba557a4a2c18b88dbfe88b4e5c8ea83d077fd3fb8667f455fc2704c2ecccfe9af5907d8ae52409e2d3147f312051c010c822481955928d8c42e68c653c5408f83e12fb7b1d9e7b4fa8b93dabdb22299fd41db994ed7d05feb73dfaed0fda3e00720be41acc384705e64ef09e923fc8852c05b4b9a4ff42bf5a99c731737a9dd6cc387bc64912de6a68ac746a8f3e83b33cdd03166995928aaa8f66e25bc5725e256a93363ffe82902eb0b3a04f8e46ad959851b433580c5870079dbd5ea8c4aae25947fd41b1f5dcab08a8565d639905adb2506542e3bf2e7ca16425a36e6348a4722121613fa61d58b61b30c322c87b8ad25a82db5b700ea230e412559d8e45f8731be05141ea6463078bc0f0d702c1c92fe77f84dbab51137120f3070a9f1cab2662a3a01cdeb1a8093fc624a831e350f8180e20e6dbcbe501abe0590ea831380655181e1f03dd7fb9d99695cc5c3a0c11de454f4a8cfd6171edb103d7bc1df5935cb9b9ca8cd7cd75625b638941e082165fa03c4a4cc193e88d025f7e32abbf38c68b98f678b206f1304592b3ed7f434ac4cb700cfb0cada6123d664ac456ae8ae6e01ee09cdb03f2329c7579dc2485d9ef5423f5b67a197a063d5ea4be8a2bea7abd61404044c86aeede039e0457649ccc0003f892cbb13028bdaf6208118ad531bdc5e12ccf902d945bd33b053d791665ff4c775ce69fe21fdf1f2cbcf5e31bd253fc8e1adbce467ad8fd0da30a7c88e236ece08a5cf704aa1f60d141ef63629197dc5d79b71e3b192d22612e9aabccf68977f85d0a418964b14e57d4b3abdcd2acccce5fc02916f0291b716dd872e88a6393e19a74b0acbb01fd1529efee2f6bdbe9f5128a2d6c868925b59ead41f10fff354774c90a111205c0adfebbcc9877ea865865379528652e700a639e49211c906199fbb7892c95b764a17d491c7a366dd02313aa5794f4b76d9fa892f754a6ef85e6a838b61c8082d6c88d410c4beed8728454b728ed6f44892b4bd8aeee60ca17546ee24cc59a8b20fc66e65ff5054b29d3415a5148e9f0ab1346e440e347c4bf1e63f68b493f2962a920d99086f89f24965d175d94ff3996328fe581e59f79cb957cd43b1c950bb4de9a9ef471c5b06042dbfc2b5a4ea1ff1d76be634f4c6fa916640dce628e69566d4c00f9efd4e9402aedd1a407f182540450f9b72a30e3acd860238cd73961607a991d34ed38706e84f648c39061c13c8d354de11e2ab00a9b7c168536b41550153acc0d8f42ec153df34031e95bcdbeedb0b5ce0929e4055b7e7a3d7e6d9e3e525adcc198542f83580f84afc0df81c1a66e61e8e3d78f69397cb3e6781ca1a90d85d74d817219c6ba663cfc0327ee3c120c9ac561a9e9210f2bae4b2e53f13d61d3af25195316078a53d2080831dc8bb7fe9e8867b4ea8e6598dd6c0fb24516e83ca92e468926c66ac331eeda630ff17b2a4803304166d59fd45d0f48cb0240af21e7ad13426589a48510ccbd1bae24101ed0ac46bc978a8279abccfbc9a49cf4a9a62cd989e35b5ce2907dd2aeefde3b77272031d24a374531e5b92742349647e19dc3eae3327ad2e9a871d1e9a2a085d8b2ef715c79a2512dd2032cee880eb7749c8474b5d3251c12dd031e07c84fdfada820ea99955f7c187757023d39474303c69efe370321fbfffe064cf6e0ddf3b1edaa45e9bcd909ccab83c0e1b772dfce6f748b4c5cab093b7e063d00d8f8f3022d16b40667c561928c23c49e6b4ac6d24f60154c0764e4e4ad7284411160df0e1a345a81ede1c775ef7c4fe49412626d2605a4d419df95f4544daa350bb12dc218dc5153177561737598463db276c68830276b42e64580f18163bf34662d10f7f7e021791cb0e72750efe94c9f25e170d7e89a49bcc084190789771affffa1f87b9a3b388125efc91e6bb5da5f6e4130c1634cc3b466ee7c2f6a39c050a74e0ba18dc43ce8ec181f23d63ae91e46440b86b86d89fef50fe36b28e6ecbfc226a5f0c02b46d003e6a05e7e5e962cdb6e8d270651ff65787b9c8d5fd77949096edf9bccf7b5d91d6441b049bcfadf93fcb6f93e20a4088be9404385e435c4b60b7ae3726cb9a8333fa9b12075fb8ef9c771d5c5f392a1941306e69c7f76142939f5f4cf1b9417c4b1e994b332077a4530a23ec7d6e0131f47ba5594de5326f9e75a6dfbac7136f33e141237a75247ce3edd22af567c557a0ecc98023e6c15eab83b247f3c2cf0cd1cbc7ac2761a9399feaae6dd50ce5e569d8eceb6016cd2f5ecd8cdfc26f5885c10dfa010c45ee2419f621f2d4356acd078d11737357d32484182e8c5a9a2b63efc023d020448318b2591687d71f0f11939ecad778d6512bb21944d97728f32927f6286cb74dd41be6d40cf1cc0e3fa49b5d384f251e35a2c3ea56a4dd2a95d886802a608308dcd3dd1e80cfee4a38498b16114bfd52e7a55f57dff4b39ef3f0c435479407b5bbadfa59354c8d1f8705fe8da0b00c6cf2b8b955cbae464aa946afea2052336aa523a7bfcb81e454752421030207f01508b3aef3f2fb6df33db68a406171055faa59c7b532ced62ad171712529abce4d93c9c878fc046642c5fe5369cdff7cd3ca05301c114a3c5c6dd341b23059abbdb3a8da6ad3bed274d40f7bf6b09be2f631596748b5899c986e49c31252dfe4fe098fdb973c5eadb82fab141a5b214ef6280a3468b9a1e363d87fa56d2d5369e2a161fdc66613ebcebddd58612b02157a43e8fe696112d321029855af928b6d08e7c58ac022cd5e5a66a0980a6cfe1018fccb7daccbb4c034d7c356e673ce63c295961126c09247c055202f6b6ddd2497e9c54529cc1830b52eda3107eee7cbbe20e8b3649cef77ca22640040935de7c7dd1c91d31c11c3d853537ea2836f0d6dd3a5f1fe30293fcdf09e5469739357c71df5a614654c68b3ab4a9e8150fd8dd4f9ff4226991f503c41106d063e385105eb7a1469515dfbcb3c126797f0a48439504ae552967e9b874b1c309184794cb3f3ee7c12df2b4695f4825b0d28becc62b407b10ff0484deddbe13dfb0a8b1373ec4867a1b1c83d78aa1c009c67546d61c9fd079ef3657ffd8af1909dfc126856ae998145882114649fcabdc0bc4b31cde93c442140ce8a7ef5734ef4f87a3ec8105d3a8ed99b6dba1ef0aac9ca3e826f202a933fd5f7463628f765518ce7820d9d17b4b87605013fd715d2b86f90842c06413bbdfcc08326f408eb5899351547ab08684f0e4f197886ec1fd2fb30b509446868b6cbc5b157bc7589283e9d8db0281a737182558c1368e95a5ce82f3e25cec396e4753834725941ce0d2f7b3985a2b505bd28ead3152505a754cd573468b4f50199ee2a2d402a554fdff5083606417a771dfac0782f031f72ddb22b57f8bfa78d7cdd83a62e4e623e0763acd118d20796869fca729a8b350baceddd20aac35a68e3a4d8de8ee7ee9574044debce0e69c082ffcf8c40c1b6a2753b9f56bedfadb1c6b079f5b0ac4cb2f7bd54aa8f4783bc9d01a7d5fbedf432c2c72ac6ca3aee9a85089f149d3792c2c7d97b9a9476a1d2f607f9c28add640c38b24f9f684cc371e3894c3ca1d5be7c43a3f38105d0a4d2900d54f72bf262ceeba06d144c7d94e61290e7ceb70a02c7714d3536e3be49f105dc822f23ac1d6987e8d123c5c54093420afefbb7e3d1d7dfe9e8e695874aa05d9484e8722cf49321f212a63a4d81ff4c37aafbbaf3c96054b1e3843e1390ecefe6cc5d18bef7cb7ccbd83df29e240c18f2f18ed1cae8f164eca1abfb9e87bae2b6b6d46612035cf4893fe38f65503a03b18cf382e1e74b322115fb1399e5bfbb4cacdf10c752bc3ca64551dabcaaefccc79a717fe4426044ee4a5ce00aee55e567d1b4b5b6daafe81407470c9a62f773751efc3f9b0868f66efe143009931e9984f205e5e7fce323894329403ba394e9bcfd39d459a373cd33e15bf566eebb72737341bc5ca611182b4d386b2ec9ed541c6745279a386bb1ab306edc5134ed4a43734af5dd4f0746fd7c683a0a9fcd30f88bdf6ca4d47bad121bf8e285d953e476c3bdbb0d27bcb7ec99296bc3148885dd434cb8bf3e4da86a73c10cf269d8adfd9f15251ba40a5a1b43171a42c8a24e3233ed7e072957a7741ecc5ff6cecb2a39173d6189187fb57907cfa3ee93bcd38143ef888fd689007628c5d84cc8671ba537ce8809dc2d16c600a667cbf50c9752c010ca657d58c01a33d340bdc4b8872383c45d18fbb2dc1b776a217162caf9f7cfc43b169a523ac3fd56a6a37c3003f12d8a6ec6b3a21ce1dc152331b7416bbe5adbc541d352a1cc60b1d6affcb6dcaf788cf6c4369c61d6dc1db85b6a8c0caeb83f09e985c3e7113eea6aef239b9a34ee6fabc4c04aac3253a7bb6d30b72008f8a99194a6be60b0a5442c1dd3e023a82747c2073ef5794ee7b66c51f190623ee235a32198b6098708516a7f542b907e426bcfc406bd8034dac91dd550aaf3fd3b9d0243253fcb9f84c1396b4f2e159cb3ec46cc7a6f39d96bdb293c7be35e09548de767797dc32e086a1ad03f6221e9dfeef4fd2bb0ab44c5e67307aa236254a03e1880f4f3402f6520b09f371fa0247a9da1f5066c4244973d67a4edaf9db8488311ca1b4345a8fb525090d7ad1d166c8ed34e227bef333c74408fc587260c0f79ef418439444271206c5841779c2d02b0b633929c0e3f11ca9e67d1c0a750e4f2d8ee75d2567002deb035fbc19749494a56d9b824997fae872826df3660307f8512d65be22f6d5052b5e01e4821a5060064e24a0d15135be2a9fb0c772c36e29b97b430ddc43231dced4155cdc3fe4eaaf2843d072eb5dcb41be971675d838c3233da96133133fe8e872bd1fa1c84f33f0f7ef66645f3b6cbb030a44f597748482b57ca3d89159e1b6f74adfcf0a4dcd46649d7084702c9cb4921d4d1d77a66f837d45f510fb3d5eefb9229791493e2fd20c64117236c107fb11ef2f160965c1194adfec07ebcf2bc9a7417b8dcc5fd9304116cad860e8e930d42c32dd04820b6e9c3955632ad14d02e2b2717a8ef96004885c2afca32a02ae58c1067d001e017f103e99e4ebdc8d5d67cd12a646684a76a24294efacfb5c556bde5780f9672d8c42f97ace9cb76df588777b04726e029011ea96a58bc9f61d38fd5ec48b5535ab724e0e8ea0898ab1ab41f4c288d13a529078b2e6326964f33baf2338f5eb6112f42b8a382116eb5fdc900368e23ce8d5280bb24e408d31192fc01a3789d3fec31324c1be61da81b8c8a9bcaf485ec9350b7f8b02c07ad25d0cfb3f41b1d588b69ab4ccef9263f1594ec000d5a454e00cc8eeea1bbe1292ebd02b7c81b24ed1e4ba2f2bebfc723bdfd68730cf628f06732e69ccfdf6c06edcac276581de056fe6aa769745b5942c20d3c257d059f6747c2c59900da8ea4b091e178764d50d0391fbd84f8527b6309cbd86bd32f1c36d590dcf936aa5b837f222e251cdfa4c1d7a7c6521df5e44945333b76b63d45894207598c82d1d49879bc0d45d077003e87899fb17dda8183c918213a891f655df0e8c9090f1d8fbfc005eff6531067b306717ffe532026ac56f026c0e78c432df8416ddb224873f7df29cc540e8cdef5da49d93b9b403658fd16b85d22b4a106ee4287cf072e77a7f78184ded9b287674524652ccbe2524f09448dc1dec7b9341634a0a4c0fe8b4f346bb817988518a05222c60eee2bbbae42bf151aae80e00384f1202f7719de1ac12e5759d78a48125e2ef721a5a2b72b1060f01b93b99fde2533f845e2754eb39530ecfebabbff8775295ded6f3b576ea4ce87c9fa7c2db90a12c76e214720838badc941e0dfa0f36c8240882b926b6d2cafda3c576115a95d9243d878d012bcdd7890d7c18d2af69db796d9c58b726e03751e5be01398264bb377f2d40a45c06f7255b6ebc013ab4e64aa4cde7b37074f7f0a727ebf2ff3f747b06133ad0e82599d15fa7ef24d6988bda115e8383315ea0b6732df1f89ff0ecce4c12d917f6217e33f99ca11b1fc8a135bea8d87be1d4398513ee594ce0173415bd9e3f59bef6fbf7334fad4cd3841a8f16fd2eeb5b3d460cc91ccdae6052f02c0e75eb5b653104c7560f9f71134a35fcecc7028de487193e3f554c7677d520c57596dc36fa0e6446aaaaf658b0d43723a62a1370a1e9d20c86da9685d6243fd0eb99b6576d69ca5cf0eee75c6446ca6279d68fef3b9957ee399bb818396b5598e82b505cfce00349a2e35112e9ef31d07653a5bf4270ab823b93d0e0b98980a01174ccee872c2a2e5987b28ab19d5ddcf23a3dd1a6587cea41d0e23a6c39bc41d7004ebfaff086a07d50597a9811cf854c20648858bf9b3863f629fdb797007ac01889ed451a73d36756b20e492233f5d229fc1782a6b5df7862873861ac64c886bdfb6f0b1cfbdb3fd31fc5326b7e0dec256edfcbde848cba14e03bcb4885353ff73ca3b69d3cf34d7ee3379a4d470f6684a6af8a913739ba33bed96d9883c06781a458cc1cc417e4f9f13b9278e9a4a7f56bc5a39a99c6867edda15ba5ac1e1963b70fcdafc43e2bf9767de4601adc28ce40a64e0720fc4d6e56b325be60caea891e3789b8442e99d4b352328d4d63e10845952a3dcf5c18aa737ee05213459fcf8e41b72ca84686f846593b5a84453ec2c150c9edd1a49b496ef77e3833291ae9f20ad3bf5db74485d85f422b9926a0de68cae1c9319ef5665d16ac786c675cb5fc58f085c1121d035e458c440c4ab6291470003eb7f4548bdf469372bca5cea6f3de53e8a3b647dfc1c939fc2592a443e975e21935a78ab850c12d0d3efafafe0cb5fc497d195966177bdd02c6d5579fb5628d08fa4b9b904da3842d1ed0d0c454e358783e9fbe94c8cde577c20f8db293891de0461db9629a34d9ac4bbdaad7e8a125ad5fef11b43038b5e351665f698a6f117f82aea582f90e5d43bf87f874f61989b3473856a3749d1b414cbcc5e1fb4a40f1408b7aadc1c5de9600baf16fc276208cf1c9f753ac58267c8b4f7a4141db68aca39f4241c0ffcededd4670be987587824c81c1e4a0ce110db0deecfae85bfcaa84b393a5cc87ae4a28b68045bddee48864b664c2fd2c68e08f8954447800c6d4f402a4b8e1d2574d386b5e7362631f31ef7eeadae1d9857d2e8db2e1623280bf7ca0e1bcdb332aa63e14b649c19953171296c0e3f23257d5505cab8bfb42ab4a6f6b7c52de1a919a2327200edeba2bd9b85bab28381bbd1775ae1281230e98b20df0feca6bb83281212290986b4368fdc3cd9b5dd0afffa9c30ab610cf59ea4621bb551b31b6889e34c99f36061d242f800616edb737bb6b84ecf85072a429f8b6c4b7053079de7423e2d1a378a13c36468e8c7e78adb6071b506fecdc1102a5b12e081207ab0f02b6f757510e5ea5d1982ba0c950304a6cc6e44f5cd2c2c90b65a3992f222443d760618410bac9c5eda9df208084c05b17ee3f692929af6f0645b118d6a4e50abdad20b0711e6cb8d6d975c052db6c59597703ecf825098f24e4efd3756cf730e7d686da3c7ce40435fe5091af2f244713b08321abd319c38ba0fe5687906e108b22623ad8664531a6a9912e4244aff1719510f453cfd0407f87b1d9f5bf65e53b19edc45da787e0e03f88351c8e3a703049b9100bfc231a13ca8dfc9aab6f78ce4ae4ca402b89b5ff78dd0f143b0260327c2479d5df79ae12608b05fb0b5fb43f1e7e060dcbf47f58300cee375a7ee48c0337d0a52c1eb75212fa9bfc8ebfa46ca0a39cd40b2da17f6f7dbec31fdce96e3e496ba74b78c5094a0cb77e6dae4c1cfd36541deef2bc4ae92fb86db6dea6187cdd55187a7a8bf134a33c99ef62172e4f36ae6e4c1e98831539d94e8054e73b085c4ffc344ba0bd79c5f0707d0771074bd68ec61b9e1e021bc91f28653e03565e0d33c5160912c799beedca4380ccefd22a270de071500d8c76d858e199ce1cce1b2b5c32a7f6835f0c6a0919892a1a95168dbdc675e9f1c55677f5a1ee4d8a4ebc26cbc5615d811847c71937378fc67a665c767b63444fd600614ec266186dbfcc4d747bcd8944eac269c153e6b5f6e321283b1bf04891fbb8718dfcd4932296720b22c178ca37d7286d9a4638949aa46b6f915ea82de2c31e375f6ff3afae39226d822b75eb47b065ed9445043d0fdc2aa0e01e152ea0ce2a50c1bc94ec27811a0bf73c4b30b10f12d742b5707cd785530ab0cb161fa805596c6a5936ef3a705aaf5f65ed44681ddaf7e55ce3c6bee2288ec26c8592e5f511bfbf2b13065d888d7fc344454f5a2d11b737dc14fd1d78af17ddbffa0415b9f6011a279bb367aa716c72788dfd001bbf112151ce8b9add877b68db306fe200ab41eed9e9c4c9a66d7519a8515c383350b44818a39ac069bc0c46c2e715c83e345dd3b1fc0534c0f4692f2f305f4b49cf1a4501b26b57dac8113eb7154ae78111c54882427bb31d39e8c711918e9ab315b6ebecf82a3898305f7bb056c6330702f4ee33408d286be248c42536c4973d66a83d6fdcb798c049fa5ec2467ec4ba2fb209177d1b20951819793c4c329a700fd0e01c319a512763618d0e13d0386f90a5e0542fccacb28fe427799b12501b427d7b4780a784af4982674369952dcd8809a4ecbb17dcd7794d3365d0a1de0f3c3ba2415bbe022d67f10f957c242d2c3893df1c896fb9a300f2c986541649d4b358a52812e91f7c8038e126d59e32824f33ca78ee7acd187e80508c69fc0a0b2b1c07ab4a8af106b368fdd5cfa8c05b87dad23e743ea6c2e2121c346c5efc32c502f675966746418ce8ffe8604af26e5f8fb2f4a257e1e525f237c2cc8cd1f74fb69bc1cfd486fedac7f3d91dd41514ddb0301bb36b106c415f9afa29119f4e94381ac2933d9382ff375454c00d115da0205b6d7c796c882f74b79a3b1694fada76691017ff0caed26c68fc50c3e7f630971655f824c4841dbf4afcdf2ed855ac63e37fc543ed22a0809681a98a81ba777c32aba96ae4fb77bc9ea3d6b01148ebcb1c3ec87b1457a0da4522f31b6a79b95b68f2e6f6bc4256884d0cf99d143d12ccd55f20f1db5035d84b331bed9c3ee05ed8b3a30dcf6de01217ef34247b89bdab961bc75b72c7ff073dba8f9892a77ca64e1301a504ea3a721ee60079a22ba4ae7f3419ee1ae686692af05813adef5ea256d96cf21a1dc522b70e4e136ec6440b4bd013c72d6577df0f5c556e6b7b27a11f3407b35e79e1cdb66b018c8db3e79fd6e541d290cd397f343fe771cee406a753c73e8bbf5f203aa3cb85ae89c8e9a34a305b0176f5eaaf795329718ecdce421a5aa64c540d3a3ea4bf8a6fc21479b4d396e232934dd38978e80b7a401d8a28fc08bbe2dbaa68ef613e4d986e6cadbb6ee8fdd66fb7f370a1b4c13c2d89d9bbf9f1dd55776c2e869eee03c424e225596a14735e4a91e5b2c7bd051ee08595a46c8cf6a796870bbab42e8d09f38aed22779b5175b2eef0e9aad5e699ef76e5ab69de2ea89159f4173af6218f64cdfe979ded24de9a663d42829e65fdb037c2a9a3c868b0838e7ca3ea64911974d4b984a429bea9fa392514561d06d73a341c94e9ae0d12fbff8095d20b9989adc3d59617012c47522fa5d91e73af0e3739b4bfa7ba5450badce7e018388faae4e01401a98aabfa1fc633f4337fd9180667b52784ebd4851029fbab4cd578abb338ce054684436a5de366242da7bcb26a5da9e04e6dc9de6fa1f5a525c17296c50ff81e462c2124624c19173d0b7f024b7912eaab862545adcbe0a761e1bd72cd1fb20b3f9a8086977775dba9d10adab847e6303cb0ac6c4d9ba2f844bf56dd8797dfb693b788b61f8ed2d57994632533d56ef804aba24cc7f9c3a0b7efa97d4dd6cf9da290fcd5b90a402b479a392f6e42971c82095d0c05fa324748a849f24851feae12314e6eb24d23756dd095ec93329b38b1dfb589db2a9455fe17cfbd202009a8062b25728afb2e33ab36e94b85b82674b497a069778b4af4ebf3301f486d3327fe8e3f1964baa375be0093be09efab78eaadf75416b73a4ee29e9ec10eed5f57af5655cf007399ed5cbeb9820db6e8383620e9493c231b64674be7d2d3c7de0ca161e59eea8c45f5054a68eca880bd63247ee2231445331a718bc18c9b614db3dd72183baffdb85c0044248125d91ece801d9be5af93c9b3757e270d5fd0541f029119cff1a9ea62f53c0c682b56ba7a8539938126732b64f266466e940669693311c6dadb30cd6716ecd649f738f28398557d4f3e5a66fbbe878bcbb56d1920a0a701e870565718bd5d08e56334e0154ead74bab9de839439019692306c050269b7c05ad144d82eabd057ccf80d133afed7be67849f5f45ca3ee58116289b6cbc5a82c3b1723842786fcf93bdf0c52a8db4bc661982b83caf4c66bb424ac56aed3c82a128c1982f4fe9906435a7ca298e4273da8f9c5c11a7b7ecf3064c1ffee0e41fdbebff378042fd3fe87ac4a74c16e9e99eb778f5c93562c4e58bcf5b4088aa8eb502160ebe0ac4900df2b04fb11d6a7b76bbed52cc83e9373f110a015b69d79a5917eeca425550e22802fc4a5bccc3fed42bd0e1037946eabaabb891eef5cc51c736f313ff740db3b4e6fb05947106fe64845ac06293ee1ca94bbabba469831b4894932fa4aafdc6303d448a39650a53ca4bd0fe4c86b1df719e88472278056a6cdc8311a7b887c5b526caffdc8f99b1cf387d50260434083f0a660ac38a4e10794e0e8d0895cc5807358d567022f1435dab8fd9c97aa1f0b4f9bc6019425335cff36dbd171f1d055f6a94dc5677f0f6216e5ba78ba07514088c0ff962a84b32588f377895748ef2de00fc7f7e24cdf148ea07b414ac40180a1e6e28049857ff17939262877e6678d97a4f5dd9cb9159b210e926f66cf5ec4e91cbf55183408f5df1339cdd8206529f50e4f00e9e45a75e0035830cb6098dc57107bd19ad230062bf4d4500ee5473f8d6993347d07fc36acedf5b64b6f4531a14546e3f3daeb48b7ad26bb0650b011cc3c2cdf90ad9dc25bf9cdf86a375c561b611f4e321cd5cc7e43c564d58ce36d66f110b8903fbce1ff2b9e89bc4b0448b95e9085916c37e7d8da4085a9171623abcbb3bf6321acb6d979996ab7505f8522b736733179b1b47efa5dc73acc20081776d2e073037f3e7ffb854e3b9ba7b5faec04f1a0dbec5a7584b30c854b3522c550eecacf734a2440b2df48558e3a4aa92d403bed8fb233337e590c7de02034c136394fdb82feff3625e7f589a79d4953ec6a61c1d10940f476372a4819399678ba6d4ab5079670c9753e098db806a4ffc730921e87825347c4d0e8a75a807ddef032d1bdc090fe04c903364344d304a3338721a729471f435a63356a7f8eec0d22c3ae6072f7179a9ecad5da8bfb0dd12811a9196390c0e518086ac72571ca9973c0803074e91e154593cbaf735edf9e7f015e8222a5d7f745c84cd0cd1b0e2134d53769844360ff81195b95685030894bf13ae2841417934dcb45fac5aa8e53341be0697cad6ff2ca00bbba7e87ac3ed416aaaceb3cb4241bc324921fcd843be956f40ddc31036a67860ba9bf56808dd0ca6d539ebb9ca895a4504a08f1687378bfb348b31523b516c456f91bf339510ec6e6b3fd6b7db52dc9743f0ca6e5943626e5f2ab75cc1e5555773ba46e75ae8203bca2bf52670d90edbf8ce5dee6dbc4fe8ad9edc78658d49a3ae4359022627223640cea204c39ca0190bb96b6fa9d9593c21e6a300f5dcc12d2a413806e0f69809d5809956aa61979d273f3325059fc388e8680f1fbd3980f31af531546e590a348694c024f60b784ccc28a43a488ccf98307f0025ca2a5e00f6441628b69480f9a7edc7416d4266d906b5c4f803f453625920f3b7b8cec458677be86b6b97a80a57c59f03060163975a52aef8e38a06f59383652d26edbaa47f33f8180b0ffac8c7ed0227d3e3bfcb9ce71b288c17de08757154fd32ca8f07bd5a8034b4c7341277ef3a8516e9d4e7fff8e4820b6e4764e739761334f4698ef33090cd32e476905fa76e6ea109fe6a84a209788601afc122cb66bb5346fd7a70a69250aa86f25725499d08e7ad88e6fcefca4f9f88d276dda7de12e85ad482c7163e1e77f80e27a8478dc0a534ce96cdca8f15d1d533311615c9fa6552130d843cabe12e91071885b1255a35462164edaa2401687f0af93df13208e06b9b8fc331a76e3e50a9ab9d90253805bb485edd3d2f002a891bda43392bcd351c3912a3c73baf25976dafedde086367127a08f4f807b490026cd0b5854b7b95f5ab36c0ba85620bc80bbfce9ec8bff5a11dd86d4eac25cd46c35b8e2de30a550ed02b455dff55bc86adc62ab8a24b46ac6a40b9e2296fe53201fbbcffcb46dd74010e8786cc474a424482cdabe53e9ee614bb64a861b6a08afc3ec40080d469af5737c04278fab9983d89613d54c4dd7607b93a8aa728e0418ec52b2f8a5783643f37cf2250fe1b20df90d1ba2d6e279997bf2c5cdc4e1f258c5131a9b5e71b45c7aae0c143d91abd079144024915868b5305cfd1c7e93144ba40d8354af1e4981932c682fd4a221782921c7aa8fdf57bd9d244496555bd273d52ecc7c7f7cd8c4b01dc8394f11ca227975e3029fb1664e3413c0cd01e4df599dc4dc5d9cdfcecf289a4637ac5e6d230293ffc369d7aaf2a2c3437a846bb48a0d26b8aa54a9279e83f29d47a43734451f6c508028928b830386bdd097ae642251d62886a55152a41475ca7b92871e40db82a2de576296c332b618bacc381af21f582cf6108700fcf5e49611cd6be84f2b9e5134c6e1cb71151e8a09f12c2a0b1f007d51fe0456a4f9c6c8dd42dd6ada608a096e39e1f85d9294136a4be48cb0c8b86e5ff177bd14162eeac1e9eb47e88de251925874400f046eeeaecc59a0408a34b453914bc68b916d98292ae7698600b38a883d669791805ee93e8edbeffa978a3779d4da3b214a45bc48076308f7ff6421dbe5c1b3f2262241975eb6eeecfcb7e0f17c7af839a999470b951a0f8d27f2488b810a83c60daf2ba545e4e8cfdf7c913382702fcaa3ecc47d0d9bfe43b14d260cede3f144ccbc08537ac3ddb905e46e830eea57645d50c49eb3d274170d2bd0b9f443ddbad179083d0b907b5d82e7bf4d50677a43a930474d63477f50eb5d7d6a198408c6b10b7a6c5829fab60f6dd1c5080259a164177d87e37352ce231d112aec8a4ae6f91c9063f9aa8d8b0a3407668f727ddcc1a314b8187b29b23e28d21f9671769c818c912bf9e351cef8c2e3ab1151cf5ae37c7bfe5d73fdaafd9b15be8b7605b5a3fdff9cd8b6f023f599f595c018abfdd9b998fa7fcfef688c2c40c0bdd368b687960e9aa01aa88d90a19c888d2c4c5f37596c7891f8d4a87a7db223f2ce1c236bce787c95e16d4d348be46c130f37f0496734543bbed93f55cd4a8e010e7acdceaa710d30baa70731d844da2331b7884cdbf1632b6eb4b92b248eae400f28f4da322c0c05ca789ee7ca731c3b0d668ce314389be7d0d44736bb8cf467add28af03b0cbb58ed9b4633ae911b2767976bb4c52d96fa4013c5158fb7214c894687b18a4ea84b818d5c7b9b8d6566866ba99bc68a5e1bde13d96ccb39f6263a2f85ffa5e6b8462096e61a28215baa0c4ce582ad37a4d6dd0477f31cfd2c23b2d677dbf6f129fec54fb55ad18aa7ba295558865e51bbea68f4dc9a68d4eece3b34312801ed78692c7e4a7376ca18aef495e3c86fc93647c8e5ad00f2f55e91cadede5afba06e985bb1fece0629ee13d63b366b4c788689df2bcb01bc6e24d4ef0219b570a3d44590674e013c0a0d2ad3ff912b3b15014dfd75f5bd08ca886f6ddd36f5b372a47ead166297c43a099ce365765d27eb2b0e4f57eae3b8719e9061080b65e61ab0ff7fa1eb76a63a0f56993081357e756ef792e1a64dda1bd8ead923b3952c0627fefb8d1f7f98eb85e620e56ae6485d37c6f05426c87864b147e61375cf70c699e6fe151580189587474ec23733020c3a914d772b85a32cf2917380cf8551db74af947a1a11053d24190c141725a6da54e694f85829483b29cffa3c71dbd0a483f04b31cb232bc8376227c510725e725144e309519852e7b181041dba98dd94709232d1809c0857c846025f06d7f2dfd76dc7e065fda0453c62ec7b79c41d8480883521d4694303084dad2dca0b6122287cc02ae1eea4ff431050bf9a20c27b79a97056a83d32832db175dae15804a2fbf9076fca0b1cc98b566b15e6d9c0e59b81042cb14331afc22f66e8b8bb2c044cf0d3bcdd52ee813bfc7c9588f58c29cb046abcf57534248f94ac1b27733201ad666bbd31e762c95cdffcc19210e94ac789f0e6bcd8ae4815f66b99c272f746f08ded77e9759c4081eb86c10528ad8a0ac4aaebdc8edf0b7d3125ab63c84be8003b454cc16616956f83fefcd544a18671a010a654d38e088a11ade787c3bf3d5812889bae1b6c5626ba1fafc1e5ec9fcd2b4fd3c031297fc171813f2c075048463cbf2544514ba3a1e487504825e30c21efacfc3626502033b7d22a980323e29a7ae6dfd57d05fa444507563e592d80b11980358cf02eca377549debbd0af06f49bbabbfca7b22e5605d469c7608db71f11144b224a80d5324b9ff188a6028e6f2d177af125ffee340c0489558d34f211ddb48fedfa7d2ab4a5cee6c588580997a7605481b4ff982e6d04f714b1c9337ba679527c253512afaea901e1d529c535d727620d2294f08a68511d54fc5aa2c1ad75febdb5fa2439bb9dbb1c19d61144f74fdfa1743a36d00f354e0e5fbeea2a92b17a273719966d10b3ca864106466e5fa25ade50dd7a1fb8d33367231acd500ac587fafb94ad1a2c431d79e95a7d43ca8c839ee4bd95cefd32c42afd621a5b7a724fa3fa93987c1a8334d69cb38925c74af5b64e398205648566feecdf0d557171d0e12912d7eb3592869e5c5ff561da2ff4f1f22955435ed4e52a2e2abf3d684f0eb49e57aab9b67879a6b9264284ac52ee36756c4f72786a7dd4067fedf32861eadf0940bea3f0142ac40fce48135816a8ed2fdbe7cbfa4d12e628efef92b4832097f4d7a95d3abd6b94d924a6bafba7565bf9fa1a46ca27266f0e81a05590ad9146995f1fcd35684d221058b83b40bdb9f83174bfcdf4683e010f54fa6fe935cf8deeecafcddcb91d40bfd94313ffc308cf6327f844625a6de18128c73b51421fb6ab7c40535b79b5bd7c081be487789124393439c454e39802237ad918a5923b6d64b92afa355118ed93aabff7d67816712c718622fd7d0864c2cab5d02ac2a0667a90194c418eb18e14691903e7aea35707ffad977b162a42e26205f025ae30ed99458c0c8f0d005945564de53821e0bd0ded132de9177042a2ef7ee151774d16620bd662efaafd2bbab53356c2b7c34ae8818a3a55d0327383ab232b71fb784a629852284292b1fdded64d7f2bac8dfc0edd4f93e2426f64e1a14b92a4d0a724185258f527b7aa0c0cda31dfd20e7912b836ad1c10fd802eff4d21f14c7094cfbb6f5c91b63cccae4ab1b5fd9f760e4b59be4cb9ef02d1dd74b043d065fe36d7f705f38707c20c1993dae04ef6de0c8017716884c2d3623f6620530047f17caa57604b9979a5452681393ac949234ef63b9281dca33cd8eb5df501e8c9664fbcb70e20a1ac713a68994625cc62d7f5eec6706db84ea23072af8e064d212b49e7b136f92fe23b5d0a7ea7da7138192cfd346d7dfca0143c02db3597b1954e2b08d40947aba8f4771c83576fa1671374e18bdc86ab7e842af40db4083e9e79b9810618cf5fac6d3c422fce1408ed83754ada796fb42921dab362f29940f02324425711518c212a0114647105d73670ff0bc66b7cf4622c29b42bac08f045cc7d215ad9ed2d582d160d306a071504647d2fb236958f99d000af82f0ae1a9a6329e10d49f176c49b0084dc22732c02c387408ae35a8023356b32716878039f0a6cc7d61c0055a8c6e8138715560336788a57d2d4215b9d3b83347c02638aaaa2b96a311c4abee269eca7795aab03c13fc8344bcc83a6fb828d5abdcd1eefd458498c220721cb4f8e304871a14afa3b3616284c38e2b14f4b500b454c985dc288d0fd8738e54c8906cc7cabbea955bbbabb8a7c248c5f0a2c464fb6b54d5765321380cdb149993f22f956cbd5f4c5e20f8c0dedb8e3a043fe681ca6ba9d22b702ee9cfa4a27202d54b24acb1eb78d31f04d156afd2c1576cfdebef56ead44c39dc01fe23324cd118029902959450e294ddbc7dee200b3b3213014c7443cc2b7eaed494adfbcf120e44a0a707759889c9f7576e00ec5cae7d8cbdffc0a332d1a359404be8e7b4b2e809117b46ebfed642763fde3b89b9bafe45692ed2e049706f3e5b0b18c119de0c438b18b3ac3a672f1db937c6f121c5bfbfd94583e059bff5db96651323958e87f435e7624be51d80acfc91b568e8f270ecbee9e730dfe4961551cda4854adf4779286f60aca07727ddb1fecb1a3c634ab755c1eb74a4646dc1050f2a3ac9357a2fcef30b25fa21ef9cab16cc82c4cd07b18a81632abef47fce5fa17e128c492425920bc463a285f031cf0a2283e72518c92b2fb187a3aacc89bd584993abe9ed5b047d24943214c6e94aec8f152e72f7515453848f7e37aa478e8f3877b2d9ad7106c66fb422a85c7924ea5288c52e77eb6a6872174c1b2554b0463daedc4ae18b1bcac413eefaabe06be8d02a383dece7f3dd66109c2ec34ceabfd063c8d2387913574044cac1a8c9cade75479bc1f495a3b0692bfeb79cc47baa0293ff17938edf88394a404195e8aa2ae1f282b1c6eb04190dc76f56ee5379c4882098837b515683b7a3b087fd51d9f807b8564fbd75c2b5e7c012f31941e72b62feb6406d39194965e502fc29672829a5eb4c0a1984a1dada4f209055812e5d425ff96676f94531b0973f6a62030b4b5447256d81f4b16725c1470b9038139733d78e7b53507ed1bb9ee56e11ea3510d5af9684611d3d72ec1e1ef9e3f877d9aea72849ebeb68382ddd60a56b79a53015c261e7df0911aea46415a1a52a304d25db3364374696aa2d2325ee432a3d29136c4fcf185e45e24ca166106cda8b8b4674b78a64f24d4c6f2ff85aabb27a6f30bc9ee592c954289e57b8268721f9dbfb28b3c1a306ca32830823d92cdf06e81a68405d545739ca8050822ba980f49e2eff42ee7c4b26897d6b354a9505f475a66ff75fd00d9b875d1c1fc888ef9e4e2cfd3bbd0fa0d29c0c0e1fa3cfe750b18921327547d7a3483b8b4ba9b889ab23e81d51f290b2803d23259309cfd5c1ee0b052c0f581b2c154191e1b1677358edf5a209e9d3520273600294dfe303f7b0d7fff8ebe17d946c2dd120ad2e123ead99bf4a7524f9da783cc9dbbcee23078a8e1b4220d48388db15f45a651f2a63e782942a13243805a45ee4837f4e5e34a510bee526fb264328650b42fdec8a6c014efa74ee601420acbddf4f9e153b7f333d05252eae09cc40fcf314666e1d0374461f68ebcf8db85edb599c15c966c50ad470f0a58148fd4fb15af6e7a1e0e3b4485c31666225deb0b98f79c57dc5e33a3c26e7f8c9ad723153e99dccf179cefc08644a6766e52fc555c164078e0d690c5b02c3c127e77fc9c5eef0e6927b6ee997a1a7acdec95b2585234ea7324dcb4d697a1104050a5fc662e2f8c1579828bd6841ad3fd4e705679556bcc3803374d3dc0ba415c1999dec7f7bdc15da8b18b15e0e55272138ca1abf8631d294b9b737f03e71b735a7b74cfb1411ed0a03dc673e6786eb985310332a1e371a8c0937c3f8e9452faec01cfeec6d0392eccd49af9cbbfaace03784310a608743ddb8299251008b90e998550281ed12da90d3c3532d48210f0083949abb6422bdf38f0b54c891252b1c59b69f80e407ac27995a6ccf5ce32c34d600c5363732b17263433cf5a1503f4b1f9254c977de1f406d3cea0aeb7c382fac7e08d36929e087a8abac426a6795867246e8350ff15245b2d8af05509240c7cdac0fe5c54feabc204dc5a533ea0a5f446ede34cb51b0b302d9d3f8877662564d85ebc41a9b03fb2316a649dc8e383d6fa1e826c526c84160aae5dd16cfc5b412e7e20c4fe64337d8a5be2c294ec2d8a4cabaf932ab3ab8754a3c5d6d2c0f114d3847747384a27dab9fa7d3372a8a3dd1d398c3c4988429cc8c6cbb5dbd46e43e9902f229dc550de02c67d167973a40ae2c2fb6b005f159782ad5771f434ef3f0a8297d67a371a20b4a81c10ffa7c5e5ac17498ff1c50eec0f0e472975496deb9ce25693dc8ba6095818534f26f01ea9cc546d9e9708c3ab73ad0767730d5fb4b22c2c28e5ca05a226929b0f81429b64c9e406eec39693b0da9c66deb96c7c96dfe51c803179adca0251b5a7a08f468c23e0aef04a567f9087b58f14a7b8731c79d98e7faed635e007fa1ee4f8ce586e06b86f01e13eee72b665d0516d3b2a5f94d9c136afbe4356e6f0f15e49b59a83c99a656468b19c6696399bd760378e6067454a0b92ffcbd51586e7f97e3070ed305af1474a4bd1e916bdd275a3d01ca9909c160a5ec61b3e68c88ccd3687277e6722d78d50a35adaaa08879a2198e818699a79ef01b33b9b1150838acc730ff25ab25f33c49a76a7d5dafbb8791f57fcaef1a800a41d9e61bb31509a00eeb9413ac0041d950b890a1c8f769b181a6025342b80c75d53561377108ab929129ba5ae4a88fe83ed723f658c95117a122e8fc4607f3cce71ce1fa879e106ed1cf1ba3bb77b882aee0d239207bbd08b96b109450b4e3000f61e6ab923f352f7d718a7022f0929cd0f7892dce7825e59df4fb1388bc206b3479556e7a382dbfbd4615f4295f52f14c51984be6c5680b9e11015b62c07e5c8fbe5ede9cff78f179cf8c6fe043d08b5e1ff09032b39ceefbda98ba6e2ec27d34a142812c010d29308e4e37760ba3d7d3012d4c087c544d5b668e9314d03bf93f6eccf3ef7d22ac2ce34376a9d74d0bba527c3648694a1dd683927e0ffc8b6f026ba2832cc6d8e08c0a65e669777c532f5bd73d6e39e24c187f95deee2da844ae71845823b5af2c489386dde0327d38d58769ff60f920ab23b4b8ba5e8abe2991e234404b7d789c8ec75a69564209b4d9764ee3f86cc9e2a38b80971c972cc56bafb359e1491fc95b337188db9d60ace99c4c667eb0714fcb66e10430cc9fafd6fb1fe75c1efab6860bdd4e70b83334d937bbaf854e42db503390c704669f90ac80e2c8e8c8d974ad6d91db315abad36438f4025dbbe1c30d0b695d09a60e93bc15ebb65113d67956e8cd7d36c1c3c0ae3aaa8bc1eb14ea13253b7860d3a1590e08483d986fa223c13fed44547d4aa6a22e38cd661649a69a8dd39e03381c39efa523a434eec3a45907877d84c4875fd92ae96bca626d7d67d25b6db07f3e74ac92fe0f746c3a0c8592a0e8391a849eaf2a160dbc1429baafc3fc523221d662937b1b1670c5f45cda99e10d995f0ed420b9950dbeacb208015fcf8067efc46d475e745c0ebfdebc8d07b522dbf4e1864aecf0bbd2d17cc7f225fd47fba316f2e9dda7392808853fd743521920889ecdc8b25a19b02e97ba5431a282202e8a0759b720c77809389a0ee567dade40a862e44fbc07afbf5521f4d9e52dadbfdea58bc7dacf687e6376f2a2b9da137ec44a6f51f9819350291e95ce3801379c2ac1bf907547b188e0d874a5077f9d0339939a5f971ad2e5c1ff5a1bbf64aeb0502756c13a158ae16a25f99d51a054ea9fcc3125bab289f6f5cf26f881fe48fa3a1478037c2a8433fea324899e9607b97e7b792fb7e3a72bb4623b241d323b9b73a3a3e48204739ed79122e05165a48f98fca63bf184d902df8e2f4f88d0992cc0b5dc296246197eddbb57a25f477e6f3c892e455ccb0ac756fdb107c5bfa224fe634424605e68facb8f52b81d1a66b3853883c449ee10ac1f4126a5ef734753bc3fad575ad42df79d6c57db84c6db9da6685a62e51cdd32b2d2059294bceb72ad8026a67f06778a4d5b1d8d26bb1d0265e9f324181cb17ab10b6a91791edadebfcafd6e1a3c783d1dd3a257ae5d92cb616b1cf8717ac0441abbf0a09ac2e2b13935dfe4982d05eea756699bab117a4f1efcb1ab7f2f46a0118e2079b629d40a3694e58931420c1a5c341cdc8a9c4a255db6672ffcf541a66b4fecdd6f297e3a56a5b4deaccaa19e5b848483207e088086094b71c3585f3176897b21ac0491b9b7149defc278b6a48f5db009c17f9c0d3d6b59ce0d44fadde765680338c685b8b137f0e5644888c80a0dd2bcc5fd5965045c5c3aa839108036cf86aeca52a0cc76afb18ec5a70fe28a5268b11a34e357ff761ffcf12cb1314d55c86143a9050351f07fcf55799878a19cab7f924750ca602e5a093059573b0ff799687d2d1421fac56fbd783dcb237fda6a62b4007d05f1be7671489d2fa264dbd18e20348a66790d4679e6bcb0186e9d47a9738a3f2ba90183ae826a97e05c0283c11547f26bcb5fd666a096630fe992239b10a38dc07de727f531df76d8aa2035853a502c21d85d7788323e761a215c0d55d98cc3edccec83212773a5b94db2db92e144b90df3fe242c3ae2f8539e1778547009047a46184a0290fde41eba219c2e1a59bd07aeb2e66f62708663316ce9444cd0f253281c8c7f37677f60f19064fc216a22d856d35728e6db95d37239a5f6e73e987cc115856d554f349008d7f3397997e72f6273bd4c7040fa8d12ab5922f8343bb8e585dd2ce0b1693fcfaeeaa90ccd13cd9ad7302575545d93ea740b13bff5f511f59e0ec6f5b72649d5aaf422091ae58b709eeb62e8b3d219405dee77879c7a8ef7a37996156a1688afb1d819ff7b82c3a586ea791e89f79538f73cb87f14eb5788779f4613e322bd5fe40fc5e530f404482e64cd7de6f3e1993f81ec0bfdf60bcde9054fffe9148db2f78318a6a55aa3745876a327a3705856dac6d1628c878987898f5a941047054469bcd5bd70a576b1a169485aee353885871f5168517b62d1bb1d815f43769de69a13021c7dd3dceee9514022360ed0e474eee03f691742595a40f48b6df5a96f92f077e7d10bdc2c02be8e50029613bc4e132198603a856ecb50766d679159a8471b0fb47a6f39e48e83a706225d63852252f7fbd560a64b8f6591cf7dd956c83c9cf1ac7cbcae7e25616e3daa687d21be5cc84b8f32a4d8e413e56484a6c705ec74800d5c818d0f647ce803f8d24a498b087d10b7aec39fc48b8821cf33054ecc69e94203f0d655b915d6cc35f330cb9450afe1f03dc514095cb9115ee8e09ad37670ecd31403e74b77dc790afa47c95efbeae41b8a6172da586f6963d0b33b2f927d61a29ee8957cd9bdebc0d714e65e0650f415592fbffb135ad4fc4da1ca344cc80b8756ee7254b0c3d963755dd30aee1eaa037d0c262cb119115074ef15b7a421e518219b1ae243653bb96eb2cd6d68027dba5cdbde18d7f6f601054e1252f7458a80034debe419378869f61418d94d0f196ccc8643159571f7f6b1ab073e15085000607bca46fff9c421fccdcb9295dd28cdb77e9856326f7f3dbad80ed998fe285f099db75a15d785dee6179399d16b7faec58f4dba4c4a911c6343d9efe5b26ec1645fe4ade4ccb5dcc6d4747f2a41c6840081a896804713b23335c0930c349e150a2c1b3cbd3566a7bc2dce328a29f258acc7942ef047bb3d083afdf9e1f138a66fe27e91f59847190b3138a29b9f79ef36ec294ebeea6c50ac9020535f245196cff66f58fc4b0f7224da66274c37c5430238525e9123a2476938bb6d114872f1a2c7db5bb06e3e674c2de1e53644baedb4ee40ba2130e146b5848ae44f2bc445c0daa069f3c4fabd1972dd3ba7459184e76c757d79d585546af113d19e8c445cbbb686e5708f3d8623ac4e04fe78fea8fe0fe79ce9303ab3d48b02a6ace8968c23b8ff4155093432fa7ce6995b4d5c9bb0c6a2b1f7dc4b4099c2a5d614b081495a6f0de6c61c53f00f40e6cb9fb1c5b6543747cf61745ba68e79a8cb96f5bf73dd1c26a0d3a6a5582a797b15e095b0c7fd4b0c12df096f7dbd85db32866bb42322a6d5ffb33ba78cd7c3ba0a2e669f113d54d4b61d57e315b954ad65bd6c18bb9718f6c231f28e9bfffcd936e523b53826cbe3de280f687699a70122bfac7ce3ae1c6f2aefe2613cc3d31e15ee909f2516037fdd1b5ff212ca2180bb8cbe8f2759c2b6a3bcbbf6d048557d2418fea0b2b4f357a42fa36bdc382dd033de8b3932531f11bca740e3b2b3db1574b79d66899152210f19eb49862e8bfc7439be3d490e7b812292ae9643ec7876b2f3a2d0ec99cbce907819225196847684df1c349d9d9e9a74c1ff0898e04aa1bf6daf80a0b90d15def8826cb0b598258efaf566a646aca6b20e0a30d5ea589605cab611d02e3ad97391032261d23105173308805c851db47fb6c516844d5b44ad6ef74aa53410242e034b3f74318e96985de2f5ed2b75f33f24cbc66c34bdf08b3415bf32ca13812cc7019e499f51a0371fd8a81eb4358867652595c22da29eff907806cb5295a8025750e87dfcbfb45ca794deada86a191724eb0cf85738ec60f3136e53967ceb3d79f38a9f9c8ac9eaa59d4a1213e0a94f2fcb66613c906079e792af3716b7042cac13dd45130539834317d6d77c3d6ba57f21687f1b5026f0627f6579bf17fb3bfcb6d44b12b7c691341b42286f792fc92c7f61d69351319aa4c3ca1d4461ee11257000288a75930da1e5611563baf525854048b08cd9a43ba8341c017edc0283b3b23501dac1352047c79122f4dddcecb5f4cb9392e3e858d407c5b5b4391df841386bc9f5800653b060c09b5a655f553b3ef960db1a2ad3274a16fa9cc9ca74732244529bc3aa5aaadeab20a2e4e501c13d9869a607caffa0ed0262895dd9cfe55d6a8828c24029d3d186f79d34d061615187e64cede9e90325e0093661930853f07498246a00dd73c7d2e922577abf57302a9733327d22153e46b4eb620af2032519cb1b77bc99e88c20a9b8e2dbabd4fb8959d8e959c9bde78a5e70a2d151c580258b1aafd2bfd293ae4a5cb552812e76ff7daa46b7262603b4520210e5e9301d63d21af77c4bbe5eb2f638c257d5d9068eae848fc26707a8667c5f434da8470245d601876603c1112375736a3b48885937c2e602a64f6955c769fb6fd679cb83fa4379ac7df60dba467f744d0e82c8993d6b7b80ef0ae0c459f4cfdbd8ba0372f38efbac4f5d123dd4da722e87661aa881714002a2fc066f6faf74ff2f3f096ce9a62961600120b4d6f2f45531f46af1c5fc1c194c0478f2a72c8e7682c3bdec883e3d73eb7811ef8fa03888272cc977a2ccbcbec89f0f00c8585f42f0a12f6349c2385bf60cb6c9a9850b9fdf430f32d2a79ce4155b0265d922483b5e008bbb5c4b3d5c427a38260a21da2a81245049ea758f0c1b68dfc1c772a80895241941141badaf54a0b51eca5d4ab3cfbbc7c03529c01e496b522f840101cd0def72720dd00ef2f6968a4611812519b4f3b2032fa2dd84576c9acde70451df3a88d4fea2b2e920d19f9144b77994e1c4147e27992a82d76795710ef9a70c1b216278fc6aaa8c8ff2dce26903c896a083cc4b9e4d5669d6d11133a153ba47c805eb9713f9e72a5a2cde5c8650c2833f9c30b574b151b68de4875a860ee805c44243076d661030a2cba808170956393d12f2a0871efa7ae197dba7aa7d0ae474f328c27f59a16987be404c63ebf3399bbf5b8342d3f19e71d99908d7f365032dc3718742a06a118e0af01008f9d0a6ae2c7599bb4265638b305ead89cf4fa03819381dcf8363354ed6461ca1d0657b979094f4d9992c686f6f8bdc45fe6774922660e644921448b7c9bd6bc9b3458371ed09c3e9ad160cf4a894524247b7df73acf31eb6dc63eda53d8e75d78001269ce34f70e6544526e6500e802eee8487a955009034d56d6f9d8389077cc91a12786b7999548862c0a3f983c1ede83b0dfbddd302d0d5ae14efaebc92898e71162b9badb785bd8dcf5ef44ee8eb08da8503bfd29332fb1bc44e1d6c90ef5ba4e164ab9bca0c60d1f41057a5509d4940f630b1abab77270774d140077621587b363cc9e67b1137c28df5cb1ae438c51de62159daba5409414eeca4dd3677092fb9c5941931982ca8dc15a645e55d7e30ebdac9571aa215953049e3f6ef6ae4e51cc462dbb55c08cfc106915c23cd74e479c76090102f9fbd28389a82125f482fff8d88b54c38e8db9cb776fda92733206a7d91e3b36145ea9e02a1549c5fdb594728ecf91e65013826518b0bd91f14327afb56a368f31fd55c77df1edd9201de755153846a968ae48b79d65c595631e6a813fc16f5127ae2d521330d9ef9b3abdc1cd84bf02ad4487d88e9f3d3c6272a8e074e3dad5753dc02f1853eb5f3a0e1daa692bc04719d939765b23c5a212c2cd1bbcec887ec7b13e19788ee60eb4804edbe2e14fd72519e07ee6d582a052d8177ab139fd956db643bb1034ce20d0dc6b5b4ca06c53b4aa8509f65613cf35cc11f7d2fb10b37a6ad99d91e98046c7cdb233dce0672efcb09c561743e1713c62ac85db8d7d604fa262f4331dce0ba0020724cef6220fa18ccb965920dc910dffe7cec4b8b020ca5fd5b2053dd92d608a02f14a20ab0311e31e91c1340e5c16adbbeea83a5c7690c05d4b39460a937a06f8ae19f0e17bad8be35a0fe35783f3b339c500a35b8b592baa9ca6e482e4a7f305843c55b6c57bb4234326e2881e59cb3bce9565e385f93ce2a5d8b667fc65e1ec010022bc3fa3bbc3f8d4703c54a6e92700e262041b85f5ebdde37f89a8bcb8f54fd0736ab20bdae559617dda688f3cbfeddfd8bf07aced750e91cce9d0cf3f4592f0e7bd8866b45aa65c821c8b92819da7b616a8508478f461cf6f774bbb164a7c1932a2b7de93709ae99778939ad440e44772dd0cf3d26a616c429053a217ae1e3104a25d104c79d4a09753e5750792a7fda17648b63778efaf26f3033bd720d0329b668144c45a10a9e819d5f9611e1e40a15d6d9c0c81ab05b933eeb4ceed660f4cc61ce7b628332c2d29dff62f6f03fb806f65f0430bcc1e486fb9255f8dc57dc5ec724dcfb12b2c28a87e3aed2dbed55a511afd2f230cddb4c61bb745ef551dc6a7d26d44ecdb8b7b3944c698c3dfbc0425a228a96903beb8b82cdce3088dd9ec35114e7b16a7e56716352352c6443cc0e1a7cfde2f83dc972089cbe2e0fb3b5482261137622ff278772576f572236bea7af0a3d2680df1e7678e767421525509c592c0492391a1f48244bdf55ffd4b1ff6a49b35496fb90b8bc41af34544aa198aa7fd242f31d4910da195e086896e66821b80d9c6c122fc351ea62435dfb847122b818d74fb9545b86e12294e106e3eaf069a8ac6d3d2d1178a1b4cff9486801c98295704810bc6d6bc6eab8835e76b559d1e07e377ea0c8ecfda6cbe66eadfbfcc7f9752af530bfce524d1e0923dbef4cd5b64c5350bb1980795a3d65ab0d6149e6cd365e47bab70d8364c5d650e22fc9edf524e2c1eb0d5f54e5e0371b17a84350c6839c90f7d2bfc359729d28a5880ce642093223da547c2287602830477d068c952f8eb947e1cda4dba5050c25dc860a31407d48d47d01940e46c2da8f62e1508b168ce8ea1e2ae5d12fe5885a6f1f453d31d0735e141a0cdefb73db2cd3a1a411272b9b49d99d7b433fe7349c26e1071b363b01aa2922cc24414407e3c761bb434382cf77fcd383951629d0eaa17c71325003e54c3f33cac5bc031c1b2606db2f223914aaea282afdee1ac36f1123cd604cd4a4ef7d1c61fbfd6f9f6553993eb8f59098b140988d5cbe2f6e6677ead8abc75cf269344d42bd0372daba136e8dfeb0eb5254652c14e25afb9760bbfdb8579efa53b20175a3554ee25f1b9146ae515740153048bdeaf6048e642b00512d920cb0c771e2d8af139fae0312a092a749c7ff00642fcaedc340c38f6e0098e5dc5423ed6d83b3c7f96cccc13d4ced89bf53f1fe266d322e2ae506abaaf1444a5b2f2cda33b94dce2db5a50f2a55c73aea59d3751b56264e5e78d52714bde7207fdc7f47d5e4a83213c31025073ca6516305b1bae88f9f48a912834e1b7cbe308285df7a66a63c7b90a7395c76b15e56458af64f7a92fb8f06d07f461445f4952d9709b890607692e91182e25410c602074022117813c260d08bbb582e4059ebbea34e1065556a314b7857c95dfefd858903cd59d4cfdf30072a1595434a6f249650f819c4f49970ad07bd7ce544cf5e311d7cb47919e4c1ceafaeff50accbecda6a914ad4a85ea5dd097e3d3dcb2f8b99f3a67c27aea1661c75828fedf0921672d4f3fa2f39171f3307d219870981ea3a711b1219fb212f55a7082f8f2a296a17905a195cc222ef2e74fffed75f96cbd3cc82493f7ec12875dd58bf828f36cb745e65a293fc4e5ff236aeca6230ded289b43c41e060d611ff453d230d1463873480952513ccbf749c390b0d1aa854254cae86538996c248bc77597e282c256bb1bc34587b07faf34342740eaa0d5d53c571d15090e539c774ec5cb699b21caf5ab864b9d5e545571fa2a14ee601eb2c8f69d1a3248885d3f0029d8acffa293a74a3be4c79124934824e4482d049865d572dffd9ce56d30978e8f49cddddc7982e82103284ecdce3da27b6597c65c320e36db23e72308f5467539e032bf221244b5cddad52a2675a9f6c6e3414d5e73eb5c81e10415ebc5b66ea5ea21b1c80e99a5410fb5f1b25e5f15d5253126cb99944c4c83bfb61c34cf10ced8d55480063e062019e9a6599641f1c1a6c91dea105b7a4067e6d4d2d1c2e735d5c785b58a4817ec4ccc7f8a2e63cfd910d6e4ecac52cc0e4ab0e06425caf8f523c6203f913d93131fe2a00f75111286919b03f89f6a1944745bc35359d592ca01673ffb24d2fc176dccdd5696b7d30f2a7c0285b1548fd5d8a53b9a7a54e2dc68132f6b7215346c3f7774cfc9c831a7f3a026f7e0ddfa6811739529a283e6f8460dfa21693391d4e8401ea54055e6053f39f50d4cc3c23a20548a65017ea4135ef442a045c44b4cef7a135f8cfaeebe7199a2b7796998ec12740ded74891f96b8528a56c7540173bf8994c6487b31d613dbaf54483a2dc52cd6931ede34ff82fed55f7d75d6560daafb7b5b30ab13ea9b377a92878f6b52daf68d900ec96a2068197e75729f61dfcbdfc9417557e3eb8d19334f2a84ac734636a55b80d71409e84c0c322ee73263581f524f23a04c4d9b2fad3259993b82c2864b1b1dbdb95e8d7fd2cf752dd3746b79b79ec4e619a3e45496c432a60f682bc096f4a8b9848a372eeccdb2c97f6df239686d05d90cee0fc4144ba0a1c29788e2abf82d0ae4f544f1f658ab5da1c15e35953e190eaf9f64b93376385b68e321b52f7a127b3d020d38049f7e0fad5b37a1b0db243e886c3e2bf7135d6006c4a8319b88682ba1be810ac22fdca8976a313af4c6bee400840f51337169a1c04eb5e3e31bba71f37435be085a19993603d1666f0fbb14d818f2adbf2824db13af05cf441019fbeb78d20946aec16eb0c6c33e74c1947ecc67d31be6d188fb0b6a9bfe44e8dae7ec3d015ff031a805b70196e2aeab3dd67be7e3908b9b0f92afe564dc2a6ba966e279f58e042b9d7e929e27a427f097e79e75c7f39504918cf7c5346e9f9823d745071ab09321476de64b5cc816d1775369c2d3a14fefbdb939b934396933886cce4155bccd18b4be369ae438653ae89f26dc5fe4391191fd00561aebcf4f7dd137641487a6c0652604f87e58f6bb425a45cb8a18c78c75cd47926f7ed6a4c3a733f0c469420eb29e20dbb9babd6f64c90ab32979259b96a522dd5a11e8469e2793490fde195300f406b19a070e86717349dd744957e9b168ccddc689d0d826caf94a0e4bbb2773cb07310bb7130a1828790c1fe760bfd2937f408f81f8a52e3907fb0d4b936f3656c3b7b5c727ff76f0b524b7ad97511b2bd61b0924ee96abba3faf941062485b440b0f8cb0dea691688bc29113c30158f4a78e8194345bbfdadba3fd5e8625deb5bfe9526080b3113bee2c02f988c367df4e0d4a71a4e02ee1aa87ac619247671b1c04d99f2a208c1be21e7f510be22ab9113e96ffc80df9474dbc799372933a0fab4c60c8edff5b8d7862d800fd6893c6e162ea905e0b87e3a3b4a0573c6ec6f4beda42cf4a9038dd532cdfeab1964f3fb283282477e31b2102fa3a31d5e5b0487ea7056ef6e6838da1c46af5c018f256787a8b8697db82babdf5e2f9a926a902476f7b74f266aa8875a8fcb2c4d5b5887137d788aa4375c807f4adac2822b95ce2c55dc983ef87cbfa0d22c4128c8e1854cbfceda7254829e1e80eed78f5741b7fa37691330325060947f8c5d34bfc8866fb8d5f6f596934cb7ddd406221925992c3169af3ee611d980cca314a70aa77ea3507e4f482f234a69f07abf06433bdd23fe58bd383f66a29f0ede80d24685dfbeb5e94e56ddfa5234bd4a9ae5158d7491820e4d4f0ee845c4fd74d983bb25a9139f06dd938f1fba3034fb85b81760dd643fb387f95cfd883b8cf5ff41f978a71b67a5f3468649c150ba7e0ecc5224286dae88d74f499de2eff470d8193285677a007888cd9dd1ec6efae1c7a0725c16c3b54436248b0a1689185bdb0a1a7ebf57adee438704eee3bdb67155127e3b3e68986634fab7f629572fd9bbaae3b9d6582b77002d24cd3228f343d0464195b3484a0c74f62281a0625a3e34b3488687bb46d06d11866fc888bf18004ebfdc581795bbb342138767c0a4fab55fa4d6ac47111c104b5b4f408d77e6f1f79dfb6d88d302e5dc23911d4b28926d3c2aa4e00b6b28e7533ba3827903d09af49991a45d0f6c3c439dcce451c6a094f13ae7b1ef0b389805631ba8ff47d79b73a4cd900893513a84ff422822014ebde5632014713aac43d75567fd9ae94ca44ee065bd30d3836036167041cf5a44bc8dad9fa658d173ce079e1271c8a6468f0bc337ed67347b0d95948d03f84c5c16491ce7a0115b4d5a4c7a79e44b80c7156543efeb8d6e317c4f5e890e807794f122684fefb4aee28cfe4118afb9d4cda136e8e8a87fbdefa9ef4ecc9637a520ef7d0ce095a53423b6981f910554f1522325ac012e63f4273a95f81b149f9be48066786a03d1b13b4addafd00980964287e559ebc37d18863e7cadff3bbc5aaebbb1460045df28960e3d895df78cacaa970fea005b67710df5bd512159e31a2e6cc161e2c457b9f466cbc89c8ae9b2f7e99fbb74dd45ea41770e37853abdbad990fbe2f73bfb600261b6de6f0fa802b2e226d20fcba0fe160f68554185f1dc836e7897241d55a103eb1d1d6900192785da8002c4d6252a739e666737b8dcab83a85169d23945696691bced0d63aed79f066983059485b41ae67e505e2f792764859f22693907fb7b60d8a8059d0feb44e404e49af6e4c4ca893f87db3756f0a53677254035f0824bfbc49de6deb08995943a9467df916fdd82f142b703a3db7e7734d137f7d674a6db25b2698b8fbf5a2975d99dae95528ad91663e316d5f96d99c562699c49b9dd73009627ece50a911d805c6ac2a3f3a6aff47b881ffe1bae0343e95f5a337e450f55a33a79fae544faa5c75f39fe3d348ba94746526cd28cef0a9db238333920b43d1311186322497b61bbf34b7e796bc26b28d4d8c57d0813fa75c8b4c0925d4d2e99cff1a5f51d01ce45bf8098a1d695270f12a65afcd07440cabd828e465fc4767135773ca361f62d9b8d5a1df92b593e38e1a27d3a6151b620d17f435b205d157c89ae968c0c0d068459811e020be02f6a8c1247acd5568c99df9f38f22482c7d6695a3849596703217de177cc7cf603642d85630081c83acb30f71a6149e75936b96fde0a210081960f9e90b2dbf6e804091c340778196544f4e7d13a212fd87a96913b234022dd488cb5ac1fb35af406945d7a86d48f7681481c18ef1bf72ea9111645f0d098e6f72942634aa634db2c06825bbad72685d34facb2b99938fa128f5c449e289b1710e74563d7c09a3323d6e04b3104a02d60519258f2ffec38b68a2e4f66ab0091505c50af9c6fd7d50cff2677df91cbde697c84f1458c31018353d5b24362d7006f05c9d4b971939a386753dd98c1f4db4c2da4a2fb593d5cfb3525b05ac56258bc25d84c8a20110f95aee39fc735f0c0917ffdd23c63babf2c64f0d449816deeffd060cf87e76b45934db78e9a7b234dbeac414b9e8927be66053e6a74873b69cf1ddbfd0325f02d6f8c049d6a2eea631ffe94f2a3c795f8978cdaeb93152497c8f2436b04f0e906baca23fdcd2d7ffe897c4013144b08e451c897c9909fbfc8551dbf82768bd9d22a932bd8b22ba4a351feb4e4b61cba2b270d47d9abe8b442a12db0cb8ebd3ee1b43674e91ca0f7489cd7f5896c2a39b41c2ef544ab5c205a15482e806be2829dced1c48a9efe7078be8b8014a92d7330366cffeceb0f6fe283ea89964a8f0f4f6b1a9ba8c16afa567807ef2d557796d5658c596eefb24d1488da0c45fd665798fb8efe5cc94bd666b272546a7173aabdf875bab666d5b5917a526e7109f8974a2ed7d6413ab6ad64a1ba2b03c31806df13a37e82a478627073cb5fa2619e8f5fc239f3c85fdf0830aa27bb841f92f74cc33227c7309a70c92101a489e91c92209477ddc54d7d0223f0db43ecdb84dfe9eee6ec9d61e6bc53b0c221edcd38f8f5fa7e373261142f546aba348ec126562ee95ff6b5d153fd8235ba7d28f15db2a84291f61da0899417fea2e4f58195fe98db636535eeaf339300d8984d9152feb8dad15989012841a318b82faf498faf860dbe45f586e0fd49ee00e2387deee22fc0dd322e93c5f3cb4e3412510a196a006a6f146f18cf2a653c7692c67e92340651f15ae3915e8ec88e134da3a4ba943525561f73a6ec0ab32da652fa7f51dad1dddf2a31282ef51d26018b24bbbedc56142ee6376f9ca36b9ad2c0498ce845830e9e54a5ef0fd80a6ac7c358d13ae2cf19f7d25eebdd14c7ecb603a34d39184d0a33adfa59c1e394a21eb0b48bfb6af74f67a01c9a28d51d33c50809d7b2ce83fd92073464d7249205c877276dd03b918c1ab398c0c9c9c14e8075235b659d84515e9fad70b6da8d19a634b330680c0fe7704672a9cb17fc78210ad91d3a4d2ccaa112cd0efaaf8061aa1f5569558367da175dc322ac7ec40d48f3bd7ece2ef9fc38dd5531607b5f49e81dc3a9fff004fe75e0cf8d79488d56d3d9ee756405919b7c69798bb8346b359d2e22b6f094fec8cce7cb5255523ac3c67c9cf5f48605cf25309c0f0f3c29c53ecf2c4bb8f724c214ce7471b8cc65db74b12c2c2418f6645be271ab8e800fbd20ef7df224fb49b426f6a6470abf2dc2dcea44f7f12e3e4e991994029abcc68ce9948a292e123d9a5c1ef6cb85ed2a4effeb7931145ff0758f3019094ed7f3bad19e0495120448a015ca1cd1d95d00f936a1fd54f8240a7a67cd650a8cacd01e7b035e158ff47a95dbd2014d28608ec7e14cb285a6151fa67d949eb28d50d33598b677787f45f26a2d85a9bad44ee84c5daf9122f78148b7e6e259f480edd22596973ccf88c4e63f42b34b63cda0436bdcbdd030622e80815cdbaba352db5d2d68da33d19cc3429577255ebffcfc6af7cd9766cf3052260847ac30a0d2ce44dab6e6c460ce365e39c8614aa5c55b18b032ff78e3580ced78a6d1850edce8462922ab93f070894836ddb5bd2aedbf747a553b17fab50960c991877a7b23635941186f80105163337d6fdd02d37680dc2ba9a6f9534c9d6b78b8180a46c4133ca71784c6a58a234a832f42a34c683c774c020ff81b07a1b38e271859bbd81c54d05d9c328f79e52a121926eda282144de9d7432f1b4eb2140c44c56ccedaee1977029ce4fad26adabfced1596afa25b0f564a4b75c2b41344650c9ec1c4c8cbff218ed95a2a2925d85f4bcde88340c3108430680abaf6345b3c76ad6d2c725898a83493fa49257992b8505b3138bce1a56b197a003eecd019193aeb35d525dd5ac9903f25bd4edcec33a996e68dae8eb54a735d2c742b5a301a8fb4c9d23a2f48505c5ee93c2309f5fcdc8999741615b84e606342e758624f513ea214436d2261a36ca8026eabbc01d99a23204cb7901ab4dc08cd78091972ce9e772f2291ceb36cca80c3a9c2fca08d3ae37e5d5076f09f60d4e492f39f9321f9742b38378b41c4708b061635964df6d5171ace0e4dac382c0cca5a93c4e4c91ee19e759fa1b62f57fc7b6484c7f0668b7d17cf4fcb42cf98771255c2f4e4d62d618a4fc60064a81b57ef69f388f9c456acea19cf3bbd397188a865fdfc6265b83aa3d9b002fdd4cd3182ae61a314aa14a2de567ae53d13481262dcfc95bcdb11cb9d613132e0ef40c05e4d2d559ff2b03fea87a6362c8570fca7e286a78f832faaeda7df671c056836594107eb4e47fa25fc9629b1b0a901284cb475543cb58aa52695df2db4540691df07c934bd79a43cd94d2b84e2df502ce2309f37bee5f53e1bff59ddf608d23c45d063f21c617f0c5301561d01f4f5344945424d4836d0ba67cff20b0c668de68aabf6819437838dd04db8f9b38311afa70f2de3a306f380f5c1556557315a146aa4bc756c396e3bda8a067f87411ed2f6e23e06671876c8f7ecfc112d25cb45e70b4d36b869e87074faffa691feb63b8a6c31c0cbe654115be3a06d7d1bbad1c20024c2d1012180e9c2488a6ec7a7d34eab1c53c11ec6125c8847dcb6cb2eff92a1e2da78e1007dc6c7f35e2bd535732e284458033d06f485434d8ecdf78fb78339c3b7ff9b884eee27178f267505f22037474bdbbbaa8bf557be70014f9c0b5538b461ea1119f39047f9051e0f9562cfe5c0568f7a53fc58d6955fe33eb8236e0c50cc22147176c1f3efd3b0ee92847b511e2ddd27475dbc351d0c6021a38efde218e0c1a7eb1df120e070e976101d6e42ee56a0a44aa1689412a48a60618b561a5b7097747aeb5877bc66f082cc2468fd4408aa4b2a04af49b4cc8dd1dbe5d9ffcc361e74add5bf0326fe2a2fdd7a0af0b445e806617927bcd55e474adeb8f5284e8a154af3b990b261e5ce22ce6f1281ce1a11bfc8edf8a2c570567e7809fe8747bce621416d3c493ada7b03d48835bb345c20291a81b419658e2bf7736e1771bf03702e0fa9a13ed65afd700c82d331e25eaa33e4ea1c37d65d2005d6dd99eb2542559c20dc1095bc597edc9e4390c1fd7c492ceb51bfa6eca048f421f3d9e9a8ad051bda69daa82581790e8257601eb090865004c81c684153fcb872fc75305a9245043756b942257c78e62126f2855d3347e7bc07c3ed708b309c6463c82b95d4dfdaec5c5ebef3371852f1e9f8f719efa18adb3300f6e1f6b40eebca153e6511061d3520125085ccc1f75345a81834efa5c4ffb5097915749e265220d93f90c9021b281f6af6d14bf4b88917555de71243d151b6e1bf6c711d1b205be8cb8259a3bfc344680f5a99ac181da0cc941196fdf5cd395563df328c6de3e8f54ce751e275f4935c70451383d9af91c0b7e88eb40476d66f0958e4ab906f3b93ba890668c7ee748ae8da356220da25ecd0e2210bc73b5ff81a7da8e4fd0e1899ea45d49637759d31acedb20d354d6b1df97b1e9a18144eede3074a4a1afefc46efa2e6b91b10de14992d8878b15b257c981dc8e806a32eb3c170c3a230e0f2c9ff83024b2fca542f79e1d402f070790995967dd6982678d44f30d9a298bae5f382718625cd0adb54248aee2d0e79d3843579a5f43762c21ee7bef4e3417e67733bd6a6710270adb19be261733f3d721976096d4b43a2da74a324bebcefd6b2d46bbae54edbda42da229cdc14396ef99dd99d584ae96f770193c46f2a3bec2a03be09515ae6218407fe578382387c5235e3853eeb0b0816ddc35c463ecfd01e7d3d869fbf235cd56933a36dd6ef9311caf0cbb9a42224bc3d3ad957a13aeb6409707afa447674d38d80c2f22e69ba5ad1d941dc50fd0d4ae22765d7d9d6850e9f25216f161c53f3701aeda69a87011e58ea0205bd643bf73c680c13a3e7c7867e0e0e085fee1f0898d2362a3e76b04fe75fff7c22c03f39cd088f6fcaaa3973453608a25c398207858be3c78289cda8d03c1088fb2f1443519dd6db5f7d0df6e02a89494bc2db6631710ed41e159ce30f735f1f4781be0b04b3cbd05db3bb339753abbb2d9f32f17d53b4e4d28ce4d8d6e2e6b54df8da4aff099c25d70ebb5836744874ac4e31003a471c753ce1832e911679f9b584d72cbd0a717e04ddb7671d490684e82b685bb640f689473a241114352d10669e5c538471a8e4f91b8f4536a55153ff42bda7cd4b9ae8fdc4f9e4b02402cfb87b5718a388604b33a35963088a6ebef24410f73426cb67f4685189b7a14b96a287997fda9a15d7d11a515e6a5471fffa88107eea56315c1d5e4e30f81b358cf601678213f7ed8684e66523e699c19804cc8156512bb13a8562886971a9300ab5a12bad390b001130e7c8f4d9ed67b570e81799b1975378593618f241a2977c39a52d474b51940a0e1bb8568cff4410830f1f63b2cfc9c948350813a82e2a58bbd3063c7d39aa02dc7ad8f901dce771b30fb1c2452a41ca5340c1cb4519d53a47a3a41c6198190d7627d0c2dbf11a4d92bddf7d2c4709c893ab6b88127de88fd74d23f8725bb060dc7429bdb5dd8689d80c9573c8f77cfba843a1df08e51b69128d15154fd77c8c56a7b08ca6887c76ea710feea888a8c93006befed8498cc79448f1e52d8c4a1b8abc8eb9728800e70e91b1eb5f7c0ab6b189cbaf6262cc2bd0d699ccf6728c4fd7f4883b8d32de846fc98e343d57dba5407f50075c9daee205af12c4da4bfce9cdf9b47c1c2d20982c0d0a0646cba3f5a64724d9d2bfaf5bfab1b819d60d44603ee1bdf9969d55a277fe05f2d691f79bc9f1b68addcf37ea44c81ea558bf02c58c53d543c51bc15025471ea667624310c40a9b5357a5107a5d89147745e6ef9a261309885955bd086947b8a3b1a1cc768f51c2bc836f75eb3335196a974f32313932ce7579e89027de0ad76f306f991667ee64e1ef94823f773f7a174cb406c872e718ed617375f65ecd19e941f44ac2956d01e1b7cef76925d1ee64c3fe7662703c6dc6de65aaa1e4544f37129487536130bc0e403a52e32ea74568f3d83b703c2a1026624a815a5c23dac5f9f11edc4dc4714baaaf29d72f3e9013f1401a332de759cae63000c8fd1d6b22c1dce7d8716f197465728b4759c996d38c052ed4a7924cc1f6011399fcc46340a0374fee0912427d33976aa0075765c217c95aea2a4c4607505c5dabe40f4ec016d39b923ff3b00b43a14c9cb44180b91beb9e8ee31b909b3d14d7b4744b21cf0a4987970a2c264bf1e61a9804b7e58aab6d59920e2c94be2c66bf56acbcd764655016aa2a7f5fb0940529bcfd295d02e0318c079e974efa8b32dc14d6696750c096ac3b27e08413153f200b98cfb667442dc473366aea221784030b2dca9c8b6054cff0878200930d35ea63d98054494731c69a01f2677533f10c6b78c37df2b658ca6baecf06b194d7acf66e4a80603938532d07bc6f340b9ec6925b8966a70bb0b08db270457648062ea912ba22679217b76501329be8a40bf692755338dca2cd826e780fa32594d3cf4d21aae972e1a7d6c47e7c8737b5a0f16c5fc6340bf079c936e02882415e590b0cfe13277673bbce5a4d9733704b4c1634a364e1da332f520c1306e40920843803928a26cb3f8f24661e83610497b2439097682c429637bf18301b9fc106fe06eb53aead3cde434e87807876c9f5983a745802b68dca2d508292793b06bae54d563a4a006d1ff338197f16b66dbd438b0a0d2aa0bd3667b1738375e840c522e3f40695e578aa175fb2b58676ba53fd1397389ab97d97746911127fd5629644823e858bb0931685d6d41ce14eb639e30d911bf24b2ab5d45386ba1987a939cf75eff26e176cdb60ccea0bdd44cd776cd3cc7f782776dfbd9373fb5737c015782d15454f250a42e88b1bd849f17c22fab7b06e1db08687185be86e051603611a82439272c93c0c4b2a3e4ae799a3531298dfcae34a38f06534cbbc5b263e4cb005c432057c31463f7a34f1777d88b859db979c69976ff9f6fc596f31688adccc6e7b822d92860fe844db97ee82a67778f3f08d5b0373ae19f1e11a83a026c94a274745be85eba8eb7ffe6f18c60dd17ff3554860c8fbe4bdd1eac60dab376982f4fcecbee0cd3aa3286c5a995a95de1f82f2f55d754c7c04b69385e359ab00b31765c869a5fd25545f40d52b4c6953d76a1549feed41c1054d3d8af2eb75c2993446686734f0744a2ac3aa01b3925a92f7e97505714d013816b7c6f11743fdec4c4943ce2b377092560b29e2b0cc2bcd4724a8c4f490cfc8f3dbf4f272c508b9c3537349957de9635c35fd90317b144bb42af4340788c2767012f94da1acbfef4c2001cead00d19dfbee68d342e47f4ed9fbf45fe966f0402a8085959fd228aae160452facc398e5d3ba12c91991d797907354d5ace7ea505b00b7867e78aa9883a5bdaa732c80402d94eb120bc0ca6117f138486614b9bce7fcf482ce6d6567c19c53c81057a74bc240f30a0887f94b1b8616be2f929055255638b4dac8749901f0fc5fbc7ee8a828535483576da28c08bfb3ca4280b480f82bf0a0fade170dce1d1410b36204f51e67dcc90a070c8bde823548329ae3a86a06af365ea0ccb1d847cf0c39bf27d0a79b959cbffda58b2c573cbb72a322b937be1529b9b0f7e856472b1db45c5bf002639444b60e06adee1a53abd050359c395ac6cfb2dd6b1fd668b24fb45aa82820c48615bca47c747e85082d8fc3562eb6d28c06600e1163e308d11f129eb43c61b842976428b7433a0b97831954c4c78b641e2de213daf466256058d8db09a3dab865b727477eeebabe5b291a1d30775bcdbdc9b9cffaa7c6de8ece6c511e549c84d0ba24bce6c46e2da17a69714d24853d64ce37e2f543dd8b7837e7149ff5c2f53e7958339697029c009ff60470e13d038494b3ec551237d60135260b9dd9c661327f94855c59c63d3d5e86c8fc115e767c57195fef34ee274781ea884f166dbe1b97d2d80dea70768b11b91d79ab95e0d2ce7562cc23b96d265d438ea21481b3a583a09755a23d4288e261ff1a5b71cd3efdaf68be149c6b131896de158b42005010b1141307ec8db13c5ea618bdc8c061f5ad6a92fa882f5ab7332579a416718c096c8add2b9fc716d9ef8a91458fa00f3c172accfc3652e1f94c02577b54eb9877d682d1ff5051a95202d4344b90733590656ab96dbbc00f31ec981c172e0d3086beb556a7f23d5a4a513d9772911aced70f7b99a86c48772ed16ae36424359eac0606865ad7a5ad99145af1882a20715b8c5e08d6a000b9d62555fd828abecf4e6fabfe474065da69b41596f57c0eddacfc9213ba3b5e758a929899161d54d2feafb7850d321501763744bcd3b9e5ea45bebd0fb0c8b25897bf8d1a3c87bb6f1952ca446581f7f0d1637ffc9f9ddd540ec6e9e4c557e26979ae4d1d3376f08b35d9f38f55631ad14fb1b0f92b1f773ea932eb0d1823359195f27e9b46db94b537a11fc5d17b66889a9e84588b0dccadb8af59118b71aa2f699300d1cff0f34c28d9ab0f754c5fe78ea079a23ac8a52ef1702c171f2056b36806cd59143679a648ca7b4934a77ae9921b21c6de1e674d3a0f755d493aee773fd5004d409701ab16ae312c4f656686fe6bff1d7170e39e83a429596f984ab3af851d9ed3c6faddc9eaa42619d2b8b6101d9f08b329524dde143ed3a07ff0290a0ba531ca593888cc03b1412572909cb54e8dec71245b9119f2d85d915159c805bcbf9327d85b6485a2846fcb5242cd2ca4a83f22c489a28ca87ff20d3e92cdb5f6c7b552957616fae992fd21f112b703bc7475a5d6cffecc50f4fb218f871bcadd9ed67915812c8bc20d75dc1f48a1933ab7c49884df003e6d80cc9c39abaeae028e32423f8dedf39085aae00e8ca24e0267b8b2f086f45131b141d4e34cf850182a0b1670bd48839ac8c0dd1cd45937c8d461bebcd6b69cc2a287ebbb59dd9c0f1ffccc6054af371f96892a2f6e73d960042b8d4124d2cca0a5c7fb246ea4d2f5d35d1db94c5146daee371286977d29c10a76e10875b45831b38a66d5a194647791da0ffb08d14d478693ef88797531dc7a58db75a9af62b47ce740fa9aabcce7522054fce21786af88d4135f1d30457a6926215672157c923473a994cc88754e678e15ca4ff05e16d5b47c989ba29939c66857e469dea21350783edbdf564e25809068f33649632cecc5bd15b7bef443817386018acd5ae810737688009884bac34ebb2b4056862209097f94ce970e1b55fd63dce7cccf96a7bf3fd58df68a2e6a94757c8d6358a4ddf62cf383f9686a457b8aa76ceefe9cbe2fd4921445742b6850e8c8eb952091ba6565dfeda94b943024d8b22a081de6663ff18252a224ba13242f43754977cd9ff2aa1d325754213f72e492fdfe0403dfa1791a5b2fe48039e97a3b282ee235ea5e989857a67c873618c3769b3dd58473b5c9ba382e03303fb0219f5e6f450c53f5bda9180d310c8be81df09e6fec69e917ed4ad8cdcd454a61e909e02a583e5a128696481907f8edc2a8fb38b0a4977d45496c4cca919890bab05ca4184b7d0154e2c66593d8dadc8acf6f30b233c524c72300cff11c599c8c37e24a8364eca22b67c4859d4a12e3a3aa524efc50a9f9367ecd8480666e1006d147b766ffc57205a383c3804449f204bed0be484a4db59c5dda039abfd61d04329dc1647665ca53e946742624e06d9c587071724f40cbc5133ad9dd1c9c86ba178868e8016fcc7f770e8c8d837468a9de23071e1a1564cc02b8d06afa9ef42e6fa2a2eb012d56eec5036470f0fc3eae64bf8e84e6d6f5b92695bb1adba93190d1fef81157fe982e4bae2de4c16a139b8332a11bda91efb4e38ad6c65abd45144471eb0d2e45a6d7f4370945dd11e33c48fb182ef0521cffb75b51eb7fb0c8e40c4939dfeb616788517284b85d0af151dc4e976593ccad4d0c8581169c5a30d186b456a9414a25815b30ec6590a2fdf51bcaddf2cd7675d99fecdf3752508af6629c0aa4e21a9b6e13a573b84e520f2f092e2a4303db755d0c3cd2e5a65187fa12091598fa0c3cafbc088486c9b4bbcbe57938cb5504da43ea8069d929551adb7aca09305d2bca9b7a425913825f99d6917838a0a916b7422ea7b71423533acbabf55d285462c04ceffb462ce84cf6783fb6174d9f66be552986a9e9d630a7d27ea9274539faf52b8acc09c672730472799480a636c025b05c312fbac8a08d32622d6415a65949638dd3882a1a1af5ba77c07bd97f8a06cc09ece89be96050aaec6bfd5df6657b153aedb344db0956e4e1861d40e35e08c7fe48bd20745c18940f9a49c0c5aaf7a6cea7464cb7ac78aac8c0b5ebb6a2c397c4061b6bf21e62d80c1196c9e2ea93f85131385c1f4323280306f0b206511b1ae6fed74c86a1bda1f1fae2a04f75fbf4229917ba462b1b46fcdc54e8635e96e3778d48770d4d42e550a9e05bdba8b7b0b1db3ea97bd166469cf81e221f2d00bee548bb9d2bc934314e5e65a1a1322152396f8778d5d8b30cd9fd142bddb6db56fc94e4a1391adcd0fc0368f304ede860024590477ab6879fcd0cf9582b09dccfff25282fff023f422fccc083b133719cc5699e458d0ec553812cdf002acb33baab408980ade7dbe7e1cbe3564b018de3d860b7e03ec1b0f6b05295eee609e2a92282f77367456d42461f5b4bd88b7c9bfbb331674992118b7b4daf0f707be59eb934478d2be53dbc0feebf372cbb292a1b9b3a265e66fcc9ccc7828bd38f797a23c7c125dc1fc655b7a81351dbd35ba46593a2f6397107b921fe455c3d83f019f572d8b307adec617acc6130c90f9ff0ee40f1183610d004bd24d4732c921e3283a8a676d5d328540a2cee6ece4d655ac19be69049482f292bc29f63fad0c9a0785b8a95fe4e83ea8c6aa3abf8e769d6746e6b913198eab1278b6532fe61e8812ce7ac10fb096334c0a5a73b05ea19dbe9f337225f75d94aedfeb64eb1e16e4c3c1d715bd8f78218b2c30deb08aa98cd573d290a1629957826fa4654d2175d6a2b619862649e7cd2a7330c73b388c94bcb7c11feac99fe671a6b144a268587f23175ab8da2f9a270dd8a2ffb8f5484afc10ba5dbd32e3defaec152c6560c4f6386e1759754278e6d43fbdfeb06972e6181a5596df80deff1e5e83023abe708d48bf934011ef08c7d75dbfeeb503075db0f468ef20d743ab86164691a539aaa49e748388e680940adf91b61dbda7145cb1b66b2d9ebc9a7559be0b0e759f20deb842b0aa4fe85bab7860b00910155bc8fe9f1d524f520e1c60e3cb1877b77e6ec3f9c5a7fa0f96acf82e9e445ff3990c3bb7aa2248ddf70ea2cf5f1a896f58018e10999c98032d2232e95cb432d106e1cd8959cd6e4c0a144598de798fb10f78ea24d47496016652490ce6a6ba7e2e5bb2ee30824343dc26133eb4d2b8bd18ea60e877b9510a8b430438ca77a00a8bc021ae0a2f8e822c444e5b0fd82b4e6f6f26d96448dc77cb185c91952fddcc97a85b4e3b6865280f3b0a6798b97e07922126ed7e3e765e4e01ae10efd97ac4fb9059f0ad2137d29f14185bfd0e6249084f585b10de97996bccbb23e4b0065fba83424bf18dec42eadd8ec05c0d7a137faec75871e14d30157b93bba7bd4bd5dbc89e3a94e87e932c6a80058e040832e9fcc3e78faa44d0dcc0d322700aa7d7596045b9f6c5ec766b0ba483cc2caa837c7bc74033403751a20ce7abd59e8f0259bb0662bc100780667c16d2f851bcdbc3465ee033d9ce3da1b004cc51f6a332c2736a9068ae04939a4e54c94933a0f1b775692a701de400adc9bb7391573aa7a0b54cb4c077248902e4bd09e66c5f9bff8be67511ca7917ee32bf499ed35b140229233b8ac9f760b9f6146731f7e595e6830459b51ae59c294019f09affb571357f3ba46eee397e9b83cd3842203d7917204c572582f40583836417505321b08908634af37af16932bf4f3d4650ab907831b56ccddd445c843dd08aaa51e193dd2e1aa625f3a3436b679d7976162789cc1c9068d8ceb2eaad909fa93bb23c57e46a3a2bd30904f35a63bc8282c63c9bb4e117f2d1769dd07d6d848daad0c9a27c24a623d193c042eca4cd1ff9020d64af61626325becdd59f87b076e00c500e4edab31ec0a0f46ac4eac6c15683753e454e918ef31d17a3039f6a8f11cadade37d2e27485d52c78b74c64fed020374a80c1fdf435316c4685cd02afe02b1dcf79d34c23be86c685a69ab0b3555a02dde52403e53b1d567bd9eae196bbeff1704acef4b327a1b04d3f96ac045cdb5216c435c24791efccb37bddd75c31a6e4b9827b9c4713fbb4d2b0bcdfc20c3eb9f12903f5bd493dd65f1265f3bd56c1473477fda05d16fbbb1f7784f0e31209144f6063c9592966caecf10108da3b1a3c6b7ea23b49f0def0e9c9e038f00a3ca0a89810379021cc2596dec4776d9757f2b3b8659aab9f7cc4f0b15a1e68d6c523e5c91f395bee2043f14ab6e783b392b13b726e2cd38f2123dd87b6ccffd8914686a8fc8506856fc6a721bfb997bbc68351d9c4ed04383d86528a10229c8be6334139308bdfeceb5115befab2ee91f08995f9a29f6719e47aeb60b4696809ddd04a96a68df60549b32443bf08742050137e4d3f7af3a11748c31437d4a6cfb409547f3080af01898248a12a02299a93ce7cb33b385f1d93528cbfab8f247ac96dc8d2f353a22d4d1467f9f4561102d262b9a27432772fa2656a107c374155d14a37e7975f07fd6a46b2ceb8c5716cd9b9bdd3f55e49ddc50be0cc871bede2feaff1bae583dd4825b6cd87b4ea70a533d2f214620076e69cc77d786b6ca28920cb95eed0d7c9814816ff2c14dd3001473233395b385c9b10585a7601a09a82ca00e97b2a53dd4260f5d8705b70a5c4a4583fd2f4d44400d1e82313eb26d6883040534bcb634f10f043958ae35f7159f0bc3def50046456c20c7e50a50bf14ce3cd78fbd9dc2990be0075c243ef7a15ce82e47cde309e12b5f9d83b51c1b14dcb260a38ed969bf56acb5c077a298e4cf63e78d0d109fb021b863669013c26cb27482cef9040f950547af4906e5abdaea481fa449bdc890047d8bd0c26f4d5aea68fce9d85be44c474c21bfb0413a5db142de4dc1446abdb8d26923f50745a33fca979a38f5e5f81806718645907a7c36524b1870ffee00fa2cb4ab8156e6b4139017e1e671aa644a1aa0c00b604ca8e4e5694a5a9a660b6d17adc972e95bf66469e4932a0624532521d4670ff5a97c02af025c667307d13abab9ce3b3c51afbb386a5771ba0729038650707460c4312d4b51371108453c9f57c02c48bae1a5befafa90c051c6b6674f779b175b692af954e343d57e91b3dd34ef8bc74a07a25556dbf49fbbac2208f9250b601275da7ae65eff742f1c65e6a81ead2d53ca738a2d0b78058f2a4bc5151e6403365f765cf9a46ee65acc2d676f29ebf32c6bd94f6c214f9bea87b543f600d53de63855b08ee2f0fa7de797f7876171851229855bdae4326c1a8de05c1a066d0b77ed7b33b132ef7f4e77fd27f2511f04f9c87bfa45033b539fd050093fecf9b1512bb8e7fa5f0601eeb0ff837546c84de333c4ee27f78ce86e17dd9e93f19f869beb988a24badb3a1ea08df0af89af741c455b8907fb30be4ada0a70e822e3eb1bc1e24651f371797f67dc1c57051f63f15d4b5c7bb03aea278949b9f5ff570a0772ced902e055c52537c4a2fdb918376216ba0ecc99b775a0ed6004483cf392907b785e65e70a93c997fc14828917feae0d5f01ce099b01b4b7aa3bd2ab22f1b41e6d9b9d5465c83e141d2f50c08e8cf2d705ec94d18784778bb9e9b81551c622d27e2e2e4970393432d4d82acdc963f1c0b5af5e2f07b60ce2a732c6557414c7779715b31a6884552188e3e3dec14c108e27208857869a04dfc9e8a6eee5f5978eb6346f55f6f5fefac59d54baf0352a51778bd304f8cb3e89a4fd770ce89f2543e02ce11053eee25bea5de3d5fa386054b8fb5ee6be682bbaefead0aecf550ae85d57bcbc440334f732ac051041eaf417cde1b47a188f48df8e4d8ae0b80f27e1ff874006e6f1bb2730b82afab0d5825bb6ddf0780455697fa7666ea7196f624834ed00b36e6b4ec7819de627427b094732147dfc417403cf379033451eaca22769f3a924d14844f569545fb077b3c9d6f2cd4a1102522fa77366500c76e95b1c21b7d5d6a5039b5f5e0dbc55413c7bd630aba16a397dc22d05ba854629ed5bd90fa6b1cd4b394aa1d23d30dd6336e6af5bda70cca657d19a8b4e4deefd1fc6848eac67a5e54cb1ff0fe93d1b4906fbfb4ed285a56e694395f4bec4dbc82f3e39d49cc468c9237378f8f427d0f8c84d7cd2cdce948e979fca9724892396caca4c9096d15e901f24d5723812cfebeec8aab6c6c479211fb44d70eef5caa24852aee318fa8c79d454e0e909d733cacfc9fad198cbdb2182b10cb0b78640e7ad3889168ba6703193cab6af71ad451b0bfe901c7ceaa7d9ff55ada05faac94ccbe2e6c1e1d76b7a2b0d0911ec2347b8106a5d41a2f5f0aedf4699d81ee467a4a83d93f312385adad8edbb461fee1e46ec0422febb768f2bf26980a680c20ac866e22a84fd3bdca763391705defe00c5dcbca259d09d0a0c07d0afb54cdd77e7475b16741a9456f04818163b5edb297af7508c9f9879a584d16ace8820e4f406a0742e737847630271c8945210a20c31c6a7d0314243a733d26581caf2395bcf52e3c7c3e31cde17cbe08720331db6200e0b226715b7129c6fa7771149899dfe020c536445581be92eb2967e88bbb3148c63f88d7268eb89394279da3bdd07172deeedc6b64461f044d62c4a0e7aaf9c0336e2d0e899d7b1b7cc3d6d31b7ed823ea3a346aa2ed21623ec8b250c673fd2bc87c8143c0550e880fdf331849929659acfcefb08b764879f8dd5388876df7ccd700c988df94e57844f62c50e44bab29589322bc70ebce262ebe031f43a37c4b4251068fbfe3759ca971fa0cfe0fe8996c1b2374d68ed2524c58fec83d549a9598f3817f14145e2cbf099fccc601cf591e66897bb9cf6f76ed4f1dd6844a79c00f23cb6b70a1e8b4308900a5ebe460c13e5098d209bfb2a1a44f974cdb543a6ca09fe187025d59da939da3b84352f54d1e786df86c408ca8be83b388d564344431a452cb82252c3bc93ce22207a077e9b74d3c98ce478bd189b726f891d1918bf8c8232066722ecff5c53c928d29ea83e9a6fde05eb7582770066d055cdc4dbd244e6edda14c8e5b1071a61b6991ae4d4114d1e2afa04ef886fa68af9f0a716b928fa17b9f8062f45a5fb613113a91bf123869005269a17a8efd205ab4575c422bb308adb027828be3172d7ba8114784b8aa334406cb87263ba9057029c433bee98d438eec5f7d86d01cc2ca7c512d1b365936d277a92a8f4c4ea9bee0a2beb47bd1468df4f1471686adb2c42cad016729ec3558dac50f8ab69c37ace34ce8118ab01de4e621d44c66c6b426f6e99c9bfe923c6d0970eb39787e350fda1a1b06c6ad6304f9a5a5920963bdc4773c7a836fad63bd22275a6774087f8f604fb634071f6a5db0708a943f23f97a7591432ae4464e2fbd27c05ae1f19f2b75f53a637004e92b12417b508087e92f2c856e52ffb7d0a7699153dade5fdcd0f96ac4f0aa247e771b2a9098abb3ed9e3124a1a43a9c59a324d42e4fa62aa04b1f8decb12753e51c6b45ace062813a91ea1e3aee9370697b561b4ce9ad22369528dd612e282ce6d416192c2b0fb61301fe54c03d64a30e1c3a5b16d58485ae4557d32f2e3ce8e151088886a373e4dfbc2096ffbb643c038bf184ec1f077d9042a7a1368745ccca535af7d002ba87dbde145ab43f35acf1f386eb0a62ea81b3ce51f6a82aa5682274d5eae33dbb8cb809e57059a456d3cbee7b2ace4b1e649645bfc3e2bfb916963f76fe589ec3e02243892fd644157ae18e4ee34bd4a94649507053a51d1801e64205fd3b3b530c590acf93e57e2d01924e80eabd3db6a4ae7a2ef29ebc239a6b44ea89b8df74ed69f1d32f7bc26185a6f02add2ca73f665c93607984a21bd06e189cd1844d35510458f4befc5075731adca80ea83a690686551f590f7888fe5f529d82bf9f03216e3046bf8c02e19eb32a2519f7d563ddd76f744dc411790623099c132db26d2b1531312930d6dc8bed24677f992fede707f2a2cf16b7394482cb1fa94f9dca2bb7c6021b1162fd9a915ee2addb2944824b43966fc7433dc8a53accf518c6afc445f7de012607109f383e581740597ecc79b359ad60e08bc431caa5e1cb2a598786e772432667571e002a3ffc3e1b83da0659be1d00e0d71bf019dbb59a49196da9d37855a0ec778f8e1188f99f144db3b621b4e2bae4c3008aefe309d14887eb2bb9cdf493fbbbb851c47021e91618e0b3f4cf4ba9423f4844fef17154f32f1260184ad10eafc47231ae171eb08ad9038ffcfd3105602bcf09839f8d2933bd5b16b44ddc7f8ce3b811742c305628e9b3d00a1d67df2786a06cb9703f3ccd4f1da6accdd9c1b97785da50a266691e09b16f4032a2710f657fdcfac9d68e4b88267fc56deca5b1c5a7112372774459007475fb7a186527aa0b1c01823568f3351150205f836a8eb25818be217674259bf3a0ca9f6cc2d021521e424fa85702125e94f27055fbbaa6d5cf0e21fe9ff0b2eb05761a92af6c51690e9f477ffb72fe47cf1184abf42d08f8ac5a19f960f0cb4ee0f452bb7641e57c17ce0ed42ba35a6826b3c22282703f4be74ef7767ad5d8fed99e75e0b7c8b2509f784e01596c2b9702cbcb14805ecd61e9f0a2b809919bfc1a54f3ca51a24f20404989458ca9818b6964760b90595a0d00610ad56c76c4cd5b9ecc16e206cf42f615aafc75765d9b2ce226f163014b9073654cac5bcea9a745879f34fb7be7335763d48b58548a69d953c7d5ae02e6875d4d67850b7da22604c2af9fc66b1c29d83c58a90d3edcb92e8e0cf7f67b1a1aa8081451c86dfecd56ca990769da55927465549de33e332d110d6b855684bbb0ab462520e9ed8f83f7ede7f253c82f0bde0e4d7152ad99839713cc3db524e66c8d495c8836f9fcf4551e0276ca5ac3c62345d732e13f6aeb185c73b99dbcd102b24292976dafbd840db3a0d34790420c6cb1fa0b0130e6a5ec5311d7662bdc9a83e6ef2cd335c5ece328d05b4451d6026628fab869e388d0036ad42ed9ce2a1f8b39f86c87e9bb1add3a313aee073a39bd782f01eafe2adfd62e8e29e70609f02d38f186a1d079fa055498e5922a5fdc1119f66d107e619d339c335f8336aabd7eb5c101f2de4cbc39cd1b7e76a5602d41392156c1d2b4f31e0884313426c0b11f878b03e54f30e78cb8b6010d6d910f77f8621e0c17f17ab5c52423dc169972dffc7a66e161bc6330a9177ae7683f1a0d2ce44579dd4bc120ab45c6b54ca943345dd507162fca9e56c845fb912cbc727236684b3ed100fbfc950802fa6a27bbfd5627811f110785d78d1e0671379b0f80c3230f46e843c1794cb6d472855b81da2196307731a0edbfbe4f3c8cb6929343e14b0e195ec2f3883bc22a91ae7ceb1fc40d15e4d317f7d31a913b5f64be25df812c4e35ea1dce1a041b049b829e673a82fdfe070f6e49f103ded34e5c0a07abd670e5a23df502c8cee31a737cf1c7fb671fd3a0a46d01387517b094b7b5ecde8c762463fa036ad76ea9ca9010f86f62e00af309733b30c6c65f68121c4e55272d55f63da23b96d542f2a5eaf85ad1e14aafdad94ab8e214322bcbffa2f2252f6614716d1fd56d3a3fbc5a139f33ac1b42606ab1ec74ec73f2a343595b5d90be6c2b9cd37e6ce0aa31f18a6a5176fef7706e6f71a08cb4136efb6aa4ae79700dea7f3c1501b820dbed3c782189198e0c69e8b211b46d01aabeaf3ccccc67f83a9d387aae3ae0a783affce45d80b5a7cc1c42592a964b0ef607b8552a5f81f5f2a8dc663de0ae171d8e20572399f5bd1bb1a09773dcc5f9e6f5efd0f5460524fdc5058f43d6bda848183e4cad0f68f32e8ae143676535425a94db850fb15173a1dab44848b26b7c981d18eb83747172bffb4130b42aefc563de9040ed905709ccaf5a641394cecdc479810e4996e918cab07c138965f307e86beca59bd9061b5aa9e3c06da5e0d7a984578aebd3ee8d47b0e7ef878bdcad6c71dbd362268b54ef073422cea5c70f5a8ee2d7ec263faf5b84ec98d7bc0c18c4fafdf1e51558c40650222fe81747594bf17f55da4c7437916a20c91092fc5579d9260849b58c1c0531aa0147df6df7eb5962a7f102b657b3403ef8adf129f6d517fa6d74a2d6824049eeb55f74a5144c2b687532e1f9504066369784415530ce1ddde3d13d03b18cdc329e35aa9f1bd3829ee89da7efe94c1fce8d0be3f9356e3cdfa1dc806b61f02407d3ed51b1e5b18f2ffaa4323319af573ce4cc8453142eb66fae267fa76369719bbdce5c11f9bc0ca95683cd663f1aeece29e1da88b9ee7d4df9b449d0bd25831fbdf9f1b40123602449f352ce40cabd9df87d600ac10d94b1322ab7e93bf2e86f07e03ea4bf968494edc618a2be371b7243fa3ef84f1e9a88e928a1291347ee858c5be24b3b8b12c04c94be23809d566fb2cee8eb51e8ec08cd915a476396a3da57d51c771dd5fd54fe117ea7a82cb8a945e689794476271a49cbc3a04f812208a4bc1800bfa1eca84c22d17f77e94729f332c949b5683dfb7795f19b167d1f9460070b93a2a967ddb55aeeef9dda99efd0d50ae63005167b8ac1964f6e3aac81ed2699541f8582d7136caf2bd1f78c7e477682fb49a66ce40a06d035d79322a3193f96093704fa947e93d9d946c25b1b8a17df4b69c6e9312f0259146a5e7f66bf5a4df2dbe6b33ae7c877e7e96192d99aaadf01a6428c86cb35bc5def946aee6d538cb03f1ef63472cc199b7e75b90886a513123acc7a55b8d10a86b5eb848fa1566efeac0d0b5a0a21207482d5156d8697297b8e3bed4408eb6ad77663f0b570e95ec0648feca30986b2a26b105eecb042659a1fac40658e0dda443389ec101b13b84edced974c84a552bdf7fbcb2b2ecae33cfd8fa4c8483d740c8824c901b8996a3a68b4f41db7acf121372477933c8d2480578d3aec31dd2d7e24a6d6bf0f0c653c86b9debe32da1604fab143490df66531dd700b7235ff4592a3383dee311cb2cec9ffc14056ac7a6e6aafb61ce15022239395c0d5622bbb4d1e037899efe45258862b3d8714cb24856f864872d356473dfd56132c47e0e2beebeb2b9d3f7e1f8eecdf67306512233c80140d7c4404becb3fc2ad0845cfd02d5380a64ad6889ca02b8ce602f084ec641f4372aa9e5a8ffc00f30fbb481111867da3238251418f7aa5a6097eb015e41671cbba7cd4729d13ad50fb55cf0c7be783d3523d41edf840444afbc9e9a1baf43937df3e7da5a73db631b31dba3f55847850a716f486b1afd0b36a9887cda9d274df03ed772b7920b65d5221a23d5fa9951b0dafe67153ec8c51e3c90dd3b6cdc5cb93bb036b65e5011cdf8c0b962213169c8382459941b439e40902e8291abc308bebec416bbc79b05ca4bc0e62f82118f07558fd179202682ae11b6a8ecad2d5f202a60f102b05948ae6a1728aa6d30902c358c8cde8a08cea89972d5dd150087140cfe73934f6b300af36cf569d8f49ff493b9e2a0e2f62041291ef2041487cbc0bd953ba2546efdeca6d4d2d370dfd7cac494b725ad1118966cf0b9e628c336f2c1f1d9f7471fd94584e19496e74084f44c218ccb952ef54a36e0b66983c3e8b264449ae02b5bd851396666bb5223b4707ddc6460ca9d58d42e68f1d84f3b40a8739e126d79ec9d2f50a1b3cc1a62ab29cc0c793e0a5f34ccc0e79ec56d383d26c1658713ac2ee1d58cbcb42637bfce38da04bc05aca42ab70ebcc74555df359b9d02ddfcca4e99fae8869316a383dca2dcde0c189a53eeb6bd6a87565a914f1130e0058a7f78e1635126b289e34bdec52c57dc1439b7d8be268d4f88f6e43e26e21fb53ab73a8a86b07a6cd08f8183e9e5a1c214b401209c5f8e50b63b0d6d31588a54d022feb57adf27f2cfb586a1c8330af8cc76690a0257f0bcfb8fb34c8d13d906bdfb7f5b63552fe951fca71400c27285778369d29460c74afd5c24a6d37fff755e2dca2db3216666bbf5e6fca972a545411eb3af0a23b2773f7fa84c87018d0172e533e045e6a6e941b0127d4e48c7aa4c631ad05cba95cebb09cbc10338c3f2d61e2f1f9f8d3e73e9086380538e6ad7c9d5395aac288433c2754c30d5f892ba6989bd015e0e63027a9be95c410134da31f3320f8488ca79954d39ef1e5a3b799f3fcd68e10a48846ca4254a461cbcdb0068f0a988cd2e973bfccd2819f1c20b358c542724efcc5ff65de5fe9e733e4ba099784a33d78535d2f9640414a7654491a67fc4310283d673b70d4a41e560552984d3babaf20625009b3e6cc23e167d423c4393610d9617fc5fefa297b61a1496d6652bafa77e0ed49ab3570f5dd7420668981340ad1020634acd0ec67f73533d4df46904da9005629fd10d5066f7ed0d106e1c80df5ebaf2679e4510e1d44b14e26ca79e51968def0d96c9cfa5f3613e7ca6513f8efff06dc2321b6d07091687cb00907d1a7dcff291a6d11c0a195908f687729cd6757c2c027bfa4887fc270be1b5dacf9df305b7508c3b57f4b29d9279bdde3b5833f0f908f9f640ee4ef5fce63eb561234dd3887103dc78aebaab8f962537a2cd3455451b458df9ebb973005837dde901ed6c2d2dd276ef47497b09144757c27d1343c247388ead24fc24dae5bdee912936875dc9ff1910890edf50383ecb27e892386cd6ddd34554014b8080230b96297463ea7c33fd88b988f2e1b3d8f5200ebd80f69eb1f5ef941b457ea89eeacf3e649c9e88d2a5e2d1fb7172a2adfb4114df26858de1a3ad53058a15a140020df56027929e98432ea518b5b6129d645a3a87c1f325809fa39a708ef7528c49de24b591a700d082f124ceec5c3a3cc3d6058c3de534aac486c92dd5426a26115a544dbe9e05318904d08649c6c340981c88e9b8478042124ad8cf59142e0060e2df045ae2f55de1cbe303b20b0fd79a90c4148d7f42c96419a25d38fc031ae0a0f40c332516bb7ceeab615e56e6ee70527854f3cd90d154044f7dd3801069dd7a24598a0e36a292bb34b4cfb0384f4eb9ba25a596e69f6d17bc0a2695003efa17966e0ba4bafb1c17cfb64e2f078289b752c9515f94f6a1a4b01cc4611a9ba6f549068adc23a46e9b598940a08b3ae80131ecfbd373a6bcf139e974939fd1103bc6ae6f3af0f92679dc47844182b6f54697a98923d560bdede55fc0af935ead0e241313038400379d14425345f90a238a4488eca7213dbce2df8446141227e93c5ee1c7c3c29ebf6efb9770589ff8e26dd4711d4f8381d1d8b1ecb5bceee10539dc7f307100b918fb553a74d7a05ebb1dcb1206586a7a759c498e883b70802a5d103376d5d166ef9484e43becbd653ade9f3b197cbbff407ddc973c727630aebc7c4c8896152fd905c3510627c923a400784a7c8a3b8a261024e6ccc602026b486275774b33b84694f78ca02ab5e89159fc20b41044d89f2cd6014c7232ce65b2037688f2222a8d861970fed381ca458f0f4cfa50741be2652bee4d23a1cb7b0e1fd001d26f72b27b4f422484656bb8eaef1a0e1fbc3c1547bb5025f501dfaa72746da2232d52cb8b78c00f957c9c7515f490cc6de78ffcc96263e84be5a9bd6b5f1e5cfdba2e533b15bbfc0aefd1ca42eb8969a7b4aba5b73bbb1a97a21f10219dcb054a1e1a9df1b20d0211e070508f63b0c47fb1047c0a2c6acdcf632d7cfcc4d7c247dd859cd45cf11af03af67d50a37a34c181deb044ace3866d86c9c663b08559245bf0b543cb5080925e0abee530f5c69374e603fbd3bbd863d79bdb2aad930fc5b296d943824c4f25ad8490e9e4167d070040746ba811cdc419140f652c497c57934d405ea386f8e7ff8ba5222c9fc3a2d765da14d4fa3ea8b4ba10c208b00245fbba0fadad38f9380b90952fb6a37091e11ae9c8ba62634af3394274cc569a9804c2a0108b0295a9349c27d73edb4796a90925bc0dcbd658aa015e614eda2283dd0c02ba1b756bc36c46e90f24f3389820f3366b5492c3649417cc5cc0ff572dad93003f832c146076cf484003f7ea4808a228782bc3db0a0a953003f6ea3b41330202fb45881312d99a149c5e368c9897e994bb12e9ab478d3836036be9ea8cf01e2dcbe4b9c0b563ebdd6f4828e2f347fc09b3ac1e9d0a69b95333cc0477bb0209a15e05f1585b2c0cb4da4e62575f1dec240183537c564c3eccf43adde418b26039ff5ed7d2d5470729a4e890597177d2da7ad618bc789de7d9f3013e2b8e74bbc96e195578a13f771b0d900af610881a47360d56c8de955582a6311f10ca84c537068b512460cfd523337a0d7fa32d17a3e67dfe29c3b145dd924b220007d8506fef6a33f709331924834291dbf2459607e58a65465eedab7d748a1403b958e6f3199c7133fd2dd1e6ac1e4c8bbe5cab7d058751ef935fa230ba21fbcc2ac98984c8c7b0dabd21a13ae97df5ba78ff8fd3e080af9cf5baed3fe2bf564df1344503f6fdcca6ea88da02180e6a51a3fcc6a809895a4ab16cced1bb40f375cc3a5010ef013f7bc89e16fb766db0d531967145f49a6340bb7b2f3baaf9c5add24a60d8fb18caab5008ce9a9f417a71604c761590ab91ba2488146eebde4f2cc44a667d71e5059ea9c8c9135e49d34eb02ccd0f20f2383bf433d58095623703c9cfa7c38a2751dcb704e55f7e25dcd7ec919060fe506587853e88a28a19d724047c5d8c59ace5ca126a62635d2df034bbf362f76f7b3614cd1c9910f51437f424c19f0c8cbc6e27c293462252f575bc119d291b2c0cbb51a30091f0b9a70f4323593ae8b324ba4b5fc3f4d2d3f890fbb7292ad1b72c1f1f359744e70acb9da3e860fff7989ce47cfda44ab02b1a880a3c1b63d34655ac92ac10f8cdef16329a692a5cfdad95602d94756f4efbb32e6a43d129d8115bda02613cbdbb00fceff67243e25aacaace7b6fc8599b7502fa048ae24716887b06212fc63dc784b481820790c02faf3d62c27c816456e1192c0d5687fad93097feafc228d38adad8f6c0fd8762d5962d1d34c6b0cc70b3b308a31f640c6085022e240e2a16154226dd6d13cbddbeb4c260accc70f7d6607ea4c827e2b681ea2859f8fd39c584ca6fea78ff1d7db34898f93f211161647e472092ba64aeee24060e249a53f3c4e170f512d30bff673c59ab26830c0171ee05ca5b1faad1bd732eefaa10f10c28adf7eb250d0589f4b34ccfc23805f6fe5dd1b305b09a559c963b6a40727ef72692df4ef0141a3b94b3793de407c38194057b478b8d203a20e29315f12a512ec50235a4b6aefe1d4baccc68d13ac9b503353d1cef1efc53eaf5aaa242dbdd33c3146e8f183c15be0d07882cd296b4021f9197cbbc9920d5296869178a5bfe123a26c8648e6fe3a49db1a4d346aabe424007112e7aabfbec69cf06750183bbe659464300896c0228e0efd3baefd3a63d6a9235750183478b10d1eb3d67ac010fde15c0b1925bc1c30a98d209ab9f911972513792ff8dcd726848e95e18cb8c676cc7df7464cddefcc56e31bca7fbc61b8748f38c9f5c032b852d51f92d18805061305858e1801f760c1869da51d2732b6826266e5a233437b7969ab97117ecc7b3af4a624b70a6fed25f29ec46a93f31f820d3614e05a2b3c663ddcfbce77814740607522725b7c8bd066ae66c988153c1cee3dfa4170e070d1c4ca5950ff9bc5f560c742cc7969835d9dd845bd4792bc85b3ac0641d447041459aa1dffa8820f954e2232899d811beed5758950d961817f302c238f9e380fa8c5ec2d316e5bcd56f372e7d9973508dfd07d9a741a38fc807e43b088b1d4436ff36a302b3a955606e05aa2fde530ed357a573b76487f3813ffd74d8857fe0a7d7da3860185841630d43bc17681a662c4b06bbbc74aa3e52c978bd755873b17f3297f8d44f5c135f98d00c818ef99f8d23f005b366bd9f8c40af06b1d4263fed19e5b0ca761932783363f27184dd7767b41b4cd351ac386e21c06d2db7eb3f6e867843dedc58ac8395615349322f906c2eee733db66c942aa60d7573465dbbcb853b9dd1bd038c0cc31a43086b1c0ba321e2fb736f15a872187fdba06d96a7767cff09721d319c23e83e351d24283ba0fa05ef7b96dbf8b6f630c9eccff1053406f104c262b1775eb116a9ea5d694c46e25df0fc08b1af61d7a0ab3392ca31e7e734a2b52f7e9b1161945fa43c9b24d1a4f89784e8645f4ff8eb61cf3436a8360575e6ecf8ef5d8d9de28196609843b4a8660be80c8861865c030940b6c49ed193917f828f06e6ea96aaccaa9b1f098ccad503371df7cd12341743a1009e9c84e80f85dfce485c982d3d8294c51d1732e1347fe458b5c1a66d822ac99b5a7d72b0ea9205a6737e89b48c06451090262718dfc3d253904669320d2ffe008e16b3de2bd3e3766b7373a7a00b47f11b4868bdc5b761406a81bbc42c6e750528326f2b5738c02c6ba61bdf237aeac2131033b6aa0043dca531bcbba6708d919619e95b8810e4069429f866c2622cabd384c27feba6b783fcdc173e99c465e2dfab53d7e698028aa2c3ceef2e1b2cd57ceedf601a8d27228dcf4b19bdf845c9ba5d56ea726be2ea3fb3882cd2c97a5cd5d702cc24939d0f35ca63ff4ef7190562297a13b4570b620438f282d52714de6510ee8113e3f97d902d42f180a8c2ab47c29f02cfe0454507b2b2a92b748c4546fc1cdfccfcfd552899b853383f0515b6a3b036727c16f9b0a902985e6f1b8076cb94b8a4b0796bce9b8aaf2a7ab1caca3dbb1f96e4d1cffb012ee16dc1f235d4e9f8f36cfff9c0925c2bea0a43e2522960a3434cfd582982a2e80b48196a6d8218a3bfd7f182cc5778ca1b048bdb0960578e06ee63eb806e5ca15bc2b520ffe764daa86e4b22878532cbe19ca3422da356dd3a32cb86c3293ea2f72c9f6309b40b5d0567f8b99e50ce01f19f533d0def7d81fb181c61c1da047caeb9b0ecde5f51e2046741e7c1089853d73f890cb011ecffb2f421bb64215520173bc3365adb2afb9da47cafc7ab1fa48fc8d0bc0a4fd8e7f309721f9d56f724e4b0028b958f1eb6d7660898d1c34928e02dc159100ca6e9b99ceeacc0a1666e75d7ca4554b451319e222f3de6611d78d6e7114caac3dc2de8c1b87466fe9eac0d5c8e240be71ba57ed91dd0c8e0e6deec1aeaa0632c820d8f1f8cb62a51156a2322d3a421151423b51ee9da6e58753a62593705a046b8170565791e7ea593199c70c864b3555e8d91871e96fdcbd17be866767b0eb74ecb1aa7d53dfaab76772ea3b5b41cfc8e16910d6b4520fe8e8ef1f910a07beb476d965ef3caa7c1854649763c2e905624b00b040b71575c70291fcabf09cd885097a8debe43fbad21f87c332dcba2fe3e5a6ab136ad17f7576d0906eb5cbd2651478dc92fe8f5600a2e05b3b487c51816e12508c804f66104578d86c1f2a572112df54d08add3f3cdfdf0c45ae6f6993cb7bd4783ee09a519925f7854c3e02a9d0af128b3aebca486938baad582ebe14d4885b2814e707f86a6ee893f51e56c1ca418f94b465ce6b4ff130ba8c24bb42f8d3c63d62ef37c168cb2035ac663ebea4c9a909208251b9dd57ee9bf7474f2b985042c8be221b58453e205e6eb5140696c25c9ec1ddb0a25942d5cb47b6e9edd92f639b4d5e597b6c4475062a5ccfe96cf2a5831f40f0101894c51e8a52939d0db8c0a0b961bd87fcbff7defc60fe6bde0c8b4379d5825abd07f84d023433cd4cb02b5ce8a17d384ea77fa6117f1c46c29fa99a0a65e6c9fc014b83ac80fbbd81d122b47923d759c3ba810620a1231d8dc9ed8c31185a447018c842f9c6df723c90fa4ec292eb7f7dc453cdbbd4041f7141598c1d0fb4b8216c18c694e730a74ae6c54034b81daef3d4a33aa1e0aba198e528bd064ab1c5be4a1917dd64e54c31fd5ca15bb949ddb5036ccd677a3b7122dc117b87afa125ee609199c3579d791a05a7d8e344a021da69fb23837886a9dd81f0f409f8e6fbb8b3914d1609f3b70e31bcee8701b9845c4bbe6c12b166db473998c49c55149be224da66afe85ebaf274fed63c628f235a0f032ffe73eabcda7bc21ed9afe6229fc989c831dc4f0e1fe7bbc1cc30c8e9e76d7a5ab62911bbb208c03f1ee38f2d530312c790a1a4ebe15ad6b5c19672aeb881d80b93b8597af0401ce04ff214b523b7d6688d54e4af9104fdc817a6b026d4ec74ab85c3379433358bf94af593dc415da35a642acc60b9bae15e1ba2e951b83ca45c11702a04156016bd441c78170da6a918611b03dd21131e708f1b8056830636657928673cbe29efdd942d508ac8999d72ce031a01d79efc16c31bd1161a400368a0e697e768f7c04a074cd14ff9f2e3e0826a82da0ff7e882bc38f273ad2144dd805e1f2e8afa54d6a50dcbde0d4069545aed6edc017e4920793ead6c9f2ac60761613a41291868b1563924ca11051a205fa3fd6d14c92f59488f46120324968a2190e203c9373723cffe31519ce22facbbbf3bc96449e29e3ed5a964de71addb1e8df15ab58209835ac0f70a20cd6acb2da6a315c5783feba09918957dddee1a6f16171030f31e20241a3a3282f2b0e7681e803660256abc6e1ec0439f6969aed096945f7192f7896f8bff35e9136c93adecb4e9dbb8de6c42a58ced07497f5863e5e51135b789507700f474a4c7b6ebc869980c6f40bd7977c247d64a232f1e5c3adb32925a95a695e44af0e79b0b75a1292e477e7cc903729bf3fa7c72dbd2bfd5b90567e77ad8b704b90f003591ac7579f70fcfb5ec9518bade91d24dc69d0583900c31ae0a9c79db190fd9d2b4cb027a75757c38e7734dce2c92f88cb41823a3649f8cdc94180f05b319f60b1043d7aa96156a70a5706398d9d1afd1e61491182d8423d0a22939946b15b0f91c7a97fe1d615432cf4262b82e822a933c9535e25f6dc4cf9b80c18461c6d6341aa023f494f84f8ee4a9d4838809080d9d477b2ee834cf54ff8889b3209a2bcfdeec8450199037c3be7f17afec8a2ce39d778787ebdbab01340ae9faafd0ffddcc3af0d6e101cb9ec52ddb442ed88ee8eb41b3fcd15ca5873935676a0e9e63bcd07cb1056ef1a64abb7b59ab0aab3bd0c2c5c351b11b5c882b4e42f5fe0b8894524b11cbef94438135a1e7ad1f0264fdb587d4655b72f921dff0fb207bb5adc117c7063ffd96f41894495603273082889a50a76fe3d89f85a885dc2830f3e5f96da619d9076762f160e48af76c6f0591c8feee7884b15e1745178c74ec1c3b687d4b0420eaad9d7a8d2808102adceecc81de8f3c516f7cec6d3272f03cfa52a70624574743a1a0ec2d9adb506876ccc5f3091927ecc7945af0fb985c0070b602e477128dc3310def6b2667193c776bb8ed24079f65dad7a6a3efd544a82952361c4902890e3909e1e0e4840393e0d3d9c955953cd03e7b166c39c2275edc813f2159944064bcd8bbf69e2d040acdda00812b45f7457d83e5298bc089fe48eaaf92cfddb85777dee69880087b94eadde2980f58524c8e01cb43869569ff33f7d86c4111d146ace5d06d421fb2f72134421c559586fbb006f7f50526088b9b1505450dabd9e4b3672f3904e537b28c588d56814fc86acf29c3a184012c39a94530e9db0d4a3b0dacb24606eaa0050562e8974576b2478afa8569748b9bb881f81d8d765504f9296045b7672515715314a5c0bbb25268abcf18e86fd5c8a4bbf664d1089cb5f351f3feee4eac5293b60b804fde5e2dcd36da3b51a1586a344fb54cb3723bd3938101af556e0bb77092949043030766a6dcac5119ed9b28c20aef0866621324e80d5cccf249f5703417b4c5913f691bd856a15f76118c6e34a91d301057ad9a4e1e3ef7e0e0b90e1f618d128d81e0523e54c2c3cda01c180a3b10156aa94215abbfa84d42c792571f9bd4b5241cea2f108eec645d38b220a2b46506d80e42d84163a7a7d3a7b82ad8217c579ffe467bdfbad7865e0b4ea6a884cc648a4231c3620be90150a185a53e512653e4d17cb5dd7a145fad39b5b868eb01877f583f0b6e1adf7bbaf3c1af989d751e307ef03bdd0769114c19d38302d64463aa5ef601bfc9d64c1f2d7a23b2e4c683af34ed0fecc25a0d1cf022bc8dbb83425e4394d9e3d1c28b7a2b3f19e204810447e824b0447599f9590450c0faa559c57c6ee09c941b8f9808822e8c47fe367825e361d8e87af499e966f1bac7f9073abdb0b05ebbd3a8fd9e6f68c02a0530352e5f7fd27db0b433eb9a431ed98a14ee433d8821296d2eece7e7f34b7e7a9ff49d85e57ec38ad05093527c316cff0067798249ebc66471e6751d05fa57a868aac5a83791e8b829496ea7f689e3068dbb52b4f7da214846b88109ffcd8e924952e4077a11901ed657670cb1e6f5bb5f261bfc7d52e5953ceffbc1849379cb184ebe80d4b69d06e95eb454b97205a32753fa75cbdee4771ccf9dbb710573f177cf0510a7bca01c300bcdc50b5e9459b294dc36e4ae57bdfb90ebbcfa0dad8b9fd484546e92ca996a62d849b09bba5e82e298b74b17c885ccb0ddf6970775fa29b1059e42b5d5a7b0d263af15d72fc55f3890434419342aec1c69a1c45a9f222859bd6c1cda0b3ab99763a54decfcc2a2f1c09124a0c33000a580f7027dcb9fa617ff954c3d45790e31a6f2e4e996e6a1e08edbcd8224d24e6c2b770e84498576746411b01a603d0f601bbd0ed5d6776582f140dde2170ee6b9f8022d6d28aa6c304c2ef0ae0a8d66ab061b2d4236f093e1793e8d8e5dc73a3a33f3695c2f348fa4fa016ec32d59f4aa5c41e01bdee7f18dc8cec3089ba5162d1795b4ebac5dcbad755306a63f76e06a6c9e0ddb3475c3622a4e45563e524f02fd1c37cb934de5f9185a799b3792db79c0efed67ffa81751f569d8be2d548333d401012812b278a0b572ef3d0f7876fd95d8b13931d63cb4ce25866e6b07ea016d2096ae17ad0b6d8d1c785880b049cf9cad68c962e0c279da6adff3c138bb1908bc8797fc8b82313e284ced0b53a1465aed51f8063faef1de56c9446edefca99fa4b1b88f296e588876ab240421f16ee6def54916e40c1601a04e9f455b1be9b7317fece569a7ca4063202532f1c7c5600788c471ca57ba290230061c5e685584ef2bcec2cab7afd9e05821b37d1d3cc47fe66032b33d54d0ef8b7afeec3a924d9a1a4883fe4b6c816513621b919af880d37265cbf7e2cb808b539b8868f9d6bc88b217492323661973eeacbd698fd371192ce87aae2a75559ded6af78b5b10b64a482aa4af7876e709d83550302158d4b7c0894f0d7f75b9649d7d9774f2487ed0c289f3b3e993beb9dd765baf38a588f5f392ba0d37588fef590153e3118018e39176576544a326a3cdebf20ab9a1ebf1f855923d2db74cf9139910ca3ebe9a129e123545148cedad99c85af893777a011b9a97f2d2d17e5d384cabef36013ea47c3f4f7e3aa99dd6d2cae91583a8031d11c5717f5dfbf06a5cdda9ca588785b31f73192038c771fc931c7c0777bae46be3603f156d890d6185b91cceadabbf6e4353c3d37d28dab77cdd3cbe2a9e2be30a96204803f3de376756129a0294e772111c89da62e537d3452db4408bd25e56c8692536a8092b443e64e96f88ffcee843169c18f0a153fd33e8b68cbd6b65ef3db23e268cd7bda99e234fbfbd96eed73213958af0849acaabf4338eeec075cc57c1d8c09a3c144358591d25b7e831e7f20068147f274a8d3c1f86fbadfad5f9b51f82bbdbbddc52e1b29283af566a58de13c6ae55355c90ea88abfa4c6825f0580e4f00dab0f6b64016274bd740055f0ae6eb819751159a285532b35c87309c6b6968d6388ff0a6936ce87d80798679c47057af8e7cc4cc5df936dc47c1a7a5bbb2fdd610eac89d629b1a997b7fcafb930af125cacafebf6712a23cf52ab204c5b1c08dcf6bf2e72a23d9a9463051f5a846d602c6f26ba8bdbd9c4baf34de332712e64c6e4da4683b34c378e0f9771473d554375a6c82817f432991c876e2f7f65bee1130292d15748beac912eee8f181e30c0e9c3a622a1833b2ea5c0a3751e0ea83f2c767dd3d9adaa608be97198f8f6c914ffb7a502f3152656c5f4b8839712b31ea5da795a5a63fa2128be946dbdf71ccb0e6431e35821026340f5524cc738e7712769e0f6cea20160c1ed85947b9adf117bdcd6d44383406a86c7790eabc14091975a352a0fb3cb5656f22543ff77cdca17631d561352c25458d68432de04e3751855b1d3fac2a9baa6f7f996769d5f7253881b9fdbb5d1807560484e757804eeef8323826cdf902642aa9e3a41312c73e35434dcfdf400369aa34eadd8b7c461df0f31793c7254c6cf863924fd71a5bc241b2e04acfd4f7a32014a9bdfaa63a6dc041006ec2852fed2cc424475a492fd74c9781488872b6acfd50915b95f9579ca49002511b7f96c63c9f4785f8397130fef294747d840d416304684fc346e024480cd15498a932a343b004665a2c0180d427a92f26a0a6748e2eb06c229e10022d8d731fa370dbef133212515d768a11578b3eb2b4c42ff9bebf55c60118806a4f1484571fb5bf48ec0601ee35c4fcd9669cc74b2046352f32bff579a5796beef390b8bc701aa1634476c9dbd5e4bdd9abc6f519441cb97f52f0ae3766fbadace983afb0928a7f210d2c2f1acbc63dd897edcec3a6a49941b7354ef7712bf74a9157f619993c1e4d81145b9bffa94d0ada9413062e59de848056a20e6eebce07915800d43aa30a9b62fe93dca2bfd46978f6946a66b31bfe32dbcaacb5b3ecbfe6a7dd495884b5800891cf23df39b82a161d024bd6cf14b7bf2b31304cfe73c294734743b6cb32dc35c1d1f664940d657324268f5c528a5786ca49e64fbfe734457ada3b9b2af5ed3bae590341eca444a1efd592ef724287f39758da7b231c4270a99bee719878a6758d0ef442dbc96f46e35ecc6ceeadbe1fb48c8058d51b2b61fea26d4c13493900b23df509b89017740e9b861136d55adcd3125587025d0621e8f4fb0b5551fd0624b799a4a2a1dd8fb167dcd0e324ef87e608510a13064531c215e51bb40cf9b6784f0b44f531e3e91965043ccd2a84a489acdc0cd6db5263fc675d7312b143c435de155689717c09135528abfeebf24a2093779b7c126c366b9bd308970b08cec9f7c36a046c1b86309349d7a3a1273516b99fc8ad7f7472e9e8b5e6975142c18ea8bab909fea6462199477d990ddebd16e9b4861bd9c137bf6be92d8a5c3adafad339a33ebbd81debcf56457585984c06ab8e2ee3d4b620f692057a13e70c6ece094499e9c70f64fe18a6c9130a8da8aeb5071655559fe3102ece54f97e89c473ba2b4586ec0ca91073e622dab9b6600daae15a48efbbff837795f315af4e9622c8565a72390464df165dbbae49a2589bab09b6d1e6552dfa753768b640ed7214a58fc178540c97818a552380d7ac3e63f03e3afdba4c2c24018710444aaf2dd7f84314ff6210b78c039a3bf94fc413af88b65ebaea26121def0013222f648aa68f345e7ed60a6d7ce5b255dcad4b170ccc978e91d7dbe538797531a322111639db6be3a7f4ef6cc1f5b927626de70e3b430f7bc1e93c926fb83cdc6d48238c08624daf0b85dace0cef504d0f989f622b0ba06ea0c7666094786539293f3ec05519de5d77222e65a3be9e7cb4244840118b2222eb34329e2f41f7dfa7c94b620f381c2db6b2a1f7cdd49c503065bb98979f5d47a6bdf36a8ce8a3e9c8b4488fa3aeddf688edbd949e759153809b4afa3f12a211c8a06fa668b40371c99971933fa38567695bb877124cb043f5dc083986164a2104df260156043db1f7e2aeb16d83cd34670e59192defa929f7da4ba30d25c8c9cb87c8d8d80e25b2928953af3fb12e3f72103d9beeb026794022de801a2b2e322d2050dcec01502fcf6e1aeb99ecbda82cd49acfe3036d23902cbac3e834198bcdbe8c5d7ba85872e8fe994a7a9952f321f24ead5556ecfaad40b8f7e23087557c36b90d1a4a9eedd6dee1322f04032893a1fd7dd6f89f24cd0eaa1b55de92f8676dd87d265697e90854dc527db678d7b507f95eeb27ad3d8541e442665024eb730920c4a397d4b36b920489d2352cf8b4b4881256614fc2b190a6c8d5168196f609f870a5dea4fedb09219d7a2dc0294e70195cdcb5c9e3cfd86cc44df97ca9dab4473632ac3dcf145daaa45942893152cc02eb786235a35ce54df5173ad86402a03b60216ed71ca66e53378b298ecb46a30a501a124e3a9740796fb0acdeda35d54e8acd1364309eefa6e3c7e9a148948b455618bcb731bde510ca86dca7a3a0862070afc07dc04c44e8c0b15516201906c180950cbbd1b4c6ad2423b296ef7310c954f9ccbdbf71e98610b9ce04b7237783ac4a4e3a618a77343e53a1df6ae763e0f2ba00885dd627e0f2262c8c1a5d22a65c1ff783f3b2d99c92763c8da9f0a0f0971891ca231f91c0d9440432296d353b49c77f45ca29582e9840b8446773b945db53345891c8971bf14bc9d9d8c9c73044cea05d83f24c953d3c3af636d83dd0829f495821d683ddb32e5461399da24ca5b497f524a7b43aced313a7cdfa9b8a056c6c68e8e3ea51d9da7018f37b44bf218a019675eec98d042cdcd16cde1f9fe5f7af8f931496bb8ff8892c5aa6913ba0b44f2b2055939d8803acd831c4e933c353e847a80144c8bbd225bc3ad9181e56787551a71bdc6ec7020a90998f26b902a52d5acd22499095b6ab8aa1dbc203e4fb44f6c75e5adc7d72431bf62788c02461574e3e7865448aa5511e7df9009c788ede0f2a36cf03c79f177cfc08827fb061fdb13607d25e8a8aee0ebe671c88752ac6da4418258ae974b666a043c10220f4bdd3c60d355212d21d63b6ff5c968177d785a76fbd77adb4d26ea98598dd4159c1d474e08ff77c3c0233ce2e0344873b15c07a00b5098ec4d180eab20523890c328f0f57fcdd05b88cf9e2071db30afe0788f3e60157b21a1f5cddb80a2337a0f2f4d987b99942c1e21bae09cf075d677ebbc4d03f020a6d275746c688db8fc5b51f2d788b2996a6ef0be5497d61b62033e14ece953cc4b9eeb315efe865202c79b1cde35eccbb9c06b4e2fa648c93a14641a34ee66f500e57e174098fbb2507636cf59c622e17bdd5fe48c0402c623c81993032348f076cd4013c5eafee9925bfc6a9c963141473525e2db538d049f5d811cca5198be682b7d1eb9ccb2d265b43a85a3e24b9e249806aa51a394b9aacc174da0030bd1789eb85b76758efa1a58a4362d96b0c2cdff801d727d30ed076b7207070b8c6c9e89a63926afe42c1e771eb14c8338b0dfcbd7d580d35e136e5279f8ea00c821d8fb3669f328fcb7984ca474400c1cbcd9bdbb0860d7ad4b53999313cd767c4f8867ca12fb286a620dfe7ffd26b42c03957957b070145b953cb0be4383e91c48cea024f2f191ff626ce5a5e7ffd8229a13693f48c0e678210f3b275a169af6b9bc3ed81553a75f9e4bee22c6902e92e42feed589991b685f270b1f8ab5a4d050a441beab7b71a87c05afe6e19d2471d2a09b8a3961e46e59cc7949f2a2a7e77bc47bbc6274b0003c7c14db916b11c87ffb4b2919e0ab4bdbc369b87e3d6756aae898091665bf7f3a5587603562cf4fbf5c7d7c346efa867e453e6c7657ea6677343ac79bb646ed43ec89d81cea832d074d09d61f27ebc8571fea5bf848483fb4c42a3777ddbfac979ee52e5b18cc3550ddafca8893892a3f1effbfc6b00c577158eced4b9178556a7176e7b2d33254961e2eaea137f016099880ad3ec045798d2c0ba10062714213cff4c18421d7d9bb9949675bd098dbb4ffc13012ae4ecbbfe690bd7845d206263d0793a9a8c9ce97652d9b7a9a5aaa0fbc0da7277a628a5410ea42c62526c07d6904b96878419bfca86ffe86ef79c58e36a3962024d73d7862b5daa3c396e47451f7cae85e4ed75f459fbe49001fa97a9ec5bb0665503ce5a726168380c8c62dc72ff7ef0f77118e985ddcd46508b98d01503c37c542dbf77191747fe38e7c3de14c61e5fcff2197d7b3b905885b112207dd609e4d68a944f1c5bbd6415d3deb639c3b18c92f72924e307ec83105ef7111a15a5e8f2eedd67a1b3e632f3753d47fabd277191cc4ea6786a5b7a1d951e945430f75517337e20e2e18cbf5b74de8fe9da0b73deeda6b24a253d6d68bca2e9a8b1bd735bcc4ac5bbcc678295f9dbe287c8ad481e41fa58e7367f25a963a17677961b2cc9700594b98e72315c350577b894c52886fa5b55278d314a7ec679e95ceec49a3b905381b268098b1cdf1f39e4c6736470b6ac47b8cc9f3d26a1e3c0256840f2be05777964155167f69405d04e81f8424da156d471faac9d9846d5bc9260157219e582c62267901b737d38af8f467c55664a20afb0c928ed34888c8df2af6656d1c2e78c532e90cf2836d0baf01092cee580593a5be6d6a3611a3d07bb98ffaa1177525cb8c22c216d746cc8e9619cebe40ebda1e04e7eba8dcd606bd0014b899e3624e527598796eee3446de65af0fb4274ff8a4792fd9d275268ed6ea10aa8eb24d82e5556b395d11935e439f489aaa9f07cce2ea21868eaba4ab2f516d199c03df304e023bbeef800a1d2bcb58b65ef2deee31d33441311c4c64fb69b3b1bdaed5eee9cf195d6f968289d8850665a6611e7becf52f69b84619b07e9c592fe42c3aa618ddafaf74d28564f063d3324b75ebce39fbee7307acfcd482e59c88f3164d1d2a4079479a9077ac65d256558d1a1056ce256a09d0182d836960ba2dce5a3bbb6175e5e179fc07122c1d6589e0492d863cdf8439654d48e42fc09e497e8d5f5ca66d00fb8f1f3d5d7217a0bea8e1cee43c9c2c4fb9518e8dff1d953a0754026a9985398170228681a0cc809ecb1a74c5061e92da0e4b58ced937ea01822fd25ca33ca5931134f3a6be653adab3b6a3f1fecd92f07a34fbdbc8c4b641631b7d6c50db6636ba7b8fcaf54c2d8c9af8952d9b64c40cc037670dc78f9e08eeecd95bbec50ae4b04f036b9a6276fe5808a1513b039e1a2398c3990f9687f9efde95b11787821578dcb29da182c84879cf1b772c9d153d06accc07c5e55fe17e406667205f694a6575852656f25b8dd20e092574b306b3ebe360bdc8f5b2018fad9a663bc291f491a287dced7df816d38c0f5dcfce615908b04b6f0c39c07bcb85751720c8f235afb5972494c93ff2010fcefab398fd0fd75e2e174fc0b8735cbd33c10ae90c65d70e19784709f573437ae17967ca629d6255505e821201307ac0de82fe0f991a158317c81533593ab518faab821d51497fc60530b9003db11db6480b4c5b321aa8a2a3077fff450a2fce3ecac7c1358348c29f1c862c1480b5a49278509d0a70157f2cb0f19314034b19a30e9acf70c7c819171b192ba01c684cb52122219743c43ff0e86a68316ce3e5cdaa2489188e565b4d8e016f3e974b00cdf46e1cc1b8e5502cbacb87b3d08c949c075dba39329c33d4f735876fcb3767c79845bd80cbf5867a0f637f77578b62ea974687f6d864a645221824800a67048622e0a1e9e8fc65d92805d4a77cca7cba6c4fda4ec8876612ab8932685d462d3261c61421328456fa756543c01515c473f7c4f2085d35f190f00ce1f2d9431236bc270e5ae2356e177ca9ff710f5c3ef72eebd647440e12aadb4760a8d99844e9bbb2129ba46b4f9f7090f5645dc2322d8c6eec6aa9eecae4055efc8c3aca9220f98053e32ce6e6e5ce7ef541f188bd6c0429c81e078294b0880eca629b1d04fc27b36685b4520fbebb88e35b8d49e615b55a599d31d8c01e0304d8a55cd7285103871e27e2060df45604decd0981d2cc81f0b0fd4bef174bd4ffd303aa0c3b3cfba4726584d92560b2adc8fdc5b887eb52fd81df23620ec6d20108b824017eef8fee2aa019d9284ae03c366cf44d8a631c741e8dece196f0a5bcdb8c04b86cec265a9bc7c5547e627ab10b47f4d5188bc71e03fa45c5f5c6019f5170c2e6e6b81932963c3cb9530de42150d937bfb83df13714de45154f1c093157976a3552f34d3c76623177573368014b077a414a7843fd4c0dd233102d0a448ac32da9e4d0dd2f61cb30cd16736595ebe5fa7ec079e920d975a6f77df6a9c9f54cbd47d77fd82d0694d8e50a38b1b8e6e74a15aebaa1f9e1a333da1fd5ebdd34108450f2e8c981a05c305c268cd1d5362bdeee3cb52388ef792afda63a36e93739b3bdb0f36faf187948b482148f979285d6aaafa90f08b2e14780a86e73ffa1cfb892a9a59d3bc5562b575de61787ecfdd62ff9a8f21fa678e3b620b8eb472bf26e196678c3c264b58c4cd6eb057e06e0b5907271d062a15556f295d1bef361da803b925253d75cd18793d44e68aeb9e88cea9e35bcf35ef64f1721bda098029cf8db615973c906083136d9b1d54481a5b3aea52a7243c17111d6c6b35e5232d0d688eb4339c6d40ce8caa29d2fffebdc6130d841d0d52429d6e3e0f6496708a51cf357afa6c1688fe9988eef36c6937902528ff8983c84f6b1e9ec45903cf31593e8a7c2dbdbf85939397f78ac81bdbd46860031e33f2bbb5dd852e970359c16ff0e1548e6e738fb9678d83130c6e641b2974a15d84d3cd20b6da94c0236a9f0b1cb9928d825089c87a9dcda2868aa85146b41eeafc8d860a6b670788f7d0e87214791d9561614cccdce85977caabc6072e1b145b12253bb34157e6ac2e3a8a027bab1afc807c8d1cd82677060ac899b3796ea3c6cbda3f5fbf192a7c8ddacaa36c7efcf083b0600878abbf375b12ff78665148cba022de4b3695b3740a688c7d40b5bc2a96dbcb00d932d38a0c0c35197fd8eb54c2fbaed23cef676710ee1ee075f57f92aad3b61aebd34faef798c79a05e61c70e9b4b4d250f01d9de74b453c7fbb17f88128fb9a55b127020034d4cda600fdc25fd7bd0d4b788f768dcc5fe7074985e08949722b88c236489c268dd28fb6f2d2af4b8fdda89293cd488ae80bfd15ad6e80f6d81d579ba094f565b09b824898cbd7963451fc5daf2103a1606bb0e90db48f18b321058fa4075cf04d6cbb54bd908a3c567be980d20e7807d93d4dafbc251ec9579bdd1f849cc7502618a8d71d2f64e9ce9e236ba98dbcafbbd65b25564c0ec53e47477a4d6c9d1eeb3464ef25c62a3501ab0a6c1f35490d56f82e109310e3b7ecd42bed5064b580cca803922372f8c9b02d7379a498b61da630f379bd521d70aa7d37f5e1273fe2382d3186572e34a8e32d60e95f90ff82a0d553bf527a5d54cac9bb57af9a11f86526de34bb00abb54edad292c3e717bcf04f89819c8bdbadec6b769b1f0af57a0715e0214c0dd9387c57b12bc7697734a8f861e545a52424aa48c478be5905b8d573c77f5cadbc6c72df92a52246244b45e48d02be940ae79349d92f7942a2c3d1772bdeacbd0d022a7a7795200b5d20789b4bf74c636097dde8fe91d1f3586d865ca277bf8b7349e68b2bc5d5ceabaef486c79a09649801c5a9b6537a93885ee48b8a49aa5ffeb4c7c1f01815faa21f555d875d11fd94d9790807c8ad2cd0f3b0f8d8bd8ac0f4b53f52b5ea1cd75f91abdf591af797ca06612caa4523f6d65bba4ab92720fd7b3d47d54cb79351ddea16fac71d0369844555fb239debdcbe4d19fd17b86ad9ab833921de7a38851467daff07bfb947821becad3c8ce05335a4bb6e096c9afe79c6b2ae5f8536625b577d148533e33a4e2a3f048d2f823169318b07770fcf5d396e31f68c084cd2a385fbe74991a41fd7a1cc9335ef450866534839ed17a7695f6c36d712a2bec33c7286065bb0c8d29f9a00e485da417e6ee2901a7e9d61c4f57c46044fdc43830801735a5e3813a270615e39525f54328c919eafb4396b08e4f31ed06e3d75704416ec69346b4840492662f655cab7c62a6a0d3394d3f3d39696eefca498ef0752d71470d0bc8c516965aeb49d974175ee1a981986859c1ca9aa5ebe83d9eb362c1e173f158c5ca7c04a9d2bdd80953ba33c64ab300dd1a4e400c0f106e994f316e811c02bd94ca0fd4adb9273ca4464e3927493bdac174717fbc0b2fdc2f81322c0294b33eab050000c4feeca12afd6fba01c9b6df15bc104793b03f8ab80e5cac08a8b1abf6a5f6bf2984129277397b95ff8d1e2a18594d7112ad314e09c238d2981f726b3e31f570d82005eb48c88fd7e4bd2104315b7d970630cfb06d698691ed583a0ba46681ab6ccb6f13f410ad28a96ff0b20987c1895631bc79b24fe726978a45eabb280d4bf4ef10a59f9e1a4aed24d8fdbefd630a5621412e7421ce7720172f5a8ecb264788b73581fd29a7d2ea14596cda8dff82723323f07617fc9d87febd9102f2f90f138d4e72a8048912eb96f0b36a0a67c87c3d8bc23f2bcb23c5a506cb2450ee4de71abd4582937b6cf2232ab2baff4e3477d60eeac4d97211ae87c505081b349c2115ee899aba0e064c72ec2626caf3c2e735868d466c22c2f8117a12fdcfb430a85b885e74994acc02b4a14acff70149f6cc7e9fd63f126f88cdae4936ba70d0048bfa3d9a63828509f51397faa9de95ae60d54475e4aa64857789e6e81fc43cf1a49bb216af9a5dddc8c04d520d7018e74757b18816078514ceef9218fee35d18f9eee440281ac8a0ed3ad5dc7b9ce04e2540cfa5fb381fd8669e4b7819b81bf4dfb3774e5d374baa030c6e828e22d6f218228d9e2237ac1fc9c43911bd3a93a7563614b16b97fa2696317a200ba3103b27131f083f89bd0fcc1e631145c7466af611a963db2a378cd2967c4330007df35fa32bece1141d684765fc064b80d0e71f64a94ee9b037d0108c1ba35d60bd09b704529d44bcbd9196e08af000299672e5d3e93b9736b77ecfa938449965cbafa1b7322d29dae3ba216d1bfd95034a4f5fabeaaed8c70a7c81022419c7b5b90ed198c5bf8aa8d99407d7502f0a16fff3e634a9fb57dcaf5dace7e57a1deeef0cb3bbbb6c2ef8a68e32bc6af8f32360d2effa3ce9c61b1be4addda0f0e301d299e0824aefc3ccb3d67dcd71d050c51fba7a41073356ab3531c5fb050f27e3b12006e70114ec8bc6983e6f8d4a3af3e7af7c631e568831d881c275458f455b70fc67b353379d4d87ff3ff017b0a8b1273e8649180bdd0baa326c9dfd6b4dc2f719dc5ef6c49edec27ae1ff0827b3d3504b2044a8e643700fe952a915be9060cd8e7ada4c1536c095b27580b3e7d84e1a92ea13f80b1b413f45a625ecc33986399d9bf92f75b89769985a619a7a5a4416f2df7e2ef738578c97c840d65a754740948b305c7ea6007b9bf057a00ceed954e825080fd615174c67338828449bb3927b385061ae7a9fd6becdc4146692040dba746ea66ea558c72be4ca8ffc5f1a5084b10e5e9ab73e7ff1ccb72364d215762d31b6f167f3d4b602777f1df482b0439bb26fa6203210127a11a4e379068b283efa2561bf8906485c351d406da4b0394caaf6453f4fbee3611cabcf0af96fbfb00e7be19d31cf4e40ebbcd8066703e8ff2ccd31b2128f261ad19528effd2f733fbdca31653ecfbc014860833d297f007ce6147efa2fe818dca097b5aa685cc62497065ad4e77fec2704767f3bb371bb9b781eb00c66af507d567c62ee9ab5ef5f6a4179a5735d1b8e6d85b4435a121d10444b66a8ac48e416cc8b80bd25f38513e479e6f9208c1e43b76c23e9704b3db5b07010a3f0d31cdf6b15cb2354805fed1d852555b50b9d63cf00d0e6df5b14473a80165fb400a916db644de2c2afae0cd42aaf7ce8595844d62dd9d399b110ae84920716353c6b025dea809ccaba8ab8c37d03d36a539f4245fad5ab5f2694ba7f7dde8c84aae7d117b8186d3b616c4527d92668494d719ee21622e1a00c7a233a407c4210ded0323c2832ee848db8e62e3e7f75c02b70ef7ddfffc14955b3b3aa6ce29684160f65dbea4c15421d6206a5a546d0c59181e5b4d5b6f2ae532e4063796d3c218cd4d8b2216cea1ad8e15dcedc76a04aed9f33cb200e9e49468dfcc2ffccfca0de76a3cc0b10e226467638b1982722ae4e328e326399b8ed882e1e301d71be19430f9ba40e4fa496067834dca7d1d97ebcbb72efccef6c391dd195ffefbd5ba2c58bd4d43efdf98794bebcfd982ce2835379f871abf526b6829a573361adbb230b231996800db01505391563bfa85a107f7790f9745f1593261a8e3da742ae235c6624db187228d8c4eaf550e6c90c17b7a7ec34f76eeb62ebdcc85c3377f73bafd03e33e45a8c1680d99ab1fe75d924c308651f3649a9a6bcc632116b56e139f9cc9d40f3a35cf7151a1172cbfd25fb8e9321b86994c1c9486386df5a9c4ad0961075376cdfd715facd6ae476a99842a83706fc4a9e5d8ae11e6086d68f571bcb2f671a5c7b365323be954cff527522ec27a905d992dc0ff9c537688ea742aed1e0bae70f06432f646705197a31093aedc8e9a02b4bcb8cd8a64c6740a89891560ceee943f4ac7a2c424eb79e5cc469acad77101a6f0ff8b8f7adde8946089c65bf3c4c66786e98e3d09f1bdd57827651047c364edd60eae3ea44e962c87dde47058485865911a5b9db9557f7519b80ac165a1977a088f97d0644785666b61ba95d9f97cb42c1cd3db2880bb1f3d6368276fd72f5dbfe290488e31a31212bf559216460e7dbd8e70731c7121b8a19f827d9d6cf6ac2d6869593985d12c78e389989f8d3de0bb4c2bccd4dfb80dbcb38b7e93b21b428a69fd5d7ac02cddbe841bbc674d66d29d57ef91482ec45a9b0374da39c6890ae80cd133a1fe933aafaf0756d44a4ef0d6be4ae37912a3a7a9fa3ae8cca68213a0cf8a12ef166d9a3394a2b62a68e896bef5790cdc6e0ea369defb3f03206bedd3c8a4fe9f64b82399007f6d5b86d1dcb888c0f28807356aedea8d66fda3c884cbf914243eb700da2515ce09feacb1ae36bf0a587e0145c4aa5ff43f8583e029b0b72b8491037b9c4444ba0964c691f4f9402d31a304bfd0ced665719576c5da25570d835bef88e010bce057f8ad990c0ccc19fc1064c6598154f37c0bd980acb86b2407e9ad17d726648b6558fa301787b42dab41b4d860ddf30fea3d9239b5ccd15cc75c7b2b6c5757d652a22dc69e4dd6b635dbd642c11518ea45b8c884b6d06cb7c9b53c650a606c6959f4f4206d243a20ee9aec4ae8512439427acacc9db34bd64e0d1cf455d524d25d1788b07677dc2eec526e29fc92037ae14033be0b09bb366e4f40d802878bb1682465fe941865e36e4e27b10254ab94908c9b66ebf3d031d373458ba9a1e08dacf8471055d67dfc3cca260b04982dec95e180dfce2215fb3ce3444a8abaa4275e329f2c2bc587b4f165cb7aa7c4f81474085218158bed914378357f5ead2c05abb120ce327cc8ce77511f00b6eb7b2e8762f103f499584d95342c75e073ba6427a28ca4c9c51f48f619fdfb65b8936bfc08582cbd9a771ea5e5b22401bef1a0f1e73aa3dbcb915e6c976bf08d377e22fe0f6cbd0a756ca861395b63dd7a4b5f6a394fcf301a505eee11607530da095d0c9ce2584fbc2e945e6fa8494c0d1418c29530ab99f47c199fd027516c1f3650c0e72810d1db47317cca0c0df99163b697ba2a72844cad98d3180370ea5c0c08e0471e0deebd0572e8f80e1358b83791d2bb03cc737b6b754a2def83c06d1c020ea2ea0d9c04a4f337f622844f330fd59eded8b55a81bba29bde6e444342e076a78288522d71c5167765b5c32bd91aa13a9507983cbe36bbfd3363b27c1d416eef2d3ca71fdc53048a37bf26e774c402f2e6874f572548719f8a76c809387abfbaa55cd2015f9f4b81a7075d55ed7c41f1ae9ed220cd6c61bd30c455a453173d6f7f46cc0ede157a2551510f1e010a32d9488f04ae1342cc64a6ec676b543085b312d116a06c2675ae9565d08c4bff7c643b93409bf8003043ff131ee904e182ac503028c1e200555caada05518503b6ccf139b1d8f6c57c9bc38b12aef66dd2a89c723ce0326cf9c40726dd1b781dc300d243bebe1c63ed3ff3a978c6f22974a25e751146d09f6d56fd2b27cfe8baa402a12f227997aceed3497f0292d14fefe7d52fc48a62f5ffd479f65f8352974ea182725c468c5ee93fc1b83c13092f9d79999343a4de7211d0f029bfaccf6df1b003ffecd5fdbb8a24de7d34922b2733018ffc05da4d3bbabcfd7f00b25bc00fd53016fc4f0635e572a8dd76043c0e40236bb17e6ab064c3c5d9b8380fa93d35c4ae4919a348574faf6f3322dc9ccd3298f9a4552603c94413161558a1389e1f9fa9a64d6b86356aa899ebc32e8913ce6edb43d99829c13a3e08b1ad35e7cf0b299f752555bb1c4b2815e374be4257675017354b017339f56ec806dc9a8485f6fe29c4f707a9acb7bb4d7007be25e5e35ba268febb5554831543de741cb3a30de52eafea760eb59843e8bc85ff31ea5d81dac1e367d42849f784fcac5c202086d2679656a92051b6362de3898074e90738ecb9b0207e00508f069de872caf2214151f956886b913f4f932616a50d9de005039f580e6970b34df54b527435c49987565cfb5205f253d5c395d5c9a7e4042aee7e6189096e2c4f2697a3724aade207c72f2d4d0a31afea1d4dc048ed2dd3e9951235c76dd542feb7b7437354130d832753212d703f1f9585d2a0619ece2af06163ccf02baaef5669d50c696dfbca1708d0dc211f4841d2dd3539d81b6f0582e8a331008491131fb740e0aeeac09d184c256b97080cb323dd30f03a8a29e8f937293b0ce82ad70ad23f6d9381b2a714d0207b0543c1baa63dec34e655a7e2e2a51f5828388a5d13d1e6139ce07799d399036d0b123224d4c3387b0784311d77d65d2bf18241d53837245566505a0fe0abe25e020e57e70aa107c7ea819818f3ef6ea845f48a595d53499f90c0401f3ba020deacb698c4e0e4169ae88bd2f689875a6fdcdb6aed6d9836ccd423691eb3abccb95a1591a28597f5992caaf0c6d7f4b4255b4db4d845107a470eeb275e3b4fa555cdfdc13709e2605968ec8a122d27e0252579e7b0add7828b593ce02352545f20b9b687a5243e2f9b17f7bb16d4e1492b3942f15fd11d41930a90d0f8beee090b51c8a0c41215c4da4ffd7daf2bdb396064d1e413ffeef1abdda5eaf382e394bec783a3496ad84d7586700b1e8e0e1040cb5126b99b04836577a3e9dd42ff2e0053e1ffe145a85c2188513fdb5224ea34b183fd47ad0c279ba06eb97a516bc006fec553c591be82894e215b25443a4cc99934c0042882a94848a77dbfdbc60da48a5dcc66cd407fcae213b402448e0a59191f23cf7c0bdebaacbdff510940e15ba995b9dcb0396f24c48fe93403a6f2c4ded03a8ed59358d1a28e0359ddaa59b847b4c95b52c6936ad589f4a91393ddea1c0535730dc965c41374e8cf5502f10775b97623c150e07cec8d64b0ba3423a7a3e4b85b428bd1584a7c0bb983821358daab89e7c545b7e12eae62e8300a017af526e77368fe2b2fb5ad214d2e2895353354db2fb6585d7d6e69c74b7029f4e7d172be83af791555e33de0094f53e2ece7feb0d800bfb6bb20c293d77ca20cf441bb28bbe483d7b003c5b6336899289076774930686c14877411e11b04910f97cb2c9b23a96ac1e847f45e75c8c441c5963888fe879a52dd1c51169f638ccf8e70605ab72b8410f670e9f5366c2b308ef56f9105df57f4d3398bef06e7b3d6977be651897e836b1caec243368cca529dbc91f454cc9e6fd80ffd26ad5a98603b4efa546e6668c50e6aa5b4ffd0eeee16f8a533820e2328b1d2e28a7b155cdc9cfcdc1897f4f5706aa4c5ab9518b345863e32e3146b0687bfe47f441a1019da7e0e6875fb3455873f4b88e50b927be1fb541efd1841ebe53389c9033cc98cede3addcfe2bf3618d673409839bcea0add058ea48e01e3719ddcd31fc0d4afa41e3d30645704f87d373f0404e42ada2a9c7c629a9943ffce617032613717f0e0b7d02a780f86de1210eee4ff40f631e4a25e696a9b8befb3eb0e575b9b56a14be1afea5a5de04bbbfc59c760e53dd874cb1459e0b188457ce41d1141c5f773421e098d98c5af57755e7f821dccd757c65e1f5ea741c04c40ef7fafeb16034267e5c03952f6dc06f19df13c47882ebae2f2227434c27b32f06095d3c24d82f4bd9042bae1174bf48ddbd7e7e65a735f7354bfbc7acf09d0f456fac5f454be59f49939f3eee30c7e5e7f4945f256dc19edab9017cff31019a388d00de8e3081b41dc010496f1f121370519ebc46a30bd22af3cb0f58a8dd71eabaf0afdf6b450615ac6880063401ebac2d7f6ad6f9e910085a77fa68e471cee9bcf26e255239b2d21ba071d277ce4535c1004ac6f546a792628d463602bc390073a54368ae3d63a17740d57db2d2a6d3e55793a50b2f7cf0c19aa2dff68d3ebb6df0db45b791e6e7b2d763c80c89dccd23a6f490d547de8013586aad818b3ad3dd174650fcf61e8a843fa057996db4f47186032b097d231f229e215e22663fe4845ed2d6ddd514eaf0ec807e1e4403c97fdb8292fabd88677f90ce41a286eeab54bb98de9681e3066b65ccdcf4ba745fe5a6fe2ec42ac03215bfb185e8c8fdb820c5e9cfba92ebe2b6d1d2e3e7026ada551fc0a0827ffdf0b27f08aac5cedef2983d125115ee7ff0a4279578dbe74966935ad2dd5734596a11bb535cf94e1ac0dfb59e898c0db09c51d29cd306015920ef2182d9831fc777ba1b499681c9e0a981ad6430abdcadc77b9565d42210a295b5d99e224b9ab02df8f9522da101c955c4debbb5ff87b8c519cb4bc819c3bc3c78bb67a596898f1d508f46931d7053d6c982774cfca2b4d965fcd34a172ca90a4dc6f8d150dcbb649527636a58cb46c3db332bcd91f4081cb0e09aef9e5044acfa924ba5355e212ef205c99f1430f0141241846107f15afbce81a7caf3bc3a056c8ed35a528729b2fc284fd65b5c06b9eaa97e509104f9d781d62766f88b47e8131c8b7d95efc8174defc197e0d8ecb41dff3c2411e9b87035602b08ca07772d157f408d531bf003bf1dbc7249884ef96d85abc9b0a3f143eb030cd4a89b1b2549eb1e779d48bc42dc4a204a8f40dcfafaed61abc2a5daef2b3601ea282d74d131d9390ba9d2ac7fbedeb09cf7f69fc8c4775bb877eeb594daaa14955388cefb0e7e459e6b6bca17fccd8d67cb412a351b383655e7baa25d3a3a25776cf6308177ae5e7e38b6f486f5dfa740cb0e24000631cf859ea70a735cd1ded0c0cd0ae03ace0bf51418e154393ee32ebf69de62262bc256c4c4aa08794de0335a9c03450e85290383c466632d6786afb99718a78c0b531c9d5876ced5c3bfed2180f396039b6a19f584cf92d94f3158c793c82705f69e74995c1f5ca29321083b1b60e7062acef3d73239db63cd85ab5e740a1ebbd3ae5e792924441c61cd78bbf9249b9830ef89067445efbc329d80813fae5e2322b943487e5dcd6db8e568c7958fd35107f5f1db2099547ded7d9a923dd7df799d22954e5ee09cfda2e60d6fc2c644b48bbbbb506d534350b0ad9a1270d174fd09e498453b5d405915c74291265a6603e6472718c0fc1bc76f5ea323bae1af15b01e3f9c28735344ae58014377034145b48c4dfc2b71f0ea0467e86fcfc2a9eaa96916ba461c2d3d1ef4ebc079a67b5ae98c24306c8820bfe678ef0c8ee67d192d387a464bd82b35b88db8ab060b739c479a03c29b8dedb07105df0bcab241067ef48c5c29308bc132d8d3fa52d44fbb913120f8bfc18907e467c71da90e0cc66316526de6ad457ed1ccc1ac172488a7d0655f1c6c9c61718acaef8582ef9d0b568e3a08dd18c7699e173e033cbd880f4336a9ff10fca76fa52074108e03fc9de3716551aa3c517cc665b46052670b99297b36bdbf17435f3d3736df621327cab22a52f2a19869e13186126e18ca165845dbf7876188eb0c6b9a35491f995ff9c33fbe88696dd504736c64f36b3f6dbcd471679f933fcb9e8f530eafe1a29e18c6c9ffe34deacb815730faefe8c4582f886f8f7256434d47b0f6e93bc20b24a493fb3301c57c2721b12bb88bcd1996cbf8d1b88c678c74650829c3f5a45a5f8b4b701f03425a973490262085ba271a8dec9d1591512fb20006f480bf3e0083324c5c7803e941e0386e4c931a8d7b95be6c21e7f312b07bf03e6fd57c585d3d26265e005967ad9bdf9c0ee854ddcbdef808fb44e281e78e908d6148fe12242c70d5d13fb361715a5e180340775ab3166abb076c6a71c917f2075611b4ca2a3f145c13ff1f682ce4206733480222d668b943a0a352cdd5eb20e218e6dd3e2df7d5f7e45a5a3d46f57505a518997d8fd6f333abf84d1a83063faeb8e39334eab650497daf58e6813032f39130b87bb98a9509e9e4fdce911c387cd30ef0a7946d2bb9467b186c063dddc5e0fcbaa18f741c500ceea758dce4ad5f5d25b43cd80dcac3011a35540cc06f99fc3f9863a344bdad4bc4b7af0d65e207dfe9fabaec8589857f0bf32148fff6be6371ed7b6d1d610370a66005f29cf595adf9a4fc29208d310214de300da78d334718c2fd8ca18ea69d10d44da14f511276b636acfd316a2378f51e52b8c954b453ea2392dc96a807798940844cb4ab677a712fd209b6feacd223552dea9813b88e83b57c38740883e06791b6deadee4c7efa6852739b42443461b6a17d9f28d816e1c9f7980dc3a036b1b431ad5c7522969f5c538b3602d897ad841db315debaaa93ee4a53daabfa197dcec7f0364daa9e605fa8a1b270cd23563c933548230e9417c186a79b71ca8f6cb04f3f9bf21aebd36e48db39a6b1cd65a43024f2bbfab4b62feb0f84dd498a7f80e6bb14c3ef5150703398887018c6d2920853851d48b07406425b4f539c88da812c5e90b6a13d85b2de7120edd390dd80041a390b4d601869cad027b00a9c29e93640f0d1f55980a5d644f6afbe40964ba7fcfa3cd0c23ff3ecc70e5b817c320f44ec3ffdfc5b7f9052906327ced26f06d9281ac43362b9377573e80296cf608d2d951256b04f2f13842b8c1c34e664aa02687520e567142549c03e64cee3a5f6278b9c27e4c7c1681d965738cc07ec7cbfdd3f756b6b70e1c74e07744c20fcc82a754effdabc04bd44772b5eb103cf56d8c8dfebf4c0f70035405f4ead5848cbc136698fd634279c2190bccb0a7818f66d4ed72a079218e64906ab1a2152a590ed023a6b9565969dd7c7894a41f1cbe0d2a697aeacf978a56618fd87e241e11c5a5313c913d1fc08e8ade830bed0db289866eba0d30ef403db7b8fccc6896c22ef66c7c0000d7b4ddbd54b6ac7cab762bcaa27e9d86bb192013be87d410aa8d5811f4ca3f007a7bb5d131cfc7f01466ecb7ad9cc5d060e6b4d1ee031b2aa2ff4d2572a47793dc35e504f5765ad1306a8d0aa93a0ce0ec325afd7cf9594a0d61a88824a832369eb11a9dbacbcda59f6ca33763527d583790f2e7f75a8faa0f55bcfc96ffe71bd54a8f1816728939cd5aef07ed81dea83e5a5fd1dbb070645829cf7182a2dd0c6b87139f06d1d4081783687573fa707b21be9a19bec2d0f6c7b9662ec1a4ca340c587130730d9c35e9d964fbea77fa0f55a80b307afe362874a5915cfb216061e8a70b4a4667dd012e883869150e7a5d3b162b04fa4c2602e340d8261f31cff2c7d9bb51e2baa157a6eeca721deaa343491f44bb02f79a3f243f96c8233c5dab885e4d681ab4e9b24ba1dd1082638a8987055c9e8a9b2f26f5ddd1e5f6dfd5d404654d95773f78acf8e54fa6450340e9be9e61e8c920d6b1b05ffc08279e9b5dd322d0f0e26fa4de90c6bfb2151631709534fe1396af1ea8945db6814d704eb9a623404f8f4a5ae71565cf353ebb492192216ebcd673067137c38ab34d02fc39f522ecc7a1b84a8549c36a1ee73afd88945ddb412d1b8982fb972e1b7164bb18a8794b36b47be8845af5979208cc50c69bc7675d906fecc1be9f67cf13621335f269a27eb748e092d816cb6b229c8d593592438d8c99bcf50dfa466dade6d4879bab62eede284457a0e8f95c2dafe17584b096a2048405b730205429851c8fd980c0c98bcd9439e8f1733373e26def2f6b7516ffb36a5dc300efcd7543d6c775e7340afb1f09c58b45b2d62eb42482fd0084752ab8f8247790f2b0cc394c25485c82fffa03da74c141e4d5e47b303a3a66982e4d1b950e5aecdf9b198a9846597e3139d01898ac3dcf8406c2e9ecaa212e624b84a989ef4b364aab059aabc2202aac96bd2262fea29fbd0bd1a03b9ad0a0d4ae8c895abdb744ee5525acb2542350bc649613f601c7dd8239e4e6c17743423c9040e2356f8a602ab7776d64ce05f934ae9a1d7ad24887c010362ce42a94d42987f2cdcbfc558fa22a02bf7235d48a436814ba5b3d817684480ae72134ec09817dd9f48101fee7f3a124152d6639688cc8b55b8e0f4c728ceef045cac4bcf6f7674e16aadd0b49d53f85899c47b07f0387edf6b176c4af67cecdf9db82e75e05bebb6434679a6f209127532ff67a49336ed017c154155971e3d7841ad57fa0d46cccac33df27a5e48641b4d7aea42ab0b8388309d22aa80c2b1c4908ac45fc4f394cb1a76686d408b1a4fd12d651c80e33a3b4c411aa01b2e2cbab7d40a7a93038f4ec8aa1c08ed3f28139284cf713ea61f7385d7509b218e2b409c2d7063eef62bddd6b8a6d7f7b322f39725054ce3ced076eccb278f32331d0810c64657115f7fcbc1c9f8c7f8ee151afa1ef91544a7a31437ed3f45579e11b6e5343e863b619107f128f1e17c59122aba7ff262b1c219cf592edde8ff28ae9fe2df5f9227e25ff174b82af864f91a81e221d355a4a53f109a304af26bd1104c621055939155bde704be2a313d32c43b81d8cdd8ac3a1aade833e812f49740500d9688d8e8a616fbd539f67ea06c9dcce5fa7b4c6cacee22f8c8c253055b5d55062b92e93b74e70c53aec5c588c13debdccfc74852179963bb0fee43832f5ffac33bed6f3c0e863b55f4a57f8f8bb72c1aa8e3d4fffffd7d3d1d32582908b1b7672276576383ed2d4edff74ae2734543947c0f6d72959e623ab2ce7acb60313bc0bdd23266f353241aca839b6ad4950dfe34a03fbabab51385dc303779dfa5f5944b712ab175db9d91a24dd6cffc8c1ba5e1efb0090aebf0a110cfbf16e39675163b82bd8192a7520cec9690386d03c0de1ee38532f063215dd5821be47ac3466766ba6905e0d4ec36b91e371f1ec5ba8fc958ff2e07c8f20439160c0192a72925111a62a8190b09815037863cbd8f7c1b93bd7c790d15bac95ccf9eba99a304f4892673adfed6e273e2f90dbdc0fa572f6ee75ef74b7cbb04e0d533b3867c3cd61c5d2aa1b10afbf6818606f5d8d426d3d7b7937e58641ef2491d59714406cb2119cb1899597e933dc5f5891404d4de152c55e4f2126e0e93fb3f346c96cd99b16520f542f8de8097f40642ba1bab6caa0f77adf5ede51b1b9a6dc8db496c4b102c1ef019ff0e5ad121991ee0045ea228d2f67d9ae0f626e2fc7e3273c867af04400c0894a5441de5171d2708ded740e572f76bf64b604448b7596ff361449fb40fecd61616a1e0e57f5f9bce22444ce43c6d258fa635a7999868e0f9ef50b9a9782e455d9afff58ad9fe7e77c8fb1d5f38c6dd512a4c3face53fb64d8e44dc5c47d853699e75ec9835b607f45799823139dbf9f7e9ae9b3f94b3ba45ed0dba3ea0e16b09ffb8f8d8d1b78c6c430ccc312bfc67214293e26a422878bb4d682e98d9bba0f4daa6ee385ea6ddeacfc92e63b5c0477245eaaa99b668b7aeb4c778deb301390f19eb392f7e411bcfdd1db34aacb8c55f7cde5a88f5610d4ee54f73f2a19935dfeba507cdd48fc6e7e00946be70a232ecc7e042317f8ac9a5b0a10d4a0fb59594d218be9f0f024cb0343cb3d8137fed8f5d0edac4c8e2c56cc3482a9d4a25aa2d3752c7c20aafe05e673008bbef42722382ea1178f48ef3f57b8e7e7a4027d0d82dc6560f780d39659687a12bc1980eb527063f95c8d5120b21c6f7f212f4c1b3290459f1024cf8b22135caf94a02b858c0351cdfa5aca1628cc4bfba25037d1ab36f705005a60054784c4a61708073354b54ac5f772f2e6835d3057e25526d4a70fdbe9d750ecc0bf4dc4db1a96bffa053277161436161059f727905cbafa4c99020cb7aa67522b5cc7b3bbb5a70691d5ee7a4dd6318ddb5389255e87f73473a94a2152db827037b8f2ff79453ced9964a01d1428c6398e5de117472889e21f493e00afd628f76d71a08f541d9491a8f9c70eac00c84347c74bf16f87accfdf2ee741cde024ea6464c675b48983a148f9c8f6c3b371c234e92f90f141ede8eb6ed92a130e352a141817585abc0dce7bb54a4e28a58d01793272d74eb1c2a862d483cc53597ac4f519d5fcf347d5f6a53934b5a6c246ff2764676358399954161a09c33d97d5e6465181497e139bbc8ec7976c99afcd79f873f5a2588cb138b9c07eb18c67c7f035ef951014b75783ab48c0438c5280d4cf049e6f1332f76aa9405610a76d8bd0c3e990bbbc025b0f45620493d7ec66885ea5fff90d6ff862c33e44875e0aa4934feb10cc9e047a92d55d8f55c7d0e286949864eae273bd915f26d17a020f32f199b5438ba24f27887c423b0afc26c8e00c44b59a0222222defdc5e65a9c926c512a474e532b5e24af3e90cab6e3d25d743c24142b9fc9e98dc9ea150a54d4d663592d801c9acb1b1603acc2ac495ec729063d7be89e6815f03f1fc357161e34527ecbd5f478b184f392b92096bf5ca339ff1a801a7b0fac48d9be3ba38772da739cd4e20b07e4c1a03c30cdb93a4460528e73c78d7059aacc38b02a1c8579aac39dc007d9e85a563e64e7cdd821ef55f284c3f7ace7fa7ad8b2ddd8bd51274f619e1c2d6bd5b4b6e457ed2cc9e3db3922cd03c33c590b32ae2e5848ef382fe9ac20fc0ea697df3cfed0328429125c296f60534d2f1a27f571cc5df3384f918efaa515eb782d20aca677ddc84ecde031d4eef2529ddaabc7e4d00766c2e714ef5fda41ba95417f5edef6c32226cc849fb6a624fb4235297d4c4d9427176c21044aa9192259f9a81359aa0b155466437dd0981a0d241be9d0c94908b19bfe5acdfa95eac845220157c4ace1f3fb9b3b1659af2d7357e5199c2d57548d1a64e1d795fe4102267efd0913bb859237ff1136bb40ec851e06686bd6ecf47e51b7eda8b96713da25900499d410a06e4cf5ace817340b0d40cb428ec4842145ca2aab39cf09698e9223a32c5464dcb02a50bfd4c250e1ecc8e1b1331502a89de548308ad368ebed5d3c5f1273bff763b55918d5969fe4e1546a125bb49a4435abdcbdfe682bd1228c2bb5913996a43d328bfb1f8c6cddf26a5bd07e6134c5d8aac68e2d239b21670340cd7d230532348df6e95347831c5b6db4f34428e590b7e32d712b9ed6055ecc5aa1fcdfc7dfafcfd85a2ccd9ab1b92da0453c409701278b7d4b8b773918f36eb4d65918af4c30bab5a42121799851bb667bfc0146e9eb3adc2f273ce3bbde3cc0911f440c4e004ab1fa5907423c09982895772078a5eaa8036fa6e515116cca26769ea74827070e8d43703a08e327b0e8e14d49777bef64f5cbbf65451067518125f7fb0e38b7a746f36d69852fd07f66f664024f4ceff12d5c09620129c438172d71fad36c41746d9baa05840a7a84a707140b0d56b1593b687ac516c911c3551b47415d8a09f0337899b3ae5767a8310c6c655fb9267794c9baef3fe4708d4840a4ddd7b0db3ccaff75a293675e80a47495e9252ae62adb92f399157a7cf8810a165b0363cc53e275dccf40adae36e20cf4fb999d23f1c053ece1d1e1e8c6662bb8a0d3c1ffc117d454c73c092cde640fe47014eff59b9f34ca7fe6c7ebe8817b78dfe94628508a145ef6e50aeac210a2bd85d1a47bde2bf3086904cc4e66db061d0425ab590846cf933ac196d4cc232316af1412920bf0ea4018df3cffdfb51efd38d2c3efa706986f5fed48afae692bf196e133f530e69441bf912cb97bdc6ee3c9f1bd6fa06c1e23876e8cc75062c3f75b5684524b9b628cde3b8007db9b7bf4f667209261a6007c099f43defa8bb270e616aba76484d4228fd8cdf85128dfa873075b078b9178f00e0f0008338f027b9259a0d5207632147b976c98d68b1b5decaed8fd1ccf8c83e9c6e10f9e7fa8c1fc8097ee2e69e5f43abd8f714fac9cdffaf00ea03d4fe53a0b6bf2394a287d5a3c5a7d7ddd6c8ea039678a1009c99e8a5a2bf29a1ebbe2ab8f6081cbbfb0089ba2aab611c40575cae023f0e083e2a45e8b843ed732ab80d04fe2f7d3ac1546f9f4fcf6059bd1c1edbfff024b828d0d00ff876e87188c84519157be8d530df5aadefdba9eadff21eac3af48a3b31055839641d632e32cfd88ccca59d743cc60109f3116ae14533ebbd4ea3eb0f0ee98825cd4b190e02666db1ba23f349f60460334d9b6ba6b70691955319b820265e6007cf3e1204b5ae248154d7dd1fb4cd29573c85c7516afdacff4c3fe9e05bf892fb0ce48a5d0adbd3fb035d8d6c977cd98e83b1970382517a090f446d1dc012531912564c22d6bb4a7c477f4b860eb03b3d9ce211b1b42109a971efd44b3be082fa554c1ed3c2eb1db04a997ac9c21dea548b38df0005d56a156716c892cf9f688481bcf3e30c177b45452d2c36f3e5ef75ab2867a5d91597e0aea72ede66c870c21e149560981c781ab54cce3a8c5f9b38c33770bcb44d2a74bc00f72cda52ca256071f8dd57b22c6ae6dc9f8e0983368fc19a123daae45f3a45a112c2e0e58a544d1cb89656bc25727434f106b40071524eb5fb4558bf498b8171f6906d99fd560a2a9c28dff799ce09d86f014711d2cf4c1941f96c19ff855ed366d4eda712a1cea146a198040094e26a35cbeeab129b68adb1b54966550c4768af91d91ecf3ad90dbadf2acb63bf7381bc83ce957245c1588edde6e8cc451ce9475dc0c1280eee1c33c64d2a4826fa4267479300435112f8a1cacb2abf66d002d56ca3ead82aa6104888f5b0df2b94003286ba42c371fe16959d20353f0bee894435277db43b8cd6168137f88db36a198b2f90f06545da4b61419a92aa42b6d4491bb638eeaa8a925d5955941ab184d8865a6d2e78fcaacc488b6b10f62c45995b375c5d4d857e618ba4f396d338da62828a3a401e7b03680e3d6b7b27a7802706996f83e40a19f2e0e15a87df055497be10cb6016f7eb720b199067cd4f262e7ea4dca0ae4b98d982a78b5f66f98600c56655d3f56df41fee5619e5fd38c2a0c0f16499726e35e53cf7586bf4fc3bc36a1aa71525ef2e0d1a07c30c869df2aab0dedc605b708d88d63d04577b5fd8a4efbc531b81fd4ddab5810f9823a561faa79f7326fe5222b45ad81179606a81cc1093656ff7dcec38275a6644797f058f739222ca2e710e6f0c9db76d2b5bbe7631b5357fbd1b5d3d95d72be875f940d2e10c953bd6090c2fb080047c73fc46d61183d5d7cb9e8cb223fd5805d17a48d4a2a610963a17c6b43b8f18df24039e562e5f7a2b4ab8f6031d89410213800f4275dd5c0eef783bf139edb5b2d9e190cddcaea3f57291e32f9867786cdd964f1325f2b039228a1e752587defd3971cac6aee952da3bca67dbeb1f29d7840b522682d888438acd274814f8c142ac70bc3afbbba8af70ba1ab32d6be34695943afbeb1c22b07f639473c1245a50924c7072c0fa8ca5e500b80488c58f6f3397e235b8ccfc6815aa2beafda68ae64c6d1172dc56b6847a091ae22073a1930fc52930961a7e93e40547c02f64b5f930bd932a0e5d77c95850cd19b8325a47cb0dc5dd37bdd900bcece546a49e880c1920514424ce25cd06747ca954d82db89a18e266c32b772fbbcd936538dc6a3a8e84ced0b988f35f76cc586a567c774193d8b40bdb9e8dabccdc871d43b13580de84cd7b8fe8ea5be39c1e5849e85c40f2ba009ffdd751df20ec3d68bb2eabef03cc0ef1d8d57ccb1ed55d1e272bdd83f826f2147fcbd88874a2c9b2780fc2dd61b98be7e0a57f7e2a4e4cfafae50586be2b1ed1be72ee06122c0e112657103c537c3a186c463c4f8e4b43d1a10e2541a02e55a69b25fcb8f37d2baf4313c34c804b63a63ed87e7ac5341501d33e84d6674b87319d21e54f35af2d90206374ef45a6c05ea7fa0dd8c4017b77990b09e59ddba598d82ee2d4ae3945dbb4512d5ff8679fa0a82e91a4f7dd929177db6e1dbca9ccf332ceb8e7773374369f46e5e7d390c562d6f40811ff22826bc2cfbb7f45efe3a18b8499d1f3fc30e7fe056a559146cb787fc4a826b96468e1d403d0f7e3d9e9a3606904f88be87e7ccd3dc6e0872ee1b4002b06027ecf93a34a2cd8c974e73062b0863bb1e5be74926d51f780c52423e90b55ce67752acef0810d9b6e39f04e1b3c0f3cf1b519764b0a15b23665b55389e0f562f6134f075134593ec4ea279d8e72c2dbcb96f2428ff44bb4692546bb2b243c586bf25120600903d9d2e765ea6856064f15becc61f3042eff22a1a376c473673bd38e85ae04c05a5e7132e034d52371ae36cc477dac26c1ae30c5605d92f2da1a7b6e3a4995778b0ee4030240fc1438140b06f7b0e9ce04e1deb52fa4e21d0cdd06268ae7e368d6ad91ee0283ace133561f17342799e3b0c8533030280707226080885e3ab6ae9a5c759fee67a9afae1bf85cc28cb7f0575e6511480c1bc7946d8ea81e1b7d0bd3b9fa19d36f1c4222fe015c9fd21b7e5c57a426b11c429b8529b26bb15acfa5954f1f7507773eaae9107022106dd7227153814046eb86126e0fd9fc02b9c6bdb8a860f5de7bec4e4a690edd384725f4ff124777af79bdeef44c61aaf99292f2901fb785b1f345f3d590aebcf545d5d70bdb4e345c5646bd4d71f72f49d00360f551ec1666ac2017234ca05fe073c020012f5b2d9c3ccf3298a4105129aa721fdb85e48376c4ad9f2f5b27ba79948ba160788abb984051cffd6beab117bf5ca8d1409ca10b62dd9c210061adf362ff4f319f764e2937e0c3e1ea5ad7173428837b9a82ceecc3018ba2ae10b8f58e58e2ba3b53142381c2b8c0f9f8fbc889df5c28d3ad7092c5d600a37b9b19bca41542984660ec35a365117b627468eff1a35c87b9c37ff21735441975181221e28a8a4770c556a04c7f3d01d9e03b8d61df6e5dfb88249605a25c76fae05d841c8660759b87c7fb4d8c1ad77d7735934ec81f56bc1ec612f9e86115171c77f738532a4d346a9ee899b24a1f90effe10c0e9d2b057af5f374ded3fff6af9b575ca61a86a9dbd2c074b4830b9b8cfd738dd8913083cebccf26b4e41f4adde500854a457f35687a448e03370d3650f7c89e93b04d66baf3d735624403b2df5b245498d0e19a901a74892638c3df584e652daf75868ab4b5212f601f4f4bf8d1dd5d3d3ec3aecb9f204c8c0de8f065830be9f25f9047f7ac5ef29458e46bd8b25af28374d90a835b8e980a0e7bcfca3b9988537a6dc993bd7c2bb71bdb11a6199f14a7cfee4795e952cd12e38672dc11f331c36df079256a124c6664193390260d406f4622e1aad34d0635dc8c18c223141860a8c0ba0ba5c41f733594a9a5313a5dcbf09baa08e91aaaf24fbd6bea3ac22e9af8db779bd5039ab1c22274b330fc14ad6a9cbddbe296f314a13fd2de4a898ba518a2742e9d458855a69a9110da53bfb9ff5459535e1176037ce56c4af621a5cae97d6145c575bcdf0ee99a78137151dcdee4182408c7f869b8cfc76bd5d0d7af30fe1cbb58d5ceefa0a59b630548ee2fde9922a267c431b75818e1b109846daee1f3ff4e64810976c8a55a0de7edb14427d3853e9eac4f5768935ab4dcd5f20f40bbe872a2ac0453ed54e80b07c0c62ce45686150e5f989ba86d3d96f5b80ae81b5923afef2726e14408acb65e55f14f3450c26270f2059f623929970084238cdece5f3698e8581e69a5eb5f1b414f169108ff212ce87dc9c0fe16c5f09bec6be72a50ca72f035a39c8247527ef817246253e8a8cc9b9a90ea1e2654b5e19e07311837b76c4027da8e9d8f41dff4aed55ce22ccc269385a3e37f2762aaadf97ea81312d4468cf29c75a80f3226d20f5df599afdb2de0e950264c83cd29fb4d8ffbc51d62066ebd0c69bd9ea4a621aad283f8ddad2399968e1ca2bdaf7f261b98d8ed639d44b9ff165b9588bb9c7b4d9bbb80658bde4cb83206c5d8e70c1f0d570bd5462fcd46783c7a52005be814008550816cde9c3cfced8998f842cd6f064e6ab1c7376ddf331ff59b87de5a8a23862a1060dbd2542bc63586fb49ffe6d914d2db6c719994b0b8a52d40b8db4bb9c46008028da8085bb9ae8657b14003b027245d36f671f4a9d332889dc43ff3f3e7d66912d17be20a8beed726b278bf94b08ea5524113dbc6813e37cf71839bd1a7c98cfd2f12cefe8465378915329e4563088929d5db330e16136f42c078264966183fcad0a3f9e290cbc8b415c7fda999badd3b1f5d0ea463951cc647d3b6c56a3b626b16f87ba6533442aa2d5859eefb207f9c4378a70eb369c7a6f2cfeab3e75373588f1ef5302dbdbf9e9519cc7b7837fe1b89dc9578c92d43bf27cbeb09c0b948dcc2bb59a496fd68b5c6afcd0f51e60c6a9a974cef4c00f8000f968c304337531d083297e9bf1a14034b1bb84ea30036daae476076575dde62eab548d3d9c6937df3783c9780cdfef467a9187dbf17a9933d975be7ad7e7b2d07f71deae0c78693193d81d2927c363cf4ffa93343d915d12d558707ec793c2790f2d455eca8f81b62c64501b0871bf6f009f30210765e6f3f35d04c132198d2c6d7ebf608f5f123b5cd67a09c5cd850a1832b17e00876a9e961f4bcbd8f6a1c8d749b662c968286300ac4261bc835ee90ed6efec7ff9ec03274c2fb8a60c684978bc9da7eb4907ef684fcd840e57ca1bf145e44b1e49f8497c541e329faa892c9032fc81eb4f9d9d7fb241aa992699316afa18747089bcea28e356e74f94fccb033dee7dc5b2e172c942380ac630fe23e6ad6d914ce046ca5b9460e72952a030b34c3e7092b90c76ecec48bc313eb812137e9a632e8706c2de8eb055d18bc02078d7909d0b41c5e8f8ea4adbac037beaa370f3936b813afacb4c38a712699b1aca79b8b3b5387150d78d7d410b5a5985aa0d0b08cb1b7e540ed0ee285c55570fba39b676fb6e806571cca09b1e375d805d02af19a6aaba0248e7e5ec07a828636cb70cf300eb4cffc80785c95294180488528b615b0511d1cff711349c56453108004ca4fd01517e33f57ca669833a8f9948096ec102f6495c2b7e91ca3d828c9a9fe637cdd6ad5e41f5c3ee1000f786b51871441c0eb4309e63544c2548c3704085e78ba6ddaa1eb99e4c381f5da6117bd6bc705da3d87d41d0cb82e10ca5377b164b3e839cb1b32e7b5ef365b80528d24d79627eb150e5654a783fb1d8a2c24cedb423e3c3d3339d0b66f71835df1c47dc032957f9c804cad623d15913af41b4a73fb3fed1294ec5fe360a309cd15ed496ce5b3183c7d89de7c8b29170595c026a572772ad7dde494d5f6efa6610dc5b7af943285fcefafe125be56a3c4fb6f26662aa86960f1114381df10e743ac3ca84aa30cf74e925f70f289f822571fd5d5eb7ec71595cf6b7ac3ecb8078d5557dea500aa8e723f7eb2b1d69c9dc0313f658f8cd63c664688ccaccf664630ad6262d74bc41e51137d894c09ef54d0506ddbcd53098970fcf7928ebd8826d2b0c56c5b924a965993d67bfd58e03096b14770f6b47e3181e5426012b6828b143e3a2347d9c10c82582a4b2b98f43065631923d5282d6b13c1e42bee84fba2ba88e51f9aaa07e6f3947c11159814ecd95f5dc44f5a2388ec4dba70a1bbde48c1029e3f4e31a62809fcd659590c9a3dfde352456956b70d60d3626df4b8b1358eff1e28c19a155ded6c8b5188eb7b080401454275ee0fe53dc44de74019320053885825f6fef0205a34c84d392acf108841526760e52d31f4f7e3e755f2a529dd6cecaa7b0200a092f69560266f48432f18fabbf7c622e6a666a2d750c076ee75501c4ff483800d5f47824c1f47b29b551e2b29f98e717d1cfd67d76adbe9af09df202161ae0d76a4e0aa6cb9c49a1a1ddaf0df740dd5fa5b69ba179533eb9f70231ef84cb589209c3d9d0aacc2d47b087e7e085818b6e86a61947fc4223f547d202c65e81c59a66aff255e535f0ee55f9a46bae7a226a743d6fa933f4f7c61f715042a6103e4597fe352885cb2dde572a6e4f9965a7d04ba7402362721ae388ec4eb232579db15c1918c3db0f73c2207d63fa7098a39af648531c817641b74c9caba80d0d1338c3d9b8f16465b0e5565d78c5228733a6da778226fafe570559d26ad125eb10ecc32993444754606c0c77edbaae16f38c55ba0d0343fd1d8b93de3d4c6d80c034a35a3d0416efaf589da9688fd609f5c142190fd63c532a23285a297ddee75f021bd70bc40c34c367429a945f3222124fa24bc5f783a43845d3d0849627b4ba64025ec7b21f425dc6165e27d6533b5e6ee17c977df1a57b7f40ae6c8f9b10a3195e00ecf2cbb1df255347852265ab5e622f65b077ad5c86d3d3d63f3de0e7673dd4c8656146b01aa4cfc0982c5f6d35fabfd2631c0d00cbd2ff9563ee1f616ee4616925b8e2854b091fee85b8668d247a360d1bce5868701a876ef787d4a12386e359f1c4f27ee24beb69b53b21f982216c4d1d9b5ac03e5346eb080711119465ad7227e9738e5b1424175de76597ae3921acae91f557695d939a13a98f5244f7855f88e49216b6b291cdc3a3d7dba91bbdf3c69f456622ffa837450c0a3efebd3750b4bedbe589587b6033993da468f4fd7db88a3b8561e7a25a79b3529326c71c0b81795366d6f03107d7a253eea87a967a7d8ab4d56e8375976723afd50b196717138c02493e12431b08e088859027ca5b3ceed5598c155507148128442546c52e4485964830428d9d597f88bf1807cedc6b0f9aebad5fb821b11db72726eea36ae359cd0385a8291c854a45452784c23c8b698af18c1eed78a6b2a7b43773d18754358a29f4604b9e911e1e45a5320f7c4144d19ffbb7ab1a07b2f270d321a046785a3932155d80a9efda9cbcca073729ff84a6954fb169fdda875edfa92dd75174156a4a44da64144b86aecb6a3e113d8192c01ac99d07cd933c35c64857a4e8a8bf663c85ecb88df375aae3929d61f180fd9cbe95bf33a628675364f57bcaf3e5169edee4d088fb5be1f85d5c4d2947ad5d9f85f03920c9eaa73ce2114be9321d54ee89a300711b1d7733b9444f8c48a8f60878728fed21490576f71f1bc2040b1058bed74864496fd83457a98a07fd4a596d06e8ca6d38e8bcfaf62f540470621e50bae96c73b15bf569bbda390bd4e88bac69a137e16ab988353f648ccf590bb1589fe13a25589fbd53bf1af6cec7de52659247c7098850c9922bb696af6ee1c77063f8eb0cfa44eb7ee3e4b414afaa05973bc58ebec6bf61bd72c0b7d950a05c944332471113ce85427d74d16268ba5201e8c4361e7096eb702bb99f8105315f81c471f7005d5ac9fa0857604910c93943e57c606c1bf3cb08f30e201d7dd47fd6996a6fa6c93eaab63db5929088757ebf4b4357e488db54ead04f33df8027e7fbccb7c01a49f6fbac80a398c45217646510900fa89c68e425288a0400bae518bc710e363b285cf9ab3ece66c1137016ae4748e1afd5ad062ae9da232de7d8a3429bd4e82ee80b9b70f35430d68ccfbba61d73b12d421f7614d9bda05580290e964658a6aa00d2f4f130ad0481c4fb2c5933b24ba254bcdf901d3185fb5f39c084ca342928cfdb605c98b69b0c853f433f8294ce90fe092f13f36b647a8d7f70841f96d45f3caa9821bd1e9bc3c6e197cc4605602e95b313c6239c0922feee83760c98c77d4a3a1f9dd1aa77ee41aa0420c6c2e7c882a674c8c2775f23b018f2e18e298c554c793bf860ae65cc3195f848048e0ed8b618d05c66d30adef7d9ab8a814aeb8bcda851cc70809f0219685f0162dfde6c6f5734928e1e48e3f4f6c0e3d6e3a51bf4c199133e035b88ddd86b59c0d0eee0e1f4f5a1f6eb02aa1e51c70663c7a67cadc71b6515e5dc062a4f12b8cf4e8c3d1c78a11396c56ba36371989c2213ee51d34ff81e182276acc330acff03868b5413c4dc9d92eb3ce154aa7cd61d21ef2a5986af7961a3f265040d46f604c08197e97e7f356a9fbf6c0943e29dad6b2cedbf067316a3b4bc2f75fd181120624ebc50fe06e700122c08e3c0f56d4c2b1e3917fd7796ca534bfea5d005d315e56854ccdbcdbfd86e6e71a471e717314b8d5c07e3b0abe4b75779f7fe64b16365d6ebdd1ae99745a5c55ae1b493d319684d8086fb337ebcc547ca0ac91d00d645b61a38bcbf8dfd6f96f7382a2dd5d198d97b61aa92aad43b7c9f53cc0962b2420f8d46736cbcedb88c7f145496df6607938370e36abe12f9632eeea79520d97976677682cd05cea5e8193259c5ea69e804b25f271c893d2a5052d74c5aafd5eecf62e18fd6f1bf4a21f2c5adb486314a7a8b0651ee18b06ad8f5668d16424b202aa8ef0623ff2bd087c3b71bae06f8dd1ad7fb3db2af42bc0e26d2a51fd4065e992bae329bd122f4cc86431fa7b71c86def4856be4df028592db0b48cb84f8f0ad36d0e3cbdab0b5e761872e259f416dc3327bb9f4ae07dffdb5a6a606464bac1206598841686066431ad677898b5e045a04bafcce952aa28de50bcf0ceb181d45567b5708e6503e9a90c703811110c26ab77f5921e774dba5113c959fe3eb6803eb983b8b0b77297dfb54ae776451c7196df558afc0cb998f9e124e18847fba8d8a7c3983cef8417eeead095e1814540290f895956f5aadfcfd77fbe8ccdb7ff87e16db7f7e0a240c69b3f2d04099f85e81e14e06083b696e544f88e5665ab77c3fd87bdaa353bf4595d4e4f67b9bdfe702038912195c6f9c842d3c51d41e33db5e921c0828e6691c4014498c06ed0d3204557b250e7df715d40c429bb6f0ee63f440e31d8dc30a25b4b3bcb1cac5a82db27c9e8e712e79d550c6fa0fdb6338732a0dbefd6318f456d7068176fea270095d0e4c584308a7e33f84a674322a4059376f7ca991386c9d4e8204b635591642f8482453f91fd26e349ad6d3799f386867dd17722e9e6c8427384f5ddc747bed0bc26c84681bda9e3044ea07fe367a4f84efe0bb003e1fca73a0e01539db2b185e7139b7504b37e7ad0ea540721e1d43da14c457734178009d443eb3928021825acc84ac2a14f319ca63bf73d04813831a0909cc25119fbeea76706cf67d00a2ce6b38e22ef68b3e06e8a99db5113befd349e271b80255b8042d308104cfce3773cdf492a8f4e51cfd5de1e8cf38e8fc06464662629458bf89e7a164c7a0d65cd6029d40170036b3231774fee903ddd11796aeac03304013d8e910acaada2b83a85d89e68fb9235597cd75d29d0e3b2fab43469c4f6e5fe4f5ba93af99f96e5874fc55592b029d5ed80179d775add8527c49512287c827a692b1c39c1385df9025c6daa03f2e64e4d1d31cae15f2c30c4aa9b393130ee828ee228b4dab4a505a54c1997b3d617e98fcb0b2321a0b39f5bf94802688b894d4541bd6422d243675328b2cb1df5c692ef1b78f8e4e1feab9b990dc61cf09b95946d7c8d67d4a26f13f3458c1ffa0da01ab4ca532f6f9b89ae03cbef4cce2d39e620ef0ed341d48942ce826628f4686604fca978858e39c195fce118d80813c0ca5174b69771a08f028eb7292c1865272498800bd6fbd8e788255ce1daff3e616e0264cc02e31b4b3ebc0bda9acc63a78ff26eb60aea2613fff6efd6c0647483c7155c269b06882e0d76584898aed715997539ef4b5d07cb14179b71a7a5c029a6faa1eebe6c45ed5ddb5a525b6cf4ab36b1cb3d011e69c1bd3cf48177f92410182352d76a325d53881c50797d2cfb59947fc668357a6ba73d75e6e4b612f73c1bdd94b6835cb6fe16f106d91324632e81303957ff8b683b82bf04b219008a9be13349f9efbddefe9be9818f5c4b3f94184c713f2bd5a4c5e9f112a031767274571a9cdad43b147d7aa5bd3f7fe691211b70af316fdb91f66c6c867cc2c8f2b78248315ef15fef21e6adcc9a58a70de8b8838fb2d714b257a6a7b0a9a24df0057854692000f6ea07ae9ef58239c9aaa3f6af8457d6d8be23db2fdb0024dc53963e0074fa335109d6cc13c2790c36807a5366afbc2db00c0844ed6edab57b63a41a5e622ef0890e39308c3a87a47a682318f1eb7c4a140e5bdadb7acac6c968f2940f1043310b6dc0a23b2f27434b3d7cc64d25a2a3129f5e4bdddd269257abc99ab63793279f9157035b8e0e39b35722e1aca876b11054ab9874d16fdccf7998dbe7eae6d7d4688df80fb40e5e17652fbf6627ef93971c4166cfbe2b4ba5e537334542de855f39135960104d4808d1c666342b736e987513448d995fb8c10bf0f291e69361a195c0835e7ff140f5fab39441242d60e9fcf0bac90093b682b4a3458bb465b8de40ea03d73cb4b9ebd83c4455a01c175b85bb60b4bf8bac86a1904996f27a2008e02b670bb62fbb541e1f6b17689056b271459789e6cb5ccb8681d6234dc284817854e0ead524fb722e385bfce0c0b4ae8316425eebfd06ceb1b3c4099691d9fea41f18c37593274ef5cd6e206dbbc61d0179ee06ccd2d1325c62d9292656b2da3c4e3db3bedf302003485279d3278a9385ca6a409e54b624a7ebdc4519958530c1e29b3c6295cd4788009e257304748826d0622d97c868ef8b232b64bb64c36fa7aa4f934222348c9f9aab007aa0ddb1036d2cc99be7aa8cc377755a6ff135de28b29560ea7bfd503c7faf4d1f03ee12737b7aa9da5ba6ee574be852a20aa3b2716f0201ceeced205d510089a4ffc4a13097fa2e4129a13acde94ab281a3f5ab174fe2551d58e5f670a327d9f158bce295777c0471adf0d98e8307b221a2728190333c8bf4b73e5af11dd507865c89a24c2a7b5e13f89bd8f0158e321740745ea1916cef0775c6fcb13ee1dedb726d4a7c83752b89e51d875c3aecaf4ee0723f127b21e95e6500c04e5c4720214f0cc9d67a6bdb6673e4628d550aa147c479c414958c0f694a77e3b2b3ae9c18bafa188bee9f5bd8826b7585d3206f5a74f7d6b37ec40fbd70a073e8353ee32cf9604afef5ba441eb7dcd89d9f787b64ef80990c9958eec99b777a43b9825667418c15ff65ef37790b5ec0a8bd2644a1e7fc344f4a876313db2b0fcae019bea833f8a89edf4a1128266ede7583d2dcf3a02ad2e145d71cd51519995b1c3fff4766382bb925c5dbd4ed707b39debdd3d5a7edb03267046e834f5a1a27382ba34030f1250871b39926ebeed2a31b064069278b6fd78bf689d4e2632809db2005dd428dde13ae86aafe4e324aaee41619f866720ef86dd454b466d9b5e1d883a835a071ba4823ad9292710468fa8cd9447d7808da51c4beff37b3a442be0ca8bbdbfbc7b456c39ff35b04b78f989f7c3f7e08ef2c6c98a829e8d2cfd1c7835e5c2b07e0a444fd85b5b81c5ebb1dca87632e58297aaa37930362c2ea779accc6f3fd5fe5dca651f13a7cc432bbcfdddf5480b5935467ee5cf8e6f6463c0cd1809ec76f9d1a4c80d0e1b468749cb8b8b140136d2de785fcb05774eeecb9db7f42e11328e8fdcd0afa1130c840e5ca571f5e998479d4a8bdc5167d4b9fbda280b1c16dbdbc0b8e2dfaf4b19811a61fed1370efba40ea17c5e106484e7afe7153dac99bf26367a21371d3e5dba82a19aa7a0f2d50f6dd8826b8ec7efd9c63600ef7d4890f2c9607c1339f65eb8a57527cbc75a2df3ae67bcc63aa31f81171961ba6ce05439ad8dd4f9f097be70cb2f2d3d8b419a0afc2645399b101714292d95b5a942b7053b4ae3d57c8889a74e37f9217ec17a43865291adee0a827434c4e6a9e4c219c314e96a1b8d9f5c58cbe05ba249f60136bc560c1046d833696532a717ac89755da2698a3305668c7fc51a047949eb88cece81a52f0f5b47f24474bfc87258c4164e093b22d38adfc671dd48b31127aad8d03535e6ca91723f788c7e8e89be29482aa36ea9a6b4a5649acfe25d4c33849a8f89f68993fa21f1fe892eefce39aee1256353d8bb60b3216ad40aed06a7f6ace51a6b5a27a612f7d5c7fd8c2ec818af764c92904329c8812c76a15c8b571e792d6dcfc5a9bb832740df600b323f7ab44e234d30413da1d1a9ffe3565bed7f49fba3df02daea4d810acddb4021c3f777852a6634e638576162c181218b83938241ecbf9e85c8e2622e5aea38aca6f2577405088768b62809535c53472839e10cf2fceaf2650a6592175acf7b347f6d3d94093cc9c1a64fe1b026c39681cdced8f8773d6c25c3b2c159651a87c7b0412f93aa3845d9776edb5fcc690ca8b3b1596a0e0e4b75191aafbe947e45220c7139dc03bc4bff510b98b1fdbb501079945acce2681cf1219af238cdfa92992117c7a96b43f372c23fd6efe2635ffe60ea45f20163d3eb5c8ccdb17f2f80401cefee9200c9abe44e3072c30c9324b04c20700bdd2e3d40141874b553cd7fba0b205cc32ebfe89a373addefc9555b156b63ff413eb1a23ae7f9586df649ec080b69a6d0e158e5fdbb1d7e0956cac420e97bc4631eedec37e966f01e1e53f1736b90e3a097026e075f902b10c14ef1841d801e9780dc5d8e754221fafaaac3123062c25dfa5f3a3e4fd74d86a89eebe1d3f9a82093294cbbd227e361ab74c539bdb8a381f2f677a295015ea14143acac1e0d9dfa5309e88a9be73ed785662d8e32f4d61cb616d9d28aecf6dc67483f7be47e19bf8f1514d6246727d7498fb79aafd041f482b14144bb3d9b98b527ee76c9a86afa5309e88a9be73ed785662d8e32f4d61cb616d9d28aecf6dc67483f7be47e19113fb4f51fc2021d090f23ee3a4f65d130eeae7e82fcdb4b2056f38c4dee0c3335eb3b56fe858a61d5ee3727151638a0a15f7f3bea649bb77ae8cf016e4fd35fdfa55f4e95f20c2849587d71cd7b94527988bb5d7c125fe176529da8f5ccdd71fcca84a1e7f92cba77c098b520a5ce4ac02b30c75e370f8bc469751bc8aaeffdfcca84a1e7f92cba77c098b520a5ce4ac02b30c75e370f8bc469751bc8aaeffdc1feae3e3e671baa11a37441dbc70d55d65fc267e6e229fe4aae7cf930b2f08afcca84a1e7f92cba77c098b520a5ce4ac02b30c75e370f8bc469751bc8aaeffd52fac33631c6661367d19b7609de2e57ec2a2380269d6239fe3cdcb18bd0c3c3fcca84a1e7f92cba77c098b520a5ce4ac02b30c75e370f8bc469751bc8aaeffde50f8f0806c211cc0381bde68443e031f683c6ca1401f68dc575c2820523d32dd2cc39cae33ee35459b940b40e44544f236fdb75e3ff544c9bcadfc30982a5b76e5b52a43933772f96a0c693b6950442237602342409c4deadf59ee1b31ee2068c1be1946b398d94cf43a3e5418d27f8ae9164dbedfc1045e1b14bc873b875b10017316c6a778fda305c01af884ed6e0aa6cc05634dc09a526fea114cf42712cb51fc105c62abb9422d1e433e00178dfd60b60d302089d348d582756879c4808fcca84a1e7f92cba77c098b520a5ce4ac02b30c75e370f8bc469751bc8aaeffd88297419edcdcd94a7333ed1bfdd04ace5409985fd7772c1b02501b36a52be375f668feec8d5831df7a2355c7885bff42af9a7aec3cf52a5a6a0c172a063854d7efe405cd22e7c2a5bcd1d5f8c150d6f1182fa7d4c462047d3d6d666347ca588713243b52e7ab433c51d06868bd506c86918d9c6deb8a0b1b063d04b9beededb6b193bfc60870f4eafbe8ab5404156a2566e31827c485be937c0b23d383b90d63e69699d0fa2626534f25e50b7baaa2f8be199f0e2df51db742891eef23b1939f0740ac8afb8769004097634bef69e79b82ff2439ccea62ec2d6ca9cd7e363119935983f22edf6e4ee9d1acbffcc641e9dc0cf250ea9fa5421bfd7d128c7f11f841961a849c0dcc9dad6df9bd50bf9640106fae4f39953ac39d10f6adc79c37d3fd4583e77182911082dc554f9ac52c35dfe967bb1f46d645a978f2c9b3576a298ab6b9aa26afcce5b41db13c4fdef1dc8002da88536aa6d5d9f42f355ae78c22bbc8e96daf8159cd4d5352f3e8135f59a2287e6058b4567e66fc23c22bd8d9bfcca84a1e7f92cba77c098b520a5ce4ac02b30c75e370f8bc469751bc8aaeffd6b3c157299e1f0daffac5a34dedd3556387d03dd2e9ad7f52fd5ee0d19c3c6100a93184659ff19b6ca06ae9836487c0919525dd0ca5cb972f5fe1b0de42dc9c111055c9860b082d4e4125b251dd9a986961d97aac0e32aa47d16bfad8dad6b6d4382ae2022c4e664666dc2a3a690d3537bc4af48808325ad14e2b874641afc488a4ca4dbd57b2f52afee7c7ed8402dbe33c2cdec68a3180d4d35b5f06b736c0c287d59a0044444991b0958993b2d61afd05aa3f9b25dc5e23973d401b7319feb700af1431a7a2b9f99ae80355617ea13c6ca9edcd97f3a646c07ea4a567bb31445488cb59b5f54cf47e9dd32dd7d5bb840113a2887efd4f8ed3ad8a7cc2c99a684455389e714c1eb618bd93cfc36d17b27eec8fdaf670791421b614bb375fbd68264013e56ca0614e161bb6f764cd9d4bfff0bb3a591f336027f3d01c83f5f3e23c1d8d3cd23c8213d2deaad6543240bf826685a64232c8a49b4c54d178b6c1102249751f276a62e6399facfb87a28e25b9093f359faaa16a0e50347d05116155bda649c9043175acfe3987d0a1bd817c32d7ad69ff6f990cef74c089decbd50502c36031e5f1e8a06a78901711fcceb0a564fc16eb89af27721cfdbc92ca9c7d0aa2262a8f4dec5de0cb6616560456c3e89eb326c847cf47d244f01b1080bc2b20ccedc13c1666bc19b73c3c4be8db5d9d865e0b6ab4c7a59aaef2ac735b9ca5ad4e2524e170c014178565c37adb833d0a62d20f677fb7320c665542d7712ae1b26acc5378c9dd28c2b829461dab2dc1d4403beb19203e97914837721abeecd38158dae2f46a2b02c08587cd9ab21d81bf961d2117abee7fcbacacb3ef4527141f4a274982efe2d2419e39ee87d45151557b74515573c9d4c1244095038b885f27d3b4bb647d20e24eca4ff927e160d6df3f7bc1af882d99e1eee46ecb5c2710f9daa69161713a4f3a2d2c66187dc3d1eed5946e597a24a242d53c1dbdef28d77edd1eb2c6ee56aa68dd76c72f3f0d66fdd7c3917d3f689a23f2063f68ea515c5dd68a3318370938afba228ce1529fa1f4f8f7e39f9f21e93aed94a7514a31eae8635bd3dde212dc718036618b5869f96fe32b92853444b4e318ce12198e1065b3ea29ba8a18141f2807dbde1d4f2e74a5e061d2c63179040ac38057bf5be85fcca84a1e7f92cba77c098b520a5ce4ac02b30c75e370f8bc469751bc8aaeffd7bc43ff250f0fbb9d1934e4a55e7f1a2f496499c326588428a01b1fd431a2d96b1783f5c8373b4a456ee2a5874f44ec679fbe61441092aa87b1fe8d9b5ead8ef59ce1f7cf89a2dbe684d1308e0d298040711c3d49b0965a9afa2ace3e3575d3fe0ff53a4ef11c94da0a5ef1485a860ee799ddb3398a66542f2d212920ed899464aa5fa2b11229170ee1bc3f17b64ae4d1fd3e9a367ee58875b6fc834c4e96c4b676bcd1f157d8f732651388d868c9beb78dd816b3298c44c27f65a717db8df685b8a64285574bf2cffe5b81b9af361c44185e0c71c5e24004d7acfb92132e35a46eeeba2d5940ad0ea5e63790c5000a6c6ee9e41a11eff36a67c0c185b8560bdfd50cc9107464dd74b235dae68f527c9af2cff38a6b11508fc46f0fffad10a7a81ef3e64de6489f1fa97aa82a97254ab78b2fbf2a3334d0725904fa9eea6d650b532985e45afa6e35cf3197f1c5ca34d9e5b001a7b1212fc88dd108d9f3a6f0b298fd808dbfb949b789f4be8cd881b2304f4e73edd2047b0bea11075b794c6a10fe9d1a34322b1a6691da9825d71694b6f9544343236db09a44d71f883566a3741bd95ff1c11aec128f0f00c9d51b3500b39b21a2be3fd8e3ef13c1132249ab6fcca84a1e7f92cba77c098b520a5ce4ac02b30c75e370f8bc469751bc8aaeffdfcca84a1e7f92cba77c098b520a5ce4ac02b30c75e370f8bc469751bc8aaeffd2ce294fe5011a72e0d5dfcd008190bd866b765359de8f7ef2a207fb9411f05cd4e99a5b51fedaa95e09d9c64967a3aa2bb4a427f08ce9cc6e5fe5c4a0fabf92f09305a48f0a07a06b9b921444b55b6fccd5eea4f8b54942fd821b2b203fb1ab38be8e691c35dd8d876ee9301e5a76bceb5c69e4cf69d4688a1fd1ae14bd7c1db8a5ff98e7a5ba9470473356d9885e5418b7cdfe1f7d75fb37df2ecf744d541af2e590951f656cb5c534aee95490243ed573f26d5fbaa7bb121bd8f65a0b22a510e38f6208282d80af0b7be94e6f90f6a4d0d09584454065265448a5de35044147e69727db0bc4cf39190e43824fae994e28eff856654b14a692a1ae5e03f5a65fcca84a1e7f92cba77c098b520a5ce4ac02b30c75e370f8bc469751bc8aaeffdc8358e0b13114696547c2d1ebe9f503c2ee40b766dd90783663cedafe5af695bc375dce9b316f49b9eeb249dd3e26ff8c48d7649857585bbd92719835740cc2f5922fd976da62a48abd0a26b5977b654df6fd831e27146b3098c32f3dd23307a8655b75d734d02a05e2b2aa3cc3d64645d6a91e5fb8e0422895ef73901a0d4802b31415d38b8b4f6e6dabe104dfd1bd0fc30e2fe20d90dbc908388e21c5e6bff264d42f4c166ebe060f5810718a4ae329b93eafce2cb66bd2449cd2daf300fc73d7e04fec32b651f4a3736bce284aec1f192253aed72f7ae6fd919fa60afe2b19b6f3aaf20746f98407336b9b6cad09e4d20514b2a31562ff55348a297303544fcca84a1e7f92cba77c098b520a5ce4ac02b30c75e370f8bc469751bc8aaeffd736df4a28763a975a671c58436ca864a2a0fc4a8f7635ad5fbaa190de175f1440fc17a4c8c5c08ea927c3ca7e51fbb715a8bafb1330d3c916439c895a799917be3d2e451cafc5599a39eba17e959befe8d7f0e43638f62498ab1bb1d6a96462ce42826c014d8fec0b999924de544c3dfdd6e81888d18cbda111b00f2d49b78340fc524d31930a08b321566b144718581f56972d124daaaf1e86b41575d79c6291d5e797b4d308c792c93912175dff65d0c1bdbaadd166a8a9b9a10f0aabc9ffdbf43a35aa2d606636b97e0d704b8998cdae9cadc5f05957ce36e234a8761f5362ec1168d0effad2c4328e5fec3012d3b00a282db7d4de2cf58de7c02cfd21821430e5ccd5d211526c924a5bafc07c3192a52d83dad02580e6460d0ecac29755d065b78647c1a3218b502436dfca2e57cbe77016af16a6d9df236b856ffe6cadec7dbc03e4d7cf31624663ebbd754a3305b3e87d8511f47b5a1f625a33f11b1725e70aa5f6df13370142c0de9d7d3b00fb6ae40d86264e1ba08d746a833ad3f33c4120ef0093aa0c0e89fbf11c1abf85f424cb844262744bd1d7cdc9eb71edea0e18914084ecfe37909acff9c5bf106975f0adeb4899ed02cc31b7d64abd1734a2eee63e46fd1e26c067b544c875241ff604fef1658c2b478ad250bff800daa8b6ea9db2b06e686b1f5055a7a4044e5e2c6e011a81507036a312d69140f5c5ce62c51555a2d1751c48bbb91d0c68348a563821540ef15c568e968ce9745dd611ffcca84a1e7f92cba77c098b520a5ce4ac02b30c75e370f8bc469751bc8aaeffde377220a15340fca57904701190460f12e40f998c82228dd288edf07b4953599b2fcd1c1ccffb8da14223776fc8d76f2f749055cb96159c123902b1143f692be4e6e9cd7fb1d0318c96df524707e8df1245a941c4b91ad97cce7821412189a0692f714d9415e0ed798ec0e649656e1fab4d8de3a018db5f75f7dcd0f2a5458e34597b6d0db90ad3298b734eb08f26ae210b3e342096cdf832750ca40aa43bda42aa42b94de2f74e27763c2a1f750826a5ca7d3cd82c98909f4447ce58af5ef90c0843575f6d9c63e46b8538a069ab3421afaaf3a05c5c2a2655939432930acf4dd4eaa28893beabed44f0518bbb845df73a6962e1fbfc6df6f4a093834dbd5c6f472d9670d9502690210c8218dccb21ce43f43cc33c211973cdaf596b428805ae1fae8c444996c0429d660aeb8b0ee0efce6794ace592888382ae173b84dab6cbdb028ca7dbdfc4339709ae0621f417af3ab3400e8bab0645dda9b957ce17da1fcca84a1e7f92cba77c098b520a5ce4ac02b30c75e370f8bc469751bc8aaeffd607ff7dc7bdb9a617421fe3b4fe042c2bfe327380b03097032e2451f10353054204088fde98bebaaee55319eb3921fbf723f47ca433e843598fccaa870ee7e94925ee89beca9bae1ab5ee1112b69951979997671d198a2ac6eab3adfe25607692927effae50d54d950324bb7f2d48dc0a4e7d10110a951d068e29468750336bef3b709a30743a027caa304bf71995587f7d52dc90ea7146bea9aeccdc49eca4a689bfe59d26a5f30ee91574f9e039542d487549be76e84f062885e6dcc43614d8657edcd14a3f624a1952a19d43e5b174a193357be556b093926c100851fb9af64f619afaf34050847533e45d528150e7c2a8f37e4018f8c5e1c5d37a263d7873188a79dc1171742fa54a13dddbd38ccd8e5ce573e9bcc0a1ca9fcd8f8529f17cf7ee2b2eb35631f7b0fd0f55e9e4eb8e453daf3cc2705606c30ccbcdacf47bec625a423c76e408ac0d774a2fcc1561a5e2cc7a145feb911ee3db8e99ac9562b0f255dcf9f890b963d0bc26dff9b5fa4128d4d58094e471c4c8fd4fa23edd1abfcca84a1e7f92cba77c098b520a5ce4ac02b30c75e370f8bc469751bc8aaeffdfcca84a1e7f92cba77c098b520a5ce4ac02b30c75e370f8bc469751bc8aaeffd4cd4cb133c794577ebfcb335d4758441a3f004193906a3d4c5a8dbb67c8246f08db49bac7401b3ee457c06ba5a58261611d34fc9e35979d10d170bc6b6c9ff6723c1d8d3cd23c8213d2deaad6543240bf826685a64232c8a49b4c54d178b6c11c1b5d3494bfe65badd08c1d1495b24e8b04ce4e5c958c4614dd52ceffaae65197bac51e3100ea5b9ce9092bba5c4f0a8b286996022c0396bb416a96d16fc8e4ea76864621c50093b2ea3015c5e9c84badab7bb93cf8f96c336920061cba2f9a37e64189e57079a8bb609b365be06a8739e69cc36d884bd5b7664834a2e0aa95881f0c2b5271c54848d5a69ca57d3b1176676269a892834d6abd572e0d9f84fc032fc91e5fe47f34a514233b58689a405a96fd737ba3a65b8157ada4af97cc7f8744364c3c98d390faee36c8195c2879994d3ee8c330c5ed8954ff4a5afa42f5efbd6b012235e7574633d2b6f2c40e336313807287b5662a28f95020d90af0791f79dfccf3541ef7178a3f0daeee39ad7b82fc06daf7cba6b9f95d969b03e1a7c2f4d5433de7dd8077e338c1b7e9f41012a281e6490ab1cc8a7261c1d91509454d2297edc8fcf85df8a606f33a941f56cd10d0c23649aab3132a7a24ac3bab2082bf35e61bb8e35e453e0416957519e0a0693c12b1cd145142f08533776f54bdbcd3fbb4a284eda8cd003d6ce0645fb0d96428fe5751e26a9f53ddf2008261965d09459be9cfbf10a68eb17a8a4984f8c63f99327cbbd5759ef9f830df571c4d5d94ca4a151045a41bf3d58a0dbd2d08a45f548604dd794067692a62698c1db5210b90d6bab84282e5b535e3b891dda68ae58ac808b09eca0492676fc9f0a80aae2f50b61f82cce159a7d2c9dfe482e7e8075927586ac69375ce3c2f80245f9841fd118bf90cf222f96f538d39c8261a08f540065317f753ccfb87de9b258b36adaed4db34c6a499cf9bca2beac98fe61a6347c5e045a4eddca58636360f3a4728c43cdcd80fcc3b26919ff1833c51d3864235fca13e1bc4cda889f56339f3e79f320aa09473ae69b9c068490e60fe1a3be0557d2f6484a483434f9bc071078651c4e3d01bb8da8da08da7cbdd5c7e3cc8ec01cf68df25f2d2b554a695a53070c32ecd1cc7bfe95ff5bddbc0e358352554ad034cd133c5ca868483646708189d64b779c8d3b49be8de099b100db4193ef5edf8547ba7b01a63df44ed5969aa1018ef408f0df02f8afdfc241abc9fd25841817b63f024d249d50488ed09e893ea14b4e730ac2ce63798de50e48e3861904ee75dc4c9cee1d6182233ee9a640b358232f45e569dff080fc2cc9e68d10bde54b54e54c12c21a592fe66283e2750a058c2e976745ff19538e03bc2dfa9a155cf0e95d88e61a503e640713fb9b85e3951ec71e60b596e12fcb10abd578aed2e48851dd021bcd08879c38bde2486bc55727335c573f4cb23662cac8d519ff67659762c9043d56307e2b11c909808497f9731b8640577fc2822ae977df9a548f675798fe25590a810e7f17b2c0240fbefdd8ae77ad17520558cf503c0ce74dc840840ef7264de8fed3b74087a70b336c817b0f6e161be6ecb9960f07c7798991ad9af80d06e27dfd658bd72095cde52d48758d9301a6e1fee4361abd55575ee6cad87e6f311e19f028392765590b9f0ab9aea8425d911045926d08f3f5c5ab8768ac2f5253b7cd9cd32121560de30b2471a50f90befabe938cc81d6f5d00616593fafb6ca681621a59e2576c0b52f9ed341d2a388084fa70b21a748174dd009c2e6a572cefb21fc0458b23735b0c33e6b78edf5f0d78567509e288454689fb180c02c05ed0ba87e7443e531b73148dc18c48ca8c05f974c9c889607d41b9d83373a1dd4ff4124b0fb204398a0d253260e8c6321d406fb5f49027a52d25c6db875c54b41544b3cc1e3bf6f58bbc61d7d05981dfdae182565c700769ac0605695be8a86da27047b3fb0e301a8b9119b1a2c236187fc14e3dcfdf894a9cea85c5cbe40aa36e34450aa009603d12b96d1ac63b728c5d6c099d7f6e06ba3eba50aeaa25018325d643466c066c8712c7e85ad865e936760cc721f13684aebcdd35a5f7fce983b5e0fdbc6af22471e0b33c3a4a40d4abc7847341cf66ef1a8bbf3142a474daf46b9140308661d0026f17472963904e227f5b65fe0e23836dff58ac9a308e1542509cff2b0aa016b9a64e947fae02e1bf3692c74f021551e1dbc869da87678105a5227ffe6d5998fdcd89c782cf97b3b2e942fbcc3dd1cba2bfc7509420aea79983aa6121b17d5c5f8dd3ad652ed1010128dab353b22812ce94f76f8a9b2f37098ea6a2e04295dcfb3abed500b6127684f7dfdc69d1272bf698def50a4e2ca433621dd765f14ef0d78013e299293ed1ce3defb3a05c3dfe2a6ab320d67bb9fbca89e142791574c1f31d036ddffd9cf56d0eed33b5feac8fcef5c79da0adb9ab7b352d203f5241ada9f2890d9471857900f4b4c3ecd52de6319e40cbe9d035cb532e7acaf0a6fc1c9f6fd1b9b5e9e9af03b54b18875f8940779155cb10437630663d239a617441ec857af4502320a08259cb98b58456253135789a0b3a3fefd9f828fc3e1e194c1c50ca34d0f59913318dbbc3c28ad2b0e7d0346d81db468c32df28b74b7152dcc83ecb841c9d7a1f3d9ab750085dc1f79797d60260b45786d553b1b68331cdc8a5da20cffed84066d575a225bacd76f3b72fb86c29d8d85b0716ecc6ab4a938bf5aa1cd287721403d92a52845613a6d2860499511aa25946fb4b87aec1d1f804a3b209a152f8177480b03a9fcf3f975cf4b061bc9317127dc20f6d84874ce3d92463f8e1b31ed141f0b98747b7b734b2f301300e7f0879de46a2a44b373b3f9d3e10aa361629f525b6c52d7afdefea7962126675fc640762474f966ab107f5981255dec9f243d760939cb17c3c963f702e17cc38ae5fa65438a35b961c2b4c8e425a730b79f1a4e4ef8c70ac051f33e91319c904573990265d436ca1a518b2eab0c8f402e272e088e6ebfb3197958da907a9b5a6f7a1df3ba3bebd75b562ce744e319818b18fd2c366f90d92e1af2d046284b52130135d40e1aedc987c46c9fe60d31b2abbbb000e26d5990e763b1e3f57017d5c644e5db01d0c6630b704d9ed277ff0248e51fb92abcd9663978387e0dda4ae9bc8b4f927b859128a796aa11c3b808747db678310d63b7d7f3e3f2964dd90cdbaaaedbc7e8dd69127ea9d97ce1a1b3d99400c5937e137dfc1c1c694cbcc786e885dd55f6760ea993d2a2957ccece1dd289672f95acb97092bb8aeae7765ec7c05a6fa4a3e552b227c91f3123b517ee133e523c64d5bec5b22dc1c6841ef4a3c5028e5b9e4f681317448dea1b03c502a101d56522d7f14cdd893df658113d98de262c77d7503d62bb633076442c75bcf0b5fd9318570a7eb09a4b60e2a55b354e14c98e6bbf4a057194b3ad3c32cff97e1473429643cfdfdde40ec57d4099ab1d07930b5d405755c48127004999d03b2ead5cf67a12e951b9a49844fae82c65c0da17d57568901a57ef6afb2b241de730aacb8151a35e711deb88c94bc824f8f1860e42dd103accac55c835e6ced576e7080b2a87e38686b66a916fceddcab9b358d77aff9fd9761ebd7462210d68792f896ccbab45bca2fbe911c14a3871faa789eceef404f2993565dd1d667bb42f027e5506db8bec3420045f55c4584acb0605bd963f8e3cf176287f7a58a593b8809928abd66092e49b763afc39ec648bb026819241d9f1ab677152a9a51a7acb44b8a8eef13c4aeac17a9753bad6582b19b7f73858eff150e3063e99c4d5b4d2b18c4089d5ff81fba2a89474631bfe1279e6f427550fce99842d4103591971739b4f49c59090c287562e5604c0553358f347d8ba5aa421b8a00aa602b46f1b8b9f8f1ab2c2d21cfad44c4748ce56038f5eacf8f105178e80611325b2d8e0b71c16a7821165c533a35ee8d96163106fbb58f6291e4af9e22bd4507aa02945bba5edfb804e478d0470a15fd90121bbb0ca421953d45899b6810f2de42cd0e7f7c57626cfd1cf3b6c2b1bc03f9756bc64e3bf6ee6d4118010f67a18f0d1a2b9996bf07602a6a955da0d548a535fe7a809078bc35470fcc1382da71ef052c8f27ecf14ab0612784afeb17f00ed3017c7b1ca96a768690e9c58d0a6ef126713d2a7dada35b9f9de4cecc71c8f68467aaba42c89f2bd28e316799f8192a49b99eaf89fdf7ef53886a69af3444b0bc06ebe89ef5b0c3f7c4414a88632a56906d1592153382d4c8900f959658bcab863f9ff5a46ace13246ba51a26df84a168215616ebb403a7be0259b9c16b518f07ede9a7abc79462c89285b02dad6a19bc922fb3f08e131112deb7529a3de02dca3744af0f6aff3cfe5af514353688e4d5290e946d440724488d7395a271263627f76d52c7c99a6cc466dd8b24c9b3267c0553ad49698144b47872003dc6cc22e8905799cfe53ba0977b263083ae778a9a7f58a33ed4107ae47bdebf204abd3b712e636f7654788313a439dafd8cb6238bce096686e0002bb966803c5882ae2541a94d134bbbff6fe07cc4444285f32a55e29d3c7492249b9de0c2a27e749548213a074344a160684f569d2e88e903a73f08af234ecd244489248d4d8ee905d68680167251308293298a8f7abbab748bc2b115b9b0f63cd4078351463eecfbcf8e5d0fffab09cfaf4bd3d976c276e5e44604fd7a5177a604bf5610288df377b1165aae37c25bcf4c66fbfbbbf8ff225ba1acdb3f900c9b8a03bb77153bb69dd9093837357ae34730103c487c79f9c92f69999213bcf4b285afaa1add405b81e77a33b8bf99a1c2acbd116ec069cd89bf241016946a92fb711d4e035666bbd9f05bea965f51b9f1bc315aacb1a3626c60423b9e63236eb4a6ed7cb591f48856c68ee431262cf0d2ba92dc9d4980d5d952486d467001b2d850301b84c4555dc83d960450b5daf55d21ea59e1f0b0cdf4dda40c53cdb950f4009c61f92e6f0963ea0cd7641fcf619749aaf0ecb85a69aea973ee2244ed93881fde61abf60c58487cf1406fe723145c7d414935322b4544f5ce55353806a03273e325e21645a691cb6d5532962357c4e7e5453b61b9f644997c39a06e7b0a6c756210e61d17652de129091d5b52695659bc4cbe30c3a87f833bb3275d26d7d65cc1bedd5e9c5d55e041c0686896cdcf67f4cffd82fcb43d95d2307b95076952440ac7796650f154c0296fdc67c79bea1a61e74220c7a71a6f0d1a5826a35ba400129395758f8038eea18e48d8ca8bdce7a0bb410a5c402cfd4bac5da65c3c2f7e71294af1b7a19291d1baaa6f283c841f5e9b691d92cedd087ffca107f206c9675b70591106e479cc8eee81708b114e53227cacbb6ff511a01094e43082ad5f2459d17e10172c8bba0c9bdef584b568c964f9cda3cdb66bbb252f4a6e4b028b4c23ad767118bdf9c446c68f2fb856cbf2638123317ca70b73482e5c81441c764bcb5e88c2b90081c7a80646df9e7043aa7b63dd3405c964260eea4e6cbfbb166a5c0ee71572d4c0a9d9f5795fe96b5fa3788a983c6cc5c7c5b7b3cfa94cd35c5891558f26b9527ddd83be92d92c878e7b3e162f6888748482146669f1e1ed767d130eb23cc551e154aad4d1bea1d4361344bd92a5b6e6e21f96f1ed1c28f3c1a4bcf4060a69c345f5462523e5732e8b2e79fa4b43058c3f052256374959c3509ccb32c704f52e890c0a8c92c3dd77370541bace69f385e013e002caf06467656b038144a2f2ea2b6d6b731f59eebdf2cfc8142f0e236d34ca300f40c58b2337ea9412f4rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootkafka-2.1.0-bp153.2.6.1.src.rpmkafka-sourcekafka-source(ppc-64)@@@    /bin/bash/bin/sh/usr/bin/envrpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.0.4-14.6.0-14.0-15.2-14.14.3aNa*@^@^@]M@]X]d@\4\4[i[4[3|@[3|@['ZX:@X@Xn5@Jan Zerebecki Jan Zerebecki Michał Rostecki Michał Rostecki Michał Rostecki Michał Rostecki Michał Rostecki Thomas Bechtold Thomas Bechtold johannes.grassler@suse.comjohannes.grassler@suse.comjohannes.grassler@suse.comjohannes.grassler@suse.comjodavis@suse.comtbechtold@suse.comsjamgade@suse.comjohannes.grassler@suse.comjohannes.grassler@suse.com- Rebuild with kafka-kit change to Remove JDBCAppender, JMSSink, chainsaw from log4j jars during build to prevent bsc#1194842, CVE-2022-23302, bsc#1194843, CVE-2022-23305, bsc#1194844, CVE-2022-23307- Rebuild with kafka-kit change to Remove JMSAppender from log4j jars during build to prevent bsc#1193662, CVE-2021-4104- Remove binary packages, leave only the source package. The only purpose of this package is to provide Kafka protobuf definitions for envoy-proxy. The binary had no real users in openSUSE and was blocking aarch64 builds of envoy-proxy. - Remove patches which are not needed anymore: * rotate-gc-log.patch * lock-down-jmxremote.patch- Do not exlude to x86_64.- Remove condition for SLE 12, as it is not supported anymore. - Own the side-docs directory unconditionally - SLE 15 also needs that declaration.- Fetch sources from Github, since the tarball is not available on eu-apache.org anymore.- Add source package - envoy-proxy needs it for Kafka protobuf files.- Mark log4j.properties config file with "noreplace". Otherwise, adjustments to the config file will be overwritten during a package update.- update to 2.1.0: - Overloaded StreamsBuilder Build Method to Accept java.util.Properties - Add Codec for ZStandard Compression - Add UUID Serde - Introduce delivery.timeout.ms producer config (KIP-91) - Avoid redundant requests to zookeeper when reassign topic partition - DNS alias support for secured connections - Lookup indices may cause unnecessary page fault - Streams does not warn about missing input topics, but hangs - Move check for super user in SimpleAclProvider before ACL evaluation - Support casting values with bytes schema to string - Make max.connections.per.ip.overrides a dynamic config - Speed up event processing on the controller - Reduce Kafka Streams Footprint - Kafka clients should try to use multiple DNS resolved IP addresses if the first one fails - Zombie replicas must be fenced - ConsumerGroupCommand should use new AdminClient - Kafka Connect - Plugins class should have a constructor that can take in parent ClassLoader - Consolidate ExtendedSerializer/Serializer and ExtendedDeserializer/Deserializer - Reduce NPath exceptions in Connect - Add mechanism to delay response to failed client authentication - Make Streams Window retention time strict - Export Admin Client metrics through Stream Threads - Remove caching wrapper stores if cache-size is configured to zero bytes - Document read-write lock usage of caching enabled stores - Mute logger for reflections.org at the warn level in system tests - Reduction the contention between metadata update and metadata read operation - Session Window store should set topic policy `compact,cleanup` - Allow AclCommand to use AdminClient API - Reduce number of rebalance for large consumer groups after a topic is created - Update release script to generate announcement email text - Allow kafka-reassign-partitions.sh and kafka-log-dirs.sh to take admin client property file - replica should be in-sync if its LEO equals leader's LEO - KTable Reduce should check for invalid conditions - Add support for Custom SASL extensions in OAuth authentication - Enhance KafkaStreams start method javadoc - Make rate & total metrics documentation consistent - Add system test for log compaction - MM should handle timeouts in commitSync - Improve LogCleaner behavior on error - KIP-328: Add Window Grace Period (and deprecate Window Retention) - Initial Kafka support for Java 11 - Fix MetricsTest test flakiness - KStream.merge is not documented - Migrate Streams API to Duration instead of longMs times - replaceSegments() should not call asyncDeleteSegment() for segments which have been removed from segments list - Streams should be more fencing-sensitive during task suspension under EOS - StopReplicaRequest should attempt to remove future replica for the partition only if future replica exists - Let KStream.print() to flush on each printed line - Improve error message when trying to produce message without key for compacted topic - Allow OffsetsForLeaderEpoch requests with topic describe ACL (KIP-320) - Add fencing to replication protocol (KIP-320) - KIP-365: Materialized, Serialized, Joined, Consumed and Produced with implicit Serde - FunctionConversions in Streams-Scala should be private - Naming Join and Grouping Repartition Topics - Do not fail broker on out of range offsets in replica fetcher - Enable dynamic key/truststore update with same filename/password - Improve Transformer interface JavaDoc - Store leader epoch in offset commit metadata - Allow LogCleanerManager.resumeCleaning() to be used concurrently - Use lazy allocation for SslTransportLayer buffers - Serde Inheritance in Streams DSL - print the actual cluster bootstrap address on authentication failures - Improve Streams close timeout semantics - ConnectStandaloneFileTest system tests do not pass - Replace AdminUtils.createOrUpdateTopicPartitionAssignmentPathInZK with TestUtils.createTopic in unit tests - Acls for PrincipalType User are case sensitive - Stream timestamp computation needs some further thoughts - Committed offsets should not be deleted if a consumer is still active (KIP-211) - ConcurrentModificationException when iterating over Kafka Metrics - Fix findbugs warning about OffsetStorageWriter#currentFlushId - Infinite loop if all input topics are unknown at startup - KafkaMetricsConfig properties and description notably missing from documentation - KafkaProducer.send() blocks and generates TimeoutException if topic name has illegal char - Inconsistency in consumer group related ACLs - kafka-acls command should be able to list per principal - No response when deleting topics and delete.topic.enable=false - Give client MetricsReporter auto-generated client.id - IllegalArgumentException in RocksDB when RocksDBException being generated - OOM as the result of creation of 5k topics - KafkaLog4jAppender deadlocks when logging from producer network thread - Kafka Streams hangs when not able to access internal topics - Documentation about "exactly_once" doesn't mention "transaction.state.log.min.isr" - Fetcher.getTopicMetadata() should return all partitions for each requested topic - Follower should not send OffsetForLeaderEpoch for undefined leader epochs - Extend `TopologyDescription.Sink` to return `TopicNameExtractor` - Connect Rest Extension Plugin issue with Class Loader - Kafka Connect API module depends on Jersey - Connect isolation whitelist does not include new primitive converters (KIP-305) - kafka-consumer-groups.sh NullPointerException describing round robin or sticky assignors - Connect isolation whitelist does not include SimpleHeaderConverter - Connect's new numeric converters should be in a different package - ConnectSchema#equals() broken for array-typed default values - ConfigTransformer doesn't handle null values - Kafka Streams may drop rocksb window segments before they expire - WindowStoreBuilder incorrectly initializes CachingWindowStore - VerifiableProducer does not work properly with --message-create-time argument - Use bulkloading for RocksDBSegmentedBytesStore during init - Intermittent test failure with GSSAPI authentication failure - Lagging high watermark can lead to committed data loss after ISR expansion - KafkaLog4jAppender - Appender exceptions are propagated to caller - kafka-consumer-group doesn't describe existing group - Kafka Streams doesn't properly balance partition assignment - Duplicates when searching kafka stream state store with caching - Follower should truncate after every leader epoch change - In testHWCheckpointWithFailuresSingleLogSegment, wait until server1 has joined the ISR before shutting down server2 - State-store can desynchronise with changelog - Remove heartbeat delayed operation for those removed consumers at the end of each rebalance - Exception while running kafka-acls.sh from 1.0 env on target Kafka env with 1.1.1 - Kafka Connect ConfigProvider not invoked before validation - -total metrics in Streams are incorrect - Externalized secrets are revealed in task configuration - A link to Apache BookKeeper project is broken - Kafka-Streams-Scala DSL transform shares transformer instance - Timing issue in SimpleAclAuthorizer with concurrent create/update - Request and response total metrics record bytes instead of request count - ConcurrentModificationException in FetchSessionHandler in heartbeat thread - Producer getting fenced may cause Streams to shut down - Loading offsets and group metadata hangs with large group metadata records - Set open ACL permissions for old consumer znode path - Transient failure in SslSelectorTest.testCloseConnectionInClosingState - KTable to KTable join invocation does not resolve in Scala DSL - Sender should reset next batch expiry time between poll loops - Use of filter method in KTable.scala may result in StackOverflowError - Fix race condition between log cleaner thread and log retention thread when topic cleanup policy is updated - NPE due to lack of SASLExtensions in SASL/OAUTHBEARER - Protocol changes for KIP-320 - Wrong error code returned for OffsetsForLeaderEpoch from non-replica - Connect logs 'this' for anonymous inner classes - Fix IdlePercent and NetworkProcessorAvgIdlePercent metric calculation - topic level segment.bytes and segment.ms not taking effect immediately - Retry when possible in AdminClient.listConsumerGroups - send.buffer.bytes should be allowed to set -1 in KafkaStreams - Streams Scala wrapper should not cache serdes - An equal sign in a property value causes the broker to fail - Compacted topic segments that precede the log start offset are not cleaned up - Offset commit failure after upgrading brokers past KIP-211/KAFKA-4682 - Validate topic configs prior to topic creation - OffsetsForLeaderEpoch may incorrectly respond with undefined epoch causing truncation to HW - DeadLetterQueueReporter throws NPE if transform throws NPE - Enable idle expiry of connections which are never selected - Concurrency bug in updating RequestsPerSec metric - Connect Values converter uses incorrect date format string - Kafka brokers cannot provide OAuth without a token - Fail to shutdown ReplicaManager during broker cleaned shutdown - NoSuchElementException is raised because controlBatch is empty - SchemaProjector is not properly handling Date-based logical types - LeaderAndIsrRequest should be sent to the shutting down broker - Streams should allow headers to be passed to Serializer - Fix test SuppressionDurabilityIntegrationTest.shouldRecoverBufferAfterShutdown() - Flaky test `DyanamicBrokerReconfigurationTest.testTrustStoreAlter` - KafkaAdminClient#describeAcls should handle invalid filters gracefully - common.requests.CreatePartitionsRequest uses clients.admin.NewPartitions - double deallocation of producer batch upon expiration of inflight requests and error response - Flaky test: SslTransportLayerTest.testListenerConfigOverride - Flaky test SaslAuthenticatorFailureDelayTest.testInvalidPasswordSaslPlain - Transactional Ids Left in Pending State by TransactionStateManager During Transactional Id Expiration Are Unusable - [kafka-streams-scala_2.11] Foreach results in StackOverflowError - KafkaConsumer doesn't report records-lag if isolation.level is read_committed - StatefulProcessorNode tries to connect state store to processor before it is added - PushHttpMetricsReporter should not convert metric value to double - Console Consumer - system test fails - System Test Failure - security_test.SecurityTest.test_client_ssl_endpoint_validation_failure - Replace findBugs with spotBugs for Java 9+ support - Enable topic unclean leader election to be enabled without controller change - Rename errors.allowed.max property in Connect to errors.tolerance - Allow replication factor to be set via a configuration property for the Connect DLQ topic - Add headers with error context in messages written to the Connect DeadLetterQueue topic - Support to exclude the internal topics in kafka-topics.sh command - Update 2.0 documentation to reflect changed quota behaviors by KIP-219 - DeadLetterQueue throws a NullPointerException - consider fencing zookeeper updates with controller epoch zkVersion - batch LeaderAndIsr requests during auto preferred leader election - Fix rat and checkstyle plugins configuration for Java 11 support - Upgrade Jacoco for Java 11 support - Fix SSL tests when running with Java 11 - Fix SASL Kerberos tests with Java 11 - Upgrade Jetty for preliminary Java 11 and TLS 1.3 support - Kafka Connect - Plugins class should have a constructor that can take in parent ClassLoader - Update release script to generate announcement email text - Enhance KafkaStreams start method javadoc - replaceSegments() should not call asyncDeleteSegment() for segments which have been removed from segments list - Streams should be more fencing-sensitive during task suspension under EOS - Do not fail broker on out of range offsets in replica fetcher - Use lazy allocation for SslTransportLayer buffers - ConcurrentModificationException when iterating over Kafka Metrics - Cast transformation fails if record schema contains timestamp field - Fetcher.getTopicMetadata() should return all partitions for each requested topic - kafka-consumer-groups.sh NullPointerException describing round robin or sticky assignors - Intermittent test failure with GSSAPI authentication failure - Lagging high watermark can lead to committed data loss after ISR expansion - Kafka Streams doesn't properly balance partition assignment - Duplicates when searching kafka stream state store with caching - Follower should truncate after every leader epoch change - In testHWCheckpointWithFailuresSingleLogSegment, wait until server1 has joined the ISR before shutting down server2 - State-store can desynchronise with changelog - Remove heartbeat delayed operation for those removed consumers at the end of each rebalance - Exception while running kafka-acls.sh from 1.0 env on target Kafka env with 1.1.1 - Kafka Connect ConfigProvider not invoked before validation - Externalized secrets are revealed in task configuration - Kafka-Streams-Scala DSL transform shares transformer instance - Timing issue in SimpleAclAuthorizer with concurrent create/update - Request and response total metrics record bytes instead of request count - ConcurrentModificationException in FetchSessionHandler in heartbeat thread - Producer getting fenced may cause Streams to shut down - Set open ACL permissions for old consumer znode path - Producer should handle COORDINATOR_LOADING error in TxnOffsetCommit - Concurrent DeleteRecords can lead to fatal OutOfSequence error in producer - KTable to KTable join invocation does not resolve in Scala DSL - Use of filter method in KTable.scala may result in StackOverflowError - Connect logs 'this' for anonymous inner classes - Fix IdlePercent and NetworkProcessorAvgIdlePercent metric calculation - Retry when possible in AdminClient.listConsumerGroups - Log cleaner crashes when empty batches are retained with idempotent or transactional producers - Streams Scala wrapper should not cache serdes - OffsetsForLeaderEpoch may incorrectly respond with undefined epoch causing truncation to HW - DeadLetterQueueReporter throws NPE if transform throws NPE - Enable idle expiry of connections which are never selected - Concurrency bug in updating RequestsPerSec metric - Connect Values converter uses incorrect date format string - Fail to shutdown ReplicaManager during broker cleaned shutdown - NoSuchElementException is raised because controlBatch is empty - SchemaProjector is not properly handling Date-based logical types - Transactional Ids Left in Pending State by TransactionStateManager During Transactional Id Expiration Are Unusable - KafkaConsumer doesn't report records-lag if isolation.level is read_committed - DeadLetterQueue throws a NullPointerException - batch LeaderAndIsr requests during auto preferred leader election - Configurable Quota Management (KIP-257) - Add support for Prefixed ACLs - Externalize Secrets for Kafka Connect Configurations - KIP-295 Add Streams Config for Optional Optimization - Avoid long or infinite blocking in the consumer - Offer a --version flag to print the kafka version - Update tools relying on old producer to use new producer. - KIP-237: More Controller Health Metrics - JmxTool should exit out if a provided query matches no values - Adjust default values of log.retention.hours and offsets.retention.minutes - Consumer should not block in poll on coordinator discovery - KIP-86: Configurable SASL callback handlers - Partition re-assignment tool should check types before persisting state in ZooKeeper - Allow dynamic routing of output records - Add a sensor to KafkaStreams to track records that have been dropped due to having a null key - Console Consumer should only poll for up to max messages - Replace uses of old consumer with the new consumer - ReplayLogProducer not using the new Kafka consumer - ConsoleProducer uses deprecated BaseProducer - max.connections.per.ip minimum value to be zero to allow IP address blocking - Support aggregatedJavadoc in Java 9 - Remove Deprecated AdminClient from Streams Resetter Tool - Kafka metrics templates used in document generation should maintain order of tags - Consider moving validation in KafkaConsumer ahead of call to acquireAndEnsureOpen() - Improve the quota throttle communication. - Users forget `--execute` in the offset reset tool - KIP-222: Add "describe consumer groups" and "list consumer groups" to KafkaAdminClient - Postpone normal processing of tasks within a thread until restoration of all tasks have completed - report a metric of the lag between the consumer offset and the start offset of the log - Improve Streams metrics for skipped records - QueryableStateIntegrationTest#queryOnRebalance should accept raw text - Allow timestamp manipulation in Processor API - Add MockProcessorContext to public test-utils - Improving performance of the function ControllerChannelManager.addUpdateMetadataRequestForBrokers - TimeWindows causes unordered calls to windowed aggregation functions - Add API version as a tag for the RequestsPerSec metric - Add toString() method to kafka connect Field class - Update controller to handle changes to unclean.leader.election.enable - Set default retention ms for Streams repartition topics to Long.MAX_VALUE - Enhance ByteStore exceptions with more context information - Add ENDPOINT_NOT_FOUND_ON_LEADER error code for missing listener - Use single-point queries than range queries for windowed aggregation operators - KIP-255: OAuth Authentication via SASL/OAUTHBEARER - Add TimeoutException to KafkaConsumer#position() - Re-write simple benchmark in system tests with JMXTool - Add scripts for DumpLogSegments - RocksDBSegmentedBytesStoreTest does not cover time window serdes - Speed up the processing of TopicDeletionStopReplicaResponseReceived events on the controller - Improve efficiency of KafkaAdminClient.describeTopics() - Add StreamsConfig prefix for different consumers - Improve error message if state store is not found - Implement a Scala wrapper library for Kafka Streams - Segment and Stamped implement Comparable, but don't override equals. - Remove EOS producer config max.in.flight.request.per.connection=1 - Connect deserialization log message should distinguish key from value - The Trogdor coordinator should track task statuses - KIP-277 - Fine Grained ACL for CreateTopics API - org.apache.kafka.clients.admin.Config has broken equals and hashCode method. - Simplify state store recovery - Kafka Connect handling of bad data - Add listener name to AuthenticationContext - responses not logged properly in controller - Broker should load credentials from ZK before requests are allowed - Connect Rest Extension Plugin - Add unit test for ReplicaAlterLogDirsThread - Improve logging when topics aren't known and assignments skipped - Remove deprecated APIs from KIP-120 and KIP-182 in Streams - Add transformValues() method to KTable - KIP-244: Add Record Header support to Kafka Streams Processor API - add producer metrics exporting in KafkaStreams.java - Document that Processor objects can be reused - Add primitive numeric converters to Connect - Update KafkaZkClient debug log - Add documentation for accessing Headers on Kafka Streams Processor API - Use Java AdminClient in DeleteRecordsCommand - Add getter to AbstractStream class to make internalTopologyBuilder accessible outside of package - Add max.block.ms to consumer for default timeout behavior - Kafka run class doesn't exclude test-sources jar - KafkaConsumer.position should wait for assignment metadata - Mute logger for reflections.org at the warn level in system tests - Decrease consumer request timeout to 30s - Make Streams Runtime Error User Friendly in Case of Serialisation exception - AdminClient should handle FindCoordinatorResponse errors - Review the NetworkClient log level used - Kafka consumer can hang when position() is called on a non-existing partition. - Invalid characters in config properties not being validated? - Default ssl.endpoint.identification.algorithm should be https - Consumer.poll() stuck in loop if wrong credentials are supplied - kafka unable to reconnect to zookeeper behind an ELB - Extract WindowedSerde to public APIs - KafkaConsumer.position may hang forever when deleting a topic - invalid client sasl.jaas.config triggers NullPointerException - TopologyTestDriver must handle streams created with patterns - Deprecate and remove internal converter configs - Remove deprecated new-consumer option for tools - Unsafe use of expired sensors - StreamThread.shutdown() need to interrupt the stream threads to break the loop - Check Connector.config() and Transformation.config() returns a valid ConfigDef - Adding checks on "version" field for tools using it - Removed unused parameter ProcessorContext - Windows: Consumers not polling when isolation.level=read_committed - ERROR "SubscriptionInfo - unable to decode subscription data: version=2" when upgrading from 0.10.0.0 to 0.10.2.1 - Issues with protocol version when applying a rolling upgrade to 1.0.0 - Improve sink connector topic regex validation - Log cleaner thread may die on legacy segment containing messages whose offsets are too large - Broken symlink interrupts scanning the plugin path - KafkaConsumer ran into Unknown error fetching data for topic-partition caused by integer overflow in FileLogInputStream - Fix AdminClient error handling when metadata changes - libs directory has duplicate javassist jars - Fast leader fail over can lead to log divergence between leader and follower - NullPointerException on KStream-GlobalKTable leftJoin when KeyValueMapper returns null - Deprecate KafkaStreams constructor taking StreamsConfig parameter - Update ZooKeeper to 3.4.12, Gradle and other minor updates - Prevent misconfiguration of advertised listeners - Inconsistent exception type from KafkaConsumer.position - Remove deprecated metrics in 2.0 - KafkaProducer with transactionId endless waits when bootstrap server is down - Connect: Plugin scan is very slow - New Connect header support doesn't define `converter.type` property correctly - Use actual first offset of messages when rolling log segment for magic v2 - Consumer.poll may not trigger rebalance in time when there is a task migration - “entity_type†not exactly in description of kafka-configs.sh - SourceTask#stop() not called after exception raised in poll() - Connect standalone SASL file source and sink test fails without explanation - ConsumerGroupCommand hangs if even one of the partition is unavailable - if set topic config segment.ms=0 Kafka broker won't be able to start - The controller should be able to handle a partially deleted topic - Use non-zero status code when kafka-configs.sh fails - Fix RoundTripWorkload and make k/v generation configurable - ConfigCommand failing to alter configs - JBOD configured broker should not die if log directory is invalid - Checking hasNext from SegementIterator could throw InvalidStateStoreException - broker failed to handle request due to OOM - Streams integration tests hang during shutdown - GlobalStateManagerImpl should not write offsets of in-memory stores in checkpoint file - ConsumerPerformance resets offsets on every startup - Kafka Connect Header Null Pointer Exception - KTable should use user source topics if possible and not create changelog topic - waitOnState waits for the wrong state instead of the target one - Is Kafka imapcted by critical vulnerqbilty CVE-2018-7489 - Down-conversion fails for records with headers - Transient test failure: SslTransportLayerTest.testNetworkThreadTimeRecorded - TopologyTestDriver error when dealing with stores from GlobalKTable - ConsumerPerformance fails to consume all messages on topics with large number of partitions - kafka-streams Invalid transition attempted from state READY to state ABORTING_TRANSACTION - Scheduler cannot be cancelled from Punctuator - TopologyTestDriver fails when topoloy under test uses EXACTLY_ONCE - Unclean leader election metric no longer working - Intermittent test failure in CustomQuotaCallbackTest - AbstractProcessor created in SimpleBenchmark should call super#init - DescribeConfigs does not return error for non-existent topic - GlobalKTable GlobalStateStore never finishes restoring when consuming aborted messages - Surprising UNKNOWN_TOPIC error for produce/fetch requests to non-replicas - connections-created metric does not behave as expected - DEFAULT_PRODUCTION_EXCEPTION_HANDLER_CLASS_CONFIG is private - Avoid range scans when forwarding values in window store aggregations - Consumer should retry when encountering unknown topic or partition error - log cleaner should handle the case when the size of a message set is larger than the max message size - Race condition between StreamThread and GlobalStreamThread stopping - ResponseMetadata calculates latency incorrectly (and therefore ZooKeeperRequestLatencyMs is incorrect) - Kafka fails to start with Java 10 due to faulty Java version detection - LeaderEpochFileCache.endOffsetFor() should check for UNDEFINED_EPOCH explicitly - NPE when reinitializeStateStores with eos enabled - Concurrency conflicts in SampledStat - KStreams Scala API: incorrect Javadocs and misleading parameter name - Remove completedFetch upon a failed parse if it contains no records. - NPE when querying global state store not in READY state - Controller deadlock following session expiration - Improve error message when connecting processor with a global store - Mirrormaker waits to shut down forever on produce failure with abort.on.send.failure=true - Kafka Streams does not commit transactions if data is produced via wall-clock punctuation - Trogdor documentation points to wrong location for trogdor.sh - Broker uses significant amount of memory during down-conversion - ZkData - Consumers offsets Zookeeper path is not correct - Scala API Wrapper for Streams uses default serializer for table aggregate - In-sync replica delayed during fetch if replica throttle is exceeded - alterReplicaLogDirs() should grab partition lock when accessing log of the future replica - TopologyTestDriver does not allow pre-populating state stores that have change logging - setting invalid timestamp causes Kafka broker restart to fail - AdminClient.deleteRecords() may cause replicas unable to fetch from beginning - Missing Connector Config (errors.deadletterqueue.topic.name) kills Connect Clusters - Connect Rest Extension Plugin issue with Class Loader - Fix defective documentations for KStream/KTable methods - Performance issue upgrading to kafka 1.0.1 or 1.1 - Source KTable checkpoint is not correct - Kafka Streams RocksDB bulk loading config may not be honored with customized RocksDBConfigSetter - super.users doesn't work with custom principals - ReplicaVerificationTool should not use the deprecated SimpleConsumer - Kafka Connect API module depends on Jersey - The TimeUnit is neglected by KakfaConsumer#close(long, TimeUnit) - DelegatingClassLoader creates plugin instance even if its not Versioned - Connect isolation whitelist does not include new primitive converters (KIP-305) - Connect isolation whitelist does not include SimpleHeaderConverter - NPE when creating connector - Kafka Streams Processor API allows you to add sinks and processors without parent - Connect's new numeric converters should be in a different package - ConnectSchema#equals() broken for array-typed default values - "Unexpected resource type GROUP" when describing broker configs using latest admin client - ConnectRestApiTest fails assertion - ConfigTransformer doesn't handle null values - Broker startup could be inefficient when using old message format - Concurrent createTopics calls may throw NodeExistsException - ReplicaFetcher thread may die because of inconsistent log start offset in fetch response - StreamThread does not check for state again after pollRequests() - PushHttpMetricsReporter may deadlock when processing metrics changes - Broker shutdown during SSL handshake may be handled as handshake failure - SASL/OAUTHBEARER client response is missing %x01 separators - getMatchingAcls throws StringIndexOutOfBoundsException for empty resource name - ZooKeeper client times out with localhost due to random choice of ipv4/ipv6 - Error deserializing assignment after rebalance - Remove old Scala consumer and all related code, tests, and tools - Drop support for Java 7 - Don't throw TopologyBuilderException during runtime - Remove deprecated punctuate method - Upgrade jetty library version - Update documentation for SASL/PLAIN and SCRAM to use callbacks - Allow dynamic broker configs to be configured in ZooKeeper before starting broker - Enable dynamic reconfiguration of SSL truststores - Log cleaner fails with transaction markers that are deleted during clean - Incorrect check for keystore/truststore dynamic update - Add authorization tests for custom principal types - AdminClient does not refresh metadata on broker failure - Request handler deadlocks attempting to acquire group metadata lock - Remove old Scala producer and all related code, tests, and tools - Rename errors.allowed.max property in Connect to errors.tolerance - Allow replication factor to be set via a configuration property for the Connect DLQ topic - Add headers with error context in messages written to the Connect DeadLetterQueue topic - Additional authorization test cases - Rewrite KStreamPeekTest at processor level avoiding driver usage - Add unit tests for handling of authentication failures in clients - discardChannel should be released in MockSelector#completeSend - Blocking call such as position(), partitionsFor(), committed() and listTopics() should have a timeout - FAILING TEST: kafka.api.ProducerBounceTest > testBrokerFailure - Add the Message/Record set protocol to the protocol docs - Update GetOffsetShell tool to not rely on old producer. - Improve test coverage of StreamsThread - Improve test coverage of Stores - Add Delegation Token Operations to KafkaAdminClient - Remove duplicate Java Resource class. - Remove duplicate Scala ResourceNameType class - Use JSON for /kafka-acl-extended-changes path - Rename ResourceNameType.ANY to MATCH - Investigate if its possible to drop the ResourceNameType field from Java Resource class. - Add configuration to disable message down-conversion - Postpone normal processing of tasks within a thread until restoration of all tasks have completed - responses not logged properly in controller - Broker should load credentials from ZK before requests are allowed - Update KafkaZkClient debug log - Windows: Consumers not polling when isolation.level=read_committed - ERROR "SubscriptionInfo - unable to decode subscription data: version=2" when upgrading from 0.10.0.0 to 0.10.2.1 - SourceTask#stop() not called after exception raised in poll() - Sink connectors that explicitly 'resume' topic partitions can resume a paused task - GlobalStateManagerImpl should not write offsets of in-memory stores in checkpoint file - Kafka Connect Header Null Pointer Exception - Down-conversion fails for records with headers - TopologyTestDriver error when dealing with stores from GlobalKTable - kafka-streams Invalid transition attempted from state READY to state ABORTING_TRANSACTION - Scheduler cannot be cancelled from Punctuator - TopologyTestDriver fails when topoloy under test uses EXACTLY_ONCE - Unclean leader election metric no longer working - Intermittent test failure in CustomQuotaCallbackTest - GlobalKTable GlobalStateStore never finishes restoring when consuming aborted messages - connections-created metric does not behave as expected - DEFAULT_PRODUCTION_EXCEPTION_HANDLER_CLASS_CONFIG is private - ResponseMetadata calculates latency incorrectly (and therefore ZooKeeperRequestLatencyMs is incorrect) - Kafka fails to start with Java 10 due to faulty Java version detection - LeaderEpochFileCache.endOffsetFor() should check for UNDEFINED_EPOCH explicitly - NPE when reinitializeStateStores with eos enabled - Concurrency conflicts in SampledStat - NPE when querying global state store not in READY state - Controller deadlock following session expiration - Processors created after acceptor started which can cause in a brief refusal to accept connections - Kafka Streams does not commit transactions if data is produced via wall-clock punctuation - Memory leak in org.apache.kafka.streams.processor.internals.StreamThread$StreamsMetricsThreadImpl - In-sync replica delayed during fetch if replica throttle is exceeded - AdminClient.deleteRecords() may cause replicas unable to fetch from beginning - java.lang.ArithmeticException: / by zero - Performance issue upgrading to kafka 1.0.1 or 1.1 - Source KTable checkpoint is not correct - Connect isolation whitelist does not include SimpleHeaderConverter - ConnectSchema#equals() broken for array-typed default values - Concurrent createTopics calls may throw NodeExistsException - ReplicaFetcher thread may die because of inconsistent log start offset in fetch response - PushHttpMetricsReporter may deadlock when processing metrics changes - Log cleaner fails with transaction markers that are deleted during clean - Incorrect check for keystore/truststore dynamic update - Request handler deadlocks attempting to acquire group metadata lock - Add Second Check for End Offset During Restore - Delay initiating the txn on producers until initializeTopology with EOS turned on - Broker should load credentials from ZK before requests are allowed - JsonConverter generates "Mismatching schema" DataException - ERROR "SubscriptionInfo - unable to decode subscription data: version=2" when upgrading from 0.10.0.0 to 0.10.2.1 - RocksDB segments not removed when store is closed causes re-initialization to fail - Streams quickstart pom.xml is missing versions for a bunch of plugins - SourceTask#stop() not called after exception raised in poll() - LogCleanerManager.doneDeleting() should check the partition state before deleting the in progress partition - Sink connectors that explicitly 'resume' topic partitions can resume a paused task - GlobalStateManagerImpl should not write offsets of in-memory stores in checkpoint file - Down-conversion fails for records with headers - kafka-streams Invalid transition attempted from state READY to state ABORTING_TRANSACTION - Scheduler cannot be cancelled from Punctuator - GlobalKTable GlobalStateStore never finishes restoring when consuming aborted messages - LeaderEpochFileCache.endOffsetFor() should check for UNDEFINED_EPOCH explicitly - Kafka Streams does not commit transactions if data is produced via wall-clock punctuation - Memory leak in org.apache.kafka.streams.processor.internals.StreamThread$StreamsMetricsThreadImpl - In-sync replica delayed during fetch if replica throttle is exceeded - AdminClient.deleteRecords() may cause replicas unable to fetch from beginning - Performance issue upgrading to kafka 1.0.1 or 1.1 - Source KTable checkpoint is not correct - ConnectSchema#equals() broken for array-typed default values - ReplicaFetcher thread may die because of inconsistent log start offset in fetch response - Log cleaner fails with transaction markers that are deleted during clean - Request handler deadlocks attempting to acquire group metadata lock - Fix broken links in Dockerfile - Have State Stores Restore Before Initializing Toplogy - Delay initiating the txn on producers until initializeTopology with EOS turned on - Mute logger for reflections.org at the warn level in system tests - KafkaProducer is not joining its IO thread properly - Kafka connect: error with special characters in connector name - ERROR "SubscriptionInfo - unable to decode subscription data: version=2" when upgrading from 0.10.0.0 to 0.10.2.1 - ClassCastException in BigQuery connector - Make loadClass thread-safe for class loaders of Connect plugins - Broken symlink interrupts scanning the plugin path - mBeanName should be removed before returning from JmxReporter#removeAttribute() - RocksDB segments not removed when store is closed causes re-initialization to fail - Enforce layout of dependencies within a Connect plugin to be deterministic - Broker leaks memory and file descriptors after sudden client disconnects - Streams quickstart pom.xml is missing versions for a bunch of plugins - SourceTask#stop() not called after exception raised in poll() - LogCleanerManager.doneDeleting() should check the partition state before deleting the in progress partition - Sink connectors that explicitly 'resume' topic partitions can resume a paused task - GlobalStateManagerImpl should not write offsets of in-memory stores in checkpoint file - kafka-streams Invalid transition attempted from state READY to state ABORTING_TRANSACTION - GlobalKTable GlobalStateStore never finishes restoring when consuming aborted messages - LeaderEpochFileCache.endOffsetFor() should check for UNDEFINED_EPOCH explicitly - Kafka Streams does not commit transactions if data is produced via wall-clock punctuation - Memory leak in org.apache.kafka.streams.processor.internals.StreamThread$StreamsMetricsThreadImpl - Source KTable checkpoint is not correct - ConnectSchema#equals() broken for array-typed default values - Request handler deadlocks attempting to acquire group metadata lock - Transient failure in kafka.api.SaslScramSslEndToEndAuthorizationTest.testTwoConsumersWithDifferentSaslCredentials - Flaky ResetIntegrationTest - Ineffective check of negative value in CompositeReadOnlyKeyValueStore#approximateNumEntries() - Deadlock due to locking of DelayedProduce and group - Streams State Restoration never completes when logging is disabled - Replication Fetcher thread for a partition with no data fails to start - KafkaFuture timeout fails to fire if a narrow race condition is hit - Integer overflow in log cleaner cleanable ratio computation - Kafka Request Handler deadlocks and brings down the cluster. - Scanning plugin.path needs to support relative symlinks - Major performance issue due to excessive logging during leader election - Silent Data Loss in Kafka011 Transactional Producer - Transaction markers are sometimes discarded if txns complete concurrently - High memory usage on controller during partition reassignment - RecordQueue.clear() does not clear MinTimestampTracker's maintained list - GlobalKTable never finishes restoring when consuming transactional messages - Additional failure testing for streams with bouncing brokers - add max_number _of_retries to exponential backoff strategy - Fix taskClass() method name in Connector and flush() signature in SinkTask - Streams should not suspend tasks twice - NullPointerException in client on MetadataRequest - KafkaProducer.flush hangs when NetworkClient.handleCompletedReceives throws exception - Calling KafkaProducer.close() from multiple threads may cause spurious error - Kafka Streams keeps restoring state after shutdown is initiated during startup - streams task gets stuck after re-balance due to LockException - Clients get inconsistent connection states when SASL/SSL connection is marked CONECTED and DISCONNECTED at the same time - LogCleaner stopped due to org.apache.kafka.common.errors.CorruptRecordException - StreamsKafkaClient should not use StreamsConfig.POLL_MS_CONFIG - Refactor kafkatest docker support - bin/kafka-consumer-groups.sh failing to query offsets - Documentation for altering topics - KafkaConsumer: High memory allocation rate when idle - The LastStableOffsetLag metric should be removed when partition is deleted - KafkaConsumer.commitSync throws IllegalStateException: Attempt to retrieve exception from future which hasn't failed - With transformations that mutate the topic-partition committing offsets should to refer to the original topic-partition - Incorrect log size for topics larger than 2 GB - Processor got uncaught exception: NullPointerException - Group loading regression causing stale metadata/offsets cache - Streams should not abort transaction when closing zombie task - System test failure due to timeout starting Jmx tool - KafkaApis.handleWriteTxnMarkerRequest can return UNSUPPORTED_FOR_MESSAGE_FORMAT error on partition emigration - One or more consumers in a consumer-group stop consuming after rebalancing - ducktape kafka service: do not assume Service contains num_nodes - Consumer poll loop over the same record after a CorruptRecordException - Replica fetcher thread crashes due to OffsetOutOfRangeException - Using _DUCKTAPE_OPTIONS has no effect on executing tests - Transient test failure: ResetConsumerGroupOffsetTest.testResetOffsetsToZonedDateTime - Fix AdminClient request timeout handling bug resulting in continual BrokerNotAvailableExceptions - Fix error handling, efficiency issue in AdminClient#describeConfigs - producer missed header information when splitting batches - Auto topic creation causes failure with older clusters - [streams] 'null' values in state stores - Connect WorkerSinkTask out of order offset commit can lead to inconsistent state - KafkaAdminClient thread should be daemon - Partition.makeLeader() should convert HW to OffsetMetadata before becoming the leader - Broker crashes on startup when trying to parse empty snapshot files - Delete topic and re-create topic immediate will delete the new topic's timeindex - org.apache.kafka.streams.state.internals.Segments#segments method returns incorrect results when segments were added out of order - StoreChangeLogReader needs to restore partitions that were added post initialization - KafkaStreams state transitions not correct - Support passing ZK chroot in system tests - Update protocol documentation to mention message format v2 - Distinguish abortable failures in transactional producer - Deletion of tombstones during cleaning should consider idempotent message retention - ListOffset should take LSO into account when searching by timestamp - Add the archetype project along with "write applications" web docs. - KIP-146: Support per-connector/per-task classloaders in Connect - Add Record Headers - Add purgeDataBefore() API in AdminClient - Add KStream.peek(ForeachAction) - Add a tool to Reset Consumer Group Offsets - Add internal leave.group.on.close config to consumer - Add Exactly-Once Semantics to Streams - Implement Transactional Coordinator - Range Scan for Windowed State Stores - Extend wire protocol to allow CRC32C - Cluster collection returning methods should never return null - Add Prompt to kafka-console-producer - Allow users greater access to register custom streams metrics - Exponential backoff for broker reconnect attempts (KIP-144) - Add JMH module for Benchmarks - Split the ProducerBatch and resend when received RecordTooLargeException - Allow per stream/table timestamp extractor - support throttling on request rate - Replication Quota Tests: Ensure ZK updated before tests start - REST configuration not visible in connector properties config files - TopicCommand --describe shows topics marked for deletion as under-replicated and unavailable (KIP-137) - RocksDB checkpoint files lost on kill -9 - Treat null-key records the same way for joins and aggreations - Per listener security setting overrides (KIP-103) - Kafka does not offer kafka-configs.bat on Windows box - Parametrize streams benchmarks to run at scale - Error message from Struct.validate() should include the name of the offending field. - Add application.id to StreamThread name - Improve Streams Reset Tool console output - Add Float serializer, deserializer, serde - Exploit #peek to implement #print() and other methods - The Kafka build should run findbugs - Inner classes which don't need a reference to the outer class should be static - Fix findbugs warnings in kafka-tools - throw NoOffsetForPartitionException once for all assigned partitions from poll - Stream round-robin scheduler is inneficient - Fix several FindBugs warnings in Clients and Connect - SCRAM secret's should be better protected with Zookeeper ACLs - set internal.leave.group.on.close to false in KafkaStreams - Add listener tag to socket-server-metrics.connection-... metrics (KIP-136) - Followups from KIP-101 - We shouldn't pass the underlying exception to RetriableCommitFailedException when an async offset commit fails. - Optionally print out metrics after running the perf tests - ReassignPartitionsCommand should protect against empty replica list assignment - Censor SCRAM config change logging - DumpLogSegments should not open index files with `rw` - Add support for reading PID snapshot files to DumpLogSegments - Improve internal Task APIs - Trunk compatibility tests should test against 0.10.2 - Improve message for Kafka failed startup with non-Kafka data in data.dirs - Controlled shutdown timeout message improvement - reassign-partitions to check if broker of ID exists in cluster - Add option "dry run" to Streams application reset tool - AdminClient: add controller and clusterId methods to DescribeClusterResults - KIP-153: Include only client traffic in BytesOutPerSec metric - Application Reset Tool does not need to seek for internal topics - New Short serializer, deserializer, serde - Change Default unclean.leader.election.enabled from True to False - Sticky Assignor should not cache the calculated assignment (KIP-54 follow-up) - Support ExtendedDeserializer in Kafka Streams - Remove Broker ACL resource type - Request log should log throttle time - Generate javadoc for AdminClient and show configs in documentation - Annoying braces showed on log.error using streams Implement generation/term per leader to reconcile messages correctly - Hold the produce request with ack > 1 in purgatory until replicas' HW has larger than the produce offset (KIP-101) - Delete consumer offsets from kafka once the topic is deleted - Clean up Controller Object on forced Resignation - ConsumerGroupCommand throws GroupCoordinatorNotAvailableException when describing a non-existent group before the offset topic is created - SASL unit tests dont work with IBM JDK - Follower Broker cannot start if offsets are already out of range - Remove deprecated producer configs. - Kafka default -Xloggc settings should include GC log rotation flags - Streams is creating two ProducerRecords for each send via RecordCollector - Broker faills to start after ungraceful shutdown due to non-monotonically incrementing offsets in logs - Log should check the return value of dir.mkdirs() - KIP-115: __consumer_offsets wrong number of replicas at startup - Issue with processing order of consumer properties in console consumer - Exit Strategy: using exceptions instead of inline invocation of exit/halt - Documentation still refers to AsyncProducer and SyncProducer - KIP-151: Connect REST API should expose whether each connector is a source or sink - KTable doesn't work with ProcessorTopologyTestDriver in Kafka 0.10.1.0 - rat license check not running in Jenkins - When using ProcessorTopologyTestDriver, the combination of map and .groupByKey does not produce any result - Set more conservative default values on RocksDB for memory usage - Significant startup delays in KStreams app - Kafka should not require SSL trust store password - When the destination brokers are down or misconfigured in config, Streams should fail fast - Connect Producer and Consumer ignore ssl parameters configured for worker - Annotate integration tests and provide gradle build targets to run subsets of tests - Controller send thread can't stop when broker change listener event trigger for dead brokers - the argument of shell in doc wrong and command parsed error - Kafka Streams allows you to provide strings with illegal characters for internal topic names - gradle-generated core eclipse project has incorrect source folder structure - Refresh consumer metadata more frequently for unknown subscribed topics - KIP-154: Connect should create internal topics - Fix Streams window retention policy - KIP-100 api changes break Java 8 lambda expressions in some cases - Python VerifiableConsumer service has thread-safety bug for event_handlers - Avoid unnecessary task movement across threads during rebalance - OffsetValidationTest fails validation with "Current position greater than the total number of consumed records" - StreamsKafkaClient drops security configs - Fix Transient failure in BrokerApiVersionsCommandTest.checkBrokerApiVersionCommandOutput - Implement remaining KIP-66 SMTs - Fix logic for re-checking if internal topic is ready - connect jars are missing LICENSE/NOTICE files - Timed out waiting for consumption in OffsetValidationTest.test_broker_failure - Clean up of state directories can possibly remove stores that are about to be used by another thread - KafkaConsumer#commitSync should clone its input - Fix deadlock issue during MM shutdown - Remove generic type of class ClientState - Memory leak in RecordAccumulator.append - Streams_bounce test failing occassionally - fix join-time-max and sync-time-max MeasurableStat type - Streams Simple Benchmark MB/sec calculation is not correct for Join operations - SimpleBenchmark test fails for streams - Improve NetworkClient trace logging of request details - Connect WorkerSinkTask is missing checks for NO_TIMESTAMP - org.apache.kafka.clients.producer.KafkaProducerTest#testConstructorFailureCloseResource and Similar Tests are Failing on some Systems (127.0.53.53 Collision Warning) - Implement graceful handling for improperly formed compressed message sets - Kafka client Heartbeat thread use all the cpu. - Failure in kafka/tests/kafkatest/tests/core/security_rolling_upgrade_test.py - KIP-128: Blackbox or pass through converter or ByteArrayConverter for connect - Broker level configuration 'log.segment.bytes' not used when 'segment.bytes' not configured per topic. - ProcessorTopologyTestDriver does not forward extracted timestamps to internal topics - Kafka cannot recover after a disk full - Kafka Streams - unable to add state stores when using wildcard topics on the source - Fix some findbugs warnings in Kafka Java client - Streams State transition ASCII diagrams need fixing and polishing - KafkaConsumer: ConsumerConfig gets logged twice. - docker/run_tests.sh should set up /opt/kafka-dev to be the source directory - SchemaBuilder should be more lax about checking that fields are unset if they are being set to the same value - ReplicaFetchThread may fail to create due to existing metric - ZookeeperLeaderElector not respecting zookeeper.set.acl - Fix some findbugs warnings in Kafka Streams - ProcessorTopologyTestDriver does not work when using .through() - Config validation in Connector plugins need to compare against both canonical and simple class names - NetworkClient should only consider a connection to be fail after attempt to connect - Stream thread getting into deadlock state while trying to get rocksdb lock in retryWithBackoff - SessionStore.fetch(key) is a performance bottleneck - Struct SchemaBuilder should not allow duplicate fields. - Querying window store may return unwanted keys - Kafka Secure Migrator tool doesn't secure all the nodes - Kafka console consumer property is ignored - Kafka Connect does not log connector configuration errors - processstreamwithcachedstatestore and other streams benchmarks fail occasionally - kafka.request.logger TRACE regression - Fix findbugs "default character set in use" warnings - Fix findbugs "format string should use %n rather than \n" in tools - Fix findbugs warnings in kafka-core - Make ProduceRequest thread-safe - Utils#delete should correctly handle I/O errors and symlinks - Remove unused code for reading Shell command stdout and add unit test - Add streams tests with brokers failing - Document that stores must not be closed when Processors are closed - Fix findbugs warnings in Kafka-Connect-API - Add a configurable delay to the initial consumer group rebalance - KStreamsTestDriver fails with NPE when KStream.to() sinks are used - Transformation Key/Value type references should be to class name(), not canonicalName() - Batch resetting offsets in Streams' StoreChangelogReader - Kafka Connect: Offset committing times out before expected - Fix an "unread field" findbugs warning in streams examples - Suppress findbugs warnings about machine-generated code in jmh-benchmarks - remove controller concurrent access to non-threadsafe NetworkClient, Selector, and SSLEngine - Delete the kafka to prefix the name of the keystore and truststore file will be more suitable - kafka-connect: fix findbugs issues in connect/runtime - testReprocessingFromScratch unit test failure - Fix findbugs warnings in kafka-clients - Fix remaining findbugs warnings in Kafka Streams - StreamThread should catch InvalidTopicException - JoinIntegrationTest fails occasionally - Fail the build when findbugs fails - SSL Channel not ready but tcp is established and the server is hung will not sending metadata - running multiple kafka streams instances causes one or more instance to get into file contention - Increase number of Streams producer retries from the default of 0 - InFlightRequests#isEmpty() always returns false - Add FindCoordinatorRequest RPC stub and update InitPidRequest for KIP-98 - NullPointerException while using GlobalKTable in KafkaStreams - Chroot check should be done for each ZkUtils instance - Avoid DNS reverse lookup in security-critical TLS code path - Kafka Streams skipped-records-rate sensor producing nonzero values even when FailOnInvalidTimestamp is used as extractor - Kafka Streams stuck rebalancing after exception thrown in rebalance listener - Defer exception to the next pollOnce() if consumer's fetch position has already increased - PartitionRecords.fetchRecords(...) should defer exception to the next call if iterator has already moved across any valid record - two versions of jackson-annotations-xxx.jar in distribution tgz - Update topic expiry time in Metadata every time the topic metadata is requested - some spelling error in code comment - Kafka Streams SessionStore.findSessions javadoc broken - ThreadCacheTest.cacheOverheadsSmallValues fails intermittently - Replica Deletion Regression from KIP-101 - ProducerPerformanceService failing due to parsing error - Remove KafkaController's incrementControllerEpoch method parameter - Transient test failure SocketServerTest.testMetricCollectionAfterShutdown - Controller Health Metrics (KIP-143) - Flaky ResetIntegrationTest - Windows platform does not offer kafka-broker-api-versions.bat - MinTimestampTracker uses confusing variable names - LZ4 decompression is 4-5x slower than Snappy on small batches / messages - SetSchemaMetadata does not replace the schemas in structs correctly - streams task gets stuck after re-balance due to LockException - KafkaConsumer.close should be idempotent - KafkaAdminClientIntegration test should wait until metadata is propagated to all brokers - CachingSessionStore doesn't fetchPrevious correctly. - SASL tests failing with Could not find a 'KafkaServer' or 'sasl_plaintext.KafkaServer' entry in the JAAS configuration - RocksDb might stall in environments with 1 core only - RocksDbStore#openIterators should be synchronized, since it is accessed from multiple threads - Percentilles are calculated incorrectly - CachingSessionStore doesn't use the default keySerde. - RocksDBSessionStore doesn't use default aggSerde. - KafkaConsumer should not skip a corrupted record after throwing an exception. - IllegalStateException in ensureOpenForRecordAppend - Small JavaDoc fix for AdminClient#describeTopics - Cached Session/Window store may return error on iterator.peekNextKey() - NullPointerException (NPE) in SourceNodeRecordDeserializer.deserialize - Reflections logs excessive warnings when scanning classpaths - Recommended values for Connect transformations contain the wrong class name - Kafka broker fails to start if a topic containing dot in its name is marked for delete but hasn't been deleted during previous uptime - Regression in on-disk log size when using Snappy compression with 0.8.2 log message format - GlobalKTable does not checkpoint offsets after restoring state - Tests which delete singleton metrics break subsequent metrics tests - handleFetchRequest should do down conversion after throttling - kakfa-clients consume 100% CPU with manual partition assignment when network connection is lost - Move ACLs, Config, NodeVersions classes into org.apache.kafka.common - Follow-up improvements for consumer offset reset tool (KIP-122) - kafka-console-consumer: `--value-deserializer` is not working but `--property value.deserializer` does - One StopReplicaRequest will caused two Responses - Do not apply exponential backoff if users have overridden reconnect.backoff.ms - PlainSaslServerFactory should allow a null Map in getMechanismNames - FetchRequest doesn't implement toString - Missing logging information in ReplicaFetcher - Stores not queryable after one thread died - Log cleaning can increase message size and cause cleaner to crash with buffer overflow - MemoryRecords.filterTo can return corrupt data if output buffer is not large enough - AdminClient: add close with timeout, fix some timeout bugs - Connection Lose during Kafka Kerberos Renewal process - Replica list in the metadata cache on the broker may have different order from zookeeper - rocksdb.config.setter must be a class instance, not a class name - ListGroup requires Describe on Cluster, but the command-line AclCommand tool does not allow this to be set - There is a Misspell in ResetIntegrationTest - Change message.timestamp.difference.max.ms back to Long.MaxValue - Some socket connections not closed after restart of Kafka Streams - KafkaConsumer occasionally hits IllegalStateException - Modify Unstable annotations in Streams API - baseTimestamp should always have a create timestamp - MirrorMaker not preserving headers - Down-converted uncompressed batches should respect fetch offset - Add EOS integration tests for Streams API - Add EOS system tests for Streams API - Kafka Streams skipped-records-rate sensor produces nonzero values when the timestamps are valid - ConsoleConsumer prints out object addresses rather than what is expected - AdminClient gets "server returned information about unknown correlation ID" when communicating with older brokers - Transactions: Concurrent transactional consumer loses messages when there are broker bounces - Transient test failure: KafkaConsumerTest.testChangingRegexSubscription - Log recovery can fail if topic names contain one of the index suffixes - Transactional Producer allows batches to expire and commits transactions regardless - KafkaAdminClient#timeoutCallsInFlight does not work as expected - Distributed Herder Deadlocks on Shutdown - Add more AdminClient checks to ClientCompatibilityTest - Log cleaner fails due to large offset in segment file - Console consumer offset commit regression - TransactionCoordinator doesn't complete transition to PrepareCommit state - TransactionCoordinator doesn't complete transition to CompleteCommit - ZkUtils.getAllPartitions() may fail if a topic is marked for deletion - Multiple produce request failures causes invalid state transition in TransactionManager - Transient test failure: SaslPlainSslEndToEndAuthorizationTest.testNoProduceWithDescribeAcl - Streams producer `client.id` are not unique for EOS - TimestampConverter's "type" config conflicts with the basic Transformation "type" config - Flaky test TransactionsTest.testReadCommittedConsumerShouldNotSeeUndecidedData - Scripts to startup Connect in system tests have too short a timeout - Update java docs for consumer and producer to be up to date for EOS - Producer fails with NPE if compressed V0 or V1 record is larger than batch size - MemoryRecordsBuilder.hasRoomfor doesn't take into account the headers while computing available space - Controller incorrectly logs rack information when new brokers are added - Connector validate REST endpoint returning duplicate entries in "groups" - Connector config validation REST API endpoint not including fields for transformations - TransactionalProducer sleeps unnecessarily long during back to back transactions - org.apache.kafka logging should go to server.log - The ProducerPerformance tool should support transactions - Connect validation API stops returning recommendations for some fields after the right sequence of requests - Remove deprecated APIs for 0.11.0.0 - Drop support for Scala 2.10 (KIP-119) - Remove unstable markers from Connect APIs - KTable materialization and improved semantics - Transient failure in ZooKeeperSecurityUpgradeTest.test_zk_security_upgrade with security_protocol = SASL_PLAINTEXT, SSL - Test with two SASL_SSL listeners with different JAAS contexts - Implement KIP-98 transactional methods in the MockProducer - Add cases for concurrent transactional reads and writes in system tests - SyncProducerTest.testReachableServer has become flaky - KIP-54: Add rebalance with a minimal number of reassignments to server-defined strategy list - ProducerSendTest.testCloseWithZeroTimeoutFromCallerThread Transient Failure - Transient Failure in kafka.api.PlaintextProducerSendTest.testFlush - Mark the old Scala consumer and related classes as deprecated - Create Java Admin Client - Implement KIP-140 RPCs and APIs for creating, altering, and listing ACLs - Describe/Alter Configs protocol, server and client (KIP-133) - Transient test failure: kafka.api.SslProducerSendTest.testSendNonCompressedMessageWithCreateTime - Unstable test KStreamRepartitionJoinTest.shouldCorrectlyRepartitionOnJoinOperations - Transient test failure: ConsumerBounceTest.testConsumptionWithBrokerFailures - Transient failure in QueryableStateIntegrationTest.queryOnRebalance - Address 2.12 eta-expansion warnings - Update release process so that Scala 2.12 artifacts are published - Run tests on travis-ci using docker - Transient failure in org.apache.kafka.clients.consumer.KafkaConsumerTest.testWakeupWithFetchDataAvailable - QueryableStateIntegrationTest.shouldNotMakeStoreAvailableUntilAllStoresAvailable is occasionally failing on jenkins - Improve test coverage of ProcessorStateManager - Improve test coverage of StreamsPartitionAssignor - Improve test coverage of ProcessorTopology - Improve test coverage AbstractProcessorContext - Improve test coverage of GlobalStreamThread - Improve test coverage StreamTask - Improve test coverage GlobalStateManagerImpl - Improve test coverage KStreamBuilder - Improve test coverage MemoryLRUCache - Improve test coverage of CompositeReadOnlyWindowStore - Improve test coverage KafkaStreams - Improve test coverage TopologyBuilder - Transient test failure: ConsumerCoordinatorTest.testHeartbeatThreadClose - Message format changes for idempotent/transactional producer - Implement idempotent producer - Implement transactional clients - Transient test failure: org.apache.kafka.streams.integration.JoinIntegrationTest.shouldCountClicksPerRegion (again) - Consider disabling record level CRC checks for message format V2 - Failure in kafka.admin.DescribeConsumerGroupTest.testDescribeExistingGroupWithNoMembersWithNewConsumer - Implementation and unit tests for request handler thread utilization quota - Add network handler thread utilization to request quota calculation - Add documentation for request quotas - Transient failure of AdminClientTest.testDeleteRecordsWithException - Add producer per task support - Add request/response classes for transactions (KIP-98) - KeyValueStore.put may throw exception unrelated to the current put attempt - Exactly-once upgrade notes - Update Message Delivery Semantics section to take into account KIP-98 - convert kafka controller to a single-threaded event queue model - Additional validation in validateMessagesAndAssignOffsets - Reconsider default retries for idempotent producer - add controller integration tests - Load only batch header when rebuilding producer ID map - Refactor AdminUtils to use zkUtils methods instad of zkUtils.zkClient - remove preferred replica election state from ControllerContext - Implement transaction index for KIP-98 - shouldInnerLeftJoin unit test fails - TransactionCoordinator - Check inter broker protocol and message format and raise errors if incompatible - TransactionCoordinator - Add ACL check for each request - Change InterBrokerSendThread to use a Queue per broker - WriteTxnMarkers and complete commit/abort on partition immigration - Abort long running transactions - Move coordinatorEpoch from WriteTxnMarkerRequest to TxnMarkerEntry - KafkaProducer's TransactionManager needs a review on synchronization - Refactor TransactionCoordinator in-memory structure and error handling logic - KIP-98 : broker side handling for the TxnOffsetCommitRequest - Add a reference to AdminClient to docs/api.html - TC should not accept empty string transactional id - Transient failure: ControllerIntegrationTest.testPreferredReplicaLeaderElection - Log connection termination during authentication - Transient failure: ControllerIntegrationTest.testControllerMoveIncrementsControllerEpoch - Transient failure: RequestQuotaTest.testResponseThrottleTime - Avoid expensive initialization of producer state when upgrading - Add Integration tests for transactional producer - Autogenerate Consumer Fetcher metrics - LogCleaner should be transaction-aware - Handle topic deletion for ongoing transactions - SaslScramSslEndToEndAuthorizationTest.testNoConsumeWithoutDescribeAclViaSubscribe - TransactinoCoordinator does not bump epoch when aborting open transactions - Consumer GroupCoordinator should continue to materialize committed offsets in offset order even for transactional offset commits - Remove retention time from TxnOffsetCommit RPC - Transaction index recovery does not snapshot properly - Producer should drop queued sends when transaction is aborted - Fix flaky test LogCleanerTest.testCommitMarkerRemoval - move all partition and replica state transition rules into their states - TransactionalId authorization should imply ProducerId authorization - Producer should not send AbortTxn unless transaction has actually begun - TransactionsBounceTest occasionally sees INVALID_TXN_STATE errors - TransactionBounceTest occasionally fails due to partition errors - KafkaConsumer.committed() should get latest committed offsets from the server - Review and improve AdminClient Javadoc for the first release (KIP-117) - Review and potentially tweak AdminClient API for the initial release (KIP-117) - TransactionCoordinator must expire transactionalIds - Protect concurrent access to the cached transaction status - System tests for KIP-98 / transactions - Transactions integration test: Use factory methods to keep track of open producers and consumers and close them all on tearDown - Update clients and server code to make sure that epoch and sequence numbers wrap around - AdminClient should not trigger auto creation of topics - Fix authorization checks in AdminClient - TC should handle UNSUPPORTED_FOR_MESSAGE_FORMAT in WriteTxnMarker response - reset ControllerContext during resignation - Update KIP-98 to reflect changes during implementation. - Update produce/fetch throttle time metrics for any request throttle - Resolve AddPartitions response error code inconsistency - Transactions system test with hard broker bounces fails sporadically - Add additional test cases for batch splitting to ensure idempotent/transactional metadata is preserved - Broker clean bounce test puts the broker into a 'CONCURRENT_TRANSACTIONS' state permanently - Broker returns messages beyond "latest stable offset" to transactional consumer in read_committed mode - StackOverFlow error in transaction coordinator - Producer attempts to send transactional messages before adding partitions to transaction - Fix regression in compressed message iteration affecting magic v0 and v1 - Transactions: Concurrent transactional consumer reads aborted messages - Last Stable Offset not returned in Fetch request - Transactional producer cannot find coordinator when trying to abort transaction after error - Transactional producer aborts batches incorrectly in abortable error state - Producer IllegalStateException: Batch has already been completed - Produce state lost if no snapshot retained - TransactionalMessageCopier should be force killed on test shutdown - UnsupportedOperationException in WriteTxnMarkers handler - Consumer should use last offset from batch to set next fetch offset - read current brokers from zookeeper upon processing broker change - Drop /usr/bin/kafka-consumer-offset-checker.sh . No longer provided by upstream - Drop /usr/bin/kafka-replay-log-producer.sh . No longer provided by upstream - Drop /usr/bin/kafka-simple-consumer-shell.sh . No longer provided by upstream - Use %license macro - Use /run instead of /var/run- Remove commented Requires and BuildRequires - Add pointer to documentation on kafka-kit rebuild - Refresh lock-down-jmxremote.patch and rotate-gc-log.patch - Add noreplace directive for /etc/kafka/server.properties - Update to version 0.10.2.2 (bsc#1102920, CVE-2018-1288) * Improvements: * [KAFKA-4965] - set internal.leave.group.on.close to false in KafkaStreams * [KAFKA-5118] - Improve message for Kafka failed startup with non-Kafka data in data.dirs * [KAFKA-5242] - add max_number _of_retries to exponential backoff strategy * [KAFKA-7009] - Mute logger for reflections.org at the warn level in system tests * Bugs: * [KAFKA-4827] - Kafka connect: error with special characters in connector name * [KAFKA-5150] - LZ4 decompression is 4-5x slower than Snappy on small batches / messages * [KAFKA-5167] - streams task gets stuck after re-balance due to LockException * [KAFKA-5205] - CachingSessionStore doesn't use the default keySerde. * [KAFKA-5206] - RocksDBSessionStore doesn't use default aggSerde. * [KAFKA-5230] - Recommended values for Connect transformations contain the wrong class name * [KAFKA-5232] - Kafka broker fails to start if a topic containing dot in its name is marked for delete but hasn't been deleted during previous uptime * [KAFKA-5241] - GlobalKTable does not checkpoint offsets after restoring state * [KAFKA-5316] - Log cleaning can increase message size and cause cleaner to crash with buffer overflow * [KAFKA-5345] - Some socket connections not closed after restart of Kafka Streams * [KAFKA-5395] - Distributed Herder Deadlocks on Shutdown * [KAFKA-5413] - Log cleaner fails due to large offset in segment file * [KAFKA-5464] - StreamsKafkaClient should not use StreamsConfig.POLL_MS_CONFIG * [KAFKA-5484] - Refactor kafkatest docker support * [KAFKA-5623] - ducktape kafka service: do not assume Service contains num_nodes * [KAFKA-5643] - Using _DUCKTAPE_OPTIONS has no effect on executing tests * [KAFKA-5731] - Connect WorkerSinkTask out of order offset commit can lead to inconsistent state * [KAFKA-6054] - ERROR "SubscriptionInfo - unable to decode subscription data: version=2" when upgrading from 0.10.0.0 to 0.10.2.1 * [KAFKA-6360] - RocksDB segments not removed when store is closed causes re-initialization to fail * [KAFKA-6371] - FetchMetadata creates unneeded Strings on instantiation * [KAFKA-6566] - SourceTask#stop() not called after exception raised in poll() * [KAFKA-6661] - Sink connectors that explicitly 'resume' topic partitions can resume a paused task * [KAFKA-6711] - GlobalStateManagerImpl should not write offsets of in-memory stores in checkpoint file * [KAFKA-7021] - Source KTable checkpoint is not correct * [KAFKA-7058] - ConnectSchema#equals() broken for array-typed default values- Reduce package ownership of tmpfiles.d to bare minium (SLE12 SP2)- Fix SLE and older Leap breakage caused by previous fix- Fix various spec errors affecting Leap 15 and Tumbleweed- Set log rotation options (bsc#1094448) - Disable jmxremote debugging (bsc#1095603)- Increase open file limits (bsc#1086909)- Added Environment variables to the service files. (bsc#1048688, FATE#323204)- Limited architecture to amd64 - Cleaned up %files section - Downgraded to upstream version 0.9.0.1 - Switched from upstream binary tarball to Tetra based build from source- Initial package.obs-power8-04 1645002033  !"#$%&'()*+,-./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 X2.1.0-bp153.2.6.12.1.0-bp153.2.6.1  !!"""""###$$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&'''''((((((()))))))))))))))))))))))))))))))))))))****************************************************************************************************++++++,,,,-------------,.........,////////,00000011111111222133333333,444555,666667777777777,8,9:::;;<<<<<<<<<<<<<<<<<<<<<<<<<<===============================>??>@@@ ABC DEFGHIIIIIIIIIIIJJJJJKILLLLLLLLLLMMMMMMMMMMINNNNNNOOOOOOOHPPPPPQQQQQPRPSSSSSSTPUVPWWPXPYYYYYYYZZZP[[[[[[[[[[[P\\\\]P^^^^^^^^^^^^^^^^^^P_____________P``PaaaabbacccccccaddaeeeeeeffffggfhhhhhaijakllllamPnPooooooooooooooooooooHpppppppppppppppDqqrrrsssssssssssssstuvwxyz{|}|~~~~||||||||||vttttt                    !!!"""""""#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%$&$'''''''''''''((((((((((((((((((((((((())))(****+++,-...-/01221333333333333333333333333333333333333333333333141555555516/7879:9;7<<7=7>>/??@@@@@/ABBCCCCCCCCCCCCCCCCCCCCBDDBEEEBFBGGGGGGGBHHIIIIIHJJJJJJJJBKKKKBLLLLLLLLLLLLLLLLLLBMMBNBOPPPPPPOQRBSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTSUUUUUVBWWWWWBXXXXXXXXXXXXXXXXXYXZZZB[[[[[[B\]]]]]]^^___`````````````____]]aabbbbbbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa]]]c]]]]]]dddeeeeeeeeeeeeedddd]]]ffggfhijkllllmmmmnmooopqrstuvwvxvyvz{|}~|      !"#$%&'()*+,-./0123456789:;<=>?@AAABBBAACCCCCDDDDAEEFFGGFHHEIIEJJJJJEKKKKLLLLLMMLKKKKNNNKOOOOOOOPKKQQQQQRRKKKSSSSSSSKKTTTTTTTTTTUTKKKKEVVWWWWWWWWWVXXXXXYYYYYVZZZZZZZZZZZZZZZZVVV[[[[[[[[[[[[V\\\\\\VE]]]EAAA^^__^^``abcdefghhhhhhhhhgijjjjikkkilllllllimmmmminnnnnnnnnniooooooooooooooooooooooooooooippppppppiqqqqqqqqqqqqqqqqqqqbrstuvwvxyxzx{{{{{{{x|x}x~~~~xrkafka-sourceNOTICEkafka-sourceLICENSEkafkaBUILDCONTRIBUTING.mdHEADERLICENSENOTICEPULL_REQUEST_TEMPLATE.mdREADME.mdTROGDOR.mdVagrantfileWORKSPACEbinconnect-distributed.shconnect-standalone.shkafka-acls.shkafka-broker-api-versions.shkafka-configs.shkafka-console-consumer.shkafka-console-producer.shkafka-consumer-groups.shkafka-consumer-perf-test.shkafka-delegation-tokens.shkafka-delete-records.shkafka-dump-log.shkafka-log-dirs.shkafka-mirror-maker.shkafka-preferred-replica-election.shkafka-producer-perf-test.shkafka-reassign-partitions.shkafka-replica-verification.shkafka-run-class.shkafka-server-start.shkafka-server-stop.shkafka-streams-application-reset.shkafka-topics.shkafka-verifiable-consumer.shkafka-verifiable-producer.shtrogdor.shwindowsconnect-distributed.batconnect-standalone.batkafka-acls.batkafka-broker-api-versions.batkafka-configs.batkafka-console-consumer.batkafka-console-producer.batkafka-consumer-groups.batkafka-consumer-perf-test.batkafka-delegation-tokens.batkafka-dump-log.batkafka-mirror-maker.batkafka-preferred-replica-election.batkafka-producer-perf-test.batkafka-reassign-partitions.batkafka-replica-verification.batkafka-run-class.batkafka-server-start.batkafka-server-stop.batkafka-topics.batzookeeper-server-start.batzookeeper-server-stop.batzookeeper-shell.batzookeeper-security-migration.shzookeeper-server-start.shzookeeper-server-stop.shzookeeper-shell.shbuild.gradlecheckstyle.scalafmt.confcheckstyle.xmlimport-control-core.xmlimport-control.xmljava.headersuppressions.xmlclientssrcmainjavaorgapachekafkaclientsApiVersions.javaClientDnsLookup.javaClientRequest.javaClientResponse.javaClientUtils.javaClusterConnectionStates.javaCommonClientConfigs.javaConnectionState.javaFetchSessionHandler.javaInFlightRequests.javaKafkaClient.javaManualMetadataUpdater.javaMetadata.javaMetadataUpdater.javaNetworkClient.javaNetworkClientUtils.javaNodeApiVersions.javaRequestCompletionHandler.javaStaleMetadataException.javaadminAbstractOptions.javaAdminClient.javaAdminClientConfig.javaAlterConfigsOptions.javaAlterConfigsResult.javaAlterReplicaLogDirsOptions.javaAlterReplicaLogDirsResult.javaConfig.javaConfigEntry.javaConsumerGroupDescription.javaConsumerGroupListing.javaCreateAclsOptions.javaCreateAclsResult.javaCreateDelegationTokenOptions.javaCreateDelegationTokenResult.javaCreatePartitionsOptions.javaCreatePartitionsResult.javaCreateTopicsOptions.javaCreateTopicsResult.javaDeleteAclsOptions.javaDeleteAclsResult.javaDeleteConsumerGroupsOptions.javaDeleteConsumerGroupsResult.javaDeleteRecordsOptions.javaDeleteRecordsResult.javaDeleteTopicsOptions.javaDeleteTopicsResult.javaDeletedRecords.javaDescribeAclsOptions.javaDescribeAclsResult.javaDescribeClusterOptions.javaDescribeClusterResult.javaDescribeConfigsOptions.javaDescribeConfigsResult.javaDescribeConsumerGroupsOptions.javaDescribeConsumerGroupsResult.javaDescribeDelegationTokenOptions.javaDescribeDelegationTokenResult.javaDescribeLogDirsOptions.javaDescribeLogDirsResult.javaDescribeReplicaLogDirsOptions.javaDescribeReplicaLogDirsResult.javaDescribeTopicsOptions.javaDescribeTopicsResult.javaExpireDelegationTokenOptions.javaExpireDelegationTokenResult.javaKafkaAdminClient.javaListConsumerGroupOffsetsOptions.javaListConsumerGroupOffsetsResult.javaListConsumerGroupsOptions.javaListConsumerGroupsResult.javaListTopicsOptions.javaListTopicsResult.javaMemberAssignment.javaMemberDescription.javaNewPartitions.javaNewTopic.javaRecordsToDelete.javaRenewDelegationTokenOptions.javaRenewDelegationTokenResult.javaTopicDescription.javaTopicListing.javainternalsAdminMetadataManager.javaconsumerCommitFailedException.javaConsumer.javaConsumerConfig.javaConsumerInterceptor.javaConsumerRebalanceListener.javaConsumerRecord.javaConsumerRecords.javaInvalidOffsetException.javaKafkaConsumer.javaMockConsumer.javaNoOffsetForPartitionException.javaOffsetAndMetadata.javaOffsetAndTimestamp.javaOffsetCommitCallback.javaOffsetOutOfRangeException.javaOffsetResetStrategy.javaRangeAssignor.javaRetriableCommitFailedException.javaRoundRobinAssignor.javaStickyAssignor.javainternalsAbstractCoordinator.javaAbstractPartitionAssignor.javaConsumerCoordinator.javaConsumerInterceptors.javaConsumerMetrics.javaConsumerNetworkClient.javaConsumerProtocol.javaFetcher.javaFetcherMetricsRegistry.javaHeartbeat.javaNoAvailableBrokersException.javaNoOpConsumerRebalanceListener.javaPartitionAssignor.javaRequestFuture.javaRequestFutureAdapter.javaRequestFutureListener.javaSubscriptionState.javaproducerBufferExhaustedException.javaCallback.javaKafkaProducer.javaMockProducer.javaPartitioner.javaProducer.javaProducerConfig.javaProducerInterceptor.javaProducerRecord.javaRecordMetadata.javainternalsBufferPool.javaDefaultPartitioner.javaErrorLoggingCallback.javaFutureRecordMetadata.javaIncompleteBatches.javaProduceRequestResult.javaProducerBatch.javaProducerIdAndEpoch.javaProducerInterceptors.javaProducerMetrics.javaRecordAccumulator.javaSender.javaSenderMetricsRegistry.javaTransactionManager.javaTransactionalRequestResult.javacommonCluster.javaClusterResource.javaClusterResourceListener.javaConfigurable.javaConsumerGroupState.javaKafkaException.javaKafkaFuture.javaMetric.javaMetricName.javaMetricNameTemplate.javaNode.javaPartitionInfo.javaReconfigurable.javaTopicPartition.javaTopicPartitionInfo.javaTopicPartitionReplica.javaaclAccessControlEntry.javaAccessControlEntryData.javaAccessControlEntryFilter.javaAclBinding.javaAclBindingFilter.javaAclOperation.javaAclPermissionType.javaannotationInterfaceStability.javacacheCache.javaLRUCache.javaSynchronizedCache.javaconfigAbstractConfig.javaConfig.javaConfigChangeCallback.javaConfigData.javaConfigDef.javaConfigException.javaConfigResource.javaConfigTransformer.javaConfigTransformerResult.javaConfigValue.javaSaslConfigs.javaSslConfigs.javaTopicConfig.javainternalsBrokerSecurityConfigs.javaproviderConfigProvider.javaFileConfigProvider.javatypesPassword.javaerrorsApiException.javaAuthenticationException.javaAuthorizationException.javaBrokerNotAvailableException.javaClusterAuthorizationException.javaConcurrentTransactionsException.javaControllerMovedException.javaCoordinatorLoadInProgressException.javaCoordinatorNotAvailableException.javaCorruptRecordException.javaDelegationTokenAuthorizationException.javaDelegationTokenDisabledException.javaDelegationTokenExpiredException.javaDelegationTokenNotFoundException.javaDelegationTokenOwnerMismatchException.javaDisconnectException.javaDuplicateSequenceException.javaFencedLeaderEpochException.javaFetchSessionIdNotFoundException.javaGroupAuthorizationException.javaGroupIdNotFoundException.javaGroupNotEmptyException.javaIllegalGenerationException.javaIllegalSaslStateException.javaInconsistentGroupProtocolException.javaInterruptException.javaInvalidCommitOffsetSizeException.javaInvalidConfigurationException.javaInvalidFetchSessionEpochException.javaInvalidFetchSizeException.javaInvalidGroupIdException.javaInvalidMetadataException.javaInvalidOffsetException.javaInvalidPartitionsException.javaInvalidPidMappingException.javaInvalidPrincipalTypeException.javaInvalidReplicaAssignmentException.javaInvalidReplicationFactorException.javaInvalidRequestException.javaInvalidRequiredAcksException.javaInvalidSessionTimeoutException.javaInvalidTimestampException.javaInvalidTopicException.javaInvalidTxnStateException.javaInvalidTxnTimeoutException.javaKafkaStorageException.javaLeaderNotAvailableException.javaListenerNotFoundException.javaLogDirNotFoundException.javaNetworkException.javaNotControllerException.javaNotCoordinatorException.javaNotEnoughReplicasAfterAppendException.javaNotEnoughReplicasException.javaNotLeaderForPartitionException.javaOffsetMetadataTooLarge.javaOffsetOutOfRangeException.javaOperationNotAttemptedException.javaOutOfOrderSequenceException.javaPolicyViolationException.javaProducerFencedException.javaReassignmentInProgressException.javaRebalanceInProgressException.javaRecordBatchTooLargeException.javaRecordTooLargeException.javaReplicaNotAvailableException.javaRetriableException.javaSaslAuthenticationException.javaSecurityDisabledException.javaSerializationException.javaSslAuthenticationException.javaTimeoutException.javaTopicAuthorizationException.javaTopicDeletionDisabledException.javaTopicExistsException.javaTransactionCoordinatorFencedException.javaTransactionalIdAuthorizationException.javaUnknownLeaderEpochException.javaUnknownMemberIdException.javaUnknownProducerIdException.javaUnknownServerException.javaUnknownTopicOrPartitionException.javaUnsupportedByAuthenticationException.javaUnsupportedCompressionTypeException.javaUnsupportedForMessageFormatException.javaUnsupportedSaslMechanismException.javaUnsupportedVersionException.javaWakeupException.javaheaderHeader.javaHeaders.javainternalsRecordHeader.javaRecordHeaders.javainternalsClusterResourceListeners.javaFatalExitError.javaKafkaFutureImpl.javaPartitionStates.javaTopic.javamemoryGarbageCollectedMemoryPool.javaMemoryPool.javaSimpleMemoryPool.javametricsCompoundStat.javaGauge.javaJmxReporter.javaKafkaMetric.javaMeasurable.javaMeasurableStat.javaMetricConfig.javaMetricValueProvider.javaMetrics.javaMetricsReporter.javaQuota.javaQuotaViolationException.javaSensor.javaStat.javastatsAvg.javaCount.javaFrequencies.javaFrequency.javaHistogram.javaMax.javaMeter.javaMin.javaPercentile.javaPercentiles.javaRate.javaSampledStat.javaSimpleRate.javaSum.javaTotal.javaValue.javanetworkAuthenticator.javaByteBufferSend.javaChannelBuilder.javaChannelBuilders.javaChannelState.javaDelayedResponseAuthenticationException.javaInvalidReceiveException.javaKafkaChannel.javaListenerName.javaListenerReconfigurable.javaMode.javaNetworkReceive.javaNetworkSend.javaPlaintextChannelBuilder.javaPlaintextTransportLayer.javaReceive.javaSaslChannelBuilder.javaSelectable.javaSelector.javaSend.javaSslChannelBuilder.javaSslTransportLayer.javaTransportLayer.javaTransportLayers.javaprotocolApiKeys.javaCommonFields.javaErrors.javaProtocol.javatypesArrayOf.javaBoundField.javaField.javaSchema.javaSchemaException.javaStruct.javaType.javarecordAbstractLegacyRecordBatch.javaAbstractRecordBatch.javaAbstractRecords.javaBaseRecords.javaBufferSupplier.javaByteBufferLogInputStream.javaCompressionRatioEstimator.javaCompressionType.javaControlRecordType.javaConvertedRecords.javaDefaultRecord.javaDefaultRecordBatch.javaDefaultRecordsSend.javaEndTransactionMarker.javaFileLogInputStream.javaFileRecords.javaInvalidRecordException.javaKafkaLZ4BlockInputStream.javaKafkaLZ4BlockOutputStream.javaLazyDownConversionRecords.javaLazyDownConversionRecordsSend.javaLegacyRecord.javaLogInputStream.javaMemoryRecords.javaMemoryRecordsBuilder.javaMultiRecordsSend.javaMutableRecordBatch.javaRecord.javaRecordBatch.javaRecordBatchIterator.javaRecordConversionStats.javaRecordVersion.javaRecords.javaRecordsSend.javaRecordsUtil.javaSimpleRecord.javaTimestampType.javarequestsAbstractRequest.javaAbstractRequestResponse.javaAbstractResponse.javaAddOffsetsToTxnRequest.javaAddOffsetsToTxnResponse.javaAddPartitionsToTxnRequest.javaAddPartitionsToTxnResponse.javaAlterConfigsRequest.javaAlterConfigsResponse.javaAlterReplicaLogDirsRequest.javaAlterReplicaLogDirsResponse.javaApiError.javaApiVersionsRequest.javaApiVersionsResponse.javaBasePartitionState.javaControlledShutdownRequest.javaControlledShutdownResponse.javaCreateAclsRequest.javaCreateAclsResponse.javaCreateDelegationTokenRequest.javaCreateDelegationTokenResponse.javaCreatePartitionsRequest.javaCreatePartitionsResponse.javaCreateTopicsRequest.javaCreateTopicsResponse.javaDeleteAclsRequest.javaDeleteAclsResponse.javaDeleteGroupsRequest.javaDeleteGroupsResponse.javaDeleteRecordsRequest.javaDeleteRecordsResponse.javaDeleteTopicsRequest.javaDeleteTopicsResponse.javaDescribeAclsRequest.javaDescribeAclsResponse.javaDescribeConfigsRequest.javaDescribeConfigsResponse.javaDescribeDelegationTokenRequest.javaDescribeDelegationTokenResponse.javaDescribeGroupsRequest.javaDescribeGroupsResponse.javaDescribeLogDirsRequest.javaDescribeLogDirsResponse.javaEndTxnRequest.javaEndTxnResponse.javaEpochEndOffset.javaExpireDelegationTokenRequest.javaExpireDelegationTokenResponse.javaFetchMetadata.javaFetchRequest.javaFetchResponse.javaFindCoordinatorRequest.javaFindCoordinatorResponse.javaHeartbeatRequest.javaHeartbeatResponse.javaInitProducerIdRequest.javaInitProducerIdResponse.javaIsolationLevel.javaJoinGroupRequest.javaJoinGroupResponse.javaLeaderAndIsrRequest.javaLeaderAndIsrResponse.javaLeaveGroupRequest.javaLeaveGroupResponse.javaListGroupsRequest.javaListGroupsResponse.javaListOffsetRequest.javaListOffsetResponse.javaMetadataRequest.javaMetadataResponse.javaOffsetCommitRequest.javaOffsetCommitResponse.javaOffsetFetchRequest.javaOffsetFetchResponse.javaOffsetsForLeaderEpochRequest.javaOffsetsForLeaderEpochResponse.javaProduceRequest.javaProduceResponse.javaRenewDelegationTokenRequest.javaRenewDelegationTokenResponse.javaRequestAndSize.javaRequestContext.javaRequestHeader.javaRequestUtils.javaResponseHeader.javaSaslAuthenticateRequest.javaSaslAuthenticateResponse.javaSaslHandshakeRequest.javaSaslHandshakeResponse.javaStopReplicaRequest.javaStopReplicaResponse.javaSyncGroupRequest.javaSyncGroupResponse.javaTransactionResult.javaTxnOffsetCommitRequest.javaTxnOffsetCommitResponse.javaUpdateMetadataRequest.javaUpdateMetadataResponse.javaWriteTxnMarkersRequest.javaWriteTxnMarkersResponse.javaresourcePatternType.javaResource.javaResourceFilter.javaResourcePattern.javaResourcePatternFilter.javaResourceType.javasecurityJaasConfig.javaJaasContext.javaJaasUtils.javaauthAuthenticateCallbackHandler.javaAuthenticationContext.javaDefaultPrincipalBuilder.javaKafkaPrincipal.javaKafkaPrincipalBuilder.javaLogin.javaPlaintextAuthenticationContext.javaPrincipalBuilder.javaSaslAuthenticationContext.javaSaslExtensions.javaSaslExtensionsCallback.javaSecurityProtocol.javaSslAuthenticationContext.javaauthenticatorAbstractLogin.javaCredentialCache.javaDefaultKafkaPrincipalBuilder.javaDefaultLogin.javaLoginManager.javaSaslClientAuthenticator.javaSaslClientCallbackHandler.javaSaslServerAuthenticator.javaSaslServerCallbackHandler.javakerberosBadFormatString.javaKerberosClientCallbackHandler.javaKerberosError.javaKerberosLogin.javaKerberosName.javaKerberosRule.javaKerberosShortNamer.javaNoMatchingRule.javaoauthbearerOAuthBearerExtensionsValidatorCallback.javaOAuthBearerLoginModule.javaOAuthBearerToken.javaOAuthBearerTokenCallback.javaOAuthBearerValidatorCallback.javainternalsOAuthBearerClientInitialResponse.javaOAuthBearerRefreshingLogin.javaOAuthBearerSaslClient.javaOAuthBearerSaslClientCallbackHandler.javaOAuthBearerSaslClientProvider.javaOAuthBearerSaslServer.javaOAuthBearerSaslServerProvider.javaexpiringExpiringCredential.javaExpiringCredentialRefreshConfig.javaExpiringCredentialRefreshingLogin.javaunsecuredOAuthBearerConfigException.javaOAuthBearerIllegalTokenException.javaOAuthBearerScopeUtils.javaOAuthBearerUnsecuredJws.javaOAuthBearerUnsecuredLoginCallbackHandler.javaOAuthBearerUnsecuredValidatorCallbackHandler.javaOAuthBearerValidationResult.javaOAuthBearerValidationUtils.javaplainPlainAuthenticateCallback.javaPlainLoginModule.javainternalsPlainSaslServer.javaPlainSaslServerProvider.javaPlainServerCallbackHandler.javascramScramCredential.javaScramCredentialCallback.javaScramExtensionsCallback.javaScramLoginModule.javainternalsScramCredentialUtils.javaScramExtensions.javaScramFormatter.javaScramMechanism.javaScramMessages.javaScramSaslClient.javaScramSaslClientProvider.javaScramSaslServer.javaScramSaslServerProvider.javaScramServerCallbackHandler.javasslSslFactory.javatokendelegationDelegationToken.javaTokenInformation.javainternalsDelegationTokenCache.javaDelegationTokenCredentialCallback.javaserializationByteArrayDeserializer.javaByteArraySerializer.javaByteBufferDeserializer.javaByteBufferSerializer.javaBytesDeserializer.javaBytesSerializer.javaDeserializer.javaDoubleDeserializer.javaDoubleSerializer.javaExtendedDeserializer.javaExtendedSerializer.javaFloatDeserializer.javaFloatSerializer.javaIntegerDeserializer.javaIntegerSerializer.javaLongDeserializer.javaLongSerializer.javaSerde.javaSerdes.javaSerializer.javaShortDeserializer.javaShortSerializer.javaStringDeserializer.javaStringSerializer.javaUUIDDeserializer.javaUUIDSerializer.javautilsAbstractIterator.javaAppInfoParser.javaByteBufferInputStream.javaByteBufferOutputStream.javaByteUtils.javaBytes.javaChecksums.javaCircularIterator.javaCloseableIterator.javaCollectionUtils.javaCopyOnWriteMap.javaCrc32.javaCrc32C.javaExit.javaImplicitLinkedHashSet.javaJava.javaKafkaThread.javaLogContext.javaLoggingSignalHandler.javaMappedByteBuffers.javaOperatingSystem.javaPureJavaCrc32C.javaSanitizer.javaScheduler.javaSecurityUtils.javaShell.javaSystemScheduler.javaSystemTime.javaTime.javaTimer.javaUtils.javaserverpolicyAlterConfigPolicy.javaCreateTopicPolicy.javaquotaClientQuotaCallback.javaClientQuotaEntity.javaClientQuotaType.javaresourcesMETA-INFservicesorg.apache.kafka.common.config.provider.ConfigProvidertestjavaorgapachekafkaclientsApiVersionsTest.javaClientUtilsTest.javaClusterConnectionStatesTest.javaCommonClientConfigsTest.javaFetchSessionHandlerTest.javaInFlightRequestsTest.javaMetadataTest.javaMockClient.javaNetworkClientTest.javaNodeApiVersionsTest.javaadminAdminClientUnitTestEnv.javaConfigTest.javaKafkaAdminClientTest.javaMockAdminClient.javainternalsAdminMetadataManagerTest.javaconsumerConsumerConfigTest.javaConsumerRecordTest.javaConsumerRecordsTest.javaKafkaConsumerTest.javaMockConsumerTest.javaOffsetAndMetadataTest.javaRangeAssignorTest.javaRoundRobinAssignorTest.javaStickyAssignorTest.javainternalsAbstractCoordinatorTest.javaConsumerCoordinatorTest.javaConsumerInterceptorsTest.javaConsumerNetworkClientTest.javaConsumerProtocolTest.javaFetcherTest.javaHeartbeatTest.javaMockPartitionAssignor.javaRequestFutureTest.javaSubscriptionStateTest.javaproducerKafkaProducerTest.javaMockProducerTest.javaProducerRecordTest.javaRecordMetadataTest.javaRecordSendTest.javainternalsBufferPoolTest.javaDefaultPartitionerTest.javaProducerBatchTest.javaProducerInterceptorsTest.javaRecordAccumulatorTest.javaSenderTest.javaTransactionManagerTest.javacommonClusterTest.javaKafkaFutureTest.javaPartitionInfoTest.javaTopicPartitionTest.javaaclAclBindingTest.javaAclOperationTest.javaAclPermissionTypeTest.javaResourcePatternFilterTest.javaResourcePatternTest.javacacheLRUCacheTest.javaconfigAbstractConfigTest.javaConfigDefTest.javaConfigResourceTest.javaConfigTransformerTest.javaSaslConfigsTest.javaproviderFileConfigProviderTest.javaheaderinternalsRecordHeadersTest.javainternalsPartitionStatesTest.javaTopicTest.javamemoryGarbageCollectedMemoryPoolTest.javametricsFakeMetricsReporter.javaJmxReporterTest.javaKafkaMbeanTest.javaMetricsTest.javaSampleMetrics.javaSensorTest.javastatsFrequenciesTest.javaHistogramTest.javaMeterTest.javanetworkCertStores.javaChannelBuildersTest.javaEchoServer.javaNetworkTestUtils.javaNioEchoServer.javaPlaintextSender.javaSaslChannelBuilderTest.javaSelectorTest.javaSslSelectorTest.javaSslSender.javaSslTransportLayerTest.javaprotocolApiKeysTest.javaErrorsTest.javaProtoUtilsTest.javatypesProtocolSerializationTest.javarecordAbstractLegacyRecordBatchTest.javaBufferSupplierTest.javaByteBufferLogInputStreamTest.javaCompressionTypeTest.javaControlRecordTypeTest.javaDefaultRecordBatchTest.javaDefaultRecordTest.javaEndTransactionMarkerTest.javaFileLogInputStreamTest.javaFileRecordsTest.javaKafkaLZ4Test.javaLazyDownConversionRecordsTest.javaLegacyRecordTest.javaMemoryRecordsBuilderTest.javaMemoryRecordsTest.javaMultiRecordsSendTest.javaSimpleLegacyRecordTest.javaSimpleMemoryRecordsTest.javarequestsApiVersionsResponseTest.javaByteBufferChannel.javaCreateAclsRequestTest.javaDeleteAclsRequestTest.javaDeleteAclsResponseTest.javaDescribeAclsRequestTest.javaDescribeAclsResponseTest.javaLeaderAndIsrResponseTest.javaProduceRequestTest.javaRequestContextTest.javaRequestHeaderTest.javaRequestResponseTest.javaStopReplicaResponseTest.javaresourceResourceFilterTest.javaResourceTypeTest.javasecurityJaasContextTest.javaSaslExtensionsTest.javaTestSecurityConfig.javaauthDefaultKafkaPrincipalBuilderTest.javaKafkaPrincipalTest.javaauthenticatorClientAuthenticationFailureTest.javaLoginManagerTest.javaSaslAuthenticatorFailureDelayTest.javaSaslAuthenticatorTest.javaSaslServerAuthenticatorTest.javaTestDigestLoginModule.javaTestJaasConfig.javakerberosKerberosNameTest.javaKerberosRuleTest.javaoauthbearerOAuthBearerExtensionsValidatorCallbackTest.javaOAuthBearerLoginModuleTest.javaOAuthBearerTokenCallbackTest.javaOAuthBearerTokenMock.javaOAuthBearerValidatorCallbackTest.javainternalsOAuthBearerClientInitialResponseTest.javaOAuthBearerSaslClientTest.javaOAuthBearerSaslServerTest.javaexpiringExpiringCredentialRefreshConfigTest.javaExpiringCredentialRefreshingLoginTest.javaunsecuredOAuthBearerScopeUtilsTest.javaOAuthBearerUnsecuredJwsTest.javaOAuthBearerUnsecuredLoginCallbackHandlerTest.javaOAuthBearerUnsecuredValidatorCallbackHandlerTest.javaOAuthBearerValidationUtilsTest.javaplaininternalsPlainSaslServerTest.javascraminternalsScramCredentialUtilsTest.javaScramFormatterTest.javaScramMessagesTest.javaScramSaslServerTest.javasslSslFactoryTest.javaserializationSerializationTest.javautilsAbstractIteratorTest.javaByteBufferOutputStreamTest.javaByteUtilsTest.javaChecksumsTest.javaCollectionUtilsTest.javaCrc32CTest.javaCrc32Test.javaImplicitLinkedHashSetTest.javaJavaTest.javaLoggingSignalHandlerTest.javaMappedByteBuffersTest.javaMockScheduler.javaMockTime.javaMockTimeTest.javaSanitizerTest.javaSecurityUtilsTest.javaSerializer.javaShellTest.javaTimerTest.javaUtilsTest.javatestDelayedReceive.javaIntegrationTest.javaMetricsBench.javaMicrobenchmarks.javaMockClusterResourceListener.javaMockConsumerInterceptor.javaMockDeserializer.javaMockMetricsReporter.javaMockPartitioner.javaMockProducerInterceptor.javaMockSelector.javaMockSerializer.javaTestCondition.javaTestSslUtils.javaTestUtils.javaresourceslog4j.propertiesserializedDataoffsetAndMetadataBeforeLeaderEpochoffsetAndMetadataWithLeaderEpochtopicPartitionSerializedfileconfigconnect-console-sink.propertiesconnect-console-source.propertiesconnect-distributed.propertiesconnect-file-sink.propertiesconnect-file-source.propertiesconnect-log4j.propertiesconnect-standalone.propertiesconsumer.propertieslog4j.propertiesproducer.propertiesserver.propertiestools-log4j.propertiestrogdor.confzookeeper.propertiesconnectapisrcmainjavaorgapachekafkaconnectcomponentsVersioned.javaconnectorConnectRecord.javaConnector.javaConnectorContext.javaTask.javadataConnectSchema.javaDate.javaDecimal.javaField.javaSchema.javaSchemaAndValue.javaSchemaBuilder.javaSchemaProjector.javaStruct.javaTime.javaTimestamp.javaValues.javaerrorsAlreadyExistsException.javaConnectException.javaDataException.javaIllegalWorkerStateException.javaNotFoundException.javaRetriableException.javaSchemaBuilderException.javaSchemaProjectorException.javaheaderConnectHeader.javaConnectHeaders.javaHeader.javaHeaders.javahealthAbstractState.javaConnectClusterState.javaConnectorHealth.javaConnectorState.javaConnectorType.javaTaskState.javarestConnectRestExtension.javaConnectRestExtensionContext.javasinkSinkConnector.javaSinkRecord.javaSinkTask.javaSinkTaskContext.javasourceSourceConnector.javaSourceRecord.javaSourceTask.javaSourceTaskContext.javastorageConverter.javaConverterConfig.javaConverterType.javaHeaderConverter.javaOffsetStorageReader.javaSimpleHeaderConverter.javaStringConverter.javaStringConverterConfig.javatransformsTransformation.javautilConnectorUtils.javatestjavaorgapachekafkaconnectconnectorConnectorReconfigurationTest.javadataConnectSchemaTest.javaDateTest.javaDecimalTest.javaFakeSchema.javaFieldTest.javaSchemaBuilderTest.javaSchemaProjectorTest.javaStructTest.javaTimeTest.javaTimestampTest.javaValuesTest.javaheaderConnectHeaderTest.javaConnectHeadersTest.javasinkSinkRecordTest.javasourceSourceRecordTest.javastorageConverterTypeTest.javaSimpleHeaderConverterTest.javaStringConverterTest.javautilConnectorUtilsTest.javabasic-auth-extensionsrcmainjavaorgapachekafkaconnectrestbasicauthextensionBasicAuthSecurityRestExtension.javaJaasBasicAuthFilter.javaPropertyFileLoginModule.javaresourcesMETA-INFservicesorg.apache.kafka.connect.rest.ConnectRestExtensiontestjavaorgapachekafkaconnectrestbasicauthextensionJaasBasicAuthFilterTest.javafilesrcmainjavaorgapachekafkaconnectfileFileStreamSinkConnector.javaFileStreamSinkTask.javaFileStreamSourceConnector.javaFileStreamSourceTask.javatestjavaorgapachekafkaconnectfileFileStreamSinkConnectorTest.javaFileStreamSinkTaskTest.javaFileStreamSourceConnectorTest.javaFileStreamSourceTaskTest.javajsonsrcmainjavaorgapachekafkaconnectjsonJsonConverter.javaJsonConverterConfig.javaJsonDeserializer.javaJsonSchema.javaJsonSerializer.javatestjavaorgapachekafkaconnectjsonJsonConverterTest.javaresourcesconnect-test.propertiesruntimesrcmainjavaorgapachekafkaconnectcliConnectDistributed.javaConnectStandalone.javaconvertersByteArrayConverter.javaDoubleConverter.javaFloatConverter.javaIntegerConverter.javaLongConverter.javaNumberConverter.javaNumberConverterConfig.javaShortConverter.javaruntimeAbstractHerder.javaAbstractStatus.javaConnect.javaConnectMetrics.javaConnectMetricsRegistry.javaConnectorConfig.javaConnectorStatus.javaHerder.javaHerderConnectorContext.javaHerderRequest.javaSinkConnectorConfig.javaSourceConnectorConfig.javaSourceTaskOffsetCommitter.javaStateTracker.javaTargetState.javaTaskConfig.javaTaskStatus.javaTransformationChain.javaWorker.javaWorkerConfig.javaWorkerConfigTransformer.javaWorkerConnector.javaWorkerInfo.javaWorkerSinkTask.javaWorkerSinkTaskContext.javaWorkerSourceTask.javaWorkerSourceTaskContext.javaWorkerTask.javadistributedClusterConfigState.javaConnectProtocol.javaDistributedConfig.javaDistributedHerder.javaNotAssignedException.javaNotLeaderException.javaRebalanceNeededException.javaRequestTargetException.javaWorkerCoordinator.javaWorkerGroupMember.javaWorkerRebalanceListener.javaerrorsDeadLetterQueueReporter.javaErrorHandlingMetrics.javaErrorReporter.javaLogReporter.javaOperation.javaProcessingContext.javaRetryWithToleranceOperator.javaStage.javaToleranceType.javahealthConnectClusterStateImpl.javaisolationDelegatingClassLoader.javaPluginClassLoader.javaPluginDesc.javaPluginScanResult.javaPluginType.javaPluginUtils.javaPlugins.javarestConnectRestConfigurable.javaConnectRestExtensionContextImpl.javaRestClient.javaRestServer.javaentitiesConfigInfo.javaConfigInfos.javaConfigKeyInfo.javaConfigValueInfo.javaConnectorInfo.javaConnectorPluginInfo.javaConnectorStateInfo.javaConnectorType.javaCreateConnectorRequest.javaErrorMessage.javaServerInfo.javaTaskInfo.javaerrorsBadRequestException.javaConnectExceptionMapper.javaConnectRestException.javaresourcesConnectorPluginsResource.javaConnectorsResource.javaRootResource.javautilSSLUtils.javastandaloneStandaloneConfig.javaStandaloneHerder.javastorageConfigBackingStore.javaFileOffsetBackingStore.javaKafkaConfigBackingStore.javaKafkaOffsetBackingStore.javaKafkaStatusBackingStore.javaMemoryConfigBackingStore.javaMemoryOffsetBackingStore.javaMemoryStatusBackingStore.javaOffsetBackingStore.javaOffsetStorageReaderImpl.javaOffsetStorageWriter.javaOffsetUtils.javaStatusBackingStore.javatoolsMockConnector.javaMockSinkConnector.javaMockSinkTask.javaMockSourceConnector.javaMockSourceTask.javaSchemaSourceConnector.javaSchemaSourceTask.javaTransformationDoc.javaVerifiableSinkConnector.javaVerifiableSinkTask.javaVerifiableSourceConnector.javaVerifiableSourceTask.javautilCallback.javaConnectUtils.javaConnectorTaskId.javaConvertingFutureCallback.javaFutureCallback.javaKafkaBasedLog.javaReflectionsUtil.javaSafeObjectInputStream.javaShutdownableThread.javaSinkUtils.javaTable.javaTopicAdmin.javatestjavaorgapachekafkaconnectconvertersByteArrayConverterTest.javaDoubleConverterTest.javaFloatConverterTest.javaIntegerConverterTest.javaLongConverterTest.javaNumberConverterTest.javaShortConverterTest.javaruntimeAbstractHerderTest.javaConnectMetricsTest.javaConnectorConfigTest.javaErrorHandlingTaskTest.javaMockConnectMetrics.javaSourceTaskOffsetCommitterTest.javaStateTrackerTest.javaTestSinkConnector.javaTestSourceConnector.javaTransformationConfigTest.javaWorkerConfigTransformerTest.javaWorkerConnectorTest.javaWorkerSinkTaskTest.javaWorkerSinkTaskThreadedTest.javaWorkerSourceTaskTest.javaWorkerTaskTest.javaWorkerTest.javadistributedDistributedHerderTest.javaWorkerCoordinatorTest.javaerrorsErrorReporterTest.javaRetryWithToleranceOperatorTest.javaisolationDelegatingClassLoaderTest.javaPluginDescTest.javaPluginUtilsTest.javaPluginsTest.javarestRestServerTest.javaentitiesConnectorTypeTest.javaresourcesConnectorPluginsResourceTest.javaConnectorsResourceTest.javaRootResourceTest.javautilSSLUtilsTest.javastandaloneStandaloneHerderTest.javastorageFileOffsetBackingStoreTest.javaKafkaConfigBackingStoreTest.javaKafkaOffsetBackingStoreTest.javaKafkaStatusBackingStoreTest.javaMemoryStatusBackingStoreTest.javaOffsetStorageWriterTest.javautilByteArrayProducerRecordEquals.javaConnectUtilsTest.javaKafkaBasedLogTest.javaShutdownableThreadTest.javaTableTest.javaTestBackgroundThreadExceptionHandler.javaTestFuture.javaThreadedTest.javaTopicAdminTest.javaresourcesMETA-INFservicesorg.apache.kafka.connect.rest.ConnectRestExtensionlog4j.propertiestransformssrcmainjavaorgapachekafkaconnecttransformsCast.javaExtractField.javaFlatten.javaHoistField.javaInsertField.javaMaskField.javaRegexRouter.javaReplaceField.javaSetSchemaMetadata.javaTimestampConverter.javaTimestampRouter.javaValueToKey.javautilNonEmptyListValidator.javaRegexValidator.javaRequirements.javaSchemaUtil.javaSimpleConfig.javatestjavaorgapachekafkaconnecttransformsCastTest.javaExtractFieldTest.javaFlattenTest.javaHoistFieldTest.javaInsertFieldTest.javaMaskFieldTest.javaRegexRouterTest.javaReplaceFieldTest.javaSetSchemaMetadataTest.javaTimestampConverterTest.javaTimestampRouterTest.javaValueToKeyTest.javautilNonEmptyListValidatorTest.javacoresrcmainscalakafkaKafka.scalaadminAclCommand.scalaAdminClient.scalaAdminOperationException.scalaAdminUtils.scalaBrokerApiVersionsCommand.scalaBrokerMetadata.scalaConfigCommand.scalaConsumerGroupCommand.scalaDelegationTokenCommand.scalaDeleteRecordsCommand.scalaLogDirsCommand.scalaPreferredReplicaLeaderElectionCommand.scalaRackAwareMode.scalaReassignPartitionsCommand.scalaTopicCommand.scalaZkSecurityMigrator.scalaapiApiUtils.scalaApiVersion.scalaLeaderAndIsr.scalaRequest.scalaclusterBroker.scalaBrokerEndPoint.scalaCluster.scalaEndPoint.scalaPartition.scalaReplica.scalacommonAdminCommandFailedException.scalaAppInfo.scalaBaseEnum.scalaBrokerEndPointNotAvailableException.scalaClientIdAndBroker.scalaClientIdAndTopic.scalaConfig.scalaGenerateBrokerIdException.scalaInconsistentBrokerIdException.scalaIndexOffsetOverflowException.scalaInterBrokerSendThread.scalaKafkaException.scalaLogCleaningAbortedException.scalaLogSegmentOffsetOverflowException.scalaLongRef.scalaMessageFormatter.scalaMessageReader.scalaNoEpochForPartitionException.scalaOffsetAndMetadata.scalaOffsetsOutOfOrderException.scalaStateChangeFailedException.scalaThreadShutdownException.scalaTopicAlreadyMarkedForDeletionException.scalaTopicAndPartition.scalaUnexpectedAppendOffsetException.scalaUnknownCodecException.scalaZkNodeChangeNotificationListener.scalaconsumerBaseConsumerRecord.scalacontrollerControllerChannelManager.scalaControllerContext.scalaControllerEventManager.scalaControllerState.scalaKafkaController.scalaPartitionStateMachine.scalaReplicaStateMachine.scalaStateChangeLogger.scalaTopicDeletionManager.scalacoordinatorgroupDelayedHeartbeat.scalaDelayedJoin.scalaGroupCoordinator.scalaGroupMetadata.scalaGroupMetadataManager.scalaMemberMetadata.scalaOffsetConfig.scalatransactionDelayedTxnMarker.scalaProducerIdManager.scalaTransactionCoordinator.scalaTransactionLog.scalaTransactionMarkerChannelManager.scalaTransactionMarkerRequestCompletionHandler.scalaTransactionMetadata.scalaTransactionStateManager.scalalogAbstractIndex.scalaCleanerConfig.scalaCorruptIndexException.scalaIndexEntry.scalaLog.scalaLogCleaner.scalaLogCleanerManager.scalaLogConfig.scalaLogManager.scalaLogSegment.scalaLogValidator.scalaOffsetIndex.scalaOffsetMap.scalaProducerStateManager.scalaTimeIndex.scalaTransactionIndex.scalapackage.htmlmessageCompressionCodec.scalametricsKafkaCSVMetricsReporter.scalaKafkaMetricsConfig.scalaKafkaMetricsGroup.scalaKafkaMetricsReporter.scalaKafkaTimer.scalanetworkRequestChannel.scalaSocketServer.scalapackage.htmlsecurityCredentialProvider.scalaSecurityUtils.scalaauthAcl.scalaAuthorizer.scalaOperation.scalaPermissionType.scalaResource.scalaResourceType.scalaSimpleAclAuthorizer.scalaserializerDecoder.scalaserverAbstractFetcherManager.scalaAbstractFetcherThread.scalaAdminManager.scalaBrokerMetadataCheckpoint.scalaBrokerStates.scalaClientQuotaManager.scalaClientRequestQuotaManager.scalaConfigHandler.scalaDelayedCreatePartitions.scalaDelayedDeleteRecords.scalaDelayedDeleteTopics.scalaDelayedFetch.scalaDelayedOperation.scalaDelayedOperationKey.scalaDelayedProduce.scalaDelegationTokenManager.scalaDynamicBrokerConfig.scalaDynamicConfig.scalaDynamicConfigManager.scalaFetchDataInfo.scalaFetchSession.scalaKafkaApis.scalaKafkaConfig.scalaKafkaRequestHandler.scalaKafkaServer.scalaKafkaServerStartable.scalaLogDirFailureChannel.scalaLogOffsetMetadata.scalaMetadataCache.scalaQuotaFactory.scalaReplicaAlterLogDirsManager.scalaReplicaAlterLogDirsThread.scalaReplicaFetcherBlockingSend.scalaReplicaFetcherManager.scalaReplicaFetcherThread.scalaReplicaManager.scalaReplicationQuotaManager.scalaSensorAccess.scalaThrottledChannel.scalacheckpointsCheckpointFile.scalaLeaderEpochCheckpointFile.scalaOffsetCheckpointFile.scalaepochLeaderEpochFileCache.scalapackage.htmltoolsConsoleConsumer.scalaConsoleProducer.scalaConsumerPerformance.scalaDumpLogSegments.scalaEndToEndLatency.scalaGetOffsetShell.scalaJmxTool.scalaMirrorMaker.scalaPerfConfig.scalaReplicaVerificationTool.scalaStateChangeLogMerger.scalaStreamsResetter.javaZooKeeperMainWrapper.scalautilsAnnotations.scalaCommandLineUtils.scalaCoreUtils.scalaDelayedItem.scalaExit.scalaFileLock.scalaImplicits.scalaIteratorTemplate.scalaJson.scalaKafkaScheduler.scalaLog4jController.scalaLogging.scalaMx4jLoader.scalaNotNothing.scalaPasswordEncoder.scalaPool.scalaReplicationUtils.scalaShutdownableThread.scalaThrottler.scalaToolsUtils.scalaTopicFilter.scalaVerifiableProperties.scalaVersionInfo.scalaZkUtils.scalajsonDecodeJson.scalaJsonArray.scalaJsonObject.scalaJsonValue.scalatimerTimer.scalaTimerTask.scalaTimerTaskList.scalaTimingWheel.scalazkAdminZkClient.scalaKafkaZkClient.scalaZkData.scalazookeeperZooKeeperClient.scalatestresourceslog4j.propertiesminikdc-krb5.confminikdc.ldiffscalaintegrationkafkaadminBrokerApiVersionsCommandTest.scalaReassignPartitionsIntegrationTest.scalaapiAdminClientIntegrationTest.scalaAdminClientWithPoliciesIntegrationTest.scalaAuthorizerIntegrationTest.scalaBaseConsumerTest.scalaBaseProducerSendTest.scalaBaseQuotaTest.scalaClientIdQuotaTest.scalaConsumerBounceTest.scalaCustomQuotaCallbackTest.scalaDelegationTokenEndToEndAuthorizationTest.scalaEndToEndAuthorizationTest.scalaEndToEndClusterIdTest.scalaFixedPortTestUtils.scalaGroupAuthorizerIntegrationTest.scalaGroupCoordinatorIntegrationTest.scalaGroupEndToEndAuthorizationTest.scalaIntegrationTestHarness.scalaLegacyAdminClientTest.scalaLogAppendTimeTest.scalaMetricsTest.scalaPlaintextConsumerTest.scalaPlaintextEndToEndAuthorizationTest.scalaPlaintextProducerSendTest.scalaProducerCompressionTest.scalaProducerFailureHandlingTest.scalaRackAwareAutoTopicCreationTest.scalaSaslClientsWithInvalidCredentialsTest.scalaSaslEndToEndAuthorizationTest.scalaSaslGssapiSslEndToEndAuthorizationTest.scalaSaslMultiMechanismConsumerTest.scalaSaslOAuthBearerSslEndToEndAuthorizationTest.scalaSaslPlainPlaintextConsumerTest.scalaSaslPlainSslEndToEndAuthorizationTest.scalaSaslPlaintextConsumerTest.scalaSaslScramSslEndToEndAuthorizationTest.scalaSaslSetup.scalaSaslSslAdminClientIntegrationTest.scalaSaslSslConsumerTest.scalaSslConsumerTest.scalaSslEndToEndAuthorizationTest.scalaSslProducerSendTest.scalaTransactionsBounceTest.scalaTransactionsTest.scalaUserClientIdQuotaTest.scalaUserQuotaTest.scalanetworkDynamicConnectionQuotaTest.scalaserverDelayedFetchTest.scalaDynamicBrokerReconfigurationTest.scalaGssapiAuthenticationTest.scalaMultipleListenersWithAdditionalJaasContextTest.scalaMultipleListenersWithDefaultJaasContextTest.scalaMultipleListenersWithSameSecurityProtocolBaseTest.scalaScramServerStartupTest.scalatoolsMirrorMakerIntegrationTest.scalakafkacommonInterBrokerSendThreadTest.scalasecurityauthResourceTest.scalaminikdcMiniKdc.scalatoolsLogCompactionTester.scalaReplicaVerificationToolTest.scalautilsLoggingTest.scalazkExtendedAclStoreTest.scalaLiteralAclStoreTest.scalaotherkafkakafka.log4j.propertiesReplicationQuotasTestRig.scalaStressTestLog.scalaTestLinearWriteSpeed.scalaTestPurgatoryPerformance.scalaTestTruncate.scalaunitkafkaKafkaConfigTest.scalaadminAclCommandTest.scalaAddPartitionsTest.scalaAdminRackAwareTest.scalaAdminTest.scalaConfigCommandTest.scalaConsumerGroupCommandTest.scalaDelegationTokenCommandTest.scalaDeleteConsumerGroupsTest.scalaDeleteTopicTest.scalaDescribeConsumerGroupTest.scalaListConsumerGroupTest.scalaPreferredReplicaElectionCommandTest.scalaRackAwareTest.scalaReassignPartitionsClusterTest.scalaReassignPartitionsCommandArgsTest.scalaReassignPartitionsCommandTest.scalaReplicationQuotaUtils.scalaResetConsumerGroupOffsetTest.scalaTestAdminUtils.scalaTopicCommandTest.scalaapiApiUtilsTest.scalaApiVersionTest.scalaclusterBrokerEndPointTest.scalaPartitionTest.scalaReplicaTest.scalacommonZkNodeChangeNotificationListenerTest.scalacontrollerControllerEventManagerTest.scalaControllerFailoverTest.scalaControllerIntegrationTest.scalaControllerTestUtils.scalaPartitionLeaderElectionAlgorithmsTest.scalaPartitionStateMachineTest.scalaReplicaStateMachineTest.scalacoordinatorAbstractCoordinatorConcurrencyTest.scalagroupGroupCoordinatorConcurrencyTest.scalaGroupCoordinatorTest.scalaGroupMetadataManagerTest.scalaGroupMetadataTest.scalaMemberMetadataTest.scalatransactionProducerIdManagerTest.scalaTransactionCoordinatorConcurrencyTest.scalaTransactionCoordinatorTest.scalaTransactionLogTest.scalaTransactionMarkerChannelManagerTest.scalaTransactionMarkerRequestCompletionHandlerTest.scalaTransactionMetadataTest.scalaTransactionStateManagerTest.scalaintegrationKafkaServerTestHarness.scalaMetricsDuringTopicCreationDeletionTest.scalaMinIsrConfigTest.scalaUncleanLeaderElectionTest.scalalogAbstractLogCleanerIntegrationTest.scalaBrokerCompressionTest.scalaLogCleanerIntegrationTest.scalaLogCleanerLagIntegrationTest.scalaLogCleanerManagerTest.scalaLogCleanerParameterizedIntegrationTest.scalaLogCleanerTest.scalaLogConfigTest.scalaLogManagerTest.scalaLogSegmentTest.scalaLogTest.scalaLogUtils.scalaLogValidatorTest.scalaOffsetIndexTest.scalaOffsetMapTest.scalaProducerStateManagerTest.scalaTimeIndexTest.scalaTransactionIndexTest.scalametricsKafkaTimerTest.scalaMetricsTest.scalanetworkSocketServerTest.scalasecurityauthAclTest.scalaOperationTest.scalaPermissionTypeTest.scalaResourceTypeTest.scalaSimpleAclAuthorizerTest.scalaZkAuthorizationTest.scalatokendelegationDelegationTokenManagerTest.scalaserverAbstractCreateTopicsRequestTest.scalaAbstractFetcherManagerTest.scalaAbstractFetcherThreadTest.scalaAddPartitionsToTxnRequestTest.scalaAdvertiseBrokerTest.scalaAlterReplicaLogDirsRequestTest.scalaApiVersionsRequestTest.scalaBaseRequestTest.scalaClientQuotaManagerTest.scalaCreateTopicsRequestTest.scalaCreateTopicsRequestWithPolicyTest.scalaDelayedOperationTest.scalaDelegationTokenRequestsOnPlainTextTest.scalaDelegationTokenRequestsTest.scalaDelegationTokenRequestsWithDisableTokenFeatureTest.scalaDeleteTopicsRequestTest.scalaDeleteTopicsRequestWithDeletionDisabledTest.scalaDescribeLogDirsRequestTest.scalaDynamicBrokerConfigTest.scalaDynamicConfigChangeTest.scalaDynamicConfigTest.scalaEdgeCaseRequestTest.scalaFetchRequestDownConversionConfigTest.scalaFetchRequestTest.scalaFetchSessionTest.scalaHighwatermarkPersistenceTest.scalaISRExpirationTest.scalaKafkaApisTest.scalaKafkaConfigTest.scalaKafkaMetricReporterClusterIdTest.scalaKafkaMetricReporterExceptionHandlingTest.scalaKafkaServerTest.scalaLeaderElectionTest.scalaListOffsetsRequestTest.scalaLogDirFailureTest.scalaLogOffsetTest.scalaLogRecoveryTest.scalaMetadataCacheTest.scalaMetadataRequestTest.scalaOffsetsForLeaderEpochRequestTest.scalaProduceRequestTest.scalaReplicaAlterLogDirsThreadTest.scalaReplicaFetchTest.scalaReplicaFetcherThreadTest.scalaReplicaManagerQuotasTest.scalaReplicaManagerTest.scalaReplicationQuotaManagerTest.scalaReplicationQuotasTest.scalaRequestQuotaTest.scalaSaslApiVersionsRequestTest.scalaServerGenerateBrokerIdTest.scalaServerGenerateClusterIdTest.scalaServerMetricsTest.scalaServerShutdownTest.scalaServerStartupTest.scalaSimpleFetchTest.scalaStopReplicaRequestTest.scalaThrottledChannelExpirationTest.scalacheckpointsLeaderEpochCheckpointFileTest.scalaOffsetCheckpointFileTest.scalaepochEpochDrivenReplicationProtocolAcceptanceTest.scalaLeaderEpochFileCacheTest.scalaLeaderEpochIntegrationTest.scalaOffsetsForLeaderEpochTest.scalautilReplicaFetcherMockBlockingSend.scalatoolsConsoleConsumerTest.scalaConsoleProducerTest.scalaConsumerPerformanceTest.scalaDumpLogSegmentsTest.scalaMirrorMakerTest.scalautilsCommandLineUtilsTest.scalaCoreUtilsTest.scalaIteratorTemplateTest.scalaJaasTestUtils.scalaJsonTest.scalaLogCaptureAppender.scalaMockScheduler.scalaMockTime.scalaPasswordEncoderTest.scalaReplicationUtilsTest.scalaSchedulerTest.scalaShutdownableThreadTest.scalaTestUtils.scalaThrottlerTest.scalaTopicFilterTest.scalaZkUtilsTest.scalajsonJsonValueTest.scalatimerMockTimer.scalaTimerTaskListTest.scalaTimerTest.scalazkAdminZkClientTest.scalaEmbeddedZookeeper.scalaKafkaZkClientTest.scalaReassignPartitionsZNodeTest.scalaZkFourLetterWords.scalaZooKeeperTestHarness.scalazookeeperZooKeeperClientTest.scaladoap_Kafka.rdfdocsapi.htmlconfiguration.htmlconnect.htmldesign.htmldocumentationdocumentation.htmlindex.htmlstreamsarchitecture.htmlcore-concepts.htmldeveloper-guideapp-reset-tool.htmlconfig-streams.htmldatatypes.htmldsl-api.htmlindex.htmlinteractive-queries.htmlmanage-topics.htmlmemory-mgmt.htmlprocessor-api.htmlrunning-app.htmlsecurity.htmltesting.htmlwrite-streams.htmlindex.htmlquickstart.htmltutorial.htmlupgrade-guide.htmlecosystem.htmlimagesconsumer-groups.pngiconsNYT.jpgarchitecture--white.pngarchitecture.pngdocumentation--white.pngdocumentation.pngline.pngnew-york.pngrabobank.pngtutorials--white.pngtutorials.pngzalando.pngkafka-apis.pngkafka_log.pngkafka_multidc.pngkafka_multidc_complex.pnglog_anatomy.pnglog_cleaner_anatomy.pnglog_compaction.pnglog_consumer.pngmirror-maker.pngproducer_consumer.pngstreams-architecture-overview.jpgstreams-architecture-states.jpgstreams-architecture-tasks.jpgstreams-architecture-threads.jpgstreams-architecture-topology.jpgstreams-cache-and-commit-interval.pngstreams-concepts-topology.jpgstreams-elastic-scaling-1.pngstreams-elastic-scaling-2.pngstreams-elastic-scaling-3.pngstreams-interactive-queries-01.pngstreams-interactive-queries-02.pngstreams-interactive-queries-03.pngstreams-interactive-queries-api-01.pngstreams-interactive-queries-api-02.pngstreams-session-windows-01.pngstreams-session-windows-02.pngstreams-stateful_operations.pngstreams-table-duality-01.pngstreams-table-duality-02.pngstreams-table-duality-03.pngstreams-table-updates-01.pngstreams-table-updates-02.pngstreams-time-windows-hopping.pngstreams-time-windows-tumbling.pngstreams-welcome.pngtracking_high_level.pngimplementation.htmlintroduction.htmljstemplateData.jsmigration.htmlops.htmlprotocol.htmlquickstart.htmlsecurity.htmlstreamsarchitecture.htmlcore-concepts.htmldeveloper-guideapp-reset-tool.htmlconfig-streams.htmldatatypes.htmldsl-api.htmlindex.htmlinteractive-queries.htmlmanage-topics.htmlmemory-mgmt.htmlprocessor-api.htmlrunning-app.htmlsecurity.htmltesting.htmlwrite-streams.htmlindex.htmlquickstart.htmltutorial.htmlupgrade-guide.htmltoc.htmlupgrade.htmluses.htmlexamplesREADMEbinjava-producer-consumer-demo.shjava-simple-consumer-demo.shsrcmainjavakafkaexamplesConsumer.javaKafkaConsumerProducerDemo.javaKafkaProperties.javaProducer.javagradlegradle.propertiesbuildscript.gradledependencies.gradlerat.gradleresourcesrat-output-to-html.xslspotbugs-exclude.xmljenkins.shjmh-benchmarksREADME.mdjmh.shsrcmainjavaorgapachekafkajmhcacheLRUCacheBenchmark.javacommonTopicBenchmark.javaproducerProducerRecordBenchmark.javarecordRecordBatchIterationBenchmark.javakafka-merge-pr.pylog4j-appendersrcmainjavaorgapachekafkalog4jappenderKafkaLog4jAppender.javatestjavaorgapachekafkalog4jappenderKafkaLog4jAppenderTest.javaMockKafkaLog4jAppender.javarelease.pyrelease_notes.pysettings.gradlestreamsexamplessrcmainjavaorgapachekafkastreamsexamplespageviewJsonTimestampExtractor.javaPageViewTypedDemo.javaPageViewUntypedDemo.javapipePipeDemo.javatemperatureTemperatureDemo.javawordcountWordCountDemo.javaWordCountProcessorDemo.javatestjavaorgapachekafkastreamsexampleswordcountWordCountProcessorTest.javaquickstartjavapom.xmlsrcmainresourcesMETA-INFmavenarchetype-metadata.xmlarchetype-resourcespom.xmlsrcmainjavaLineSplit.javaPipe.javaWordCount.javaresourceslog4j.propertiestestresourcesprojectsbasicarchetype.propertiesgoal.txtpom.xmlsrcmainjavaorgapachekafkastreamsKafkaClientSupplier.javaKafkaStreams.javaKeyValue.javaStreamsBuilder.javaStreamsConfig.javaStreamsMetrics.javaTopology.javaTopologyDescription.javaerrorsBrokerNotFoundException.javaDefaultProductionExceptionHandler.javaDeserializationExceptionHandler.javaInvalidStateStoreException.javaLockException.javaLogAndContinueExceptionHandler.javaLogAndFailExceptionHandler.javaProcessorStateException.javaProductionExceptionHandler.javaStreamsException.javaTaskAssignmentException.javaTaskIdFormatException.javaTaskMigratedException.javaTopologyException.javainternalsApiUtils.javakstreamAggregator.javaConsumed.javaForeachAction.javaGlobalKTable.javaGrouped.javaInitializer.javaJoinWindows.javaJoined.javaKGroupedStream.javaKGroupedTable.javaKStream.javaKTable.javaKeyValueMapper.javaMaterialized.javaMerger.javaPredicate.javaPrinted.javaProduced.javaReducer.javaSerialized.javaSessionWindowedDeserializer.javaSessionWindowedKStream.javaSessionWindowedSerializer.javaSessionWindows.javaSuppressed.javaTimeWindowedDeserializer.javaTimeWindowedKStream.javaTimeWindowedSerializer.javaTimeWindows.javaTransformer.javaTransformerSupplier.javaUnlimitedWindows.javaValueJoiner.javaValueMapper.javaValueMapperWithKey.javaValueTransformer.javaValueTransformerSupplier.javaValueTransformerWithKey.javaValueTransformerWithKeySupplier.javaWindow.javaWindowed.javaWindowedSerdes.javaWindows.javainternalsAbstractStream.javaCacheFlushListener.javaChange.javaChangedDeserializer.javaChangedSerializer.javaConsumedInternal.javaForwardingCacheFlushListener.javaFullChangeSerde.javaFullTimeWindowedSerde.javaGlobalKTableImpl.javaGroupedInternal.javaGroupedStreamAggregateBuilder.javaInternalNameProvider.javaInternalStreamsBuilder.javaKGroupedStreamImpl.javaKGroupedTableImpl.javaKStreamAggProcessorSupplier.javaKStreamAggregate.javaKStreamBranch.javaKStreamFilter.javaKStreamFlatMap.javaKStreamFlatMapValues.javaKStreamGlobalKTableJoin.javaKStreamImpl.javaKStreamJoinWindow.javaKStreamKStreamJoin.javaKStreamKTableJoin.javaKStreamKTableJoinProcessor.javaKStreamMap.javaKStreamMapValues.javaKStreamPassThrough.javaKStreamPeek.javaKStreamPrint.javaKStreamReduce.javaKStreamSessionWindowAggregate.javaKStreamTransform.javaKStreamTransformValues.javaKStreamWindowAggregate.javaKStreamWindowReduce.javaKTableAggregate.javaKTableFilter.javaKTableImpl.javaKTableKTableAbstractJoin.javaKTableKTableAbstractJoinValueGetterSupplier.javaKTableKTableInnerJoin.javaKTableKTableJoinMerger.javaKTableKTableLeftJoin.javaKTableKTableOuterJoin.javaKTableKTableRightJoin.javaKTableMapValues.javaKTableMaterializedValueGetterSupplier.javaKTableProcessorSupplier.javaKTableReduce.javaKTableRepartitionMap.javaKTableSource.javaKTableSourceValueGetterSupplier.javaKTableTransformValues.javaKTableValueGetter.javaKTableValueGetterSupplier.javaKeyValueStoreMaterializer.javaMaterializedInternal.javaPrintForeachAction.javaPrintedInternal.javaProducedInternal.javaSerializedInternal.javaSessionWindow.javaSessionWindowedKStreamImpl.javaTimeWindow.javaTimeWindowedKStreamImpl.javaTupleForwarder.javaUnlimitedWindow.javaWindowedSerializer.javaWindowedStreamPartitioner.javaWindowingDefaults.javagraphBaseJoinProcessorNode.javaBaseRepartitionNode.javaGlobalStoreNode.javaGraphGraceSearchUtil.javaGroupedTableOperationRepartitionNode.javaKTableKTableJoinNode.javaOptimizableRepartitionNode.javaProcessorGraphNode.javaProcessorParameters.javaStateStoreNode.javaStatefulProcessorNode.javaStreamSinkNode.javaStreamSourceNode.javaStreamStreamJoinNode.javaStreamTableJoinNode.javaStreamsGraphNode.javaTableProcessorNode.javaTableSourceNode.javametricsSensors.javasuppressBufferConfigInternal.javaBufferFullStrategy.javaEagerBufferConfigImpl.javaFinalResultsSuppressionBuilder.javaKTableSuppressProcessor.javaStrictBufferConfigImpl.javaSuppressedInternal.javaTimeDefinitions.javaprocessorAbstractNotifyingBatchingRestoreCallback.javaAbstractNotifyingRestoreCallback.javaAbstractProcessor.javaBatchingStateRestoreCallback.javaCancellable.javaDefaultPartitionGrouper.javaExtractRecordMetadataTimestamp.javaFailOnInvalidTimestamp.javaLogAndSkipOnInvalidTimestamp.javaPartitionGrouper.javaProcessor.javaProcessorContext.javaProcessorSupplier.javaPunctuationType.javaPunctuator.javaRecordContext.javaStateRestoreCallback.javaStateRestoreListener.javaStateStore.javaStreamPartitioner.javaTaskId.javaTaskMetadata.javaThreadMetadata.javaTimestampExtractor.javaTo.javaTopicNameExtractor.javaUsePreviousTimeOnInvalidTimestamp.javaWallclockTimestampExtractor.javainternalsAbstractProcessorContext.javaAbstractStateManager.javaAbstractTask.javaAssignedStandbyTasks.javaAssignedStreamsTasks.javaAssignedTasks.javaChangelogReader.javaCheckpointable.javaCompositeRestoreListener.javaDefaultKafkaClientSupplier.javaDefaultStreamPartitioner.javaForwardingDisabledProcessorContext.javaGlobalProcessorContextImpl.javaGlobalStateMaintainer.javaGlobalStateManager.javaGlobalStateManagerImpl.javaGlobalStateUpdateTask.javaGlobalStreamThread.javaInternalProcessorContext.javaInternalTopicConfig.javaInternalTopicManager.javaInternalTopologyBuilder.javaPartitionGroup.javaProcessorContextImpl.javaProcessorNode.javaProcessorNodePunctuator.javaProcessorRecordContext.javaProcessorStateManager.javaProcessorTopology.javaPunctuationQueue.javaPunctuationSchedule.javaQuickUnion.javaRecordBatchingStateRestoreCallback.javaRecordCollector.javaRecordCollectorImpl.javaRecordDeserializer.javaRecordQueue.javaRepartitionTopicConfig.javaRestoringTasks.javaSinkNode.javaSourceNode.javaStamped.javaStampedRecord.javaStandbyContextImpl.javaStandbyTask.javaStateDirectory.javaStateManager.javaStateRestoreCallbackAdapter.javaStateRestorer.javaStaticTopicNameExtractor.javaStoreChangelogReader.javaStreamTask.javaStreamThread.javaStreamsMetadataState.javaStreamsPartitionAssignor.javaTask.javaTaskAction.javaTaskManager.javaThreadStateTransitionValidator.javaTimestampSupplier.javaToInternal.javaUnwindowedChangelogTopicConfig.javaWindowedChangelogTopicConfig.javaassignmentAssignmentInfo.javaClientState.javaStickyTaskAssignor.javaSubscriptionInfo.javaTaskAssignor.javametricsCumulativeCount.javaStreamsMetricsImpl.javastateHostInfo.javaKeyValueBytesStoreSupplier.javaKeyValueIterator.javaKeyValueStore.javaQueryableStoreType.javaQueryableStoreTypes.javaReadOnlyKeyValueStore.javaReadOnlySessionStore.javaReadOnlyWindowStore.javaRocksDBConfigSetter.javaSessionBytesStoreSupplier.javaSessionStore.javaStateSerdes.javaStoreBuilder.javaStoreSupplier.javaStores.javaStreamsMetadata.javaWindowBytesStoreSupplier.javaWindowStore.javaWindowStoreIterator.javainternalsAbstractMergedSortedCacheStoreIterator.javaAbstractStoreBuilder.javaCacheFunction.javaCachedStateStore.javaCachingKeyValueStore.javaCachingSessionStore.javaCachingWindowStore.javaChangeLoggingKeyValueBytesStore.javaChangeLoggingSessionBytesStore.javaChangeLoggingWindowBytesStore.javaCompositeKeyValueIterator.javaCompositeReadOnlyKeyValueStore.javaCompositeReadOnlySessionStore.javaCompositeReadOnlyWindowStore.javaContextualRecord.javaDelegatingPeekingKeyValueIterator.javaFilteredCacheIterator.javaGlobalStateStoreProvider.javaHasNextCondition.javaInMemoryKeyValueLoggedStore.javaInMemoryKeyValueStore.javaInMemoryTimeOrderedKeyValueBuffer.javaKeyValueIterators.javaKeyValueStoreBuilder.javaLRUCacheEntry.javaMemoryLRUCache.javaMemoryNavigableLRUCache.javaMergedSortedCacheKeyValueBytesStoreIterator.javaMergedSortedCacheSessionStoreIterator.javaMergedSortedCacheWindowStoreIterator.javaMergedSortedCacheWindowStoreKeyValueIterator.javaMeteredKeyValueStore.javaMeteredSessionStore.javaMeteredWindowStore.javaMeteredWindowStoreIterator.javaMeteredWindowedKeyValueIterator.javaNamedCache.javaNextIteratorFunction.javaOffsetCheckpoint.javaOrderedBytes.javaPeekingKeyValueIterator.javaQueryableStoreProvider.javaRocksDBSegmentedBytesStore.javaRocksDBSessionStore.javaRocksDBStore.javaRocksDBWindowStore.javaRocksDbKeyValueBytesStoreSupplier.javaRocksDbSessionBytesStoreSupplier.javaRocksDbWindowBytesStoreSupplier.javaSegment.javaSegmentIterator.javaSegmentedBytesStore.javaSegmentedCacheFunction.javaSegments.javaSessionKeySchema.javaSessionStoreBuilder.javaStateStoreProvider.javaStoreChangeLogger.javaStreamThreadStateStoreProvider.javaThreadCache.javaTimeOrderedKeyValueBuffer.javaWindowKeySchema.javaWindowStoreBuilder.javaWindowStoreIteratorWrapper.javaWrappedSessionStoreIterator.javaWrappedStateStore.javaWrappingStoreProvider.javametricsSensors.javatestjavaorgapachekafkastreamsEqualityCheck.javaKafkaStreamsTest.javaKafkaStreamsWrapper.javaKeyValueTest.javaKeyValueTimestamp.javaStreamsBuilderTest.javaStreamsConfigTest.javaTopologyTest.javaTopologyTestDriverWrapper.javaTopologyWrapper.javaerrorsAlwaysContinueProductionExceptionHandler.javaintegrationAbstractJoinIntegrationTest.javaAbstractResetIntegrationTest.javaEosIntegrationTest.javaFineGrainedAutoResetIntegrationTest.javaGlobalKTableEOSIntegrationTest.javaGlobalKTableIntegrationTest.javaGlobalThreadShutDownOrderTest.javaInternalTopicIntegrationTest.javaKStreamAggregationDedupIntegrationTest.javaKStreamAggregationIntegrationTest.javaKTableSourceTopicRestartIntegrationTest.javaPurgeRepartitionTopicIntegrationTest.javaQueryableStateIntegrationTest.javaRegexSourceIntegrationTest.javaRepartitionOptimizingIntegrationTest.javaRepartitionWithMergeOptimizingIntegrationTest.javaResetIntegrationTest.javaResetIntegrationWithSslTest.javaRestoreIntegrationTest.javaStreamStreamJoinIntegrationTest.javaStreamTableJoinIntegrationTest.javaSuppressionDurabilityIntegrationTest.javaSuppressionIntegrationTest.javaTableTableJoinIntegrationTest.javautilsEmbeddedKafkaCluster.javaIntegrationTestUtils.javaKafkaEmbedded.javakstreamJoinWindowsTest.javaMaterializedTest.javaPrintedTest.javaRepartitionTopicNamingTest.javaSessionWindowedDeserializerTest.javaSessionWindowedSerializerTest.javaSessionWindowsTest.javaSuppressedTest.javaTimeWindowedDeserializerTest.javaTimeWindowedSerializerTest.javaTimeWindowsTest.javaUnlimitedWindowsTest.javaWindowTest.javaWindowedSerdesTest.javaWindowsTest.javainternalsAbstractStreamTest.javaFullChangeSerdeTest.javaGlobalKTableJoinsTest.javaInternalStreamsBuilderTest.javaKGroupedStreamImplTest.javaKGroupedTableImplTest.javaKStreamBranchTest.javaKStreamFilterTest.javaKStreamFlatMapTest.javaKStreamFlatMapValuesTest.javaKStreamForeachTest.javaKStreamGlobalKTableJoinTest.javaKStreamGlobalKTableLeftJoinTest.javaKStreamImplTest.javaKStreamKStreamJoinTest.javaKStreamKStreamLeftJoinTest.javaKStreamKTableJoinTest.javaKStreamKTableLeftJoinTest.javaKStreamMapTest.javaKStreamMapValuesTest.javaKStreamPeekTest.javaKStreamPrintTest.javaKStreamSelectKeyTest.javaKStreamSessionWindowAggregateProcessorTest.javaKStreamTransformTest.javaKStreamTransformValuesTest.javaKStreamWindowAggregateTest.javaKStreamWindowReduceTest.javaKTableAggregateTest.javaKTableFilterTest.javaKTableImplTest.javaKTableKTableInnerJoinTest.javaKTableKTableLeftJoinTest.javaKTableKTableOuterJoinTest.javaKTableKTableRightJoinTest.javaKTableMapKeysTest.javaKTableMapValuesTest.javaKTableReduceTest.javaKTableSourceTest.javaKTableTransformValuesTest.javaMaterializedInternalTest.javaSessionWindowTest.javaSessionWindowedKStreamImplTest.javaSuppressScenarioTest.javaSuppressTopologyTest.javaTimeWindowTest.javaTimeWindowedKStreamImplTest.javaUnlimitedWindowTest.javaWindowedStreamPartitionerTest.javagraphGraphGraceSearchUtilTest.javaStreamsGraphTest.javasuppressKTableSuppressProcessorTest.javaperfSimpleBenchmark.javaYahooBenchmark.javaprocessorDefaultPartitionGrouperTest.javaFailOnInvalidTimestampTest.javaLogAndSkipOnInvalidTimestampTest.javaTimestampExtractorTest.javaUsePreviousTimeOnInvalidTimestampTest.javaWallclockTimestampExtractorTest.javainternalsAbstractProcessorContextTest.javaAbstractTaskTest.javaAssignedStreamsTasksTest.javaCompositeRestoreListenerTest.javaCopartitionedTopicsValidatorTest.javaForwardingDisabledProcessorContextTest.javaGlobalStateManagerImplTest.javaGlobalStateTaskTest.javaGlobalStreamThreadTest.javaInternalTopicConfigTest.javaInternalTopicManagerTest.javaInternalTopologyBuilderTest.javaKeyValueStoreMaterializerTest.javaMockChangelogReader.javaMockStreamsMetrics.javaPartitionGroupTest.javaProcessorNodeTest.javaProcessorStateManagerTest.javaProcessorTopologyTest.javaPunctuationQueueTest.javaQuickUnionTest.javaRecordCollectorTest.javaRecordDeserializerTest.javaRecordQueueTest.javaSingleGroupPartitionGrouperStub.javaSinkNodeTest.javaSourceNodeTest.javaStandbyTaskTest.javaStateConsumerTest.javaStateDirectoryTest.javaStateManagerStub.javaStateRestoreCallbackAdapterTest.javaStateRestorerTest.javaStoreChangelogReaderTest.javaStreamTaskTest.javaStreamThreadTest.javaStreamsMetadataStateTest.javaStreamsMetricsImplTest.javaStreamsPartitionAssignorTest.javaTaskManagerTest.javaassignmentAssignmentInfoTest.javaClientStateTest.javaStickyTaskAssignorTest.javaSubscriptionInfoTest.javatestutilLogCaptureAppender.javastateKeyValueStoreTestDriver.javaNoOpWindowStore.javaStateSerdesTest.javaStoresTest.javainternalsAbstractKeyValueStoreTest.javaCachingKeyValueStoreTest.javaCachingSessionStoreTest.javaCachingWindowStoreTest.javaChangeLoggingKeyValueBytesStoreTest.javaChangeLoggingSessionBytesStoreTest.javaChangeLoggingWindowBytesStoreTest.javaCompositeReadOnlyKeyValueStoreTest.javaCompositeReadOnlySessionStoreTest.javaCompositeReadOnlyWindowStoreTest.javaDelegatingPeekingKeyValueIteratorTest.javaFilteredCacheIteratorTest.javaGlobalStateStoreProviderTest.javaInMemoryKeyValueLoggedStoreTest.javaInMemoryKeyValueStoreTest.javaInMemoryLRUCacheStoreTest.javaInMemoryTimeOrderedKeyValueBufferTest.javaKeyValueStoreBuilderTest.javaMergedSortedCacheKeyValueBytesStoreIteratorTest.javaMergedSortedCacheWrappedSessionStoreIteratorTest.javaMergedSortedCacheWrappedWindowStoreIteratorTest.javaMergedSortedCacheWrappedWindowStoreKeyValueIteratorTest.javaMeteredKeyValueStoreTest.javaMeteredSessionStoreTest.javaMeteredWindowStoreTest.javaNamedCacheTest.javaOffsetCheckpointTest.javaQueryableStoreProviderTest.javaReadOnlyWindowStoreStub.javaRocksDBKeyValueStoreTest.javaRocksDBSegmentedBytesStoreTest.javaRocksDBSessionStoreTest.javaRocksDBStoreTest.javaRocksDBWindowStoreTest.javaSegmentIteratorTest.javaSegmentedCacheFunctionTest.javaSegmentsTest.javaSerdeThatDoesntHandleNull.javaSessionKeySchemaTest.javaSessionStoreBuilderTest.javaStoreChangeLoggerTest.javaStreamThreadStateStoreProviderTest.javaThreadCacheTest.javaWindowKeySchemaTest.javaWindowStoreBuilderTest.javaWrappingStoreProviderTest.javatestsBrokerCompatibilityTest.javaEosTestClient.javaEosTestDriver.javaShutdownDeadlockTest.javaSmokeTestClient.javaSmokeTestDriver.javaSmokeTestUtil.javaStreamsBrokerDownResilienceTest.javaStreamsEosTest.javaStreamsSmokeTest.javaStreamsStandByReplicaTest.javaStreamsUpgradeTest.javaSystemTestUtil.javaSystemTestUtilTest.javatoolsStreamsResetterTest.javatestGlobalStateManagerStub.javaInternalMockProcessorContext.javaKStreamTestDriver.javaKTableValueGetterStub.javaKeyValueIteratorStub.javaMockAggregator.javaMockBatchingStateRestoreListener.javaMockClientSupplier.javaMockInitializer.javaMockInternalProcessorContext.javaMockInternalTopicManager.javaMockKeyValueStore.javaMockKeyValueStoreBuilder.javaMockMapper.javaMockPredicate.javaMockProcessor.javaMockProcessorNode.javaMockProcessorSupplier.javaMockReducer.javaMockRestoreCallback.javaMockRestoreConsumer.javaMockSourceNode.javaMockStateRestoreListener.javaMockTimestampExtractor.javaMockValueJoiner.javaNoOpProcessorContext.javaNoOpReadOnlyStore.javaNoOpRecordCollector.javaReadOnlySessionStoreStub.javaSegmentedBytesStoreStub.javaSingletonNoOpValueTransformer.javaStateStoreProviderStub.javaStreamsTestUtils.javaresourceslog4j.propertiesstreams-scalaNOTICEsrcmainscalaorgapachekafkastreamsscalaFunctionConversions.scalaFunctionsCompatConversions.scalaImplicitConversions.scalaSerdes.scalaStreamsBuilder.scalakstreamConsumed.scalaGrouped.scalaJoined.scalaKGroupedStream.scalaKGroupedTable.scalaKStream.scalaKTable.scalaMaterialized.scalaProduced.scalaSessionWindowedKStream.scalaTimeWindowedKStream.scalapackage.scalapackage.scalatestresourceslog4j.propertiesscalaorgapachekafkastreamsscalaStreamToTableJoinScalaIntegrationTestImplicitSerdes.scalaTopologyTest.scalaWordCountTest.scalakstreamConsumedTest.scalaGroupedTest.scalaJoinedTest.scalaKStreamTest.scalaKTableTest.scalaMaterializedTest.scalaProducedTest.scalautilsStreamToTableJoinScalaIntegrationTestBase.scalaStreamToTableJoinTestData.scalaTestDriver.scalatest-utilssrcmainjavaorgapachekafkastreamsTopologyTestDriver.javainternalsQuietStreamsConfig.javaprocessorMockProcessorContext.javatestConsumerRecordFactory.javaOutputVerifier.javatestjavaorgapachekafkastreamsMockProcessorContextTest.javaMockTimeTest.javaTopologyTestDriverTest.javatestConsumerRecordFactoryTest.javaOutputVerifierTest.javaupgrade-system-tests-0100srctestjavaorgapachekafkastreamstestsStreamsUpgradeTest.javaupgrade-system-tests-0101srctestjavaorgapachekafkastreamstestsStreamsUpgradeTest.javaupgrade-system-tests-0102srctestjavaorgapachekafkastreamstestsStreamsUpgradeTest.javaupgrade-system-tests-0110srctestjavaorgapachekafkastreamstestsStreamsUpgradeTest.javaupgrade-system-tests-10srctestjavaorgapachekafkastreamstestsStreamsUpgradeTest.javaupgrade-system-tests-11srctestjavaorgapachekafkastreamstestsStreamsUpgradeTest.javaupgrade-system-tests-20srctestjavaorgapachekafkastreamstestsStreamsUpgradeTest.javatestsMANIFEST.inREADME.mdbintrogdor-run-consume-bench.shtrogdor-run-produce-bench.shtrogdor-run-round-trip.shbootstrap-test-env.shdockerDockerfileducker-akrun_tests.shsshssh-configauthorized_keysconfigid_rsaid_rsa.pubkafkatest__init__.pybenchmarks__init__.pycore__init__.pybenchmark_test.pystreams__init__.pystreams_simple_benchmark_test.pydirectory_layout__init__.pykafka_path.pysanity_checks__init__.pytest_console_consumer.pytest_kafka_version.pytest_performance_services.pytest_verifiable_producer.pyservices__init__.pyconnect.pyconsole_consumer.pykafka__init__.pyconfig.pyconfig_property.pykafka.pytemplateskafka.propertieslog4j.propertiesutil.pykafka_log4j_appender.pylog_compaction_tester.pymirror_maker.pymonitor__init__.pyhttp.pyjmx.pyperformance__init__.pyconsumer_performance.pyend_to_end_latency.pyperformance.pyproducer_performance.pystreams_performance.pytemplatestools_log4j.propertiesreplica_verification_tool.pysecurity__init__.pykafka_acls.pyminikdc.pysecurity_config.pytemplatesjaas.confminikdc.propertiesstreams.pystreams_property.pytemplatesconnect_log4j.propertiesconsole_consumer.propertiesmirror_maker_consumer.propertiesmirror_maker_producer.propertiesproducer.propertiestools_log4j.propertieszookeeper.propertiestransactional_message_copier.pytrogdor__init__.pyfiles_unreadable_fault_spec.pykibosh.pynetwork_partition_fault_spec.pyno_op_task_spec.pyprocess_stop_fault_spec.pyproduce_bench_workload.pyround_trip_workload.pytask_spec.pytemplateslog4j.propertiestrogdor.pyverifiable_client.pyverifiable_consumer.pyverifiable_producer.pyzookeeper.pytests__init__.pyclient__init__.pyclient_compatibility_features_test.pyclient_compatibility_produce_consume_test.pycompression_test.pyconsumer_rolling_upgrade_test.pyconsumer_test.pymessage_format_change_test.pypluggable_test.pyquota_test.pyconnect__init__.pyconnect_distributed_test.pyconnect_rest_test.pyconnect_test.pytemplatesconnect-distributed.propertiesconnect-file-external.propertiesconnect-file-sink.propertiesconnect-file-source.propertiesconnect-standalone.propertiescore__init__.pycompatibility_test_new_broker_test.pyconsumer_group_command_test.pyget_offset_shell_test.pylog_dir_failure_test.pymirror_maker_test.pyproduce_bench_test.pyreassign_partitions_test.pyreplication_test.pyround_trip_fault_test.pysecurity_rolling_upgrade_test.pysecurity_test.pythrottling_test.pytransactions_test.pyupgrade_test.pyzookeeper_security_upgrade_test.pykafka_test.pyproduce_consume_validate.pystreams__init__.pybase_streams_test.pystreams_bounce_test.pystreams_broker_bounce_test.pystreams_broker_compatibility_test.pystreams_broker_down_resilience_test.pystreams_eos_test.pystreams_multiple_rolling_upgrade_test.pystreams_shutdown_deadlock_test.pystreams_smoke_test.pystreams_standby_replica_test.pystreams_upgrade_test.pytools__init__.pykibosh_test.pylog4j_appender_test.pylog_compaction_test.pyreplica_verification_test.pytrogdor_test.pyverifiable_consumer_test.pyutils__init__.pyremote_account.pyutil.pyversion.pysetup.cfgsetup.pyunit__init__.pydirectory_layout__init__.pycheck_project_paths.pysetup.cfgversion__init__.pycheck_version.pytoolssrcmainjavaorgapachekafkatoolsClientCompatibilityTest.javaProducerPerformance.javaPushHttpMetricsReporter.javaThroughputThrottler.javaToolsUtils.javaTransactionalMessageCopier.javaVerifiableConsumer.javaVerifiableLog4jAppender.javaVerifiableProducer.javatrogdoragentAgent.javaAgentClient.javaAgentRestResource.javaWorkerManager.javabasicBasicNode.javaBasicPlatform.javaBasicTopology.javacommonJsonUtil.javaNode.javaPlatform.javaStringExpander.javaThreadUtils.javaTopology.javaWorkerUtils.javacoordinatorCoordinator.javaCoordinatorClient.javaCoordinatorRestResource.javaNodeManager.javaTaskManager.javafaultFilesUnreadableFaultSpec.javaKibosh.javaKiboshFaultController.javaKiboshFaultWorker.javaNetworkPartitionFaultController.javaNetworkPartitionFaultSpec.javaNetworkPartitionFaultWorker.javaProcessStopFaultController.javaProcessStopFaultSpec.javaProcessStopFaultWorker.javarestAgentStatusResponse.javaCoordinatorShutdownRequest.javaCoordinatorStatusResponse.javaCreateTaskRequest.javaCreateWorkerRequest.javaDestroyTaskRequest.javaDestroyWorkerRequest.javaEmpty.javaErrorResponse.javaJsonRestServer.javaMessage.javaRequestConflictException.javaRestExceptionMapper.javaStopTaskRequest.javaStopWorkerRequest.javaTaskDone.javaTaskPending.javaTaskRunning.javaTaskState.javaTaskStopping.javaTasksRequest.javaTasksResponse.javaWorkerDone.javaWorkerReceiving.javaWorkerRunning.javaWorkerStarting.javaWorkerState.javaWorkerStopping.javataskAgentWorkerStatusTracker.javaNoOpTaskController.javaNoOpTaskSpec.javaNoOpTaskWorker.javaTaskController.javaTaskSpec.javaTaskWorker.javaWorkerStatusTracker.javaworkloadConnectionStressSpec.javaConnectionStressWorker.javaConstantPayloadGenerator.javaConsumeBenchSpec.javaConsumeBenchWorker.javaHistogram.javaNullPayloadGenerator.javaPartitionsSpec.javaPayloadGenerator.javaPayloadIterator.javaPayloadKeyType.javaProduceBenchSpec.javaProduceBenchWorker.javaRoundTripWorker.javaRoundTripWorkloadSpec.javaSequentialPayloadGenerator.javaThrottle.javaTopicsSpec.javaUniformRandomPayloadGenerator.javatestjavaorgapachekafkatoolsPushHttpMetricsReporterTest.javatrogdoragentAgentTest.javabasicBasicPlatformTest.javacommonCapturingCommandRunner.javaExpectedTasks.javaJsonSerializationTest.javaMiniTrogdorCluster.javaStringExpanderTest.javaTopologyTest.javaWorkerUtilsTest.javacoordinatorCoordinatorTest.javarestRestExceptionMapperTest.javataskSampleTaskController.javaSampleTaskSpec.javaSampleTaskWorker.javaTaskSpecTest.javaworkloadHistogramTest.javaPayloadGeneratorTest.javaThrottleTest.javaTopicsSpecTest.javaresourceslog4j.propertiesvagrantREADME.mdawsaws-access-keys-commandsaws-example-Vagrantfile.localaws-init.shbase.shbroker.shpackage-base-box.shsystem-test-Vagrantfile.localvagrant-up.shzk.shwrapper.gradle/usr/share/doc/packages//usr/share/doc/packages/kafka-source//usr/share/licenses//usr/share/licenses/kafka-source//usr/src//usr/src/kafka//usr/src/kafka/bin//usr/src/kafka/bin/windows//usr/src/kafka/checkstyle//usr/src/kafka/clients//usr/src/kafka/clients/src//usr/src/kafka/clients/src/main//usr/src/kafka/clients/src/main/java//usr/src/kafka/clients/src/main/java/org//usr/src/kafka/clients/src/main/java/org/apache//usr/src/kafka/clients/src/main/java/org/apache/kafka//usr/src/kafka/clients/src/main/java/org/apache/kafka/clients//usr/src/kafka/clients/src/main/java/org/apache/kafka/clients/admin//usr/src/kafka/clients/src/main/java/org/apache/kafka/clients/admin/internals//usr/src/kafka/clients/src/main/java/org/apache/kafka/clients/consumer//usr/src/kafka/clients/src/main/java/org/apache/kafka/clients/consumer/internals//usr/src/kafka/clients/src/main/java/org/apache/kafka/clients/producer//usr/src/kafka/clients/src/main/java/org/apache/kafka/clients/producer/internals//usr/src/kafka/clients/src/main/java/org/apache/kafka/common//usr/src/kafka/clients/src/main/java/org/apache/kafka/common/acl//usr/src/kafka/clients/src/main/java/org/apache/kafka/common/annotation//usr/src/kafka/clients/src/main/java/org/apache/kafka/common/cache//usr/src/kafka/clients/src/main/java/org/apache/kafka/common/config//usr/src/kafka/clients/src/main/java/org/apache/kafka/common/config/internals//usr/src/kafka/clients/src/main/java/org/apache/kafka/common/config/provider//usr/src/kafka/clients/src/main/java/org/apache/kafka/common/config/types//usr/src/kafka/clients/src/main/java/org/apache/kafka/common/errors//usr/src/kafka/clients/src/main/java/org/apache/kafka/common/header//usr/src/kafka/clients/src/main/java/org/apache/kafka/common/header/internals//usr/src/kafka/clients/src/main/java/org/apache/kafka/common/internals//usr/src/kafka/clients/src/main/java/org/apache/kafka/common/memory//usr/src/kafka/clients/src/main/java/org/apache/kafka/common/metrics//usr/src/kafka/clients/src/main/java/org/apache/kafka/common/metrics/stats//usr/src/kafka/clients/src/main/java/org/apache/kafka/common/network//usr/src/kafka/clients/src/main/java/org/apache/kafka/common/protocol//usr/src/kafka/clients/src/main/java/org/apache/kafka/common/protocol/types//usr/src/kafka/clients/src/main/java/org/apache/kafka/common/record//usr/src/kafka/clients/src/main/java/org/apache/kafka/common/requests//usr/src/kafka/clients/src/main/java/org/apache/kafka/common/resource//usr/src/kafka/clients/src/main/java/org/apache/kafka/common/security//usr/src/kafka/clients/src/main/java/org/apache/kafka/common/security/auth//usr/src/kafka/clients/src/main/java/org/apache/kafka/common/security/authenticator//usr/src/kafka/clients/src/main/java/org/apache/kafka/common/security/kerberos//usr/src/kafka/clients/src/main/java/org/apache/kafka/common/security/oauthbearer//usr/src/kafka/clients/src/main/java/org/apache/kafka/common/security/oauthbearer/internals//usr/src/kafka/clients/src/main/java/org/apache/kafka/common/security/oauthbearer/internals/expiring//usr/src/kafka/clients/src/main/java/org/apache/kafka/common/security/oauthbearer/internals/unsecured//usr/src/kafka/clients/src/main/java/org/apache/kafka/common/security/plain//usr/src/kafka/clients/src/main/java/org/apache/kafka/common/security/plain/internals//usr/src/kafka/clients/src/main/java/org/apache/kafka/common/security/scram//usr/src/kafka/clients/src/main/java/org/apache/kafka/common/security/scram/internals//usr/src/kafka/clients/src/main/java/org/apache/kafka/common/security/ssl//usr/src/kafka/clients/src/main/java/org/apache/kafka/common/security/token//usr/src/kafka/clients/src/main/java/org/apache/kafka/common/security/token/delegation//usr/src/kafka/clients/src/main/java/org/apache/kafka/common/security/token/delegation/internals//usr/src/kafka/clients/src/main/java/org/apache/kafka/common/serialization//usr/src/kafka/clients/src/main/java/org/apache/kafka/common/utils//usr/src/kafka/clients/src/main/java/org/apache/kafka/server//usr/src/kafka/clients/src/main/java/org/apache/kafka/server/policy//usr/src/kafka/clients/src/main/java/org/apache/kafka/server/quota//usr/src/kafka/clients/src/main/resources//usr/src/kafka/clients/src/main/resources/META-INF//usr/src/kafka/clients/src/main/resources/META-INF/services//usr/src/kafka/clients/src/test//usr/src/kafka/clients/src/test/java//usr/src/kafka/clients/src/test/java/org//usr/src/kafka/clients/src/test/java/org/apache//usr/src/kafka/clients/src/test/java/org/apache/kafka//usr/src/kafka/clients/src/test/java/org/apache/kafka/clients//usr/src/kafka/clients/src/test/java/org/apache/kafka/clients/admin//usr/src/kafka/clients/src/test/java/org/apache/kafka/clients/admin/internals//usr/src/kafka/clients/src/test/java/org/apache/kafka/clients/consumer//usr/src/kafka/clients/src/test/java/org/apache/kafka/clients/consumer/internals//usr/src/kafka/clients/src/test/java/org/apache/kafka/clients/producer//usr/src/kafka/clients/src/test/java/org/apache/kafka/clients/producer/internals//usr/src/kafka/clients/src/test/java/org/apache/kafka/common//usr/src/kafka/clients/src/test/java/org/apache/kafka/common/acl//usr/src/kafka/clients/src/test/java/org/apache/kafka/common/cache//usr/src/kafka/clients/src/test/java/org/apache/kafka/common/config//usr/src/kafka/clients/src/test/java/org/apache/kafka/common/config/provider//usr/src/kafka/clients/src/test/java/org/apache/kafka/common/header//usr/src/kafka/clients/src/test/java/org/apache/kafka/common/header/internals//usr/src/kafka/clients/src/test/java/org/apache/kafka/common/internals//usr/src/kafka/clients/src/test/java/org/apache/kafka/common/memory//usr/src/kafka/clients/src/test/java/org/apache/kafka/common/metrics//usr/src/kafka/clients/src/test/java/org/apache/kafka/common/metrics/stats//usr/src/kafka/clients/src/test/java/org/apache/kafka/common/network//usr/src/kafka/clients/src/test/java/org/apache/kafka/common/protocol//usr/src/kafka/clients/src/test/java/org/apache/kafka/common/protocol/types//usr/src/kafka/clients/src/test/java/org/apache/kafka/common/record//usr/src/kafka/clients/src/test/java/org/apache/kafka/common/requests//usr/src/kafka/clients/src/test/java/org/apache/kafka/common/resource//usr/src/kafka/clients/src/test/java/org/apache/kafka/common/security//usr/src/kafka/clients/src/test/java/org/apache/kafka/common/security/auth//usr/src/kafka/clients/src/test/java/org/apache/kafka/common/security/authenticator//usr/src/kafka/clients/src/test/java/org/apache/kafka/common/security/kerberos//usr/src/kafka/clients/src/test/java/org/apache/kafka/common/security/oauthbearer//usr/src/kafka/clients/src/test/java/org/apache/kafka/common/security/oauthbearer/internals//usr/src/kafka/clients/src/test/java/org/apache/kafka/common/security/oauthbearer/internals/expiring//usr/src/kafka/clients/src/test/java/org/apache/kafka/common/security/oauthbearer/internals/unsecured//usr/src/kafka/clients/src/test/java/org/apache/kafka/common/security/plain//usr/src/kafka/clients/src/test/java/org/apache/kafka/common/security/plain/internals//usr/src/kafka/clients/src/test/java/org/apache/kafka/common/security/scram//usr/src/kafka/clients/src/test/java/org/apache/kafka/common/security/scram/internals//usr/src/kafka/clients/src/test/java/org/apache/kafka/common/security/ssl//usr/src/kafka/clients/src/test/java/org/apache/kafka/common/serialization//usr/src/kafka/clients/src/test/java/org/apache/kafka/common/utils//usr/src/kafka/clients/src/test/java/org/apache/kafka/test//usr/src/kafka/clients/src/test/resources//usr/src/kafka/clients/src/test/resources/serializedData//usr/src/kafka/config//usr/src/kafka/connect//usr/src/kafka/connect/api//usr/src/kafka/connect/api/src//usr/src/kafka/connect/api/src/main//usr/src/kafka/connect/api/src/main/java//usr/src/kafka/connect/api/src/main/java/org//usr/src/kafka/connect/api/src/main/java/org/apache//usr/src/kafka/connect/api/src/main/java/org/apache/kafka//usr/src/kafka/connect/api/src/main/java/org/apache/kafka/connect//usr/src/kafka/connect/api/src/main/java/org/apache/kafka/connect/components//usr/src/kafka/connect/api/src/main/java/org/apache/kafka/connect/connector//usr/src/kafka/connect/api/src/main/java/org/apache/kafka/connect/data//usr/src/kafka/connect/api/src/main/java/org/apache/kafka/connect/errors//usr/src/kafka/connect/api/src/main/java/org/apache/kafka/connect/header//usr/src/kafka/connect/api/src/main/java/org/apache/kafka/connect/health//usr/src/kafka/connect/api/src/main/java/org/apache/kafka/connect/rest//usr/src/kafka/connect/api/src/main/java/org/apache/kafka/connect/sink//usr/src/kafka/connect/api/src/main/java/org/apache/kafka/connect/source//usr/src/kafka/connect/api/src/main/java/org/apache/kafka/connect/storage//usr/src/kafka/connect/api/src/main/java/org/apache/kafka/connect/transforms//usr/src/kafka/connect/api/src/main/java/org/apache/kafka/connect/util//usr/src/kafka/connect/api/src/test//usr/src/kafka/connect/api/src/test/java//usr/src/kafka/connect/api/src/test/java/org//usr/src/kafka/connect/api/src/test/java/org/apache//usr/src/kafka/connect/api/src/test/java/org/apache/kafka//usr/src/kafka/connect/api/src/test/java/org/apache/kafka/connect//usr/src/kafka/connect/api/src/test/java/org/apache/kafka/connect/connector//usr/src/kafka/connect/api/src/test/java/org/apache/kafka/connect/data//usr/src/kafka/connect/api/src/test/java/org/apache/kafka/connect/header//usr/src/kafka/connect/api/src/test/java/org/apache/kafka/connect/sink//usr/src/kafka/connect/api/src/test/java/org/apache/kafka/connect/source//usr/src/kafka/connect/api/src/test/java/org/apache/kafka/connect/storage//usr/src/kafka/connect/api/src/test/java/org/apache/kafka/connect/util//usr/src/kafka/connect/basic-auth-extension//usr/src/kafka/connect/basic-auth-extension/src//usr/src/kafka/connect/basic-auth-extension/src/main//usr/src/kafka/connect/basic-auth-extension/src/main/java//usr/src/kafka/connect/basic-auth-extension/src/main/java/org//usr/src/kafka/connect/basic-auth-extension/src/main/java/org/apache//usr/src/kafka/connect/basic-auth-extension/src/main/java/org/apache/kafka//usr/src/kafka/connect/basic-auth-extension/src/main/java/org/apache/kafka/connect//usr/src/kafka/connect/basic-auth-extension/src/main/java/org/apache/kafka/connect/rest//usr/src/kafka/connect/basic-auth-extension/src/main/java/org/apache/kafka/connect/rest/basic//usr/src/kafka/connect/basic-auth-extension/src/main/java/org/apache/kafka/connect/rest/basic/auth//usr/src/kafka/connect/basic-auth-extension/src/main/java/org/apache/kafka/connect/rest/basic/auth/extension//usr/src/kafka/connect/basic-auth-extension/src/main/resources//usr/src/kafka/connect/basic-auth-extension/src/main/resources/META-INF//usr/src/kafka/connect/basic-auth-extension/src/main/resources/META-INF/services//usr/src/kafka/connect/basic-auth-extension/src/test//usr/src/kafka/connect/basic-auth-extension/src/test/java//usr/src/kafka/connect/basic-auth-extension/src/test/java/org//usr/src/kafka/connect/basic-auth-extension/src/test/java/org/apache//usr/src/kafka/connect/basic-auth-extension/src/test/java/org/apache/kafka//usr/src/kafka/connect/basic-auth-extension/src/test/java/org/apache/kafka/connect//usr/src/kafka/connect/basic-auth-extension/src/test/java/org/apache/kafka/connect/rest//usr/src/kafka/connect/basic-auth-extension/src/test/java/org/apache/kafka/connect/rest/basic//usr/src/kafka/connect/basic-auth-extension/src/test/java/org/apache/kafka/connect/rest/basic/auth//usr/src/kafka/connect/basic-auth-extension/src/test/java/org/apache/kafka/connect/rest/basic/auth/extension//usr/src/kafka/connect/file//usr/src/kafka/connect/file/src//usr/src/kafka/connect/file/src/main//usr/src/kafka/connect/file/src/main/java//usr/src/kafka/connect/file/src/main/java/org//usr/src/kafka/connect/file/src/main/java/org/apache//usr/src/kafka/connect/file/src/main/java/org/apache/kafka//usr/src/kafka/connect/file/src/main/java/org/apache/kafka/connect//usr/src/kafka/connect/file/src/main/java/org/apache/kafka/connect/file//usr/src/kafka/connect/file/src/test//usr/src/kafka/connect/file/src/test/java//usr/src/kafka/connect/file/src/test/java/org//usr/src/kafka/connect/file/src/test/java/org/apache//usr/src/kafka/connect/file/src/test/java/org/apache/kafka//usr/src/kafka/connect/file/src/test/java/org/apache/kafka/connect//usr/src/kafka/connect/file/src/test/java/org/apache/kafka/connect/file//usr/src/kafka/connect/json//usr/src/kafka/connect/json/src//usr/src/kafka/connect/json/src/main//usr/src/kafka/connect/json/src/main/java//usr/src/kafka/connect/json/src/main/java/org//usr/src/kafka/connect/json/src/main/java/org/apache//usr/src/kafka/connect/json/src/main/java/org/apache/kafka//usr/src/kafka/connect/json/src/main/java/org/apache/kafka/connect//usr/src/kafka/connect/json/src/main/java/org/apache/kafka/connect/json//usr/src/kafka/connect/json/src/test//usr/src/kafka/connect/json/src/test/java//usr/src/kafka/connect/json/src/test/java/org//usr/src/kafka/connect/json/src/test/java/org/apache//usr/src/kafka/connect/json/src/test/java/org/apache/kafka//usr/src/kafka/connect/json/src/test/java/org/apache/kafka/connect//usr/src/kafka/connect/json/src/test/java/org/apache/kafka/connect/json//usr/src/kafka/connect/json/src/test/resources//usr/src/kafka/connect/runtime//usr/src/kafka/connect/runtime/src//usr/src/kafka/connect/runtime/src/main//usr/src/kafka/connect/runtime/src/main/java//usr/src/kafka/connect/runtime/src/main/java/org//usr/src/kafka/connect/runtime/src/main/java/org/apache//usr/src/kafka/connect/runtime/src/main/java/org/apache/kafka//usr/src/kafka/connect/runtime/src/main/java/org/apache/kafka/connect//usr/src/kafka/connect/runtime/src/main/java/org/apache/kafka/connect/cli//usr/src/kafka/connect/runtime/src/main/java/org/apache/kafka/connect/converters//usr/src/kafka/connect/runtime/src/main/java/org/apache/kafka/connect/runtime//usr/src/kafka/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/distributed//usr/src/kafka/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/errors//usr/src/kafka/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/health//usr/src/kafka/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/isolation//usr/src/kafka/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/rest//usr/src/kafka/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/rest/entities//usr/src/kafka/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/rest/errors//usr/src/kafka/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/rest/resources//usr/src/kafka/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/rest/util//usr/src/kafka/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/standalone//usr/src/kafka/connect/runtime/src/main/java/org/apache/kafka/connect/storage//usr/src/kafka/connect/runtime/src/main/java/org/apache/kafka/connect/tools//usr/src/kafka/connect/runtime/src/main/java/org/apache/kafka/connect/util//usr/src/kafka/connect/runtime/src/test//usr/src/kafka/connect/runtime/src/test/java//usr/src/kafka/connect/runtime/src/test/java/org//usr/src/kafka/connect/runtime/src/test/java/org/apache//usr/src/kafka/connect/runtime/src/test/java/org/apache/kafka//usr/src/kafka/connect/runtime/src/test/java/org/apache/kafka/connect//usr/src/kafka/connect/runtime/src/test/java/org/apache/kafka/connect/converters//usr/src/kafka/connect/runtime/src/test/java/org/apache/kafka/connect/runtime//usr/src/kafka/connect/runtime/src/test/java/org/apache/kafka/connect/runtime/distributed//usr/src/kafka/connect/runtime/src/test/java/org/apache/kafka/connect/runtime/errors//usr/src/kafka/connect/runtime/src/test/java/org/apache/kafka/connect/runtime/isolation//usr/src/kafka/connect/runtime/src/test/java/org/apache/kafka/connect/runtime/rest//usr/src/kafka/connect/runtime/src/test/java/org/apache/kafka/connect/runtime/rest/entities//usr/src/kafka/connect/runtime/src/test/java/org/apache/kafka/connect/runtime/rest/resources//usr/src/kafka/connect/runtime/src/test/java/org/apache/kafka/connect/runtime/rest/util//usr/src/kafka/connect/runtime/src/test/java/org/apache/kafka/connect/runtime/standalone//usr/src/kafka/connect/runtime/src/test/java/org/apache/kafka/connect/storage//usr/src/kafka/connect/runtime/src/test/java/org/apache/kafka/connect/util//usr/src/kafka/connect/runtime/src/test/resources//usr/src/kafka/connect/runtime/src/test/resources/META-INF//usr/src/kafka/connect/runtime/src/test/resources/META-INF/services//usr/src/kafka/connect/transforms//usr/src/kafka/connect/transforms/src//usr/src/kafka/connect/transforms/src/main//usr/src/kafka/connect/transforms/src/main/java//usr/src/kafka/connect/transforms/src/main/java/org//usr/src/kafka/connect/transforms/src/main/java/org/apache//usr/src/kafka/connect/transforms/src/main/java/org/apache/kafka//usr/src/kafka/connect/transforms/src/main/java/org/apache/kafka/connect//usr/src/kafka/connect/transforms/src/main/java/org/apache/kafka/connect/transforms//usr/src/kafka/connect/transforms/src/main/java/org/apache/kafka/connect/transforms/util//usr/src/kafka/connect/transforms/src/test//usr/src/kafka/connect/transforms/src/test/java//usr/src/kafka/connect/transforms/src/test/java/org//usr/src/kafka/connect/transforms/src/test/java/org/apache//usr/src/kafka/connect/transforms/src/test/java/org/apache/kafka//usr/src/kafka/connect/transforms/src/test/java/org/apache/kafka/connect//usr/src/kafka/connect/transforms/src/test/java/org/apache/kafka/connect/transforms//usr/src/kafka/connect/transforms/src/test/java/org/apache/kafka/connect/transforms/util//usr/src/kafka/core//usr/src/kafka/core/src//usr/src/kafka/core/src/main//usr/src/kafka/core/src/main/scala//usr/src/kafka/core/src/main/scala/kafka//usr/src/kafka/core/src/main/scala/kafka/admin//usr/src/kafka/core/src/main/scala/kafka/api//usr/src/kafka/core/src/main/scala/kafka/cluster//usr/src/kafka/core/src/main/scala/kafka/common//usr/src/kafka/core/src/main/scala/kafka/consumer//usr/src/kafka/core/src/main/scala/kafka/controller//usr/src/kafka/core/src/main/scala/kafka/coordinator//usr/src/kafka/core/src/main/scala/kafka/coordinator/group//usr/src/kafka/core/src/main/scala/kafka/coordinator/transaction//usr/src/kafka/core/src/main/scala/kafka/log//usr/src/kafka/core/src/main/scala/kafka/message//usr/src/kafka/core/src/main/scala/kafka/metrics//usr/src/kafka/core/src/main/scala/kafka/network//usr/src/kafka/core/src/main/scala/kafka/security//usr/src/kafka/core/src/main/scala/kafka/security/auth//usr/src/kafka/core/src/main/scala/kafka/serializer//usr/src/kafka/core/src/main/scala/kafka/server//usr/src/kafka/core/src/main/scala/kafka/server/checkpoints//usr/src/kafka/core/src/main/scala/kafka/server/epoch//usr/src/kafka/core/src/main/scala/kafka/tools//usr/src/kafka/core/src/main/scala/kafka/utils//usr/src/kafka/core/src/main/scala/kafka/utils/json//usr/src/kafka/core/src/main/scala/kafka/utils/timer//usr/src/kafka/core/src/main/scala/kafka/zk//usr/src/kafka/core/src/main/scala/kafka/zookeeper//usr/src/kafka/core/src/test//usr/src/kafka/core/src/test/resources//usr/src/kafka/core/src/test/scala//usr/src/kafka/core/src/test/scala/integration//usr/src/kafka/core/src/test/scala/integration/kafka//usr/src/kafka/core/src/test/scala/integration/kafka/admin//usr/src/kafka/core/src/test/scala/integration/kafka/api//usr/src/kafka/core/src/test/scala/integration/kafka/network//usr/src/kafka/core/src/test/scala/integration/kafka/server//usr/src/kafka/core/src/test/scala/integration/kafka/tools//usr/src/kafka/core/src/test/scala/kafka//usr/src/kafka/core/src/test/scala/kafka/common//usr/src/kafka/core/src/test/scala/kafka/security//usr/src/kafka/core/src/test/scala/kafka/security/auth//usr/src/kafka/core/src/test/scala/kafka/security/minikdc//usr/src/kafka/core/src/test/scala/kafka/tools//usr/src/kafka/core/src/test/scala/kafka/utils//usr/src/kafka/core/src/test/scala/kafka/zk//usr/src/kafka/core/src/test/scala/other//usr/src/kafka/core/src/test/scala/other/kafka//usr/src/kafka/core/src/test/scala/unit//usr/src/kafka/core/src/test/scala/unit/kafka//usr/src/kafka/core/src/test/scala/unit/kafka/admin//usr/src/kafka/core/src/test/scala/unit/kafka/api//usr/src/kafka/core/src/test/scala/unit/kafka/cluster//usr/src/kafka/core/src/test/scala/unit/kafka/common//usr/src/kafka/core/src/test/scala/unit/kafka/controller//usr/src/kafka/core/src/test/scala/unit/kafka/coordinator//usr/src/kafka/core/src/test/scala/unit/kafka/coordinator/group//usr/src/kafka/core/src/test/scala/unit/kafka/coordinator/transaction//usr/src/kafka/core/src/test/scala/unit/kafka/integration//usr/src/kafka/core/src/test/scala/unit/kafka/log//usr/src/kafka/core/src/test/scala/unit/kafka/metrics//usr/src/kafka/core/src/test/scala/unit/kafka/network//usr/src/kafka/core/src/test/scala/unit/kafka/security//usr/src/kafka/core/src/test/scala/unit/kafka/security/auth//usr/src/kafka/core/src/test/scala/unit/kafka/security/token//usr/src/kafka/core/src/test/scala/unit/kafka/security/token/delegation//usr/src/kafka/core/src/test/scala/unit/kafka/server//usr/src/kafka/core/src/test/scala/unit/kafka/server/checkpoints//usr/src/kafka/core/src/test/scala/unit/kafka/server/epoch//usr/src/kafka/core/src/test/scala/unit/kafka/server/epoch/util//usr/src/kafka/core/src/test/scala/unit/kafka/tools//usr/src/kafka/core/src/test/scala/unit/kafka/utils//usr/src/kafka/core/src/test/scala/unit/kafka/utils/json//usr/src/kafka/core/src/test/scala/unit/kafka/utils/timer//usr/src/kafka/core/src/test/scala/unit/kafka/zk//usr/src/kafka/core/src/test/scala/unit/kafka/zookeeper//usr/src/kafka/docs//usr/src/kafka/docs/documentation//usr/src/kafka/docs/documentation/streams//usr/src/kafka/docs/documentation/streams/developer-guide//usr/src/kafka/docs/images//usr/src/kafka/docs/images/icons//usr/src/kafka/docs/js//usr/src/kafka/docs/streams//usr/src/kafka/docs/streams/developer-guide//usr/src/kafka/examples//usr/src/kafka/examples/bin//usr/src/kafka/examples/src//usr/src/kafka/examples/src/main//usr/src/kafka/examples/src/main/java//usr/src/kafka/examples/src/main/java/kafka//usr/src/kafka/examples/src/main/java/kafka/examples//usr/src/kafka/gradle//usr/src/kafka/gradle/resources//usr/src/kafka/jmh-benchmarks//usr/src/kafka/jmh-benchmarks/src//usr/src/kafka/jmh-benchmarks/src/main//usr/src/kafka/jmh-benchmarks/src/main/java//usr/src/kafka/jmh-benchmarks/src/main/java/org//usr/src/kafka/jmh-benchmarks/src/main/java/org/apache//usr/src/kafka/jmh-benchmarks/src/main/java/org/apache/kafka//usr/src/kafka/jmh-benchmarks/src/main/java/org/apache/kafka/jmh//usr/src/kafka/jmh-benchmarks/src/main/java/org/apache/kafka/jmh/cache//usr/src/kafka/jmh-benchmarks/src/main/java/org/apache/kafka/jmh/common//usr/src/kafka/jmh-benchmarks/src/main/java/org/apache/kafka/jmh/producer//usr/src/kafka/jmh-benchmarks/src/main/java/org/apache/kafka/jmh/record//usr/src/kafka/log4j-appender//usr/src/kafka/log4j-appender/src//usr/src/kafka/log4j-appender/src/main//usr/src/kafka/log4j-appender/src/main/java//usr/src/kafka/log4j-appender/src/main/java/org//usr/src/kafka/log4j-appender/src/main/java/org/apache//usr/src/kafka/log4j-appender/src/main/java/org/apache/kafka//usr/src/kafka/log4j-appender/src/main/java/org/apache/kafka/log4jappender//usr/src/kafka/log4j-appender/src/test//usr/src/kafka/log4j-appender/src/test/java//usr/src/kafka/log4j-appender/src/test/java/org//usr/src/kafka/log4j-appender/src/test/java/org/apache//usr/src/kafka/log4j-appender/src/test/java/org/apache/kafka//usr/src/kafka/log4j-appender/src/test/java/org/apache/kafka/log4jappender//usr/src/kafka/streams//usr/src/kafka/streams/examples//usr/src/kafka/streams/examples/src//usr/src/kafka/streams/examples/src/main//usr/src/kafka/streams/examples/src/main/java//usr/src/kafka/streams/examples/src/main/java/org//usr/src/kafka/streams/examples/src/main/java/org/apache//usr/src/kafka/streams/examples/src/main/java/org/apache/kafka//usr/src/kafka/streams/examples/src/main/java/org/apache/kafka/streams//usr/src/kafka/streams/examples/src/main/java/org/apache/kafka/streams/examples//usr/src/kafka/streams/examples/src/main/java/org/apache/kafka/streams/examples/pageview//usr/src/kafka/streams/examples/src/main/java/org/apache/kafka/streams/examples/pipe//usr/src/kafka/streams/examples/src/main/java/org/apache/kafka/streams/examples/temperature//usr/src/kafka/streams/examples/src/main/java/org/apache/kafka/streams/examples/wordcount//usr/src/kafka/streams/examples/src/test//usr/src/kafka/streams/examples/src/test/java//usr/src/kafka/streams/examples/src/test/java/org//usr/src/kafka/streams/examples/src/test/java/org/apache//usr/src/kafka/streams/examples/src/test/java/org/apache/kafka//usr/src/kafka/streams/examples/src/test/java/org/apache/kafka/streams//usr/src/kafka/streams/examples/src/test/java/org/apache/kafka/streams/examples//usr/src/kafka/streams/examples/src/test/java/org/apache/kafka/streams/examples/wordcount//usr/src/kafka/streams/quickstart//usr/src/kafka/streams/quickstart/java//usr/src/kafka/streams/quickstart/java/src//usr/src/kafka/streams/quickstart/java/src/main//usr/src/kafka/streams/quickstart/java/src/main/resources//usr/src/kafka/streams/quickstart/java/src/main/resources/META-INF//usr/src/kafka/streams/quickstart/java/src/main/resources/META-INF/maven//usr/src/kafka/streams/quickstart/java/src/main/resources/archetype-resources//usr/src/kafka/streams/quickstart/java/src/main/resources/archetype-resources/src//usr/src/kafka/streams/quickstart/java/src/main/resources/archetype-resources/src/main//usr/src/kafka/streams/quickstart/java/src/main/resources/archetype-resources/src/main/java//usr/src/kafka/streams/quickstart/java/src/main/resources/archetype-resources/src/main/resources//usr/src/kafka/streams/quickstart/java/src/test//usr/src/kafka/streams/quickstart/java/src/test/resources//usr/src/kafka/streams/quickstart/java/src/test/resources/projects//usr/src/kafka/streams/quickstart/java/src/test/resources/projects/basic//usr/src/kafka/streams/src//usr/src/kafka/streams/src/main//usr/src/kafka/streams/src/main/java//usr/src/kafka/streams/src/main/java/org//usr/src/kafka/streams/src/main/java/org/apache//usr/src/kafka/streams/src/main/java/org/apache/kafka//usr/src/kafka/streams/src/main/java/org/apache/kafka/streams//usr/src/kafka/streams/src/main/java/org/apache/kafka/streams/errors//usr/src/kafka/streams/src/main/java/org/apache/kafka/streams/internals//usr/src/kafka/streams/src/main/java/org/apache/kafka/streams/kstream//usr/src/kafka/streams/src/main/java/org/apache/kafka/streams/kstream/internals//usr/src/kafka/streams/src/main/java/org/apache/kafka/streams/kstream/internals/graph//usr/src/kafka/streams/src/main/java/org/apache/kafka/streams/kstream/internals/metrics//usr/src/kafka/streams/src/main/java/org/apache/kafka/streams/kstream/internals/suppress//usr/src/kafka/streams/src/main/java/org/apache/kafka/streams/processor//usr/src/kafka/streams/src/main/java/org/apache/kafka/streams/processor/internals//usr/src/kafka/streams/src/main/java/org/apache/kafka/streams/processor/internals/assignment//usr/src/kafka/streams/src/main/java/org/apache/kafka/streams/processor/internals/metrics//usr/src/kafka/streams/src/main/java/org/apache/kafka/streams/state//usr/src/kafka/streams/src/main/java/org/apache/kafka/streams/state/internals//usr/src/kafka/streams/src/main/java/org/apache/kafka/streams/state/internals/metrics//usr/src/kafka/streams/src/test//usr/src/kafka/streams/src/test/java//usr/src/kafka/streams/src/test/java/org//usr/src/kafka/streams/src/test/java/org/apache//usr/src/kafka/streams/src/test/java/org/apache/kafka//usr/src/kafka/streams/src/test/java/org/apache/kafka/streams//usr/src/kafka/streams/src/test/java/org/apache/kafka/streams/errors//usr/src/kafka/streams/src/test/java/org/apache/kafka/streams/integration//usr/src/kafka/streams/src/test/java/org/apache/kafka/streams/integration/utils//usr/src/kafka/streams/src/test/java/org/apache/kafka/streams/kstream//usr/src/kafka/streams/src/test/java/org/apache/kafka/streams/kstream/internals//usr/src/kafka/streams/src/test/java/org/apache/kafka/streams/kstream/internals/graph//usr/src/kafka/streams/src/test/java/org/apache/kafka/streams/kstream/internals/suppress//usr/src/kafka/streams/src/test/java/org/apache/kafka/streams/perf//usr/src/kafka/streams/src/test/java/org/apache/kafka/streams/processor//usr/src/kafka/streams/src/test/java/org/apache/kafka/streams/processor/internals//usr/src/kafka/streams/src/test/java/org/apache/kafka/streams/processor/internals/assignment//usr/src/kafka/streams/src/test/java/org/apache/kafka/streams/processor/internals/testutil//usr/src/kafka/streams/src/test/java/org/apache/kafka/streams/state//usr/src/kafka/streams/src/test/java/org/apache/kafka/streams/state/internals//usr/src/kafka/streams/src/test/java/org/apache/kafka/streams/tests//usr/src/kafka/streams/src/test/java/org/apache/kafka/streams/tools//usr/src/kafka/streams/src/test/java/org/apache/kafka/test//usr/src/kafka/streams/src/test/resources//usr/src/kafka/streams/streams-scala//usr/src/kafka/streams/streams-scala/src//usr/src/kafka/streams/streams-scala/src/main//usr/src/kafka/streams/streams-scala/src/main/scala//usr/src/kafka/streams/streams-scala/src/main/scala/org//usr/src/kafka/streams/streams-scala/src/main/scala/org/apache//usr/src/kafka/streams/streams-scala/src/main/scala/org/apache/kafka//usr/src/kafka/streams/streams-scala/src/main/scala/org/apache/kafka/streams//usr/src/kafka/streams/streams-scala/src/main/scala/org/apache/kafka/streams/scala//usr/src/kafka/streams/streams-scala/src/main/scala/org/apache/kafka/streams/scala/kstream//usr/src/kafka/streams/streams-scala/src/test//usr/src/kafka/streams/streams-scala/src/test/resources//usr/src/kafka/streams/streams-scala/src/test/scala//usr/src/kafka/streams/streams-scala/src/test/scala/org//usr/src/kafka/streams/streams-scala/src/test/scala/org/apache//usr/src/kafka/streams/streams-scala/src/test/scala/org/apache/kafka//usr/src/kafka/streams/streams-scala/src/test/scala/org/apache/kafka/streams//usr/src/kafka/streams/streams-scala/src/test/scala/org/apache/kafka/streams/scala//usr/src/kafka/streams/streams-scala/src/test/scala/org/apache/kafka/streams/scala/kstream//usr/src/kafka/streams/streams-scala/src/test/scala/org/apache/kafka/streams/scala/utils//usr/src/kafka/streams/test-utils//usr/src/kafka/streams/test-utils/src//usr/src/kafka/streams/test-utils/src/main//usr/src/kafka/streams/test-utils/src/main/java//usr/src/kafka/streams/test-utils/src/main/java/org//usr/src/kafka/streams/test-utils/src/main/java/org/apache//usr/src/kafka/streams/test-utils/src/main/java/org/apache/kafka//usr/src/kafka/streams/test-utils/src/main/java/org/apache/kafka/streams//usr/src/kafka/streams/test-utils/src/main/java/org/apache/kafka/streams/internals//usr/src/kafka/streams/test-utils/src/main/java/org/apache/kafka/streams/processor//usr/src/kafka/streams/test-utils/src/main/java/org/apache/kafka/streams/test//usr/src/kafka/streams/test-utils/src/test//usr/src/kafka/streams/test-utils/src/test/java//usr/src/kafka/streams/test-utils/src/test/java/org//usr/src/kafka/streams/test-utils/src/test/java/org/apache//usr/src/kafka/streams/test-utils/src/test/java/org/apache/kafka//usr/src/kafka/streams/test-utils/src/test/java/org/apache/kafka/streams//usr/src/kafka/streams/test-utils/src/test/java/org/apache/kafka/streams/test//usr/src/kafka/streams/upgrade-system-tests-0100//usr/src/kafka/streams/upgrade-system-tests-0100/src//usr/src/kafka/streams/upgrade-system-tests-0100/src/test//usr/src/kafka/streams/upgrade-system-tests-0100/src/test/java//usr/src/kafka/streams/upgrade-system-tests-0100/src/test/java/org//usr/src/kafka/streams/upgrade-system-tests-0100/src/test/java/org/apache//usr/src/kafka/streams/upgrade-system-tests-0100/src/test/java/org/apache/kafka//usr/src/kafka/streams/upgrade-system-tests-0100/src/test/java/org/apache/kafka/streams//usr/src/kafka/streams/upgrade-system-tests-0100/src/test/java/org/apache/kafka/streams/tests//usr/src/kafka/streams/upgrade-system-tests-0101//usr/src/kafka/streams/upgrade-system-tests-0101/src//usr/src/kafka/streams/upgrade-system-tests-0101/src/test//usr/src/kafka/streams/upgrade-system-tests-0101/src/test/java//usr/src/kafka/streams/upgrade-system-tests-0101/src/test/java/org//usr/src/kafka/streams/upgrade-system-tests-0101/src/test/java/org/apache//usr/src/kafka/streams/upgrade-system-tests-0101/src/test/java/org/apache/kafka//usr/src/kafka/streams/upgrade-system-tests-0101/src/test/java/org/apache/kafka/streams//usr/src/kafka/streams/upgrade-system-tests-0101/src/test/java/org/apache/kafka/streams/tests//usr/src/kafka/streams/upgrade-system-tests-0102//usr/src/kafka/streams/upgrade-system-tests-0102/src//usr/src/kafka/streams/upgrade-system-tests-0102/src/test//usr/src/kafka/streams/upgrade-system-tests-0102/src/test/java//usr/src/kafka/streams/upgrade-system-tests-0102/src/test/java/org//usr/src/kafka/streams/upgrade-system-tests-0102/src/test/java/org/apache//usr/src/kafka/streams/upgrade-system-tests-0102/src/test/java/org/apache/kafka//usr/src/kafka/streams/upgrade-system-tests-0102/src/test/java/org/apache/kafka/streams//usr/src/kafka/streams/upgrade-system-tests-0102/src/test/java/org/apache/kafka/streams/tests//usr/src/kafka/streams/upgrade-system-tests-0110//usr/src/kafka/streams/upgrade-system-tests-0110/src//usr/src/kafka/streams/upgrade-system-tests-0110/src/test//usr/src/kafka/streams/upgrade-system-tests-0110/src/test/java//usr/src/kafka/streams/upgrade-system-tests-0110/src/test/java/org//usr/src/kafka/streams/upgrade-system-tests-0110/src/test/java/org/apache//usr/src/kafka/streams/upgrade-system-tests-0110/src/test/java/org/apache/kafka//usr/src/kafka/streams/upgrade-system-tests-0110/src/test/java/org/apache/kafka/streams//usr/src/kafka/streams/upgrade-system-tests-0110/src/test/java/org/apache/kafka/streams/tests//usr/src/kafka/streams/upgrade-system-tests-10//usr/src/kafka/streams/upgrade-system-tests-10/src//usr/src/kafka/streams/upgrade-system-tests-10/src/test//usr/src/kafka/streams/upgrade-system-tests-10/src/test/java//usr/src/kafka/streams/upgrade-system-tests-10/src/test/java/org//usr/src/kafka/streams/upgrade-system-tests-10/src/test/java/org/apache//usr/src/kafka/streams/upgrade-system-tests-10/src/test/java/org/apache/kafka//usr/src/kafka/streams/upgrade-system-tests-10/src/test/java/org/apache/kafka/streams//usr/src/kafka/streams/upgrade-system-tests-10/src/test/java/org/apache/kafka/streams/tests//usr/src/kafka/streams/upgrade-system-tests-11//usr/src/kafka/streams/upgrade-system-tests-11/src//usr/src/kafka/streams/upgrade-system-tests-11/src/test//usr/src/kafka/streams/upgrade-system-tests-11/src/test/java//usr/src/kafka/streams/upgrade-system-tests-11/src/test/java/org//usr/src/kafka/streams/upgrade-system-tests-11/src/test/java/org/apache//usr/src/kafka/streams/upgrade-system-tests-11/src/test/java/org/apache/kafka//usr/src/kafka/streams/upgrade-system-tests-11/src/test/java/org/apache/kafka/streams//usr/src/kafka/streams/upgrade-system-tests-11/src/test/java/org/apache/kafka/streams/tests//usr/src/kafka/streams/upgrade-system-tests-20//usr/src/kafka/streams/upgrade-system-tests-20/src//usr/src/kafka/streams/upgrade-system-tests-20/src/test//usr/src/kafka/streams/upgrade-system-tests-20/src/test/java//usr/src/kafka/streams/upgrade-system-tests-20/src/test/java/org//usr/src/kafka/streams/upgrade-system-tests-20/src/test/java/org/apache//usr/src/kafka/streams/upgrade-system-tests-20/src/test/java/org/apache/kafka//usr/src/kafka/streams/upgrade-system-tests-20/src/test/java/org/apache/kafka/streams//usr/src/kafka/streams/upgrade-system-tests-20/src/test/java/org/apache/kafka/streams/tests//usr/src/kafka/tests//usr/src/kafka/tests/bin//usr/src/kafka/tests/docker//usr/src/kafka/tests/docker/ssh//usr/src/kafka/tests/kafkatest//usr/src/kafka/tests/kafkatest/benchmarks//usr/src/kafka/tests/kafkatest/benchmarks/core//usr/src/kafka/tests/kafkatest/benchmarks/streams//usr/src/kafka/tests/kafkatest/directory_layout//usr/src/kafka/tests/kafkatest/sanity_checks//usr/src/kafka/tests/kafkatest/services//usr/src/kafka/tests/kafkatest/services/kafka//usr/src/kafka/tests/kafkatest/services/kafka/templates//usr/src/kafka/tests/kafkatest/services/monitor//usr/src/kafka/tests/kafkatest/services/performance//usr/src/kafka/tests/kafkatest/services/performance/templates//usr/src/kafka/tests/kafkatest/services/security//usr/src/kafka/tests/kafkatest/services/security/templates//usr/src/kafka/tests/kafkatest/services/templates//usr/src/kafka/tests/kafkatest/services/trogdor//usr/src/kafka/tests/kafkatest/services/trogdor/templates//usr/src/kafka/tests/kafkatest/tests//usr/src/kafka/tests/kafkatest/tests/client//usr/src/kafka/tests/kafkatest/tests/connect//usr/src/kafka/tests/kafkatest/tests/connect/templates//usr/src/kafka/tests/kafkatest/tests/core//usr/src/kafka/tests/kafkatest/tests/streams//usr/src/kafka/tests/kafkatest/tests/tools//usr/src/kafka/tests/kafkatest/utils//usr/src/kafka/tests/unit//usr/src/kafka/tests/unit/directory_layout//usr/src/kafka/tests/unit/version//usr/src/kafka/tools//usr/src/kafka/tools/src//usr/src/kafka/tools/src/main//usr/src/kafka/tools/src/main/java//usr/src/kafka/tools/src/main/java/org//usr/src/kafka/tools/src/main/java/org/apache//usr/src/kafka/tools/src/main/java/org/apache/kafka//usr/src/kafka/tools/src/main/java/org/apache/kafka/tools//usr/src/kafka/tools/src/main/java/org/apache/kafka/trogdor//usr/src/kafka/tools/src/main/java/org/apache/kafka/trogdor/agent//usr/src/kafka/tools/src/main/java/org/apache/kafka/trogdor/basic//usr/src/kafka/tools/src/main/java/org/apache/kafka/trogdor/common//usr/src/kafka/tools/src/main/java/org/apache/kafka/trogdor/coordinator//usr/src/kafka/tools/src/main/java/org/apache/kafka/trogdor/fault//usr/src/kafka/tools/src/main/java/org/apache/kafka/trogdor/rest//usr/src/kafka/tools/src/main/java/org/apache/kafka/trogdor/task//usr/src/kafka/tools/src/main/java/org/apache/kafka/trogdor/workload//usr/src/kafka/tools/src/test//usr/src/kafka/tools/src/test/java//usr/src/kafka/tools/src/test/java/org//usr/src/kafka/tools/src/test/java/org/apache//usr/src/kafka/tools/src/test/java/org/apache/kafka//usr/src/kafka/tools/src/test/java/org/apache/kafka/tools//usr/src/kafka/tools/src/test/java/org/apache/kafka/trogdor//usr/src/kafka/tools/src/test/java/org/apache/kafka/trogdor/agent//usr/src/kafka/tools/src/test/java/org/apache/kafka/trogdor/basic//usr/src/kafka/tools/src/test/java/org/apache/kafka/trogdor/common//usr/src/kafka/tools/src/test/java/org/apache/kafka/trogdor/coordinator//usr/src/kafka/tools/src/test/java/org/apache/kafka/trogdor/rest//usr/src/kafka/tools/src/test/java/org/apache/kafka/trogdor/task//usr/src/kafka/tools/src/test/java/org/apache/kafka/trogdor/workload//usr/src/kafka/tools/src/test/resources//usr/src/kafka/vagrant//usr/src/kafka/vagrant/aws/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -gobs://build.opensuse.org/openSUSE:Maintenance:17387/openSUSE_Backports_SLE-15-SP3_Update/28b22bb64fbe410787a841c9322a915a-kafka.openSUSE_Backports_SLE-15-SP3_Updatedrpmxz5ppc64le-suse-linux                                                                                                   !"#$%&'()*+,-./01234566789:;<=>?@AA  AA        B BB C                                      BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBDBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB        directoryASCII textUTF-8 Unicode text, with very long linesASCII text, with very long linesRuby script, ASCII textPOSIX shell script, ASCII text executableBourne-Again shell script, ASCII text executableDOS batch file, ASCII textXML 1.0 document, ASCII textexported SGML document, ASCII textJava source, ASCII textJava source, ASCII text, with very long linesHTML document, ASCII textC source, ASCII textC++ source, ASCII textJava source, UTF-8 Unicode textAlgol 68 source, ASCII textC source, ASCII text, with very long linesUTF-8 Unicode textXML 1.0 document, ASCII text, with very long linesHTML document, ASCII text, with very long linesPNG image data, 474 x 252, 8-bit/color RGBA, non-interlacedJPEG image data, JFIF standard 1.02, aspect ratio, density 100x100, segment length 16, baseline, precision 8, 152x117, frames 3PNG image data, 81 x 66, 8-bit/color RGBA, non-interlacedPNG image data, 64 x 23, 8-bit/color RGBA, non-interlacedPNG image data, 183 x 26, 8-bit/color RGBA, non-interlacedPNG image data, 116 x 23, 8-bit/color RGBA, non-interlacedPNG image data, 112 x 23, 8-bit/color RGBA, non-interlacedPNG image data, 1069 x 899, 8-bit/color RGBA, non-interlacedPNG image data, 538 x 538, 8-bit/color RGBA, non-interlacedPNG image data, 416 x 387, 8-bit/color RGB, non-interlacedPNG image data, 612 x 465, 8-bit/color RGBA, non-interlacedPNG image data, 416 x 267, 8-bit/color RGBA, non-interlacedPNG image data, 665 x 209, 8-bit/color RGBA, non-interlacedPNG image data, 592 x 399, 8-bit/color RGBA, non-interlacedPNG image data, 2041 x 1243, 8-bit/color RGBA, non-interlacedPNG image data, 555 x 152, 8-bit/color RGBA, non-interlacedPNG image data, 258 x 180, 8-bit/color RGBA, non-interlacedJPEG image data, Exif standard: [TIFF image data, big-endian, direntries=12, height=1536, bps=0, PhotometricIntepretation=RGB, orientation=upper-left, width=2048], baseline, precision 8, 1882x1536, frames 3JPEG image data, Exif standard: [TIFF image data, big-endian, direntries=12, height=1536, bps=0, PhotometricIntepretation=RGB, orientation=upper-left, width=2048], baseline, precision 8, 893x696, frames 3JPEG image data, Exif standard: [TIFF image data, big-endian, direntries=12, height=1536, bps=0, PhotometricIntepretation=RGB, orientation=upper-left, width=2048], baseline, precision 8, 869x671, frames 3JPEG image data, Exif standard: [TIFF image data, big-endian, direntries=12, height=1536, bps=0, PhotometricIntepretation=RGB, orientation=upper-left, width=2048], baseline, precision 8, 1130x727, frames 3JPEG image data, Exif standard: [TIFF image data, big-endian, direntries=12, height=1536, bps=0, PhotometricIntepretation=RGB, orientation=upper-left, width=2048], baseline, precision 8, 1080x1291, frames 3PNG image data, 1087 x 413, 8-bit/color RGBA, non-interlacedJPEG image data, Exif standard: [TIFF image data, big-endian, direntries=12, height=1536, bps=0, PhotometricIntepretation=RGB, orientation=upper-left, width=2048], baseline, precision 8, 883x1239, frames 3PNG image data, 911 x 659, 8-bit/color RGBA, non-interlacedPNG image data, 899 x 731, 8-bit/color RGBA, non-interlacedPNG image data, 913 x 705, 8-bit/color RGBA, non-interlacedPNG image data, 1091 x 468, 8-bit/color RGBA, non-interlacedPNG image data, 884 x 480, 8-bit/color RGBA, non-interlacedPNG image data, 687 x 745, 8-bit/color RGBA, non-interlacedPNG image data, 948 x 611, 8-bit/color RGBA, non-interlacedPNG image data, 994 x 597, 8-bit/color RGBA, non-interlacedPNG image data, 688 x 486, 8-bit/color RGBA, non-interlacedPNG image data, 966 x 736, 8-bit/color RGBA, non-interlacedPNG image data, 280 x 218, 8-bit/color RGBA, non-interlacedPNG image data, 540 x 770, 8-bit/color RGBA, non-interlacedPNG image data, 927 x 770, 8-bit/color RGBA, non-interlacedPNG image data, 631 x 1083, 8-bit/color RGBA, non-interlacedPNG image data, 631 x 1045, 8-bit/color RGBA, non-interlacedPNG image data, 762 x 781, 8-bit/color RGBA, non-interlacedPNG image data, 762 x 476, 8-bit/color RGBA, non-interlacedPNG image data, 930 x 634, 8-bit/color RGBA, non-interlacedPNG image data, 452 x 347, 8-bit/color RGB, non-interlacedHTML document, UTF-8 Unicode text, with very long linesPython script, ASCII text executableASCII text, with no line terminatorsPython script, ASCII text executable, with very long lines  !"#$%&'()*+,-./0RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRLiWoHvtpMutf-8f970092d52dfc2d9f95469df628b7bb1b7e94daf1e768349e60126f06ce5196f? 7zXZ !t/L8]"k%&^) M{j{ ֧Q7jȭ͵f<n a!Ͼr z\&ᒩ71?b}oߡa-ȶ*Ū^s̪^. IWJ*1&v,v&dT:  dPx8s]G0«G͏ 3ּ+b6&Pk hB~Y5b<oUElOLl8ڳFi9bXb&уS1ۛQmʁB6ַ?* ]:򄏚^ w'~?Gut1j1t"|d9\] Xq?ZAUd= Y sw,-Q'.b&y9ʣ`j%/gkq.2TX;) +\̗g:TH(3&P |$j/|S VC"!:@vƚ+NLEEJ#&oOū5kU(uY2ǮEP~ eX_!'|Pp$S n=:_KJ{H4BE-s08_ky0x\ǰD!LåP-0M}q  OiidMi[҂2P~d^cСOX=Z""y B]rtťz("a+s ~ݭfqݘ0#YW30ze֮1J+&)?:%igۙArTWCw<;n'V k" ? m> dg>O!IOGgst}B Cĺ?. ˾V62x9%O@.q2i^c`caI[c`}hIsjE|EԕO #dVXJ0JxyKu͑ vY3@2 Qhz-L+ يdHFR.kגIn/r)3,h˯߶<sH41ZC@g<򽕛d&4a 2)+j4MEc~ߖapU|\uz,E-Cֽgm!Vy:Q5*Q=?8 w] hMp䯒Zh-™ʠ(6Mlsb$Y?愍OEMGj=u .9u5M8cĵ 0ެ NJHjtV~lf)Gq&~>@IHbMYA0M`8 'ETs H>-gq̿|ێ{fQeϮU6/ ni}f5fWӔ>7W8-~pA{ΒzZPfy, iYbA޶GZۜfxTcog `Lhsu)1a#XT%4jG`I$c{]>Sg W+ɨ\XkxI8nv#3:9ߧSW}Ǩ#Vߓu;Ce_O/__cE8Uzekғbx/*qCg$^9IeS3$X>ǣHWX,kD|;x; & FN9Rr~uKqB%NfDNܜ`#zE"֝Iͮ+3v>S.S_/OG=D68N`7`R9ϡV\V2V%/(Ht VSت<_ȝ#9F(zw[u;^}UX[=*D+gyE6AGu PFԆu -$o7%qhP6BH?XBBh i q;xϨt;f[/!)kaf5b5!.fo>Q8jo?vB8fiҊ}~EZiN 1@SXJFBCEƬFvuy#+?;YK+6L)^mk]]} 0C+xWovjg3gaTW@uq2g" 5?Bq*C:W+z.f&-vV/wE5U+#0|?u1`0fȂK]>br8Wh0,'"gݥBt)7=@<;֩KT ং~/Fd3Ͽ;D-&+!90+8<_rIsI r7 F(jweW"=B9;ʕlٺDib\c^4#Υ@*E'mZpqqTn NGM89w4zڜ떲x2ֻA.DH3ݰE&)z5=*v:dsOLc'$M y`fh`_a+i0S_&]IsI@ӥyD~Fޢ .as>}4ciLF,V !5mI\#~JC(!}彟  M(5!^:'v4E0<۲|& M ־MxX?'k!;e>ѻC1/[wO\Lq)q"2J6+~@KHBcԂ%6xt0Ԫ]DPݝ>Vox5h2Oߧ[3Ogf)/m1'Wݠi"߭zcIF^[=GU)} :֪_R7ezjHD%hխzu6|hn#zH/Sey֟y DG_7V2{WUoxfĜ& 8X! UNưaqG潲%Tgt ]Ff s'{jқ APx1zZ,qJ10AO$bqJ6,r >8WS3L6? "mݠ85J,Qh/{(s5p'PRc¤q3\0!= 84$n!Tʳ,u})>>bK&wcV>E>rKDzଈ!R|S`/1WAZqKƢ?o.᫅!8:\ +א(d~:7 4.ڰF*Je"D ]:15;epH@\gZ*}h2t̬N+>g9Xa'A~d1&Y)wd<<6Gބ~(൏",H&o`[%]Sy#΀꠷ssdB;);zQEg\m'I7"AxbhKh-C/6RT?kuLhWjfO/ove{D |ޮ  DIpUx^JӕEΘO]fzw}JK%=&銳JB/A,ٗ%oWi  w0xX@K¼60:#R@N6|6Xկ^“+ӣOUh,_/z:aŹ;+qIKq3pls7o2)wg_7tgvaM Yt:gVxMvp-JejzFz`)aqڏ$LԤ%S@0Hߝ )~h6n ^z(RO&gMW'EC.=8t;Ͻ[<b}/2>Ũ. BVhޡiiu:G-@[hoTF5tRMVXș/ kdF,q2DnM91pI:@QccvC7tɰvFrTɞy56I2-خk=A*;`+MFN(ɢvz'K WQ@2(EN/EBs:32*#;\qµRN$ H`=G E9 D^'+Pǎפ_.zN Tąʵ%(Ƴ}inFt߀goH}'f&a"4'5#q(ah6rO &lj6B_D:?4}|W@Gp%K`0@$GFrrz}hlCaC;*uB)9@&MmsX! mJ;$ɚKTuwE?8:im qw>HkcYj?e-zV&]WY_Oe(#ﺚvO8CT"3䛝pN.7=GpsxEOqm. t/JrŒobI3`Y*fb5(JdPR:HrФB%"[QcĹݡ_olߦUjt]z"CA< _XerTܠ&zyv֞9 hgAƏ~0PM(Cލ+w/ܑ1~zpɓv5Mo.sqt9„QO_]6)p99xU*@kQ1,Bw<ĠMUa!I uj%sTJu!g4JB sCӆW'XUbD;yl=o$NTƌq>eH#m戏)e-ԶO_]DzI'D*VQfv-tA YE k2g[gU :7pA9g&(p-c nXg.GYLJ(fQagcf݇, 1Քf?1Zn{"|^G1/m(-Aam14_ Ug6;r]օYX $r##䶜\_AɎ9A-U(ƤeY_"gp#Jz9 2 ;m*'i+䗪E>.r"Ćl![ 7I˚U,_.U=X%g =wyOuO`wf $M#o]̡F$q'Ϯ|ZЂ}JΩ?m%g8ڼg_NC? _ Q,> dEI$Q{&?/ /7TxyG<~ZoJC=nHtv3cSX2{<Ujoέ47!47Z]qC P^>f+M! {``A e%%=dֵuB><ч7o )3(\ 4WsjF4w?yXL-$J L{ܪ *BHMR*8gݪc 2!5~N 5k=Ùam.d8w\և`6fBb -?8s V)J@KX60IOQ\oj~^7 5N(w-+Հף)QX|/t7l=)|Sx야G&߉n ljUM@H 9Br7֒, ]^B/FlRY/;!،ā{EQ.E&$ |=\9T& lp R*B^XMi1hD7* | A%=VnvT7-no] \fi M4wJ.}UaZiZ6 LrQEhGr\"b0}kxT%7(5?"xD#^H8!)`j@ IY@ @"bE CX2էdئ SM=ߘY`% dFDxlI9)^n=.<_|.k0){|Voka7024`CX$n Hm@C#) 8k%-tq :dc?o<#X p^YrrO5V+ 7hmQ_ͥ/ͩA] Jv.ۥ^{a PM&h4QF㯦-`Vz"Ѱ908X4R|q *2cy&9К}xCTC9ۡ~|3(F" ."aB?1G`^obz&!`\8Ut=˔kDž(Jh~cL{~ESV̼R,AU,ՎpVPR 3{3 Q-duۓPQ{{n )";*\e-~[l2WFBt&&R5p[%MpPP7Yc<,9x@dbJJϐ!#wÏ~߄>VO"1%j: w0Z+LV pw'̨>[,Z1פ6 8Qjzr1 N"$ٞnܟfsmJreѻL 凞\efXgȹgռp O3Q/!6dwX, XA wR |G-+=]=IE+u߱?X3SgѰ'7(YqM[Oiq⮍FadAeUu5дyj殶-QAi?Do^}bv #cht0U{vgkuL/W3S{:f2eqGz.\_h?߭*BTFfeLF7Fץ%4 1#(.{."۸qTj=eC=>Y״W/*rFbvg'q3.=fκy ݿ偭 |A=A8=b=TZ#T|Ki JQ.g+m% ;j 3|5@AJ:3Lk\e j IX\>g¹¢kk/ $,x}bu(1aLwRKOG{Rπ?ΤF{w[#0G-5loQg3m+ ^/DrxQL%hK%_$XV==eN8' (,`dtV>~ocUEb8Le%D{'$߃(eVG̅RqOjVt7ؙGߛ,[h3¤D -^1ϾΟ H8l kA>D6lKJ13+v¯k1:IKߟ <--$4'$ʩk:DC؛XrH/: f aEDib&E0mu;])l?> e:`ٴwa b࿘)4\ Fy׼ع)G 4>3 |PUH/JZ.ڌ('7n yi;:vgb!T[RV#QtݢvA=3{+ЧWȤƂ]Ͱ023myb S/liaΫI ƶhDк{ʊB.1KMYSg݀$CL{#MR|:ý[}+n[beVv#>aNs>PRJN< #u~J(QNߺ*}*)|4TVlQIт꽊\q`XTH% ]xӉ>Qux63{S*JZVa_#MZIQ<Ҵ<d~\ѨԀEFFvBv4_ZswRD5I ,>~VlT$N {( z];Уz`HߔٚStjxQȱū7wK4On+ )kpE=kœ{Wj$*Ҧ癱=E7X![F4C6Wb;s`UIL&{0Mw/=ׅ̖H^;(}L%YIpaF|Q($Mjpy~psȲ,G3bЩ)jeB&`ƸX񾘌>!Щͫ@ Vu'EkD,hpWhm1(NuP׉IrmD~E Ct^Vd̷Gx#? Glv7(mϞvZ=ę,q Z<_0{mmg 5[Z P@ŠA J050Lw!LՀ &# 9XweQR "E&*KFSElM^8"b_2w$; *+S KYU#Ŭs+:4#6Ӎxl/HsB%2) Kzknyt?羚I@f֗gBr>PC%LZ L5 @gcQ@8Mo3^>1 U(Θ,l/Z`2c ZwdTTw{ݰW:wcyэ10-wls;݄Iny|lkFšBNhhGtPŢ -'a~d(kp1oZ?wW}gU3 e=-:(J N]vDAzlDK!?_umjn=Lk G1H&Mq9E-=~NU^aKOYD"<gvA. ɰ|szi z`C "[UC*<(_R&zkTQ~y2{ X dW[3Lk~ WZ} Z'^rr\,؏voHgcAԶqT6uW6_42NiOCaWZ?oq@dK4V湵N2*3Y6@g5iM +oF/ۜz$` X}nR7u/u1EZSkUu*7֚!}TkB=Y/1FKDؓk$Uy4'~ǻn| Ǽ: :.ͷ\4ܹT A+mʝ`J*{iw|T9Y/aI:ͬ\ѻxe"^FuF;YZ4q3Yd=:E H^_H wؾ'KR D1)־^;ٽ{ HSmSG Œ ǩFrH'WԮ[o 8s'>p}L6;o-h*IpS>_.TdIͮg&RCM@bnEB-ǖ7|Q8fB_4/c\K?da^ }ݞ(dYmv=eR,- ~xﰆ kW8cSch]&dS\)ITgN=ѓF>HGӖ+@1$/EZy`[A\ju@?B\tkgK:\aa,jۃBZ. ͟0~?e  g`{ܿm`y}G͖hN`YH]7zAMzY~ r&6^vҼ9It 9$A؀1h"5:$pF=DR9ae1~l %)w0ԓ zמM5݄ȴ}o~3%,a P>߼5'ݙ>Y/BGAVB+BsI YH0 !,Ov|m2V>3{RRLJBς4Fx6 .i>xZe@\|bqmz~8jy4Oof1#sg9wڶ0u|" YTo0%'x p-O=$Dq ȳy~ܘ$ orA/ at# W !Nnre?@E.9alx@:p\ cgX W?tSbMqJ"R9lJ?Ħ+B3ziQAkJAi #..d:䘹NC<ێD>Ҥ~Dg2Տ$  R]!HE0FK@ 1G+TrCnѧTD?vl&}Ȇ03| J+zNa~D#j*bk%:iQDa>WxurER{ 4ty\lU1{K,ɼhb$B* aLQX'?aBL<*~6cy xHZ_A9qʃ&'W1w65w8n^a];UnK`8PSWk3w^t܁}PmK:d(]-#Ћfq4i#=/)kqūt#\#D3܆JT“+i4sA l E?9RxSfE7&l0`*]Dsr\1y]r9=:OiQ. g W+چT#:u8y?l^W1}ē#p6+ȭjvjdcP<7 sVzȶLB9Dg]uḀ5dǜblF5(UPf& 5/=JIi“?ݟ?!0vߛUt\g|-Ǧjj`DZvGH|`HԁY?bL +J@ۡ!,N==ǫQďVOkfh0EEVh"Jm i02b=S_\Z2zg OZa&I ɉ=O1뚭? *.MHTW* mΞ o8 s?" J:p=c88a|@W%-Yrr@?r>ݷLkdALp\Gp%>Ÿ`4`3#e#M'>/`v0-֩嶥2r'xW%/w4k~Ë F ?2 SbxeǭuCpC\V\'!rl2 YZ