setroubleshoot-server-3.0.38-1.fc15$>XU.\5s.m>C@?@d & BX\| .|<     5l 68f@nDvGH@IXHY\\]H^$]b0d1e1f1l1 t1$u3v6w8x;y>|`?Csetroubleshoot-server3.0.381.fc15SELinux troubleshoot serverProvides tools to help diagnose SELinux problems. When AVC messages are generated an alert can be generated that will give information about the problem and help track its resolution. Alerts can be configured to user preference. The same tools can be run on existing log files.N:x86-11.phx2.fedoraproject.org"Fedora ProjectFedora ProjectGPLv2+Fedora ProjectApplications/Systemhttps://fedorahosted.org/setroubleshootlinuxx86_64/sbin/service auditd reload >/dev/null 2>&1 || :if [ $1 = 0 ]; then /sbin/service auditd reload >/dev/null 2>&1 || : fi2yl4CCiggm<9<9<[>>  ? ?  8.u.udYYhez uA*zzz**z8z#SMzzzx-z?xzzzzz*#rzz)3zz=4+'*zzzzze?=0z3zzz 2"A큤큤A큤큤A큤큤큤A큤A큤큤A큀AAN7N7N7N8N7N7N7N7N9N7N8N8N7N8N8N7N8N8N7N8N8N7N8N8N7N8N8N7N8N8N8N7N8N8N7N8N8N7N8N8N7N8N8N7N8N8N7N8N8N7N8N8N7N8N8N9N6N8N8N8N7N8N8N7N8N8N7N8N8N7N8N8N7N8N7N8N7N8N8N8N8N8N8N8N7N7N7N7N5N5N5N5N5N5N5N5N5N5N5N5N5N5N5N5N5N5N5N5N5N5N6N6N6N6N6N6N6N6N6N6N6N6N6N6N6N6N6N6N6N6N6N6N6N6N6N6N6N6N6N6N6N6N6N6N6N6N6N6N6N6N6N6N6N6N6N6N6N6N6N6N7N7N7N8N9N7N8N8N7N8N8N8N8N8N8N8af1aba7aef639bbd2d495b259f94e728436c796fb3f4803aa73183aecd3791fad7a323f33e6ec9c80df9f8884892924a710aa38e03a84351d6f14572049a691149fe8feac96b0187497e325a28885d39351b93d734096e8f94f26d533a3fa1712017260017232b5184c514af7629fa2f13a2f5706f72fcc828eb25a4d77a645eebd740fd61da1786d9c883ff07050d521939349fb4c8d298c4a13157467f0dbad362a9e669ae15a08cf35ac853a4aa1419f7bdd4562bf5f2454bed6fd17217aaa3851eda0798b2e92d6b7d3cc64d3377561236da24d7eb7772d21e0a74b35011f4338b6dbc4009cd098b798b3ff0dfcc55be12b3c591dc67f56be46369e30500c16a2f4e5e5a11140b1f67281221c3ac7ffac8ba876acd9b4333e96fa8e5cacfc16a2f4e5e5a11140b1f67281221c3ac7ffac8ba876acd9b4333e96fa8e5cacfbf4952d133e9d2599accb26705f673132c363ec16cf372901ba4a1b73c6217bf9f82edfaf1efe7bf051f3781960dc970ed468dc83bce52a6c27cd4f4f32c94609f82edfaf1efe7bf051f3781960dc970ed468dc83bce52a6c27cd4f4f32c9460b543eb126e180f6a7ed154cbc2cdb4e0b2eaa724b4161026969f1dfbc7683435e7d4ae66834373681e3dcf5ad3e982b2f5b52ab85e7cbd7af4ce2564109c51c9e7d4ae66834373681e3dcf5ad3e982b2f5b52ab85e7cbd7af4ce2564109c51c9668d6dd1206f808e5c2db8bd37baad9173ddd769ccffa93b014ce84ec14003dc4d6a578074663c0b18b0dc7d076b169944f6431add4e0513d294e8a69a0238044d6a578074663c0b18b0dc7d076b169944f6431add4e0513d294e8a69a0238040c53d779c6663a9afc564d7c22a2f037000f231a373dc21dd404753200b4d1e66dd7452aeaddfa309a031dcbd05408f4b77f5d689e1cd44de2b6bb319babeefc6dd7452aeaddfa309a031dcbd05408f4b77f5d689e1cd44de2b6bb319babeefcdff4616c06dd0e0c1350030b1ea97652b3ae07daab45aeb6ae47efe98e012d924d9675662eafd98044357a0352cee1fa2747719b96d46c2abde26aa518bbf1f34d9675662eafd98044357a0352cee1fa2747719b96d46c2abde26aa518bbf1f36870ee9eee2f4b13a608a4b2b666baff1a3e8b4942ce3eddaa2e23aed12df2cdd26fbc252652522cdf23710ca3c1f2086817a6886407eda352c521e0ee6bfa1bd26fbc252652522cdf23710ca3c1f2086817a6886407eda352c521e0ee6bfa1b3ba96a68c4236cf3718438bec411a6e110123be2fa18d58d9a80827568bccd691c3944d2f08ae8a52e6e4416d03fe3bd2c33fafb256be0bbb6039c1559a6e3983d58e64636e7331643c8323d6fcc1ff86f02b381fcd3868f80c3011d4eb7c9c53d58e64636e7331643c8323d6fcc1ff86f02b381fcd3868f80c3011d4eb7c9c52c9280c62d19b5a6aa317af52b05e854f6f47183b1c0be56af5db00bd1b3223243b3bd5f9bce88b9572d1cf8d8c28c5833316a15ae1a89eea56bd4d9e222da4643b3bd5f9bce88b9572d1cf8d8c28c5833316a15ae1a89eea56bd4d9e222da462b347de66b2daf372fedd76448942a2e0696bd83404fe6f6725e8ee13dd4140f0121ec1f05a70b943b080a76e161902ef3ce521b30b5905c7e9c493d59375cf70121ec1f05a70b943b080a76e161902ef3ce521b30b5905c7e9c493d59375cf7d75b53f14099e7cf93b97aca4039830d5bce89dc805412ff87dccd63bebd856a5acb5b443a1ebe9af73d37ec5231532f8fe723ec6e985eef20632375021e71eb5acb5b443a1ebe9af73d37ec5231532f8fe723ec6e985eef20632375021e71eb7a745e97f628a6b655f60a722d098c3534ca8d8703352e88d8f362ada8241031cbbc249210f3b0cad035ae2dfb5b7e91eaa5e6445b07be5cdb66df1b7144d5cfcbbc249210f3b0cad035ae2dfb5b7e91eaa5e6445b07be5cdb66df1b7144d5cf9e31eabc3fb316b75c176cab11cfec87429c6a6aee9e047b212b812fcd6b753c2f4ec96fffe1bebdb97f3e06abb5fedb9800223d73f73d5db1f83768a2d6f33d2f4ec96fffe1bebdb97f3e06abb5fedb9800223d73f73d5db1f83768a2d6f33df0e964929fd5663af5e59e3b5b9cbfc0aa97e958781546d5473c8bc7edb945a168fd6afaf378d2e7626b2db41e1941864def5c2e9f6ae02c5bf00c91df28bbb368fd6afaf378d2e7626b2db41e1941864def5c2e9f6ae02c5bf00c91df28bbb3eb3a80a6ddc32837c716a28c329910a18f944e32e5a86181bf1ce50a56c07bc598f380740da6655f511d8f9660fe105bde23a18c782d6ac5eb589fd29b9c54e398f380740da6655f511d8f9660fe105bde23a18c782d6ac5eb589fd29b9c54e3f702b70f38f53e8e495765b29848c6d1831dedbbd9accf3cb4f6ed2aad9b1e00e9bec33f38b7dc7bb42966e75569bdff29fab68bfd915e84228e6d886dc4ce66e9bec33f38b7dc7bb42966e75569bdff29fab68bfd915e84228e6d886dc4ce663b40a43aab6272d53999fc45c9136ba9a3884a1ee03c8de1e0a5de304d0be97c1d8e7c0c924f8d216574084d9fbb01633b10a869e83637c5513a896ac7575d92fac18dbdd949a3480f5cb7333a8535779270a794312c20a933bc7765b17acf99fac18dbdd949a3480f5cb7333a8535779270a794312c20a933bc7765b17acf996eae4377be1f519c82ce57db278daa988b3b80cd28118ad6c637d10957bc40f951f1169db22ac670e963aff85460e7897e59511d3db8e0a767fc95fe3f46fa4c51f1169db22ac670e963aff85460e7897e59511d3db8e0a767fc95fe3f46fa4c11c91fe67940c626c6c99e21e232db61b00065a3e1e99246f630a262713578ea961110fc37eee32bbd2c25b7a612fa9c77575db614c972b371307da807590842961110fc37eee32bbd2c25b7a612fa9c77575db614c972b371307da8075908424d1970b0a9e0aad8580e8f4810f6dfd46c74e4315d8d14c2fd2637d7426e12fc2df4dd1946e21c3c0474473ed67aebddb1ece3fe77b1257cc1ea96142cc163842df4dd1946e21c3c0474473ed67aebddb1ece3fe77b1257cc1ea96142cc163845d3d626889fc0af8861be1c943269ff33ee5f23f4c8f2029e7eb9859f495adc0c5938c142d74ea5f882ef21fc297d6eaa61c82cfbb5ddd5bf822fe3208a5a3ce3f5f73f69875643bc204487d27c5c039fb244579c4057be8360a42b1ab88cb176a0b7caf34f6be639a5a4835bd458e69775601e7d4cea1b7b655b8d10a8b4c05111c487cd91ba7680d9cef5f0fb88aab75b6d411f262ae8251dfbaebefa4d3233393d49832106575bb162bff8c6780a5ce94132f19859acee841fb26533b5d0f231f7edcc7352d7734a96eef0b8030f77982678c516876fcb81e25b32d68564cf653a523c3ccfda3ece46354cead81220d3036d1c7ce3b6ea29b52db2f01c66d49e8eeeb3c33778d4e94a7d8d9e25d5a01d2f3cf6bce7c4f441f39c70d73e7ec49e8eeeb3c33778d4e94a7d8d9e25d5a01d2f3cf6bce7c4f441f39c70d73e7ecbbc6d03ecfd4a590a56903b845e0857b118f51220ecf3523cb01fb78d5a405e87ec972a5a882ff1f5391ee71d630d7072c1153a3215c40b97268327587e986d05e55db26dce91512438f4636968dc3f97c618ec5a4548e27dc7ff9d413778029b2ec800802c283447f3713266ca798eb5b66ccfddea7a0b1a5dda10a4a32a33ce01b5215cf85a51f6a7cda4d5daeab93be0b97300539482a28b0077e20b8e0907465b24ac62c9b79d413fd7c28db0eee8609c8ba52900de77ea8f49351d64e0b7465b24ac62c9b79d413fd7c28db0eee8609c8ba52900de77ea8f49351d64e0b7465b24ac62c9b79d413fd7c28db0eee8609c8ba52900de77ea8f49351d64e0b559ec155d39726ebdd2cce9c08c0a1673a6b225f66833b7cf2ec80df306053d57465b24ac62c9b79d413fd7c28db0eee8609c8ba52900de77ea8f49351d64e0bb9fe4cc3070e6a3e0eb833211d58bcde654b98ed006f7e6b05d4f9db81b0113a7465b24ac62c9b79d413fd7c28db0eee8609c8ba52900de77ea8f49351d64e0bffb914526c8fad9bdaedd4cb7bd68b8b8ebdb0e41f5f5cf008a9d032154b4909f560d2b2f099e7f08b893793f98f3aedb47bbe2a6f40f3b4fb1127167c176adc0a21c8698795183f98ada37635607e8c5617c5f7b2f70aa0ec00830146d1f9277465b24ac62c9b79d413fd7c28db0eee8609c8ba52900de77ea8f49351d64e0bcf58786214dbece8d1bd6b2b96a7b17964d1914316d74271322f7ea773d5530a8f4a21686c268bfee2bc84e5cfa6dd4aded8db9b1bc61be41e69e53850940455c84eb06688b695ebd9d07b2f488d71fd8e29f3b5fa764d72008c2cddca34fa6d8ce069b07b9e44f7c9b245fbed8cced35d9977a453f0fbf1c036ae92f9fd6666ab984212af6aa6eb2b97bcba406b3c6adbe4c524796cfe03aff182a7cad15f6e7465b24ac62c9b79d413fd7c28db0eee8609c8ba52900de77ea8f49351d64e0b7465b24ac62c9b79d413fd7c28db0eee8609c8ba52900de77ea8f49351d64e0b7465b24ac62c9b79d413fd7c28db0eee8609c8ba52900de77ea8f49351d64e0baf4f48a18897b0548bcedf85568d5105c00de90f13f083716b39ab3c46c551427c906512e674c83db5ac7bed14efe13991e42add2d76225ea5f82d7519576ba57465b24ac62c9b79d413fd7c28db0eee8609c8ba52900de77ea8f49351d64e0b0e4e9b181ea84c282a48ff6ccc3cc3926c9073ffdcd90bfbca8d8694817508c97465b24ac62c9b79d413fd7c28db0eee8609c8ba52900de77ea8f49351d64e0b4bf7fdc0dbdb84679a69dfa6afced26c6acc1b086cc52bee4ed2203901bd0d9c614a46de084ac57e21a282b4b1f183f5b4f1cae119b5479b3adc997b377ae65f61bd28391720e156d52458f67d565ee02c97ecb476d0e9da4c7df61e917c7eb67465b24ac62c9b79d413fd7c28db0eee8609c8ba52900de77ea8f49351d64e0b7465b24ac62c9b79d413fd7c28db0eee8609c8ba52900de77ea8f49351d64e0b7465b24ac62c9b79d413fd7c28db0eee8609c8ba52900de77ea8f49351d64e0bb9830bfa56c9dac51131a366cbe91fd7b03846c01f0d31d439edfd1f152df2d80807fd9a660b1d2610fb4c2a0d3805529eba476c2f94e32cbe09eb12b8072eee7465b24ac62c9b79d413fd7c28db0eee8609c8ba52900de77ea8f49351d64e0bead6f25df13ead664ba5bc3dbdb548f84c1bd94f4e25312c6cd03f2ac6708784e250cef86f81dafa46b21b1354daf84295089978d783f6f83065d6e711135a2f7465b24ac62c9b79d413fd7c28db0eee8609c8ba52900de77ea8f49351d64e0b7465b24ac62c9b79d413fd7c28db0eee8609c8ba52900de77ea8f49351d64e0b7465b24ac62c9b79d413fd7c28db0eee8609c8ba52900de77ea8f49351d64e0b7465b24ac62c9b79d413fd7c28db0eee8609c8ba52900de77ea8f49351d64e0b7465b24ac62c9b79d413fd7c28db0eee8609c8ba52900de77ea8f49351d64e0b4547179fe9f97a8233d9e52f8f062bf475d58edcb702a9cd89755f2051d12f65201dc6e121081c804949c77ae9dafc7910c01e0030713bcd5e8ade0894eccfeb23ad80093e4d34733417a82bcdc13be66b3e794a688ca53c22c159f66d734f717465b24ac62c9b79d413fd7c28db0eee8609c8ba52900de77ea8f49351d64e0b7465b24ac62c9b79d413fd7c28db0eee8609c8ba52900de77ea8f49351d64e0b9e9f017752d37a36ec49b4df41da4d26d06a1d40409c9d3f44a4a315599ac06b7465b24ac62c9b79d413fd7c28db0eee8609c8ba52900de77ea8f49351d64e0b7465b24ac62c9b79d413fd7c28db0eee8609c8ba52900de77ea8f49351d64e0bcbe93876f26cea94213d60ed686e057f879ea04f6bf408d25a37ecd9d9ad5220e418d9784c6a215df7eb876994699da0cf87f7839f3de5f404a737a6c3e8ccc50931ee29c1e6cdd0ca3108f0ff2276ee4ae217d8446c578995adef8d459c4368f3c94c892f939cf911deab524c8c5e6d0958634e0842b5c65bec99bf3df5906de29f15f0a5ba227f73537402cb9200e05e48100f3d263698a6dc678c11be8ee87465b24ac62c9b79d413fd7c28db0eee8609c8ba52900de77ea8f49351d64e0bb85b67b1d5b352825b0c83514993879230668a204cfb4de854e7963ac42122ca7465b24ac62c9b79d413fd7c28db0eee8609c8ba52900de77ea8f49351d64e0b7465b24ac62c9b79d413fd7c28db0eee8609c8ba52900de77ea8f49351d64e0b7465b24ac62c9b79d413fd7c28db0eee8609c8ba52900de77ea8f49351d64e0b7465b24ac62c9b79d413fd7c28db0eee8609c8ba52900de77ea8f49351d64e0b7795ba31207340284d83021bae8d589110ee853972aac7c286476cab943a93d946a59737e0a317a96f3b733ee68d6cb3520f62ae1f7908a2a84151411190d7b7a6a932a9c3c311d302e1645a0a9940ecd072912ada8003584f77dd4b937e31959da833319d749e3a6d617feb1040e82e88059d58f9b4bfcee7fdf819de7ceb922af3b4ba4649c242c300630c276780ecc1822ab51c20a802a8e92052322a6b8c14517f04142c7407c9d2474cd7afb6aaf84cf80ef9e9988a895c2f033bf5bb097465b24ac62c9b79d413fd7c28db0eee8609c8ba52900de77ea8f49351d64e0bcfb294d3449975464f1e68de733e27e6dd82f4b75bc476ea9a05cb66bc53dcd47465b24ac62c9b79d413fd7c28db0eee8609c8ba52900de77ea8f49351d64e0b7465b24ac62c9b79d413fd7c28db0eee8609c8ba52900de77ea8f49351d64e0b87bc25c9104f6f3a16dc1f0405096e0db9edd3528ac0a04e9da6205acc8f205a8a2a23914ccfab6fe52622a217c2d102fa015de6ec80722b2f8edb8fa59a90667465b24ac62c9b79d413fd7c28db0eee8609c8ba52900de77ea8f49351d64e0bb737b8cad183e492ffae2bb01412cc5e18d4dee5eef6b2d067303b5ccbe3e270f3e28af8e4ba824c0e0831ac5067724b903d9a03c2ad2f87fecdf0fcd82153ac7386a621f76959b47c8206e82a3e95c83a3497bc59073c5bef9a1924edbf56870af55577e55996f338f6df9e3fabe83a1a415e3556c90f891775b0a09c5a11091ba11763077213f435ecf22c8291410bfb55fa0f8b8bebc0bc9a8e675a009201aeaafd497a522ecb277854723f865c7618fdb01ee55855868f2c014579e66e39aeaafd497a522ecb277854723f865c7618fdb01ee55855868f2c014579e66e39f48cc0105d3e8b837c9c1655b84e0fd87c50f94a0bd0e5c6a280024b7020d2e502441e2bb0b07da09a9c50c93e9cd80fd8eb66d0372b45bdf3cf59bb2d2a44e102441e2bb0b07da09a9c50c93e9cd80fd8eb66d0372b45bdf3cf59bb2d2a44e1e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855@@rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootsetroubleshoot-3.0.38-1.fc15.src.rpm_sesearch.so()(64bit)config(setroubleshoot-server)default_encoding_utf8.so()(64bit)setroubleshoot-serversetroubleshoot-server(x86-64)@ @@@@@@@@@@@@@@@@ @@    @  /bin/sh/bin/sh/bin/sh/sbin/chkconfig/sbin/chkconfig/sbin/service/sbin/service/usr/bin/pythonauditaudit-libs-pythonconfig(setroubleshoot-server)libapol.so.4()(64bit)libapol.so.4(VERS_4.0)(64bit)libauparse.so.0()(64bit)libc.so.6()(64bit)libc.so.6(GLIBC_2.2.5)(64bit)libc.so.6(GLIBC_2.3.4)(64bit)libc.so.6(GLIBC_2.4)(64bit)libc.so.6(GLIBC_2.8)(64bit)libcap-ng.so.0()(64bit)libdbus-1.so.3()(64bit)libpthread.so.0()(64bit)libpthread.so.0(GLIBC_2.2.5)(64bit)libpython2.7.so.1.0()(64bit)libqpol.so.1()(64bit)libqpol.so.1(VERS_1.2)(64bit)librt.so.1()(64bit)libselinux-pythonlibselinux.so.1()(64bit)libxml2-pythonpolicycoreutils-pythonpython(abi)python-slip-dbusrpm-pythonrpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PartialHardlinkSets)rpmlib(PayloadFilesHavePrefix)rtld(GNU_HASH)setools-libs-pythonsetroubleshoot-pluginsrpmlib(PayloadIsXz)1.2.6-31.2.6-33.0.38-1.fc151.30.15-12.73.0.4-14.6.0-14.0.4-14.0-12.0.45.2-14.9.0/sbin/service setroubleshoot stop >/dev/null 2>&1 || : chkconfig --del setroubleshoot || :setroubleshoot-server2.1.1NN|@M۝M'M@MlMbSM^_@M[@MRMRM@ M=iM5M5M'@M%M9M@L@LLL@LL[@LfLL,@Lډ@K!@KK@KqKwKrKjKhK^@KY@KV@KUKTM@KMK@KKK>JUJ@JJ@J@JJJkJ@ĴJJęJ@JJ_@J@J;J@J@J J@J@Ju@J#JJJ:JJJJ@Jq@JmJlE@JeJc J]JS8JKOJKOJHJD@JB@J?r@J:,@J7@J/@J,@J&eJB@J{II@I@In@II2Il@Il@Il@Iw@IpvI1.H@H׈HǶHe@He@He@GgG@G@GZ@G~Gt@G2FIFFFFFvFvFnF]g@F/BE{@E@E݅E՜E՜Eb@Eɿ@E'Ex@E&E@E%EEz@Ez@EySEySEt Ep@EnEl$Ee@Eb@EQEO#E>@E4E"PE"PE EgE@E@E @E E D@D@D@D}D@DDDDDDDDD@D@D@D@DNDZ@DD|D+@DԈ@D@DY@D@DDDDp@DDD@D@Dm@ - 3.0.38-1 - 3.0.37-1 - 3.0.35-1 - 3.0.33-1 - 3.0.31-1 - 3.0.30-1 - 3.0.29-1 - 3.0.28-1 - 3.0.27-1 - 3.0.26-1Fedora Release Engineering - 3.0.25-2 - 3.0.25-1 - 3.0.24-1 - 3.0.23-1 - 3.0.22-1 - 3.0.20-1 - 3.0.19-1 - 3.0.17-1 - 3.0.16-1 - 3.0.15-1 - 3.0.14-1 - 3.0.13-1 - 3.0.12-2 - 3.0.12-1 - 3.0.11-1 - 3.0.9-1 - 3.0.8-1 - 3.0.7-1 - 3.0.6-1Dan Walsh - 2.2.69-1Dan Walsh - 2.2.67-1Dan Walsh - 2.2.66-1Dan Walsh - 2.2.65-1Dan Walsh - 2.2.64-1Dan Walsh - 2.2.63-2Dan Walsh - 2.2.63-1Dan Walsh - 2.2.62-1Dan Walsh - 2.2.61-1Dan Walsh - 2.2.60-1Dan Walsh - 2.2.58-1Dan Walsh - 2.2.57-1Dan Walsh - 2.2.56-1Dan Walsh - 2.2.55-2Dan Walsh - 2.2.52-1Dan Walsh - 2.2.50-1Dan Walsh - 2.2.48-1Dan Walsh - 2.2.47-1Dan Walsh - 2.2.46-1Dan Walsh - 2.2.45-1Dan Walsh - 2.2.44-1Dan Walsh - 2.2.43-1Dan Walsh - 2.2.42-1Dan Walsh - 2.2.41-1Dan Walsh - 2.2.40-1Dan Walsh - 2.2.39-1Dan Walsh - 2.2.38-1Dan Walsh - 2.2.37-1Dan Walsh - 2.2.36-1Dan Walsh - 2.2.35-1Dan Walsh - 2.2.33-1Dan Walsh - 2.2.32-1Dan Walsh - 2.2.31-1Dan Walsh - 2.2.30-1Dan Walsh - 2.2.28-1Dan Walsh - 2.2.27-1Dan Walsh - 2.2.26-1Dan Walsh - 2.2.25-1Dan Walsh - 2.2.24-1Dan Walsh - 2.2.23-3Dan Walsh - 2.2.23-2Dan Walsh - 2.2.23-1Dan Walsh - 2.2.22-2Dan Walsh - 2.2.22-1Dan Walsh - 2.2.21-2Dan Walsh - 2.2.21-1Dan Walsh - 2.2.20-1Dan Walsh - 2.2.19-1Dan Walsh - 2.2.18-2Dan Walsh - 2.2.18-1Dan Walsh - 2.2.17-1Fedora Release Engineering - 2.2.16-2Dan Walsh - 2.2.16-1Dan Walsh - 2.2.15-1Dan Walsh - 2.2.14-1Dan Walsh - 2.2.13-1Dan Walsh - 2.2.12-1Dan Walsh - 2.2.11-1Dan Walsh - 2.2.10-1Dan Walsh - 2.2.9-1Dan Walsh - 2.2.8-1Dan Walsh - 2.2.1-1Dan Walsh - 2.2.1-1Dan Walsh - 2.2.1-1Dan Walsh - 2.1.13-2Thomas Liu - 2.1.12-2Dan Walsh - 2.1.12-1Dan Walsh - 2.1.11-1Dan Walsh - 2.1.10-1Dan Walsh - 2.1.9-1Dan Walsh - 2.1.8-1Dan Walsh - 2.1.7-1Dan Walsh - 2.1.6-2Dan Walsh - 2.1.6-1Fedora Release Engineering - 2.1.5-2Dan Walsh - 2.1.5-1Dan Walsh - 2.1.4-1Dan Walsh - 2.1.3-1Dan Walsh - 2.1.2-1Dan Walsh - 2.1.1-1Ignacio Vazquez-Abrams - 2.0.12-2Dan Walsh - 2.0.12-1Dan Walsh - 2.0.11-1Dan Walsh - 2.0.10-2Dan Walsh - 2.0.10-1Dan Walsh - 2.0.8-2Dan Walsh - 2.0.8-1 - 2.0.6-1John Dennis - 2.0.5-1 - 2.0.4-1 - 2.0.2-1 - 2.0.1-1 - 2.0.0-1John Dennis - 1.10.7-1John Dennis - 1.10.6-1John Dennis - 1.10.5-1John Dennis - 1.10.4-1John Dennis - 1.10.3-1John Dennis - 1.10.2-1John Dennis - 1.10.1-1John Dennis - 1.10.0-1John Dennis - 1.9.7-1John Dennis - 1.9.6-1Dan Walsh - 1.9.5-1Dan Walsh - 1.9.4-1John Dennis - 1.9.3-1Dan Walsh - 1.9.2-1Dan Walsh - 1.9.1-1Dan Walsh - 1.8.19-1Dan Walsh - 1.8.18-1Dan Walsh - 1.8.17-1John Dennis - 1.8.16-1Dan Walsh - 1.8.15-1John Dennis - 1.8.14-1John Dennis - 1.8.13-1John Dennis - 1.8.12-1John Dennis - 1.8.11-1Dan Walsh - 1.8.10-1Dan Walsh - 1.8.9-1Dan Walsh - 1.8.8-1Dan Walsh - 1.8.7-1John Dennis - 1.8.6-1John Dennis - 1.8.5-1John Dennis - 1.8.3-1John Dennis - 1.8.1-1Dan Walsh - 1.7.1-1Dan Walsh - 1.7-1Dan Walsh - 1.5-1Dan Walsh - 1.4-1Dan Walsh - 1.3-1Dan Walsh - 1.2-1Dan Walsh - 1.1-1Dan Walsh - 1.0-1Dan Walsh - 0.48-1Dan Walsh - 0.47-1Dan Walsh - 0.46-1Dan Walsh - 0.45-1Dan Walsh - 0.44-1Dan Walsh - 0.43-1Dan Walsh - 0.42-1Dan Walsh - 0.41-1Dan Walsh - 0.40-1Dan Walsh - 0.39-1Dan Walsh - 0.38-1Dan Walsh - 0.37-1John Dennis - 0.36-1John Dennis - 0.35-1Dan Walsh - 0.34-1Dan Walsh - 0.33-1Dan Walsh - 0.32-1Dan Walsh - 0.31-1John Dennis - 0.30-1Dan Walsh - 0.29-1Dan Walsh - 0.28-1John Dennis - 0.27-1Dan Walsh - 0.26-1Dan Walsh - 0.25-1Dan Walsh - 0.24-1John Dennis - 0.23-1Dan Walsh - 0.20-1Dan Walsh - 0.19-1Dan Walsh - 0.18-1Dan Walsh - 0.17-1Dan Walsh - 0.16-1Dan Walsh - 0.15-1Dan Walsh - 0.13-1Dan Walsh - 0.12-1John Dennis - 0.11-1Dan Walsh - 0.10-1Dan Walsh - 0.9-1Dan Walsh - 0.8-1Dan Walsh - 0.7-1John Dennis - 0.3-1John Dennis - 0.2-1John Dennis - 0.1-1- Remove dependancy on X from sedispatch- Move serverconnection.py and FixIt commands from setroubleshoot to setroubleshoot-server - Remove run_cmd.py- Make work on RHEL6 - Fix if Button to allow user to select full button- Stop translating strings into bogus hex strings- Allow browser to close even if windows are still open - Cleanup imports in gui_utils.py- Change seapplet to only check for AVCs on login, if checkonlogin flag is turned on in ~/.setroubleshoot file - Fix list_all_alerts bug causing crash on bad type- Fix handling of "/" in alert list - Update translations- Tighten up screen to fit on little screens- Remove dependance on gnome python modules - Update translations- Cleanup handling of current_alert - Change Details button to say Plugin\nDetails- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild- Turn off sensitivity of details button when no AVC's exist- Add ProtocolError from xmlrpclib so Bugzilla reporting throwing an error will work.- Fixup for allow_execstack have to add pid to avc struct- Fix email_alerts to work with new infrastructure- Added details button and context as tooltips to gui on front end for advanced users- Fix man page to reflect change in gui - Fix sealert -fixit call to import load_plugins - update translations - Fix handling of empty tpath in gui- Fix dbus Introspect handling - Make sealert use terminal for errors when in terminal mode- Update Translations- Fix Details Button - Fix table display - Handle situations when you have no spath and tpath- Fix dbus config file to allow console to use sealert- setroubleshoot will create /var/run/setroubleshoot if it does not exist- Ghost /var/run/setroubleshoot- Update translations - Allow seapplet to check for updates- Better handling of tracebacks in terminal mode - Fix up messages on process and capability avc messages - Update translations- Fix config name- Fix crash in sealert with missing log_* - Report bugzillas in english- Apply patch from Yuri Chornoivan to fix spelling mistakes - Remove py files that are no longer used - Add details button- Fix handling of report_count and ignore button- Add white level, so plugins can tell setroubleshoot to ignore avc- Fix browser to handle ignore flag - Remove tpath for signature - Fix audit2why handling for sealert and setroubleshoot - Fix sort order selection - Fix dontnotify handling- Update translations- Fix saving last position exception- Fix seapplet infinite loop from Tim Eliseo- Fix requires setools-libs-python line- Fix setroubleshoot seapplet to not show ignored avc- Remove packagekit dependancy- Add Gavin Romig-Koch report patch - Cleanup Browser window - Remove avc messages that are allowed or dontaudited in current poilcy- Remove untest attachfile code - Catch ProtocolError- Fix remembering of bugzilla username/password- Remove send_interface from Setroubleshootd.conf- Don't crash on missing inode - Fix up default_encoding an translations- Cleanup spec file - Add default_encoding - Fix wording in bug report window- Fix ignore button - Add delete button- Exit with error code if you run sealert as root and try to connect to session bus - Fix Crash when ino is not defined- Fix bug in substitute code- Fix semanage fcontext lines to substitute "." for " " in path - Update po- Fix bugzilla reporting to work on RHEL6- Do not translate hex files - Catch exception on non dbus system- Get version correct for both RHEL and Fedora- Fix crash on selinux disabled and bad /etc/redhat-release reporing of bugzillas- Update po - Fix bugzilla reporting to handle LoadError exception- Add icon to browser- Fix up browser button handling when there are 0, 1 or more alerts- Catch additional bugzilla exception- Show that the application is starting. - Fix ignore sealert button- Don't throw up an error box if yum cache is not setup- Fix Fix It button - Remove Setroubleshoot: from every heading- Fix translations, plurals and glade - Update Po - Fix plural form - Add support for Green Plugins- Fix translations, plurals and glade- Fix browser bug handling- Fix translations- Update po and fix translation line- Fix permissive domain check- Close open file descriptors on exec- Fix setroubleshoot error dialog and hash to catch more dups on reportbug- Fix pipe and socket plugins to return tclass as path- Fix permissive fix- Add PackageKit requires- Move python-slip-dbus requirement to server package- Fix Permissive Domain reporting- Turn on libcap-ng-devel- Differentiate between permissive domains and permissive mode- Turn on libpcap- Turn on copy to clipboard button-Update to upstream - 2009-8-18 Thomas Liu - Added check for new policy.- Default syscall field in audit_data- Add buildrequires python-slip-dbus- Add sgrubb drop capabilities, patch - Fix infiniteloop- Fix handling of mountpoints that the kernel reports as "/"- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild- Fix sesearch handling- Fix a1 handling- Update to upstream 2009-7-15 Dan Walsh - Fix handling of syscall record a1 field - Translate "/" to mountpoint when returned by kernel- Update to upstream 2009-7-07 Thomas Liu - Fixed detail doc not clearing when deleting all alerts - Hid notify check when deleting all alerts.- Fix locate code to use os.lstat- Update to upstream 2009-7-01 Thomas Liu - Fixed browser behavior when there are no alerts - Fixed seapplet behavior when there are no alerts - Made delete all button delete alerts on server side and on local side- Add open access to audit_data.py define statements- Update to upstream 2009-6-25 Thomas Liu - Added a "Copy to Clipboard" button to the browser GUI.- Add sesearch- Fix handling of last seen - Add open_with_write check- Update to upstream * Thomas Liu Bug fixes to GUI, added Delete All Alerts menu item.- Update to upstream * New Gui- Fix handling of PATH with locatepwd- Redesign of GUI- Fix handling of PATH- Fix crash when gathering stats- Make sure setroubleshoot exists after 10 seconds- Change multiple signatures from exception to warning - Update links on fedorahosted.org- Fix sealert segfault- Stop sending messages with scon or tcon == setroubleshootd_t- Split out documentation- Stop logging on normal shutdown of sedispatch- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild- Fix cpu utilization problems - Save database on exit- make sure setroubleshoot is running when using sealert -l- sedispatch needs to connect to dbus on avc arrival, instead of startup, since the dbus daemon is not started when sedispatch starts- Fixes missing dbus config files- Switch to C Based applet - Use dbus for messaging. Only run setroubleshoot when- Rebuild for Python 2.6- Update to upstream - 2008-10-06 Dan Walsh - remove .png from desktop files- Update to upstream - 2008-10-22 - Fix pruning code - Fix time stamps- Fix requires line to gnome-python2-gnome- Fix startup problems- Fix setroubleshoot init to rely on messagebus being running- Fix spelling mistakes - Update translations- add dialog to run a command in the background, capture it's stdout & stderr report it's status, kill it, and pass it a pseudo terminal for password prompts - separate the fix command into it's own section in formatted alerts - add UI for running the fix command, enable only if there is a single selection and the selected alert has a fix command - add a config parameters 'run_fix_cmd_enable' to control if fix commands can be run, defaults to False - Resolve bug 431380: prevent notify popups while setroubleshoot is open- allow sealert -l lookup to accept * wildcard - add a few more audit fields needing special decode handling- Resolve bug 430421: audit_listener_database.xml:3029: parser error in xmlParseDoc() rewrite the audit_msg_decode logic to beaware of specific audit fields - add new template substitution $SOURCE, a friendly name, $SOURCE_PATH still exists and is the full path name of $SOURCE, also add 'source' attribute in AVC class, fix how source and source_path are computed from audit's comm and exe fields - fix the computation of tpath to also look at the audit name field, formerly it had only been looking at path, fixes showing up for many targets - add exception handling around xml file writes (Alan Cox reports problem when /var is full) - add testing documentation - Resolve bug 430845: obsolete URL in setroubleshoot package description - Resolve bug 428960: Permissive message makes no sense. - init script now allows extra test options - show_browser() now opens and raises the window (e.g. presents) rather than just assuring it's realized (e.g. iconified, or hidden) - sealert -l message in syslog converts from html before writing to syslog - Resolve bug 320881: export setroubleshoot_selinux_symposium in PDF format - add code to verify all async rpc's have been cleared from the async rpc cache - add code to set a default rpc method return if the interface does not define a callbak (methods which did not have a callback were not returning anything and hence were no getting cleared from the cache)- Resolve bug 428252: Problem with update/remove old version - Add code to validate xml database version, if file is incompatible it is not read, the next time the database is written it will be in the new version format. This means the database contents are not preserved across database version upgrades. - Remove postun trigger from spec file used to clear database between incompatible versions the new database version check during database read will handle this instead - bullet proof exit status in init script and rpm scriptlets - Resolve bug 247302: setroubleshoot's autostart .desktop file fails to start under a KDE session - Resolve bug 376041: Cannot check setroubleshoot service status as non-root - Resolve bug 332281: remove obsolete translation - Resolve bug 344331: No description in gnome-session-properties - Resolve bug 358581: missing libuser-python dependency - Resolve bug 426586: Renaming translation po file from sr@Latn to sr@latin - Resolve bug 427260: German Translation - enhance the sealert man page- make connection error message persist instead of timeout in browser - updated Brazilian Portuguese translation: Igor Pires Soares - implement uid,username checks - rpc methods now check for authenticated state - fix html handling of summary string - add 'named' messages to status bar, make sure all messages either timeout or are named - fix ordering of menus, resolves bug 427418 - add 'hide quiet' to browser view filtering, resolves bug 427421 - tweak siginfo text formatting - add logon to SECommandLine so that sealert -l works- prepare for v2 test release - Completed most work for version 2 of setroubleshoot, prepare for test release - import Dan's changes from the mainline primarily allow_postfix_local_write_mail_spool plugin - escape html, fix siginfo.format_html(), siginfo.format_text() - add async-error signal - change identity to just username - make sure set_filter user validation works and reports error in browser - fix generation of line numbers and host when connected to audispd - add permissive notification, resolves bug 231334: Wording doesn't change for permissive mode - resolves bug 244345: avc path information incomplete - get the uid,gid when a client connects to the server - set_filter now verifies the filter is owned by the user, - resolves bug 288261: setroubleshoot lack of user authentication - remove filter options which weren't being used - change '@' in audit data hostname to '.' - remove restart dialog resolves bug 321171: sealert's dialog after update is higly confusing - fix rpc xml arg - fix handling of host value - tweak what fields are in signature - move data items which had been in 'avc' object into siginfo - clean up siginfo format - large parts of new audit data pipeline working, checkpoint - fix duplicate xml nodes when generating xml tree - audit event can now be xml serialized - switch from using int's for audit record types to strings - avoid conversion headaches and possibilty of not being able to convert a new unknown type - add logic to allow XmlSerialize to be subclassed and init_from_xml_node to be overridden - add support to xml serialize classes AuditEventID, AuditEvent, AuditRecord - use metaclass for xml class init - start adding xml support to audit data classes - Use metaclass to wrap class init - move xml serialization code from signature.py to xml_serialize.py - simplify aspect of the serialization code - add unstructured xml mapping, each xml element name has its content mapped to obj.name - modify xml serialization to be driven by xml contents - general clean up - checkpoint conversion of serialization to use metaclasses - clean up class/data specifications for XmlSerializable - add support for client rpc testing - add changelog entry - add SubProcess class to setroubleshootd in preparation to - run daemon as subprocess so we can gather results and compare them to the expected data we sent - rewrite all plugins to use new v2 audit data - add SubProcess class to setroubleshootd in preparation to run daemon as subprocess so we can gather results and compare them to the expected data we sent - add new test support: add config section 'test', add boolean 'analyze' to config test section, add class TestPluginReportReceiver which is installed if test.analyze is True, it prints analysis report. In test_setroubleshootd send AUDIT_EOE to assure sequential event processing so analysis results have same ordering as events that are sent by test_setroubleshootd - alert signatures now include host information, alerts will be grouped by host- Fix spec file requires for opening an HTML page In configure.ac search for xdg-open and htmlview in priority order, set variable html_browser_open to the one found, in spec file require xdg-utils for fedora and htmlview for RHEL. - add "Host" column in browser add "Toggle Column Visibility" menu to toggle display of any column on/off - Resolves bug 310261: setroubleshoot notifications aren't throttled - add support for AUDIT_EOE, end-of-event, if AUDIT_EOE immediately emit cached event. Disable timeouts used to flush events if AUDIT_EOE has been seen.- make selinx-policy requires in spec file specific to dist tag- update code for command line log file scanning to work with new log file scanning code introduced for the browser. - update Bulgarian translation (Doncho N. Gunchev (gunchev@gmail.com)) - update Polish translation (Piotr Drąg (raven@pmail.pl)) - Resolves bug 239893: sealert wakes up very often This was caused by the use of threads and pygtk's thread signal handling. The only use of threads in sealert was for log file scanning so that the UI would remain responsive during a scan. Threads in sealert have now been completely removed. Instead the scanning work is performed in a gobject idle function called from the main loop. The idle function is written as a python generator function which allows for the function to perform a small amount of work, save it's execution state and return. The next time the idle function is called from the main loop it resumes execution from it's last state until it decides to yield control again. This way the long running scan/analysis can be performed in small successive units of work during the time the application is otherwise idle and it does not interfere with the rest of the GUI event processing. Everything now occurs in an event loop, think of it as the applications process/thread scheduler whose event handlers execute time slices. - rewrote parts of the audit input pipeline to use generators instead of callbacks, thus permitting the logfile scanning code to yield control with more granularity. Also updated test_setroubleshootd and audisp_listen to use the new generator/yield logic. - rewrote the dialog used for scanning log files, progress bar updates are now in the dialog, the scan can be terminated part way through, errors from the scan are reported in pop-up dialog, one can only dismiss the dialog with success if the scan had been successfully run to completion, otherwise the user is only left with the option to cancel. - Relates bug 252035 bug 247469, setroubleshootd and sealert should exit if SELinux is disabled. - add utility functions escape_html() and unescape_html() - fix initial sort order in browser, track sort order in browser - modify AVC.get_path() to only return a value if the 'path' field is set, formerly it also considered the fields 'name' & 'file' which were incorrect. get_path() now also looks to see if the string begins with a slash for a fully qualified path, if not it looks to see if its a pseudo path such as 'pipe[12345]' or 'socket[12345]' and if so strips out the instance information inside the brackets and returns just the type of the pseudo path. This is done because we do not want path information in the signature to be unique for each instance of the denial. - modify the TimeStamp class to hide it's internal datetime member, remove the cmp() method, the internal __cmp__ will be automatically invoked. - require selinux policy version in spec file to allow system dbus use - Resolves bug 256601: audit2allow generates incorrect syntax when comma "," in denied list - update po i18n files - Add support for pruning database by age and size- fix init script- modify avc_audit.py to use new audit_data.py implementation - can listen for audit events on either /var/run/audit_events in bindary protocol mode or /var/run/audisp_events in text protocol mode- remove all copied code from test_setroubleshootd, now we import from setroubleshoot - export ClientConnectionHandler from rpc.py as a base class. Derive SetroubleshootdClientConnectionHandler and AuditClientConnectionHandler from ClientConnectionHandler. - add audisp_listen as test program - create setroubleshoot sym link in top devel directory pointing to src so import setroubleshoot.foo if PYTHONPATH=topdir - add get_option, convert_cfg_type to config.py.in so that one can pass optional dict to override config file settings - rewrite log_init() so it's easier for other programs to use it, fix the import logic concering log & config - remove log code from test_setroubleshoot, now just does import from setroubleshoot. - test_setroubleshootd can now handle audit records in both text and binary formats, can be selected by command line arg. It can now either output to clients connecting on a socket or to stdout. Can now optionally exit after N socket client connections. - remove non audit record lines from test data - remove config_init() and log_init() from package __init__.py It was the wrong place to call them, now call them when the process initializes before the first setroubleshoot imports - add parse_config_setting() and set_config() to config module - setroubleshootd now accepts -c --config command line arg - test_sectroubleshoot: add err defines & program_error exception add is_valid() tests to assure we read a valid audit record log the unrecognized line if not valid, clean up socket close() - Relates Bug #247056, update initscript to LSB standards Note: LSB initscripts in Fedora is not yet a resolved issue, the changes implemented were to add an LSB block and support the new LSB try-restart and force-reload commands. However the new /lib/lsb/init-functions are NOT currently used as this is the unstable part.- add BuildRequires perl-XML-Parser- move all plugins and their translations to independent package - wrap XML generation inside try/except - correct how access list is obtained in avc_auparse.py - add try/except around top level of AnalyzeThread.run so exceptions in the thread get reported and the analysis thread does not just die. - also add try/except around LogfileThread.process_logfile - add new function assure_file_ownership_permissions() - server now forces it's database file permissions/ownership to be 0600 root:root - rpm now forces the server's database file permissions/ownership to be 0600 root:root - Resolves Bug #251545: Review Request: setroubleshoot-plugins - analysis plugins for setroubleshoot - clean up some other rpmlint warnings in setroubleshoot.spec - fix missing install of setroubleshoot icon and sym link to it - Resolves Bug #251551, setroubleshoot shows up in in wrong desktop menu also run desktop-file-install in rpm install - add /etc/dbus-1/system.d/setroubleshootd.conf dbus configuration file - Resolves Bug #250979, Bug #250932 Missing dependencies - Restore plugins/Makefile.am which got nuked somehow - remove dus.dbus_bindings.bus_name_has_owner(), deprecated as of F7 - wrap rpm transactions in try/except- Resolves Bug# 241739, this bug is the lead bug for several bug reports, all consequences of the same problem, setroubleshootd/sealert when run in a non latin language environment because of incompatibilities in i18n encoding between components.- add avc_auparse.py, now has option to use audit parsing library instead of built-in audit parsing. - fix bug in log file scanning and detail display update - Resolves Bug# 238516, python pkg directory not owned- Update translations - Fix mislabeled file- Remove disable_trans boolean - Check for paths in filesystem before suggesting chcon -R - Remove default to listen on local ports- install icon in /usr/share/icons, refer to icon by name using standard API - Fix performance problems in setroubleshoot browser log file scanning - Significant rewrite of data/view management code in setroubleshoot browser. data and view now cleanly separated, can easily switch between data views while maintaining selections, view state, with proper update of status information in status area - Resolves Bug# 227806: right click context menu resets selection - Logfile scans now operate in independent thread, proper asynchronous updates of browser during scan, browser used to appear to hang - Resolves Bug# 224340: Rewrite Menu/Toobar/Popup to use UIManger instead of glade - Add toobar support - Implement GUI to edit email recipient list in setroubleshoot browser - Added user help to setroubleshoot browser - Related Bug# 224343: Fix setroubleshoot browser to respond to desktop theme changes - improve traceback error reporting in sealert - rewrite AboutDialog, replacing glade version - Resolves bug 229849 Bug# 230115, Relates bug 221850: fix uuid code to resolve '_uuid_generate_random' is not defined error- Suck in AuditMsg since audit libs are dropping support- Split into server and gui packages- Remove use of ctypes in uuid, which is causing bad avc messages- Remove avc from Plugin.py- Remove tempfile handling in util.py. Causes lots of avc's and is not used[John Dennis ] - Fixes Bug# 224343 sealert's "Aditional Info:" text should be in white box - Fixes Bug# 224336 sealert should have GtkRadioButtons in menu View - Related: bug 224351 Rewrite parts of logging support to better support changing output categories, output destinations. Now -v -V verbose works in sealert. - Resolves bug 225161, granted AVC's incorrectly identified as a denial - add alert count to status bar - add "Help" command to Help menu, opens web browser on wiki User FAQ [Dan Walsh ] - Make setroubleshoot.logrotate correctly- Update po - Additional Plugins - Cleanup Plugins- Fixes 221850 plugin module loading was failing in python 2.5 with the message "SystemError: Parent module 'plugins' not loaded". This is due to a change in behavior between python 2.4 and 2.5, in python 2.4 the lack of a parent module was silently ignored. The fix is to load plugins.__init__ first.- update translations - change SETroubleshootDatabase so it is optional if it's backed by a file, this fixes the problem of us littering temporary files when scanning logfiles which does not require persistence. - disable the view logfile menu item if no logfile has been opened - fix redundant log messages for case where there is no log file and the console flag is set. When there is no log file the logging module opens a console stream, thus the console stream produced by the console flag was redundant. - add username and password command line arguments rework startup logic so that all command line args are processed before we do any real work - rework the email preferences so that each email address can have a filter type associated with it. add a new filter_type "Ignore After First Alert" which filters after the first alert has been delivered - add UI for setting the email addresses alerts are sent to. Add menu item to edit email list, add email list dialog. Remove 'recipient' config file entry, now list is stored in seperate file. Add rpc to query and set the email list, the GUI calls this to get the current list from the server and set it in the server, it is the server which reads and writes the file. Add 'enable' flag to each email entry. Modify how the server iterates over the email list when it receives an alert. When marking an alert as having been sent the username is the email address but with 'email:' prepended so as not to collide with non-email filtering options for the same user.- remove obsolte requires for python element tree- Fixes 216575, more translations - Replace delete and expunge menu labels with something more intuitive - add ability for browser to be restarted with identical window position and state - add pkg version and protocol version to logon handshake, test for compatibility between clint and server, prompt for restart - add non-modal restart dialog - add dialog to display traceback if sealert faults with an uncaught exception, try to limit invisible errors - fix return args on rpc method - add instance id to server- Improve quality of plugins - Make matching easier - Fixes 216575- Additional Translations - Fixes 216575- Additional Translations - Change sealert to be able to run without X-Windows - Fixes 216575- Additional Translations - Change avc_audit.py to allow it to analyze /var/log/messages- Fixes 218150, "If view is set to "hide delete" you cannot filter new entries" Actually, the bug was toggle cell renderer was connected to the base model instead of the model attached to the view, the sort model, this meant the toggle was occuring on the wrong row if the view was sorted differently than the base model.- fix bug, "could not convert path to a GtkTreePath" when database is initially empty, caused by last_selected_row == None- Fixes 217961, sealert needs pygtk2-libglade - more i18n translations - Fixes 217710, date representation did not respect locale, at the same time remove old date formatting code, now cruft since we can't use it because it was specific to US English. - fix how selections are handled when rows are expunged. - add Copy to Edit menu, for copying selection from detail pane, unfortunately gtkhtml2 widget does not preserve line breaks between table rows.- Fixes 216936, bug 215290, add 'Copy Alert' edit menu item - clean up menu items, add tooltips - fix printing so it will work with multiple alerts, force font to monospace 10pt, display error dialog if printing fails. - Fixes 216908, platform and raw audit messages were not wrapped to fit on page. - Related: 216575, update i18n po files - Fixes 216941, set default folder for save operation, also set default filename - Fixes 216327 add menu items "toggle hide deleted", "select none". Add model filter to control visibility of alerts - Fixes 214218, sealert with no command line arguments induces startup as dbus service, this had been a regression. - Fixes 216327, rework how deletes are performed in browser. Delete now marks each seleted siginfo with a delete flag, expunge permanently deletes siginfo's marked for deletion, also add undelete command, removed delete confirmation dialog. Modify how text attributes in cell renderer are computed to allow for strike-throughs of alerts marked for deletion. - multiple alerts can now be selected, add select all command,- New Icon and translations[John Dennis ] - Add command line utilities - logfile scanning finally seems to work connected to browser - Additional Information section of report now includes line number information (if alert was generated from logfile) - replace database update_callback() with notify interface, a more generic solution more easily shared between components - object implementing rpc method is now explicitly attached via connect_rpc_interface() instead of walking the MRO chain with magic exclusions. explicitly connecting is more flexible and robust (no getting the wrong object by mistake) - fix handling of return args in local rpc case - fix signal connections between audit and logfile - split databae and database_properties for audit and logfile - fix initial connection state - fix lookup_local_id- Speed up startup of service- Many fixes - Changed the api- Speed enhancments [John Dennis ] - log file parsing now approx 4 times faster - greatly enhance the statistics reporting capability in attempt to diagnose slow log file parsing performance - make gathering of environmenatal information optional, environment information is only relevant at the time the alert fires, not in a post processing scenario - clean up several places where environmental information was assumed and/or was always gathered, or gathered in the wrong place.- Fix signature for PORT_NUMBER src command- Additional Plugins for port_t and device_t and mislabled files.- Release of first version - Fix icon [John Dennis ] - Memory leak fixes - Substitution fixes - File names in hex fixes- Sealert only notify dropped connection once - setroubleshoot shutdown cleanly [John Dennis ] - Gui cleanups- Change close key binding to ctrl-w- Add new plugins cvs_data, rsync_data, xen_image, swapfile, samba_share [John Dennis ] - clear the GUI of old data before loading new data, fix the code used to display the filter icon in the filter column[John Dennis ] - Major rewrite of the client/server RPC code,- Fix Affected RPMS handling- Fix mail handling - fix bugs related to recording per user per signature filtering [John Dennis ] - fix bugs related to recording per user per signature filtering [Karl MacMillan ] - Add signal handling to client and server. - Fix minor plugin bugs.[Karl MacMillan ] - Add rpm information for target. - Add hostname and uname to signature info - Add display of the full AVC - Add display of the analysis id - Change html generation to be separated out and us elemmenttree [John Dennis ] - add CommunicationChannel class to encapsulate data transfer operations, in particular to provide an object threads can lock during data transfer. - checkpoint the logfile scanning code, somewhat working- Fix printing- Fix notification window problems. Now dissappears and does not regenerate if it has already been seen- Add Icon [John Dennis ] - dispatcher.py: rework how audit messages injected into the system and processed. Much of this work was in support of log file scanning which should be coupled to the exact same processing code as audit messages arriving from the audit socket. In essence log file scanning synthesizes an audit message and we inject it into the system the same way socket messages are injected. This was also an excellent moment correctly handle out of order audit messages, something we were not able to handle previously. This may have been contributing to splitting what should have been a single alert into two or more separate alerts because we didn't recongize the incoming audit events as a single event. Correctly assembling out of order messages introduced a fair amount of extra complexity as we now maintain a cache of recent audit events, this is fully documented in dispatcher.py - Turn notifications back on by default. [Karl MacMillan ] - Separated out HTML rendering and made it easier to translate.[Dan Walsh] - Hook up the rest of the menu bars on browser window - Add public_content.py plugin [John Dennis ] - add delete_signatures() method to AlertClient class - start using the AppBar in the browser. - "open logfile" now connected all the way from browser menu to server rpc, still needs implementation, but "plumbing" is working. - fixes for the date/time dialog - remove install of setroubleshoot.glade, we now only use setroubleshoot_browser.glade - some fixed to DateTimeDialog- Add back in the status icon- change dbclear trigger to 0.35- add sorting on category column and seen column in browser, fix reference to my_draw() in print function. - make browser window hidden by default so it does not flash when it's first realized, connect to the "realize" signal to initially position the vpane, add signal handlers to track when the browser is visible, the presentation of the status icon now checks if the browser is visible, the status icon is not presented if the browser is already displayed.- Standardize on the browser. remove alert window [John Dennis ] - remove all vestiges of popup alert, now browser is the only UI game in town - restore the automatic updating of the browser window which had been a regression, the AlertClient class now emits signals which the GUI classes can connect to receive signals from the fault server, also fix the "mark seen" regression - browser.py: restore mark_seen timeout- Spell check plugins - fix dbus instantiation- Add avc_syslog to syslog translated avc message - Fix submitbug button [John Dennis ] - fix signature inflation, all data attached to a signature is now encapsulated in a SEFaultSignatureInfo (siginfo) class. The GUI no longer reaches into a signature looking for information, it looks in the siginfo. The Plugin class now defines the method get_signature() which report() calls to obtain the signature. The default signature provided by the Plugin class includes the analysisID, an AVC with just the src & target contexts, and the object_path. All data accesses and parameters which had been "sig and solution" are now done via the unified siginfo class. There is still a bit more work to be done on this but this represents a reasonble point to checkpoint the code in CVS.- Fix desktop- fix bug 203479, missing requires of audit-libs-python - add support to sealert to listen on a dbus session signal to display the gui. This is needed for when the status icon is not visible and the user wants to see the UI. There is now a seperate program setroubleshoot_launch_gui which emits the signal.- Add Requires: audit-libs-python - Add translations- Fix allow_execmem.py file - Add translations- load_plugins() now catches exceptions when a plugin won't load, reports the traceback in the log file, and continues with the next plugin. Previously a bad plugin caused the entire plugin loading to abort and no plugins were loaded. - Add "daemon_name" to automake variables, change pid file to match - turn off "noreplace" on config file till things settle down a bit - browser.py now validates data, also test for missing column data in the cell_data function to avoid exceptions. - add stub for analyzie_logfile() rpc call - turn off balloon notifications by default in config file, libnotify is just plain busted at this point :-( - only the setroubleshootd daemon creates it's log file under /var/log now, the user app's do it in /tmp, change file permissions on /var/log/setroubleshoot back to 0644. - sealert now looks up the username rather than hardcoding it to "foo" - CamelCase to lowercase_underscore clean up- Zero out datbase.xml for updated browser- Fix 64 bit issue that caused runaway problem- add missing runcmd- fix for bug 202206, require correct version of audit, fixes for audit connection.- add html support - remove setroubleshoot_dispatcher2006-08-08 Dan Walsh - Fix up handling of mls ranges in context - Cleanup some pychecker errors 2006-08-07 John Dennis - add first seen, last seen, and report count to alert detail view - make the seen icon work, if the alert has been displayed more than N seconds, mark the alert as having been seen by the user and update the icon is the list view - change the schema for the xml data; the database now has a version, there is a local id attached to each signature, the filter list in the siginfo was replaced by a list of per user data, the per user data now contains the filter, seen_flag. Modify all the code which was operating on the filter information to use the new model. - fix the xml serialization so that booleans can be used as a basic type and also so that non-string types can be used in element attributes (e.g. int, bool) and the serialization code will automatically convert between python types and strings.- Add dispatcher.py[John Dennis ] - clean up and rework the timestamp code in util.py so that time zones are handled properly, there were a number of bugs. Hopefully it's correct now because timezone handling is a pain. - change the time format in the browser so all times are displayed identically, the friendly time relative format was hard to compare. - modify the plugin 'make install' to delete all existing plugin's prior to installing the new ones - add popup menu to status icon to choose between browser and alert GUI (not fully connected yet). Several bug fixes related to changing the filter_type from a string to an int. - add filter selection to bottom pane, change filter_type from string to integer constant. Enhance how columns are handled. Get init_combo_box to work. Remove unused RPM and Bugzilla fields from bottom pane. Modify the default size of the browser window. Fix missing import in util.py. - add ability in broswer to sort on columns, initially the report count column and the last seen date column. The date column now stores a TimeStamp object instead of a string. Add new method to TimeStamp to return a friendly string relative to the current time. The date column in the browser now has a cell data function which invokes the friendly format method of the TimeStamp object. - add ability fo serialize to/from xml for classes which can inititialized from strings and serialized as strings (e.g. numbers, TimeStamps, etc.) - add count of how many times a signature is reported, the date when first and last reported, add columns for report count and last date count to browser. - checkpoint browser code, list pane and detail pane now working. - add initial support for browser applet, move some functions which kept getting reused to util.py - add reporting of environment to email alert (email alerts still need work) [Dan Walsh ] - Fix disable_trans.py set_boolean call - Complete all boolean plugins except disable - Change interface to use audit unix domain socket[John Dennis ] - modify SetFilter in server to return errors instead of throwing an exception. Default the filter list on each alert display. - minor tweaks to alert queue handling - fix analyze() parameter list in ftp_is_daemon.py plugin - sealert now responds to pending alerts more correctly, it shows how many pending alerts are in the queue, if you filter the pending alert status is updated, the next alert button will advance you to the next alert in the queue - simplify major pieces of sealert by coalescing common code into subroutines. [Dan Walsh ] - Complete all boolean plugins except disable - Make Close button work. - Make setroubleshoot_dispatcher exit if it gets an avc about itself[Karl MacMillan ] - Add generic templating mechanism to Plugin - Ported all plugins to use templating mechanism- Fixes to plugins - Fixes to dispatcher- Fix problem in dispatcher- add email alerts - stop the status icon from blinking, add notification balloon.- Fix startup order for setrobleshoot - Fix Plugins- Additional Plugins plus a lot of cleanup- Added a bunch more plugins [Karl MacMillan ] - Add allow_cvs_read_shadow.py, allow_ftp_use_cifs, allow_ftp_use_nfs, and allow_gssd_read_tmp. - Change AVC to have additional helpers for matching messages. - Change Plugin to work better with more than one solution.- Fix setroubleshoot_dispatcher to catch all information from avc. Much cleaner interface and no longer uses audit2allow cruft. - Remove toolbar from popup window since it did nothing, and I think it looks better without it. - fix allow_execmod plugin to report better data.- add missing /var/log directory files section in spec file, and add logrotate script- clean up spec file, reduce rpmlint complaints- Initial build./bin/sh/bin/sh/bin/sh                                                                                                                                                                                ^!^^^^%^&^^^^2^F^F^^^^'^;^;^(^<^<^)^=^=^*^>^>^,^@^@^^-^A^A^.^B^B^0^D^D^1^E^E^3^G^G^4^H^H^5^I^I^6^J^J^^^^^^7^K^K^8^L^L^9^M^M^:^N^N^^^^^^^^^^^^^^^^^5^8^;^>^A^D^J^G^M^P^S^V^Y^\^_^b^e^h^k^n^q^t^w^z^}^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^"^#^^^$^^^^^^^afamarasbebgbnbncacscydadeeleneseteufafifrglguhehihrhuhyidisitjakaknkokuloltlvmkmlmrmsmynbnlnnnsoorpaplptptrorusiskslsqsrsr@latinsvtatethtrukurvizhzhzu3.0.38-1.fc153.0.38-1.fc153.0.38-1.fc15  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUUUVWXXXXXXYZZ[\sedispatch.conforg.fedoraproject.SetroubleshootFixit.conforg.fedoraproject.Setroubleshootd.confsetroubleshootsetroubleshootsetroubleshoot.confsealertsesearch-1.0-py2.7.egg-infosetroubleshootPlugin.pyPlugin.pycPlugin.pyo__init__.py__init__.pyc__init__.pyoaccess_control.pyaccess_control.pycaccess_control.pyoanalyze.pyanalyze.pycanalyze.pyoaudit_data.pyaudit_data.pycaudit_data.pyoavc_audit.pyavc_audit.pycavc_audit.pyoconfig.pyconfig.pycconfig.pyodefault_encoding_utf8.soemail_alert.pyemail_alert.pycemail_alert.pyoerrcode.pyerrcode.pycerrcode.pyohtml_util.pyhtml_util.pychtml_util.pyolog.pylog.pyclog.pyorpc.pyrpc.pycrpc.pyorpc_interfaces.pyrpc_interfaces.pycrpc_interfaces.pyoserver.pyserver.pycserver.pyoserverconnection.pyserverconnection.pycserverconnection.pyosesearch__init__.py__init__.pyc__init__.pyo_sesearch.sosignature.pysignature.pycsignature.pyoutil.pyutil.pycutil.pyouuid.pyuuid.pycuuid.pyoxml_serialize.pyxml_serialize.pycxml_serialize.pyosetroubleshoot_default_encoding-0.1-py2.7.egg-infosedispatchsetroubleshootdorg.fedoraproject.SetroubleshootFixit.serviceorg.fedoraproject.Setroubleshootd.servicesetroubleshoot-3.0.38AUTHORSCOPYINGChangeLogNEWSREADMETODOsetroubleshoot_architecture.svgsetroubleshoot_dataflow.svgsetroubleshoot_modes.svgsetroubleshoot_selinux_symposium.pdfsetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosetroubleshoot.mosealert.8.gzsedispatch.8.gzsetroubleshootd.8.gzorg.fedoraproject.setroubleshootfixit.policysetroubleshootSetroubleshootFixit.pySetroubleshootFixit.pycSetroubleshootFixit.pyoupdater.pyupdater.pycupdater.pyosetroubleshootaudit_listener_database.xmlemail_alert_recipientssetroubleshootsetroubleshoot/etc/audisp/plugins.d//etc/dbus-1/system.d//etc/logrotate.d//etc//etc/setroubleshoot//usr/bin//usr/lib64/python2.7/site-packages//usr/lib64/python2.7/site-packages/setroubleshoot//usr/lib64/python2.7/site-packages/setroubleshoot/sesearch//usr/sbin//usr/share/dbus-1/system-services//usr/share/doc//usr/share/doc/setroubleshoot-3.0.38//usr/share/locale/af/LC_MESSAGES//usr/share/locale/am/LC_MESSAGES//usr/share/locale/ar/LC_MESSAGES//usr/share/locale/as/LC_MESSAGES//usr/share/locale/be/LC_MESSAGES//usr/share/locale/bg/LC_MESSAGES//usr/share/locale/bn/LC_MESSAGES//usr/share/locale/bn_IN/LC_MESSAGES//usr/share/locale/ca/LC_MESSAGES//usr/share/locale/cs/LC_MESSAGES//usr/share/locale/cy/LC_MESSAGES//usr/share/locale/da/LC_MESSAGES//usr/share/locale/de/LC_MESSAGES//usr/share/locale/el/LC_MESSAGES//usr/share/locale/en_GB/LC_MESSAGES//usr/share/locale/es/LC_MESSAGES//usr/share/locale/et/LC_MESSAGES//usr/share/locale/eu_ES/LC_MESSAGES//usr/share/locale/fa/LC_MESSAGES//usr/share/locale/fi/LC_MESSAGES//usr/share/locale/fr/LC_MESSAGES//usr/share/locale/gl/LC_MESSAGES//usr/share/locale/gu/LC_MESSAGES//usr/share/locale/he/LC_MESSAGES//usr/share/locale/hi/LC_MESSAGES//usr/share/locale/hr/LC_MESSAGES//usr/share/locale/hu/LC_MESSAGES//usr/share/locale/hy/LC_MESSAGES//usr/share/locale/id/LC_MESSAGES//usr/share/locale/is/LC_MESSAGES//usr/share/locale/it/LC_MESSAGES//usr/share/locale/ja/LC_MESSAGES//usr/share/locale/ka/LC_MESSAGES//usr/share/locale/kn/LC_MESSAGES//usr/share/locale/ko/LC_MESSAGES//usr/share/locale/ku/LC_MESSAGES//usr/share/locale/lo/LC_MESSAGES//usr/share/locale/lt/LC_MESSAGES//usr/share/locale/lv/LC_MESSAGES//usr/share/locale/mk/LC_MESSAGES//usr/share/locale/ml/LC_MESSAGES//usr/share/locale/mr/LC_MESSAGES//usr/share/locale/ms/LC_MESSAGES//usr/share/locale/my/LC_MESSAGES//usr/share/locale/nb/LC_MESSAGES//usr/share/locale/nl/LC_MESSAGES//usr/share/locale/nn/LC_MESSAGES//usr/share/locale/nso/LC_MESSAGES//usr/share/locale/or/LC_MESSAGES//usr/share/locale/pa/LC_MESSAGES//usr/share/locale/pl/LC_MESSAGES//usr/share/locale/pt/LC_MESSAGES//usr/share/locale/pt_BR/LC_MESSAGES//usr/share/locale/ro/LC_MESSAGES//usr/share/locale/ru/LC_MESSAGES//usr/share/locale/si/LC_MESSAGES//usr/share/locale/sk/LC_MESSAGES//usr/share/locale/sl/LC_MESSAGES//usr/share/locale/sq/LC_MESSAGES//usr/share/locale/sr/LC_MESSAGES//usr/share/locale/sr@latin/LC_MESSAGES//usr/share/locale/sv/LC_MESSAGES//usr/share/locale/ta/LC_MESSAGES//usr/share/locale/te/LC_MESSAGES//usr/share/locale/th/LC_MESSAGES//usr/share/locale/tr/LC_MESSAGES//usr/share/locale/uk/LC_MESSAGES//usr/share/locale/ur/LC_MESSAGES//usr/share/locale/vi/LC_MESSAGES//usr/share/locale/zh_CN/LC_MESSAGES//usr/share/locale/zh_TW/LC_MESSAGES//usr/share/locale/zu/LC_MESSAGES//usr/share/man/man8//usr/share/polkit-1/actions//usr/share//usr/share/setroubleshoot//var/lib//var/lib/setroubleshoot//var/log//var/run/-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=genericdrpmxz2x86_64-redhat-linux-gnu                        ASCII textELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, strippedPython script, ASCII text executableSVG Scalable Vector Graphics imageUTF-8 Unicode textXML document texta /usr/bin/python -Es script, ASCII text executablea /usr/bin/python script, ASCII text executablea python script, ASCII text executabledirectoryemptypython 2.7 byte-compiledtroff or preprocessor input, ASCII text (gzip compressed data, from Unix, max compression)  !"#$%&'()*+,-./012345678EFGHIJKLMNOPQ^_  RRRRRRRRRRRRRRRRRRRRRRPRRRRRR&RRRRRRRRRRRRRRRRRRRRRRRRRRRPR R RRRRRRRRRR&RRRRRRRRRRRRR RRRRRRRRRRRR&RR?7zXZ !PH6|j<\]"k%:pyb:*$5*|D'!Xe6ҰV#Q11y2t6w0G/˸XVy~}ڇ,1_ c0]:^sNh_d!͌TY}.ߟ5v㱒حDIco4Gscz"q]u× J䂈8GU[0 uTصb-]K:&fuc `A@q]qtZBA'WI1r,@zVʪL>Q,e0;aeލ#{&t{y麃C+'M /rdNkYh f _^k,՜~O7Qjj|K1_E` 4g@}Z52M:E,W^CVꅋd!v+Ң^ANDn+hcT1`h;0{}v~iC=:A81~NBrBq/SL9.K]H_vV)ROuݭywtF#b ~B-Hⲝa1XE49gJzVeۜ*w :+j=S{3}3BR%· 2SqT韾nV$6M!tBY `q?hHM_EvJteRGp@79h y+-2-m|53#7Gwk&̅?L-dӡKʛ h{Dh#c BexVpDj:w_oѨLVSa=[tC('DuN-6KU^9w voLyK; B:mY'hS ɝׇh_21 %(j% RJiir_ hDXug n9h( e+IF#!W!j&K*.I?Skq}6F)&j'Gz3CtW门m)iGG7谹6_+xW@HJZO! g1ϰ:z#w.2B$ke4CŠ~e\F9n%[{HOKBQCTO>`U@9cg0e{Eg#0p)9q̂WrF-Z_ܢ MF WW_H6sGoyccʍxi/A3o;iTb2nfcItg5 jM}T۩Ƀi-pxsW>#֡xgF_tr0Z[^E,B+ړ :.۳P櫠qccMA Xځ@üΈ#/h5CT£Ԣ6H;ȚNXŪb4OP8y#6p$[LϤgj?]ɭ *%Pvvp+?άnjLlCRcloM[]:/P5!L"r#9ׯdȸժj~ڀ"꜊[]s>PҞ@ӛR W>tTF` Olnj)Oe X-B_?qaZlO@S[r(v}Jt=f)[)׬ʢ-C'ٱ3 o #;5crjP?slFvz 0~1:_X dWwdNASf!@&u6GwX?\vmyH_gܢ+D9eC@ؕ%T.*~e<ou%5?#󋡯4*/?~Gɱ$њJ~j -eh~ 8Ȁ)~m D2 N1Hmòј^-\YR!WBJ9ZpaErnh~Eղ)- h@݋6[ۅ,)JjJpTˬpWg`ߗ:d(IPcjгn [4A]yЩ%O@,n]wi;?M`1 t3?Wpx)!IO"K*6̖Ǥqyk-ᛪՂ^ғ|,Ck[g]o"AFmS{O!$Wȏ#+}_K|%eȄT^S0aUxn`T7SA8+%c҅7 ~Փd*dtLzm@؅ƴp2v£cS5*!Oƭ ?Aͷ糗8#k(%/ֵ#q3 #UX8Ugɺ}uXZ\q џXX|:+2#"B~uj`g|+@4CtP?8`Ca;$1MnL?(0[Yy_3s}e˿l'Ɖõ"cŝk0, ވX8OZ#yut̨Of cĹ;NX4 C;Ka}LP _6[#)e[oqIMZ /kZ5Q )KZ/a@N7vh+ !.(r 13~R@pnm漕Y%nBZp*ijܑ2.r$cbPu!Uڥ P D sy<̒ 1GLwxt?KKރz3tkoX))3긤;!mZb ^_-?ث~,K-vg0콥^q"꼳gVjNS-jgȅ3%)rfBWƍ6<7f:YiuR U<R ȩU|Z2,,W:&3#O=Μ!&Q4B곭cI[$g,98Ց %3d|v RjH83tANmC쭔TsYTj)88 Xο_6u7ͤs!> m Κ̴tD֭AWHx,3KGɠ1Л㘊}__ X8XFž6;*tY:5c+ 'Q,9|Y.!p%(Xئ"y\͎TvKf!եߗk+?#Vzwv(#V4sӦ &mM3'OFNBl$XPܪP?`AYOo7+Zҩ4#.a\;_SANtW@џn&F cP9Bg@,m{v!!@t .(,{>Avd/J.;ʃ-{ŦlJ4t}6g o<1lIߧq0 " 5T rv9FMi87\1mEE߂b!93{-ukC:7?t&z0Їլ|!l!zy`̾4qJ1ST;p${zofMSmYdZv =a¹J0ee(N*0lrSPW6Y:AF:NR5&$Ya) =\o'H 1(ӺDh\T/__ǥuBр8'_v-bHW:꺭'[c9X d=cU~-Hd^[2sqHQDHH>4=5_I6b} -O2Kޔ* lboG|mXBηnVMzڶBesԓ)uŐ;:3+RF%ug SsR P(zA4լ2Q!$f9lO?ԾFvycH Q!Y?Vy8U!QWc Al(\H<;L7. PQ6'~^\C0CVy" .hFC&9TAr]0ky3^+|jcɫ][EͿ;cEÁEڤ8ַWA-UV)xC>'"qA2umF`޶̜W_Y@ʨm7o]Q6R">DhR=왈n0 _C|mN0ZHn.AIDSʩ(9,U2z]If#!̈́/I<^W/dŀ|\s mR>ܘ8&Hrs+0u<䡄œHMvq?d֑޺.;Yq[fmĺ ]|.1-5Y*ں&e*Q$ w|%-ed!};fk99tn."=*l*B,_γ6ۅ38oh$P­7Bf<čNEoY կzBnhx[:.w E]B3_T+8|f[)]~*z@S_W/j@I"4\"ayXF j(| ;g,z\`T^i [!ZZ{Qdg"*XqMdRؕrMq=$SG ؆].QӋ"> `YyUa[¡w:QG)R]%Z~O10komz d's?!0+r 6 Dj1xroӉ4o&tn8qcy>X@{?BHFuJXw<:Cg1mW֐RpӞdq6z>u|oႥwwCI"ovGOߘpHOUuă)t[uM0ͯC,m:7bX-GBlfA8 x}/KlKHÆ39e6UvmhR^\`ȶ;dY Ox$HأU7{m4\pg.;$xY}Z'vnBQW` dlshΡ|}vFI~d=?'F39λRZѾ{6Ͽˤ_ f'WXsN ;'{w-L[_LUc 8 T$=,k 2㈂('kxو3Sc X;ռ*%[ ߣlޚ ѸQpNXRīq mg}2J5k"sx,զpZVTd~`]8MQ]~4GDoIejs{֢,LSK9A ,K.Ft&|gYo۷*ʼ霈R<ƀ9hc+([MC'9NXp7kC@DtV-ݻiY~ w׽Hk^'30[BH LMuM2Z3C"fa @g) Z\qUt V7faRmy2 V_A#{*iH\M~l姓zd[v~WGH w֡Lylt96J1ǍcmeHD",lLxJ;TjCq6wwzxBQ?hv@*|m߷zA=fB,%UeyUjh̤:ZQ2P>$offoq-`7{ؾ(j<'j݅wD׸C";Dx=ijPV8!/AG+ I wO{!V5SaxaN+/P eiZ ):7tt!]ts(tw1z5Vy10B{LI1n`W ^G1и9$27|ZOy*ʌ%HR~,:ŸGT*3ӯ-p­ݼ5U S2Ij3BC{yPtt>Auy$ R$xV ] h̡^lұpd~R^е_wc+B'4:v8c6qulFX+XZ c]YƓMz?8ڃo\ oG9/Wnɰd>|PWd4k(]1P>5([n`sF{fu8RU|Ь10X1 ks|h lg["!(4 XIj]A_)\T bv7'APC+Sn80\*4Xh[]7+nxe1hqxkl!~D5I[n^׌<+_,‹JD/2FNg++Ʒ?JyJ:\373@%Y`KL"Sdf Z谚1.0yEϜf"x;ʠ!T BBZMk>??E`P<g(XhyGǨ6nս(Dh$ biB ZK BHm3A*=>@ |'8#Dx.%b%bd{Ƿ\p0cH܎o: I\o"V㿵쁕8KII:R4tQǶL1o2zj6t7){bMFE?~/6CeGLmՕ{TW%a}&ߤ2æ8|SBTJܐȅv׆B(Jftΐ.J^?)6ڒ,T$ZE^Zy{9,YyqH6:Ei!TU/Pl 2M] VpB*޹bvǣl%$Habo]VӪ{ǣm!xjHeUBNnG"v'<3$^3hy~0V5O{5Axr_3/ 5y$+==*3ݲ"LENN_lW4Hlp6.~W*0 04q*G-2leqt/}'w5W_q !{ ճػQܭٰ XA0jnl&%eZ,3= jp;HFN+'n?m_1>Qy:ŝ4C]~)v e56. 7,pYg ?ubN*&*[9Es]~-̯4jKٹ`ӹH( @<8nH]};;3;Zv$h4\׭*>hM?h'l#g#Bw&U@(.d$Md6q;u"5Kl{ {j2J^ oGPHQx unN7I,U ˏ(r[ [Xs0Cرge:†T9_:HC?luT2bB6m67XFX` hPC߫D*y>\˃_ W$AX+*2x@3fn,$"ɱKyneRwl܆ %%ߘ:lK'sF " mGB{*6_5ۏ&An_NmKy[5KLq4WוK݌Ղ tzgz^.%S3!?'t ^땛 ī«(O-|H&@S8N!yN($3B]+s{e&9Qv89PCj[R1a1>^uf!'&HeB@ƻYMoFlx-ZB+yNΡك%]tAӚZ 5|6\ޫYlr`.vm@q U%@]xmtXx 뼵ܰ},aColhX▦y3:b4AoBR[+&v 7AaYXu˺}z+h|Uv *|xe CczgӚ{Er3&^0} N"Ts_c3}m~QŗcTq2wp+ՀAY:*H:ieb䴊S6ve \grtK*)voQ7G7(2׹WF띑#9h 8¢ՓIw|T/;w^y,M[[ 6ei )Ɨo7k(}gON [çֈlÎ-Y  q)ϟ`h#u)[LAS] {Pu@ }47O9 w\OM`Mm.\!cN#CB7T$*Xpܬ}=zyCgiu4Aiw׏))&HX39^4Y},}SÑn|y#/zo= Mj:i;f{W$Րc1uT&`^NN,%(jЄ0+̿Z Wq Z&ȋ92]ʑ%ҒVPoq]}_镛_jpaW+yv543vj'YWq96Hs)G{6|mh76ΦH ڵ ׬gd lx (4 $[d:Q6="M6Of=}8nЇ$?7ە|*) igVdG8_̾Y~pu-fX뼗ꃉ({:INClQwp$QƁOr {$xۯf d0~aL#H,pQ&5ƀg.5&CI nݤR4 = _9IFe\R/`FvWh6QN Rd(vx%hWTz,=62_!H (5vޘq/O-\SIP[2gqY릋Q/d0 C?FҺSdi|Д0'څ* Enpc]K{[^ש6H0U0K٘VgS^@mZ0+؈`_ B[}JX|␼a Nw[~1CM/4M #ahĿuA 럧1UU@9is6~ٹ<۾z-YbDtU\)F>&wi}wH3;:jLB,mRh^s Eh11V~YLymHkpu Mw*[$o(@F5F1Gi|v]|As }zH(6ʇU'IQ3]'>ܵkTI8jP 1oݸ:~sUKmL,-ĀΏ־ik"#왗9x83킚dg4vhȚc?Dt%r $7rǭ4{s|0Yۄssty 8NpF`efJ6n[z oN_!*x=]k5V-mﱓ~ BO:}Qvw["0Q4(rPZi4)P{w6V#)wMsQzgYʅTqCj. _=Hc1ڲb(t;n ( L,J>oI0;/RN#ٞ50NJϒF%nVOk~nJ}G=u0~Cʤ咋[-Jj˗ x_dg(Ÿ|rI )ge<5{Mgd!2\ G 1E\)?6Jjٞ^ێe ?1궩lXrt-5|f-G7Y`yM