pagure-5.13.3-2.el7> 6 6`d63!}|J^>j/5,daЭ j/5,d:YXv!3 m"iC"0<;J Ž=$d⃖L_l $3A 8k3=Fz)CE%VMgda:w>@ ńQQˆ6V5MMqZ 2k a:ЧetJtytj F#`!mXْdߐD;.!|$<-v);>eկW2فawPt4|(a\/WR-B ɼKo1oM8|nƙS{& 5 0VuspY ]( w:]OY>4,J.~> u1=0#~L5glt]ˬ(e{)FFz\oE}=fp/ݼhn8';@N/-7#G 2E=m=Tg&,pC=T;prT=˯$~g97f3b63c1d9cd50659bf5a99520c0e7987e199dbiJ3!}|J^>j/5,daЭ j/5,d9;W>2{ͲԹq!t19ʚ 25vx]اh٭30?tE-A#|Ds43o^7` 9*SjmۨCѦ jkI9b*dUfMHj<0E3v뀺#{<ӇMS19>@=?=d   +  $=CJ  d"" %0" -t" =" 9" =T"M"b"w0wL",,J,(89:>I.?I6@I>GIH"HY"IjX"Xn|Yn\n"]("^Lbd,e1f4l6tP"u"v`3w"x)$"y9=`=dCpagure5.13.32.el7A git-centered forgePagure is a light-weight git-centered forge based on pygit2. Currently, Pagure offers a web-interface for git repositories, a ticket system and possibilities to create new projects, fork existing ones and create/merge pull-requests across or within projects. For steps on how to set up the system after installing this package, please read /usr/share/doc/pagure-5.13.3/README.Fedora.aЬbuildvm-ppc64le-16.iad2.fedoraproject.orgMFedora ProjectFedora ProjectGPLv2+Fedora ProjectUnspecifiedhttps://pagure.io/pagurelinuxnoarch if [ $1 -eq 1 ] ; then # Initial installation systemctl preset pagure_worker.service >/dev/null 2>&1 || : fi if [ $1 -eq 1 ] ; then # Initial installation systemctl preset pagure_authorized_keys_worker.service >/dev/null 2>&1 || : fi if [ $1 -eq 1 ] ; then # Initial installation systemctl preset pagure_gitolite_worker.service >/dev/null 2>&1 || : fi if [ $1 -eq 1 ] ; then # Initial installation systemctl preset pagure_api_key_expire_mail.timer >/dev/null 2>&1 || : fi if [ $1 -eq 1 ] ; then # Initial installation systemctl preset pagure_mirror_project_in.timer >/dev/null 2>&1 || : fi if [ $1 -eq 0 ] ; then # Package removal, not upgrade systemctl --no-reload disable pagure_worker.service > /dev/null 2>&1 || : systemctl stop pagure_worker.service > /dev/null 2>&1 || : fi if [ $1 -eq 0 ] ; then # Package removal, not upgrade systemctl --no-reload disable pagure_authorized_keys_worker.service > /dev/null 2>&1 || : systemctl stop pagure_authorized_keys_worker.service > /dev/null 2>&1 || : fi if [ $1 -eq 0 ] ; then # Package removal, not upgrade systemctl --no-reload disable pagure_gitolite_worker.service > /dev/null 2>&1 || : systemctl stop pagure_gitolite_worker.service > /dev/null 2>&1 || : fi if [ $1 -eq 0 ] ; then # Package removal, not upgrade systemctl --no-reload disable pagure_api_key_expire_mail.timer > /dev/null 2>&1 || : systemctl stop pagure_api_key_expire_mail.timer > /dev/null 2>&1 || : fi if [ $1 -eq 0 ] ; then # Package removal, not upgrade systemctl --no-reload disable pagure_mirror_project_in.timer > /dev/null 2>&1 || : systemctl stop pagure_mirror_project_in.timer > /dev/null 2>&1 || : fi systemctl daemon-reload >/dev/null 2>&1 || : if [ $1 -ge 1 ] ; then # Package upgrade, not uninstall systemctl try-restart pagure_worker.service >/dev/null 2>&1 || : fi systemctl daemon-reload >/dev/null 2>&1 || : if [ $1 -ge 1 ] ; then # Package upgrade, not uninstall systemctl try-restart pagure_authorized_keys_worker.service >/dev/null 2>&1 || : fi systemctl daemon-reload >/dev/null 2>&1 || : if [ $1 -ge 1 ] ; then # Package upgrade, not uninstall systemctl try-restart pagure_gitolite_worker.service >/dev/null 2>&1 || : fi systemctl daemon-reload >/dev/null 2>&1 || : systemctl daemon-reload >/dev/null 2>&1 || :+ 8i(KMMUGGy{ 0 % % % ΡXX%&&B&BӤ002!""s{8gM** mm uHv;;v ~~E==?D.&.& p99 Vqq% !  ]8uqqAjLWW222nn`88y\y\    x ) (oo D " " L''9 911j s s$$Q6G G [:;5Y. x= n=y6&aKaK:U tr trDD*( P+VgJcb,,s\$s\$ %ZZ%2Tn~-hW|ai`^ O; O;v/(/(NNG,XQG,XQVV/,V/,r&&CC/ 1c &:&7w %bX31 +N1^z 9' b6 `0  K-BJF/M c$ nEdyT:e*A08f)<+@Z ID=!A  BMM >++Mpbb$$3''ڥff>nv!!J  |jjg`oo]1`p__0XX?ZZj  EWWbbWIqq 22;ffoUU@  @zz,cc_^VVHAAWW 11 d : :xyym~~(*66YYPgg ` fQNN IHSS[EkkKKtt S 0))jjwfA큤AA큤A큤A큤A큤A큤A큤A큤큤A큤A큤큤A큤A큤A큤큤AA큤A큤A큤A큤A큤A큤A큤A큤큤AA큤A큤A큤A큤AA큤A큤A큤A큤큤A큤A큤A큤A큤AA큤A큤A큤A큤A큤큤A큤A큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AA큤AA큤A큤AA큤A큤AaЬZaaЬaЬaЬaЬaЬaЬaЬaЬaЬaaЬaЬaЬ`aЬaЬ_aЬaЬaЬZaЬaЬ_aЬaЬaaЬaЬ`6+RaЬaЬa aЬaЬ_aЬaЬ`#aЬaЬ_aЬaЬ_aЬaЬaЬ^CaЬaЬ_aЬaЬ_aЬaЬ_aЬaЬaaЬaЬaЬZ_aЬaЬ_aЬaЬ_aЬaЬaaЬaЬ_aЬaЬaЬ_aЬaЬ`aЬaЬaaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬ_aЬaЬ_aЬaЬ_aЬaЬ_aЬaЬ_aЬaЬ_aЬaЬ_aЬaЬ_aЬaЬ_aЬaЬ_aЬaЬ_aЬaЬaЬ_aЬaЬaЬ_'qaЬaЬ`HaЬaЬ_aЬaЬ_aЬaЬ_aЬaЬ_aЬaЬ_aЬaЬ__waЬaЬ_JaЬaЬa9aЬaЬ_oaЬaЬ_aЬaЬaaЬaЬ_aЬaЬ_'q_aЬaЬ_aЬaЬ_aЬaЬ_aЬaЬ_aЬaЬ_aЬaЬ_aЬaЬ_aЬaЬ_'qaЬaЬaЬ_aЬZaЬZZZ_____'q^f__W_'qaЬaЬ^f^f^f^faЬ^f__^f__aЬ__aЬ^f^f^f^f^f^faЬ_!K_!KaЬ^f^f^f^f^f^f^faЬ____aЬ^f^f^f^f^f^f^f^f^f^f^faЬaЬ^f^f^f^f^f^f^faЬ^f^f^f`#aЬ^faЬ___aЬaЬ^f^f^f^f^f^f^f^faЬ____aЬ^f^f^f^f____aЬ^f^f^f^faЬ^f^f^f^faЬ______aЬa_^f_^f_____'q____________Z_____'q__^f___a_aЬ_^f^f_^fa__^fZ____^f__'q___'qaa__'q__a_____a______'q__^f___a_______^f____'q_'q^f__'q_'q_aЬaЬ^faЬ^f^f^faЬ_aЬ_aЬaЬ_aЬaЬ_aЬaЬ`#:aЬaЬaЬaЬaЬ_aЬaЬaaЬaЬ_aЬaЬ_aЬaЬ_aЬaЬ_aЬaЬ`7haЬaЬ_aЬaЬaaЬaЬ_'qaЬaЬaЬ^faЬaЬaЬ_'qaЬaЬaЬaЬaЬaЬaЬaЬaЬaЫ_7.aa:_a:a:am4am4*am4am4am4am4am4*am4am4am4am4am4am4am4am4am4am4am4am4a:am4am4am4am4am4am4am4am4am4am4am4am4am4am4am4am4am4am4am4a:am4am4am4am4am4a:am4+a:^C^fZZ^fZ^fZ^f^f^fZZZa:`#Mam4'_'q`#S^f_'q_'q_'q^f^f^f^f^f^f^fa_'q_ȯa:^f_'q^f_'q_'q_'q^f^C_'q_'q^f_'q^fZ^f^f_'q^f_'qa:^f^C^f^faa:am4+]am4+am4+`hiam4+]5^fCxaCT7R3NR3NR3NR3NR3N]5`hiT'`hiam4+]5^fZZ]5am4+Z`hi^f]5]3am4am4+am4am4am4am4am4+am4+am4am4am4am4am4am4am4am4am4+am4am4am4am4+am4+a:am4am4am4am4am4am4am4am4am4am4am4am4am4am4am4am4am4am4am4a:am4am4am4am4am4a:^f^fZZZ^fa:Za_'qa_a^f___'q^f_ _ _ _ ^f_ ^fa^f_W_a:a:Z^fZ^fZ^f^f^fZZ^f_^f_a_'q^f^C__'q^fa^fZ^f^f_^f_a:a:^C^f^C^f^faaЬWaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬ1fe41c3d04daa7343476531b7beb65878d47241b971ecb3f98c2e0a05ed5ee6fc9ac1df761ee3e8d680474509c59cbf508073e45d6529d27f5be30bab914e83311422c42ea13d9f913238d0eb8e18e99ea59b5d6a001a7cbcbcdb7e50cd63a21afdd4a029d18a277a7ee7458778c51be0ac3bc20f1143d777870e942115e3886e8eb7d0b27575d90a5c910731acc0d5b83a992cf5d04fd1298f44a8bdbb3357d01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546ba613eb550b6c5a7b291bec7f6088abdcde41dd072adc9e282cf84561f8ae05a3666653ff9bfe5f62a02b343dadb189e4eae00d666fd8c88a6377a9991886df6086452fc77459d1d858e42125cf1541f2038d90bf47aa82be8de8242c30fa85b8c0b13df81694d96802d63ad3da9576d43ace7cdfc9a1183be96e7f86bd52d8d1531e9cada37750ed77507f6cb8387737195cc16c53360ef5c090fc3d917d601d531e9cada37750ed77507f6cb8387737195cc16c53360ef5c090fc3d917d601de22ab92bc0e3fa341802a5e82ffa3fcb022832c98ce7ce55658103e4217759aa111d1d0dcc0b21abb8c3160f8f1572766145018f498c4d16b2bc5a35a4dc7582111d1d0dcc0b21abb8c3160f8f1572766145018f498c4d16b2bc5a35a4dc7582db7508ba13f498accc8a4dd8a05803fb28cc4f1039f4a09400be02f79bafaf2b192104a9062fc87a023a17481f5908b0829f6a3d9eef35f51d04e8c30fe31c96192104a9062fc87a023a17481f5908b0829f6a3d9eef35f51d04e8c30fe31c96419286d416b6e01cc95124abc7bd5ffa099790affe1dc789f3538227c7f4d1e5835c6ed75fd6dae3d6b9b2360d4396b57efd007ce5796eb7130ddc340eaeaf5c835c6ed75fd6dae3d6b9b2360d4396b57efd007ce5796eb7130ddc340eaeaf5ca7808af0610497ec69978ed9970cd40f9bd2d1bc5d66fff8f9eefad102e3a81c0982a4c107df00864506e0bd59f1b52a3dd313d77574f6e8b976aa65964200c00982a4c107df00864506e0bd59f1b52a3dd313d77574f6e8b976aa65964200c07187b6363cbae151ff213eb65a8af07deaf0cf6cc7c2f8a6fd181fdebd061b1404599ccc330540e0334bf9e8840e0eebdbf56e29fa9b5292107f153aaca214d404599ccc330540e0334bf9e8840e0eebdbf56e29fa9b5292107f153aaca214d42bb31eb2812f01c2f2ccc598c3c28dc958df31db0e5f958bc5fb0b38a1639eaaf7f0f13c3ec01ba6277408e65efc398b38973710b4651a70399f7c7df98c3ab4f7f0f13c3ec01ba6277408e65efc398b38973710b4651a70399f7c7df98c3ab451db95c9328486f1600a5598b92a3961d03390ec21a40f483934bc997753672559d3d8a54040c20609f9b9aa152ecb48b94003b4eb5355689389fe0bb9d0feb559d3d8a54040c20609f9b9aa152ecb48b94003b4eb5355689389fe0bb9d0feb5bc7f91edca3a2a7f5e2c52a7829b1001a7f59851304bf0d32d31543216da836ba6816c56be1f626521435fde3208d47bf0f22dbf22dafc71d472ec36606b421ea6816c56be1f626521435fde3208d47bf0f22dbf22dafc71d472ec36606b421ed71266c1b05fb3e436ff2b9fb30854a8fd20de71dcd0bb6b0348b466880ede5ef932946dc309f0c7a90e9a269f6fb5ceecdd70ea84d4ba2ea4d58305b5a2c721f932946dc309f0c7a90e9a269f6fb5ceecdd70ea84d4ba2ea4d58305b5a2c7218d6b09becc38283012ae7a47409bc44552b7da28d48261fa0fca5129f7ab45e396695e0d31c3e0d557f89e212e062828216cc43fad8d6330bb3496133c8d75e196695e0d31c3e0d557f89e212e062828216cc43fad8d6330bb3496133c8d75e178fc7c0aeb76d13bddbeda8b2e9e4543b5a280cf156dc9a749fa6fc54f95d279ae8e4b617e51f311d5fc1ec02bdb2280485ed673786467557e34e7b0bc0d66b0ae8e4b617e51f311d5fc1ec02bdb2280485ed673786467557e34e7b0bc0d66b016fe13eb38877dbb73360922dd93011b9e9b38bea14954fde7fc1b9c57de7b0611643d2df7f812d6686d78ad671c9f87a4479ccf4f71477293bd17a6bf0ab0b111643d2df7f812d6686d78ad671c9f87a4479ccf4f71477293bd17a6bf0ab0b1c9118d04cc8bbbe641063a48065dace5a0b47b661613f0d6e4e3dec3119d305e0d0a798bc7145df535d0f468c35c266411cfbe6782e8846152d4ea5f45e2d90e0d0a798bc7145df535d0f468c35c266411cfbe6782e8846152d4ea5f45e2d90eb65f51dd64e561df712ffcfa597ef09cb132359442b762bd78595700211f8c56ae7cc5c05e5fd24abc5d39e085e2f25dca6e3c674a5a995997115907225e8912ae7cc5c05e5fd24abc5d39e085e2f25dca6e3c674a5a995997115907225e89124933e13f24889e13dbeb3ae0d60ea4fe3348f6c8e786ec2178021a072b7840900159b7ab3a59ec13011856ee3eb9dc8fcd3be71cdd78d2ca47bb0f31fb0a4f860159b7ab3a59ec13011856ee3eb9dc8fcd3be71cdd78d2ca47bb0f31fb0a4f8690afefb9f0027cbc3f0461ea53520274b1af6b12cd63a5878331702229dff86cf7f6a0e534f1eebd0c76ec6dc4757213a911daf0eb33ec898e7e647a6297e12ff7f6a0e534f1eebd0c76ec6dc4757213a911daf0eb33ec898e7e647a6297e12f9d33bff1affb961fc4fa175bf8a21eae9b6995f3dbd944376fe5a75c7ef170f52f1ada09136d5aa73f53900868fcb7f3b5a9257e25a51b5c691fb2ceed5d209a3351816641997f98acc87f1190d4b15af8018d180faada0392a43d8c6d1b1f813351816641997f98acc87f1190d4b15af8018d180faada0392a43d8c6d1b1f81ea57d5714eaaf846ba68d341a4d391df24686651844ead8fb476cedbb3bc7a3949b29b31da0f20a8e6811db128a272c660158824a7735ea471036ad13afca59649b29b31da0f20a8e6811db128a272c660158824a7735ea471036ad13afca596411f9a11cf54498f2a7a1b43a1513791ae2a02055179f079a0319be8e638d0757572a1d06b5a3e2586927039d8fb07c5b61cf2c13afa8119d80c8da56fecf7a67572a1d06b5a3e2586927039d8fb07c5b61cf2c13afa8119d80c8da56fecf7a61a5406a57d3da09b4427479bee2eedcbb342ecef0cde95ed54b6775b58ca5d63418c1b33493865b6eca9804f8cec9f1cc5f6d28292e2a93aed683fd217a41b08418c1b33493865b6eca9804f8cec9f1cc5f6d28292e2a93aed683fd217a41b0807e6279baa6d6e6a8a002d0024e64cfe0f391664a79c7fe0cbdcaf78c86e352f8c8ea57ab635a4b50615ff10d39fb8fee6006c1c103f1c9f8f9f63abf43825f68c8ea57ab635a4b50615ff10d39fb8fee6006c1c103f1c9f8f9f63abf43825f68ccf7647c1b6463a2cf10680bb0834d229f7e263f542b1afe72a39aad75ea867d8a1566c9e00c58be0107dc4dec586a126304c350a1a0136d63d6c79ec6be261d8a1566c9e00c58be0107dc4dec586a126304c350a1a0136d63d6c79ec6be261bba9ceeabf66c21259de5d1903e9609c0ca01e70095b777aa21a840801fced4e793ec8bdb91fe3f93c90065b8d13b253e3c9da6c99f039c6a235ae9a60162b55793ec8bdb91fe3f93c90065b8d13b253e3c9da6c99f039c6a235ae9a60162b55aca3a169ef4ceaa2ab31006417316564125ed298232895f3d2764bf40df70f163f286e26a70e4f859e91a933d9cb6a663faf9eed513c077fe6ed04431e924d763f286e26a70e4f859e91a933d9cb6a663faf9eed513c077fe6ed04431e924d768d1d499e0d3cdd7edfade78cfc769020abecc051e3b3feba86e712eeed0dc144a0a4e7ece065a0cfe4a29880b4d374ad31b5ad534674e310773a22038ddd95f441cadb5c7a42813f09abfb75578dfb347c652f172eac5bdd154a67cce041ee128d70d622285e1d5e665f096ff46b7f83f86e168133a3341d622ae1056f16f446bc975319fb4089709b56fc881d52e322745530065d2477bb716920cc888543154d16c125185ad3697625b99d537581f18d1b7b44c9d4bf970cf2fb31e75629ca63faa7415d96a299b73ef541c5767c48b0495de7fcfe52495ba5ab4f9fc8c36563faa7415d96a299b73ef541c5767c48b0495de7fcfe52495ba5ab4f9fc8c365e2a5edf9f17e85115331fda4413ee7c08eacbbcd020952e6eddc7820d4ed1a364c20fe7fad98c2d8cd1773bb64a3649a0838c490c53820ce71798b2259a04ead4c20fe7fad98c2d8cd1773bb64a3649a0838c490c53820ce71798b2259a04ead6d390c83f5735fc27ca8a782c97f58efcc095801a9f33c200f3f2919105cccb94063b6cd2d3fa059194d54f148c1f1eaea2013ce7860199fcf7428583535f0454063b6cd2d3fa059194d54f148c1f1eaea2013ce7860199fcf7428583535f045cc227c6d7160e0aee4437f5c295f4a341fa7998525d1cc436e3fb1483fb1ed942f60d9a4e8759202c39f0e898659c27e944aa9cebb0299bc1be0393a3a9f47b42f60d9a4e8759202c39f0e898659c27e944aa9cebb0299bc1be0393a3a9f47b4611825b4808b5746981a5664700b2801d4380536f4218b0287946856f25724d3015961c8340d21afe582ddd5a54b236ac987dfbe6702d744d749988271634fd8015961c8340d21afe582ddd5a54b236ac987dfbe6702d744d749988271634fd8fb7b3d774dde0e12ea2670d0ede2c4f928e1939cf43ed6fbae991eb9936c6a81968ccf3e1630759791902963a66a49a87bd7348942ade6ddffb89cad88d65b0e968ccf3e1630759791902963a66a49a87bd7348942ade6ddffb89cad88d65b0e9c4a798de5190b2769ccf175e795ea42978614f2c440678b9d9255a91140fc2b4ef88897f737a3c7bde27a1dafe64ad34f63f092744510f8825c747e41f1e8f64ef88897f737a3c7bde27a1dafe64ad34f63f092744510f8825c747e41f1e8f684b30601eafa1c3a9ed9f1bcec0b08dace41f1373239267bd69f789a4551eaab2a068049dde5a2a3d5c93c03249ec1ac9261e5500b432c595f111b71c276ed9b2a068049dde5a2a3d5c93c03249ec1ac9261e5500b432c595f111b71c276ed9b2000bfc3038df57ec9dc115e67bbea4615b2ac167036571aacdfbbebe54a95fe8a42cd0b571de0983f6e31644634d65261de4e19d1a41d42c1773a67733e1fbf8a42cd0b571de0983f6e31644634d65261de4e19d1a41d42c1773a67733e1fbf00be3220923527d56dcae0d55dd877d0cdd72002b7bdc09f596d9892b799229cf2a4e36acee7063fa51b5a74e5877f9c4602a8275913cb3c229fbc0b9b6eeae0f2a4e36acee7063fa51b5a74e5877f9c4602a8275913cb3c229fbc0b9b6eeae0718b33960f2029e87a8038675156ba615000794641ae28bde91e785079af10742ff852711c0493dc24ccefb1f6bd23e3e1d170fcea74a6fd2657e912b0653dbe2ff852711c0493dc24ccefb1f6bd23e3e1d170fcea74a6fd2657e912b0653dbee3823d80885a35dcbb42d4f4f38e7abbcdaeba2e1ab74b973507666d612504798f293886a6d8ffbb9b6d81f460c41f2c01a81f0f81b5bdf34e0b9eb5d1b3ad1a8f293886a6d8ffbb9b6d81f460c41f2c01a81f0f81b5bdf34e0b9eb5d1b3ad1a16b5635deb443f0dd6c92f45bc710dc1e406a9a312c7b69cf5336484e92c1eb0ea35ce21ce8d3e74b3a6ebcc4b7b3cc2f44503a5427ef95c42677aa2a890427eea35ce21ce8d3e74b3a6ebcc4b7b3cc2f44503a5427ef95c42677aa2a890427e4d8ede85d7bcffddefd5e6969c3915ea34520b65e05322172e48e89455e92a805de898bdf65904c55703a8cf5106951ecd1f0cee486e7b861ce3582e4efd2d645de898bdf65904c55703a8cf5106951ecd1f0cee486e7b861ce3582e4efd2d64585c0d11e7de8dff496e470f3a9380523c6323e2fc3d1474d8ca79c3f192a9367bdc3296e36b6009692722dd84866211526c4b30d4231e2589c7917a4cf223d67bdc3296e36b6009692722dd84866211526c4b30d4231e2589c7917a4cf223d6acb8b032ed08701b6b3a2235280df03288c4b37ef85ca5bf7bdb5417cbc4c41727daf9b03dfc19fc07b04b765855eb0036d30f8db06a6c9288f5f18950fda32127daf9b03dfc19fc07b04b765855eb0036d30f8db06a6c9288f5f18950fda321711ff7fb832c1b0a3048dc6b74f8e191e9a77e5c9cc836cd4dde60fc88419f9833a3fc7a3b68e3c513f033738730d4fbfcbbdd33fa3359c26827700ff57ee68c33a3fc7a3b68e3c513f033738730d4fbfcbbdd33fa3359c26827700ff57ee68c25e04e6afbc08aa8fa4ee618b72194b940e2eec91e0d466cbca6b042393db6f11ba4fa70e4b9ba94c2d1898205a09a2aefa2c2a0269b0bcac2b1f45012725e4e1ba4fa70e4b9ba94c2d1898205a09a2aefa2c2a0269b0bcac2b1f45012725e4e4247a07f5f5c98f6a4a191fcd3ef5535acb0971d94017a18dcb658b8f2f1dc112a61b4afcae95773b38e536461987db8508556996f74140c8224f95a75fb99812a61b4afcae95773b38e536461987db8508556996f74140c8224f95a75fb99811a4e230a2fbcec90e5065890d8f0bc6446bebd7a335690de2c7ed823e6fa20e9f212dbdde7731221aa0fe49f48876d3d54660af092da503e759cee9a0415cb2ef212dbdde7731221aa0fe49f48876d3d54660af092da503e759cee9a0415cb2e375b0cd044450c9ec036470a3247034423c6b6563f37625e2b8c736f0889c0c54b84ac893b399a761a5ee2111c84b85b3034be5a6454d483bf4b0628e2fa98c1433b64a8dddfdb4878dcfacaf1ff9f7b1454ab593c7df9267a3a212d70f632463f014b4b4d9390829f8ac8c9f4dfacdafb09bebcc6c2e0b144abeb2ec046988f5005f0666051e21b02755e4d83d9d869305392697d4814bf88459a4a2e74577f5005f0666051e21b02755e4d83d9d869305392697d4814bf88459a4a2e74577fcf8fffb32976e7da4ea5599d10622c5c8952c5c443283f686ad5d91ae56ab7088d000cc05fb6c29d4bcd1d130e0366aedd52419e6fcde7f04c7ec423da6ab61b8d000cc05fb6c29d4bcd1d130e0366aedd52419e6fcde7f04c7ec423da6ab61be3054e8304ec37fd08d92f05c6a9a7e14b040b2b9600adf22959857c5f96284f72009670b22909914f8c78d700e6f0866159c0af211d802a87546530451cb14b72009670b22909914f8c78d700e6f0866159c0af211d802a87546530451cb14bdd36e988533d986d91d54e74e0c29716b58357cf38928a53c464d545a58b8931e60f6cd4a3831849e86d08d52cc607e4fc1efeaf7398b271feb96033119f8e60e60f6cd4a3831849e86d08d52cc607e4fc1efeaf7398b271feb96033119f8e60e17a2a948a0795c5e8663c91156ecfd1baa1c50e1dddd4402d93eae038522f5484aa0a6ddf9c3535fd83c81ef8353a92e726410fe29c96b6099e3ce7e818aed184aa0a6ddf9c3535fd83c81ef8353a92e726410fe29c96b6099e3ce7e818aed19855b684fa05d026d79efa48e7cfe9e4e6f5e7154fdbe85644b87f0cd65734014054be84979d2af468a9b626083c9bd17ed547910d7465be4c752c5fd3a8861d868b2ccac71d699132497912f7414ed3b34f468f6563e04af2c39e448c089578f500bd9790cab19bb414cfc99123f5c64f21463244e655f2ddcefff421231ff17c59904c1dfc6fcd4db14510daa78907142a3ade71591f410a2b66b5cc0fbe501cc6401f79120d6f9a8d53f07ac8669b833a1def13f5d5662caa19f1b7d1e3f71cc6401f79120d6f9a8d53f07ac8669b833a1def13f5d5662caa19f1b7d1e3f76294ae072e75debb1a080f327f1a435fa2eef453b79de1df33ca6ee6cb3500fd756527b62d3a1deb8dc040ed44915f5b8f18bc553e9dd0d9b5962f08c5ef8c36756527b62d3a1deb8dc040ed44915f5b8f18bc553e9dd0d9b5962f08c5ef8c36f5045b4370ca650bc9d12af5040a32e757b45bb2c4d22db80136c6b20b2239f22a39c4bf5c92d084c047399533cb94347558d8870f2794694821df89dcb5d0f12a39c4bf5c92d084c047399533cb94347558d8870f2794694821df89dcb5d0f1337d99e947090000cae98e481e2143ea9e111614b628b26df387927a9482aed3a892ebae10c24071ef3dc770479b0bbc9b3008ca473391e7c3f2f541e818d45aa892ebae10c24071ef3dc770479b0bbc9b3008ca473391e7c3f2f541e818d45a8032f8919c0fa0fc0c00e58385d059bb4f3bae21826ec27d48f5e8029c7232cc91fad6a7a820b7127047657110330b9d86d2247cab30cd41347cce8e1de386c191fad6a7a820b7127047657110330b9d86d2247cab30cd41347cce8e1de386c178e91b99d84d9ad8c672c229bf5418236e437bdd60f8496088201d5d5ce436301571c45e9afdd5eed78382e381225752828727c28e91bf3a4ee7a75e1c9018841571c45e9afdd5eed78382e381225752828727c28e91bf3a4ee7a75e1c901884b56641ff3cb110ea439bf32f6a5fb4ed48d55644187552a855d6095bda5e12d42b59dad6082e3e986b2cf1a7bc2988bd6ca576403306ee925e95c160e5a5b4972b59dad6082e3e986b2cf1a7bc2988bd6ca576403306ee925e95c160e5a5b497d12042a07bc9bdb1f984f50cfc6fcc0d23b0ea0b02676c059b47c392a51b2a47e85bb2ea355ab2892853307d0b2f4ee33f2c71889045e407b2264bfe114511e7e85bb2ea355ab2892853307d0b2f4ee33f2c71889045e407b2264bfe114511e746a94f7b704cd000f6c5432a0501f5ee5f76e03e793ad2a278ae27ff4de2eb1bfabf032bf594b27a13bb56524456130d5e34cf776818f4467c7571417f7f98e3cdda59de2c32260adc7622f5d08fbb68a31c8d035ba288784b05e779a1dae5a8ed75a9bbc02942fd484b0d8542d105a2f6a54ce3ded3561209a4c90c1f20795b252b492f136d9b9032ae47e549280bc1b6c0c265fce3eb0b2315a6e5f0ea33d0263b2637a382df654210b6a79e9176ecf495c7b27814bd72b890d2670553e107a9b0a695e5b8402f0783dc8c10afa9f1bfeff93ef1f7705e8269b407b8975cc02fd9f1cb20fef539c3dbf6a1ba1ac67f77be70d20128aeb7a2cf9271e06b1882a38da6811db294cae80a45452350f506ce72074123649ff1c31eb2fc32575647ff95a0cc0a191bd59e7117a5bdea55241103e123f3d060dcacb6ec9a1f9c44cd34b509e1558881c3f48849d8ebc2ee3570c8f3a2f7ee548d525607f468c6664faaddbb384292d444f014f5cb9a6976bdb72b03a0c4f56f636f5b44bf6c227fcf756d4e1d1a41235291f7cb4c46fdbc13226dcf4df6e90e158f3e2ae8d513eea0ecf04be024a50f06551fec866ce543d8fcec6d4a0f5a2b05453b5e857beba0210e97103b4422abb94429b312526e7730acf5d15fd2670194aab4063c5934a84b3290ad3b8a579ef3bc11c67daadde34b8c60537e337ac6249885d85d1356636313f578716138aaf01e3b930e863b46b6a0f33e77513b52c193c949fcf47b080e4a64845cd000ad3810f1247a90aa723ff37e8c0f1ff2af0aa46d2a4257522a8b7928b5ab63c6e89ee0ee26f5ef201a58c72baf91abb688580a1aa26eb57b3c11fa2c3af7dc8eb41ad42d4efa2f492b816a27abb69f309f5ff4dfb11d7cd5d6736ddcb61e46540ec1722812639d12b6ac89e8a303235955abd4492975bc695dc3ca1676a154a2c6a1f962acc38f666ca257e1104cbee0a82c9515569255a86ca1fa2c3af7dc8eb41ad42d4efa2f492b816a27abb69f309f5ff4dfb11d7cd5d6736ddcb61e46540ec1722812639d12b6ac89e8a303235955abd4492975bc695dc3ca1676a154a2c6a1f962acc38f666ca257e1104cbee0a82c9515569255a86ca105507955dca0caa28a24602df1f03be661803e46ecb6bf2582ec8f2c1f5f9b0a04c370f745396e4281e4b0ef2d954f12c3505da23a0d45d945324768eea232c2c19c12929fc449412680c201a88163b25f5b48af03a976e32b5fb74dd1b377669620eeb708a01c6c4c3ba6d3096aff0f4fe1874993a226641b5ec8599fcc1430c19c12929fc449412680c201a88163b25f5b48af03a976e32b5fb74dd1b377669620eeb708a01c6c4c3ba6d3096aff0f4fe1874993a226641b5ec8599fcc14306dac2fe96a4f7a232c65c209fb5278951281d9306f32b193a24046e66e93b0236dac2fe96a4f7a232c65c209fb5278951281d9306f32b193a24046e66e93b0235b127feb3169ce575ce1821124481d8ed7f9fae6a643ff433ab9e3461190e4d176c39718d1c0a3fb321676b3b7e29306c0907919a5716d5728bd1b08ae0169e7118a573ef9ebec6ef55e58fbc0431d3f46fb4915076e7ec697b83e71eacba1490fa6c0dfe7004339636a223b3677d08d8fdb851404de4e63cd7fbc351335dcc09c4c80ebb8b1f757c80b51c20191c61f3f328bd1d377218948c7c902f177534bdefd0531496104a480967ad4c92bc4b84b0e12e78b700737287ee2191fbb19c06af3959a1c17765c9d2b86466a0a9681caf6302ffe1d0c2c84f2306424b67980f2dd0c81f7e11b3cbe8bb7ecad6dda954cbc225f1c4d584eff0f98e4e785a78efdad5c51f925a70bb43e1e9ad74e9a28ea2b49885ced3f9dd815af1bb56b79daad57f71fde036e584fe19eb02d26b69a9330452e6a78f056ca413a4163ce68edba0e1b1dfa871408f6079304491c5b2dddd1df0755310cee83628766a1449852ad57f71fde036e584fe19eb02d26b69a9330452e6a78f056ca413a4163ce68edba0e1b1dfa871408f6079304491c5b2dddd1df0755310cee83628766a14498526c41d450c94e2100292abfb498521156c107ee8b6fe0eb007c5001f3a40fa4476c41d450c94e2100292abfb498521156c107ee8b6fe0eb007c5001f3a40fa44759c837a9044d4747b129c0e8a8d9c1df0dac3245333d6fff4903a8d18d132bbca1adb00a7f1c28ab71f8b9665b694a3bab84b60b52b42b3b1dc246219555eb1259c837a9044d4747b129c0e8a8d9c1df0dac3245333d6fff4903a8d18d132bbca1adb00a7f1c28ab71f8b9665b694a3bab84b60b52b42b3b1dc246219555eb12cdee4578e1e261d1252a091ebf44464305be8ed00c5907c912ce39d4218b44a0d882f44d314d59091675f7d9478ca624b0dc3f77afe6c8c4670a4686cd713946cae98b8578b5e61e140fb968f46557d394aa81b8ac003010f1ce140f77db9d41cae98b8578b5e61e140fb968f46557d394aa81b8ac003010f1ce140f77db9d41d882f44d314d59091675f7d9478ca624b0dc3f77afe6c8c4670a4686cd7139466ead280070350311c47c9eb1c03a58514ed04e7518981caf337f934b718579cd444dd4366615ffc4a16d012b2fa90137065d3ccb410fa6fd5e4ddd7b5e4ffcd57bfcab6db99d5cfbf1705ca0536ddc78585432cc5fa41bbd7ad0f009033b2979ad6157926c1622ba4e1d03d478f1541368524bfc46f51e42fe0d945f7ef323e4aa58f33f239a0fb02f5c7a6c45c043d7a9ac9a093335806694ecd6d4edc0d6a8ba0c59deb5450f5cb41b3f93609ee2d0d995415877ddfa223e8a8a7533474f072adefcbc041e7d18fcf2d417879dc5a09997aa64d675b7a3c4b6ce33da13f3fe90d9736b830109d7e99e2a495615a7140ffee9e8b6a32db568c72ce8b51bbdefbdb8f9bba7125549cb01d68d90050ac9604f5aa43f6fd63e070f6d7d095f8d7461d023cdc1ee2031e60a0569da5abecd2f40e211723a199caeb09d2029702bd45cf144aad58010ffe1b7ba8de759dca1e83a36664765099de4ad46ecdd703a398dad33fa53d17143d8862fac76d24910a957982332c3126d08bc4243329dd8ad05782fcb4d0643ed123a3a217c5f2c0577b481fead284ce2cfa9e8795fad844686e86aa4ac06705b306d78e1e45fc3b9ea319cb877621fe983f94d6e8fad9cb1f23dee13400b4278bb1cdfe7e5d64d9ba785d541a7e90245bb7b178f44ec960e672de01161a3665db3bfe10e998735c5abeecd59992566d2dee9d077158cb2a895f9b6e9f60cc090f574d851dea5b5a78c536c86dcdd5690017d16a0b7411fd025e25d30705c212a17333d4d219aeca0d3ec1d0ae172d97a109b35b2ee6427df318081ec1a35c5bb8d1b71732bf9e99ec7876ed99b41e6c32412748f1815c464672de01161a3665db3bfe10e998735c5abeecd59992566d2dee9d077158cb2a895f9b6e9f60cc090f574d851dea5b5a78c536c86dcdd5690017d16a0b7411fd025e25d30705c212a17333d4d219aeca0d3ec1d0ae172d97a109b35b2ee6427df318081ec1a35c5bb8d1b71732bf9e99ec7876ed99b41e6c32412748f1815c464870280ccb7ef497a41bc34a2bdeb10c24fe87a018c7868d7df2685d51d7253eeb628fa01fe3239df37c07a3c5588023d721a90f10482d808a21e01623608e8b0870280ccb7ef497a41bc34a2bdeb10c24fe87a018c7868d7df2685d51d7253eeb628fa01fe3239df37c07a3c5588023d721a90f10482d808a21e01623608e8b047a281f4ba26e6e29a94d89a4ea7208200f39620c484f664d9ef3ec73b4b8c29b1269819cdfe846827ed0eb90683390ba08a4c452bd738bbed3f27dc43b7da4747a281f4ba26e6e29a94d89a4ea7208200f39620c484f664d9ef3ec73b4b8c29b1269819cdfe846827ed0eb90683390ba08a4c452bd738bbed3f27dc43b7da475a93a88493aa32aab228bf4571c01207d3b42b0002409a454d404b4d8395bd550925e8ad7bd971391a8b1e98be8e87a6971919eb5b60c196485941c3c1df089a5a93a88493aa32aab228bf4571c01207d3b42b0002409a454d404b4d8395bd550925e8ad7bd971391a8b1e98be8e87a6971919eb5b60c196485941c3c1df089a36dcdde33749e2db422c3f51eea5deb71bea800490d96c2053680bc4c6154b3debcb35563ab0d4a54fd83891e6e3629594237feb45e88ad023d3e329363cf27336dcdde33749e2db422c3f51eea5deb71bea800490d96c2053680bc4c6154b3debcb35563ab0d4a54fd83891e6e3629594237feb45e88ad023d3e329363cf2737cd978b6e584de9f63d31c671f523882b03d102092c9af77e70399feba3401d464ef938dd040a288e2e3493f834b5ba37b8804fd0ba4c1829e981677fdaec94f7cd978b6e584de9f63d31c671f523882b03d102092c9af77e70399feba3401d464ef938dd040a288e2e3493f834b5ba37b8804fd0ba4c1829e981677fdaec94fd1d4af5aaf8d7dbd23e1768f938c8694fb9bef1ed7d740508832947514056ea58c702006d8133df35435597f866603f8ca23fdef3d9f8f7d78d833ebd350e52f975ec2c70484a65b5fcda5a43905dce1dbbf65adedbf04ac965f04450d6a5130975ec2c70484a65b5fcda5a43905dce1dbbf65adedbf04ac965f04450d6a5130d1d4af5aaf8d7dbd23e1768f938c8694fb9bef1ed7d740508832947514056ea58c702006d8133df35435597f866603f8ca23fdef3d9f8f7d78d833ebd350e52f1ed0fa9619c1e1d1c86ec564ac82e686e7aeca2b0cfccf1854d6adf1ef52e706c4eb4b162183cf0c2e0e91eb7e25c63b0224d7e3fbb094055c469744d9c0685fb173e7221f100a147c2705797c67c89250d637e71d4a82596a41f86054d5c3582325d2f0873b044b4aabdf5e8ba5cd1de1226304d67dc02e0d9142c55f553630592f6317202cf14df2e5ba94c086f2b444bbd6bf700855dfcc5c49fe5f342a61179214c06f8d3c1763df3a5fe93fa84f240f5b2b54b5753a15a60af99dee905e23c041f30f5887af40912a93a9eb73de58e111c2b26a86287809062ec8e39dfd279cd996869f4e9e375ccce86608559a8658bead0b7620112330c807886dea8d14e2b3e4c49462ef1e01936898956e047739a96928c6368db81feb170428e5e7b5131043496075b254b3a8dacbb35fde07fd5b48ac634fd61701ab950b91625940a7b1abbfa4c4a41ad63a5195c1fc748cbd58c14f6b46538622609c45091232c3fde5d9638c058027054d92c09ff11db870221a269bb294a3ca4ad32a518f0b18f54c4ed7849e2a8bc964322ff23ad96de151391ffe613d4ec85ee569086622dae9670e4f72164ee21ade70a1b5cfe4e90adc5cb35bca2c313984493950e8810766b53920ce8e7c7c2e65482b095762ab713fcc62ce76585eeba61b97cf10f7c019777748412a87ee020d4cfa53a6aff80f77518127619268c1c1002ce84f4e62b84d686885bbef4f5f2be8bebcc67bbc2f3482130bc7ddaf05aa8665d61c547caa008901c5774883d7be3ffb332ef72bf4fd83a663058e6481a2f6e09206466bdc92c22aba566978f076846655382888edc267651b2a4b26b1b849143e5d830dd45b6651d69e7db6e94645a87a01a706c0c76fb243945ebfdeadc7692b34208e93e539782eb6f5fd0439c8636a627d581291194b2df55501cefdcab3747809185513851c1d7d953d7701aac7bb61f798ec1bd6320115b3f945d4c338d75f6d3c3e5396f1bdabb97c08549fbee07b633602e59b5fc8133afb46432880702039f479897086048a51fc3f3c0c87bb1fd9d8c8cda88b6fd6392fb2d417f2b6bfc3ed073d84c96cd4d072c48566d10039fec8e8d8efa0ae5542b6e71a7a699f2fbd341376b13d7b49d0e72f47aedbb6605638fd4de2e83d4a57b703e314550ad185e301462d13c369763896a7067180e0449c46424061207cca6bb12390259a40e31334b25abd937a2c789951cf6a0758cf3f7c6f153d7fa277c24123582a278e0ebfdb53104c79c46ffe6f8551c4db67086e2826bf338ab80ae443b9b22646282664a41ef344633904f9c300fb02fe3647d38cebdef07a2e0edcc07d9e3f90ae0f938f2a42c1e613ca1580b68294892dff4df5d92bfc3db47659446d7a1a77d070162e06742e17a116dcd18841a282be9aa509720190588fcaf662d70c04b7382c480ab0410814c4030988c999717900550ece19bd0ffd5f24f853a892bc459e01769865bacd4a4f52ecfbb5c228428d3cdfdfc0094713437f5185c717542d3f2f9f27b5c38b20eb5bf941311d7a9f1f702a909c771f3e657d32ca41b7a059f23b5ff0f979d22490fcf3c67e35a0b20c0b7bb1f93b3123a7db42a295324509eb6f87a171d9dd36122494c9a8986d5c71517984b86527fdc7d5f9f4b8f6ddbb50a4ba26666a77703cd020843dfb747f67c0d185665975be20a0a3448425028bdba2b3da2822aacdc453e591057d596d8afcb96b6dbb9132737f6a51ab23e0dbb3a727fc6cd10dab879b358194851e4053b667098d703693f4dfad56316c2748566bda9d24098c7515bbb43f38039004daa0c4b2784180178d67fae95a0344d6d0e1291e244a415862af226c35c881c38688f3587acca3fd8584dd51c9c8cbe121d786918d8edea08a24d36bd93b1ebd0edc9f1f6799d8e00abfd46bd029239001b3ae92f9d3e83b5ab6e43920b1d40017d9fc2baa9ca65f4254205c0d638246c44bd448bb7f9a655e517af569d5318ae82f42545d59ebe5da5cbabb8d6e03a0525308ddd9f39c509e88e0c274556785e714683eed2da020af3e578ca05268e080f810861068573545ff0efc6280422ee1214f00907b965b4a8035363106b8337c2a36a879b6043b595fa301f666ebe970b3ee62f65c70f9891bb8864626d737e2c380c8af672b1d8fdbec0cac76f101bdbf766f32d0ab9d8970612d39af520e0ebed1676242975c349f1b8134631844257bd14882cfbbf0ba2a6a1c4f6ea77434f029a16a900c33d299b4a83b9df06f0de7f7db42f68b4cdedec2064b3995417e94ab5f9ca104bfb2c628a41629ca6314637796b674704dc108be1f9f67085b20806e40d2434149c99980342b27346cd666bbfccff64674ffadebd3c07831cf1885b0e93ff6c07efe56a7f357fdf84e240d83431d528b570a35192fffd2a5329ab632e2d2f56c909ea7b8648efa0a092ef0792534e7f7c68bceecf479ed556c104ff08a379a9fcd8738467f133e2cb858fb370f40459bec0fa1805d07903988babdf1dfdb95042dcc1e847ba2d81c52279166ac1ff9fe0d765650ae077982579ee06522adc65ce1f8285169cd260e1e4d216599d7d1e897b1530eeaf3c8475d7552f906bb0f3df9f2c312a0d3e73cef93e754a15641ca32978fe2f13051e8ce19e737781ffa9a808964cdda9be5b141313dbb28c4da9e9c28cf059913c2de0d04a0e439cb535a47df9744635dd7ab1d7ed60a26ec58e641913f494977f3afbe0b8ca61c0c106f9cb006037549c0dcf8dddd4c4dc5c4a011336174125ad25c5af49c947847f2b57b297b3889c8996b16c5511a3cb2520c683cfb5e0d24bdc4027814065e28459c3d92a8c333234d5c66514d93eb9f4d8e1b11481661e6364c8f1662c38a01d98a0c3462065e8735f84e0608418ee5927ac85a955cc183a233743b547311e8aecf7a7f91c8412a16e616c31e5c718c4ea960562b4e0be45c736d615b90a379cffa2eefd5521e051e41dfe169d8fc69993f86551d6ce7138717a3a56ac7c0d11643d5cbda9aba5cec38076e46e29af65a8b39f7e8dde4516f8221ca323294ecf4aa8fe03cdceb43a7219b4e543a5ded3f450ea2345a8192020aa3afe3f0064c4c7085fb127719f366fdcc59a6f5a88f2d5d17216c774daf3c68d2feab55e9b4974259623f959663fd7103bcbeba05bc88c5d47e99159655e04bafc4c3db001086415605acde23fe006c4e2f1f22e5d985c10e4dcd20a78214497ce60d552e564a0524be3e39ba391e8dde81c70f690138ea42a10701e50edfbb5c841203fbb42e6a551ebc427cdd360ff571dd43d7e13dc1f00cd31337ec602d9adae1b7b1e7dc5ddaba68b9c3fa1817c6af11cdeb0e0cd5f07f7d2628d73fc8bbcb4e782964774ceb51fed45a74255d73a76010a7bc9485f757efe7158947be4101a196803fdd87ac3f7eb9bf410aa7df97a3a054f962f81eae02bf015cf2eba06be5f11339210c1c10ea47e9ca67964ed928ae21285ae1a8e8a2189ba611ae4499c22214209762f287cc3a7cc6926a2a12137fadf4854839493471cadd03f5fc015b79e54c9dcf995caa7d7a6820de72b9fac98ced48d521203a9ed118242c2c2c460464600b44ecd0adea12e8314063cd6980e668946f43484e475601dfd6a383938e78fdc0391cddf8907eb77163352149b93ed8a7abaa6c06d164cde6c77bea45c755b7c1188f6b91bb4a7152f22c4391471ff43dafcde25dc8c1dbd6d460e93faa6d8bbc5e43f491a22d9d80a44a4540962fb5bfb0fec854112857a36aaf05bd8d06ca652c01932fd97bf6b60c48387bd618dfc8ee3455611451c073cbd1df79b2362f5f91c7c276a00f5c20a9bac67570dd9c1a142a87106a10aab3f079485049152f853b14db3644c2aaf9d24bf1b664259ce1a6203c1248de4013badd27b2044d9ff69e320bb9b378238bd5f0aa7421bccc8efa24003396fbd11fac8947315e6a6cc1204fb84fd87f25df8ce1eac24a58873c85168f0a2547185d764e2a007eef2e25959336d6f988f2ce0e004f885d1e19f7f2e90542d2c3742a323980c2441af02226f694be97dcaa564ae521c07d612f71cbd974576fb31491e8cefab1fd8ce7d8cb437a61031d4286204eb60f8601ed6b1ca22707a28f0d62fd1a21bc630779e8a39215f282dfd21bc15f223613db32826db44a2c22eebe8f6120643817f22faf0d61651175f831d180c8daaac1fb9b26c5dc06e9a1a6a98eb0cb96a184728c3977046b7b5bbbd568fedcb2d356b19fc49bb875e61fcd30bcc4ab573fb6be326985c6242346cac69f34a634495e0b2f007f860f63bc66b9b48e6ff146d21a84ce98e4ff3c92e4afcb15a077350445809aefbfb8bc88e5d3515f89bc01ed99e05851e58872154bf4f3352c9f6215876a00123a6908f0708d74598b363cdf1f7a01a99da9ef52b8e847cd1db3a0d4e7e75f2da05c28566fb67361bb96e4c1c4f3bdfa6036ba9d31ada6c3bfccc3408d8ddfe23894bc0ebcb556377eabe14d9fd717d864b3fcde9c109ee959f3fcea9cab719029f3fca7f6b7227026cd56a99457e168a25ea8daff015fe5028a0ba2ab8281657f7cc0888f2517ef61d67ed885c81683631851670f1b459c62594def4210cfa8d28c352ae372769c964338c691598e03cb6fb30b7d2e175fa90ee84ee8ad334aa69842ab651bea58134d4f8bf1ecd4c7da2fd7e6833d45232e9d3044c2977c3ed11b06f36890be720587b6c29141802df5c5c8754fa7f2774266c015821eca0e52bd61d0d6e1f36fac3dabc5a8d81145d9c9d27a607d5de34ca51bee2958864731edcac912f1903545a227c5a8d81145d9c9d27a607d5de34ca51bee2958864731edcac912f1903545a2275e3eafa8b3f82bc4ac56d65ca903d7481597621b70ed66910b792b7b99b8350cf8407688a174484f4e244c1b5748ce2680ced8a51d00a9eb1fcfd7705a866f9ff8407688a174484f4e244c1b5748ce2680ced8a51d00a9eb1fcfd7705a866f9ff2c656c6fdc4f89223f191151c44242fe70adfb166ea6cfb1bc82fce16b69acfc6c3e5a4823f5c11e3621780a9acad79d41022038f11425a8cec608066f5769cc6c3e5a4823f5c11e3621780a9acad79d41022038f11425a8cec608066f5769c129c082c3c84a6611324fc70ebf4efb940119af1cc77f079707b41cb1480e93bf7db3db2a3ba5f874432c796be7f4b696bf895a456270e338c04b82c4de89b8af7db3db2a3ba5f874432c796be7f4b696bf895a456270e338c04b82c4de89b8a3f66e5bd7cf5aceffcf230097beee7fb47bbfa9d0df9677c517815ebcbb0660fb27308d9917594adf1f911927a76b77ef29fca2bab5a8e27d69f679e776ff118b27308d9917594adf1f911927a76b77ef29fca2bab5a8e27d69f679e776ff118317f459e82a8cff3b7d886569149d60d9f4de17248e473a4b480fef620270da46fcdf5ba2d725a4d1ca19f4d215cb3c3f25c38d69f535e0f1c4ac61ba7a3846b6fcdf5ba2d725a4d1ca19f4d215cb3c3f25c38d69f535e0f1c4ac61ba7a3846bd4867a7606ec1152e9b6726a1ab73c061051eaf7651489b541fc77295ee5e7b9c3bdbfa6f02582d711cdc8cf10d2c97c3746d9b4c7409d6b4189cdb986568070c3bdbfa6f02582d711cdc8cf10d2c97c3746d9b4c7409d6b4189cdb986568070ab36aaf5904008fb7ffddf09a98fce17078315c6c92d1996be5e70bdb84cf18ccc45bf84f18a18e1d9351e8f7ce0d0eeb9811c7a095472c74c86c8e4586e4caccc45bf84f18a18e1d9351e8f7ce0d0eeb9811c7a095472c74c86c8e4586e4cac05e8dac459f555b3d5d5b1800180e9975e0ac71c7aba969ef71ced811ee566c2c250319b7bf155ac5705953df690204e1a91b5d7f7784b01e193b023f0357169c250319b7bf155ac5705953df690204e1a91b5d7f7784b01e193b023f03571699eb74b7ec2721f3d1e1911f82bc60d8b063b9883b51025e7bbdc47558e624961636eb14c2cce28d833be82f342b5c4e322de72b847ef0ad9a71f7c92d80e2b9e636eb14c2cce28d833be82f342b5c4e322de72b847ef0ad9a71f7c92d80e2b9eb607b6fec0e6cbd0c22ff6b64353455d8454a3483ff2f0ab9a5ec653e0cc13380a077b87a5033b684aceeb8103ea4dfe96b5e263f43f303f1205f6735c69b2200a077b87a5033b684aceeb8103ea4dfe96b5e263f43f303f1205f6735c69b22009cb9d56b1630727dc674233c4296f711205e757f74a12d4fa6c3340f31ca8aa4c3a84821406b5c71576e50a08ea776a942674540dbfea23e859c00f7555f24e4c3a84821406b5c71576e50a08ea776a942674540dbfea23e859c00f7555f24e09b2de064ff8beda592f904d2ea7609685ec790b2af47e9e12aefa52b84a61595b44fa29e4de191734963643820e696387d9b85617a073648b2d7fa2b8f33d065b44fa29e4de191734963643820e696387d9b85617a073648b2d7fa2b8f33d06da44d0556494d471de446516f78b3a82eae3d36cf5381806e001508828366b0820ff2cfdfb0fe8f15598a6a70a511f3fe34cf0843483d044775d4869db4fad3620ff2cfdfb0fe8f15598a6a70a511f3fe34cf0843483d044775d4869db4fad361a545a1375778386be40ec82ae07b8e5dc516f1973910b0867729a21d5ade54e4bfb1df7205970a0128afc6fb34c638375952e0ae9f43b3720e83031468c7d124bfb1df7205970a0128afc6fb34c638375952e0ae9f43b3720e83031468c7d12b9727d51f1d83f19d70626b20f2d5dceb070f93d34245c14ada3a04d78b4a09623ea687af02f2a10a3b50899e102900f0840428fb7d3568e5d2b037c7fd2bdd66a2275330332d0a68e90b65877c4efef2cc4e1df222b56dd3ceec6f197d83ce3e607cf43b774a56da6739c6f3ea12234a4c02705dbad8ae0f786a272331182e3566feb2748e3532424ebff6bee914baf632a2ca80c637e2c3faee3ccf6d6bf24bc008b28ab74ef16cce300bcb5643a405b3755b9af42090efc206889773abaaa3acc1e900ec456c472d25a84258876de88db94dc39c222056434a08e65e887ff86f779a91e0e89b17de31392f7c0586d8abb72d5b535a677bd448e8e886232973f5d4bfe64a8eabdd7bcba0a3ad8e89f872a8f6a022ee8e7e68952c988484c743f5d4bfe64a8eabdd7bcba0a3ad8e89f872a8f6a022ee8e7e68952c988484c748e0d455f3751393079f6edfc8c45506d9a1d1ce21847ce12cf20a0f80959b6d1716800e5ed108c93b22a9555e89b90598a6bf7719c0d37ac010e31b81eb8eff1716800e5ed108c93b22a9555e89b90598a6bf7719c0d37ac010e31b81eb8eff1762606f4addc518d662699ff7211a69c83d97acc026c21312f0b9bd7ae6aea00cc96c040f70294191410c0e5aa886a120dd2be2387a011e5619b2763306ef150b12204ec2720af6f2a6bd02a9b1d032f0a9f6b179d08b6db01bcffc08848d6fd043cea945d627d454039e9a9d8714ab73c34c4a1f2c2610608f0516a58002912ae71124b51c964c2ee3f9ca07fa0aee59bbbeeb97e30028a9f7c5f6f68b7358a38f8ec2629c3822953caa596abe5ce9459d425941398c503741ce4af32c2ee4ff18e0e54587ba70087250da4ea1c914216eaaad93cbb9b30dbc454336fce351c68e648f351112bff46fb6ff48b6e1ba5170b83c28d92aae70f82e4b3b6f9685fc1c05f47e38f5cb7d5f12220f760691d8872023453a1a57f8d1e9ac2c17b90aff8705e3499422f5444b797980635d796f6df4b121bd13cbab9b1355b55c7f5b712e461b0a089e8cc10b4e2ab5a6d33d66bda87fa222c794c31e7e5c571239cbb0d3a31ad3788c02aa4ceb0c1614b5192a1347921736f112e36cd26bdc5774e09571fc233a5a4cef54034507614d0941a8f1b0f81dde906ee50d053cedb9ac8f0b15f8d794f0821aeeaeea3aeb1239020d0a4829b86dd4c3f40990542070c9861f13165018e866eef1cd1655ceb89e3fb6316881c6c92db35038e3c29dd5831d9f27f3f2ea4b022de06c65551638fe384cd3682a468eaa142ee9a3a013340381163788b086dca304fcdb77780e37e79be2e5978f42a81db23fc4bf56572f6f4b50f9e35f682e404e461805397e7d2161095a3088bedb01a008b4b548355bc3ee2f64b0b51d9662077634c006c0b3d09efb74a206658ae7d681fe1b65ab1cb8681ea989ab76cd2b5a8b3777a88996952653ee44d13a507790a60c23ed04d0f38fa8f7986ffc2dbda00c0ea75ab1afc262965b452ad20c1b27f8f0e99e692198f41e0c50c057d4f7107d5cf44b4c723489df7b9174d2914ee7dba715584e98e9c3bcdd1f78669cbcf87d632c40527b735fca10744c99338c61ab4e82bbb2882e2d410622539b2868b2981d89f90520764d096f7792880691a2dc1e99af3af6e19325078db3b08efc9ccdf56ed96a9d6ca2bd58bbdfdcaa327e800620f735cf6da1d0f1dbc4813b3268f09702561e136378d9691722240f92963f5f6dbbc148d8d07a0dcad4b88822d67f4a7c7fc67af1517ef8bfd8c81f8478290c2fd68de896457487b4d3573947df5870270beb2c1fa307757a4a0a102285fab975b6035ec8685195f15272785206aac97a967b20149c7317fdc00f3717096fe85a19da5cad3b78cd64883701cae832d8c8badb4be68675dd7f411aac4a94cdfd25b6694b0b4ce3af4224b87e98384ef803b887279a271896992fa3193a606e0e389a189a1b73308f0b015365dff135c57f40f53e26b25f126de80ce38616b434c4b11362ec9271b065463ec938e3c50e7a53c8e45c0736d5cb0db2086de047392924dfba49df443bdcc32d5213146939190374f18039d14eaded12f353524fd6540a679035a0455ec7679bb97bbbd793230a7b7804691a213c93068f68f6084faea69b08057f50d49d738fb962e830f710903ea9f4fb6bda2e4e44f44db22c46784146a3cd69e9272cdacb24537533469b5b953af8b6e419d52c64a88108332c2da765839552809a4560db538333409ab1079a52e7b6ffe760401d8fac21ca497c7f0b6cf7a9b6331eee18c961ac0bf662e1543471cc783ec1bf2c341335c186f5f25034f7cb2a39766ea6296ff920e36eb3e9b4e7cb8750a15d2732e718d1018101a84582773bb3b281c1a593e444de44406731a351c85c7a9063e1bd533507f59207149b1ee67a6c73eb31c031a95e1672ff343e1c4fac37ab4ee1b1bd560aab01e1f5eb01cdd7db4301b09a1dd467ae088587b249d723559b46a788f2ced09670c81c6ad585b16b1971e42c82002477fa22d84f7b85cefca2e77d8e80a497ce530430252d68054d14a4b6ac13efa74378b85316cc321a8b1dddd01ff1df9ca388d209e1c204567d63c998c3c1e9f937876eb05dc435d9c15adf64be53593845b061c37d93b72ba143f2b47dbb5ead1ae89dfcc86ad9722cf41d4141588f019b6ee1f55e4f167f1c8c36d7161dfbba81d828fc1af49eb37308af89e2000a33bff3c3a175e73ae0840cff131305d43846988aa9026eb8da56db61bf0631b6ba2d2c269cc499d4dc4d9120fe7e468b0ed3361cab8cbd664d366f1fa01c4592339acb2fd1f1afb12eecaa8f4dfbbbe524fe78c09c3693572d32385235876922cf6a808ea8ddfd38b4d9ab11c15deb22837a21f386e573b6cffaeb17064133128735c075ebad76fe90730fb292d1475cd2eaa0d88932fc2e574a1b60d77bec92c4192d234820081c2bc91d64fbdd35079c8c6d454e4c90993fd31b9f5ee785990253d43afc4f5b45a7c6ad18fed742d7fabbcef30f5c138174e02312157420dbc09217f677a7274e6c464c03403a399d0d01a5be695b5dbdef584bfc7f4c25279239620e068971f4b66150c6eb1f1b4b83e6e4cd524c6ee246f1277c1cbcaa6d59dcd9c1f9c289116b6293380466c7c121bb9d7ca1255a0b74aab51b4b6b98d95718772edc4b66df230cf27cd8c76e8a9c79c7251ed0d7959273702fba8deafdb8d6f704a22845d52b267c8cb7af746993cf3e07037587a87f648b7bce16f03d7e654f8a460aa99e87c89b681cce5102e843efd6aa0932158c4c15caf473f6ab604368a935dde63b3610a2a95dbe9b0484a450993843bb5f61e5fa49b5272807974022aff1cb7aacebfb8001d060e63ca2b1bd0b65fde08021ff3ac05f031f931c6b28a18beff2e2ff1d80ebde8a89c2e759b59b16aa29d1704100512107ddd60951242f88a449f6e00a7c698db044d75a66e9e7c327496013d29437f546b1005b218d86a8c23ad15710845d8fdf8c58c1353e504392d2dc27bf0b01cb341cf796341246e73d52ab48ca9120a674e5bd744ce270748479da7751c6e57bfde197854cfd53a509be888215bb7cf62337076972b98d6602d0d97ddd8c6c68c6e28e847e426f4c973d98d7b6e80f7ece8c8047844118035f5bb66e64a1c9bfc12e498614a25bfe7ef57b5c2802d6ea379be12fb8d8b65b2addb203da7642d010fbcbf263e9b56e8c8cf0c8977d0d36063e980af441351ab28f5904c2cd709b2b124f7ff3b3424768bd3b7728e9d9ae16345367b6ec0abcfa5a158f451165e0a26eab077dcf7a10b3bf0b992c68df488729261b6827e1af27cffa3cd778b274b2790564e375e1576df15fe6af84cef4a39a777bab280b7c269a07472182eb5994e04d961b7dd3410dd297165fbeee710b8515b9be221fd84a3ecd7c0cbefd2e2efd6ab2c8d5c76a3ad72fcc61d650bd341a3ddafa3144392a93c5d64b79da7025fa9fd7bfcc0a0c5b1ce719dafe98328ea67a17a7fea3cae770ca55f4f5e62649f0c27d96c779dfd1e41fe75210b0ef4c965ee41eba394cca7ff6e9248d4f0113f3f26346151abda9b25d580173d5c8ca65d5dc189b9af8eec990ee73a7581ce85202b03a7dd717e768fbd08904c6ddb7520a9c033ef4d1d8c59b57cac730b11fb569ea1d5c96f4245edb5770145996a1b2cc2ced4e0be4232e0e71da6cc47b6a721a9c05b52992cc4499448b19a3be6ea189ce492224d9c4ddfbe4a3493d2c7d81c70392b9b5b4a7fe62de1970f58b0c313805a99a06120c859ba777ccafa6c502c7fcd14e5c8439e79e69c7e0ccbc633a2b9ace9ed2705f9fc4d764b9f288d483f1d6c126775d4e83d3bf42872c1a18850086bfe88bc6829397c5a18f6f94b400daf32a5e91bfb35871369428cfd0f41042844c4c74d93d2cd82d0b399319f61257ce6ae17f7f64035c1fdd6e64fc36986517d17dcc385f08d9b7060e640d1ace7c185ef5f7e4095a1ebcdb4a88bfc52bd03585f4886357803f8809fbebb0823614309e7727f919f8ede6fe71e2fc72a2edc318478c257e7b71aa30b77d5961525cfb394f09d53078e0f409e41323989341e4ef6f78d81d50810da0be90afb46c5b175144a258fd60142b989397a2377190445e2fddc625ea7972428f2a8647aa9643224838a04abdb4f33919fbe6f3374052bdb8f3ad1ad9df075e3272bf669036c2dadaec9cc27878db1c386092127b4bfab702e7beffdf4713dcaf86b1559b9dd965054859d6e59f0b3094006c9f509c15d17a9e112b3dfd86c614f412bd88f71107cc9f3ffd4e4753c7a0b6efc82901397a79a8a073e0c198b4547107b5cff20e8d613ba848c6ccab1d251e14980e98182eb26ffebedfb088e52db4e7f01ae20e8aff68039e37086058dc88bbe3bee5ce9933137c0a180aeeee3f7c6b10f2aa2182988d6975a1cd85c83cda152ae75ed2f064482124529ab01acc80272f410dc53237707137d23ef52c94f10a7cfca85f765993b454cb5d6becb30fdfb3e27eb87f6544ac348b0736bb22ec92c1148891cf259630243f168f32b8100e40bffad68805bf5abffae16e36b23f2d6e415a6888b9257ff0b41d69146d33895e3f3d35b982caf0f70bca3754770606f8ca7abc6c3c782f321d00ef2d562ebbd6a47dedc40cc03d5581772bac98a18d9806bc2a4ba4d71aa743b7a28685de80897ee94196b8377b37164d1407a57edc32b9320342e1c551c328535f408da12b6ac06e2a9e4f2ecc9844b53071a310ef00df5563027e0c54675859a4b7e4569579a767271655f4e554a7755337a1be6c2cb4aaf208ea68ccd31fd7fc53afa217ad56400e0a4fe784703165be980ae38b3b564a21b0ec419b76cea7cd211d7af26a7bd088d3709ec247a52292646cca1080065d87c460eda267681072e8c6de1a8ad45f7bc171d33e937006255412bfc892dfc55ed7979747103d53dcc80bcc08a80738118f1d047c7d54a4a71fcaf3858157f908df3628f9e98f5582fd9a8e518b37dce526eb23ef736b85c4bc9a16aebf38c4b950f59b8e501ca36495328cb9eb622218bce9064a35e3edf53a2e812a7201ea2b605e060e4c43690b63d3c67929274e84f85adb64554380cc274429cc3c218e7e782adab5e836a081c731a7716aa02507b0c37b65846f2dc926850f65a80a9f77b89eb320c5fbeddf84bd2f57f4c89933001a567529d300101cef1ccbff4ddf7f5d9f0dd99a72be3cf34cc68fb9b04fed3299507966245fdcf8cffac082692b868cbdfaeaea9278fcf43a22a4d6c0f8250f0221aedc1324d071528f9f602b7403ab513e1b89a4ff01677199ad1b9d4081513285baeaa59a83a2d4f2c2a14530c38c3d8589c8fcd3cbc716f890391f5696e1ad6f6f76dd2b2fe251e51e3877555c53f7f35173798b98540c210efee7d5f46dac5835290d95a93a88493aa32aab228bf4571c01207d3b42b0002409a454d404b4d8395bd55416a3b2c3bf16d64f6b5b6d0f7b079df2267614dd6847fc2f3271b4409233c37b84161c9fbf7520cd14e7019f92120bd87a928a074156e91a992eba9fc9436e8f7f6a5894f1d19ddad6fa392b2ece2c5e578cbf7da4ea805b6885eb6985b6e3deac39be87f968fabacd1d5aae3b9f512d3a40115d8b8411dbd5825dd6e742f8647e7fc50db3699f1ca41ce9a2ffa202c00c5d1d5180c55f62ba859b1bd6cc0084dc4d9120fe7e468b0ed3361cab8cbd664d366f1fa01c4592339acb2fd1f1afb12eecaa8f4dfbbbe524fe78c09c3693572d32385235876922cf6a808ea8ddfd36498a2de405546200b6144da56fc25d0a3976ae688dbfccaca609c8b4480523e54115199b96a130cba02147c47c0deb43dcc9b9f08b5162bba8642b34980ac6318c2734a56aefbb8d1df3ba5052fb8521d5d27075606c834652331751ef40466b3610a2a95dbe9b0484a450993843bb5f61e5fa49b5272807974022aff1cb7aa46a9911291401471412c002433e2dce3cb37545ffaa176f21fa5b5527897c54d524b53b17ae4876499e187da85f72e44b7107a5beccedcf346736a1ff4126a81f808f0aa32fbe90fb9c9c846917faff3fdd4e236c284b76c02dd33753dc9017742d8fad13bc28fc726775196ec9ab953febf9bde175c5845128361c953fa17f45b1296ddc8ad75522382e2c3947cf7acc538710fcd331c06722c1e8f1916c6842144feeccc1c76fb383fed3754945aa126e81004f6434e014ff63c6fd9d4f795b8abaa3607ba1c354cf2f60b375820f629999e6c3a01b0e3232cd4cab99b3fdf3ec363b4e208c0e9739dd06acb0c7317378f64794b0e38b19e88f91d88422a02c4557b547fa58e95ea9ae9fa746e1904e1ababe1024c59e9e44f2b605539b79e939ff50851d672f9b378e80fb3bd0902213ed5e9c91e7319547e238b4e9d6e4d45a990cfbeac2d35833cc2f58c3626078441576ebc4b478d0ff5423d413b531fc2b4743a7cf593b50b948815f7f3e93a9f4a3f4e3fad8cffe74aff735bd2bfad9e44a3b11e45fb4f6c95350966052511e4c85426222b17a920d201b5d45964e6343b3a2a4672b6707d3aa764be81c694e7374e774ac29718df090cf0bf1f93cae2f191336379ff8df60835dd03b2d84c8975587831e6ba8903f6ebdb2673c296792bd144be2a2aaae9d3f9e29e55330c67616e0da83a00603055d13fe4f2254a21313046bf2e2750a1b65c10728a0ee83cc884375fa107e92eb4d65ca03f068ca22dffefccf594f410b8a9a79f441dee2d5ff268e2d4fe9c4f845c98b5de5dade8bb6e25530b745ce34091f6ce1b4e7f8eb094fa4ae1a6cbd855c342e591ee31253ff5c49122d66adcc1f29e901aed238674137ad547902f3289faf47aac29b65349b1113c0ef8b01901a56ca71e199dfdbdbb22ea755008a87675f610bbf0802fdc1d0a0f744478e0b656490fae2c15747c1682fc242a8bab3eb3d8b026ee96974f95a6e3ef660fd157da1c3eb968c3a9d5cc581157fd934daacb2c451bedec659f73fabaea5cc0625c8ac665fda1f129a4cf48a8bc820de34710261cc922ba8bf4d67a4e8a7f63affb20900cc8b22240400db5d65f94d9ee8a971a35ade94e0cfebe2f8baf64efed6a1aaabcff6b47c1ca3157b1e8330b5ad63d8f60956aec14ed1006c058f53824f12865b96a9e2c897c546324e44f61173e57e1ec87f178bb05745eccb5c47f4217a2697badd7cee808039edfd0c0be1034bc85602a760bffabd14219350bcf7bbade1dcd7c1e88bd1e128030fb29cbfe4a520301848180fd82558bab909522bcdc2efcc4608cdc0ac3af7dca521d9c67128ca68a638549002f47fe10d220e5726590a9fa97242d231277232766dae681122bccad4cdb3fed31a9e6b0528c55de4c54eb97261cdfe446497f703ee2ef9766944c0623327f827a4b3d448fb9df0cf4164e530056e873e018c3f31742e8ddb7df0a956a678cfbefe5a7de0bf7518797c745360fb8de7a73bb26707e5398899e5d7064b98f47c59fc64c8d36b9102d25dffee8ddc98031b8e874715365419f1446798351a02761a314ba741126b8bbb530b718d96c8ede0d05916b6441b554933bbecdebd434219a6bddc42eeac7093d1705f07950b5475f52e91ffd54ce44c9505d4bee9d8cac5766b39f998e3cc6f7f7587660b7f206e0b8ba5dbe4415d2a016ea5c948fa139209582107322612a930cfee2fab6c1ec0cce3ff0191625b6d91da31cbd157afb34938b8b9a3a19fee2e76e1bccd3f30cdc7ee1f39c1f06ad4e5fe1e33cfa280134a777c9abca1c35501d97c4750c1fffc75dfec30093b893e9c610aff4c0baf9558bd2818b41de7d8115ebb6354699070214d3e7b886ea109dc0a3da8db144673e3f8c872afb075c6c4b49707ee9786dec3c38cb9fa6990142c198eb0c27655b24942a0f068268468fe0c9be8f00a051f69a5d66554d5bffec9543e9059be80a285cf71306854100b1af886727117e8f78a5d9d3cd34fd53ad0ef4e7d56f3e4cf726afd9aee4c3d52a49db5942e0dadfdfdddcf7385880e652eedde7cb66c79689ef2915057fd59b9599ef143c8ad3797ec4400afa9226f7d130f51e6fa3384e03bf2b0ad67f7de69d1a7b7d2ebd28477d27b5d166dca1c31c03e1607af8d86a56452b97faad96d3d38904be727578ad6a0ad71db677e7269fa19ef740967697f31cb77bbce91956b0e8faa38758d106788bc636e82fa96ef9aa70f8728d73df53a2e812a7201ea2b605e060e4c43690b63d3c67929274e84f85adb64554384dc4d9120fe7e468b0ed3361cab8cbd664d366f1fa01c4592339acb2fd1f1afb12eecaa8f4dfbbbe524fe78c09c3693572d32385235876922cf6a808ea8ddfd36498a2de405546200b6144da56fc25d0a3976ae688dbfccaca609c8b4480523eb3610a2a95dbe9b0484a450993843bb5f61e5fa49b5272807974022aff1cb7aa524b53b17ae4876499e187da85f72e44b7107a5beccedcf346736a1ff4126a81e499ddd0af115291cb3c914f03a63df4f88e13671b2fe317d6efdcf6c25d1c771b075aaee3a553f0bd5563697c57e78742adb6a71f9a93ae577a8b0286b9dee9a4a6c40f7d9411408707bca05f818590f4edcc9b1ed4c03c8a62b5a70011dc592ff1d80ebde8a89c2e759b59b16aa29d1704100512107ddd60951242f88a449f6e00a7c698db044d75a66e9e7c327496013d29437f546b1005b218d86a8c23ade060fd13d0c2046072aca62e0534e2a89a94c67eea476d5e486166cf318c89beb48ca9120a674e5bd744ce270748479da7751c6e57bfde197854cfd53a509be888215bb7cf62337076972b98d6602d0d97ddd8c6c68c6e28e847e426f4c973d98d7b6e80f7ece8c8047844118035f5bb66e64a1c9bfc12e498614a25bfe7ef57b5c2802d6ea379be12fb8d8b65b2addb203da7642d010fbcbf263e9b56e8c8cf0c8977d0d36063e980af441351ab28f5904c2cd709b2b124f7ff3b3424768bd3b7728e9d9ae16345367b6ec0abcfa5a158f451165e0a26eab077dcf7a10b3bf0b992c68df488729261b6827e1af27cffa3cd778b274b2790564e375e1576df15fe6af84cef4a39a777bab280b7c269a07472182eb5994e04d961b7dd3410dd297165fbeee710b8515b9be221fd84a3ecd7c0cbefd2e2efd6ab2c8d5c76a3ad72fcc61d650bd341a3ddafa3144392a93c5d64b79da7025fa9fd7bfcc0a0c5b1ce719dafe98328ea67a17a7fea3cae770ca55f4f5e62649f0c27d96c779dfd1e4123909be8e258ba6e2e73d8472b5494f22fdf49adff33e57c1e5043345c4a06ebfe75210b0ef4c965ee41eba394cca7ff6e9248d4f0113f3f26346151abda9b25095f49aa268d44fa762d38ca7ef6d6d5137dfbe2df9941b9c9bf0b7e7ddf7e69d580173d5c8ca65d5dc189b9af8eec990ee73a7581ce85202b03a7dd717e768faf1f3fbb648ead66d11f20fabca04cd3a5585c96a8eb110b9beda145aa3b013abd08904c6ddb7520a9c033ef4d1d8c59b57cac730b11fb569ea1d5c96f4245ed8b4d9ab11c15deb22837a21f386e573b6cffaeb17064133128735c075ebad76fe90730fb292d1475cd2eaa0d88932fc2e574a1b60d77bec92c4192d234820081c2bc91d64fbdd35079c8c6d454e4c90993fd31b9f5ee785990253d43afc4f5b45a7c6ad18fed742d7fabbcef30f5c138174e02312157420dbc09217f677a7274e6c464c03403a399d0d01a5be695b5dbdef584bfc7f4c25279239620e068971f4b66150c6eb1f1b4b83e6e4cd524c6ee246f1277c1cbcaa6d59dcd9c1f9c289116b6293380466c7c121bb9d7ca1255a0b74aab51b4b6b98d95718772edc4b66df230cf27cd8c76e8a9c79c7251ed0d7959273702fba8deafdb8d6f704a22845d52b267c8cb7af746993cf3e07037587a87f648b7bce16f03d7e654f8a460aa99e87c89b681cce5102e843efd6aa0932158c4c15caf473f6ab604368a935dde63b5770145996a1b2cc2ced4e0be4232e0e71da6cc47b6a721a9c05b52992cc4499448b19a3be6ea189ce492224d9c4ddfbe4a3493d2c7d81c70392b9b5b4a7fe62de1970f58b0c313805a99a06120c859ba777ccafa6c502c7fcd14e5c8439e79e69c7e0ccbc633a2b9ace9ed2705f9fc4d764b9f288d483f1d6c126775d4e83d3bf42872c1a18850086bfe88bc6829397c5a18f6f94b400daf32a5e91bfb35871369428cfd0f41042844c4c74d93d2cd82d0b399319f61257ce6ae17f7f64035c1fdd6e64fc36986517d17dcc385f08d9b7060e640d1ace7c185ef5f7e4095a1ebcdb4a88bfc52bd03585f4886357803f8809fbebb0823614309e7727f919f8ede6fe71e2fc72a2edc318478c257e7b71aa30b77d5961525cfb394f09d53078e0f409e41323989341e4ef6f78d81d50810da0be90afb46c5b175144a258fd60142b989397a2377190445e2fddc625ea7972428f2a8647aa9643224838a04abdb4f33919fbe6f3374052bdb8f3ad1ad9df075e3272bf669036c2dadaec9cc27878db1c386092127b4bfab702e7beffdf4713dcaf86b1559b9dd965054859d6e59f0b3094006c9f509c15d17a9e112b3dfd86c614f412bd88f71107cc9f3ffd4e4753c7a0b6efc82901397a79a8a073e0c198b4547107b5cff20e8d613ba848c6ccab1d251e14980e98182eb26ffebedfb088e52db4e7f01ae20e8aff68039e37086058dc88bbe3bee5ce9933137c0a180aeeee3f7c6b10f2aa2182988d6975a1cd85c83cda152ae75ed2f064482124529ab01acc80272f410dc53237707137d23ef52c94f10a7cfca85f765993b454cb5d6becb30fdfb3e27eb87f6544ac348b0ae0840cff131305d43846988aa9026eb8da56db61bf0631b6ba2d2c269cc499d736bb22ec92c1148891cf259630243f168f32b8100e40bffad68805bf5abffae16e36b23f2d6e415a6888b9257ff0b41d69146d33895e3f3d35b982caf0f70bca3754770606f8ca7abc6c3c782f321d00ef2d562ebbd6a47dedc40cc03d5581772bac98a18d9806bc2a4ba4d71aa743b7a28685de80897ee94196b8377b37164d1407a57edc32b9320342e1c551c328535f408da12b6ac06e2a9e4f2ecc9844b231f7edcc7352d7734a96eef0b8030f77982678c516876fcb81e25b32d68564c7b433d32baae04ce61c6afbad84895cf2b07bdd34205b000a4300e2bfd4f3f8195da1ae0f9e090c0e9cc8854f017f6105c086e7b149a3f0c1229aa9b3682034495da1ae0f9e090c0e9cc8854f017f6105c086e7b149a3f0c1229aa9b36820344390f841e7dc9cc1779eade1714eefa8e62ef1b55ca790a361f42ce51173924f90e41af7b5577d7426c7dfdcc25307682a911ebf26a6bc8841038e5af68fe84b9e5eb1e6c3d3f202eff3ff229b521434ea1ea2adfcc95137355a5d9fa5cfded26e5eb1e6c3d3f202eff3ff229b521434ea1ea2adfcc95137355a5d9fa5cfded26c113f3b9b586c1e1fcc05b2a3020e727811705806796f66eb683a5943162ac6880bd030b949b7b4b8b80cecf5f5c028ef3c00e22ba901b11e0ed90953afd75e980bd030b949b7b4b8b80cecf5f5c028ef3c00e22ba901b11e0ed90953afd75e99723f6d65783642310dc106b23e44ba0633dfbf7ebb1ea466bfbb43d49cea7b0dce5269115b9461091c4ed9d2360cdc13d4032d90a6de439b6d3bb3a3a1a86f7dce5269115b9461091c4ed9d2360cdc13d4032d90a6de439b6d3bb3a3a1a86f76615a0416d022037964ef93a7351ce6605925adee0dbb5d5b174ed46d1dd2954a57734d8fa9fee67829801711fd55cddda89814f19d8f9660d52de65c527c2e7a57734d8fa9fee67829801711fd55cddda89814f19d8f9660d52de65c527c2e7b64206cbb72c782fa4fe8e7e79a2548a33ea8f7e0225de250dff0601e70c09e3e2e8487cdee62ce7fd513826a4591e0ca6700e2a1ae5c261f3f08bf2c9c5b9ede2e8487cdee62ce7fd513826a4591e0ca6700e2a1ae5c261f3f08bf2c9c5b9ed4c65a832e30dee09026b43462b1b49c5959e104b573f623051dc161986a48c5c0c229671fd47400a9b9e5a40c47f0c1c952b1c67cffb9585a26968a9e34532570c229671fd47400a9b9e5a40c47f0c1c952b1c67cffb9585a26968a9e3453257cb6df26702af1924940ba8be3c8963c7ecccb8d20f175173f0d08d50199038fcb306977c79ed13f249a688a9d07eaa26994e5ee352c8fdcd2537626a4f8abe8eb306977c79ed13f249a688a9d07eaa26994e5ee352c8fdcd2537626a4f8abe8eb5f8cd26650fd5024dee8d832b56805948dc1de9eec58d5dfcc1eb6c35e27e35d7f4b82c197b96110e46dc05fe80e0db5cfb70dbbb5df8c7cf1ef0dbad4ba939d7f4b82c197b96110e46dc05fe80e0db5cfb70dbbb5df8c7cf1ef0dbad4ba939dc80c5a0e0a2ca36e8a6f4913c49c213fd0856a37968b0fde1b6488feb8d53d05ac27d9e50e158fc120ec3b7d9c3aeae3fa79864702624902d3cc09f98a455eb5ac27d9e50e158fc120ec3b7d9c3aeae3fa79864702624902d3cc09f98a455eb57565202aef2ac171f1547bb39d041c6dcf663acb81416708a2d9af1390c05d0d362e1302e3518dbb386485eb9cc46eaf5ce2c169ce39899a3864c58d2e73554d362e1302e3518dbb386485eb9cc46eaf5ce2c169ce39899a3864c58d2e735545873aa655a5d7db29ebcb438622e9231d4613e63e5cc3c3ecc8a69e631238b647299b733ec457dc6d6e45139183b71ac5b88bef9761d2789fd68e6b1f78f40567299b733ec457dc6d6e45139183b71ac5b88bef9761d2789fd68e6b1f78f40562512f465c6ed60ce953064c86d1f8c5758f0bc223f4f9e640c4e669dc7276a9f9a8291f1d458fac0340c55c1cd619db8aba38a821abc57e727ad9b196383d8c19a8291f1d458fac0340c55c1cd619db8aba38a821abc57e727ad9b196383d8c146bbfa66ecf96074cdae591f81a707f1a027de21b678736ea65e4730b40c5733aa97df09b14f2229f2027d0eb62c1308af4996076993657ea6089382897e3d58aa97df09b14f2229f2027d0eb62c1308af4996076993657ea6089382897e3d58a1f3f27763bf22972a82dde3ea92851473d5cfe4703dec2ba3224dcc76c77583a18cce654fb7aab0b1cc7cfa22643821cbbb8802e441823eb13e786db7326997a18cce654fb7aab0b1cc7cfa22643821cbbb8802e441823eb13e786db7326997c223f524ee54b444dbcc1727c9c5cf538c69f6dfb70697547126d736efb016809e8d77cdba212932a690eb3d5603beb48e6f5c09ffdd2df9168bd5ed5f997bd99e8d77cdba212932a690eb3d5603beb48e6f5c09ffdd2df9168bd5ed5f997bd97e6323f4ea77fb392cbd0fd4b3156741df6c31e297dadffb3e7cf0a6cdab6e3ab92ac69b945fe43dc8a2a7fda58c25cbc9aeab13d8e48d26c1f72cb4e4e60a97b92ac69b945fe43dc8a2a7fda58c25cbc9aeab13d8e48d26c1f72cb4e4e60a97c07ed1389104308b973656fc9b6e1b990df13ad0f07bf8a946bcfce30b64fa11a78ac05e2ceab1a272c5d69b8c987dd35dea87397dd42e4670ca7fddf5d25fdda78ac05e2ceab1a272c5d69b8c987dd35dea87397dd42e4670ca7fddf5d25fdde40b43116f70ce1d2e246c3494768935d8f97565f2d8ad662dc7bfd8f2027af3fc1283d44c5835532c9a940cf7ecfb661b32990d0f0cbf31d683fe03f8fd65d2fc1283d44c5835532c9a940cf7ecfb661b32990d0f0cbf31d683fe03f8fd65d2b8ab5512124d358f045e2058f2367ff958d87e1db391efee06c62bc9fbf69ddedbea0661f2b9bd0792bce5e4593fc8a8bf7a6dab4887c6ef008e280bda7b15dadbea0661f2b9bd0792bce5e4593fc8a8bf7a6dab4887c6ef008e280bda7b15daaa2873f0437a260e186d61508c1fc7330744e852e278b9718149b54a5431ea307e8efcb5b8cc5eee79fc4d72a5eae11f7ef4f46a05c507e2f0fad8ab2cfa1ffd7e8efcb5b8cc5eee79fc4d72a5eae11f7ef4f46a05c507e2f0fad8ab2cfa1ffd687bc187ff4cbf995c85379ec12cd4844f31d2e5e46f8fcb93a451c2abb19fdda08b055441e8d4006c6228f5a52a5abea66763ff9db625d4183defeb46103075a08b055441e8d4006c6228f5a52a5abea66763ff9db625d4183defeb46103075c990e11f9c4da2c1a765ca1f40efbd2009e8d58219fde29b9746c72f10a120335809fe8f431e5c935e997137f8e74ba60da1e43a428c45826437a8ea231b29945809fe8f431e5c935e997137f8e74ba60da1e43a428c45826437a8ea231b29942db8c37d346bca9ab41f1dc34a8f8d75f81c30e707311c4c36b9531e2ebcb79e2c834c991f58d8c1415940e5b8e65aa7c014e5e869290625988bb424b74b30b72c834c991f58d8c1415940e5b8e65aa7c014e5e869290625988bb424b74b30b74d2d8867165fcadc4f55c0e9a7da994e0c11ade0ccf759ddd628dd26f4abf6038288549377d37e8eb2a01b4c828f513354b1d58c305c8b681b356a57a66562848288549377d37e8eb2a01b4c828f513354b1d58c305c8b681b356a57a6656284d81568b7aff9fc2eddaadb54c10da5325f5e871e2e461ce4f94a90d9e1398d2e4beb3172185bae9872a61bbe8bd3416237cafbccbfb8031312100ad88cefc3764beb3172185bae9872a61bbe8bd3416237cafbccbfb8031312100ad88cefc3765cc9850ec14be8662b9826b5285d46fb96ba57451953caf51b4c614f3e1ebfe1fcad2fecb304a36e242478d4a18d507127e51ad80bbb7a5bd87d5bc7f2beb77afcad2fecb304a36e242478d4a18d507127e51ad80bbb7a5bd87d5bc7f2beb77aa7fa867a4f09648b73966ada37487ad7ae68466d3052cbf8a19c8692130bd177eb4a7800f89e056dd2bf738db4f11495db94a62d6f3e31c707009576bae7a8beeb4a7800f89e056dd2bf738db4f11495db94a62d6f3e31c707009576bae7a8be2b2a4a3becc24189b8700ff642966db65c4d96b7f7a2398c4205bb841142639280b6d2ad51f7ce4e54e57bea7051c57961a676819e191148a855459ab8bf70e480b6d2ad51f7ce4e54e57bea7051c57961a676819e191148a855459ab8bf70e471d2dbfae3d0522109b1de203a84f46ccd13b2531a68ef415618f1172cd384fba8afb5bf285a7f0594dba9706780411681c0b02a6c0c03502843f0c7bff36dd8a8afb5bf285a7f0594dba9706780411681c0b02a6c0c03502843f0c7bff36dd8ced778f318fc483f8e0f19435dec33e5fa2abdf26b1d088916f072f6586478ae379e27d8d36faacbbfcbab48c2428316543a55d2efc83f1b85a9edf6709287d2379e27d8d36faacbbfcbab48c2428316543a55d2efc83f1b85a9edf6709287d2c139e72085865acc9534063fab58f6b4706cc7e505500a7e7dbbe1518f0b055e5ca781a7416d7f86c9ce425151694a9477b44ac6a8b1085e4a9beadb9857eb7d5ca781a7416d7f86c9ce425151694a9477b44ac6a8b1085e4a9beadb9857eb7df0b7de8d4054093df0f6c6df17839af8b96888a7af170429dfa7136fe88ef31712bd181491250ad64d89d1fbc58768314d1ab29dfc433f0b57e4021d9b242c7812bd181491250ad64d89d1fbc58768314d1ab29dfc433f0b57e4021d9b242c7870a7aacd034d0621ac775cd8c3609340c8246a446f379f9938aa7998563a1c878e024b472935fe4a9860381626e9ca93f0810f90874f4c2a7e9c74c2feadd03b8e024b472935fe4a9860381626e9ca93f0810f90874f4c2a7e9c74c2feadd03bbe421dafccdb9ca1f6bbcafc1003a3bb03c18a8d3acb4c5c521b6cf029bd6887457ecb9eb5a12b46ff507b4e9c4491d8e7dd81f6798a6031364cd95cff518f23457ecb9eb5a12b46ff507b4e9c4491d8e7dd81f6798a6031364cd95cff518f2372e17cc9f67c15301481dd62a6d25c1d67964521eed8513b94e5ad8edc3540903595e6609d812e37671badda10572d8f9049527f4d3bb24e68e56d232553fae43595e6609d812e37671badda10572d8f9049527f4d3bb24e68e56d232553fae4df8a20cc2c838239772f1d26d193d049b7ca9df242abf5784506b87b402f9c685ffe26bb71d23cc8680858da364cf62b6664ec98981dc65256573e538ce016965ffe26bb71d23cc8680858da364cf62b6664ec98981dc65256573e538ce0169617514e84e588a7f1bd8a5fcc1b7537b739a08313a338161f5b89006e11d16bc35393d5f76150b72f128b229732243a488b968b8d3f8352c8dae9bd5ac4297c4b5393d5f76150b72f128b229732243a488b968b8d3f8352c8dae9bd5ac4297c4ba3fb787d959ec31f56641bfd3be1baf47898a63124e3ccf04b9720c6b11ad8ec40448696d7b935bf370b0da10a5a82f1538c46b664bd69829be442f29a1a158c40448696d7b935bf370b0da10a5a82f1538c46b664bd69829be442f29a1a158cc7f2abaea187fbe7e6cb4b72f9cdf73441f01cd080ad4959f544120d34d16df721863aaa32f18a64e999cfd5281ce222841e18a8ebd7e59ce3b7bbd9f8255de121863aaa32f18a64e999cfd5281ce222841e18a8ebd7e59ce3b7bbd9f8255de1d57d328eea1a18aa424ecc55b01664f6f1d4e431e9c8a2436312c7e1c44e8dc40a26751264c2e4784e538765073cae7607610e2d83642218efec343ab16a76c20a26751264c2e4784e538765073cae7607610e2d83642218efec343ab16a76c22de861811db84a3427e0cde79d3df56b74ff0f1501b98028d887b3407f4d3179defdf3c711ae660192587db1ae80e4c69528f5899acabb9c40c5248f49a05bebdefdf3c711ae660192587db1ae80e4c69528f5899acabb9c40c5248f49a05beb888310913a62139f9fec8f436d911fb2526b7c988e1a25842e58bc091e31011c3630941a524141057d719017c81a0108cd30e4203619d87f51070dbe1be244ed3630941a524141057d719017c81a0108cd30e4203619d87f51070dbe1be244ed006528c932a3ebea0d86bd9d294d17314aac06d0e7e1432d888c602967e19259a95f5577622e25fc641016f519353f268eca3e0f6849c6205b118e892c67dc01a95f5577622e25fc641016f519353f268eca3e0f6849c6205b118e892c67dc019330ef179fddaca7ef2eb4dd4eddffd1f6c07496365b5143eb90fd0879df7f336c2b189e176918c767f6ea079470f8d395e75947ae2c2a8d34096a12efc6dd826c2b189e176918c767f6ea079470f8d395e75947ae2c2a8d34096a12efc6dd8272ed3c92d1d79936f8916ce450409c2ddb074b781e6eca6770cae89107c071f52973dafa435ac55a524a7c80ebc5fc4934b8364cb834804d1e48892702cccd862973dafa435ac55a524a7c80ebc5fc4934b8364cb834804d1e48892702cccd86ad66985514917fc3b3ffd0f66723edaf7f9a57e86e680fdf90329745c5d72dac571d90b3abb51e04a6d4fe95efba25f1c4dbf6b50e681e6e83db8454508e9a1c571d90b3abb51e04a6d4fe95efba25f1c4dbf6b50e681e6e83db8454508e9a1c37485aed94225572a9f1df13909aa484b7b2599d5f98a857b74b1be80f306450eadb1b943d8fcdffe13e3d06cc78e894428a7413786d493ee43da7ac0c1ae067eadb1b943d8fcdffe13e3d06cc78e894428a7413786d493ee43da7ac0c1ae06719745579d04cb9b4492ddb26ee296ffe3b19d60cb2a0d79f3d86623bab69e15a8d008b582d387349d10b875e67c423dc75e5477ac02f048906069ab50e8d3b158d008b582d387349d10b875e67c423dc75e5477ac02f048906069ab50e8d3b152146b78afc577ae08f9567d0766cbbbdd1b27ee749fbe56cbe30c8e0be053aa0b42bb32fa897d674100798eff8474630f919ded13e4703c44310ddab6aaf7802b42bb32fa897d674100798eff8474630f919ded13e4703c44310ddab6aaf7802bbfd75e79afac055a903302a0deedf161cfc3cade9346c88f8a4ece154a4b5e9f46563d13210099cc1fca5b99b0b3f728660058430cf4bd5bff9dd669a36391ff46563d13210099cc1fca5b99b0b3f728660058430cf4bd5bff9dd669a36391fc7f12917704c79a316e63ae034d99182606dc210951721fc3a02097e088f25a9aa6ddc3c75d67307331ef661a013fef33ea1a5db51c9237437601344c09494b3aa6ddc3c75d67307331ef661a013fef33ea1a5db51c9237437601344c09494b36b848c2edc395bf102a05b43c3d8f9bb2020a5ebbf7417488bc257c2e68c47efe49be5af15a93cf145125cd3179ca2f55eb7c4517c53478e93e091859c6b068ee49be5af15a93cf145125cd3179ca2f55eb7c4517c53478e93e091859c6b068e5503a7cbf879a198e4f053f252d05d034be782c328e6d14c74e56a092113bc64010ce9eae02bfc62ab3909c47b801ae3cd70a59995ca2349d70525fb9f2948b4010ce9eae02bfc62ab3909c47b801ae3cd70a59995ca2349d70525fb9f2948b4261c36e221b091a29080ec7f99846b51edb6139332ab0c446f9586643dfe318058831aed84c8e3d74ee2a86052a48b916442ebd8e80eec044cb22b53b993021958831aed84c8e3d74ee2a86052a48b916442ebd8e80eec044cb22b53b9930219d7ed90387c78ad6670de24a3384743b9b5245529d1e8a88579779632220ae585a33bfc5e8a8d9606586957b0f1be37d25e6f4dc3c2e4ef94aa818b03f8a79547a33bfc5e8a8d9606586957b0f1be37d25e6f4dc3c2e4ef94aa818b03f8a79547ffafa387ac9bae133d55609070646882fdb30a4703557868d98ead5d47b27902b1b5bcbec1f16ce4f45a3983efbfad22f3c599bc71d72e36c729fbc9db5022f1b1b5bcbec1f16ce4f45a3983efbfad22f3c599bc71d72e36c729fbc9db5022f112b668435d08afc0624832793cc600567d302e71c66d51de9c38369991bd0b943254c1ab006f3f441a4481abb3d4cf029f98420ef025a935d2489eb74ec9c99b3254c1ab006f3f441a4481abb3d4cf029f98420ef025a935d2489eb74ec9c99bc5686a8ad0a4ff8174084e6f63fa1802564f840f6b9ea1c0c8df4daf4fe75e90bfc1d00ca16449da46f245d2075d79c3577f0c0b17bebfd271e894445847b4bcbfc1d00ca16449da46f245d2075d79c3577f0c0b17bebfd271e894445847b4bcb3a104adfc982f8ab9e771d5681e753be507723f8503cbf4fd63dead99071863353ffa2f64126f24aed1bee33c5c899ec892743d596b58258aac435a497e188a353ffa2f64126f24aed1bee33c5c899ec892743d596b58258aac435a497e188a78f8f319c12f00b917bc1a2afd6a8f05f6f224fed29941c1e726e9ee60c44136c6fe03f2de6c17c62c4017c2ab8bdf072b849bd9eb2ad0038f24533ede2ff3bdc6fe03f2de6c17c62c4017c2ab8bdf072b849bd9eb2ad0038f24533ede2ff3bdc9bff30f7e5c552b67eceef9d0f381e5196fb98f0782b110ddb6d3338f54460055f4796c1a51b07723621271f5ab73f3b7846574d127d10deeedcafea2cf548655f4796c1a51b07723621271f5ab73f3b7846574d127d10deeedcafea2cf548647ddd0c05bf48d244878bd5ad00d5a1c58a4ae3ffa5bc61143a9c53ce91c14696e7a5143c8b20ff2da0c3a42be79d39b982e0fe8b165e4ffb55f0b03809bbd956e7a5143c8b20ff2da0c3a42be79d39b982e0fe8b165e4ffb55f0b03809bbd951078ebf666ef047229ea7498bf8f63094c51e481d146c3549bd366f89020cda67e99e362ce68957b11781f6473d1503903f0be540a8ec769765f6f01644f47647e99e362ce68957b11781f6473d1503903f0be540a8ec769765f6f01644f4764e37b18098905f3f68ac09d79abd4592a563400bcb44dbc6c4b33b9f5243058f50076d780087b00c3ac6530648929bf8822c14e905fea5481d12ff0c8df5ca2e40076d780087b00c3ac6530648929bf8822c14e905fea5481d12ff0c8df5ca2e484c3f3a82c144e957b395aaf54a1f50cde6b5667abb5c2d23d1dacad65c230d219addcf19f515d5d1606d60ec0881128bace4f349f043b2a334f096258388eaf19addcf19f515d5d1606d60ec0881128bace4f349f043b2a334f096258388eaf2e71386fa3956420dfc2fdbe26c4d536dcaa85cb76f1dc151a08dd85a318dd40c3116ee11e7e3361b0b50a98f22ddc372083dff37a5308757b7b7170b3ca7de5c3116ee11e7e3361b0b50a98f22ddc372083dff37a5308757b7b7170b3ca7de540782dc60313b93a4171677d620a4ea799159648c2fb2fc58587c6c1214c0e0abf9b97575dd740405b25928c9739bd250c17815ae3ce069638a603de6bc75c15bf9b97575dd740405b25928c9739bd250c17815ae3ce069638a603de6bc75c156912628db182b9bcaf747c6a4fd5b4f9cf48b18955f2a659cd4e3cc0542dd0d881520f3d230c1aca83c9c0279223e6cd5ce56eb67a3303893c8376d11812634781520f3d230c1aca83c9c0279223e6cd5ce56eb67a3303893c8376d118126347b6516ba23b3def86ffe12b38e7a60a991c731cda261d6ebda45697f2c5769f3d899d131f3bcaad3f3c7f9b12687a93ebc30efe2fa6572d44a438e199e8c8fa23899d131f3bcaad3f3c7f9b12687a93ebc30efe2fa6572d44a438e199e8c8fa236bb3d65967e673536ea1e34a50f422b89490e10bbbcf799aa847d952d9f7979d8f1859f7aa1543bfc650fe0d162e11388175a354c3d2a161311816dce7f1dd338f1859f7aa1543bfc650fe0d162e11388175a354c3d2a161311816dce7f1dd333d0f6aafcae0bbc7ae8e93223c0e1bba0c5dbc7f62149bcde85cbb6c5fd38e721fce3f6579e59c65a43ab4636bcfa59aec4ba296761677462f8896384187aa111fce3f6579e59c65a43ab4636bcfa59aec4ba296761677462f8896384187aa1182890312ab0e313399583e6e0ea9e05164e2a08613eb23b93a38feca24b71791e8dc47b1bbd30dbe5fd70794847977000bccfd1dc92c30b43466a8187c24cfb8e8dc47b1bbd30dbe5fd70794847977000bccfd1dc92c30b43466a8187c24cfb8195005c8f296fe83cc10604bc9cd1f69cfc33fb9399e2692ada828766c6e8473337899abbc38df2a09d0113df10e5029fd60aa76fb8cc85d44009b08401ffb8c337899abbc38df2a09d0113df10e5029fd60aa76fb8cc85d44009b08401ffb8c82f034f2ae9f6ca23e9bb881439d559371317cb113d95588d464cfd98de53294d760eb30a4c1df0d7ece71d9d7d043f793b162bb377ea9fc1f38b43fe832c050d760eb30a4c1df0d7ece71d9d7d043f793b162bb377ea9fc1f38b43fe832c050df25067cbc254edbda9e8f88a7f243ab25a83d5825501a338a225d14e7707bd81afeb8322b1ac50cc34204981ad69b249dfee8340e7396539c666ac32f890be71afeb8322b1ac50cc34204981ad69b249dfee8340e7396539c666ac32f890be743651f5374f10214a3c4dcbad3ea78cb67d1684d6f84b58b6d52f0c214b87e46a02360e323503a712ba8fd519bfbb3b2af258f631c75206e42a2fc2fa10db83fa02360e323503a712ba8fd519bfbb3b2af258f631c75206e42a2fc2fa10db83f26abf226182547a2805528b04c98d4e3d6961a58daffceed9a43c50d34ce2e9fb95764cd777dc727975fb6d91d922effdb9af4ede6304aacc69d10f1992323cdb95764cd777dc727975fb6d91d922effdb9af4ede6304aacc69d10f1992323cd4c4ad078b4985beb9a8253602694913edfb32d8eddaa06f2dd081d42df4fff023b329227e3505ee257fb86a48275523c72c2d357ec862918f30501af063463d23b329227e3505ee257fb86a48275523c72c2d357ec862918f30501af063463d284719e149c632317b0dd5fc8ece60b747b8012be6a1168ba9c75abd3206358de24912b8f125e8a16eb258501f3c91ffef0357b1d2c1266fb51f4ea31584163e524912b8f125e8a16eb258501f3c91ffef0357b1d2c1266fb51f4ea31584163e5e806f6921fb0cdf5cea11b465354db236cf066bf8dc658894d5b99ea233e83dae7bf9b0fe0c67fef44f5f7da8ae5d2226737bfa9d9884d820bc5e84744a8b94ae7bf9b0fe0c67fef44f5f7da8ae5d2226737bfa9d9884d820bc5e84744a8b94a94baf11381e2da6ba406a6f159b9d2da921c28e1dba06599f846b8eda6c7a1ac3cb0c4f7c62d87325bb619e7b6a0f830275530e3c3a0e9f3d73d636de6baa2693cb0c4f7c62d87325bb619e7b6a0f830275530e3c3a0e9f3d73d636de6baa269f81cdc92f4283fc02925f6eda34e3d28fc9126ab5b577ddc90c0c0be9186f4678eae8a8bbf54a7fbdf1d0255382db2ba769946054092071b42d1cf6cf9f7b2af8eae8a8bbf54a7fbdf1d0255382db2ba769946054092071b42d1cf6cf9f7b2af268f5f073604578d67d23e453c3e865356d4a95be341d2b66532cef3b19aee40672983760573460fa91c44208d7f852ac87efaca25a9f6bc0ce018ebb7d1b3c0672983760573460fa91c44208d7f852ac87efaca25a9f6bc0ce018ebb7d1b3c0ed3f5d9b1d40789f7db7d58a4150a517ffa20b9e32cac5a86e4c9287dd117951aef4a7e8b1354c6b19a73f89df5305085d6cd630d171139946d28001f00b2234aef4a7e8b1354c6b19a73f89df5305085d6cd630d171139946d28001f00b2234c52704611e3412aebdf2a80a60c026815e3b0a75cef0d8c147fd22254567e0751df41534a3dc3d9c661a2efdb74b482f5e48c3460e9dd49f6e99d5b4ce3c05e01df41534a3dc3d9c661a2efdb74b482f5e48c3460e9dd49f6e99d5b4ce3c05e0727584ab741b84e959d4e05113a8a8d67783e1c81bb340e96e05b0e39d48f74af7900fc2810dbacabfed69e4009bd1027bbab432f39d389d4522e756c9b4aa66f7900fc2810dbacabfed69e4009bd1027bbab432f39d389d4522e756c9b4aa669d1c36043445a53aeca2b3356f74440c5675151a57647a393c33c6f25e6fa203dec0745e09c9a841b6df6e9d1cfef4eae7f3e3a29278255b6ebdacfb5dc5e960dec0745e09c9a841b6df6e9d1cfef4eae7f3e3a29278255b6ebdacfb5dc5e960500f75ff9f6fc995cd8575e7356dabdd9c2eabf42d1dccde2da47ecc2b552596270dfd7d4a0f703bbdca589a1a7fcf757401182aba6faa86b5ad7d43c125d31a270dfd7d4a0f703bbdca589a1a7fcf757401182aba6faa86b5ad7d43c125d31a7fcaec980fa92586c66995a818b983f1bff9ea1d24686be6f115b228933593289557ba0dfe13467adbd112bdd9f378e23da0d94525f4f4a00d9061a03fde122a9557ba0dfe13467adbd112bdd9f378e23da0d94525f4f4a00d9061a03fde122a4400810dbe31f102066f0ef60eaf18df6a967ee43a9a55e5cea9d3e3b93d09eac32a0484034fb6f3999de6f8b8b66afcb066dfe5977910a71565870bd8cb4dc0c32a0484034fb6f3999de6f8b8b66afcb066dfe5977910a71565870bd8cb4dc000f71c30130e1cf2c110d69e805c5d2f78151a728a6ce9908786826bcd3891112ef24460276ae43f20e42d12ddfd6234ea1c36d19f99f630bbfd485cdc0fa30a2ef24460276ae43f20e42d12ddfd6234ea1c36d19f99f630bbfd485cdc0fa30ahookrunnerhookrunnerrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootpagure-5.13.3-2.el7.src.rpmconfig(pagure)pagure @@ @      /bin/sh/bin/sh/bin/sh/bin/sh/usr/bin/python2config(pagure)git-coregitolite3opensshpython(abi)python-alembicpython-arrowpython-bcryptpython-binaryornotpython-bleachpython-blinkerpython-celerypython-chardetpython-cryptographypython-docutilspython-enum34python-fedora-flaskpython-flaskpython-flask-wtfpython-markdownpython-munchpython-openidpython-openid-clapython-openid-teamspython-pillowpython-psutilpython-pygit2python-redispython-requestspython-sixpython-sqlalchemypython-straight-pluginpython-whitenoisepython-wtformsrpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PartialHardlinkSets)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)5.13.3-2.el77.42.70.26.00.83.0.4-14.6.0-14.0.4-14.0-15.2-14.11.3aB@aB@aB@`]``lM@`>(`%@``@___l@_2@_)M_ @^K^?@^J^^^^2^2^2^2^2^@^{G^1s]]]]Z@]P@]P@]9\@\\o@\T4\3?@\3?@\@[G[;@[@[@[i@[i@[[@[\Z[W[H@Z@Z|;Z;@ZOYJY@YyYu@Yu@XۡXXXXa@W.@W@W@WW@W{@WN@WM|WH6W5W@W@VՄ@V͛@VIV=@VHV@Vn@V\:@V\:@VO @VEV@V@V@VVf@Vf@Vf@UU@UĝUU@UUUUUUzUq@Uq@Uq@UmUhTUeU_@U\w@U[%U[%US - 5.13.3-2Neal Gompa - 5.13.3-1Neal Gompa - 5.13.2-6Fedora Release Engineering - 5.13.2-5Python Maint - 5.13.2-4Pierre-Yves Chibon - 5.13.2-3Zbigniew Jędrzejewski-Szmek - 5.13.2-2Neal Gompa - 5.13.2-1Neal Gompa - 5.13.1-1Fedora Release Engineering - 5.12-3Neal Gompa - 5.12-2Neal Gompa - 5.12-1Neal Gompa - 5.11.3-2Neal Gompa - 5.11.3-1Neal Gompa - 5.11.2-1Fedora Release Engineering - 5.10.0-12Neal Gompa - 5.10.0-11Neal Gompa - 5.10.0-10Neal Gompa - 5.10.0-9Miro Hrončok - 5.10.0-8Neal Gompa - 5.10.0-7Neal Gompa - 5.10.0-6Neal Gompa - 5.10.0-5Neal Gompa - 5.10.0-4Neal Gompa - 5.10.0-3Neal Gompa - 5.10.0-2Neal Gompa - 5.10.0-1Neal Gompa - 5.9.1-1Neal Gompa - 5.9.0-1Fedora Release Engineering - 5.8.1-2Neal Gompa - 5.8.1-1Neal Gompa - 5.8-1Miro Hrončok - 5.7.4-4Miro Hrončok - 5.7.4-3Neal Gompa - 5.7.4-2Neal Gompa - 5.7.4-1Fedora Release Engineering - 5.5-2Neal Gompa - 5.5-1Neal Gompa - 5.4-1Neal Gompa - 5.3-1Fedora Release Engineering - 5.2-3Neal Gompa - 5.2-2Neal Gompa - 5.2-1Neal Gompa - 5.1.4-2Neal Gompa - 5.1.4-1Neal Gompa - 5.1.3-1Neal Gompa - 5.1.1-1Neal Gompa - 5.1-1Neal Gompa - 5.0.1-2Neal Gompa - 5.0.1-1Neal Gompa - 5.0-1Neal Gompa - 4.93.0-1Igor Gnatenko - 4.0.4-2Neal Gompa - 4.0.4-1Fedora Release Engineering - 3.13.2-4Iryna Shcherbina - 3.13.2-3Fedora Release Engineering - 3.13.2-2Pierre-Yves Chibon - 3.13.2-1Pierre-Yves Chibon - 3.11.1-1Pierre-Yves Chibon - 3.5-1Gwyn Ciesla - 3.3.1-3Fedora Release Engineering - 3.3.1-2Pierre-Yves Chibon - 3.3.1-1Pierre-Yves Chibon - 3.3-1Pierre-Yves Chibon - 2.14.1-1Pierre-Yves Chibon - 2.13.1-1Fedora Release Engineering - 2.11-2Pierre-Yves Chibon - 2.11-1Pierre-Yves Chibon - 2.10.1-1Bruno Wolff III - 2.3.4-1Fedora Release Engineering - 2.3.3-2Bruno Wolff III - 2.3.3-1Bruno Wolff III - 2.3.2-1Pierre-Yves Chibon - 2.3-1Bruno Wolff III - 2.2.2-1Bruno Wolff III - 2.2.1-1Bruno Wolff III - 2.2-1Bruno Wolff III - 2.1.1-1Pierre-Yves Chibon - 2.1-1Pierre-Yves Chibon - 2.0.1-1Pierre-Yves Chibon - 2.0-1Pierre-Yves Chibon - 1.2-1Pierre-Yves Chibon - 1.1.1-1Pierre-Yves Chibon - 1.1-1Pierre-Yves Chibon - 1.0.2-1Pierre-Yves Chibon - 1.0.1-1Pierre-Yves Chibon - 1.0-1Pierre-Yves Chibon - 0.1.36-1Pierre-Yves Chibon - 0.1.35-1Pierre-Yves Chibon - 0.1.34-1Pierre-Yves Chibon - 0.1.33-1Pierre-Yves Chibon - 0.1.32-1Pierre-Yves Chibon - 0.1.31-1Pierre-Yves Chibon - 0.1.30-1Pierre-Yves Chibon - 0.1.29-1Pierre-Yves Chibon - 0.1.28-1Pierre-Yves Chibon - 0.1.27-1Pierre-Yves Chibon - 0.1.26-1Pierre-Yves Chibon - 0.1.25-1Pierre-Yves Chibon - 0.1.24-1Pierre-Yves Chibon - 0.1.23-1Pierre-Yves Chibon - 0.1.22-1Pierre-Yves Chibon - 0.1.21-1Pierre-Yves Chibon - 0.1.20-1Pierre-Yves Chibon - 0.1.19-1Pierre-Yves Chibon - 0.1.18-1Pierre-Yves Chibon - 0.1.17-1Pierre-Yves Chibon - 0.1.16-1Pierre-Yves Chibon - 0.1.15-1Pierre-Yves Chibon - 0.1.14-1Pierre-Yves Chibon - 0.1.13-1Pierre-Yves Chibon - 0.1.12-1Pierre-Yves Chibon - 0.1.11-1Pierre-Yves Chibon - 0.1.10-1Pierre-Yves Chibon - 0.1.9-1Pierre-Yves Chibon - 0.1.8-1Pierre-Yves Chibon - 0.1.7-1Pierre-Yves Chibon - 0.1.6-1Pierre-Yves Chibon - 0.1.5-1Pierre-Yves Chibon - 0.1.4-1Pierre-Yves Chibon - 0.1.3-1Pierre-Yves Chibon - 0.1.2-2Pierre-Yves Chibon - 0.1.2-1Pierre-Yves Chibon - 0.1.1-1Pierre-Yves Chibon - 0.1-1Pierre-Yves Chibon - 0.0-1.20150402Pierre-Yves Chibon - 0.0-1.20141008- Bump to upgrade over infra builds- Update to 5.13.3 (RH#2019098) - Drop patch for noggin_support which is now in this release- Backport fix for oidc logins from FAS with multiple SSH keys- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild- Rebuilt for Python 3.10- Backport patch: noggin_support.patch from upstream commit: 6a3f43dd1fc33367f9ab2a2dca8f941591374374- Rebuilt for updated systemd-rpm-macros See https://pagure.io/fesco/issue/2583.- Update to 5.13.2 (RH#1927326)- Update to 5.13.1 (RH#1914378)- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild- Add optional dependencies for fedora-messaging support- Update to 5.12 (RH#1913480)- Backport various fixes from upstream- Update to 5.11.3 (RH#1868029)- Update to 5.11.2 (RH#1862974)- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild- Backport various fixes from upstream - Add patch to use whitenoise for serving static assets- Backport various fixes from upstream- Fix installability of web-apache-httpd subpackage on EL7- Rebuilt for Python 3.9- Backport support for STARTTLS support for SMTP servers- Backport fix for stats - Add missing step to start pagure web services for nginx setup in quickstart- Install missing pagure_authorized_keys_worker service- Fix thinko in quick start instructions- Add Obsoletes for package split of webserver configuration- Bump to build in EPEL8- Update to 5.10.0 (RH#1836004) - Clean up spec for better suitability for container deployments - Refresh quick start instructions for new configuration options - Drop unneeded patch- Update to 5.9.1 (RH#1818753) - Downgrade gitolite3 dependency to Recommends per CPE team request- Update to 5.9.0 (RH#1816636)- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild- Update to 5.8.1 (RH#1778787)- Update to 5.8 (RH#1744065)- Rebuilt for Python 3.8.0rc1 (#1748018)- Rebuilt for Python 3.8- Fix httpd conf path in README.Fedora- Update to 5.7.4- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild- Update to 5.5 - Backport fix for pull mirroring feature- Update to 5.4 - Backport fix for using pagure-ev on Python 3 - Add patch to allow pagure to install with SQLAlchemy 1.3.0+ - Add initial README.Fedora to document a quick-start setup process- Update to 5.3 - Add weak dependencies for supported database client libraries - Use macros consistently in the spec- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild- Ensure all shebangs are set to the correct Python version - Fix RHEL conditionals to account for EL8 - Fix pygit2 dependency for EL7- Update to 5.2- Backport fix from master to add compatibility with Markdown 3.0+ - Backport fix from master to properly skip legacy hooks- Update to 5.1.4- Update to 5.1.3 (RH#1638470)- Update to 5.1.1 (RH#1637595)- Update to 5.1 (RH#1637516)- Fix symlinks broken or missing due to setuptools- Update to 5.0.1 (RH#1634318)- Update to 5.0 (RH#1632468)- Rebase to 4.93.0 (5.0 beta 4) - Pagure is now using Python 3 on Fedora- Generate dependencies automatically- Rebase to 4.0.4 - Add patch from Mageia to backport fix for pagure-milters- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild- Update Python 2 dependency declarations to new packaging standards (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3)- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild- Update to 3.13.2- Update to 3.11.1- Update to 3.5 - Reverting to py-bcrypt- Switch to python-bcrypt, BZ 1473018.- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild- Update to 3.3.1 - Fixes a typo in the alembic migration script introduced in 3.3- Update to 3.3 - [SECURITY FIX] block private repo (read) access via ssh due to a bug on how we generated the gitolite config - CVE-2017-1002151 (Stefan Bühler)- Update to 2.14.1- Update to 2.13.1- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild- Update to 2.11- Update to 2.10.1- Update to 2.3.4 - Security fix release blocking all html related mimetype when displaying the raw files in issues and forces the browser to download them instead (Thanks to Patrick Uiterwijk for finding this issue) - CVE: CVE-2016-1000037- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages- Update to 2.3.3 - Fix rendering the release page when the tag message contain only spaces (Vivek Anand) - Fix the search in @ (Eric Barbour) - Displays link and git sub-modules in the tree with a dedicated icon- Make sure to read UPGRADING.rst when upgrading from previous releases - Update to 2.3.2 - Do not mark as local only some of the internal API endpoints since they are called via ajax and thus with the user's IP - Update to 2.3.1 - Fix sending notifications to users watching a project - Fix displaying if you are watching the project or not- Update to 2.3 - Fix typos in pr_custom_page.rst (Lubomír Sedlář) - Improve the unit-test suite (Vivek Anand) - Remove the branch chooser from the repoheader and rework the fork button (Ryan Lerch) - Add support for non utf-8 file names (Ryan Lerch) - Add a 'Duplicate' status for issues (Vivek Anand) - Add title attribute for replying to comment and editing the comment in issues and PRs (Vivek Anand) - Include the user when reporting error by email - Add an API endpoint to create projects - Add an API endpoint to assign someone to a ticket - Add small script to be ran as cron to send reminder of expiring tokens (Vivek Anand) - Do not show the PR button on branches for which a PR is already opened - Add an API endpoint to fork projects - Add the possibility to watch/unwatch a project (Gaurav Kumar) - Add a 'Take' button on the issue page (Ryan Lerch and I) - Add a dev-data script to input some test data in the DB for testing/dev purposes (skrzepto) - Fix links to ticket/pull-request in the preview of a new ticket - Add the possibility to diff two or more commits (Oliver Gutierrez) - Fix viewing a file having a non-ascii name - Fix viewing the diff between two commits having a file with a non-ascii name - On the commit detail page, specify on which branch(es) the commit is - Add the possibility to have instance-wide admins will full access to every projects (set in the configuration file) - Drop the hash to the blob of the file when listing the files in the repo - Add autocomple/suggestion on typing @ on a ticket or a pull-request (Eric Barbour) - Fix the edit link when adding a comment to a ticket via SSE - Add notifications to issues as we have for pull-requests - Record in the db the date at which a ticket was closed (Vivek Anand) - Add the possibility for pagure to rely on external groups provided by the auth service - Add the possibility for pagure to use an SMTP server requiring auth (Vyacheslav Anzhiganov) - Add autocomple/suggestion on typing # for tickets and pull-requests (Eric Barbour) - With creating a README when project's description has non-ascii characters (vanzhiganov) - Add colored label for duplicate status of issues (Vivek Anand) - Ship working wsgi files so that they can be used directly from the RPM - Mark the wsgi files provided with the RPM as %config(noreplace) - Install the api_key_expire_mail.py script next to the createdb one- Update to 2.2.2 - Security fix release blocking all html related mimetype when displaying the raw files and forces the browser to download them instead (Thanks to Patrick Uiterwijk for finding this issue)- Update to 2.2.1 - Fix showing the inital comment on PR having only one commit (Ryan Lerch) - Fix diffs not showing for additions/deletions for files under 1000 lines (Ryan Lerch) - Split out the commits page to a template of its own (Ryan Lerch) - Fix hightlighting the commits tab on commit view - Fix the fact that the no readme box show on empty repo (Ryan Lerch)- Update to 2.2 - Fix retrieving the log level from the configuration file (Nuno Maltez) - Rework the labels used when sorting projects (Ankush Behl) - Fix spelling error in sample config (Bruno) - Hide the URL to the git repo for issues if these are disabled - Do not notify about tickets being assigned when loaded from the issue git repo (Clément Verna) - Adjust get_revs_between so that if the push is in the main branch we still get the list of changes (Clément Verna) - Fix display of files moved on both old and new pygit2 (Ryan Lerch) - Fix changes summary sidebar for older versions of pygit (Ryan Lerch) - Fix the label on the button to add a new milestone to a project (Lubomír Sedlář) - Allow the roadmap feature to have multiple milestone without dates (Lubomír Sedlář) - Fix the link to switch the roadmap/list views (Lubomír Sedlář) - Render the emoji when adding a comment to a ticket or PR via SSE (Clément Verna) - Always allow adming to edit/delete comments on issues - Build Require systemd to get macros defined in the spec file (Bruno) - Upon creating a ticket if the form already has data, show that data - Add a readme placeholder for projects without a readme (Ryan Lerch) - Enable markdown preview on create pull request (Ryan Lerch) - Make bottom pagination links on project list respect the sorting filter (Ryan Lerch) - Add the ability to create a README when creating a project (Ryan Lerch) - Try to prevent pushing commits without a parent when there should be one - Fix the configuration keys to turn off ticket or user/group management for an entire instance (Vivek Anand) - Fix deleting project (propagate the deletion to the plugins tables) - Do not render the diffs of large added and removed files (more than 1000 lines) (Ryan Lerch) - Adjust the UI on the template to add/remove a group or an user to a project in the settings page (Ryan Lerch) - Check if a tag exists on a project before allowing to edit it (skrzepto)- Update by several versions- Update to 2.1 - Fix the milter to get it working (hotfixed in prod) - Fix the fedmsg hook so that it works fine (hotfixed in prod) - Fix the path of one of the internal API endpoint - Pass client_encoding utf8 when connecting to the DB (Richard Marko) - Do not use client_encoding if using sqlite (Ryan Lerch) - Allow project names up to 255 characters (Richard Marko) - Add a spinner showing we're working on retrieve the PR status on the PR page (farhaanbukhsh) - Rework installing and removing git hooks (Clement Verna) - Rework the summary of the changes on the PR page (Ryan Lerch) - Improve the description of the priority system (Lubomír Sedlář) - Fix commit url in the pagure hook (Mike McLean) - Improve the regex when fixing/relating a commit to a ticket or a PR (Mike McLean) - Improve the description of the pagure hook (Mike McLean) - Fix the priority system to support tickets without priority - Fix the ordering of the priority in the drop-down list of priorities - Ensure the drop-down list of priorities defaults to the current priority - Adjust the runserver.py script to setup PAGURE_CONFIG before importing pagure - Remove flashed message when creating a new project - Add markdown support for making of PR# a link to the corresponding PR - Include the priority in the JSON representation of a ticket - Include the priorities in the JSON representation of a project - Do not update the assignee if the person who commented isn't an admin - When adding a comment fails, include the comment text in the form if there was one - Add support to remove a group from a project - Add a roadmap feature with corresponding documentation - Allow 'kbd' and 'var' html tags to render properly - Fix deleting a project on disk as well as in the DB - Allow setting the date_created field when importing ticket from git (Clement Verna) - Strip GPG signature from the release message on the release page (Jan Pokorný) - Make comment on PR diffs fit the parent, and not overflow horiz (Ryan Lerch)- Update to 2.0.1 - Fixes to the UPGRADING documentation - Fix URLs to the git repos shown in the overview page for forks - Fix the project titles in the html to not start with `forks/`- Update to 2.0 - Rework the initial comment of a PR, making it less a comment and more something that belong to the PR itself - Fix showing or not the fork button when editing a comment on an issue or a PR and fix the highlighted tab when editing comment of an issue (Oliver Gutierrez) - Fix the count of comments shown on the page listing all the PRs to include only the comments and not the notifications (farhaanbukhsh) - In the settings page explain that API keys are personal (Lubomír Sedlář) - Rework the fedmsg message sent upon pushing commits, one message per push instead of one message per commit - Mark the page next/previous as disabled when they are (on browse pages) - Avoid the logout/login loop when logging out - Support rendering file with a `.markdown` extension - Fix the layout of the password change branch - Improve the documentation, add overview graphs, expand the usage section, improve the overview description - Fix checking if the user is an admin of a project or not (which was making the user experience confusing as they sometime had the fork button and sometime not) - Fix the pagination on the browse pages when the results are sorted - Disable the Commit and Files tabs if a repo is new - Update the pagure logo to look better (Ryan Lerch) - Allow anyone to fork any project (Ryan Lerch) - Fix searching on the browse pages by preventing submission of the 'enter' key (Ryan Lerch) - Rework the issue page to be a single, large form allowing to update the meta-data and comment in one action and fixing updating the page via SSE - Turn off the project's documentation by default to empty `Docs` tab leading to nothing - Fill the initial comment with the body of the commit message if the PR only has one commit (Ryan Lerch) - Add a plugin/git hook allowing to disable non fast-forward pushes on a branch basis - Fix asynchronous inline comments in PR by fixing the URL to which the form is submitted - Add a plugin/git hook allowing to trigger build on readthedocs.org upon git push, with the possibility to restrict the trigger to only certain branches - Automatically scroll to the highlighted range when viewing a file with a selection (Lubomír Sedlář) - Indicate the project's creation date in the overview page (Anthony Lackey) - Clear the `preview` field after adding a comment via SSE - Adjust the unit-tests for the change in behavior in pygments 2.1.3 - Fix listing all the request when the status is True and do not convert to text request.closed_at if it is in fact None - Improved documentation - Attempt to fix the error `too many open files` on the EventSource Server - Add a new param to runserver.py to set the host (Ryan Lerch) - Fix the of the Docs tab and the Fork button with rounded corners (Pedro Lima) - Expand the information in the notifications message when a PR is updated (Ryan Lerch) - Fix hidding the reply buttons when users are not authenticated (Paul W. Frields) - Improve the description of the git hooks (Lubomír Sedlář) - Allow reply to a notification of pagure and setting the reply email address as Cc - In the fedmsg git hook, publish the username of all the users who authored the commits pushed - Add an activity page/feed for each project using the information retrieved from datagrepper (Ryan Lerch) - Fix showing lightweight tags in the releases page (Ryan Lerch) - Fix showing the list of branches when viewing a file - Add priorities to issues, with the possibility to filter or sort them by it in the page listing them. - Add support for pseudo-namespace to pagure (ie: allow one '/' in project name with a limited set of prefix allowed) - Add a new plugin/hook to block push containing commits missing the 'Signed-off-by' line - Ensure we always use the default email address when sending notification to avoid potentially sending twice a notification - Add support for using the keyword Merge(s|d) to close a ticket or pull-request via a commit message (Patrick Uiterwijk) - Add an UPGRADING.rst documentation file explaining how to upgrade between pagure releases- Update to 1.2 - Add the possibility to create a comment when opening a pull-request (Clement Verna) - Fix creating PR from a fork directly from the page listing all the PR on the main project (Ryan Lerch) - Color the label showing the issues' status on the issue page and the page listing them (Ryan Lerch) - Add a small padding at the bottom of the blockquote (Ryan Lerch) - In the list of closed PR, replace the column of the assignee with the date of closing (Ryan Lerch) - Drop font awesome since we no longer use it and compress the png of the current logo (Ryan Lerch) - Drop the svg of the old logo from the source (Ryan Lerch) - Add descriptions to the git hooks in the settings page (farhaanbukhsh) - Fix the pagure git hook- Update to 1.1.1 - Fix showing some files where decoding to UTF-8 was failing - Avoid adding a notification to a PR for nothing - Show notifications correctly on the PR page when received via SSE- Update to 1.1 - Sort the release by commit time rather than name (Clerment Verna) - Add a link to the markdown syntax we support - Add the possibility to display custom info when creating a new PR - Improve the title of the issue page - Make the ssh_info page more flexible so that we can add new info more easily - Add the possibility to resend a confirmation email when adding a new email address - Encode the email in UTF-8 for domain name supporting it - Add a button to easily change your avatar in your settings' page (Clement Verna) - Expand our markdown processor to support implicit linking to both PR and issues - Fix running the unit-tests on F23 - Fix deleting in the UI branches containing a slash ('/') in their name - Add the possibility to always have a merge commit when merging a PR - Add the project's avatar to the list in front page when authenticated - Make the dependency on flask-fas-openid (part of python-fedora) optional - Prevent our customized markdown to create link on foo.com if it doesn't start with {f,ht}tp(s) (Clement Verna) - Bring back the delete ticket button (Ryan Lerch) - Add the possibility to notify someone when it is mentioned in a comment via @username - Fix setting the default value of the web-hook setting and its display in the settings page - Add the possibility to have templates for the issues - Add a button on the doc page to open it in a new tab - Add the concept of notifications on PR allowing to indicate when a PR is updated or rebased - Fix allowing people with non-ascii username to merge PR with a merge commit - Add the possibility to theme your pagure instance and customized its layout at will - Add the possibility to always see inline-comments even if the file was changed since - Improve the error message given to the user upon error 500 (Patrick Uiterwijk) - Stop relying on pygit2 to determine if a file is a binary file or not and instead use the python library binaryornot - Store in the DB the identifier of the tree when an inline comment is made to a PR, this way it will be simpler to figure out a way to add the context of this comment either by email on in the UI - Add styling to blockquotes so that we see what is the quote and what is the answer when replying to someone - Prevent users from adding again an email pending confirmation - Fix the preview box for long comment (Ryan Lerch) - Add the possibility to sort the projects when browsing them (Ryan Lerch)- Update to 1.0.2 - Rework the PR page (Ryan Lerch) - Add ssh_info to blacklist in default config (Ryan Lerch) - Restyle the ssh_info page (Ryan Lerch) - Fix hiding the preview pane when creating an issue (Ryan Lerch) - Indicate the number of comments on the PR when listing them (Ryan Lerch) - Fix showing the links to issues when previewing a comment - Ensure some more that the page number isn't below 1 - Do not show the edit and delete buttons to everyone when adding a comment via SSE - Update the requirements.txt for a missing dependency on Ubuntu (vanzhiganov) - Improving sorting the release tags in the release page (Clement Verna)- Update to 1.0.1 - Improve the fork list (Ryan Lerch) - Make sure the images on comments do not exceed the size of the comment box/area (Ryan Lerch) - Improve the page listing all issues (Ryan Lerch) - Include the project information when sending a fedmsg message about editing a comment - Allow tags in rst files so that the README shows fine - Fix linking directly to a specific comment in a PR - Fix adding comment in a PR via SSE - Fix updating issue information via SSE - Fix the reply buttons on the issue page - Remove the choice for a status when creating a new ticket (Farhaandukhsh) - Fix deleting a branch from the UI - Make the cards have rounded corners (Sayan Chowdhury) - Fix showing the description of form field (Vivek Anand) - Fix checking if the passwords added are the same (for local accounts) (Vivek Anand) - Fix displaying emojis when previewing a comment on a ticket (Clement Verna) - Add support for emojis when creating a new ticket (Clement Verna)- Update to 1.0 - Entirely new UI thanks to the hard work on Ryan Lerch - Add the possibility to edit comments on PR/Tickets (and the option to disable this) (farhaanbukhsh) - Add the number of open Tickets/PR on the project's menu - Also allow PRs to be closed via a git commit message (Patrick Uiterwijk) - Disable issues and PR on forks by default (Vivek Anand) - Fix deleting the temporary folders we create - Un-bundle flask_fas_openid (requires python-fedora 0.7.0 or higher - Add support for an openid backend (ie same thing as FAS but w/o the FPCA enforcing) - Add support to view rst/markdown files as html directly inline (default) or as text (Yves Martin) - Change the encryption system when using pagure with local auth to not be time-sensitive and be stronger in general (farhaanbukhsh) - Change the size of the varchar from 256 to 255 for a better MySQL support - Add support for pagure to work behind a reverse proxy - Rename the cla_required decorator to a more appropriate login_required - Show the in the front page and the page listing all the pull-requests the branch for which a PR can be opened - Rework the avatar to not rely on the ones associated with id.fedoraproject.org - Add support to high-light a section of code in a PR and show the diff automatically if there is such selection- Update to 0.1.36 - Add the ssh info on the front page if the repo is empty - Make the code handling exception be python3 compatible - Make pagure compatible with F23 (ie: pygit2 0.23.0) - Fix pagination when rendering the repo blocks (Gaurav Kumar) - Make the SHOW_PROJECTS_INDEX list what should be showing in the index page - Adjust pagure to work on recent version of psutils as well as the old one - Added 'projects' to the blacklisted list of projects (Gaurav Kumar) - Removed delete icons for non group members on the group info page (Gaurav Kumar) - Fixed forbidden error for PR title editing (Gaurav Kumar)- Update to 0.1.35 - Fix the web-hook server by preventing it to raise any exception (rather log the errors)- Update to 0.1.34 - Fix the encoding of the files we're displaying on the UI - Fix commenting on the last line of a diff - Fix returning error message from the internal API (shows the PR as conflicting then) - Fix stacktrace encountered in some repo if the content of a folder is empty (or is a git submodule) - Split the web-hooks into their own server - If you try to fork a forked project, redirect the user to the fork - Show the repo from and repo to when opening a new PR - Add the pagination links at the bottom of the repo list as well - Add the groups to the pool of users to notify upon changes to a project - Hide private repo from user who do not have commit access- Update to 0.1.33 - Prevent project with a name starting with a non-alphanumerical character (Farhaanbukhsh) - Ensure we appropriately set the private flag when creating an issue - Add an activity graph on the user profile using datagrepper - Sometime the identified we get is a Tag, not a commit (fixes traceback received by email) - Order the PR from the most recent to the oldest - Fix the patch view of a PR when we cannot find one of the commit (fixes traceback received by email) - Allow user that are not admin to create a remote pull-request - Fix closing the EV server by calling the appropriate variable - Fix generating the diff of remote pull-request- Update to 0.1.32 - Fix the example configuration file - Make pagure work on MySQL - Hide sections on the front page only if the user is logged out - Fix the release page where sometime tags are commits - Escape the raw html in markdown - Decode the bytes returned by pygit2 to try to guess if the content is a text or not - Fix the 'Clear' button on the pull-request page (farhaanbukhsh) - Fix installing pagure in a venv - Fix uploading images when editing the first comment of a ticket - Let the author of the merge commit be the user doing the merge - Suggest the title of the PR only if it has one and only one commit in - Do not hide sections on the user page if we set some to be hidden on the front page - Forward the head to the commits page to fix the pull-request button - Ensure we create the git-daemon-export-ok when forking a repo (fixes cloning over https) - Add instructions on how to get pagure working in a venv (Daniel Mach) - Improve the way we retrieve and check pygit2's version (Daniel Mach)- Forward the bail_on_tree boolean when iterating so that we know how to behave when we run into a git tree (where we expected a git blob) -> fixes error received by email- Fix error received by email by checking the right variable if it is a git tree or a git blob - Unless we explicitly accept all images tag, always filter them (fixes attaching images to a ticket)- Use monospace fonts for online editing as well as comment on tickets and pull-requests - Fix online editing of symlinked files (such as the README) - Handle potential error when converting from rst to html- Update to 0.1.28 - Fix the call to noJS() in the pull-request template to avoid crashing - Improve the runserver script in the sources - Fix the projects pagination on the index page - Create the git-daemon-export-ok file upon creating a new project/git - Use first line of commit message for PR title when only one commit (Maciej Lasyk) - Show the tag message near the tag in the release page - Set the default_email when creating a local user account- Update to 0.1.27 - Skip writing empty ssh keys on disc - Regenerate authorized_keys file on ssh key change (Patrick Uiterwijk)- Update to 0.1.26 - Let admins close PRs as well- Update to 0.1.25 - Improve the documentation (especially the part about configuring pagure and all the options the configuration file supports) - Remove the two trailing empty lines when showing a file online - Add a link on the issue list to be able to filter all the unassigned issues - Rework the layout of the pull-request page - Rework the commit list in the PR page to allow showing the entire commit message - Let any user create remote pull-request otherwise what's the point? - Add the possibility to edit the title of a pull-request - Add a page listing all the pull-requests of an user (opened by or against) - Add support for multiple ssh-keys (Patrick Uiterwijk) - Ensure the authorized_keys file is generated by gitolite (Patrick Uiterwijk) - Fix the regex for @ - Improve the display of renamed files in PR - Add option to disable entirely the user/group management from the UI - Add an updated_on field to Pull-Request - Add an closed_at field to Pull-Request - Allow the submitter of a PR to close it (w/o merging it) - Disable editing a pull-request when that one is closed/merged - Add option to hide by default a part of the index page (ie: all the repos, the user's repos or the user's forks) - Drop the csrf_token from the error emails sent to the admins- Update to 0.1.24 - Fix changelog to add the -release - Block the tag on titles - Better fedmsg notifications (for example for new branches or rebase) - Support uploading multiple files at once - Add a load_from_disk utility script to the sources - Fix indentation to the right on very long pull-request- Update to 0.1.23 - Return a 404 error if we can't find the doc repo asked - Fix for #106 Allow setting the default branch of the git repo and in the UI (Ghost-script) - Improve unit-tests suite - Add a global boolean to disable entirely tickets on all projects of a pagure instance (with no way to re-set them per project) - Do display uploading a tarball if it is not entirely configured - Ensure we do not offer to reply by email if the milter is not set up - Ensure there is no new line character on the msg-id and improve logging in the milter - Add a configuration key to globally disable creating projects - Add a configuration key to globally disable deleting projects - Add the possibility to search projects/users - Drop links to the individual commits in a remote pull-request - Input that are cleaned via the noJS filter are safe to be displayed (avoid double HTML escaping) - When writing the authorized_key file, encode the data in UTF-8 - Makes page title easier to find in multi-tab cases (dhrish20) - Fix authorized_keys file creation (Patrick Uiterwijk) - Honor also symlinked README's in repo overview (Jan Pakorný) - Fix the patch generation for remote PR - Fix showing the comment's preview on the pull-request page - Fix bug in checking if a PR can be merged- Update to 0.1.22 - Adjust the README to the current state of pagure - Rework how we integrate our custom tags into markdown to avoid the infinite loop we run into once in a while- Update to 0.1.21 - Make SSH protocol explicit for SSH URLs (Till Maas) - Adjust the documentation (layout and content) - Rework the doc server to allow showing html files directly - Fix installing the pagure hook correctly (tickets and requests) - Give proper attribution to the pagure logo to Micah Deen in the documentation - Increase pull request text field lengths to 80 (Till Maas) - Fix who can open a remote PR and the check that the repo allows PR - If there is no commit and no content, it means we didn't find the file: 404- Update to 0.1.20 - Include the tags in the JSON representation of a project - Add the ability to open a pull-request from a git repo not hosted on pagure - Fix pagination when browsing the list of commits - Fix the fork button when viewing the Settings of a project - Adjust the example apache configuration file - Add a favicon with pagure's logo - Fix asynchronous commentting on pull-requests - Start working on some documentation on how to install pagure - Do no flash messages when a comment is submitted via javascript (ie: async) - Do not blink the tittle of the page if the page is already on focus - Retrieve ssh key from FAS and set it up in pagure if none is currently set-up - Fix anchors for comments on the pull-request pages - Fix checking the merge status of a PR when user is not logged in- Update to 0.1.19 - Prettify the JSON stored in the git for tickets/requests... (Simo Sorce) - Use the project name as subject tag in the notifications sent (Simo Sorce) - Add an X-pagure header with either the pagure instance or the project name - Reset the merge status of all the open PR when one is merged - Add a second server listing the number of connections opened on the first eventsource server - Log the info instead of printing them in the eventsource server - Split the documentation to a different wsgi application to avoid any risk of cross-site forgery - Fix the JS logic when adding a tag or a dependency to avoid having duplicates in the input field - Allow deleting a git branch of a project via the UI - Include the font-awesome in the source rather than relying on an external cdn - Do not try to connect to the eventsource server if we're not viewing a pull-request - Fix showing the first comment made on a PR via the eventsource server - Fix showing the git URLs in the doc server - Much better API documentation (Lei Yang) - Handle showing closed PR that were not merged - Fix refreshing the UI of private tickets via the eventsource (making calls to the API to get the info while only getting what changed via the SSE) - Fix the anchor links in the API documentation - Blink the tab upon changes in the page - Ensure we close both SSE server when stopping pagure_ev - Let the HTML form trigger if we did not connect to the EV server successfully - The admins of a repo are anyone with commit access to the repo, directly or via a group - Order the project by names in the front page (instead of creation date) - Add the ability to tag a project - Fix the fedmsg_hook when there are only deletions or only additions - Add a new API endpoint allowing to search projects (by name, author, tag ...) - Make pagure compatible with pygit 0.22.0 - Adjust unit-tests for all these changes- Update to 0.1.18 - Fix the eventsource server for CORS - Fix showing/checking the merge status of a PR- Update to 0.1.17 - Fix for missing docs of API issue add comment (Kunaal Jain) - Fix the systemd init file - Be more careful about the URL specified, it may be of the wrong format in the eventsource server - Allow configuring the port where the event source server runs in the configuration - Fix bug in filter_img_src introduced with its moved to the backend library- Update to 0.1.16 - Clone all the remote branches when cloning a project - Allow online editing to a new branch or any of the existing ones - Allow the
html tags in markdown - Add eventsource support in the ticket and pull-request pages- Update 0.1.15 - Use a monospace font for the commit hash - Remove duplicated "commit" id in the HTML (causing a graphical bug in the commit page) - Secure the input using the no_js filter instead of relying on a restrictive regex for PR and issue titles - Support ',' in the tags field since it's required to specify multiple tags- Update to 0.1.14 - Remove all new lines characters from the ssh key uploaded - Adjust the URL in the footer to point to https://pagure.io/pagure - Fix displaying the time of a comment - Forbid the use of spaces in group name - Do not get the list of not-merged commits if there is only 1 branch in the repo - Display the error message if pagure.lib.add_group raises an exception - Add a new setting enforcing that all commits in a PR are signed-off by their author - Enforce that all commits are signed-off by the author if the repo is configured for this - Also check for the signed-off status before merging a pull-request - Adjust online-editing to allow specifying which email address to use in the commit - Add an avatar_email field to projects - Change the PullRequest's status from a Boolean to a Text restricted at the DB level (Allows to distinguish Open/Merged/Closed) - Show in the pull-request view who merged the pull-request - Specify who closed the pull-request in the API output - Catch GitError when merging and checking merge status of a PR - Hide the form to create pull-requests if the user is not an admin of the repo - Replace the Pull-Request button by a Compare button if the user it not a repo admin - Set the title of the tab as URL hash to allow directly linking to it - Adjust the API to be able to distinguish API authentication and UI authentication - Fix API documentation to create new issues - Drop the status from the requirements to open a new issue via the API - Expand the list of blacklisted project names - Have the code tags behave like pre tags (html tags) - Allow project to specify an URL and display it on their page - Strip the ssh keys when writing them to the authorized_keys file - Disable javascript in all the markdown fields - Validate early the input submitted in the forms (using more or less strict regex) - If the session timed-out, redirect to the setting page after authentication and inform the user that the action was canceled - Catch PagureException when adjusting the project's settings - Redirect the /api endpoint to the api documentation place - Fix how is retrieved the list of emails to send the notification to - Sanitize the html using bleach to avoid potential XSS exploit - Do not give READ access to everyone on the tickets and pull-requests repos to avoid leaking private tickets - Adjust the unit-tests for all these changes- Update to 0.1.13 - Do not show the edit button if the user cannot edit the file - Fix who is allowed to drop comments - Fix showing the drop comment button on issue comments - Fix creating the pull-request for fast people like @lmacken - Display the target of the PR as well as the origin in the PR page - Limit the size of the lists on the front page- Update to 0.1.12 - Fix the URL where the sources upload are done - Upload the new sources under the project's name (be it project or user/project)- Update to 0.1.11 - Another fix for the fedmsg_hook git hook - Adjust how we display the README page to avoid XSS there as well - Add the possibility to disable plugins via the configuration file - Present the git tags in the UI - As soon as the API user present a token, validate it or not, even if the endpoint would work without token - Integrate alembic for DB scheme migration - Cache the PR's merge status into the DB - Only people with access to the project can add/remove API token - Make the unit-tests run on bare repos as in prod - First stab at online editing - Simplify the API output to drop the project's settings where it doesn't make sense - First stag at allowing upstream to upload their release to pagure - Fix merging a PR into another branch than master - Reduce code duplication when checking if a PR can be merged or merging it - Code style clean-up- Update to 0.1.10 - Add support for URL ending with a trailing slash where it makes sense (so we support both with and without trailing slash) - Fix XSS issue by disabling