python3-doc-3.6.12-lp151.6.36.1<>,l_̸/=„M}ߕ^ ,b$\^R dm=1Yݧ-z/FvFu仃Hn]YޮJ_$fgYkșQVXp4,Nmd  ahSn}Qmf ^B/e _w_nt[xZ$`pC?3CtMBrmZ㴮3'%o` },ɹ/;=~Oar })H(e|:$i#@EdXO kL >>H?8d " E  3<G `l   P  "  3  70  ;P K `p uuD W(s8|a9a:aFG HP I XY\  ]& ^d@!bjck|dlelflllul, v| z4Cpython3-doc3.6.12lp151.6.36.1Package Documentation for Python 3Tutorial, Global Module Index, Language Reference, Library Reference, Extending and Embedding Reference, Python/C API Reference, Documenting Python, and Macintosh Module Reference in HTML format._cloud136XopenSUSE Leap 15.1openSUSEPython-2.0http://bugs.opensuse.orgUnspecifiedhttps://www.python.org/linuxi586e ?M(a- +CC5B%Aq +,b ]wW<#mj4W Y  32e̟pOih( Sy , GZ)y E0 ] d6&Z A KOuXz(A!R!w%@12 .bD a=[Qf zLa/̡]$cA7-WH+{`T%>}.3O/H*<(!P4VYbR8<#vc>58U)(2"y*Xz f$n6d( 2=#B& Cn @MZ%#8 *m9b7$ut7i$M# {5E#F% -7 i#{cs -3TDmI%Zd' q mg4x', Il!EczO z<o U~T;li hc)^WCOk8'&o,t cH(.S U5J-,@E ;,u]KO "% n;*mA 3  Pod HG.P0 ]*n" @9eCB%*6[ j\ w&M;?Md}",|Q6!dH)?Y/2gX}y /'EVII5' Rlhp"  S"8PNSP&7^W'BS_<'/e=Z:Cb6Xv#)S[  wh_:+ RC lD]*M;& j''v^C ,0UnbaK)= $RZ@Z +ci`/lc !0%9)^(b:cT.0iXSDLJ$g.8;8G,^*=ȃ -'S.W,HB,4B"8%34+qy4#<tJ"y# 1543H->>?:mcS>c bhcX{$CO2iJ&F1kK'=>F&ys*=%,1)T"+/A1&t}O7m>w eVY/=d#hZ";v Owg#P&?{h]_=#@#Z3rm}22u'ʢU]RcHmHwk1`-d-YSxN1A5l 7]G1XnlR'UDZ69Oq*  VbAG"#][t6b(w)*u$igDPuQ7LKyMld4TL%DI BxL[ija+~uS4oBF'Dt4Ԣ#/17sYc/"+H0d6E,f+iww(4 yt&@="5U4EMܩ$.f9YKGѢz'+/H*zUDD8-<>9XґO(ͺ;]B>||roxDD3/<@>|[oBn,6'^a8=gNG`h pnX!~9 0@0-x\ÇuHǺ*k|5"f,qv7R'/zvG 25-7f\E&ʗVX}q )1I#Ryӗ]r. 8%c87C /|!ĕti)Sq!}' ^HKBc2B%!\06F+Z/SWm H<B#fL3 pE5,yk#O9J5:g)Oj U,<;.:NE-A>  ߓYY H2U@ POAA큤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큤_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵_냵6aa499d7c3461364544167e66f6dbbfd8b05c8e4a4dd7c61645e0b3fc1d5789368316b92abab82bbfae78a09d600a8a043c8feb37b13f75db3fa2aea444a6e989da33a6d2bca57dc56da6ae4e7333eb254460a835532e9efcd7d22d8a718ff64667ed7b6f1f4e599516465fc9617d3adb40c60087558155e03eaa6aa3303b7a36ee1cc2e08d6f0ccc0714aea55b412593635a4c82e2688034be4b2eadbc8e33f9e03c96a6816979d7643add104aaf2e333990622483c4c38845c1e1e61240056ffd112649b2ec6b0b90451b5ae86322bbaffdbba6a54acb637a49d73e15b898d0ebed85d25349a766fd0659270a28d2738e8cbbf8a899cd7e3836c3311d6c473871ad4562764fea7c62a09e90b4717f1e3c16e2afbf22827898eff6f104095440035b62dfaa19cdf5d2a9da10932252da5fe4596aa67fb5dd493c8f5ab39d309e0812dac74d45c6290f97c7d6a0415bc73f2c8c016dc9b872ff9a65c27916cf8543f067633c754314e41b6590876b310fc14120d6b6bedd4ffecdf965bc4ec375e962cac6ec219c7e6084346d85ddbcc5c3f81e7c65404191aa7b69826225dd8e1fc6e043509f379b3405f36d2ea1f6ed3b90aff3161fded688f0f87c2a8b95f47db348ef82ea1481286c12ad68a788305aed2d95e17183a7640526eca45a9d39042918a36fa26b1122c0254b1acdf0999c29efa41b701c3a6becd6cb4c0c8964dc395f3f94b51c3d8cadeea326c225ac86d768ddb9418407b8d8aea50b1af487f9b923ce8865b8136978cb0257b9087f116d1ec236478f6c165e177bfc08efce1cae1ee5536e97f2d823023a7e141d92b3f33711b0d6bf57a967efdc3d6fdc1eabc9e89bf440e9453ea8bf223cbaa548b1dc3143b0b8071b9a6d5f501b456867ff436bbe3656eb6fc0e3c076bb4b6b4b3eaf2e94a8d4821653223a7cfee467b170294984476012a2b4d9439572ca1abeb37b503361043aaddd15e47891654ebc563a7ee487c395283da502061e15020a15d2a5ac07a6ed429eea0c16de70de0349f4f436705f1c0557a6ed959225f3c2c37d57ca86dc0a755dca8da33d91dedbf257dd9f5b340b733cf2eb0fda20bc7bfe4d4f43cae08edfb20c97776353c02fec25fd62cefb31fc857f9e07f37274ebb6193e092c32997eff3acd825355a1880bd324f6d29be02476aca6b5291d0aeb82bed20de9d9c3d6c106994bbd4320f4e386ca84660e741365580262b3da0ac58b3358e2a89149606f977eb3842ae710bad158062087b225e669c2556360d882b6d1c883e181a9b2403c8897e49f2230c542f1261829858583589813fdad1d0473612aa681571d4c3b752459ffd72509ab24df71583315c0c67a95bc8c0332130bac7f2ed3b5f72acbcec57a63e027aa33bc1ebb5f3dbe444c9799cec41b49d3ba713eabf8b793944d9c2d2f070d0bbf28eef505e6842d8a7729cd633e757ad89784712b5a025afbbd416f325cc282ba97eec1ef77d1e3d73d0715ffe8c4fc295d91502d7bdffde9e9677415df5415238cb26339911b2d4bd54c1e61fc2c7b2a340388a24f735b0e9070f3a0e8d87f0e4ffdcc85bf073264f10cdd777a30022292ef6b71b68bc5c00aca79ec6b8f0b65d399a5a6bfc45ba067160cfc0b17b91e2472eeb975e7892db2fcfcd711720063944c4773641b23bf1cc98dae1ccce6f218d817419df4d94e2b2f84fafb6c28daf0cc35540de3b27128b4b22bbaedeb8e0ed84e2875d9d65359937d547338e29da7bda50a866005b2dffb1a1931a079bb1d583c434528c643f812c8771eda09fe752387bcdb9cc0694293ac434de6f1cc0d5a77ee1d9fe1d285d699df753c8a41b2b7000f4d2e6d44d9dda25d3e5080bed8f855b1983c983d6eb7f65b1ad96e9310f72f7446921a54bff08c81ef4fdc0b54f6241d333d93db7af76508b51ce4384a4655c83fbdc7c9921fe174b47d640b3f786173a8c27a34941e91aa83850bcbfdc0ed1e29b11e8b56bd1a84cad6ded4052cb2f50ee9200355c10f522ea2b07833083f8abd8a53b0698027f1fe450df39cc527ff808a9bdf6a6e01f673076daf68bbbd23e11c1485428595b6a70e66cd42b5cca5e711957c824f6a9bdc697babc4c58745fb9dda6ea1e64e4a2d59b8e412d49fb0a7f768f624d9120a9ea4a49f549bb4de45482506e646e55ddb9dd84daed5b18b92c341095f835cd37847cdc968e1d4176c5e824d7ed04b462766f63a462ad11f847e765befa2eebc36fd87775ae6f2248f4bfbbeb0902a9495c7ec91b814930cc566958a0df889d2e6f301f85ed47176ca644cadc170da60e5ecfaeea3658e5a55464f491be0df86ab10d7fbf9bf7fbf2512d9977ef1816758ec374b96743f8d3d81e486d1974d3b3f021489316f58cd574597e58996fbf425cafa7594a275a72f3aa5a9b0484d94a3aa3056619bef4f564ea34bf31576ec0bb23c3046bf2fc6078565530f62c49f08c212c67b103c6aebee15f6ce38293821ce56c326f0ce9e88b0c306c8766ec8edb81ff3fb11cd200163e79d68d9848e727c715b727aeb9974f7ed5754ea680301d883f471b8f34804c6ba5c3aafca5f7c75b0e10d2b4250668a5746de02099c0f4096fb7580bc4174511c7a18cbb47fc65f803e2aab7db1881e61c42315925c9b21490f80a8dd784c3beeb273224a2ef03a0d9db86b031439f0e2b7b9d1026020b85341dfe82739272d573da40be79c19cadfc9bd7ad4226325db8e1a8934b470c2aed790b807e2cd7606defb6436711bf53e2d7b21adff9d77a2082f184e626b46e9fedc2db3d2630e78770cc867deaabff4dce6c70837f9f92e342b1887c35a754e2b68b4340f8c7c991fd3f3ebbd04bf00c86d1518741cd31015f8ee9f64e1bb5de8a4d1df78dd13ebab63f49b0fec91d9ef086d4b7e4410bae16af822eeec08e3216f4cd0268e738a0d9d939ebbcda8ebc46d67d173cb95d25bf86da848569a0582e5ab1f12759ffa9cf5d88eaffc3c4c30fbaae41d11fa76853c647e6fe32ec09a928f3b1671ee52aa367e3ff50fad717d0a3f7c164e320e8892df1b67f9f240f9b5937ff2f3ad94eda3e6b2eaa80edf8b7b31e6c66cbb064f7791d647e49598538dc4866a6fce1ea1f892c11a40718670a32545d1781f84d5771c8adab1bc2a2ac3dab410f3db7607029aeeb1798d3849dd82d6b7ca990be426ea995b20d049e4d66563ba01a4733e06446f2239370da2b1c0a6e3856c4ffb24180b8af98996f843beed7bb572dadb631b1f5977439e2be8b11e081ee894adc7e62a803a51d83a193424572a5af88e40c62fa10ec94f4ff8853931d3a0b616fd9485dd20f78255dc1c6157228a9ce96bf01fc7b84aca888b8e7b844c11d6931da22e8896622fa41e18cb070632b93f4b3ca004ddbf6a89fc45bff5c11c5c95a4607f0dcee1f602201cbfa1806facf7bab9f4aeb9f5c053645007ab3b455d78dbe2e25407960d625b5a7c7b881316648c849a3012af7146813d895fb2679e4de5172783872e5627b62431223107c026252bb67131715f504dd384a9517333389890c7cd29198db333adfa8fcdbf5af1b841c4f60601e1b9e3e72e18c738d905352d838e25f95801d2990ffeb955cb629cd54ad217a28f924bf84c9d2db588516cd988eb4145283a3ded08c0da413f6083487674133764e3a7f9a57084da7668c0b946e276eaf4646210c6c26fdb60e716b2c1d706122b650d4818a154fde60089b0f8865bd2f374b3ccc78df8ea507f88ae713f4d1cd8c6ae2976f7d959c7e962487d94701dd172796b42d485f35733eac7f375ba8b0060bc371e6877419dae8dd4b7e329eef77076ffb742f86aa84a75ca80e7e46b79987343e055e6f5b38dc24628140f55ccd22c44e1ac1d66fbf70b249d807c87032269957ba9938f5e2233d4dd66d01c3e459ff5bbc59fa14c40e0fc76574e2f80f7951e2949dd1da1078cd367e3ed6b8cc36c880549e2595e4164fb27829c89becdb72165eb82ded7a75f93c810f9de11c4084c626e0518a9c555f913a0e206c09715e25e534a3fe9d35c1754268665db9258b1e3bb1eb3cea355c145dc7c65205046262acc28de1f33a28c5ccfa99fa044cc961455aa44392595936ee04648653ccc657b54b238dbea6e7b90998a7a306a7f1fdaf9699362555d9845ebc7752600aa69c9161f77b6dc3187ab2b1c9200687396ef8203eebce22954e6a29a91ba6c5854c323b25c798ce3b33dd6ec246fc72bb59163eda5128d4e6962ba11ccd32c127672dcbb484690d73e05adf1550abde39af8366952ad547a64110c917634cbf4a1685dcc27e1da1b38a2d5f20992e0988c3fa0806eeaf9605669fbf7a2707cbf4563dde4869615abae4c0d50e0d78f3e3cc782388fad6b2ce913ed808c4f3688dc043254b0e913c8d6bcb6d90163cff669f30c2af8e6fc8724dcd2eb00d6d73a8be3d00e4eb6f1e3932f5e97b041462a7b4716f756e1b5fe8aeed863cbc58c7366d4376b463a06714ab6e7c6db4b947fac54c39462ea9e2006e5a5631de78acfebf77deef3e836361c0a31cd2346b7d4eb5b1740fee0a1197988b1d4dd3fc282d60234981b76af8a150a3501046f615ae1683152125a1bd0901dc6fb8444d6095f03751406d5dd799a1d09f26e043d6e6d441fe8ec639bd9d428fe838194e540fe33e12b2dd2b69a8552a44d05ac4de309a6bc55496ddea34046fac0ba99f4a08fcd9b97df8b29a539e414c4c0fac3afb86ac1927ab06ed4e4e103e70d7d1bc8ac9985454643f89b7028a44d9048df62fe7902f659b50572c856ef718720c83b009d9aec25582fd8809511773b62b817e575d9edc1e757b28a35f897f12e5c7ec0efe088fac2d1ed9ea6dc0c31844eded828e3507bd09eb4b9f52c4a1b95849ea6a9ab6f4ec0b0dba5d9cc33112ed74fd60f7a2dd06ec5017b8f7112c200c74b285a8d1b7a2361629dbff3479ab84df8f70eecc732cc09f3538ecfab24a3f34c26e46bca5fdaa66513f345d20d93ebf44cc903bd7b14e7a7f614030d0f9a287e6550ae055df68f63b38a5719033948af540a794a7d038bab6717d35deb7f4b601036de6337d7cf2bf54ba04a5bc7bdb9abdff94168fb1d26fd6b607d93a2f109daa5da328e41a7f9dc56db983ae8d3cf75d195de125769cc55b8b9c3d0a8cf1653d0aa3538fd4e0738f7eea04e56c7a398d30665f67d9f685e144476c0de832c19b9ced37215982a7e5a8620b57290656ee55c64e58e5a73aa24ec12c8e673f1feae56b68230d6067b7a8993bccae08be16edf2262b224a99fc8918e4ea6319b3a9e8f6821d023e717826864251bfb992eadfc05321955787a4a609e307c00383812ea9b030ab9906c1c433e6a1d3f27fac82d1c6521803db86be6bf470590cc76ef60f35c60ff68ccc3f871a131c72c370076003f0f0770c8b0ddfe4be2c9338ead06c792de1b4140d5501fc940aab75bb93e8e8a71d27e457dfdb451db4280893fc788318ed3310251b9abb5d70982ab1202f44014912e52922d038c7b7a005292b12bb4d1ccd417dafa0b6a296dd20816c9b6d5ad533e5d9dfb95cd917c168e7db9905b4ab69483fbdb3b5205f1e6f33af887262154701a76a9c0dc02a0758b0aff30ab9058dc682d80b10f88fa743d20aa3a24d7c71c023fe271673c4a87928ad6808ae1312ef44f748148ca6777f20e255e0afbbee50b6b5711ef200e187b758a66cde030e55dfd8cfbb875ba12efe13ff082f927edafebc42682ff5681e61fae41057e2916e1f2b3e73201f2e46b1fa59bd296e74e008442df275afaa26727de8049b328c1140fe25a6fcebfb33ad8e344750fa1867e1dbd89748013cd7ad2f8c6ff41b198991af0db4521e1692f92ef264ba175bb6724b628ffb2619d489ecbcdad97b9c9d2dd11b07fa0810a5fb56b818b335d901ded9418a45fa32651a5cb5ff81d033b0cea732758a557b6e31a04003b5ca235931cb9a1aea86c94b8bbbc2d9ccab380e954a60543841d86b441da4c63e4e009b7115b9b9bceb2697980cf3ebad637a5e6f0d979c56c9274416684bd397655bae2808b5545644e3450f37ea1667794de4522a3c2303537eb1aced93a7fab2087d2e578459f69515033aef9abc01ebd5991145c14391a48dfb8ad3ca335387e86cdf43dff216d5a8fe2e551fad35dac46e66f6e3325bbb2d6a097a8cfc2851b3b04028ec37e6fd5b890ef30dc74f07e5512522c867a21fed711a15a77bada38eef358a878965daa56db155a7a9b1712fcc664e12358c8d18675e24dec81a0b5bc519aa5e135e88c70f6e6568e825803604f93049e5d2c48c35fba87a7879d7a53c45795d1201b442706114bd5eca64d0f0821357aaa8fa3301ec229e0bceee647cc4aef75f2b9368a1b60552ebba538d0a40fff1841514ce188d11fa51cf46355d14373496294d675ea5b9f894dcfe518d5e703a8ae4830dcc9382f4f10da514d6664530a6bc622dae75758f9b3dc97d249826c4af4b94a26c2f4605e4c086a7f04705d36ece8666c8f575a817622ab6b695cbe18618817b5ce177a79da922744d7c1a149bd161276f535ec550dde37b478a1014d7f45f34aec2e6bb5efbdb7a6aaaa830aeaa6b808e02f3e9cf9531fb91ecd03da0e6294873b5ee8d71e0e957b250dedf389460ffa03a7468341f0b7b9b666d763c7c2c909d23baed0f42db8e6b2743d322fe1befca35326846c6f27e71a01a526f9dc75d5152ca230ff717600e760fd94e3addf763c471ac1f315c5f1db97d97ebb756e95db9ca214de39dfb3d146100fe450fbeb05b5fe8ad499a175e0c5a24f901c2d36a0d3da83d4a21c2350f81e8581e271e7a720a75d18beb867bcd924287796ffa0fcc2108c8533ca79f601ce90acfedb0afb0d43d53bdb37be69afe4d6c51382feab78095c51db3b6ed20f62f38e41b5546d7ead75faa5b4f46af5604549ee081390441f6c2bc11eb44f13f327fd188ac73f4ac8607177908f06cb1e63150dfcc9f83d4349141ec171f99bf34dc22fe280e7f42973cc5f7e621aa845576b86bf1eb926f436280e4e3714bfda069790eb32b3b2287959706952d95e0e71ca28b1d173f26bd44cd30e04a458f81939c999340ac81e244bd61c072ace38be403948c7238487d8a4777503260cb1c3869caf28cec627141c82344814b02c0a35e22aceacae1d7e9ec474b38a7a3cf310593e1eddabf29f668b4c08df503427bfd65436067c88594b8024a2c8e8c235f0cd64f6c5083e46cfd9d3c6b0931fa434755c5e017122a5eae671670759ec650be761687a856f65208b27545b40e885e68ef557a2fc646b0813635e79b00d1f9cb8126f267f7d5d2d73e06341c5bb9b42e78a5b2a001f54aa58d6a179bf349e1c4defc8d6812dd62ac1bfb9f4db991506c6daaf898ed3bfa900d7375d49f48dc72c68e8360ba8c6fdfc5673c65b131c916341be00d98de520493ba5a2867159549023b0bcb59f18d04c143d254cc77f57090a1b46955a14685abc96d988cb909435d21e57877b79b28fa0c538e0f2c75882ddbfdb3afe5e2d52945a996f6b725cdf9ff2f2c9e7e4e585a4d453591aab8401da4ae6506f4372204ae1bba0a7eaa9e46b732a7ff632d8ab6dc31cb14acd25f8096858eeacbe175a60a70612d04864b738b2c13d4325b5792cd38d2a0b3c281f17653e2d3ff9bf0a699885f0a8348e6a02458222d60b9fd63590840f572cb39992d7516f4a59f86e41c77b8b3753417a2931b43ec8a578b7cda3d05f9ca6952a69971c446be1207f81ef67388ba7206d10076e17fb9a5a773f601cd243ccc510530ddb046fdcd9125dec6f375664c655ac4a669863f544ad88f313490c08b5b831f69569b65079b693d87b7e16c2d4d39d95f6ff704d6401f9ffa18319ae1bc3b4353cb2e2b3a62844a6bba7a9758008e26f2d69e8e370ee9173b1560f3288f5620d1e22bee18f31e423dbfc6b1736831445ac086279ad549cdf59b60ce7ed05bc826c72dfed65593b9e9291021693b3fe5b06d1aff6f0c3fd87fae9238bab602c74e894ecf6f62835db74b4a40a1a0108a4fac847036bf928609d36235fabfddae3655e364564879dc90aeb6edac6e0534cdff3cc9f056977dd061887f45ac32d503dccd215933addd34f1f14a1676a4496ffa804c2019af0f0b9f1c89e6e6954b8f1203cd71c25497b86aca7bf61a925ea4b0bf531b72cd4611cbbbd59efbc5b5981d15a3976c602c1be1c1e380d8620057ba4a39751274a60c820b16556fca567ef20b5c948610cbc2e9177424e8bf119f8ffb7e29127a0ddd73c230faa6dc41a3f29b3f5c1095f6be2674b8478c20e0d7e69ddd56adb0ea9a9c3b52a721f4e2fabbd20a51dbeeb6f93b05e330f92e056ae35f19ea292d624434d40621545a44e8c51cccc64ad974d29eb7bfa2b48822d3c59256c2ad4cf2614a68d617d9584bee84706e3e511f22883e4462ff36c9c7a1d392bfd6dc5fd464ba8a135f20bbeefe6cff47702d41721799726f83ce406a7833a94ce3db71793ab9a65460d028020f45da0b6d5add5dbf786e62d0f7ddf0d6cbcbf63fa4eaecf34b554f1a6658f1f97d709bc7334c3ef56b753bbc168ccc26f6dea37ffac38734739234129ba9ded050f82b43eb0a97827d66bb8226899aeeafa6fdce79848dba51f72b2b29d52784e383ce6120f3eceada2d4913fe68439f0f01373fce2528b9c2c57f7dea7bfca2413756b2a18d3b8650b76465ac7d9ddc42382503a1f8908f650e08f73b40faabc3b0fd577bab77ee42a211bd7b74837df97acd36026ef6ab856a2922486319af49e230977077f8c87ebeb7fa29f6fb3e2000e7b0f61104f6e7cf6e1ae6ab39381203e0c8047871a72ccf55c9e377fc789d36ff514c46ef2ebf3d544c49c3c0b05c13772af3f749ac3064058c0da5bbc96cb80d5eded98e0872bfe309bd75ccade26097d318fb758abed5ff39912ae6dc993310abe249c0b609c6756c3d9ef279cc8d7fd4fb1b6b9df0651554c2cc4cbbf43b1e5d5da95718b3d1982b81931e59c0625e7645ce86013019a1e8b554048b27ea4458c46c1fc2bcac5dd2b1fdf0a0c9bf3393b7cc46b6b1b5ff2dc9bb3c7d38fceb398fc484a6775b99843098a4129327efc5923daeae586c90fd98b4cf305a49d488bf1a28eb09a87522e3584046b4916bcf0342d8b4c080b7ef61aa6c423ca3f1eac6cf9220fb23b9230268c245c21d753cac86eeacfd6454331105981d19ad1c68a4e75c6ed0f3004b951c72b0d9b7008eec7112d14657bc54557b9011157e278e800d86d3ef644e2b9024d64edff3911360bdcc2fc34b3373ed6ddd7c1b526b01bb150b4ed360b9c7c93838f448e3b6c725a5f8c69fabdcd0635076b884cd14903bd102b2d80527fe44f891fd89d80bd558d93c93949666a129f2e785165af6913d3ee6cc0211c622e1c7e7496ea8d2bb0d49ae2915b12cd2c5891e3e91dce823168d030cf7cc04bdbed9873acc54b35449d7cddadb41755bd8af24a53cc5807f19804667248a7596b459d008de14bb1fee04a35ae49e5545ae8095d1a8ccc354f95293cc2b832be97ca5312242506b8d70bc7607cdfcf8021e763c7e853b9bef3ad4905e4ea313da685307dadcc494466684a7bc3126dc76df5b27f0186b684d0debe60acf3bf5b8c46b0cf8d550bb69119608ee777c26d48d2d7d5cd368222aeb79c381dc3016387a5a8a460b3648f4e8d9a45208badfb76056ef60ed24beed2ab3c6681e100455393a63e2269b6a0e3e23357cdb51161d990b1de1fd12d304a974bb0be13ca1750f147c5779e0dec79216b17b8aa24245c965eb288b9f8db860fcab69af8abf2678f28723ff25da3450e9e5e9a5b09d4e0e1bb3e37b6e7c12d18542c9f071c9b2fa36765e60935712a2f4a424cc7ddcd360f7df507234b1b335d70710335deb14bd9f3925f3904d2089cc9efad42324bf0ad49ec05d637b265230d8e31d8db9f662e4a2244cbfbb47859ea86adfca4708f92610e5cc59b2ccbe31eab47c2edeceef413e02e6b07c4f5ab6976051ecaffc1e3d9227e708fe0ee0af738db7a6c073b02a795e2d008a37cdb754a082f6418e635ddd3363ad4c90b9ff06b3baec291fedeccc15746b56f8d7fea5a052f012b48fb0ae19360c11f1cbfa7678e2b1f194f1571e90ad76bcfe9bcb7061d3265a0ad08925e5d5724d9e63b8636c3e876c0ba43cff5aa32759bd25b9e7c2ea962ba8cc42203579b2e91bd2473825ac91a05cac2d0edbc897c10e9e1082f4e1405114cd8c0929429fb0b7ad86b37acd6ce03f7deb60b03ae256148bff321813b0b16f647f3ffd9e19b42d3a591e9d2241f4cb4b22fd44a39021e1a14f1d6555e95189882033ebfd6f0c1c9e1d78addfa4652c3339e2be43d0cf890ff792bb1ade093b3bd51b72beef39a5786c52a67693a6e571b65ae6f4819a232c1257a06566f426ab5564b2ccbd9a9934f1541b61292f3a176dff145f8551eca72cb79a0f24b95eac3b97a15ff58aad7ff1d26357e59f111bd6e951def8128fb0b539c719312ae9acef4ee8f14f36b0848f7ee45eb18c3afa6d5246643597d98a9039184be8a28451d287d675314e34b83e567ccd6d00fb085588e36cdd41318ae4f2aec931182e95a13f8ac2049837f6e60a6ed9c18e97dac262980ad2d3c7704648daa5800f095d6e862f79d4b1b84a80470b8d868bfbbf2b429c5e51e9f0663a29b057252012be8682301a83e0813731ddd3800cff96b037073fe50d5c1f6629ec375ae45f7be412e5fa8152fa03a70e6f121e3bc9b7d21ba4d225bd41b115dae37b92803892d8ddf57bd89fe544d051e12ac0be39045cb5118aa62af31840efbc41236bb009ddb75f732d65d74ce4b6fcbc7205f68883986ef33e8588805b425d492cea4b171df8d491e4c78acbf7ef4fb4f04c518958a01ff9882d75059baf6d1260baabeb48ef5b2946bb065452c1e18f10827feda5f9af12def9559f1ed7c56c23c3d0ece44534a2920b6525819148ac1555ba957eedc238aaa370ceb534da8b688dff8470889973eddce208d2ea971891a9f2908d7fa2bd1231f214def9a786e3ad756df7da2b51a50364398ac509778baf79d617d04ab99304b526dcb08b837809efac51fc6a60f57de90f17470c26b80de37a18843ed1116e21386e6e7d89c2a56a3edd2d6d271cba31054a7fe99f456d8286ba919ca73c9984b439e26df2a16d424b0bd215f66bcd47016207a7c903dbeaf4664e39092ffed737305e467ef97fbdcf61cd718ac838a4fa09c1514d9b9e55ddfc43710b9b296e92c2e282e803c1190678597bcdbb8537641dab9ec2a2400df4d31b101d34f71bc9cd19173a240af5a2c64fc09a6360948b90d1b40a7f0aa3d29a5417933b3f0ae5e64ce7cae68ad3be325966d39d3f7df12932892f678508e2c9fd87bd11632184a5d4faf3025fa193a294aae0b2d2a18e1be1d95504ef727a161c8bb4b4c9722f2c0f4e30b27c75e24377e525bf05db0d8725c71a71930590f4d9fc6a28fbde1c4ba22525aa76d16e573a8230dc7f0b9fcfdc28d7bf47b46896f256cc2cd88165eaf5a1674cb42f55f5d87390c0c1625437c260438c76985a6ae92e004480fd63000ff2e31ec8c7bf3c6f8ea1d4a824f0494dcd612fdb610b14bde752d386fc98c48aff1a57baa26f4fdc6c232d8e451899fb6a673b7b0be112003f4d70a952dfd6ea7a1fd77e28a70b94e05cd9816ea3ce6da38d6095c6bb84d68f1d7e14adcd9ee88cf25c1c100d7d046f3c331f99ae7ab870280671385f28e729a81cc80637282b6b97bc92dca605fc10e8a864588717b64a749c084b3ecdf65eba4e9db6903e21af8d44230877ea547973b370ffbabaca760f6525e1311083e43bd80c454dee24e899553bf6f7cd385a23fb3b93a613d5cadc075879b869832334fcd68fc3d067e59b8cacf9232703cff2bba36b0f22f462f104353997a040ec3252b17ac95a2a6c2d41b8bc8c282372919763149f858703add7d103fa55f5f143611012cc7e3735e99b5e6745e2d841090e45e91cd8a4a8a7c847ca32e78269096e0e9a744f748b6cd7b6591437b7d94d93b1c363f1a2a328b6ccf684b014c62b6b70d23ea34f28b845d1a969ca4b1c8175f78222774855ac3aa6f8a690b586155c0df83be429431ffcb0608b7c328180425011a00597498ba1f5a588db056c44cdb435f6a1f3263541fa3fe1cb004dca9848cd8d5b591e6aff223149228836c92b2d006ddc5a163b5590220737e3e5c7376f7598a3fd2f3f625b9cc1c0eecbea9b45ccb5545746f98e4037c541f48f994c46674dc139f10d7eafe7b2b90416f88bd8c31aff889b8424eeb05b43cb88687082f5cf145c41ae8bf546eab45317e269b02078077e22e79e7399ca4707382cb684e9eccc8f8d650a8d31a3329d019b123e504e008eb2624ced96c52e60c4e5f8c55ce68e4e382606ced23b2cd0762d0d9d24ae2a7eba2bcb1dc8ca8b0579e9874a13562e0c089a9e7dbd3e7cc1297e10dc0805ccb1ff032f3a3d04a5f55bdfded4754ee7743b5df1628c81b63ee6ce2cb2e672498b518a56110a0d725921a2e082b00e218994841663c0a305a3b9630ffa5cd96abf3abd0bf232d03f8aadbc1382d72e19d21531c2c8ff1b1ab66e56797ddfc1a3787d78e7055b551b73403eb526a845dc830ab8b4a4adbc409ac486e7418b1c01ede344fb9928feed025a209372dfb05ce197143ef3d392aa4757bcd4c2fe437f8ad89ee5a1781db9dd93eeb6ff0912e23634d29d96f0237685e2f1c973091640e309ac6e3c66166de82dfb39c2a866672320cd21ee66ee2ab1d49e3dca20f730fae2c03ce02a01f3d1a4b038d596275aa5fe7a58e5af4462a17e0016544a8532403bf11c5c12b84ac2e41bae3ff86dd3a6cf4d441ed6a56a455bc7f5e16e2f90148d6aad05edb04fd253ae643c796c94cea48eadd9c7f77fc2f0aa8a6631755719496d1337685f7c3a35f32abf35b5ce3d7f0ba71b9e11375427dcf88db454747fa6416b50be91dafe9c29104dda1c8d0e2b2f6efd649a003296bdef07f50eb063b937c54adb08edeb615694286f3aa852fbcde925983c45b6157aae5d02448443e015dd133b86be1dbc1c44b30715c739e3696818e2778c251d9b0c9fe48f89566eba4c3006e5d67996101ee5ec0840bad49825a6366152beede18c873899bc06c48bc9a694cfce332567ec13ec83b0454f1dd2f4fa647560fd1fb5ab3ecaf7d5b2e913406bd5bb44ad62c53b97f96d5400b06d6d441b0f08dcf681aa328c817c070cfbee2f94409760dcf2f72a66c7a87980079d5735cb34f703ad89e8305e0237d451c54469fdd91e21028a80a50e158eb641c84a258e9e8ad9b4f2ba684aa159f0fe9703626bcf04cd64accc64838fe71ed5067978dc1456a16aa8b0b823af422f4a104582b44178f4d4a112f313aadb2b31384c8a7904eeb0b253cc63ca9ccc709dc59f6323e63be98d8cae5e2642e0a131350224410eda368917f33d208cd6867930a7119519ef1181373f7e6a593576bc07864306afb83e96149a56bf3d085e268391ed28378332e1b130023e740a34a7b3e826faccbb13a8b1224867f3ff08078df7fa183b6efbbc68323aaedd1214c0d6de05b80ae6b4ecf034e52cd897abaff1814a659c5083aae4d609010ac6efbf36dc406e0d20e4938c9eb9724804c8bff9e00e8564018f5e6fdabf36a86a3510440108c0160f5aca3537437e34936a6b00c5c467c44eb747c94065cf6938d4aa433f50f7728e438555de7ad7502c338eb97fdcc3e4869f5ce436b2417b110b4caff907cd525ba4d1a191fc7d1a96f1698a2ea141b49d16c32016deb90cb6afc9f16fa08943a558875e65228f1508a21dd610502076a77b0f681d99764bb9199708bff3ff0c7b846beae2820e69d1dc4046ef2d5bd58091e55bea962ef8ce4773816a87e275418defc6570361a2b497afe14664661e42269109e2995c37c9fac34a2e3e174c561ed7f28344fef0888752322989f5ef07f74130af78a8d8fa5cb3e2d9046c80b12582ade092198df9ba358ee66321262071071dd5690e0a486cacb8a705205b60f4222e465a10edb2a918bd6a485600b9723c5673eadb600c5b64c692b62aeac0a27aa51596a664bcf1682eebe15ce8e68bdb8aa13c5db12cbdb98dbce6809b71c9017ff70b120872ad84d44dc8d4d3954845870e6b40c6767cb7f5e8c71fd2312bab8eee6684e3de7e6d0b6c300a6d93c01394d7f78812b3b9452a3d655c3d01929c10894e39e745696c316779c4ad18f64532cde25b1a1cd3b66cb073456d51fd7bf77b6c099752e2ec536f3500a170a6dba06d3526267fb00cf888678e67135dd69a551a723650cecb7718cabaeff7183681107af0443e5715f9b200bc24c8f4ab44de020f68511a5dd53615fbedbed923229082a24bee46c127331b8cb341ff7a8bf895b77f42812c4c5fe4eb1f3d64ecbc7b6857aae51786bfeee2d361e0b7f88d39cbb47f9f8d66fdd0685245c4d0b2fbef8fce4500bbe1b9079a4970b03b904d9cbe65b89c909f6b08c5259a9a49f4969c0685f66cb4865f6d4a8fd3770e8b3de4126adbbdd93dd62163cf4881e7ebe04f9577ebe9f470abd19403be94beb522f66876030f4852169237e7efcf97e98bedf1b703a337d9090941d8fdd46a76cbf0846a3356b103c6ec4a921340ea69aa59b1c2d3b5908d159f152c75caa8a2cf5b3c84f14743c7cb8fd279241804976875de59845e9b63f2e308d9fe91b3b032dffa0f68c7bf7ac91f2f635b5949223a4b3083c97e86f512bec7242c1b44d5310b82c85531ab7bc1628689ec828bf3ae42593526287080ffcb94f3a884783d4c370c0df2e6629dcda7cc7e82723eec4f76799d0ef013ad66a68323b7d8ee28d81cbac792ad68d8ed06c1533daa50e56377c52dca0d05266172ed988533843bc144c7977c1175376d4d6548ac32bdd084f93ccb69174fa42cd070d833f5356c4403d215c6dcd618c9d29c85e300a6deab3c2dfeca0557eb5c28c4b83637872e8c16ea2be47c17c7193602e2e5bae1bb3297d75183c97b344a1de5fa56aa2a75e087bc6fd77da868d9606ffe462ee29a18ab8f842bbdd2c9ca14c924e50eaacc908b958c72858906c371c8d18d9915adfa759a6d4e3dc04c9bcf6057c9e5cb4ab721eefe488404d69167151bdb0488d8d41ebf11cd916e1edb745376e1437baaf8eec23065540fc5dc1d48fac46a7e9713880a0afe5f8a8ff365c35cb6796d12a4c79fef5c6f0c52f038c5b5753a1d678c07a06937fcda40f48bb10fb0bc9e3412e8e90abfeb969406f16c640a09b46b56fe18ed3f9419ba05a9cc7fbc7a5d6d4d6dbec62555ffd1ed2463748c663de51ed0af22b7e45d31519de6c389764338c14445fe952197c813fcf19f337efa26b83f7adc0c48f48925533e3b302f605ab5c0e02c97f06bda62407a066b2f95f71d2591e295a7dd3eaa1fff7debb0ea2acdb5d3654a6f1c5daa50b66d3f281fb46b0548426a70d245e7000eadb0c4e36b2c68820728f360ed225b7d011349f2d1190c5e46484fd6a3a1f7bd56599a6e8a97b973cca0ceb995b41611102ea8eda75d3dd1611c7ede5e7220ee523ed81292671a0e73d69b7f8dbe003e7929c18c3d51000cef36d1f203831aa74806144096ccc89d7de20fd951f07b86b246684bd1dbb43bf95f49d778e3d3aac23f7811d988843590806e67993eb372b7927f4dc1722e4bb33bbf4ba8cce89f9df6c42a2b57a548e185e1b925b60ce803a9585464bbefa142be855aac011ced8c14ff3cd6f97fe156060cfe5e41d81087764d7dc6ce5858137ae20ddbf0f9a551229757f34fede7795aaa8bd09c263840a5e5a92e28b7121d8e9ffade5eafa02493f59daedb431760f285c9d6d003b25f6fb235a5f65e5a9a8d6888680ac0c9286dbc38ba1cb0f6930c82c95dd813d722e18285d31740a1885ce187af0050bb9eb17fcfc5a021d147e30aa8464d6449b99d07d6b40ac8f890dcaa4e5e665cba5f7fd022e895e5be1a8dcca3f6890240b13d5e10a10d7e18b26edeedda3b0ccdc3133b3050aaeffee4825ce89caa0b07cf09a7b4bcc94aca216d75bc629059667533c4035ad627bf0d1107029da4a52a951e77d5b3393d4233eb75aa0c3b7201b856bf752753f0550d5925396b62228fbca5f00c4da96c66f179c00529fc41ab9c99e8473dca4e4e1fe8c7021206acf5ddf586fe2b9745ad3a84cd0ef25da7846d0804abcb22ea21f12aec51e203e7b0ce68e15baa50466a532cd08a7cfcdf7dcdf2dcf6b1a9bbb07f175dbd0b630dfcdc9022ad1fb2c94960624764df87502b91ed9445e6ccdef332a6ca1cf8a791902ea05f72fe9fc66173a9b6e4130cb60210f464d6943face7ee082d59de7717de05da3055f67056d39eb502472df4891346bc58692b536d14d75a837fe2335f9ecc65ffda4003b82e6554247dec9bf8e71a94d1db1e526d28715e680a5766341b95bd2b2a998b4d32e14c887c010819fabd4229188cd731baef6139613835ddad6ef0d80eab6e13d04ebc6351e609c201bf8aa29f609e24ac3f2c7be36e2d1d38be61a6dcb20d6add36f246a1c15a2d379646439535a6445e9d871115826deb704aa1e7400de5b245be82ab80fc35d5c4c1ff61019ddd959193790ccfc4ab17e106244aaa3f75587e11c654bd13d8897778fb68b785ac1f1baa4b29c91b51ae0504273cb0f1a0caf58b6fff763641d68b6b7bbafb9fba9d12ace06f611529e7c3bc39ee33680e77884042e43c81fbdf15e43282b9a45f13413f81651522cbf193246a2ea03f1b272001b2886c9514c54f48b868adba21172eb4bcb516d176f313f3b129a89c8d5b7f6d86694d63379ff3603ea517145ac0fc6dfbbb6008d528dbfd8a571ad7e07f8c1b89b25cee3aa5295fe98f919c2a52a1518705e35a49c4166e1462805c100f40527d5af72cc4f9073f2b767e316a591e18ddb764e7a46232a903e216f1fff7a9ee03588dc93e37a792f67d933b9229970951670306512cacc5b1ef24131c5288e9499f2bd8e900484113ff3e9046da819757824eb65064d08c87ac5b8b637534db5e4e79405e6fc9650a230cb9e5d566175b6b0279d231e8c2bde284fab6ad215ae9a7dddeac0393038f75706c4a3a32cde59d5379097d2494c2c417edc168864b26bdb065349c2bdfac837a60806ccc46d8fbfa8ba258cca149ecde3c496b9c1963fe094b7046cce33b8a1c755cc97f0476c446372b2707e6429814b861b05e329accb9e61c322bccdf367b506784a49af7637f4ae1756ee51aaa6a9c34ae50d06a1bea96104f193de22a533a428c8671375811d5c847fad85158278744b803e1e2212d40ffdee9855bdd938b1362b9418822a521aeac86398d0b33727b685ef6e230e76c755c81fee9c37998992de898358ab47f7b09034844da203124a3f862ea4bd4c96a6334f52cb6d2202359c68746df968a7c80543cc23b5d0c6806827380ba2997d724ba6e020feed56bced02f2172e9260607056020df1450a8dcd2ec9abb8957046a9ef71a51057ae6c5e813b744f4fc058ea7daeedbf756a94c1e5c35014beb8e8cd2a37092d6c35d5cf3499121cabbcbac056fcbe3ef63bdedf5530d6c18175c0946abccbcaef7912b5cfc5deab5ef88f4577d5b234c1ab85e5e1d1f9490b21883c880ce430cc751413d38c39f4212278aca7b7fa54d0e8795c18aad573ed440efdcd24c22044722c93608580199405678d8ec8cd23cf2ff73d63f792321f7c4f98a5fb83c17122ec1596a99830cb143052f657cd5ae1e8ff400bf3eb4d1fd9c11853d3b75f82f0740980fa015cf7f41e03bcbdcd8cd22b0adb429ff5b8e38ecf5a0de909cf6696ba384eacff2858e6ad7864250a89726c4017ec534e7a6fa3be57270522c15e61eda7ac3c9e0ad4e57770ae0d292ec5af8388d84705c74bc7cabd97c36970017be01daacd72831528515ef30f0cd64fd77f57eddd6331fbee9d102c583c444d5fb42181e44666e8e1d50f02ad341f0cac1218227a71a0530012611c0cbbf420fd490033c899ca258cbfbab8fea5fb2accf9033bc1479cba93c8dcbaab89aaf4282ad57b8c984b720c24a7b9f3af637bc6a47d4a9a49713dea594e6babd7844197485b5351859f0eebd611a9f35b4dcdb0675a6e6edd765709e78f0b5a80fa7207279e96086174fba8dcfe72660eb404480c2562e8de7875f669e336ad6f83af0226520e0952ebf27ee8cfc4622812cb48752a5a85a4155d5a2dc91590c5d8608d40c1f69bd2ccb74d1eb84aeaeda7db74409224d61ebe926eb13ce006942dd2a6d62eba38e8d8cfbc4032167e3e2bc698ac49e1785444ee8cb2754e74ed2e204c6313cf71b36924a6851f48ac97fbd0771b91b49790846633dfbbf258da7876a0b2374fe0658acf878fa1c786448f7c687dd17602768c5318f0dcb5401cbf2dc18df23ee2c14eeb02b1f779f726464ec9174e59096dcc327e2ebf7f67c3aaf426d8932ec55c33789067b13daf37df399f21ef7be0f52a29703a7e9e320dc3e021a38b0a57a51704e1d223d289acd19e7b00987b0aacd731bb9d22a8f3590ff40665377ed47ce2499db248e1c42a9d35e2868284b31612ed8d3bf28192a35ea8cdcaed10e5b771da79facd922773a2a8e9f2b8e91b4ef08a7df48981c41dac8f98872581bd86d2240768329c33f97d37f4a4b53557b75cf00b6afb7a4881ef6d9cef1a834714be830e60385119361806f60fb79c186c1e7747d6c272fd5f467e098460b4b7b9e84f11accfd45a5175e71188b7987dfb37d99dcceb6f614e4e068e223b7c488fb53ea70d6382cab3ce9af327533ff68936938894df857ec4237f25a634bc119303985ba419c69424031ac9cdf57bd66ff2b09ec1d743438f7626ec6ca5f1c3117cbe3782ac41dd6d98ec9ac0b668ffac6881f1c881b9c3c9a844da5354434c66ae81c7d6ff3a214227ac7585d93131bcc23f645bb1eda4bfb29d052849e9e34868f70133b7ce3c6a88315b59e7efc361217861ca1e48b505add292802d9194022fe5434eafe4e29f77adcc5473b5446f49f0b37e7f20baa8fcb52e774d16efa508ce92ba5754776a3ba84635cc8a877cbf4970368e001a05495c8df16248ab5e08afb56044235e1ab03c45d447c4faa43dbab8096caf2a43486ce96c886513c186e71df0e32bd9daaa334ccf246f4575cdc9831da363a01d59daba64b600652e0e567a32a62996359b316c267a30b56b30817bf3545418c3d8505e4448dae071848563a03dbe56e1229c15cae2fed47e39e79b621c70f79c608bcce447a77da7be7f475e1865d6d795aef7501121219daa80021b9a5b13f3f988350bfc92aa21e23a2bdfc37959789a00f54fb7fb20211df7011298c687e9326e91ca089d74fe0c24b1e4868c344a9aabdb81231b76cf5db7f7854f3c9d488fff5da07bc84cd468abe47d5db558b66e060861211dd26f1baeb47548427d55a2f83c6cb8c6f4ae651525c699c1a9471c87dd4509ad25e7254db5062c86d37cc23034c44f88e88f1a9093c74566dcaa5db6d5e0d6b8b2de3c8b939271fc152d20e79615905121d980fce48b269e94bb6f62c25cfb46e58c7fe14576946cab2888f2079db7185150388a48f47bfb3f02e1618034a41323066426308d84008786279c58e7602aa47b3c8e696a495150b3ab6572ac7823a83a2cf901c1186086c9fa0ffbee0f9b2b2119a90f30d5a7e7878b002bc49fbd61af4407482fa756d0909a41aea5c642d5f52f7a0a23d967614c64db83195b710b87c110d750336ee104dba80eb28301d9b86d01ab2f27c5e1424e3a505ff47ed6ddb8980015957535f57c30ce192b61b468ae2de064c31f641d2982c5972254f2fc42b68cc83ab9b44a525c673c33603e4e77bc24d156c8d346bced7003784ed2dc44f4db43f6acee0bc884e921939df1dd08f7af7bbf4d4f84a4986ff17e3d5d99a109043071f4a61f648a2fb3673a5f7a91cd17850941b32655ec64c314ffff8c2822e8b3ae1a1607cd2c1b9f87687875c1eede8116685a48147de137055637f86fdbbed8fcf1893226c0bfc1461bdaa39a206a0fac0c8de14b6c105d6b0eeb2ea4a40a4b9107eed73681d72fd60f6d0e45152394c7becbe965e1285c920b7a54cc1bb373c6c4d393d2585917560bc57a1a4f314e64374c553e5f5eea90f7f6a58b69c67c6b5b95929b6b82f6d0bd9db1136e1505d68134ff0266002db437868155b7e355af5ca2975dc6f4adc71981e2f4b966a5f0f13fa1ebc1c03192f9bd29f36b0ae2d714f90db2917fa00a945133669bd1c4ed46f24f3eaff9dadd7732eaf38e5277826899ee344e0af93d7bcaceea338aedee62eb6f1baa2ea8c46052a7110bca75e0f0c19ebeb5f16b709fdf5728f8c0b225468b7ad5d662d6f6bac8ceac8c3a2d3c47d3bbea0422ecaca746530f0e647504d620e56242b9aba26c0acfa498ddfcf8ab5374b37b1ac53b9fa09d906f83231d1128601123efe48f472328f82070bbfb37c588cad20e0c7609029e68e96b001ad526933a013a9550f9d3d94aece7d03f93c5a44a9cf69d657510975c4be0119e51dd6f76d2a59036431831b5f9ea79b39c71c0d58ca31f569d50a8e331b01b0f899c10f9b4ce8129490f6a74826e0fc209eb69d3e18fa4bc4d51c9771bdb5850376f3a35fad2e0de520f392c8a0cee69a1e35d4b20b24f875fec58d6cbd0bdd2c8658c7826b4c1dbf70197b2ed1eb6f409c080bf3b4ff19ff0075209a2add76883140b8ce67814dace02472c798fd60172faed12546eb730d0160b69f2e1247a308d21238526b6b5ba58e7ad4d938656d67ccaac5a6f4e453935ab921be9d74f29d47856fce04d8860c28f0e6894849f7ca83dc3c279e42b7aa854cb125f1d41aef3ae9f5e1da72f9e54e82fdaf5ac3ae931bb292443097abed4fe0b0f3bb02baa7bca99153c16037658a616641a1168a05bba2116b9d7dee683295d12bba5e5fdbb42caf0b43c0178cdf8cebcda0d0255649112ec2ddf5c741ac46389b9d7af9a51c223a6576ba2b912908a256ab9b813f8ba5c10cf764a542383136ecffeca4c769ac1553a7c17d1d17b05a5b06d1b48f54e44e432eceb4b145b7b1d8459c48ecdd5b46385ba8e079762ab9701c8bf3d840900ab582d2dc5ed0b156e2be4700ea61f4111bd06959db8ee410373d9d6fd045e8acaf07c6c79810a54b93c63d96b5ef854984bcf3786bfe1e878e310b48c5ab70c9cb5e030a72d850f8ebc3d7c76c88ae716321203f814c6a48f2e5ecd62853fa1ead8eab3a201d614d6747b22cc078a63cd2d828c642560712d4e05660742beabd55ca40cce142dc291436e32a6260c4cfaf80ca5377195460ccb7e2ed764ea6c07b357a98d25805fd77909115cbdf32ebf6aa8ff84ea85dda876c10932ce20551f2ee873c9b6bb3372aff7d30bc0ecd94f9dec3ca719734fff4709bace8b78025aa2f5fa1f500f7e2d043941630305e4657fca6fcbdd83d580a21272b3cbc9e6fd5bcd440b93b571455f6bba0a9688b19a1f224476f730e000da0e59f9ea187ae8a15d5de17cba62ccb7580219730c19acae623463e6da0f2807e1e31aa13394ed63ff5065fe3aa0a240a9cbf9acae4bd84075aa1d49a3dc3c8cfc0c50ed575e25280f8ae0b397660f0dd7f58b3482d4dff82f249253eb283892b614ec0b84ac85a14a1f6a63b467908735eb868002e6f7b9669530bad0c6ea7f83967f19e847d1f1c8df817d940d5d0134be07769fef7d5d80f935d5cff1ef9affa61f135f0b6bca402f969a7626eb7e90e40296e36ff4087a8c13ace15008b40be46596425fa091c171eb6195c71065fc20ba0c076a27f5652f15331104358d4a0590b57fa367267a066f0846d3832868b14f4354de8f265dde5d5262c42be930d4a2d935beda0555c4d9b84cff79eaaf3fa97b0be44e332656f767c39e3939562f027ef914a8ced5aac4eb4423fa636841342ac410e37ed221e9b88d117ccb21a65097c68bd38bd23666e01d5b65d4da0d1d0b1af302b0997d7790f4479bf2ec7c2ffc69a7fecb3efe2e4ef6c57a6a50e9a2f5842188040a0042a63ef8abd7f70bd3f8e055edbb16bbc60e7d0fc5d01a8537c027f4df01a92edd2b5b514b6e6d6c3a18950f4abfae6fea1bf8ae7d8e1ea78cef244840e992d68232fdd7411c7dc5273fa0fc39011107a05f1638054788ed49e9d65533f29989ce54a4bbe8d89e73ce8a95d045fd991ddf2b208dd9bf39a591f50e6ec793416e2867f54e8c6c7e89b68c2b61fc4383784ca3ff8589a1bb48d19d06fddc78d6120cbc9ad31f275f62f4cceee031df1060f6d49ffbddadf05bbe624393a82b189eb7c2558894c62927288660737b92f8825f5ed0740482819f3fba7826297908bbd44ff00b64ee95d262d60866319c7cf09c3d5b2926ea9d9f068801c8ee0724dac66604b03ac50b18295775fb8b0b215a51fc05bc152a12ab32d44cda758721c5df53f2aeab1b1e3490aa52901602e11113f4cbe12fa3a2a76011643036f3accbff3ceec27b4f0687f60def3d74d09f9a0d5c08e9ef211afed3397ace994a39748325ae53bea62124348b1ba5080dd83bfbc09c8440ecc3e163b7352073f7428a92facb9dfcd04ba29188bdf5ea966ea695711bce4e1130616449195fa4a77cd67b54ecf01ab8888006534c89ca40639d0bb71502306afdbc8646f6ef362b79c54a8f9211aa290ad8b363575fc30ab04aa494f8ab239fba636663b950ccff763bd3b95a3c214ee2344ec895c4bc9a16aebf38c4b950f59b8e501ca36495328cb9eb622218bce9064a35e3e0d9027289ffa5d9f6c8b4e0782bb31bbff2cef5ee3708ccbcb7a22df9128bb2187083882cc6015984eb0411a99d3981817f5dc5c90ba24f0940420c5548d82de47e7fc50db3699f1ca41ce9a2ffa202c00c5d1d5180c55f62ba859b1bd6cc0081b62388f6164882e77278bbd671877f7b89355217ae4e6b6aa7f9ce4a1be610454115199b96a130cba02147c47c0deb43dcc9b9f08b5162bba8642b34980ac63ae173dc4842351fc1c8a551afbdb58cb2b295490782130daa4f359a6a80d7256cbbcecfb9a97e5c4f2ffbd8a11f00d9fdef0aeff835e167c5092117f843447a6c67b5260b50a0f434e9b26585479ce67ab2184adc7b31c26d665642d3512835fe8d039d87d8f443d02abb76df25715de53a329a7a35cb58d4767c08a574fbe007047cfbd663b2cac546ff55428a3b09155b8450e415dc42ccd6b71a69b29caa035b6caeaaf73e8794897ca18d4c4189df952fb27263d75e155896964c1a19a77f808f0aa32fbe90fb9c9c846917faff3fdd4e236c284b76c02dd33753dc9017742d8fad13bc28fc726775196ec9ab953febf9bde175c5845128361c953fa17f4cfe678a4446900f4081ab8d74ef3d1f8b1002edbf8cae3db292fcca0637310ed108f280badfe5ec5168738c4f70a59bc6ea9d1e9243ff2b951386fb668e935023e61ad44de4625bdd7aa3b1ac8ddad355c919de8a23bd16fb36053901ff23cb927712cefe797a4a7f4e1d9261769049ad69cdc7dd5fde113b1dcedef836f6777ca1e8058af308ed60a6ebeeb818e690abed371f4da9cffb6a5f1d692c42285a251cd97c037786d8b2c82c2636db6d427d5c5da5ba697c19a1d12413614b93fea6ee56e08b3891891513d1771244af83e4798cb3f49007418d8e907c7c74a7fcaa1489d3a2528e07746860832a79d5a3a49c5ddaafd480efff7dd1f87679fcc6a5cc6fe0def02ab3444c970ca76d969cb960f48430b24839445645e0216fa604c81b772594096b49b6eb9db6f5cab86e9e2c09b21a00d0174145e1e0ca1f0556b8b7ba1979a78acf018bebaeaa91e7aedb073feff9a30fa371686ba1804237a556a8c33eab8102120d5e69e504552f03117ff4c41ddd2927e511f77627de6a4a04d4b97c9a708bf7165b23f35db83815eca27a7b41b4671371c7ffbb3bae6ade62de88c96683b2c703703847d08586d0c8348673a062661e679b81512dcd9fe09c80060ff76329388ee83c621081f06b1d7de5427116d52a425ef9b942aa5e66d8847e58c55a26086d227fc7ffa2d42fba8936a23c8aab9ce2b0692f1e8972693bfbddf88ffe90d7fc9dde2b226dd5d172f286b38c013140ebd7221a2dd50598242b6b445a0634dea41949d5a1f03135f59868c022a94ed9cca7d1e1566dd0eaa0925732214c02c0eb04e2602315b077452df97753c4071f1ae9e1d9c8d490d2647df660de6fe4c6e85289a83aa1fe27d29418b0ae4af31c1f9327e2e520ab93f3c898265c0c3e04ad49741db2f34f15a160c613d9e3ba807aa54db51bd0e5e3ffd11f53b52d2bab119b9d95c4e43fae3480127cfea7c842c2f0b0201c95f7dc882475f0513d562c9a57dea0c80e499a51e0ab19e8dde158f20b64e6eac2f7899f4380884606a737da762d4d0c2f4af9ad4b5d1eef677a8cdc3b13ab794d57aa32aef94168435677087d283c48b6e93a96ffdb6e6638b6994e915c6b724a277f7927048630e5403d2bc3d181e09bd2b7304fbf58d8eb0d9a59470996bde53e5a9f956075c86d8f1bd637844a553c15cf9ba2a89d02e73801f7c5c293c252ae9b7ab8cf2c639bcdf4ffa4ff5138a0afdc6c14284a194bf640f2c3c62227c3e7a762e5fb1d258aba441574c7bf60f0c0996af73b44ec637095579d7c62dbcba7a25e848c29180dac9fe7e33854553b6447e65f7704fd41e733cb114a89fdaa5457c1977c43f8c6057c876c759c57562753c609c6acadb889d38725b29ece563e68e30a52344d991ed35496013f16f6d61cb6079fb09055aae1332a1310e86d64eb01c6d5c653bf6e21c1dff3a1cff506cff1a0db9faca194335bfee7108442e0fffa3f75649d1ec68bc5f6593ef62b5ea3b863bacffb327034450ddabd4fd79b82d5bac1e4f5291499bcc285c5aaff5955d659485d4f7ad4c61e6b8d312c1bd7a8d5a64856373ce67d66fe0c10534c56b7da02d096a7ef5c87481f8da77fd2c376cb91599b5d805a764d55782d9d1d14fd4e6382ecfc892aa6941d922640efbc8b05509c6905afed74e2b83d171af588b32c0536c4c32ac5dffe27930fa94ec3646b0d1e4004953dcbf7bbcb914b1d5facd3a4ead1f9be1b44cd3aca3da65628236feb83f98a5876e1b2b89bdbaec68308bf2411149e95eef85c2131fe73b92e8981ae1619dee9b9de01aa659bbb2026bf7fe4a762d982f82f64235ab2b995f5c6a66c95375b5e258687e59bf0e5b44e90572bc04ae3452d2383717964b218537ac39f1eff8f7fb900b9323c099fcd8ab40e89a2250b1363822896140133b620af4c3fcd36cf65aaa43ad8ee0cef2055aac5e3fc7babd40c8544ba427f3627358c236b36372285628f5b8c5d17b41669c9d0699af3d29abdd822e141e3be6222a2713c0dd9ea555b8d1c8c2ef6001d2011c79a2c192a58f6ffd6ffb32f65b893107e261aff355a9d766b283fc43dff754e9fe4792422abb38ec6d95a31f655a1d34d2bce33b6edccdde7f5442e1b7524e350604f039762a8235fa33d67125989a5bf0d473911ed7f72a6ee7f300f290e2c8c05ac35b0dc81a7520561f753686363d1614e460a70b6746ba6e0da6f8ecaac3969851e2cbdcbeef86676f6462ebc5d4f3fc0781ebe01aeaafb6149a0e858b9909c8b83d8f2b23c72d1c45fce155c3c590a04c48a106b950d3acd0bccdb7547f89bc6b4771fcecb54e5cace8f91facab9a59924882842a7b4aadc035c749c6c36b23aa89b013e6c2b080035acfb5533f0779f185ce8954f6b7c3923b455354811bca19e1c7a155a84411d59cc35ea9082835fd06653f764520e0dcee198ae3b8ee25d481501179ab5a49220ac4f2653fb99918b2921b171f815b0e5c57ad92ba9eec8e2cbae6f5db1e5e30c677baa34286e15a19671d71891cf3312a24dc3753fadc9f3f85e4e2a5644c600ad57507178177a44cf7589517b96e5d7e78c57837c0ea29e9ab699db34900a43e8413bf8e65b0fff5a9843ebfe9a3aeaa451de6a831694ffc1a061e9896422e6652d225344154ff6b3a8665888bbbfbd1621e9a7c60ff12f1de291b3e654ab3fe10986395af34705ac7271ff74101407033827e50c0c2ea084fde70619185fcbafe18ee0208d02c6e66ff5ffead612748f30f3b75256c298594b36f9bf62a308070160375692b6ec851e5068df2450c5e967c83db7deb5f8915ea0222b192e5ca49414b2c19e1984922a00e60991a9ceb6cc3c2e40d44aed7e6854e7c7f6eb93fa0f06aeae2d15b874dd5a8ac6311052c2cd361ca29fe295667e19ff6d95cbff0388d1b7880b62f94467c84b5f59048249a3ca4fa5557f37ad84197b15b913e0c0509818100ba843b3fe24eabd146292022237f13d98070ae9f2c2a9087ddc8405d0ecd315140e2c83c075a0cd7437507844321b9c00048267f4465e12bf486145bf45b8e5dd446a8dd9489bd360f7e04796b50c0b1840ab9ed1384d6e25b27c713baadbbb3eecb6c3e8faf77bc74a50644f4a03353de46fab6333893e3c783212546ff0c0b596902baa777a8820e1b0a14e5ae175ac19f27f9233727b5592875272fec7cddd1b592737ff2a87841a7708d9fd06bb1be85eda6f4140a7fbcd2cade440e64352cfa571ee894df254d48a7c46e8c56763b784665cf6dbd8b7ca3ed82b401c4eb3a7a21bd33f62ffe778ef494f58113daf2f34beb0d7d104fe2255de375505f7addd4754cf196c48de86ebdaeb571aeebbd24655074564b0d5a67eaec6c11f59d3c40376b1f5aacffae64cdd8f055d8fa1183ed611209f95bd8298318b2b78713c0392a0af779dce87a70406406bddf86c91bb243061f4112cc90dc74546b6d68254796a2d527c78aceafd57a143c176f7bb814f7dd584052d02834b5cfc301b3f555df41704e9f6e68e8b61c6ef346e9ba49a1e609523f65170666d4e7aa2f4467d7159bca4cffe917204a10c0b7fe72bd8b49073c743bcfa8c86e74e00489f12300ea73e67bac36e4caa3cc783f9f2c52cb431217b85ffa60b875db10fc4c35b39ba6d27607539862af03046fc23c1d89a7eeed0a2baea3c53639e1128a685d4d526a53b2e8a88dd383d3d7a99052571612ed2e379da09bbeba29cf8332bbf853bcfcc7ae81011cbc0a8dbc3c3a24c9c676ab84f0e9ed34e1f3515ce178f50f3a922672679a4659a210794e6ce3e625198345dd6d89ac43a7dd19f6a00fb22804f3372d375f589b85a2cfc321d7b69a89d4676be0c20cb80701088e8c7bb1133ddc9e12b8a4c0464878809470cd6e43fd374b727125f0af6cbb660d9dcbe94ad5cdf49ba1f3382af711f81bb5acf03da1f14d36c1e2adebae832e33acc5956f844585a4b63fd11817b3e7a25713adf62511b34f13efff8e3b5ce7eb3d79928cb8610dc013d90536c1014c702455b6502782dc29fb15f5106ef529f2e0cce43503161dfcf6e2658720cbecaeb560b060fdbeeb83185757efc297859be0c8cde9b19940bf0d62a5f29187644bb076338634918d93ac5bd2f25986137cd09c6a38d7836abd8845a8ac71940e5fd094904de231f7932a07beae53c3567ab963d4e2e71024152bd3daa2a4b4d6b4c29c0009f194bf87885f945028ee21991492905728101a06273d25d3974c84df051752694ab992117ce279639477e745f1af27df9f9c145511d09002b779bf57c5b869b6ec0f3e517dc96a3fbaaadc00382df3d1fb6a7524e63b385f0baba3ab32b4faa4e9dd4b15661d75857b052b6a68337384d0165c4981313f89f3d86b205b65971aeb25efce730f59bffaf86cb216a5ad68b557c5dd32e1b9dd990753ede51c31234d3423d6feb67a224a48a56f11cf1f6b91e0845f2f1f4ab60a43e05715bc5956b5d332ee6026d7e648d69cc654e578cf97f686619f98b241d14dd5f0593616b62feba0eeaca7d4c1b1977d18c318dae75d64cc183cc5a8008b107223fcb754288eb518abb83049e95ecf0514dbf34a9e0268513f1bd553c9b15f308e50c0864e248962f5c9ded8405b2409b4d918235aa1de51f44e54451447e472eb74bf2fe86135e3df77f6c489167a821369255eaaf6776a9ec2b9c174015f9b4b2d9c263c1c6416dab7bb469d2f8c20569e4d9f8a897e8c3e3e4926c36528618aa598659339f7042868516a2108d32357d1c7c3f6cc02999f520ef4e206390de85c6c4d90bf4b5196f5a30f4dda8f4e6667b19ca4d0ccd6a62e3f078c5e53296a65b41b017918d57581a3b177b0f5ac16e6218772c5974ae14aeabe604ec3b227b90dc30ba08c3d4fade6e1756100055e2c3026a65c0148544be27e0a745ab918d4324f13a2065aa5819f0b4efd3d8b1dd8e4b91ac11f737f2255a775ef42b294a18ee696da2445dcb84342a2204a3741633026225c750ac9ac48d85ffe3844c9d366366e50aa9c1539209acd05a78d66a9093cbe4e80580e3bac456756be4c9a79e454b0e0de68b291b0499165593a644d54858ad6ea987a5cc476904ca0be5727135c62720f3f81a688390254493ac0eedb3f739b075000e142471a92de946013d0e18827fd8f254d2bf6f5d0aa301e483e827f3a6dc4bdeef082582940babd81ca56d6773890468fddc49f8f20b8a48c9b6bd195cca6ee0ed674522dc5c33059706f51a5428a6fda31eace2c8b0e118a846b82ca9ff6861bd805e7771ac8fd09f769e76dc75270002fc3d8776d955b6b7acd8c2eb5f447749b4fec2125d4ba72f4aef392f3a44fed9a78c285cfff3cc562b171d6d8dfd3f8a1836aab160d1ef8c4d3cf45566c1bd71e6bde9a8acb315667ffc4845736e7c7352ef9f2de8e5bf1cc316d742d50dfd7b1e7b20d9fa1a81d10e79a11418c455ecb51b1746f61c03519ee426b40c29b0dc5717ecfdbc0447ca951b1cd67e1a11b3ac9c035786be3eb452aac480b0858fdc6a883b1621cad0980c78c5ac24774c8f0aa0f532d4b04b698752585b7a4a81b3ca180ffbc4b3af82441bed49f943f546c1e6f4ceee5eb526e65ab6dc682181d9a0837358a771453c9d00d99ff6e8f0fab952b211ed7abede3da456b7f8fe3a1ffce83bb7d607caf73d9d9ae2e40d9e66dad29c99e99dbc301cc9a9ab2f8dfd30a8e7ce8eee7ffee9c5a0e9108609bf9517921cf7454085b5b5acf72ba2c68326824525d1666c453f5c6f18304b800971cdbb34cba93a5bc08118a2001a050a0ddb15fa8058109ea7f6dfe069f31ef0574eeae003b0c3c2bdfe6060204fd39984df39bba2f7f5075ad08a4445f1f599db28ce39fbec384a776f57c41898b3a91392febd52db43de9a4cf61637776df7198831e71134239b37831500ec0a25ff8cfde7aa5772c2a833fbf581e5bc4e8dda6f2b94d09eb490abde1e653c568ac42402c5906d5bbbcd31cd7eccd9bc0e32b4acedfbb19be723b15bb589e4705e2c64a38ac93df3ce5875ad745886a94d5e19400daa76a416e65599ffdd01c4991d69d51194e73c654dd5a26b965f070147fb9dbb739bb04612b45afe8ccaf92cac08a31f91e2d35d981b20a239139179dd5646524a662913c19b3766976bf4c3a3d5084b2e69f7d1980eb977e371c86f2e52c4e0bc164a5f9e96cbbd69ef0ed7c51dd5d3f7d18aef692617f3bd463f83bef1ae44dcbd1195a75d9ad45fbfdfafaad9f66469481b3d2b0986eac4976eb66f49107de5d830192d67390b741b7b78ba836c95cc7593cac9fcecd9376f608fb39305db33373f0b692d3d6452ebc341f927e40350c2120732aaa347ad6fa6867279ce776a2c30e96360e303a1a82de037f2a11271e54cbfe4d9eb97f31d0906cf32682aa94f022f45d2fa49f30df076c9f7015e4bd440d66bb415f9b3c43d9229392ba3d8c533124e14202851059d1a681afe633a56817999b1890b54e9b7f902383f609b3db76e0e540727b2dce85791f42a832bdb5125010fa77fff54dff130f448db34723da65aab312cd3fdc10228363aac554fabf9bc26631c19e9bd2ddd4ea77218892ced927b4aae232d05a05ff231c487ead65f87217afb40d0a30d29bb65d9fa120c1a5fecff2cfb3ed23651dd74b46ab0a1f49e8283df96e8cae4d754cffd6f8dc9fd76a11be2c46784ed63d2e040e39f0ec984c08a21287a3d5d6aa6c4f0592c7dbd5caa84f20e42f9c38468659a52c239f4bc701166e661b964ba3e094377049ab3396f84982834ba91cc2cfa86b53dd3d5ff5216f6726dcd6825d8727a0f3ed5cf260aa20225725acb9455ee6a6bce0948e3ff79b8fcc51288ba9a818951b49f95aef38b7d46041b38588ee451c741ade3992ead8172c737a71e1dc58fccab9f339267bda516db6eea88bdeafd0cae987d9e05d96ab57fdb9ff7c44b78a127c9070f1ab44f68205553f3a1af5976528d85d20dee7f7cb036d02be3917c0b71c2918032ef94c95362dd26247b3a4784e383d57e3c430d57c16929fd59ddfaea0a29acb8074ff7aeafca90765d26db396c56a41d25bbbdd4825f3eb91ceb18b0cc7ec949b7dd99363464364e3ddca54cff32e0afec1751931d347e2569b9a8e36a9b20096867344662f46a502bfe23689f61dc56d1cb3b477b0ef43d5137cff8bb4c23cf1123b21d769c1988ef820b922cf1f049351b72c1dd5ae222720aa39e1bbc73c602685fd2b2a01ad6f46591c7acf292b205ebed5fd8039e0d9afaaf1358ad69956e11e54c327fe601da075e68acfe05537e5f1374add119a8f0be73c2f35baafefe05a985c0e239ead948c74ca966762f082d1e6a34cbd0585f7e9a90a3caa23a3bb76c77d8b0a7d56a04ece1bc2755a179fdce408ba237fd8da59b371583073c6a583eccdd145af25a3fa177209380a0b47fa1484cb59f58d6533ae4d23c0754e7b039983bdd5df8e77830291d651bf61a538d3592a1a2f121338acb61a0676ee998b512dc9e59ed333fded806073ff4c34988fd883ff22feb22d0c72d21763ab4289a2dfafe802837b89a79fb2d2bcf61fc696d42d659d51f7f2fbdb10efaa31c04f82c10ab57677a567c2e9d459fbed6247dacacda9f45f2392a6315ca4d544159510626f34972602c76dcfbb1ddc60d6c17398db54595fd0f10af95a27da2eeaf5d368d14cc94fc6376f8985614aa0dbc9e30425f53c083a9649878a10f3b2daba8af30939af3a03430bdbba8dd3fffe9f9618e39c704742379a8bb22e1404b3f2635282898dbd74b71b29cd0aa40e30b13f28fded10b497572cfceef266e7af7e2266b1b7641616c13c086e2c92625dc1c8c906721243bb4f32d4709c1d1d2c898a88c9bc1ca8b97e62d6dc0bbae90fdad3325abd6507e8c02e46544ef560f73c0d82b7a54a802d818280cb4b2c6e1ce82ee876dcb704f2d0ca5d761cd202d1af47cb7eb59fd41b0d816b852db359f2fcefa867b336d01593a366bbac6909017a8db70f38c021c96802e23c14a0ca980d176327b3186f5d16f11f1b2318a3d9aee29ba489e0c9df9acc2b3d7279389df7ec2444012bb431355230bcc9792cac9a2754e21c2a08d9c81e174a447b9382bc1ef1b436e8296099525137aba810731e7f3de0cd8605ace8591fd5eec9a185b51986d6e65c4e807043be9f9d7c2572a8ea4277dc727c5145617baf0e5c0fbea13218adc8015db9f090d54f5a363b0e02d6d9c36bce376cd3012764acac62353f9567cde7843e3b920dce84740e39a397d09c724405ed83c1bbb8caf1a41b2d0e7f66b6ab9bd5a75d72e9e0a0342d96358062354cab8d3e5a94d2f2cfde0573a8dfbf0de9785270495f59be93d37af629c7972de32169e07813e19636a15c9f42a4ee05674d89b2f32c42f87c4598180c11c642facca173a02458a514c1b9fc76cb8e62920272bfc08dde733d4f97c89f9d608b3b51839cd91ad8fc66f1685915997ade7845c876c7ad4dc9604264597236cecc459c44177fc7c288ba02b270134abf6196c23688339ec5c7065773bb7fe95450e921195014af4aaa266e023501cce92195e574c79e6dd635689ad066300fb4e87f64d9711e18bc146e4e3acb16215d58dd12e7909da8d1a897b31c827c2a922a60984cbe2a720b2252b649c94eab43cbba0b9f3b01dbe3e2a7150b75d07d21f4475eedb261a1453a6ab0a9e81648574a1bacb0424d48afb9b41ebe94ca870f5a54ec485aaf58d267180ebebe190688a11c69b36ad15f89d300034e7578b8461ef424a75393765a7d01ed6a035d7133aa635fda02c46e4849afbe22a0efd5546dbdaec1e7f2279e76e3b65b2cc3e8effe2a9817f4d8531cf5981434fdf303fc6e35f42b2d606ee5e05ab276337efd051b039896d611327d2a0af98a47dd222d8bdbd6e97c22be4772686b66d9e50b393c69ec6b3630093cf4bbe88cd262c2e4c473523dd068d735cc95c118b0f60c42cadacb36e07d664552b9cdda51e4abf6e7675a18361c115180e5777ec7efd807874e93762ffdac4874205d686ff4348dd82f2625af5ab350bea9cd8d7ae578e2eee5f26b0eee639e7cf7cba552a1aa3d93bbd750491a6134a1ecfcfa82b39442ae960d810f3f26634ddf051a28e98c381dde4eeb65c7e8a818ae74cb4abc637fbe9f16dfcbb19c848264824881c1858c8ea4437307a1f01fe4b72ef18442a4971a8b03b625e7323f97b71d0968708f43c750f81b36ee9ad1116714054abdcdd7832235cbea950514cfe9d2f1b0be6e5a2b7f081de7bc5dd8486d397dcc1a9da38ac7314365e37afac927ee97cd845cb65bb557bffd38e69926e0f7bebb660753d5e8b47522ffb40445fc6916ad8b60195fb57f20dd4be67ca3d6d74036a3ab1c2aa294aabd94947471df1bf27d9222b202643d6c3e5851b159a6c48f582ba5433356ea2883175e44af04de6eda9a92f37ca952694828907a5e64cec8f5a79432e3a1a4d94c7c63860a95f7e64c419bf41cd203b6b07177e62665e53b383f205d835e9ead42aef94b3620293521cff528587c2d7fe464aae3c775268bfd5a9d354de2d311a31fb1e9c7b21e285407544d6408def65b71c973d13f5aee9777fe1f3b4d1d68a4ebd8feee1642759d6f3b0b5075d27f12553b22e04d82e4a3f69f8c57b26671f985cc10fc82af8c5993b182a98f415c6c163a50835d1def9e1c05c6642a03638a08c5dbfa49d051a75f56827dd0d8440c0052ec52cbd138adb542a07e70f78a974926c5a44ea7821ae8af4a0ed333b59dca771234df43dc2f5a11836a16dec560f68ffb6c9405a7467b38343b53fae0c5b79066030b08816a3053a04120a342584e7063811a18aa3329b5e3c85fddeccf52c926a54b73bc4ee335b9fe9aee022c84d27b6fbc9920fd10330c8b0d3684be296486fd7e7bec04b776835a1756e572ef13fc67cf01183bfb27840850f8062a95058b1ac061ce063fb1423761ff240a156ad9aeeb92f90182b6eb2c2175215554f96f5b6e21eece13adfd4625c997e5c10e78e98f1ec796cc82b65ed854cb03acb3a6fc12c93c7e0edbd21c54312ef702da3a2bf78b44f088389762a48e28845fec06c1ce67afa86a643739eff67bc877d513ccb92303e4e795ce02dc6799dce615df3802a633af0aa5237d44c9f2158276573fbdab98bcb726d02827f57601de37c8d8e67180a9c881fda59d02dace04b581cd1ba67faac33c7cec8879433c59bd6b0d7220c2bc7453ad0ecbb0653a3d904f22910b1034e5eac0815dc9d3afc6626a37eb301b83946496872635e91ff3b930936e200764d0f9d09ae7e730f81fdac04f67e412991520ed82cbd016080d7749198b0be40603516aaf8f4e93c5fe5183c96f71e749fc544e7ce6930c1be9ee78f2b1ed8a1836031181da8cc4b82d0e32fbd70087b8857fb0d6a8a83083ed2588ad143db99ffa2e031159c6cff1762bf22830026c8c135fdae889851069891b91264e0832cc512654eba5e6dc9ed13f06f84909c6d7a9b71e62cd24ef3b4647852b00d9758fd5f336f32fb9ff2663ce09c70594767ddb3bd083e0ed86d81cbd644fe25662460aea0a9b0bfbb89aeee9172ccd78037e61a644aa333d11779ebb207dd4c5bc53f05aa6aca2e16beec9e960cc107215a5f26797aecdb8a5c4b1d5cf60548215af18b5af614f9ae06133ab3e61b50079553bcc042f806c448b59faf00f8e5e5036115f6787b47815fd744dbc0f49ce4f507230c64b9bb7fbf357f3ce7f7c888c9eb11d0d60c3790dc8682565bcb14029718664a8afacfebea96f14deefd6dccd0fe37f85fefcb8e34576bc9b84f10a10fee5b7a54ebf3c854c8497d371c89ceb50bba3d2af9ef22de07e21ab799b90a8e757aa8fde002b9e0fb65e45f48c97c507895d21ef0cd4cbdae27731ba5469ad23d24115f31f8e64eb64531946f9baec27e5509003c35e2e2565daa45a440a30e3a294cb0d319afdee535c64b8c72c5ab1e0e401e7023cc5474148e3937668218daecca3767f813529a9cb092888b1c7127e9d8c653fb058c626d3e379ce5e02a482e4103f727ae77755e4b50774b771281ddeefa1bc0f6560b45600cb377337cbc0d2196e68bd4a38efcfe52cebdb04827986cb629567c157bc09772c8b17da52cc8b3a9e86edb9e4928fbe4d5700071487162f717c640423e1e5accb62c1aa045a33ef23153aac17995738118cf41dfdb78c7d1e9131a42a98478ffbd23a4d44216679a331294b7530ac88c42d9046cbd41963b8b153270e3fa7f414e1942aed009137219437c1e04c8d91224552b3cac49ffce664887ac4ce14a9a7bae2a1de365508d8f8e89e7ea6e78377a097d95150f0f9cb33e0e3d6635efcc36a53eda8aae1d14b5dfeebc0b2e02f692cd8effcd70ea4764ed192cc3b352e8391ac2c7a97041134aa354357ba182055fed92846992e437ee42d44183927cfc69d9152bbf168cc0b1186e7213db62eeedce0a9d68b6cd9812fe75b328682398d14941cb193afd6d0c8bc2c57d07cfa6ad834446589c71ceb790a55c89dc5b7b4216ed1e8b6f302cc239268380ff656e9a84d05302d880100f93c35b064d59324758aab0cfcb819d05209d9c30c2a835ae2b4e8fbb905bc8f738548d865cb675664c5e4ddaa9c077fcc823001b3e3addb3112ce119e6aee17336dd3af1008afd74f7377453ea64334295703a97658f0a38e7420ed464eb5071ba102ec95e209dff4dd3fdd7b63f25baa1cfbf4a00cf006bda1eb9bc3e215ff796915b989a0e068cd5a63f95aaf10b166baf305863419701268520a83e124cd1aab0ca0a6a4070e0020c4d455f14ef8f694c30ce978163f74ac859f9ae0a770dc8692ddc48db63d2fd7411e0a8f90d354b0a4e83df2800e737df5db83e23f8d62055ad9a3c18f6458e2e11daab62b19285c76c5cd168e9e8e1b8b7580bebd3417d679b774b5fb7009827cbbf0ef873d4d3f808767a9ef27e306edd1003deea7cf5d1e3de05acbe1fd99bcd16b6250e02ab34c1c39a24a90356f4363dda7d6e8d43e07f327f974125d47f4d255e5f9824361e3d251354e74154b9dc4c0124cb3e2a1fe603a5f8839c5247c2f52b82b13bf7f7a4e23bcb98c36288b0e52679fd89d4c1187ccbc53de495937e1044abd767ff84264f2ed4cd7eaa851593576475f3c9c7c31afe46082777b75083c1d02850cad6b960603d1c38fd59ea88f3c802dd16cbd8a1041076071177c043a4d2c2df95c96dfbeb0a5bd08f40e5db63133bc28b316d99ddad3764970e7349b7eb7f92b577cd74163d16c1b35b3c7a8634ca3a8244c78a1a56924ca970f8c65b37cb069b0196fc0f44140254f70b6ef551f33668d08472ff77cd11afc401515e7406adf846b3908ace27339cbd425a0fe777a2b3ea66102cc9f35af867aabbfe5705bd67e010672b267b87bc319b7fa8bdedc2fe5533fbc967394faf6ee671c0e8636bed68b9e04ad3f719f0576e0418c5d0a393b23dbc93c65d483f4d4fc2f8d079dc904e1e0475aec0d1f9ac83e92a992f05395e41926cd50bb854d338b9aaa6be9999e0a2882142e3053d66d910cc01590fd2b8832a712279ee8d5914ded74977b04b88d1b07d4aa4111e2ddae30b87f41fd86178a43d806f293f8def79911bc34e76fbf9166f6ab940dad1e614dc8046bd96c5978f7cd92c4b50620e55d1b58abf8226769dee9e7b9927eea97e0e6ce8326a631fcc2b1e82b81e520ad79181653006b7d09b117463ce05f83bb3e117e0263aa5e4a0de9259d12cbfe11038fbab176268f8c49a06bfa6797e70f4412927e7e7306d3e64fdea3578d691e13752492837b959491f5ca7b5994f5f51576d55aa41350383bc6a4d9030ffa20a09d0deef359afdfb5518e92e7f8e3ed25ae87d3226184eb74461af232e88e5bb5404dafe4dbad7296929844f25b381fb2d45c1e02ff9695ea170d1d3f76b49cae7479977a45d12f5f20bbbe65619a22ec0543a6d60abfbc81ac6059905250f01e1f6010ef893090dcfccfcf1bf655bb806f530b62e5804bc1ca80098cbed18e18f6ad5bcb8f15fc071a01256e9232dd6e2502aa4d9ef7f22628645496800ead95fe33a3a07e851c21ee9ce9add018c60eaa9c24873b2007dbb65795b8449faf8d15f8301c53fb96bbe362f8cab40c0ff7cbb6569c3c9ca8af585fe2f12e28674194e15c2df32cf4d13dbec838af1142c255f90c6e98d33afb6564c67a7dbdaf0bef27c0043d4fe4f42798329a4e04fdd9f765ec5f80391b88fda8c7b7e28b272b06b5e65e05ff24c1e49d058dc40fcff0e9fab66718d73f962d56bf47b123a1f816541a4ce83b766e5c4e2c2a8ec0719dd202b0b21784f6f8222fb3e82500fa9255764b8db86da43146a2dc9886f09d2989965c546d98186fb483be82e2a792e82b70132365bf6d6e079e10f6642845a62c26ab53dff0e2fa25889681837886b7b8cdf12bdcc41248dd2fdcabc84bc515bc35b5d9a5b36d8d357c7768fe2656eef5d7894fe8b5e5077485be75c197da25e6e4121e6ae6ae53ee7b2730f1b7d1a6bcfe72667d16bc895ea98552c5f34d740db4c0e5f9eb533bf33f3008d56cbb085d1f943e8cd9edb0256678efd1a8c4a0112d7d5f0170bfbda5dc8e70cb9bd92b0762fd3a25cc3d8396fbcd09c9d3641d31c639cfa93bc6edf225c9b445b21c182ffb9975b163db9715312d5bc507ce2e2b38b7586463cf0de40569e74283fcb44ed0118788ee70d6915ca91c95f8c21a91642ab004c23f53d726ccd1dcbd014ef3dcf6ca46121aa0e32ef567243e13a4d65e1434205ede2ee6ec717bccbb97c1e94504d1f2f8b1ca415ae08b450b22dd7b97688f20810f92cbcaf370eab3ee2ab566a3d83d03dcaa8837a8aa55516fc24cf5e7e65e191df28ffe90962588aadcce272bee5f3f6c670cd430a122c7699548e0c3ead5dd6e2c05c9eaeeea7f4ee08edd149bbfaf213c677a0a0f7703a3bd964a94d5498fcb12aa30d7266e845c1fa67dda5905f67ec69cc064a40546aed380e4debd30117d4400b50e51807f3b85d37d45c7a69ea5dd8bdd1144419335f9a7e9d19f470b6ca33d65c7b046db60cd18e56ea7f6cb61bfc51dc42de29b418b058a54f8abcd4e0822f8b85b84aa0c2213c94db11ef3d717073ea75ea1e9903da76ab0c15ab5974007175e4d83bfafec7d6518df10fb70fa464d1c2aa6a2944344c6112d348820373629caa1c59532295cfc9f9c20957a4a52fb6d751773ad5e8c35718051775ec6bd9639ccc303fb43d1c2f6b82ff0c3068f758607ddd00197880eefa50109f9eaff3bd621691a9d84a0743c48b4b97015b840ee7b2841d76456c62feb1138e889ff038f34956a9816828547b3cc63ba4f5cbf6b48c203d61e156721c60f60ec56a59d4bd95e2cc9c1652b40cb0be433f86b3c9cfcc2ad935c42392268ef785480514868f32867601441589081ecc1646439c1f273506b744c309659db1e260d7541446c3221855e7a9d025b733606500320b7ed2b324c0b40a2b31c74adf6c1ec97e96537b070710a943d71ad299bac828475d65e41a625fcee6b5f90bedca700bb2bd886facd990aef600cc8668cc1ad07134c8e407c07afb45e2c5dd3d17f94f68104e2cd0cc1e35b57c3304860668728d22ad1d18ccf28d530769b1bf57089a6460bee041bf13a30de78ea3c863a63817469dba0c54ebcd299ec752a4940ded584d0c47d4232b4cd271216eb6639df93485b213b51b14113944e84f31f64fe7742cba778199fe372e831af36cc52f41037370589d169c1b4f32c4ee3da5e8740e37338f7251a7195e6b42946b21869f449697aa508fbabfb72e04b53e18948a94d7364cc46cc7197d48d3b23a1ea3e94994fbb15f3b698c1c98ec49ee714f701cfcc30bf61507e6396e7791ab48aa4494fbd9d8b8823a0629face6775edfb90dd1525ac919062777749b0aa56bd64c7df8466c8f17fb80e8f213e92aa4d9af488aa1e7c346afb5fe0a6920692310cbce85d7027a16fb05c22e5dc81deaebfd5c0c72befb12388ec4b2d64e6b75301cd4d12eea98e124c863dd51e48663eba752cf031b536373104a7275c6292b703e560a75745e6cc22451c5b1a9ffd7aac20fe8fdb88907ae521e32dcd94689adb2d9cd1a4277cc609ca9f067deac66bc20ecee88f88d5d0003b2ccf427604ce3f81f99ac7d28262e26cddd493b1e6e84853f932eb5511c609b610436597d46dcbd870d3bfae7699b87d19230193a44443eeec76ce7582da6978dd446366bdf7512c92c87360cf738f3aa4811440d58f76e51fddbdcf79d7d9f9679b79e712417a13e2c31b41fcd64b46212d627fb8f89542956440c6b8c71d8060aecc298a08b3c5e0ab15d3a5d2b2bf8bba78e087eb2a6a1f97e43aac41389b19204580bee478a8e7387599ac7040d0f2910afdf827aa366f885bf6a42deb89e6efb46fb0beb0ff2c5f58d74e12979f551251cb68d3d0e110b93724222a73f5615381e8e74641fa7d2d7f47081d2945b378a58b2b90753c86ab9899949e6aaefcef764783e7da3391c5ae32835fc4b3d50f641ad24001a0b5c2d79dfdeb92f99dd51bd3789d77c70a6f3b9ab60bdaa76577633a42c798dbccdeeac748a67b995574124b311a77ac6ff87e7b3d953d754c5e5ae6c9122fe9828f1ee58a396dc68d02c35c0912f5dc7450df7388dd827a66bdad9beca690e21df0bc632a435720807a20b7819cbbfc14429aea295a88e8ec358d6ef3dfac9178195e9025bc05b050f03c10f9914b1e006cf50d6b21fe67b6c4cb2447c27ea6d8638ee93bfb7a1b28f464c2f67f2b77d0fac9511ee8f8dae8e45b1a58190074cc12e2a0d3abfcec6b574587ae85163e66e2fde3f6a440768d03e2ff95a82bbc5af5295beacae25e9a5af11305bd063ccc48ee22b2a61ac5cb524b14deaa8c47a30818a196f33a7395257e675c5d57cdead9770ecdd887703e3b63c4b3eb0c453ce00d6780691736d6d8ce5cdadb2c72c265005e4a60169ac2e4ce7e86989aa300a1d66b4934c11c815bc626a5ff457ba7433fcb49934bac1ac10b62fd2e55baace3537bf0cc1c2afdfaf04dd6ca6a2ba984fac2d96eaa6197cf134af9cc290c6fc9ddfee9e56a3be15c220a575eaa74c5fbb7c0c26df15c700caf2bba683bd705165a9b43cf06c4173cd6551f2f905da68813eff0086e32dcb2639e6a6dba370511ea221f44175b0e6900a8f7023ad3c8bdc292d26eaf8fcb69fafe4f27943c9a4c220079f22bbb0bd838644cb7bb3311e73d7cfd9c46c117fc0942d30ca7c2e93b633d5748376507ce7efbf3e823e2a3feeeb31cb9691701e6f07af4434b20297770463dabc3d1541412edef59591a6e19c43c1a6a8738f464fe679c60ff1907a641ed7006cabd6f17ece9c74af05f3dfc62531ef1a615a01417ba9a1cea439e0f7ba00da9eda2fb8a6546b0c1bfd3c6849260d6a649e92dec53e70a52c3210002543dacde6d97cdfbb3fd3b8baca7073f16318cce12b17ac8629dcf738b95ebc9f2381340e35b3a18d05d3052657b0b93f8e94ab757d6688cf97d0311a4ade994d9926342210742680d29973d20a93e9f9a4dc045c236e1142c4f725c8bcb2a5a6a035467d9d680780e07a60d0307884fec85f29b533c716c1b8b797c9d1530439404958e425f7a1c8f4c24ffc4a14b0d7ae26fa9969f58be1afab1a2789b0bcf6a2e748d34224293a2156f5cc011f3750ceb9cc2729d720bcaf1aae320aa3496337091d9c4481a8b720c803847e12427581857fc09067ff7d1a3a73e99c49a914e5d174e1d9b2c2148639accea3a89c5c9230941b9dea3f9c40f94c1fc28838feed5643e5b2083e60b477df11cadc266f3e48c21f7c8755b31d0699f42e44a69869a2b11af92eb7a7cc72d65849c83d4db766702044a7d31e50c9c6ae3a3e1e944d6a1ac26fd4dbda491e2395c89d8981cf5281fb31f85bbd7ba38e478541e1b198edb161fc89ac792ed0f95e3477f76bac5bcdb92087cdc5e14e6d65dbb2ded1e205129d14350941b5c2e120c140a3facbbb83b592ca9621fdd06cad39d1ef5050900beb06bb350bc6c9487f8f3cdd51338df988b4ad4df7b1fac5061fbe6fd32c987430a2c619a3c517e4ff874222fa73544f231eea1bb1664a6bff1dbea171cfa08721859fb6783c24c5c67e49cee02001e08c8e412729d764a75cdfa7e812483224c7e4c1cf675d24504a9f35181d75f523c8055e1de3703fa214dc654351882f90d165924619ec3378f0dccb22da449aff9bb97dc3765e15c179571ff8a32e5d8d112c3ec90043f5f964b620f7aeb2b2274a539129771b8bdd37e8b85af0ae97db456d3577a906c38d1ef32a65b415f864f3dcbd9eb5c680ad2f0f7cb0dc96f4a3bab94e86d12a88985c65ff08410c34e5d3c7a46d6b24c8bd42c03c3dbecffd3d3651a4b5d67c2b699c7d25b766e0c60f8e4ef914722dd8bb396445ae3ad0a37c7a41f8e05bd512863588c84bce7cb51c4cc9f2c36af34b6f1fddd2f916c8fab1968b7bd2eb93aac3058788f3cb5cff4949a6ca11d11bf83ad647c796f18f5da09bce7424eaafb5a84f1f06ab2e51a66eb6a77c50e844cc2b92302f1c638d3bd9a443b1a6fcd10bb4577d5b2231fe960d2aee52504c5620d3ede517cfb939924e82d3eea4999cec5e381764c3e7bbf939e6e6d0189c11024977bca860a3354aa44267121847c9c71c12fe3af771d4004462591e06020e14fca660ac867ef21502d0b454de741549af58732cf214407696a09f3e7af5e2d5a4ba2d79ed55d2dd0e07ce6396f30c0cd68f950a646290cbe416cc2ccb675e3ef511803262f6873887100ea3d113323b3fa72d51096fbb19192ebc5d2f2ba75f3683abcdddef2a24e5057f858a4b7c600a74931c152c1e59d10d7c81cd69fdaaa6685701710c7bb8d6685223aae41097079c8949ed1da57e7c5337e0f24de68290928187b5c6c74229f713405361d341f363a9bdc56be6041e638a94fb2302cadc930b7fc0753fcbdce8cc48f7a9bd888973d0c0573e600800245f0ae87e507d8a94f8ea0edbaa89bd42d464837d25745906fb427a868e4b16863f6ac5a40fcdf81cc65b2bcd50e5e2eac378576aec4d81533a405a8aa674b9331ae1377420bc2ddfbc3e939760b78d92f3010408f46fe5eb3bbdfcc4d3cff7265c8e0af433add1b8224166154a6ddd9df8be15b14588635bad52ae3a0431bea0252749743a9fbc00a87bf1a762bf750535730577aaa7ba70aa43e443ed75b990d235f5fbbca7b45dadf411f4e8fa695fa5cf3c94e331ff78dc69fc048a7b42eab5f9eca843d76f835eafd4e1f856ed9a7e0a92352c083c2498a5c0591008bae675b5e3f3b044707b8f4d193921795ed193f7330a1b6affd382019bcdcbf4ce972b883a015c1062bb0ae033806e804c2337fa58215774bcb727705b0844324f442af2724b24e29d2b8799e8937ecce0b2263780b247c2c038cf3a333f12b93e42748854ea94d0c5b7cae9bd47bbb2b47ffb28031213a9a755b743d25d33d487957bf2d4202dd636e6ed5fb4dce6173c72a48181d16175cb659af605a3e4b20b46b5c7aa1f9be6cb6abef4413ffe46d59b04cc51a40dc4fa055e8cbd83e06a1cbeaf63fb0ce850ea4008bb6544619f9926e8eca895c08568c0b6e88203f6063fe7f1d6e342b87c3a12f4be268feadc126351e23f5ab84d93770c39f1f13be1dab838fa4a332cd5f47113d7cd62da18c9b393e1dd09a12c0242c8aef36887122f0f3ab6968e67e50e3888f5e373814a8d51ec274e6c45c0e9599cc3f49da243a7ae4b2d11692a7cdb350ef6326787c23b680c97fe42d0e71d6ba0a6993514e16135bb4123539b5aa3d4775a09f86b8e7e0b97b79691a0854851cc8f1e4da56f8430c10a1ca3ace07c7ec1a5953b47e691adf0dbd08bea71623217eb7cdb1e7cb359eb3966bcf96ee80fa81fb2cb7352024fd89fef40d9922549b8b8d20b8bfff0290522a480a257240c91ec64f63375511d4320e8edbb8eeee54539a774bf03117fb01a9e6be83d71ec3f11901a017e6f2e42a339ed6a6556a72b64c638a63b4577a5c1276f3bf32cf8f4efb67456a8fd4b84a2e4f4d8c0bf213703ab6df526cd88abac1b675baf1ee0ac5d5240794a0c87a19e19676fefbea38be515cf91779267e10b6f441b02ae0ea87b06a4544411b7c4d99cbb4a97da929b8489943859f0667321de238c0b802aa4ac91998bed1dd2383eff48d246b716e882e7dedfb00a3bb9ab96e3717bc741a485232917d389889fc5e90cbe21149905cfce1b1713ecd84d7f48b728543dae1976de5d850ab23a33c7ea956daf350a18c95dfb481edf0161d92812fa6ef8f2289a561c40850fa8bfc67e5d76f2f01ab6a888fc51e1ac41c823fe6e4828d49ced58645652ef44c9d3d384e8d598fe5417e53e1e06375990de8fd5e37a151a00f18516238746909bc7b1ac8f4676dc9e7c1e0429d615e2e78aa594730e4b7381d9815ca9493ac789923a1b17b3e774460ae1579c04299c7d584eb3309666553cf1dbaf8e624b783f29c52613924594eabba89055b77570fde20cec0231be56d7bd1781a877c2927e37fe9c0639650630190dff461bff54eb601641407cd8e455460f81659667338e2beb6ea32f15ce3680398ffcc76fbf873d02c5750aa75f70c928803c4f12ad59498cf513f991ce0de02eab602a75b83970e2fae486b82449c4489cfaf2fde9b9486bde768f86e69ac8b295df31d828d8681b9d46deede1245848ce22a4b0923d35c2861b55871e33938ec150d2f939fb28b3130be60dc76bd26d02b733a0b50dcfac3b845fcb1eefee80414a98f0a559c2063428da73ddfe232641e3cb3015bcfa77e57d33b9c3bad422d4da9b1d298aa3d00ca0b581b10ca0169e7a897177ce1a2cb6d10a424abfcadf212be36b916f6b929ee39e9a263035c77cb2f5dbc5845c01cb34ea145794f552c92bdef5d9ac49dab19d58affd5786c96e5b7dbeb329ef343e4f5f8e4962d81784e8b379b11eb6e8254be05e5ce69b45b26e87377cb786282d5297e9c8afd8a3f46515cf668c96c8f2772fe30c5fab685d50e98026a92fdc6044e1d0abf9b65ce0c143c10298dc7a0a802f1052a008b6e52f9e63d5f0a09cf9b42a160ae90b5c554bcf726c4e1e5b666c7bd771c914dbde1bbe950eae54191cabc869a8e6751a08f177634a679d96dfacfd546c225e17c4a857dd197c15c2852a26fa9665e30e53f28eff90ee78ba4f61160333689c70081399d9c09019b666a433778aa6ff4c656e5198409cb0588f01bb3d953003469edc169204f1cb1fda3e423ae0a069ed57cc3330531e685f5121ec50a16fe3add7e26b7f2a3554a5695aa3f0bb993aa129b0028876264ad1c1396494dbf23be2ac8bd481f85d56284fd80d2d2b50a407f4bbc3a3ff5fe196c6280932d2cd1e6b6569a2aa84940a0e8f11d6eeea4fbfb1aff335138b8f9c09c2297e0ca29454b43271513b8e70ecd83d3577afb3bd58b260f861fb858eefb55b66eb75c428374b5dafc9f55e23c1ed4a1dad3e761bc07cc57dc7b1736d22096738e4f2e90ea460fb4c77831c8fe31e7a197f60e758d7f4f1d6888085160337fa5b6b1d84cd3ca197b1d4b5a877e6bb5f93a57a59b0be3c735394b3f0ce7baddee03b1f0731a4c0d9a40cd6fca1f8755f9de9c923ff00acb12ec4dfae76ef8e65418fe8e1fd780131bd65ce1e7b918e9271ee4ed7b4248411050cae61db966fd25745fed4b236c2fac04c363a8c22e2ea8b9fd5f046a2f7770c0c40b5046a14c7bf8bf40d504c8bbd419dd4fab943c3f78d2470a11e78d128c3b3ccecca112b0ca56525f904deb5c9f58db2db9638425b31e8cf668cd528c76c408cb9988c8c447580ac37d993964870b382d490a95d482fda4ea38cd99d469a218a2191e67a4a3e30d02b58e33dbbb2b718253cfcf6b66c8ea1b6da37e258c14c739b57b4cb217049ba670ea4af51c196c86fb0d759841a0aea31ff56b6b51a99e609ec2051988e2d5b6ec41faa26e8483ad3ba4957b1aa9c57a337478ba5a53db879e7f6b6909480045a4e44b93cefa6fd7d1132645cc5ef744ec3370cc5868879035224b6afe21b42530966b1acaa2f83479f773a15a5083d9c5d2b0835225b2556e952c087249acb9fe97c3788847e83d42c4175aea87b5f208ece61812288f1178c53040b2045c9df548b2314d6e90bc57a44924c95f387a0c4ca4ba413bceafedc89bfe17d0bb868752d945a132b696208560edc38457461f1f21c772fe8517b2ee65d8406bb56110bc77cfc59da6cb853641e69419eb5649c5787e21b189f3a9f137898ffff08251253221170b5890bebbeda5fec3c74d2c8ab1bc454f71f4a4ccb0188a608dc5a928f8e3a5643e46297048dc11dfa905a78816fad10940ca31330935c464ef9e3d0074bdbe8b9db7d2217c03ff5856263af206517c420156e3c341a8c6b1d659af88aab96fccc8b846fa88c148527e085f8c5593dd7c0c5481877fbe3673407a827bf7e532a2d5cc91aaf0a8a91116c47695140618eb1a7881b56a76efc63cf14470abc1006e1d6c0bb84756915a6b1176bb4d7f0ead9355b631bdbb7a4315ec234904b12246e4a906aaa7a00269b1f6bd138c63fa27eefd6442c1ebfa11002c4622fdc346fc1efa092264e629beb5e057327140b62838e1ef1998200b3eea6d0ae3f5d7cd06f889e03e404b9ce82b11df61cda68720fe51bddbb5ec6cf36dd3030d3bf996f4024f96c06634364da7310e33ff188696ad6971ede953896e7e68418d170bc2ef1da0aba776940ab9bc04bb34460b9f65ed659ccf87e09abcc287eb7abd22ba620de1cb8264261d8e38e5e677724f3a823a5506a4e6a88c9947459c30ebfb779186ac58fe5e90be0b4aceb29f7d39cb38ea3bb234d4c7146ea3d36a70e040042902f8a0260c59790a453fa1870027738b03e3f0c2fc28bd163f8fe4051602277924256d720e36529fa6140a173e4cda910dff9ef85f5417d5e6f0d3fa60b1f2c30e78e7f6eaae1a97bbef83de55f6374b806f7569eaac14adbbb6b29d894b55faf35656934aaa711abe0bc947e48520a44a03152684e9ed86762ac794f8faf52cd6b541adbc1e17b528c74be45f13767f0cd9850d141f4e0c32b300138d198057f71f2dcb4ef454252bf4339d574bdd8942d33b0ee63383542a396123726e44d39e27214d41ab7ecace57acba438287aa2b4684882f42e2b0ad5db7366ed2e2ca481d08964f93fd70f9c54701012342a56cb4ccf35982f2b3613ab0aa174b1bba667570a0a77a00f8ca3f7bae208c94a68352aebf37186139ff9fb14db1818f23896928d714b947ad1a519f35ec139c07484b6a03a51b816ed671cfd47412e868cd224fe44bf02c858b6fbdd4a047a74bd98be08b49aab51327418f9057482e093fa8a255b954ba787cf8804ccc532e1fd17dba2c8a73c1c7485b0f2fce5af0b488c99577695b80f7eee923411f49a00e6ca9ed3bbf30f55017b6692d5234b5889923e46bcefa00f185d99024ba7230fb1fe9b6e7dd402471f82fc5db21b6eeb3f7a39e39c84c14fbc3e088ffdcab0d9f7c087e1d2d6a6389bf870b3309dc8a4917617bdb177fe42823f949a0e699b27ad09da54f480cdc3a4184f0fc30a6984552ca26b8da2e9213efb5d0aa88223f2ce41b1d9b715e1e17c1a4f277c1cd7f8f3eb7ebb0eb4a72c29c98ea8460226dd0e1cb0403f9eba8ee140aeedff3638b2602d07606781799bde133778606c090d99228e3942ae27c77dc1f53b994c4c66b123980brootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootpython3-documentation-3.6.12-lp151.6.36.1.src.rpmpython3-docpython3-doc(x86-32)    rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.0.4-14.6.0-14.0-15.2-14.14.1__@_v@_0@_0@_@_G@___P_P_m_O@_N7_L@_?@_>e_>e_=@_@_______^^g@^>^>^8 @^0"@]f@]+]@]m]y@]v>]8H@]8H@]1]]@\\8\@\E@\C@["@[6@ZZԐ@Zx@Z@Z@Z Z Zz@Zhu@Z`@ZLZ"Z }YYX@Yo@Y@YY@Y@YI@XӸXƉXXqX@Xv@W@Wx@W_W@Vm@VhV*!@VCV }@U@U@U@UU[%UT@UCjU@TeT;Marcus Meissner Matej Cepl Matej Cepl Matej Cepl Steve Kowalik Markéta Machová Matej Cepl Matej Cepl Marketa Calabkova Dominique Leuenberger Matej Cepl Dominique Leuenberger Matej Cepl Matej Cepl Tomáš Chvátal Andreas Schwab Marketa Calabkova Marketa Calabkova Marketa Calabkova Matej Cepl Marketa Calabkova Tomáš Chvátal Tomáš Chvátal Tomáš Chvátal Tomáš Chvátal Tomáš Chvátal Tomáš Chvátal Matej Cepl Matej Cepl Matej Cepl Matej Cepl Tomáš Chvátal Matej Cepl Matej Cepl Matej Cepl Matej Cepl Matej Cepl Matej Cepl Matej Cepl Matej Cepl Matej Cepl Matej Cepl Matej Cepl Matej Cepl Matej Cepl Matej Cepl Matej Cepl Matěj Cepl mcepl@suse.comMatěj Cepl mcepl@suse.comtchvatal@suse.comtchvatal@suse.commimi.vx@gmail.compsimons@suse.comadam@mizerski.plschwab@suse.debwiedemann@suse.comtchvatal@suse.comjmatejek@suse.comnormand@linux.vnet.ibm.comjmatejek@suse.comdimstar@opensuse.orgmimi.vx@gmail.comjmatejek@suse.comdmueller@suse.comvcizek@suse.comschwab@suse.dejmatejek@suse.comkukuk@suse.dejmatejek@suse.comasn@cryptomilk.orgjmatejek@suse.comjmatejek@suse.comjmatejek@suse.combwiedemann@suse.comjmatejek@suse.comjmatejek@suse.comhpj@urpla.nethpj@urpla.nethpj@urpla.netjmatejek@suse.comtoddrme2178@gmail.comtoddrme2178@gmail.comjmatejek@suse.comtoddrme2178@gmail.comjmatejek@suse.comdimstar@opensuse.orgjmatejek@suse.comfisiu@opensuse.orgmeissner@suse.comschwab@suse.dejmatejek@suse.commailaender@opensuse.orgrguenther@suse.comp.drouand@gmail.comjmatejek@suse.com- readd --with-fpectl (bsc#1180377)- Adjust sphinx-update-removed-function.patch- (bsc#1179630) Update sphinx-update-removed-function.patch to work with all versions of Sphinx (not binding the Python documentation build to the latest verison of Sphinx). Updated version mentioned on gh#python/cpython#13236.- Add CVE-2020-27619-no-eval-http-content.patch fixing CVE-2020-27619 (bsc#1178009), where Lib/test/multibytecodec_support calls eval() on content retrieved via HTTP.- Add patch sphinx-update-removed-function.patch to no longer call a now removed function (gh#python/cpython#13236). As a consequence, no longer pin Sphinx version.- Pin Sphinx version to fix doc subpackage- Change setuptools and pip version numbers according to new wheels - Add ignore_pip_deprec_warn.patch to switch of persistently failing test.- Replace bundled wheels for pip and setuptools with the updated ones (bsc#1176262 CVE-2019-20916).- Handful of changes to make python36 compatible with SLE15 and SLE12 (jsc#ECO-2799, jsc#SLE-13738) - Rebase bpo23395-PyErr_SetInterrupt-signal.patch- Fix build with RPM 4.16: error: bare words are no longer supported, please use "...": x86 == ppc.- Fix installing .desktop file- Buildrequire timezone only for general flavor. It's used in this flavor for the test suite.- Add faulthandler_stack_overflow_on_GCC10.patch to make build working even with GCC10 (bpo#38965).- Just cleanup and reordering items to synchronize with python38- Format with spec-cleaner- riscv64-support.patch: bpo-33377: add triplets for mips-r6 and riscv (#6655) - riscv64-ctypes.patch: bpo-35847: RISC-V needs CTYPES_PASS_BY_REF_HACK (GH-11694) - Update list of tests to exclude under qemu linux-user- Update the python keyring - Correct libpython name- Drop patches which are not mentioned in spec: * CVE-2019-5010-null-defer-x509-cert-DOS.patch * F00102-lib64.patch * F00251-change-user-install-location.patch * OBS_dev-shm.patch * SUSE-FEDORA-multilib.patch * bpo-31046_ensurepip_honours_prefix.patch * bpo34022-stop_hash-based_invalidation_w_SOURCE_DATE_EPOCH.patch * bpo36302-sort-module-sources.patch * bpo40784-Fix-sqlite3-deterministic-test.patch * bsc1167501-invalid-alignment.patch * python3-imp-returntype.patch - Working around missing python-packaging dependency in python-Sphinx (bsc#1174571) is not necessary anymore.- Update to 3.6.12 (bsc#1179193) * Ensure python3.dll is loaded from correct locations when Python is embedded * The __hash__() methods of ipaddress.IPv4Interface and ipaddress.IPv6Interface incorrectly generated constant hash values of 32 and 128 respectively. This resulted in always causing hash collisions. The fix uses hash() to generate hash values for the tuple of (address, mask length, network address). * Prevent http header injection by rejecting control characters in http.client.putrequest(…). * Unpickling invalid NEWOBJ_EX opcode with the C implementation raises now UnpicklingError instead of crashing. * Avoid infinite loop when reading specially crafted TAR files using the tarfile module - Drop merged fixtures: * CVE-2020-14422-ipaddress-hash-collision.patch * CVE-2019-20907_tarfile-inf-loop.patch * recursion.tar - This release also fixes CVE-2020-26116 (bsc#1177211) and CVE-2019-20907 (bsc#1174091).- Add CVE-2019-20907_tarfile-inf-loop.patch fixing bsc#1174091 (CVE-2019-20907, bpo#39017) avoiding possible infinite loop in specifically crafted tarball. Add recursion.tar as a testing tarball for the patch.- Make library names internally consistent- Disable profile optimalizations as they deadlock in test_faulthandler- Disable lto as it causes mess and works with 3.7 onwards only- Sync the test disablements from the python3 in sle15- Update to 3.6.11: - bpo-39073: Disallow CR or LF in email.headerregistry. Address arguments to guard against header injection attacks. - bpo-38576 (bsc#1155094): Disallow control characters in hostnames in http.client, addressing CVE-2019-18348. Such potentially malicious header injection URLs now cause a InvalidURL to be raised. - bpo-39503: CVE-2020-8492: The AbstractBasicAuthHandler class of the urllib.request module uses an inefficient regular expression which can be exploited by an attacker to cause a denial of service. Fix the regex to prevent the catastrophic backtracking. Vulnerability reported by Ben Caller and Matt Schwager. - bpo-39401: Avoid unsafe load of api-ms-win-core-path-l1-1-0.dll at startup on Windows 7. - Remove merged patch CVE-2020-8492-urllib-ReDoS.patch- Fix minor issues found in the staging.- Do not set ourselves as a primary interpreter- Add CVE-2020-14422-ipaddress-hash-collision.patch fixing CVE-2020-14422 (bsc#1173274, bpo#41004), where hash collisions in IPv4Interface and IPv6Interface could lead to DOS.- Change name of idle3 icons to idle3.png to avoid collision with Python 2 version (bsc#1165894).- Add CVE-2019-9674-zip-bomb.patch to improve documentation warning about dangers of zip-bombs and other security problems with zipfile library. (bsc#1162825 CVE-2019-9674) - Add CVE-2020-8492-urllib-ReDoS.patch fixing the security bug "Python urrlib allowed an HTTP server to conduct Regular Expression Denial of Service (ReDoS)" (bsc#1162367)- Add Requires: libpython%{so_version} == %{version}-%{release} to python3-base to keep both packages always synchronized (bsc#1162224).- Reame idle icons to idle3 in order to not conflict with python2 variant of the package bsc#1165894 * renamed the icons * renamed icon load in desktop file- Add pep538_coerce_legacy_c_locale.patch to coerce locale to C.UTF-8 always (bsc#1162423).- Update to 3.6.10 (still in line with jsc#SLE-9426, jsc#SLE-9427, bsc#1159035): - Security: - bpo-38945: Newline characters have been escaped when performing uu encoding to prevent them from overflowing into to content section of the encoded file. This prevents malicious or accidental modification of data during the decoding process. - bpo-37228: Due to significant security concerns, the reuse_address parameter of asyncio.loop.create_datagram_endpoint() is no longer supported. This is because of the behavior of SO_REUSEADDR in UDP. For more details, see the documentation for loop.create_datagram_endpoint(). (Contributed by Kyle Stanley, Antoine Pitrou, and Yury Selivanov in bpo-37228.) - bpo-38804: Fixes a ReDoS vulnerability in http.cookiejar. Patch by Ben Caller. - bpo-38243: Escape the server title of xmlrpc.server.DocXMLRPCServer when rendering the document page as HTML. (Contributed by Dong-hee Na in bpo-38243.) - bpo-38174: Update vendorized expat library version to 2.2.8, which resolves CVE-2019-15903. - bpo-37461: Fix an infinite loop when parsing specially crafted email headers. Patch by Abhilash Raj. - bpo-34155: Fix parsing of invalid email addresses with more than one @ (e.g. a@b@c.com.) to not return the part before 2nd @ as valid email address. Patch by maxking & jpic. - Library: - bpo-38216: Allow the rare code that wants to send invalid http requests from the http.client library a way to do so. The fixes for bpo-30458 led to breakage for some projects that were relying on this ability to test their own behavior in the face of bad requests. - bpo-36564: Fix infinite loop in email header folding logic that would be triggered when an email policy’s max_line_length is not long enough to include the required markup and any values in the message. Patch by Paul Ganssle - Remove patches included in the upstream tarball: - CVE-2019-16935-xmlrpc-doc-server_title.patch (and also bpo37614-race_test_docxmlrpc_srv_setup.patch, which was resolving bsc#1174701). - CVE-2019-16056-email-parse-addr.patch - Move idle subpackage build from python3-base to python3 (bsc#1159622). appstream-glib required for packaging introduces considerable extra dependencies and a build loop via rust/librsvg. - Correct installation of idle IDE icons: + idle.png is not the target directory + non-GNOME-specific icons belong into icons/hicolor - Add required Name key to idle3 desktop file- Unify all Python 3.6* SLE packages into one (jsc#SLE-9426, jsc#SLE-9427, bsc#1159035) - Patches which were already included upstream: - CVE-2018-1061-DOS-via-regexp-difflib.patch - CVE-2018-14647_XML_SetHashSalt-in_elementtree.patch- Add CVE-2019-16935-xmlrpc-doc-server_title.patch fixing bsc#1153238 (aka CVE-2019-16935) fixing a reflected XSS in python/Lib/DocXMLRPCServer.py- Add bpo-36576-skip_tests_for_OpenSSL-111.patch (originally from bpo#36576) skipping tests failing with OpenSSL 1.1.1. Fixes bsc#1149792 - Add bpo36263-Fix_hashlib_scrypt.patch which works around bsc#1151490- Add CVE-2019-16056-email-parse-addr.patch fixing the email module wrongly parses email addresses [bsc#1149955, bnc#1149955, CVE-2019-16056]- jsc#PM-1350 bsc#1149121 Update python3 to the last version of the 3.6 line. This is just a bugfix release with no changes in functionality. - The following patches were included in the upstream release as so they can be removed in the package: - CVE-2018-20852-cookie-domain-check.patch - CVE-2019-5010-null-defer-x509-cert-DOS.patch - CVE-2019-10160-netloc-port-regression.patch - CVE-2019-9636-urlsplit-NFKC-norm.patch - CVE-2019-9947-no-ctrl-char-http.patch - Patch bpo23395-PyErr_SetInterrupt-signal.patch has been reapplied on the upstream base without changing any functionality. - Add patch aarch64-prolong-timeout.patch to fix failing test_utime_current_old test.- FAKE RECORD FROM SLE-12 CHANNEL Apply "CVE-2018-1000802-shutil_use_subprocess_no_spawn.patch" which converts shutil._call_external_zip to use subprocess rather than distutils.spawn. [bsc#1109663, CVE-2018-1000802]- FAKE RECORD FROM SLE-12 CHANNEL bsc#1109847: add CVE-2018-14647_XML_SetHashSalt-in_elementtree.patch fixing bpo#34623.- boo#1141853 (CVE-2018-20852) add CVE-2018-20852-cookie-domain-check.patch fixing http.cookiejar.DefaultPolicy.domain_return_ok which did not correctly validate the domain: it could be tricked into sending cookies to the wrong server.- bsc#1138459: add CVE-2019-10160-netloc-port-regression.patch which fixes regression introduced by the previous patch. (CVE-2019-10160) Upstream gh#python/cpython#13812- FAKE RECORD FROM SLE-12 CHANNEL bsc#1137942: Avoid duplicate files with python3* packages (https://fate.suse.com/327309)- bsc#1094814: Add bpo23395-PyErr_SetInterrupt-signal.patch to handle situation when the SIGINT signal is ignored or not handled- Update to 3.6.8: - bugfixes only - removed patches (subsumed in the upstream tarball): - CVE-2018-20406-pickle_LONG_BINPUT.patch - refreshed patches: - CVE-2019-5010-null-defer-x509-cert-DOS.patch - CVE-2019-9636-urlsplit-NFKC-norm.patch - Python-3.0b1-record-rpm.patch - python-3.3.0b1-fix_date_time_compiler.patch - python-3.3.0b1-test-posix_fadvise.patch - python-3.3.3-skip-distutils-test_sysconfig_module.patch - python-3.6.0-multilib-new.patch - python3-sorted_tar.patch - subprocess-raise-timeout.patch - switch off LTO and PGO optimization (bsc#1133452) - bsc#1130840 (CVE-2019-9947): add CVE-2019-9947-no-ctrl-char-http.patch Address the issue by disallowing URL paths with embedded whitespace or control characters through into the underlying http client request. Such potentially malicious header injection URLs now cause a ValueError to be raised.- bsc#1129346: add CVE-2019-9636-urlsplit-NFKC-norm.patch Characters in the netloc attribute that decompose under NFKC normalization (as used by the IDNA encoding) into any of ``/``, ``?``, ``#``, ``@``, or ``:`` will raise a ValueError. If the URL is decomposed before parsing, or is not a Unicode string, no error will be raised. (CVE-2019-9636) Upstream gh#python/cpython#12224- bsc#1120644 add CVE-2018-20406-pickle_LONG_BINPUT.patch fixing bpo#34656 Modules/_pickle.c in Python before 3.7.1 has an integer overflow via a large LONG_BINPUT value that is mishandled during a "resize to twice the size" attempt. This issue might cause memory exhaustion, but is only relevant if the pickle format is used for serializing tens or hundreds of gigabytes of data.- bsc#1122191: add CVE-2019-5010-null-defer-x509-cert-DOS.patch fixing bpo-35746. An exploitable denial-of-service vulnerability exists in the X509 certificate parser of Python.org Python 2.7.11 / 3.7.2. A specially crafted X509 certificate can cause a NULL pointer dereference, resulting in a denial of service. An attacker can initiate or accept TLS connections using crafted certificates to trigger this vulnerability.- Add -fwrapv to OPTS, which is default for python3 anyway See for example https://github.com/zopefoundation/persistent/issues/86 for bugs which are caused by avoiding it. (bsc#1107030)- Apply "CVE-2018-1061-DOS-via-regexp-difflib.patch" to prevent low-grade poplib REDOS (CVE-2018-1060) and to prevent difflib REDOS (CVE-2018-1061). Prior to this patch mail server's timestamp was susceptible to catastrophic backtracking on long evil response from the server. Also, it was susceptible to catastrophic backtracking, which was a potential DOS vector. [bsc#1088004 and bsc#1088009, CVE-2018-1061 and CVE-2018-1060]- As we run in main python package do not generate the pre_checkin from both now- Move the tests from base to generic package wrt bsc#1088573 * We still fail the whole distro if python3 is not build * The other archs than x86_64 took couple of hours to unblock build of other software, this way we work around the issue - Some tests are still run in -base for the LTO tweaking, but at least it is not run twice- update to 3.6.5 * bugfix release * see Misc/NEWS for details - drop ctypes-pass-by-value.patch - drop fix-localeconv-encoding-for-LC_NUMERIC.patch - refresh python-3.6.0-multilib-new.patch- Apply "python-3.6-CVE-2017-18207.patch" to add a check to Lib/wave.py that verifies that at least one channel is provided. Prior to this check, attackers could cause a denial of service (divide-by-zero error and application crash) via a crafted wav format audio file. [bsc#1083507, CVE-2017-18207]- Created %so_major and %so_minor macros - Put Tools/gdb/libpython.py script into proper place and ship it with devel subpackage.- ctypes-pass-by-value.patch: Fix pass by value for structs on aarch64- Add python3-sorted_tar.patch (boo#1081750, bsc#1086001)- Add patch to fix glibc 2.27 fail bsc#1079761: * fix-localeconv-encoding-for-LC_NUMERIC.patch- move XML modules and python3-xml provide to python3-base (fixes bsc#1077230) - move ensurepip to base- Add skip_random_failing_tests.patch only for PowerPC- update to 3.6.4 * bugfix release, over a hundred bugs fixed * see Misc/NEWS for details - drop upstreamed python3-ncurses-6.0-accessors.patch - drop PYTHONSTARTUP hooks that cause spurious startup errors * fixes bsc#1070738 * the relevant feature (REPL history) is now built into Python itself- Install 2to3-%{python_version} executable (override defattr of the -tools package). 2to3 (unversioned) is a symlink and does not carry permissions (bsc#1070853).- move 2to3 to python3-tools package- update to 3.6.3 * bugfix release, over a hundred bugs fixed * see Misc/NEWS for details - drop upstreamed 0001-3.6-bpo-30714-ALPN-changes-for-OpenSSL-1.1.0f-3093.patch- drop python-2.7-libffi-aarch64.patch: this patches the intree copy of libffi which is unused/deleted in the line afterwards - fix build against system libffi: include flags weren't set so it actually used the in-tree libffi headers.- Fix test broken with OpenSSL 1.1 (bsc#1042670) * add 0001-3.6-bpo-30714-ALPN-changes-for-OpenSSL-1.1.0f-3093.patch- fix missing %{?armsuffix}- distutils-reproducible-compile.patch: ensure distutils order files before compiling, which works around bsc#1049186- Add libnsl-devel build requires for glibc obsoleting libnsl- update to 3.6.2 * bugfix release, over a hundred bugs fixed * see Misc/NEWS for details - drop upstreamed test-socket-aead-kernel49.patch - add Provides: python3-typing (fixes bsc#1050653) - drop duplicate Provides: python3- Add missing link to python library in config dir (bsc#1040164)- update to 3.6.1 * bugfix release, over a hundred bugs fixed * never add import location's parent directory to sys.path * switch to git for version control, build changes related to that * fix "failed to get random numbers" on old kernels (bsc#1029902) * several crashes and memory leaks corrected * f-string are no longer accepted as docstrings- prevent regenerating AST at build-time more robustly - add "--without profileopt" and "--without testsuite" options to python3-base to allow short circuiting when working on the package- FAKE RECORD FROM SLE-12 CHANNEL update to 3.4.6 (bsc#1027282): * fixed potential crash in PyUnicode_AsDecodedObject() in debug build * fixed possible DoS and arbitrary execution in gettext plurals * fix possible use of uninitialized memory in operator.methodcaller * fix possible Py_DECREF on unowned object in _sre * fix possible integer overflow in _csv module * prevent HTTPoxy attack (CVE-2016-1000110) * fix selectors incorrectly retaining invalid fds - drop upstreamed python-3.4-CVE-2016-1000110-fix.patch - move _elementtree to python3.rpm to match its pyexpat dependency (bsc#1029377)- Add 0001-allow-for-reproducible-builds-of-python-packages.patch upstream https://github.com/python/cpython/pull/296- reenable test_socket with AEAD patch (test-socket-aead-kernel49.patch) - reintroduce %py3_soflags macro (and better named %cpython3_soabi equivalent)- update to 3.6.0 * PEP 498 Formated string literals * PEP 515 Underscores in numeric literals * PEP 526 Syntax for variable annotations * PEP 525 Asynchronous generators * PEP 530 Asynchronous comprehensions * PEP 506 New "secrets" module for safe key generation * less memory consumed by dicts * dtrace and systemtap support * improved asyncio module * better defaults for ssl * new hashing algorithms in hashlib * bytecode format changed to allow more optimizations * "async" and "await" are on track to be reserved words * StopIteration from generators is deprecated * support for openssl < 1.0.2 is deprecated * os.urandom now blocks when getrandom() blocks * huge number of new features, bugfixes and optimizations * see https://docs.python.org/3.6/whatsnew/3.6.html for details - rework multilib patch: drop Python-3.5.0-multilib.patch, implement upstreamable python-3.6.0-multilib-new.patch - refresh python-3.3.0b1-localpath.patch, subprocess-raise-timeout.patch - drop upstreamed Python-3.5.1-fix_lru_cache_copying.patch - finally drop python-2.6b1-canonicalize2.patch that was not applied in source and only kept around in case we needed it in the future. (which we don't, as it seems) - update import_failed map and baselibs - build ctypes against system libffi (buildrequire libffi-devel in python3-base) - add new key to keyring (signed by keys already in keyring) - introduced common configure section between python3 and python3-base - moved pyconfig.h and Makefile to devel subpackage as distutils no longer need it at runtime - added python-rpm-macros dependency, regenerated macros file, drop macros.python3.py because it is not used now - improve summaries and descriptions (fixes bsc#917607) - enabled Link-Time Optimization, see what happens - including skipped_tests.py in pre_checkin.sh run - run specs through spec-cleaner, rearrange sections- FAKE RECORD FROM SLE-12 CHANNEL apply fix for CVE-2016-1000110 - CGIHandler: sets environmental variable based on user supplied Proxy request header: python-3.4-CVE-2016-1000110-fix.patch (fixes bsc#989523, CVE-2016-1000110) - refresh python3-urllib-prefer-lowercase-proxies.patch- FAKE RECORD FROM SLE-12 CHANNEL update to 3.4.5 check: https://docs.python.org/3.4/whatsnew/changelog.html (fixes bsc#984751, CVE-2016-0772) (fixes bsc#985177, CVE-2016-5636) (fixes bsc#985348, CVE-2016-5699) - drop upstreamed werror-declaration-after-statement.patch- FAKE RECORD FROM SLE-12 CHANNEL Due to being fixed upstream (differently), removed outdated patch CVE-2014-4650-CGIHTTPServer-traversal.patch (bsc#983582)- move _hashlib and _ssl modules and tests to python3-base - recommend python3- Add Python-3.5.1-fix_lru_cache_copying.patch Fix copying the lru_cache() wrapper object. Fixes deep-copying lru_cache regression, which worked on previous versions of python but fails on python 3.5. This fixes a bunch of packages in devel:languages:python3. See: https://bugs.python.org/issue25447- update to 3.5.1 * bugfix-only release, dozens of bugs fixed - Drop upstreamed Python-3.5.0-_Py_atomic_xxx-symbols.patch - "Python3" to "Python 3" in summary * This seems cleaner and fixes and rpmlint warning- FAKE RECORD FROM SLE-12 CHANNEL Issue #21121: Don't force 3rd party C extensions to be built with -Werror=declaration-after-statement. (werror-declaration-after-statement.patch, bsc#951166)- Add Python-3.5.0-_Py_atomic_xxx-symbols.patch This fixes a build error for many packages that use the Python, C-API. This patch is already accepted upstream and is slated to appear in python 3.5.1.- update to 3.5.0 * coroutines with async/await syntax * matrix multiplication operator `@` * unpacking generalizations * new modules `typing` and `zipapp` * type annotations * .pyo files replaced by custom suffixes for optimization levels in __pycache__ * support for memory BIO in ssl module * performance improvements in several modules * and many more - removals and behavior changes * deprecated `__version__` is removed * support for .pyo files was removed * system calls are auto-retried on EINTR * bare generator expressions in function calls now cause SyntaxError (change "f(x for x in i)" to "f((x for x in i))" to fix) * removed undocumented `format` member of private `PyMemoryViewObject` struct * renamed `PyMemAllocator` to `PyMemAllocatorEx` - redefine %dynlib macro to reflect that modules now have arch+os as part of name - module `time` is now built-in - dropped upstreamed patches: python-3.4.1-fix-faulthandler.patch python-3.4.3-test-conditional-ssl.patch python-fix-short-dh.patch (also dropped dh2048.pem required for this patch) - updated patch Python-3.3.0b2-multilib.patch to Python-3.5.0-multilib.patch - python-ncurses-6.0-accessors.patch taken from python 2 to fix build failure with new gcc + ncurses- Add python3-ncurses-6.0-accessors.patch: Fix build with NCurses 6.0 and OPAQUE_WINDOW set to 1.- improve import_failed hook to do the right thing when invoking missing modules with "python3 -m modulename" (boo#942751)- Build with --enable-loadable-sqlite-extensions to make it works as geospatial database.- dh2048.pem: added generated 2048 dh parameter set to fix ssl test (bsc#935856) - python-fix-short-dh.patch: replace the 512 bits dh parameter set by 2048 bits to fix build with new openssl 1.0.2c (bsc#935856)- ctypes-libffi-aarch64.patch: remove upstreamed patch - python-2.7-libffi-aarch64.patch: Fix argument passing in libffi for aarch64- python-3.4.3-test-conditional-ssl.patch - restore tests failing because test_urllib was unconditionally importing ssl (without really needing it) - restore functionality of multilib patch - drop libffi-ppc64le.diff because upstream completely changed everything yet again (sorry ppc64 folks :| )- Update to version 3.4.3 - Drop upstreamed CVE-2014-4650-CGIHTTPServer-traversal.patch (bpo#21766)- Add python-3.4.1-fix-faulthandler.patch, upstream patch for bogus faulthandler which fails with GCC 5.- asyncio has been merged in python3 main package; provide and obsolete it - Remove obsolete AUTHORS section - Remove redundant %clean section- add %python3_version rpm macro for Fedora compatibility - add missing argument in import_failed, rename Novell Bugzilla to SUSE Bugzillacloud136 1609270220  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      3.6.12-lp151.6.36.13.6.12-lp151.6.36.1      python3.6MiscACKSHISTORYNEWSPortingREADMEREADME.coverityREADME.valgrindSpecialBuilds.txtcoverity_model.cgdbinitindent.propython-config.inpython-config.sh.inpython-wing3.wprpython-wing4.wprpython-wing5.wprpython.manpython.pc.insvnmap.txtvalgrind-python.suppvgrindefshtml_imageshashlib-blake2-tree.pnglogging_flow.pngpathlib-inheritance.pngtulip_coro.pngturtle-star.pngwin_installer.png_sourcesabout.rst.txtbugs.rst.txtc-apiabstract.rst.txtallocation.rst.txtapiabiversion.rst.txtarg.rst.txtbool.rst.txtbuffer.rst.txtbytearray.rst.txtbytes.rst.txtcapsule.rst.txtcell.rst.txtcode.rst.txtcodec.rst.txtcomplex.rst.txtconcrete.rst.txtconversion.rst.txtcoro.rst.txtdatetime.rst.txtdescriptor.rst.txtdict.rst.txtexceptions.rst.txtfile.rst.txtfloat.rst.txtfunction.rst.txtgcsupport.rst.txtgen.rst.txtimport.rst.txtindex.rst.txtinit.rst.txtintro.rst.txtiter.rst.txtiterator.rst.txtlist.rst.txtlong.rst.txtmapping.rst.txtmarshal.rst.txtmemory.rst.txtmemoryview.rst.txtmethod.rst.txtmodule.rst.txtnone.rst.txtnumber.rst.txtobjbuffer.rst.txtobject.rst.txtobjimpl.rst.txtrefcounting.rst.txtreflection.rst.txtsequence.rst.txtset.rst.txtslice.rst.txtstable.rst.txtstructures.rst.txtsys.rst.txttuple.rst.txttype.rst.txttypeobj.rst.txtunicode.rst.txtutilities.rst.txtveryhigh.rst.txtweakref.rst.txtcontents.rst.txtcopyright.rst.txtdistributingindex.rst.txtdistutilsapiref.rst.txtbuiltdist.rst.txtcommandref.rst.txtconfigfile.rst.txtexamples.rst.txtextending.rst.txtindex.rst.txtintroduction.rst.txtpackageindex.rst.txtsetupscript.rst.txtsourcedist.rst.txtuploading.rst.txtextendingbuilding.rst.txtembedding.rst.txtextending.rst.txtindex.rst.txtnewtypes.rst.txtnewtypes_tutorial.rst.txtwindows.rst.txtfaqdesign.rst.txtextending.rst.txtgeneral.rst.txtgui.rst.txtindex.rst.txtinstalled.rst.txtlibrary.rst.txtprogramming.rst.txtwindows.rst.txtglossary.rst.txthowtoargparse.rst.txtclinic.rst.txtcporting.rst.txtcurses.rst.txtdescriptor.rst.txtfunctional.rst.txtindex.rst.txtinstrumentation.rst.txtipaddress.rst.txtlogging-cookbook.rst.txtlogging.rst.txtpyporting.rst.txtregex.rst.txtsockets.rst.txtsorting.rst.txtunicode.rst.txturllib2.rst.txtinstallindex.rst.txtinstallingindex.rst.txtlibrary2to3.rst.txt__future__.rst.txt__main__.rst.txt_dummy_thread.rst.txt_thread.rst.txtabc.rst.txtaifc.rst.txtallos.rst.txtarchiving.rst.txtargparse.rst.txtarray.rst.txtast.rst.txtasynchat.rst.txtasyncio-dev.rst.txtasyncio-eventloop.rst.txtasyncio-eventloops.rst.txtasyncio-protocol.rst.txtasyncio-queue.rst.txtasyncio-stream.rst.txtasyncio-subprocess.rst.txtasyncio-sync.rst.txtasyncio-task.rst.txtasyncio.rst.txtasyncore.rst.txtatexit.rst.txtaudioop.rst.txtbase64.rst.txtbdb.rst.txtbinary.rst.txtbinascii.rst.txtbinhex.rst.txtbisect.rst.txtbuiltins.rst.txtbz2.rst.txtcalendar.rst.txtcgi.rst.txtcgitb.rst.txtchunk.rst.txtcmath.rst.txtcmd.rst.txtcode.rst.txtcodecs.rst.txtcodeop.rst.txtcollections.abc.rst.txtcollections.rst.txtcolorsys.rst.txtcompileall.rst.txtconcurrency.rst.txtconcurrent.futures.rst.txtconcurrent.rst.txtconfigparser.rst.txtconstants.rst.txtcontextlib.rst.txtcopy.rst.txtcopyreg.rst.txtcrypt.rst.txtcrypto.rst.txtcsv.rst.txtctypes.rst.txtcurses.ascii.rst.txtcurses.panel.rst.txtcurses.rst.txtcustominterp.rst.txtdatatypes.rst.txtdatetime.rst.txtdbm.rst.txtdebug.rst.txtdecimal.rst.txtdevelopment.rst.txtdifflib.rst.txtdis.rst.txtdistribution.rst.txtdistutils.rst.txtdoctest.rst.txtdummy_threading.rst.txtemail.charset.rst.txtemail.compat32-message.rst.txtemail.contentmanager.rst.txtemail.encoders.rst.txtemail.errors.rst.txtemail.examples.rst.txtemail.generator.rst.txtemail.header.rst.txtemail.headerregistry.rst.txtemail.iterators.rst.txtemail.message.rst.txtemail.mime.rst.txtemail.parser.rst.txtemail.policy.rst.txtemail.rst.txtemail.utils.rst.txtensurepip.rst.txtenum.rst.txterrno.rst.txtexceptions.rst.txtfaulthandler.rst.txtfcntl.rst.txtfilecmp.rst.txtfileformats.rst.txtfileinput.rst.txtfilesys.rst.txtfnmatch.rst.txtformatter.rst.txtfpectl.rst.txtfractions.rst.txtframeworks.rst.txtftplib.rst.txtfunctional.rst.txtfunctions.rst.txtfunctools.rst.txtgc.rst.txtgetopt.rst.txtgetpass.rst.txtgettext.rst.txtglob.rst.txtgrp.rst.txtgzip.rst.txthashlib.rst.txtheapq.rst.txthmac.rst.txthtml.entities.rst.txthtml.parser.rst.txthtml.rst.txthttp.client.rst.txthttp.cookiejar.rst.txthttp.cookies.rst.txthttp.rst.txthttp.server.rst.txti18n.rst.txtidle.rst.txtimaplib.rst.txtimghdr.rst.txtimp.rst.txtimportlib.rst.txtindex.rst.txtinspect.rst.txtinternet.rst.txtintro.rst.txtio.rst.txtipaddress.rst.txtipc.rst.txtitertools.rst.txtjson.rst.txtkeyword.rst.txtlanguage.rst.txtlinecache.rst.txtlocale.rst.txtlogging.config.rst.txtlogging.handlers.rst.txtlogging.rst.txtlzma.rst.txtmacpath.rst.txtmailbox.rst.txtmailcap.rst.txtmarkup.rst.txtmarshal.rst.txtmath.rst.txtmimetypes.rst.txtmisc.rst.txtmm.rst.txtmmap.rst.txtmodulefinder.rst.txtmodules.rst.txtmsilib.rst.txtmsvcrt.rst.txtmultiprocessing.rst.txtnetdata.rst.txtnetrc.rst.txtnis.rst.txtnntplib.rst.txtnumbers.rst.txtnumeric.rst.txtoperator.rst.txtoptparse.rst.txtos.path.rst.txtos.rst.txtossaudiodev.rst.txtothergui.rst.txtparser.rst.txtpathlib.rst.txtpdb.rst.txtpersistence.rst.txtpickle.rst.txtpickletools.rst.txtpipes.rst.txtpkgutil.rst.txtplatform.rst.txtplistlib.rst.txtpoplib.rst.txtposix.rst.txtpprint.rst.txtprofile.rst.txtpty.rst.txtpwd.rst.txtpy_compile.rst.txtpyclbr.rst.txtpydoc.rst.txtpyexpat.rst.txtpython.rst.txtqueue.rst.txtquopri.rst.txtrandom.rst.txtre.rst.txtreadline.rst.txtreprlib.rst.txtresource.rst.txtrlcompleter.rst.txtrunpy.rst.txtsched.rst.txtsecrets.rst.txtselect.rst.txtselectors.rst.txtshelve.rst.txtshlex.rst.txtshutil.rst.txtsignal.rst.txtsite.rst.txtsmtpd.rst.txtsmtplib.rst.txtsndhdr.rst.txtsocket.rst.txtsocketserver.rst.txtspwd.rst.txtsqlite3.rst.txtssl.rst.txtstat.rst.txtstatistics.rst.txtstdtypes.rst.txtstring.rst.txtstringprep.rst.txtstruct.rst.txtsubprocess.rst.txtsunau.rst.txtsuperseded.rst.txtsymbol.rst.txtsymtable.rst.txtsys.rst.txtsysconfig.rst.txtsyslog.rst.txttabnanny.rst.txttarfile.rst.txttelnetlib.rst.txttempfile.rst.txttermios.rst.txttest.rst.txttext.rst.txttextwrap.rst.txtthreading.rst.txttime.rst.txttimeit.rst.txttk.rst.txttkinter.rst.txttkinter.scrolledtext.rst.txttkinter.tix.rst.txttkinter.ttk.rst.txttoken.rst.txttokenize.rst.txttrace.rst.txttraceback.rst.txttracemalloc.rst.txttty.rst.txtturtle.rst.txttypes.rst.txttyping.rst.txtundoc.rst.txtunicodedata.rst.txtunittest.mock-examples.rst.txtunittest.mock.rst.txtunittest.rst.txtunix.rst.txturllib.error.rst.txturllib.parse.rst.txturllib.request.rst.txturllib.robotparser.rst.txturllib.rst.txtuu.rst.txtuuid.rst.txtvenv.rst.txtwarnings.rst.txtwave.rst.txtweakref.rst.txtwebbrowser.rst.txtwindows.rst.txtwinreg.rst.txtwinsound.rst.txtwsgiref.rst.txtxdrlib.rst.txtxml.dom.minidom.rst.txtxml.dom.pulldom.rst.txtxml.dom.rst.txtxml.etree.elementtree.rst.txtxml.rst.txtxml.sax.handler.rst.txtxml.sax.reader.rst.txtxml.sax.rst.txtxml.sax.utils.rst.txtxmlrpc.client.rst.txtxmlrpc.rst.txtxmlrpc.server.rst.txtzipapp.rst.txtzipfile.rst.txtzipimport.rst.txtzlib.rst.txtlicense.rst.txtreferencecompound_stmts.rst.txtdatamodel.rst.txtexecutionmodel.rst.txtexpressions.rst.txtgrammar.rst.txtimport.rst.txtindex.rst.txtintroduction.rst.txtlexical_analysis.rst.txtsimple_stmts.rst.txttoplevel_components.rst.txttutorialappendix.rst.txtappetite.rst.txtclasses.rst.txtcontrolflow.rst.txtdatastructures.rst.txterrors.rst.txtfloatingpoint.rst.txtindex.rst.txtinputoutput.rst.txtinteractive.rst.txtinterpreter.rst.txtintroduction.rst.txtmodules.rst.txtstdlib.rst.txtstdlib2.rst.txtvenv.rst.txtwhatnow.rst.txtusingcmdline.rst.txtindex.rst.txtmac.rst.txtunix.rst.txtwindows.rst.txtwhatsnew2.0.rst.txt2.1.rst.txt2.2.rst.txt2.3.rst.txt2.4.rst.txt2.5.rst.txt2.6.rst.txt2.7.rst.txt3.0.rst.txt3.1.rst.txt3.2.rst.txt3.3.rst.txt3.4.rst.txt3.5.rst.txt3.6.rst.txtchangelog.rst.txtindex.rst.txt_staticajax-loader.gifbasic.cssclassic.csscomment-bright.pngcomment-close.pngcomment.pngcopybutton.jsdefault.cssdoctools.jsdocumentation_options.jsdown-pressed.pngdown.pngfile.pngjquery-3.2.1.jsjquery.jsminus.pngopensearch.xmlplus.pngpy.pngpydoctheme.csspygments.csssearchtools.jssidebar.jsswitchers.jsunderscore-1.3.1.jsunderscore.jsup-pressed.pngup.pngwebsupport.jsabout.htmlbugs.htmlc-apiabstract.htmlallocation.htmlapiabiversion.htmlarg.htmlbool.htmlbuffer.htmlbytearray.htmlbytes.htmlcapsule.htmlcell.htmlcode.htmlcodec.htmlcomplex.htmlconcrete.htmlconversion.htmlcoro.htmldatetime.htmldescriptor.htmldict.htmlexceptions.htmlfile.htmlfloat.htmlfunction.htmlgcsupport.htmlgen.htmlimport.htmlindex.htmlinit.htmlintro.htmliter.htmliterator.htmllist.htmllong.htmlmapping.htmlmarshal.htmlmemory.htmlmemoryview.htmlmethod.htmlmodule.htmlnone.htmlnumber.htmlobjbuffer.htmlobject.htmlobjimpl.htmlrefcounting.htmlreflection.htmlsequence.htmlset.htmlslice.htmlstable.htmlstructures.htmlsys.htmltuple.htmltype.htmltypeobj.htmlunicode.htmlutilities.htmlveryhigh.htmlweakref.htmlcontents.htmlcopyright.htmldistributingindex.htmldistutilsapiref.htmlbuiltdist.htmlcommandref.htmlconfigfile.htmlexamples.htmlextending.htmlindex.htmlintroduction.htmlpackageindex.htmlsetupscript.htmlsourcedist.htmluploading.htmldownload.htmlextendingbuilding.htmlembedding.htmlextending.htmlindex.htmlnewtypes.htmlnewtypes_tutorial.htmlwindows.htmlfaqdesign.htmlextending.htmlgeneral.htmlgui.htmlindex.htmlinstalled.htmllibrary.htmlprogramming.htmlwindows.htmlgenindex-A.htmlgenindex-B.htmlgenindex-C.htmlgenindex-D.htmlgenindex-E.htmlgenindex-F.htmlgenindex-G.htmlgenindex-H.htmlgenindex-I.htmlgenindex-J.htmlgenindex-K.htmlgenindex-L.htmlgenindex-M.htmlgenindex-N.htmlgenindex-O.htmlgenindex-P.htmlgenindex-Q.htmlgenindex-R.htmlgenindex-S.htmlgenindex-Symbols.htmlgenindex-T.htmlgenindex-U.htmlgenindex-V.htmlgenindex-W.htmlgenindex-X.htmlgenindex-Y.htmlgenindex-Z.htmlgenindex-_.htmlgenindex-all.htmlgenindex.htmlglossary.htmlhowtoargparse.htmlclinic.htmlcporting.htmlcurses.htmldescriptor.htmlfunctional.htmlindex.htmlinstrumentation.htmlipaddress.htmllogging-cookbook.htmllogging.htmlpyporting.htmlregex.htmlsockets.htmlsorting.htmlunicode.htmlurllib2.htmlindex.htmlinstallindex.htmlinstallingindex.htmllibrary2to3.html__future__.html__main__.html_dummy_thread.html_thread.htmlabc.htmlaifc.htmlallos.htmlarchiving.htmlargparse.htmlarray.htmlast.htmlasynchat.htmlasyncio-dev.htmlasyncio-eventloop.htmlasyncio-eventloops.htmlasyncio-protocol.htmlasyncio-queue.htmlasyncio-stream.htmlasyncio-subprocess.htmlasyncio-sync.htmlasyncio-task.htmlasyncio.htmlasyncore.htmlatexit.htmlaudioop.htmlbase64.htmlbdb.htmlbinary.htmlbinascii.htmlbinhex.htmlbisect.htmlbuiltins.htmlbz2.htmlcalendar.htmlcgi.htmlcgitb.htmlchunk.htmlcmath.htmlcmd.htmlcode.htmlcodecs.htmlcodeop.htmlcollections.abc.htmlcollections.htmlcolorsys.htmlcompileall.htmlconcurrency.htmlconcurrent.futures.htmlconcurrent.htmlconfigparser.htmlconstants.htmlcontextlib.htmlcopy.htmlcopyreg.htmlcrypt.htmlcrypto.htmlcsv.htmlctypes.htmlcurses.ascii.htmlcurses.htmlcurses.panel.htmlcustominterp.htmldatatypes.htmldatetime.htmldbm.htmldebug.htmldecimal.htmldevelopment.htmldifflib.htmldis.htmldistribution.htmldistutils.htmldoctest.htmldummy_threading.htmlemail.charset.htmlemail.compat32-message.htmlemail.contentmanager.htmlemail.encoders.htmlemail.errors.htmlemail.examples.htmlemail.generator.htmlemail.header.htmlemail.headerregistry.htmlemail.htmlemail.iterators.htmlemail.message.htmlemail.mime.htmlemail.parser.htmlemail.policy.htmlemail.utils.htmlensurepip.htmlenum.htmlerrno.htmlexceptions.htmlfaulthandler.htmlfcntl.htmlfilecmp.htmlfileformats.htmlfileinput.htmlfilesys.htmlfnmatch.htmlformatter.htmlfpectl.htmlfractions.htmlframeworks.htmlftplib.htmlfunctional.htmlfunctions.htmlfunctools.htmlgc.htmlgetopt.htmlgetpass.htmlgettext.htmlglob.htmlgrp.htmlgzip.htmlhashlib.htmlheapq.htmlhmac.htmlhtml.entities.htmlhtml.htmlhtml.parser.htmlhttp.client.htmlhttp.cookiejar.htmlhttp.cookies.htmlhttp.htmlhttp.server.htmli18n.htmlidle.htmlimaplib.htmlimghdr.htmlimp.htmlimportlib.htmlindex.htmlinspect.htmlinternet.htmlintro.htmlio.htmlipaddress.htmlipc.htmlitertools.htmljson.htmlkeyword.htmllanguage.htmllinecache.htmllocale.htmllogging.config.htmllogging.handlers.htmllogging.htmllzma.htmlmacpath.htmlmailbox.htmlmailcap.htmlmarkup.htmlmarshal.htmlmath.htmlmimetypes.htmlmisc.htmlmm.htmlmmap.htmlmodulefinder.htmlmodules.htmlmsilib.htmlmsvcrt.htmlmultiprocessing.htmlnetdata.htmlnetrc.htmlnis.htmlnntplib.htmlnumbers.htmlnumeric.htmloperator.htmloptparse.htmlos.htmlos.path.htmlossaudiodev.htmlothergui.htmlparser.htmlpathlib.htmlpdb.htmlpersistence.htmlpickle.htmlpickletools.htmlpipes.htmlpkgutil.htmlplatform.htmlplistlib.htmlpoplib.htmlposix.htmlpprint.htmlprofile.htmlpty.htmlpwd.htmlpy_compile.htmlpyclbr.htmlpydoc.htmlpyexpat.htmlpython.htmlqueue.htmlquopri.htmlrandom.htmlre.htmlreadline.htmlreprlib.htmlresource.htmlrlcompleter.htmlrunpy.htmlsched.htmlsecrets.htmlselect.htmlselectors.htmlshelve.htmlshlex.htmlshutil.htmlsignal.htmlsite.htmlsmtpd.htmlsmtplib.htmlsndhdr.htmlsocket.htmlsocketserver.htmlspwd.htmlsqlite3.htmlssl.htmlstat.htmlstatistics.htmlstdtypes.htmlstring.htmlstringprep.htmlstruct.htmlsubprocess.htmlsunau.htmlsuperseded.htmlsymbol.htmlsymtable.htmlsys.htmlsysconfig.htmlsyslog.htmltabnanny.htmltarfile.htmltelnetlib.htmltempfile.htmltermios.htmltest.htmltext.htmltextwrap.htmlthreading.htmltime.htmltimeit.htmltk.htmltkinter.htmltkinter.scrolledtext.htmltkinter.tix.htmltkinter.ttk.htmltoken.htmltokenize.htmltrace.htmltraceback.htmltracemalloc.htmltty.htmlturtle.htmltypes.htmltyping.htmlundoc.htmlunicodedata.htmlunittest.htmlunittest.mock-examples.htmlunittest.mock.htmlunix.htmlurllib.error.htmlurllib.htmlurllib.parse.htmlurllib.request.htmlurllib.robotparser.htmluu.htmluuid.htmlvenv.htmlwarnings.htmlwave.htmlweakref.htmlwebbrowser.htmlwindows.htmlwinreg.htmlwinsound.htmlwsgiref.htmlxdrlib.htmlxml.dom.htmlxml.dom.minidom.htmlxml.dom.pulldom.htmlxml.etree.elementtree.htmlxml.htmlxml.sax.handler.htmlxml.sax.htmlxml.sax.reader.htmlxml.sax.utils.htmlxmlrpc.client.htmlxmlrpc.htmlxmlrpc.server.htmlzipapp.htmlzipfile.htmlzipimport.htmlzlib.htmllicense.htmlobjects.invpy-modindex.htmlreferencecompound_stmts.htmldatamodel.htmlexecutionmodel.htmlexpressions.htmlgrammar.htmlimport.htmlindex.htmlintroduction.htmllexical_analysis.htmlsimple_stmts.htmltoplevel_components.htmlsearch.htmlsearchindex.jstutorialappendix.htmlappetite.htmlclasses.htmlcontrolflow.htmldatastructures.htmlerrors.htmlfloatingpoint.htmlindex.htmlinputoutput.htmlinteractive.htmlinterpreter.htmlintroduction.htmlmodules.htmlstdlib.htmlstdlib2.htmlvenv.htmlwhatnow.htmlusingcmdline.htmlindex.htmlmac.htmlunix.htmlwindows.htmlwhatsnew2.0.html2.1.html2.2.html2.3.html2.4.html2.5.html2.6.html2.7.html3.0.html3.1.html3.2.html3.3.html3.4.html3.5.html3.6.htmlchangelog.htmlindex.html/usr/share/doc/packages//usr/share/doc/packages/python3.6//usr/share/doc/packages/python3.6/Misc//usr/share/doc/packages/python3.6/html//usr/share/doc/packages/python3.6/html/_images//usr/share/doc/packages/python3.6/html/_sources//usr/share/doc/packages/python3.6/html/_sources/c-api//usr/share/doc/packages/python3.6/html/_sources/distributing//usr/share/doc/packages/python3.6/html/_sources/distutils//usr/share/doc/packages/python3.6/html/_sources/extending//usr/share/doc/packages/python3.6/html/_sources/faq//usr/share/doc/packages/python3.6/html/_sources/howto//usr/share/doc/packages/python3.6/html/_sources/install//usr/share/doc/packages/python3.6/html/_sources/installing//usr/share/doc/packages/python3.6/html/_sources/library//usr/share/doc/packages/python3.6/html/_sources/reference//usr/share/doc/packages/python3.6/html/_sources/tutorial//usr/share/doc/packages/python3.6/html/_sources/using//usr/share/doc/packages/python3.6/html/_sources/whatsnew//usr/share/doc/packages/python3.6/html/_static//usr/share/doc/packages/python3.6/html/c-api//usr/share/doc/packages/python3.6/html/distributing//usr/share/doc/packages/python3.6/html/distutils//usr/share/doc/packages/python3.6/html/extending//usr/share/doc/packages/python3.6/html/faq//usr/share/doc/packages/python3.6/html/howto//usr/share/doc/packages/python3.6/html/install//usr/share/doc/packages/python3.6/html/installing//usr/share/doc/packages/python3.6/html/library//usr/share/doc/packages/python3.6/html/reference//usr/share/doc/packages/python3.6/html/tutorial//usr/share/doc/packages/python3.6/html/using//usr/share/doc/packages/python3.6/html/whatsnew/-fomit-frame-pointer -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:15440/openSUSE_Leap_15.1_Update/f2062f5aeadc2f86544b9fd5601ae64c-python3.openSUSE_Leap_15.1_Update:docdrpmxz5i586-suse-linux directoryUTF-8 Unicode textAlgol 68 source, UTF-8 Unicode textASCII textRuby script, ASCII textPython script, ASCII text executablePOSIX shell script, ASCII text executabletroff or preprocessor input, ASCII textPNG image data, 500 x 320, 8-bit colormap, non-interlacedPNG image data, 955 x 758, 8-bit/color RGB, non-interlacedPNG image data, 538 x 495, 8-bit/color RGBA, non-interlacedPNG image data, 1062 x 513, 8-bit/color RGB, non-interlacedPNG image data, 250 x 250, 8-bit/color RGB, non-interlacedPNG image data, 670 x 414, 8-bit/color RGBA, non-interlacedLaTeX document, ASCII textPython script, UTF-8 Unicode text executableC source, UTF-8 Unicode textAlgol 68 source, ASCII textHTML document, ASCII textUTF-8 Unicode text, with very long linesPython script text executable Python script, ASCII text executableASCII text, with very long linesGIF image data, version 89a, 16 x 16PNG image data, 16 x 16, 8-bit/color RGBA, non-interlacedPNG image data, 16 x 16, 8-bit gray+alpha, non-interlacedPNG image data, 11 x 11, 8-bit grayscale, non-interlacedXML 1.0 document, ASCII textHTML document, UTF-8 Unicode textHTML document, UTF-8 Unicode text, with very long linesHTML document, ASCII text, with very long linesASCII text, with very long lines, with no line terminators끫pQ\|python33.6utf-8f3a3670e734b4ea8e7c9409184d59708f284fbaef643309b1338c67de34be740? 7zXZ !t/,]"k%Ia ZmۢL, e__khk D,f$GFS\Fbc(O=ɞy. twώi e[E(xfLV~S<(Y;tЍ)}Kk0|T3aS6c4_([GyHXS` LO?~,%UM3 PMƱ۲c%-W݃a~V6pkF^~4uP/ -xzGL:өoIf9ū_"b9ƲsOk{}Ǿ/zC&_L*B—PG_H|yW$eAI m>%6bbnlcb05|؆|#7rV)ice^E10OU @sHzXmZG*sk5+ s7YIrAgemn#쏛vNt8l'i&7և#9 +R68ɕoxz9oL<zhl0,|db5gv1kv OP1mty#ټmPu| (:[-8^4#(άJXFZA[]JMCf|~J7K X3'&x:>ۅN? b2  2#<88q*̎eT4/q#ˤ |k龐:Cϻ{_yW2a:'@9*/,9^{,? ILjΞ9D/d[ʥ&B:Ju03p5˭[T RUX+UQ Zb bdG`egD}:oN9 ')*A! w}O"͑-s.}$Ԫ;WAn|%enPWD!-܄A7Ҿ( --om*Ҭh1!P^rR$wȉ8%?1P4rULlY~4鵴Eq P&b ѳ; N;x+k|ŕj!~LKhu zh M ]Q a bی)q.U"x!g?eJ!2?ݽx{lg#TbQ{:{ϞɎ+p_&oϟ:gi@JMMZxsT|#`q f'ţE{yɔe]q*1Q\K=/#l' .+Culhن~`?!GD*RJR,rX,$y$~$Q> 7 ٞNl1EC@EO:WVqܮl7/)1kp]:0 у#ax}9bv\`E=Q <ΥlmqGyuK2{3e|+/0^ ]=-ÛApB[]*9c υ  E2rR0ATT>䪓jx"]4) -0׸:83j1 Maۆϙ[,7/L{b -kx3 @ʷY3"Էbv!oF˺^nRH҂<< T LkU;b\%w?~.Z {cmtyM;>+_S%?+N$w1zMu|2_;j=i-~J؆W>瞮)r2[SȏV%WIr_|VAX%zfbHDžhH{ҳnj/DZ4!Y\ʬ!2N8Ka2ѺЖѽ3'eu_$uBag{)r/0D1UAX0爱H,Dz K% 3vEpps9k$(&ڰ-Z2R%!L1SYo?5, Xyo)OFIW*E#ph]z/=. ZQlU?Çk}bUVQTg"+Z!amWJK㕟1 e5@L`_ꢶ,ʙ[MipxLBra.+p5Kl㚕f4rgL{3U0zYʂndS6! :{)[w\Af7כxW˘y|3:[=96ѫ/@0@rŭ~hOsGWKd9/Ȩ Bڞ%ԸY 1evveyO6e!tS(jZ[&Z6*q\;޴@? ܽ',Z<][㻉a(<-i-R&D6s)~l X(!?2vn}+hG: lV-IFxnp/Had~Q ,m* ;f!ΘAr@NImQ@X: a}[,Yѧ@4þ©qvj&]_']^A'3T1n8iS:pb50 9=+SlzlYLRIE66,:1Ș<B.{t:WPt!$M\d+f5z) ໮aZ cц;T[Х9@+|7T!DT/҉e{L,TЪOlꃆ*1jSn#mx9f?[ԔW\dtĂ :. I@ek0Xױ1#X<5i'pnvIY1,5A~~V,'FV56'#B0]8jдO7>hR0/(r{-;pcŴ (u]yi=?g8 ycMïs`4os'ul x)ffPiruW=Q)yIGH٥T<*6 rmU> :{vZma?yAPN?QW 6<5(,SiE\<9_am"kqi~NKO'v @lc@Mݶ=#\˲f`IprB|ABJ-u;Ԧzįt\n(I{zySIKx%vs]eŚ9IRH35G?rҟ_"@8~F` * aO2zC( &}1---=jZyE)z? !D6^M'v."R_wta*+H >~/Ryz`9ý2ɏRl el'>b\mɇoOx:-ub},8~.W2 $O *ǥWy7횮_DXdHe*wEowGVԫXki fD{cQ:)˴|}TEฬA3$s ,n4@WI{VpG>\K2njZd1G,2ֺ){Kո >l  N/ԥaxuGɗ˻*  QD9g9y#< dF ^ȁ"}ZloGن0^m:tyV%qȲE&B4䌏Q5Se…O!+VbVv i}jD&<+BS;{ WcD|o-8OCt2 w2yw([\XFK/*\IBN[ Ha,͏y*zfy/ׇ~Z`tn-ĢVNL.Fl 䩝j!06 ~wX W@bgAMQMro .C8Ǿy.#r ĮWΈR'8Ʒsj |HVCTusvnoi@e5U]! dEܢL [VxP81}ɫ6SG-:~7rA"WT):"5g n_kgeШٜCh/6Bg}(9!_F(Ht-w 3g-vq e<!-"4widD"l;UTr0{% !]8j uk E5(9>W㊅x~O2ka."@lDX01^\m}Ihv R!N1eH5t;#ce:mF8`t{+S3M<ԜQo?V0Z+l;0|&J21QM}>^Fqi,i91 !Wc=i%ʔ ߢD2nl;@bj'`EjA 3[Gp'rx:R%ak#^Rwz82Y; YZ