kobo-hub-0.6.0-1.el7>t  DH`pYqj/5,d=~8>[>R߭d>$N5 *xG:)6^+Tvi~3 k6qSNăm )AnB`~2ut U-hGzh;QZ/qN˗Zddo!LE]ނ趏:i8aOAC&$9sQu"Lp̢wtf KԮ<؏b3pWt+ )}ؿokCrNR~b\q7ׂ7 j7d! }g003296f4a400436777a945388101f7593c8267b3G؉Yq~j/5,d6YBW~H5|[[ glSGVljmFҮ :bbnYF^)JmsVj SDŽmUՆ{1$oNcC4*D=vW50mٸRY./v%zv5ct6 IJ< }IQo; ܺNiwж7,jje #6@};o%[c iu l\BC5y [8#適~eݛsW] (lgѤSaj UŠ8}_P3*WulukWpcb |s_ݺHK$=W50鈦U(ݸv|9p?`d   D| $,( & $   " #`%\'*R*l,h,t , -; (-t8-|9-:3.GthHvdIx`XxYx\x]z^bdmerfulwtuvw8x4y0K\Ckobo-hub0.6.01.el7Xml-rpc and web interface to a task databaseHub is a xml-rpc and web interface to a task database.Ypbuildvm-18.phx2.fedoraproject.org'Fedora ProjectFedora ProjectLGPLv2Fedora ProjectDevelopment/Librarieshttps://github.com/release-engineering/kobolinuxnoarch$__#{{/W6@@_6JH2b x{G^^6_ss!&&0T::ggnuu!f$$A큤A큤A큤A큤AAA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤YmYYmYmYYmYmYYmYmYlYYYmYmYYmYmYYmYmYmYYmYmYYmYmYYmYmYYmYmYYmYmYlYYlYlYlYYlYYYYYYYYYlYYlYYYlYYYYlYYYlYYYYYYlYYYYYlYYYYlYYYYmYYmYmYYmYmYYmYmYYmYmYYmYmYYmYmYYmYmYYmYmYmYYmYmYYmYmYYmYmYYmYmYYmYmYYmYmf640fd74915c4a8af57cda2023c89d6f34a67ca1a1ab88f78cd0ce5ffe95893db6d7907eb82f371dafc109007d36edf92db459dba7fe0aaff310148c5ce37501b6d7907eb82f371dafc109007d36edf92db459dba7fe0aaff310148c5ce37501fc975d2295b94754a62b2a76a89e98d40c31ed987dbc70732a2d18d000269425c5c6f1bf63f6dd2784166fe1d46016ffce9cd48ca9e0379cb628bb66e308e08bc5c6f1bf63f6dd2784166fe1d46016ffce9cd48ca9e0379cb628bb66e308e08b26219202d51e903222b513b3537461770f993d38a2d3cd5e075546e5ec9cc27c7ce49612682751c1b2e4cae207f95ceb400408db1197d55d195f72cbbe758fb07ce49612682751c1b2e4cae207f95ceb400408db1197d55d195f72cbbe758fb08b0a616f757195f4ddf899ba80169def8309bce0503a7c0482ea9530e115af4274c2578ba0aa56b966fbd2ad34cff666217968ff1a35bef32291d801abc3102a9975ef9ecf15e8a0994fcff8b103a22feca583cd8a3b73c2440beeb4ce8dae589975ef9ecf15e8a0994fcff8b103a22feca583cd8a3b73c2440beeb4ce8dae58e31412549f3f0b920dc6a6433980ed45c133a3e6fc2559f76d98d6ccce30b404d7c86e48cfd36fc2a06327a9aa91523d6de879d0260b9463011c5c568399ae29d7c86e48cfd36fc2a06327a9aa91523d6de879d0260b9463011c5c568399ae29c5f2071c3e1f2679dfc95bcfcc2bc88f465b33c4ce95a15ef324b751a4b7a27a2e199e3a05469e004e723bf249dc6b66080e72c0c0f6f616af37c5a2afcf3b221fc620b6e54569d85599eca5bc50a2f4a28fd8a080764b3908c87ca519f5b66bb9ae5d8d66e672724637652f2ea0840127b5915b1ac9fb7f4dfdbe3eb019a9b7252f99ccd64f808cf65f8e4b7c3d8104183de5ffc53953670fbed48d5fad9595252f99ccd64f808cf65f8e4b7c3d8104183de5ffc53953670fbed48d5fad9595ed10e524de0da052e7c7306455ae1327d65f513277e4ab52423581f63dea5e544f0fe1a746f5933b737f7a1dc9c3831071008183703ad73ca773a300f92b435f4f0fe1a746f5933b737f7a1dc9c3831071008183703ad73ca773a300f92b435f437f16e3a73d8c3148614589795b7cc080dd846f72e9fd477e40036bff486da0a5767ba4374de2e1af384fbc2cf6361a483dbeb430dd1df50ab5c0ae6b7ff3f7a5767ba4374de2e1af384fbc2cf6361a483dbeb430dd1df50ab5c0ae6b7ff3f7e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8559165157a4d2d3169c2caac591e8f403cb1b931ed966080a9ce2777ff6deb449b9165157a4d2d3169c2caac591e8f403cb1b931ed966080a9ce2777ff6deb449ba8c23926894d1ac6020475f5e1846ea5a7d559b51e95bc102a0a54ccef85bc5a60dfafd6b52b9b16636bf60dd1935f0c3a1b3e731961096d4b6a2ac9a904756f60dfafd6b52b9b16636bf60dd1935f0c3a1b3e731961096d4b6a2ac9a904756f95c67e6a59452f902c13815fe0209bb838dff198cfef22b6511118751e62dc8086e64384a6e49b8a4cda2e74d98e7c28e79aee6cae780bbdd5c8c279dddc63607a9b7c83ef027e655a0fb0938dc05529c61d348033baa6d3ce82c1474238a48ddfe5816ebb6d090aa72166ddb484d8360fe2c93527f8d4b37244238cdd7c20d2bfef6c78db89944ed032781973b5d07eaffd39bc34577693a0eb387da73dfa162ecd5fc277afc4f9f8669b8e14c36ad7ae52fe4baa103e4e874901a5e503ee5b5daf7d79d3619f0f7a198a11f35aa79ec2cacf908fb3cbc713d7f17f0761c5f48f2b82002311c00223c37af811809a3d9bac54ebe1bb293395a8cf9b723116d0bcaf739c904ad580f1db57d535dacf9bef5ee95513e8aebb541539d85f969a8a486fcd6227a71192f72e6239a8e49ad679f795adfb627013d3bb469663e7503118a5d2185a26cfc8b88ea21b02ce60f37f38c933acfbea7d8c03dd038f0ddda1d7b711442d7deb1acf844d2a212d86fa82b072aebc0071b3494649e660aec47a3020a7928e7b35778f9244dd59900dfb15ae6360631a5f254996ab65b1c598dcfa1ab0711f2d8930c437e310e9c7ee8fa2865521f5cd38ca3d44b54a3e6bfa026bc82800308b3ce29df62e53ddfaa47d78afb820dd91f7730f818e8fcc4d1db4f233073381eb9d19f051f11db2b3ac4d1d9fc1bdc4a696b5e3c4431f346ec8d5322c0b3608c9e495ea30b95b15289c51d9d0c9c0087898399d6db706b5a4b34e6a32e962e724f277f25c48e9e6bd4292cb554653717394074f8fac6eae50ebafeac39331f069a0b038b649f56b083ad9ed9047084298ad53c8f8bf8bdc10b5100c7c7853077a4e1be6c8c3b1111bb8209a610fc13570ca6174b802396c635891ff3199905ea16a3dec4dba649ebe4804e920c00fbfda62790325977955577b290cd3ba081f5c4d7c57e8c43444d5120bc83a7418511e5154bb853cf1cd339a8c2d762cd0b5bdef73c6e6f1c077778f49dbbda481dd127624d4ebeb2432401eee688649e1a5f52ec0c22442aca7ef565e1c622b034436b5d6bd6f5760a78bd1a4d3578d4e537d43670ae78c36e927eadc7bb06172a4bedb6e8f3797966823524f05957faf2cf3869a228050a34592a9c01bc10aee14cf97610886ab24fcbc1df93e934f3785711eb348b87871c215b96a31aa59210156d347d30fdc18b28a97297cded6e3d5b868e30c2252c65738b27f1ee01f8f1ede6a86f5b89871ffae21f102cef350fb13ee5d03315a974d5d736955ba09b01181d0f8f0bd0c3852259436d853cc1c715e4669cbc6cd74dcc4fb2564076523b1411c978ccc4d973875ba46d2f3b7bee88a410a36ab891e9822ac67eba6e6a76a4cdecdfc6005d6ca16962ab822f5353c36de2cdf32fcbc737e64d49abc483569eda6c673496fc67e2a26c12193b776526362f0c7a7f3147122bc6f17ea9041e21b6f7ae86404b050797fb1e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8553b10fe749bc8e6c36ae2eace5a78abaa385986176e7c15bdbe67750993a23e873b10fe749bc8e6c36ae2eace5a78abaa385986176e7c15bdbe67750993a23e87842bf915c15420d04672860aca06eca1c7e151a37096741c8e73aa82d9350029df4ddc3d3d7623d426dc0466a1dc780b641425dfda620375baebe7c99743b572df4ddc3d3d7623d426dc0466a1dc780b641425dfda620375baebe7c99743b572f7e8b37d4dead20b124f538d8002f85d41c2714cb0b7d4d7a3b2721cde9f8e153c14a1aa761af0e5471fd5c596b0bb40bc169bca9bce9b07aab1ade2a4f72c053c14a1aa761af0e5471fd5c596b0bb40bc169bca9bce9b07aab1ade2a4f72c0560f0add443a61ef147e41c7d5e723ded241ac8be80b99d0e7a294dc657e0a3ae6c2ab51dcddd9f682977ede22e8c97044966162a255343d187578737ad9fe9b06c2ab51dcddd9f682977ede22e8c97044966162a255343d187578737ad9fe9b0aedfbd4e0ebc3cbb980c91b891e2f699176760ba7f39904a05088d618d420d4bf34c8828278abc00a8c81ee80ca3135739ffaf9dd0f6ee66483531aa036a85f5f34c8828278abc00a8c81ee80ca3135739ffaf9dd0f6ee66483531aa036a85f546866659fe2c23eb1f42c2e349c14175ad2097363d61007ca5f4734eec78dcd38cf9697aa3bc002df831f885844ea0788d2fa0026aa4863cd02811b5e8d866d48cf9697aa3bc002df831f885844ea0788d2fa0026aa4863cd02811b5e8d866d4a9c10d60afc8671bb38e1f10e7126f6191d76b671d9202b9edf958bab17e3cd8543d9f15e8c50658e105219ba8d7860fd1a7a483e566ffb5a02e1c8fd5672ae1543d9f15e8c50658e105219ba8d7860fd1a7a483e566ffb5a02e1c8fd5672ae1c529c6990d673532f32a313df38a111b16e31ecb507e19e219404a40b811cbe8ace63d863e382b6e2f979294ef1e6271211f278128d4227d461dd8e7441efa00ace63d863e382b6e2f979294ef1e6271211f278128d4227d461dd8e7441efa00f09158463768d5b692bf67b3ed607c380bed98f3e02d31182a377d81f36c52dc0d40f74eee59eaa1e13ff2bf0f7c4e21b7e6c69e98e00db30063e8e976901efe0d40f74eee59eaa1e13ff2bf0f7c4e21b7e6c69e98e00db30063e8e976901efe0e317df9d96ec7d9e90ab2e22b16775f40d13b75166217631f047036ad5686f94451042266d50dfe21a4f424f19d30e15b1d2b9903c7d484f2548459fec55a6a4451042266d50dfe21a4f424f19d30e15b1d2b9903c7d484f2548459fec55a6a9e4249778a004f54d54190f1afa195363fece178f0ad95c333989678d678c8c3ad606215e4862d6c53546da9f8c3a7614747bb208f52e99a1deff774d74f17eead606215e4862d6c53546da9f8c3a7614747bb208f52e99a1deff774d74f17ee341b5078ca43a5bfe7c5ed4c43ddc5473dad93d70cf8251ffd81658b4c36ed241a8fcd554e6b29d588ac2c88a5deaae93461b787671d43d25917c1cad5e34fb61a8fcd554e6b29d588ac2c88a5deaae93461b787671d43d25917c1cad5e34fb693667b83cd3b356ef930e762bd901106e24120bb61873d7f15226dfe337a6244a37318b1d5f405847097188f57fa96fdd162befafe4fe96241491ec1846d95e4a37318b1d5f405847097188f57fa96fdd162befafe4fe96241491ec1846d95e4841625fed218cdb03426bebbb8dcabb145d21fb835845ed70ec9991403724a926c71e4b288fe1f69914737cf3531fc5e1083b25d5f8d9d134f4b241b6eb52fad6c71e4b288fe1f69914737cf3531fc5e1083b25d5f8d9d134f4b241b6eb52fadrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootkobo-0.6.0-1.el7.src.rpmkobo-hub@      gzipkobopython(abi)python-djangorpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PartialHardlinkSets)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)0.6.0-1.el72.71.63.0.4-14.6.0-14.0.4-14.0-15.2-14.11.3YYx@X@Xx@WPW@V=@Ua@T-@Tg@@R@R - 0.6.0-1Fedora Release Engineering - 0.5.2-4Fedora Release Engineering - 0.5.2-3Zbigniew Jędrzejewski-Szmek - 0.5.2-2Daniel Mach - 0.5.2-1Fedora Release Engineering - 0.5.1-4Fedora Release Engineering - 0.5.1-3Fedora Release Engineering - 0.5.1-2Daniel Mach - 0.5.1-1Daniel Mach - 0.5.0-1Daniel Mach - 0.4.3-1Daniel Mach - 0.4.2-1Daniel Mach - 0.4.1-1Daniel Mach - 0.4.0-2Daniel Mach - 0.4.0-1Daniel Mach - 0.3.8-1Daniel Mach - 0.3.7-1Daniel Mach - 0.3.6-1Daniel Mach - 0.3.5-1Daniel Mach - 0.3.4-1Daniel Mach - 0.3.3-1Daniel Mach - 0.3.2-1Daniel Mach - 0.3.1-1Daniel Mach - 0.3.0-2Daniel Mach - 0.2.1-1Daniel Mach - 0.2.0-1Daniel Mach - 0.1.2-1Daniel Mach - 0.1.1-1Daniel Mach - 0.1.0-1- New upstream release 0.6.0- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild- Convert to modern python macros - Own /usr/lib/python2.7/site-packages/kobo/ directory- conf.py: use print() function (Ken Dreyer) - conf.py: py2/py3 compatible exception handling (Ken Dreyer) - Fix shortcuts to run on py2.4. (Daniel Mach) - Closed tasks can be interrupted without throwing an exception (Marek Šabo) - Add __setitem__ to FileCache (Lubomír Sedlář) - Show minimal priority in admin (Tomas Kopecek) - Add tests/README (Alexander Todorov) - Add tests for RPMs with 'something-X.Y' names (Alexander Todorov) - xmlrpc: remember to call super class constructor (Kamil Dudka) - Condition for setting hostport generalized (Marek Šabo) - Http proxy working on Fedora 22 (Marek Šabo) - Pass arbitrary args to logging module (Lubomír Sedlář) - migration for min_priority (Tomas Kopecek) - fix default values (Tomas Kopecek) - minimal priority for worker (Tomas Kopecek) - backward compatibility with django 1.6 (Tomas Kopecek) - make get_tasks call backwards compatible (Tomas Kopecek) - Add permission for displaying task tracebacks (Tomas Kopecek) - report correct allowed username length (Tomas Kopecek) - Add a RPC call and a command to list running tasks. (Tomas Kopecek) - Add --all option for enable|disable worker command. (Tomas Kopecek) - Fix multiple same checksum types. (Tomas Kopecek) - Django 1.8 rebase (Tomas Kopecek) - Add ssl context for https. (Tomas Kopecek) - Don't add additional space when printing log. (Tomas Kopecek) - Fix displayed task time (Tomas Kopecek)- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild- Enable/disable worker. (Tomas Kopecek) - upload_task_log: correctly handle unicode vs str strings. (Tomas Kopecek) - resubmit_task: add missing 'force' parameter. (Tomas Kopecek)- Modify shortcuts.run() to pass all **kwargs to Popen(). (Daniel Mach) - Admin page for kobo.auth.User (Tomas Kopecek) - Unset active menu if no other menu is active (Lubomír Sedlář) - Allow rendering menu for bootstrap's navbar (Lubomír Sedlář) - Handle menu items without text as dividers (Lubomír Sedlář) - allow --force in resubmit-tasks CLI command (Tomas Kopecek) - Django 1.6 db transaction model (Tomas Kopecek) - CLI command for viewing log files (Tomas Kopecek) - Display overall time in task page (Tomas Kopecek) - Fix shortcuts.run() to handle errno.EINTR correctly. (Tomas Tomecek) - Don't count assigned tasks into worker load. (Tomas Tomecek) - Human readable state exceptions. (Tomas Kopecek) - Human readable JSONField. (Tomas Kopecek)- Rename User model to properly adjust to older db schema. (Tomas Kopecek) - Fix typo in login template. (Tomas Kopecek) - Switch from simplejson to json. (Daniel Mach)- Revamp make_nvr() and make_nvra(), make them public (add to __all__), add tests. (Daniel Mach) - Fix: display subtasks in task's detail view (Tomas Tomecek) - Fix JSONField (load and dump) (Tomas Tomecek) - Fix CSRF exemption in XML-RPC handler factory (Tomas Tomecek) - View simplifications (Tomas Kopecek) - Translate everything in templates (Tomas Kopecek) - Additional fields visible in admin, searching/filtering (Tomas Kopecek) - Use more proper class-based style for generic forms (Tomas Kopecek) - Refactored generic views. (Tomas Kopecek) - Fix rtf content type test for py2.4. (Daniel Mach) - Add FileCache.items() to export items() and also fix py3. (Daniel Mach) - Remove slots from most places. (Daniel Mach) - Improve shortcuts.parse_checksum_line() to support escaped checksum lines. (Daniel Mach) - Add 'executable' argument to shortcuts.run(). (Daniel Mach)- Return 'nosrc' arch when RPMTAG_NOPATCH RPM header is set. (Daniel Mach) - Fix 'ImproperlyConfigured: The SECRET_KEY setting must not be empty.' exception in test_types.py. (Daniel Mach) - Fix setup script to install additional package data. (Daniel Mach) - Fix reading RPMTAG_NOSOURCE and RPMTAG_NOPATCH headers from 'nosrc' RPMs. (Daniel Mach)- Drop admin subpackage on rhel <= 5 - Drop admin, django and hub subpackages on epel 6- Drop django and hub subpackages on rhel <= 5 - Set filename to be real name of a downloaded file. (Tomas Tomecek) - Fix logwatcher to scroll to latest logs. (Tomas Tomecek) - Remove obsolete function kobo.django.views.generic._object_list(). (Tomas Kopecek) - Updated README for 0.4.0 release (Tomas Kopecek) - Revamp setup.py and related files. (Daniel Mach) - LongnameUser table has auth_user db table name for easier upgrade. (Tomas Kopecek) - Add checksum_type to SimpleRpmWrapper. (Tomas Kopecek) - Add kobo.threads.run_in_threads() helper. (Tomas Kopecek) - Django 1.5 rebase. (Tomas Kopecek) - Remove unnecessary slots from pkgset.FileCache. (Daniel Mach)- Don't catch and mask any exceptions in cli.CommandOptionParser.run(). (Daniel Mach) - Set an empty keyring in rpmlib.get_rpm_header(). (Daniel Mach) - Format Fault's output to be nicer. (Tomas Tomecek) - Display error when cancelling task fails. (Tomas Tomecek) - Fix task cancelation method name. (Tomas Tomecek) - Add pkgset.SimpleRpmWrapper; support pickle by providing __getstate__() and __setstate__() methods. (Daniel Mach) - Enable searching in task list by label. (Tomas Tomecek) - Enable making custom queries in view task_list. (Tomas Tomecek) - Limit value length to 200 characters in tback.Traceback. (Daniel Mach) - Fix email.utils import to work with py2.4. (Daniel Mach) - Backwards compatibility bugfix in hub.models. (Tomas Tomecek)- Proxy support enhancement (Tomas Mlcoch) - Improve task ordering. (Daniel Mach) - Better formatting in Traceback output. (Tomas Tomecek) - Add JSONField.value_to_string() method. (Tomas Tomecek) - Improve task dir deletion and task files view. (Tomas Tomecek) - allow line buffering for shortcuts.run() (Tomas Kopecek) - Allow to specify buffer_size in shortcuts.run(). (Daniel Mach) - Add rpmlib.get_changelogs_from_header() and pkgset.RpmWrapper.changelogs. (Daniel Mach) - Support https_proxy environ variable (Tomas Mlcoch) - Create pid file in a more secure way. (Daniel Mach) - Create empty kobo.django.auth.models module to fix crashes in Django 1.4. (Daniel Mach) - Add shortcuts.makedirs() function which is identical to os.makedirs but doesn't fail on existing dirs. (Daniel Mach) - Fix typo in the 404.html template. (Daniel Mach) - Fix traceback on undefined workdir in kobo.shortcuts.run(). (Daniel Mach) - Add help-rst command which generates rst documentation for all CommandOptionParser's commands. (Daniel Mach)- Clarify auth middleware ordering in the hub settings template. (Daniel Mach) - Add kobo.threads -- a simple threading worker pool. (Daniel Mach) - Fix force_list and force_tuple to work with sets. (Daniel Mach) - Implement removing files from a file cache. (Daniel Mach) - Make shortcuts.run() thread-safe. (Daniel Mach)- Bump version to 0.3.5. (Daniel Mach) - Return tracebacks in the XML-RPC dispatcher as unicode. (Daniel Mach) - Refactor MainMenu to be Django 1.3 compliant. (Martin Magr) - Make StateEnumField Django 1.2 compliant. (Martin Magr) - Add proxy support to XML-RPC transports. (Daniel Mach) - Cache stat values in FileWrapper objects, add size and mtime properties. (Tomas Mlcoch) - Fix unittest kobo.http for Python 2.4. (Tomas Mlcoch) - Add unit test for kobo.pkgset. (Tomas Mlcoch) - Rename pkgset.FileCache.__get__ to __getitem__. (Tomas Mlcoch) - Add unit test for kobo.http. (Tomas Mlcoch) - Add unit test for kobo.decorators. (Tomas Mlcoch) - Add docstrings to kobo.http. (Tomas Mlcoch) - Add UndoHardlink class to __all__. (Tomas Mlcoch) - Add unit test for kobo.hardlink. (Tomas Mlcoch) - Fix params for os.utime() call in UndoHardlink class. (Tomas Mlcoch) - Fix tback.Traceback to work properly in interpreter. (Tomas Mlcoch) - Use getattr to read Krb5Error.err_code to prevent possible AttributeError in HubProxy. (Daniel Mach) - Add a new task state - CREATED. (Daniel Mach) - Fix templates to work properly in debug mode. (Daniel Mach) - Revamp log downloads - download as a stream, better support for other than .log files, enforce using UPLOAD_DIR in settings. (Daniel Mach) - Delete empty directories on FileUpload.delete(). (Daniel Mach) - Catch an exception when deleting an FileUpload object and target file is missing. (Daniel Mach) - Make sure that xmlrpc.decode_xmlrpc_chunk() won't fail on existing directory. (Daniel Mach) - Run task cleanup and notification for foreground tasks. (Daniel Mach) - Enhance shortcuts.iter_chunks() to work with files. (Daniel Mach) - Upload files in chunks in order to prevent client-side memory issues. (Daniel Mach) - Exclude file uploads from CSRF protection. (Daniel Mach) - Add assertRegexpMatches and assertIsInstance to tback tests to make them work on python < 2.7. (Daniel Mach) - Fix processing unitialized variables in tback. (Martin Bukatovic) - Fix a traceback in kobo-admin start-hub when a project name contained dashes. (Daniel Mach) - Add -tt python interpreter argument to project templates. (Daniel Mach) - Add kobo.rpmlib.parse_evr() to parse E:VR. (Daniel Mach) - Fix parse_nvra() - arch must not contain '-'. (Daniel Mach) - Add missing {{ project_name }} prefix to kobo admin templates. (Daniel Mach) - Start daemons in "/" rather than in working dir. (Daniel Mach) - Add TransactionMiddleware to the hub template's settings. (Daniel Mach) - Add skip_broken argument to PluginContainer.register_module() class method. (Daniel Mach)- Add kobo.decorators.log_traceback() devel decorator to log function tracebacks to a file. (Daniel Mach) - Fix tback.Traceback for py2.4. (Daniel Mach)- Replace double underscores with dots in xmlrpc method names. (Daniel Mach) - Fix regex in test_tback.py so unit tests pass. (Daniel Mach) - Fix session handling in worker. (Daniel Mach) - Fix kobo.Traceback to return empty string on no exception. Add traceback tests. (Tomas Kopecek) - Simplify hub deployment (add menu and template to default). Tweak kobo-admin templates. (Daniel Mach) - Add a warning about a possibly read-only database to the worker middleware assert. (Daniel Mach) - Add task notification() and cleanup() class methods. (Daniel Mach) - Revamp hub urls and admin templates. (Daniel Mach) - Prevent a race condition when using CookieTransport in threads in py2.7. (Daniel Mach) - Add unit test for EnumItem.change_state() return value. (Daniel Mach) - StateEnum.change_state() now returns bool as documented. (Martin Magr) - Command argument in kobo.shortcuts.run() can be also a list now. (Daniel Mach) - Strip path from nvr in kobo.rpmlib.parse_nvr() and parse_nvra(). (Daniel Mach) - Exclude XML-RPC from CSRF processing. (Daniel Mach) - Add stdin data support to kobo.shortcuts.run(). (Daniel Mach) - Add kobo.shortcuts.iter_chunks() to iterate through a list, string or generator and yield chunks of defined size. (Daniel Mach) - Raise an exception when spawn_subtask() or wait() method is called in a foreground task. (Daniel Mach) - Add constructor to kobo.django.hacks.UserChangeForm to fix maximum recursion depth error. (Daniel Mach) - Fix username max_length hack to work with Django 1.2.1. (Martin Bukatovic) - Add kobo.notification module to send email notifications. (Daniel Mach) - Process kobo.shortcuts.run() logging in chunks and print data immediately. (Daniel Mach) - Subtasks have to follow parent's channel and arch. (Martin Magr) - Compute elapsed time for running tasks. (Tomas Kopecek)- Fix XML-RPC transports to make them work in py2.5 and py2.6. (Daniel Mach) - Automatically scroll the task log window when we're at the bottom of the page. (Daniel Mach) - Show self.* attributes in extended tracebacks. (Daniel Mach) - Compress logs with gzip when a task finishes. (Daniel Mach) - Convert task logs to utf8 (with "replace" option) to prevent raising UnicodeDecodeError during template processing. (Daniel Mach)- Add help-admin command to display help for admin commands. (Daniel Mach) - Add config parser support for glob matching on dict keys. (Tomas Kopecek) - Implement timeout support in xmlrpc transports. (Daniel Mach) - Improve kobo.xmlrpc.CookieTransport to work with python 2.7 as well. (Daniel Mach) - Add kobo-admin utility. (Martin Bukatovic) - Add missing HttpResponseForbidden import to kobo.hub.views. (Daniel Mach) - Fix bug in "Show only my tasks" search option on Tasks page. (Daniel Mach)- Bump to new upstream version. - Fix kobo.rpmlib.get_digest_algo_from_header() when RPMTAG_FILEDIGESTALGO contains None value. (Daniel Mach) - Pass 'conf' argument do daemonized worker's main_loop. (Daniel Mach)- Split rpmlib to a subpackage. - Add missing "compare_nvr" to __all__. (Daniel Mach) - Remove duplicate subtask removal in Task.wait(). (Tomas Kopecek) - Parent task didn't wake up even if all child tasks were finished. (Tomas Kopecek) - Change 'make log' to use C locales and automatically fill name and email from GIT. (Daniel Mach) - Fix spawn_subtask argument. (cherry picked from commit 374a4165c16d6b34fa486a38525753969e549415) (Tomas Kopecek) - Fix XML-RPC method registration. (original patch by Xuqing Kuang) (Daniel Mach) - Convert rpm.labelCompare's arguments to string to prevent segfaulting. Add compare_nvr tests. (Tomas Kopecek) - Add Task.get_time_display() to get time spent in task in human readable form. (Daniel Mach) - Use koji.get_sigpacket_key_id() to read sigkey id from a rpm header. (Daniel Mach)- Rewrite menu to get rid of tuples in menu definition. Always use MenuItem classes. (Daniel Mach) - Send task logs to hub to enable realtime log watching. (Daniel Mach) - Add menu_item helper. (Tomas Kopecek) - New version of menu component. (Tomas Kopecek) - Order tasks to assign by priority first. (Daniel Mach) - Fix spacing errors to be more PEP 8 compliant. (Daniel Mach) - Handle SystemExit in TaskManager.run_task(). (Daniel Mach) - Add a shortcut and pkgset support for computing hashlib based hashes. (Daniel Mach) - Add hack enabling 'VERBOSE' log level in the python logging module and Logger class. (Daniel Mach) - Run tests in alphabetical order. (Daniel Mach) - Fix TaskAdmin to search for user in correct db field. (Tomas Kopecek) - More convenient admin listing for Worker model. (Tomas Kopecek) - Add files to cache faster (skip stat call when possible). (Tomas Kopecek) - Remove deps on postgresql, httpd, mod_auth_kerb and python-krbV. - Add AUTHORS, COPYING and LICENSE to kobo.rpm.- Read default paginate_by value from settings in kobo.django.views.generic.object_list. (Tomas Kopecek) - Add read_from_file() and rename save() to save_to_file() in kobo.shortcuts. (Daniel Mach) - Reverse FileUpload default ordering. (Daniel Mach) - Add kobo.conf.get_dict_value() to support dicts with default values. (Daniel Mach) - Add direct access to files via pkgset.RpmWrapper. (Tomas Kopecek) - Add documentation to django.auth.krb5. (Daniel Mach) - Fix worker key generation in kobo.hub.models.Worker.save(). (Daniel Mach) - Fix a security hole in krb5 middleware: a user was able to log in as different user to admin interface. (Daniel Mach) - Change Makefile to run tests before creating source tarball. (Daniel Mach) - Change HubProxy._hub verification to fix exceptions in Python2.6. (Martin Magr) - Another SQL performance improvement in Task admin. (Tomas Kopecek) - Set Task.parent as raw_id field to improve admin performance. (Daniel Mach) - Add (spent) time method to Task and display it in the admin listing. (Tomas Kopecek)- Enhance types.Enum to support help_text and additonal options. Update tests for types module. (Daniel Mach) - Remove temp directory after file upload. (Tomas Kopecek) - Remove MANIFEST in make clean. (Daniel Mach) - Fix shortcuts.run to read complete stdout. (Jan Blazek) - Add rpmlib.get_file_list_from_header() which extracts file list, colors and checksums from a rpm header. (Daniel Mach) - Add get_digest_algo_from_header() function to read rpm digest algorithm. (Daniel Mach) - Update epydoc docstrings in kobo.rpmlib. (Daniel Mach) - Fix deadlock in run(). Use proc.poll() instead of proc.wait(). (Daniel Mach) - Update epydoc docstrings in kobo.shortcuts. (Daniel Mach) - Fix AtributeError when active_submenu is None. (Daniel Mach) - Return menu dict even if no menu is active. (Daniel Mach) - Do not allow to register plugins to PluginContainer base class. Add several tests. (Daniel Mach) - Add test runner. (Daniel Mach) - Add support for empty submenus. (Martin Magr)- first release  !!#$$&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVVXYY[\\^__abbdeeghhjkkmnooqrrtuuwxxz{{}~~0.6.0-1.el7    hub__init__.py__init__.pyc__init__.pyoadmin.pyadmin.pycadmin.pyodecorators.pydecorators.pycdecorators.pyofixturesdata.jsonforms.pyforms.pycforms.pyomenu.pymenu.pycmenu.pyomiddleware.pymiddleware.pycmiddleware.pyomigrations0001_initial.py0001_initial.pyc0001_initial.pyo0002_auto_20150722_0612.py0002_auto_20150722_0612.pyc0002_auto_20150722_0612.pyo0003_auto_20160202_0647.py0003_auto_20160202_0647.pyc0003_auto_20160202_0647.pyo__init__.py__init__.pyc__init__.pyomodels.pymodels.pycmodels.pyosqltask.postgresql.sqlstatickobocssscreen.cssimglist-first-disabled.pnglist-first.pnglist-last-disabled.pnglist-last.pnglist-next-disabled.pnglist-next.pnglist-prev-disabled.pnglist-prev.pngjslog_watcher.jstemplates404.html500.htmlarchdetail.htmllist.htmllist_include.htmlauthlogin.htmlbase.html.examplechanneldetail.htmllist.htmllist_include.htmllayout.htmlpagination.htmltaskdetail.htmllist.htmllist_include.htmllog.htmluserdetail.htmllist.htmllist_include.htmlworkerdetail.htmllist.htmllist_include.htmlurls__init__.py__init__.pyc__init__.pyoarch.pyarch.pycarch.pyoauth.pyauth.pycauth.pyochannel.pychannel.pycchannel.pyotask.pytask.pyctask.pyouser.pyuser.pycuser.pyoworker.pyworker.pycworker.pyoviews.pyviews.pycviews.pyoxmlrpc__init__.py__init__.pyc__init__.pyoapps.pyapps.pycapps.pyoauth.pyauth.pycauth.pyoclient.pyclient.pycclient.pyosystem.pysystem.pycsystem.pyoworker.pyworker.pycworker.pyo/usr/lib/python2.7/site-packages/kobo//usr/lib/python2.7/site-packages/kobo/hub//usr/lib/python2.7/site-packages/kobo/hub/fixtures//usr/lib/python2.7/site-packages/kobo/hub/migrations//usr/lib/python2.7/site-packages/kobo/hub/sql//usr/lib/python2.7/site-packages/kobo/hub/static//usr/lib/python2.7/site-packages/kobo/hub/static/kobo//usr/lib/python2.7/site-packages/kobo/hub/static/kobo/css//usr/lib/python2.7/site-packages/kobo/hub/static/kobo/img//usr/lib/python2.7/site-packages/kobo/hub/static/kobo/js//usr/lib/python2.7/site-packages/kobo/hub/templates//usr/lib/python2.7/site-packages/kobo/hub/templates/arch//usr/lib/python2.7/site-packages/kobo/hub/templates/auth//usr/lib/python2.7/site-packages/kobo/hub/templates/channel//usr/lib/python2.7/site-packages/kobo/hub/templates/task//usr/lib/python2.7/site-packages/kobo/hub/templates/user//usr/lib/python2.7/site-packages/kobo/hub/templates/worker//usr/lib/python2.7/site-packages/kobo/hub/urls//usr/lib/python2.7/site-packages/kobo/hub/xmlrpc/-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=genericcpioxz2noarch-redhat-linux-gnudirectoryPython script, ASCII text executablepython 2.7 byte-compiledASCII textemptyPNG image data, 20 x 20, 8-bit gray+alpha, non-interlacedHTML document, ASCII text  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR?p7zXZ !#,@Op] b2u jӫ`(}8WW3`dwv2Cp C 4$g+oS/Lіsg3֦2mdq=4Ҧ0Q9wY'w2^tγU v\^ Ixv:;g/o"Sߕ$+YT'9FMT &|.׃VCEMڒ5 Q; OH\t4uoBѦl;(rťV#oyfDݙO]BD ҃WDXHZ׸8a!PբiF֜Ą2]M=:mA3_KGHKO8蹹(-K[{Y 80$<3WW*H #ER4db#=msx"Q{$ Eu}OxeP1'ɺeҾ3L?CWۓ}8)j|LUʦ]63g4V͟ZQ2>? 7{ԱųY0c!-e&#_J2iib°Fd2d4{k˲1l25BD@轳W6}>T)s*p!Cz UiiNhVѱHX91QcY8xyD)u _p< q( ÿ3y H1!1TΖ=dom~KaѾ7X⎁gZ*:{"_rjW/=C7++ȉ]6LgXhR[bGu: w8Q-B\P;^{xhl^[yג}:C,ww^3<({"\AFNVLK⽣p : uT(2(RѶ6~ \߅WnXd|-ac`zGa_:f0vP wo^ͻZ%w+ Jm%d.P=!Ğ}R2/cJ_ C_=Ra%C-]k١Q=(,Qh=zw[MWbėJ3&DEL &ψo(>au$|4~Xi:G&?yw'3"1W49,͘Bw} z%dsPi f4b+~hCX7 Eb^䯏"g oؖcʜ]6^xy}V/`"ڞա1}Xv6P7L[#S7ww("6ɤjnlmjDo ?Ql:\DMXҝyA 'ܔS e-֠=Jх~1je=k}O!3ΒU4P\yk&'f'u~=ި,p 7@8}i( 蒳㥞0+[qdGݙ-W# jQջ 1?L #qhO>>9~Zq~Z !O+7`P&" ݿI7 *kB׫BDƍvv-#AMH_:&ȿiZƘ[h#^Źa펌;QX8f]g {IWQwiə*I YIAA{V4jja!UTjJ>\wJns)%$՛<_8DjDnHN뎙qy8GlJ*5yw=BBkQ7^VeP XȡўFjޗH @ HB^,\3p3A;^\K}&gx PO?RN̹EmrĿ{܋nLVrV(zf)y4}ў/ #O3LO]o0r Ro8@ 9{ū.qOs`JT(oK"F.+\[<'@Mv%$t]g}ONXPu"\y=^iZ`Ҹ!%2bϋٰ{_+ Kd׽乛#8U}Qg|1t($`.=4¤-VezC$){$B\ؕ؈"NASʲ !_R\Oq"ǓQ ~usA'#Ҏ:Gakfෝn9O6 =U  us'u*@_52^Rd5d|΂} 6MK%?s=N(0P4 XDK$F} 8M[FAMٚ`vۜ@s7֛"GY fr(X+`(N<^O)s.t.ݨw2gVW0u'gگĕF1!anAJ)&XKsTM;{(RIr=ȋ[o uBqi`+8E8?={@w/,"ui [1M0ǔӉmک4%UOE뚞vE/,'"69LCh\RӪ'a }Kl:z|5- @!ػ—M ANP3k62"ԕ2ucٝ6Hf/8^4R䝾VQ$M&_oա1Dt]/ׇa]Q2%?X؆;tYcr8SU$,\(75O{"^/A1SX5O墑P1M߲|;N߼돼dȘz,_8[< |H+4O*3{+2 ".{ׂ/ :z3Szð6Rj+"ة6,rE@NT(RʝxM2@Pl)}aC-b>?p*" ™ [} ;-#S#|{a{ 2 ~f@(lTTV)6h\<>o*^7<3͛ ;d^ slzd <9F=15Izt Wk9 A#i /x$x:0 NMW*䀘ɲiŹ"=VջsM_'q'D-#pʟہWI3 3m0wz_\P7)cAIjt8x@ZQ^"Y_qgq]n#*{[ ^o{bn/>љv4~εUPFѾڧ<8п,x$ WVp)Ei(adjS,̉h]\[:H5N<%jQٌ{!Z1ж.M-C#SankA7Y~ը8x& xѦ]lU)kM15 `T j Pb2h2UT} PolsIT L4&=WTÖۿ !G?Un]ߥ;&nbi5]jk &cPsex<ؠ寳fĮi"hl>B.8b+˘NiɂDV"Ij(wy.I!b>`m7fɊMEt#PV]*.g[ )?w^@qaEu&l@"$,:uЋf bGBeһDtI=ʮ(F#D9m$׮AF+CX0nk4kRﵼsJ% /5얔E1> $r Ѳ!v2qj u o4ӳͨR~q(ug愿sm8sR=8P0(VwPJ#0BdHV# k^a.~lNrU{}j eTVo"-O뿈FаȦ"HL )2c̲wK+H,oYg:%:Cc }dvSY4M5Q1)HJ#1ȕўZ^a#G &S8] 8͒zPƕbFlR,R@%g?tag5-SvE\j|X!N{GyΉ~ q!)56j)^B /6/6xcnNv~2A߷ǡw#!*X;PJ~ O#uO/( @tT' 0{F8HA}{ 1l^wvCLQR!<{}xOuv$QQ7{J@1!S*-jſWϪeIasS QwEd'`}Vg/]Ww&Ş# );*GH-EC  5-KOLz'M)U%ګb o jpO(ž} cWYh=c8^$=ްNLlTc-u, >~'riұ1hF`O6'0: RʦB0}: =c*-BĜ>8Dnf=?Ȧ8r1p^\ޛ<8]gn_dTե(\TI }N|Q=L(zC/f^83dEc^.bM"{_#9E0J|OƎwT hHrgf8ARtE>8U2@^{&{1ElsU~vˊ㮌tuݥ#rϨ.`LQΎUpTwwv?ʞ~`DpnǑZ!3gּW<[遆R-h0ϖE6WI##J7gW}9 l&эD/&A~~~o{,'|,5kի$v݄P@w^$bC\|yQkUFWs0)(Ӓp6p e;ulܪL3 BgH6ƺ%[E䰓 !aP`ޟ-<n $Bx;E {s^فhi3x+$C(>P'So1w2Pɶ)":njw -Kg"xD*<?Q}L& '&YB3/ P|V8]߂*_hi 5?e%PW#8 JuX6A©i@h}S0JW/8^B(qH;:Yօr<f* |u=FeGf7ȬիESVOu{jk@*}_ ON=1=7iM5sC7<K56 JPhΠ;“`i CI:j}oht*5aFjЙШutʬ{'n#+ńn u1Y-:n'.n GJdf x?|ϣ9]u؄K"u (|kZ)mDP_js٩9TofPUdiXs-}`-ph"<\F{BwlTqX6(TsI9p 6;Yq vQxŮ}&gE_k @U-JqЈ9+ک[FX)hj9T-{S:2eE1 !ĝXU( =}0<``p6cjDjn S*}JWtrᄈ#xjVot*&t,9NJC&"gE)hl~&o#1$ B_SBF AE3468VNux>PyqR.#끐%!,H;HJ ֞PIHuS7TB>Ef8#Kߣ2tԉO$HSu\(b9Jc|{YmM #Mw {5vq`c%qt) F f U`@Js3UB7Z)G%8Cr~.C%}k~b͓0$#2BhY?6dQi !6MVI(yΚxļXVҥ:&eBvƹJ$tokb%!3leRdC:yǤ2;4 TE ]B jZ-3w\p{^`tIamzwA miz47rM;pO`n nyU\3GU" bGQjÓro܏ xɓ i&W6uUR]GO5kkꊗ}wKpթ]=4;p!9xMbk -F/%~f4!exEOjXʥ'A˦BvwV{RAuAG!hcّ_݉4~a2x2:a-+PfB$o uNDdC2,p .qx"ZcpYR0P@^vJtan>8`/@*6=mQT$]=+EʈCHЧw/Ťp&U bPgLV|Nv} `bM3볚o}{c腡^Tža }qMtP;L\UplMX)O,3!c/sJQ6\C6K|RBN/iECL+t`[n€f+RW(_oW4m;РPV*-vc}4WSlnYLBUc9ra,sfjy}kXlgD`f, :W cC0>18 Mo)Y u6ݧK`x8r%p4c|]Q<0CW `c\)|R1cE]Pğ~TV Hn _w?\w!*jX\תI#?Ehb XyPbh;Jb>CȢڵF'ww@*8sZc &Jڮ pm(_ bwj6b5mHmIxbw"NM$NO=L,0.x PI)f[a Y: ٥1 ! uV%3 $wP ;Bո;0 If(]%Jf׶] ڎlqxd0譨4FХB!b4ҿΌZ/ ӀJꈾ1b'iՋ?0nAnZ;FTϘ]1YYuiEiFZ7."jɄ+}r5VGj8<Q@B )(28ϋdޘd)OڑYOֆ0/a>xfhxY+hʻEJʽSJ&B^= {z}shڈ g-$ ҟlNS!.+.>-O4ȳMb.KwkjXsP Sab ƘhcZ/ LH"TG6sjj#Y6yP]+$s5 1aJ Rz z j-iQ6͗R|!u2{F@DmX6A*7e r{T> N]̔WyGé7/T+M| ~{JV.l{|r`Iy%)A3S$=\k.a}^h>'1rY;9|kGg"ȸhc[Z{nIY kv GҾ ioJߟmjMi3S_+lV| eswx;JѺHrkO` vv[R/YJ#JEs᧰Eot68ct>K?Q*nA"-s$毦AN_$Oi ሜ琣 g+nEw|I߀p#CDa%NfOD@a^U#KxL:FZ N"d[Qc->sdqZ5`Ӟ.ƬPHgaܲTC]@rh ڷS,NH7-TF~S0>Zʊ2- Xv;#9l_ufVG+ CM7'/t+IDG.eCTz e~<6()L;0Q f0K]O@3ÜnlSmvW>1שJR*[RUj `[$'NC>}u!/nlcp׵,׻foOHw.4M7!}_FHv`.RaJ {'\bq9oOwYJ!DG"9$pN<14AkJ2cFԠ3 j\S'W0OKfO2HfE3Rz-.R Oj ==k%āBǷ+I śkq*B( Z3lNfZw>U(l@1z0e&V@Y2S;]M!k͵p;{ofXɠu@` 眳CZφGZ=HѤ2G\ᱝE| , # [ׅ~jmj[ ѭIrUSq9J1gPA%ф1P {:>5x=fĂ18i7=aV 5GK*QPgЌS 5>WJBn?"t"pܧbdD+!'X*s@?">ZrtY: [?NC EtZI;ūԓ++'轅ʌr:E{Q d@#pV*9Wیץ<{WGh;2e+aB/RiFB8gq8m:;%y${k>YkUeW>}^}kUկ'6e:94*R`7]fq9+@`O8<@#ߋໞJ-"M^r5wuܺFwQ9UpOwu GlY_+5*1#,tҗ9 B2SVamYQxR^|sSz /tnnз>kU۱sHAy +|c{ÞO wd2LB%MQ[A"nǃbm 9 JO=JI~)-zrP4TæK;w 9.k7!p1d/|'_~">SCW-^ƛ)z,`SVx]%\dPmm\be .܄B,)GF7bאD er7D:8>?6a;L s!JWH<΂}nDû*gQ6,o_$,vszٛMk4mz2p*~{L^CM6dz˺IX y 4u)k2K.^@,t`L.Ĉ9 CHsKʝ̋Od2d `CY hCG\X~n&9.ETFHnàp!kѓd ͣP%g|#1rUgk3r> ^G"f|LfTO"@9PϻK*v$}ZHE*uy@0טԍA]Y-@@U7ҩM#l4 {Oʾ,rS*[HΗF~d~Qzӊq7dc!R:Ϻ|AXa;3OؠHfZ0W'ٳ4z'{UZWV?tRF-FKQC {jo+3Cn_푗G>ҏix8D&HL۬2@[$R\4*X'j-RW| -?e1ڽx*3Loȱ3ę#u$ؾ>Zz #H@pKc>–LxaiI9۰YO0&2|:>cWlMEkF \Wet0a|{>a!>=JG)I5>!yhdS^op<|fV(iLzQ'eu*C2vJBά=(NCt3Ɏ--}=H8۸' L>>@Љ1_h&ءG !fSIc¦u]-5F!-WQm2S,;BD1Z,s M{HO}:S}z>uoNu9la^H}yUzxziO?ꡛYjذ$A9ӣuHѶ|n2II_5!$`8q8[ \?*ZkQ7|(ɧY5 yL}μ>$o͉;N AMR+l3g Z?|77zVfTW2j[g%ϱ(ʏI+;l GW\6tl=%Y4j`Bۋxe!\C8N󼶶/ { f't]otYQmowA8U$Fq5ÐNTRup EzRIx(ȴNessɸ^29MFH1*N&#Or+@!kl;(pZ\&7fP@CuB( n s''PWMW(2?sZ"@P{; R~?3?h˻j)(s_a hint񫘰g>:8Y\kV ٩NKQ5,|l_ g"$K 'dRf^YoJnEy:ϦRnԕč^{+NOZwy4f-Dt8j+7 zXgD`b_};Vb$tEþq8, aIC#"y?d֏ukU Ɨq7sH͸y'#zc˔[hg*[qLk$p,&XYֵ 2 4ؽr7g2P,&eӰcW<j8wd@څmmsd)+'Wڻ"h,%Ui6oL)ڢ y)lL<;Wr`= 7hTP~] Lx~l^m1IsT.O%#c-covn (;,,5[ 8u޻}?X-E3 ';23I d"7g3&@CaTL;| 4T%C~ۂۡf_yU8|HnU:L EPty$Mm\}+%ʔ,3mGRLU٬ȹ,A?l .{^WEF^Gp#)>4; *E`I 3~Nez2V6WxXnj vj8khILU I;T.do9H Nmb]}[kyȂG-1ȝDcpʯ&!Tw&_ f^UYP*y:;tX`aKщ)Jݿkd. RY{2dMSQRYon׭ HlTY&@: 'I fOډAnEa]m# 4ce)*J-3?j!z'`:(uY-:gC/'ϱb@B,RQ-][:#?It,L=Vy \zzh,5RG=gN~1{'PBCghd[ZvN0 &oa  c75p7QG}ޖ{/:8!*\Q~lS8#b _g0WZaNvhEh 7ؾbASi*Ē)ʊF 6 #$]kh?[W.-ls˕n{Ӊ$4&Ly;3{ߓ]^'L-ۦ{C]-dvdk!0חq׎+" oqNIT*M"GEF)'- 3 zZ։ 뉡~ 'L8xGR\>xJ=>/ 11^LP$͹G3kD}0XD&h=ai]Ҕ]Z;~L DeX#įE𐎙` H3V% FR㦳l,Sp79lċC{bŹ)gTU4*MI?-MEE-+^fL-Ieaw`< ^rT EgY|\_1Nmo ->E֠AΩ[ܹh`OF8cKRisqFuZٲ<&!g(h8J;#Uk`Bpu<$(fɓ ?P"(9eGtM 12?{αo8u!@t"^GI 5Ȕ>!:i*g@em[5,PR+tjS YQyK:M*jk{-2%XyKhEG,07x]vqL1Tlˬ_ Kl?Z6"XG[᳾.[ѽ\N @\z>΅ Yg_k%۴d9HS=wf ͌S!I靼44Zb+E1nď.jK$֨b2#LLCF׾hHAʾߋvJ9նP\cA} %3[ bRkk_;Iử0qw 5s|#R)U_g6d[ôud$ lGD,[zW#CgsBB+jlT ?pܽ6 U_yEU>e; +]sy"9:*$ML¹? -͸oڼJ[q%=чZ )w`TD V,J^4UM{ƨO|auAFZKZ%aFY㨔l汐j ntT~hU7D `_zۼ,Vi>d ?C~-0 2Ȳ*|$gÒfkyoy@MT9XA"sWmҍ,nK/;Eo|qu@uPlg)i@'4j4HФgҀ*}U.P,l%i-#lFMlIusmM0f!I=QWyMF|B<,*1npNXE^R{uQѣ8og"zA{~Α\aF3ab`3/AOH[lxDk ҔH\  #ҫw dVJ|˺d֒;fMXMrTUHU|AƙqGvvb\Gw`ZvtYtKE$:/' VJj9ͶV‡DZ*0g>Įϫq`I"S1ȟT Ms6!W2uu\6hi}TC>\>G 3lgз̑u?R>$Gq_kSJ[5􅙍n >ZPAE~MfXuXv^j5㻷uOvr5_iJѽ&A8))m.j&=RiYeŃ LnP$#Kf9;q`Nz "/ߡSzf?2cp4Fhě2 %I)U4ɶ/^y3oau:,<[@m G dq7ٸ=Q'ÚQeglWQ Ol/x_ lk_$9V?3h~EpX:Hi-]RۯHUۣ+B dr_Yk cNMI-tHZܥڀ5c?|L/oI!i*+ ~,`Ȕz ץC1Te?Wb(?MQOwf>̽&8]CR ɊU ]U[0Ў]ӟےf% }a*<Pu,ydM Wq.2 $)| &HCU~@.5^2Mݲ [KTh3w򁛘/g9fSre'- 1k"oDMԊ5b[ LjJ_B*i[d!(${[̡̆nΛk#poR_#mBL;+@:&Og5c;5bN`ES䵞WT<]6HR3IJ:߫4'5=^c !K&^AkmM<ڿE D^-1"xZdƃfy I碪.I 0/Ӱޑ}ΙOE2; qԄGI :jg[B2uX°s]zr`6}Z>c,;{=#wT.O-`xCd56Jz0UiA^dz*|heꎱr^X ӊz\ClR [ w,9sBXeEZmo 愡!n<3OJdR* Kf7ҍrO/\QG ;BnA*!ݺ.XvD3 !1t \ߺ'ռʤ<_KQfܐ6j18J1S<Ս^ZE`C*ƣ{.*B٫i}ɵ|3|AOɑ3ǕoRniYWz/K]/˼R97EKR~v,?44FGe"Y,2_zePw9=rO2@EkO`PV! n$1/cbQ]_UQ) . q|xg݌Iu\l"լ##PưUj9Rer}x kMraB"}x)v@e~A)|%,$Scg:A p w+eQ 5Z{at88e3O5azb:?ɬZ}E5ٝdm=zN~Q;6?EuPwlU aFzH4; Mü!gҼz)Xr?wq{:-oOAaWK"1~mIaiY/ SJFj ΫMfOXquKq{f\-(9d%/NNG^~籯IT!r3)3j_F!xT^kV3b,&ِ7N?y0:ltޙ(7SAJ?F84( Ě &,e}>L?;*eQk (u=h D\9_8 :܀:r.muJYD^(;P\%7D"`_<̈ dzMbyZٹN|s+jYO'D\<dYpCdEd.U}< kA$OQe-pb)z p hэ4ՈB|IӺNS?ba}逖ג2+A>i-56LPAt4 kL:H ihѾq ÐZ]e]UDZp#^S]k"4bZ5K MW;*IUΧ1!}@KnWc*i*G&U/uɸqN۩$#k'P3]!kz[Q`qRz^Tˌp$y^:=۵?OIHF Ʋn}rqlۮy붯9RchYLCJo>j:B%Rm e0N1s"RxW;Y%; =R{!4` cqכ;rT;켧EX`~aZH'&\yR*%4 Pg5XAh6El>Kvz rRt#?GY2R@#]Wf_%zLS),a%Zr`><u,)HT-4v+@s|Kb0G\liջ1CXqJ$\[g%fq`p+k=qz{-F$ALY VodbM(q*k~ТŠW῿ Fy{~Z|&QlLyqі ?pD^iaM6 լc1iPg G[U W~_u>Iq8Ls畆~F 4E1a4S}fC>Hw$\GK2~uc^bU-Ұt1^Gy~Jlƣ~#Ʌ n)9xWFaTNu^!ѺlB̓;6%NG07TWa>"Q}X'*v5Z]Ky=qW(,_[!1͢ r:^C?\￳f k>0-!a^K%mC6g`M rω1yY .'fxaYNH~XCeI[FbsD@T 7^1R_)[0R{,W(~5CÀ.Vژ_, )V@HQy/F]y 'RE Rˬ6 3Dqqysb-iJm$_[BapJ4}0Mؚӱ{ R?8Qk%[ Ҝ'S!98cU$3@TfuXC6!RiDpi;ߍ38Bc)R rz9x०ISc C74Ԝz4\:lJ17?G%!ɬ]:MI8ODq(~sv BDCArܤhU%;CPѵxCF>d5㤈-SͤX\z6œOwh/o=C, JUyCK#t|QF:2+g1-cjD4 J@~LtJn+GE"H)lmԇGU`#dN@#SAj_7ۻ?} "nexj|jݕ-~Sv ܺh78Tj.& q~M_\eaiLEqy&Ͻ}K@zĔm 7`c?9ޥn>羐q›%6P"|m8d„0Vb+.1;C0Vw\7)P!'s7lֲ5i:].W@3%FRk@}ZglY3+Ш|^Tދm10=@]-@ O TdZNF.gՈ 1v:UEb/xyD`.B9W6v{H>ou>_`N>sw $xJu *; \ ϔ~Kڷ!݇h?r9#*d zNQ>ufuUWL~R=) %>Z[\KR<յ)~[akRyFW}fzKo9\7 (MCzI{ JngҰsn?3vzk) X'M9PQ0.;Cf+ E0(`yfĻ:KcR~_"]5~om&MW1TmGcz,HS2NM%yxo9yuzC04]2\V+;:iu!gv 3wi$rBe BTh-Px 3K|W'T1Up7vQ)i|5/ZLolnU"d26,pI) O/ez[~?;Y"%ٟvǖȫD/0|ڂ=*ݒo8 4?RPJd^P.3ئgEz%/&ddkJYG$]QyD X˙W>pofeb~\s`P&_킝 yPTe 8\ Y$pJ1qK6aЋ J'&9Ursyh˥E8VP&:Ƣ8*{ |{pځ9R{U<* H$51./YD}{vvog6-()n~W FUg'd # t~0W7D4\'y=@ 3OH+sg=,`ēJh/qBX 7AWL"v)o@?/c1nb[S%v"KWƃ}mSA.FcS&lYż[sv,XL2񺂼̘53%. _ % s 7 +_VKɴsN-I 8nvrO?{V}hjR3Eioi,FI.J#P:׏" Ʞd1Aք]?wɹ+BgGaςJ8BHw ;R.ǧ%䌰A`W, N#9pWѤ]UV؎|\/8,0ށAq2VkPu$Vn33ct%ٵ-YƗ!;Y)D*UKzj!ŋJV][Yks Q{Txt4 5L PȀݐPTnO A"N70b]r~&[/|WVKb;M[/1iA2_sv@]GqdT}Q:|r6pӚ--c0$' bfs ,t>D w? lٖ9 ;[n^q(0P  nfOeSE_66G^.1`f=ZBdeMm(Rgԭ9 HRa|˫bh7tctTB<Vؔa"Ը$}<_08iu=}@ Eol`RIcצM F8<28e p!Uvia@Eh§E'8BJAw-$Wv%a*.EV^͖1 %K {O|Njo"o*41-z>ˊ J'[өwA&QE'CY k NP%~Ö^Gpcu&>۷gK3BЀ#]s^( }^pt S.7GPB|(q`5O͸A:)~*` #mN,*L3HZʃNdCR˜Y)DGD.v ISB{X1+ROa*I(v{ץq۰6Alyt^ °oߔz[$^RfPOpl6<=9|HW˰(j@+oe1uo%U>\c#[虘 oS ҫkϬmmHmRvd4G;W:`Kx'GCbZv7*h'~M/} ]Q*FX%)q%/C꙾yeD1RK|syo%]xA) /]c \) &Ps!TxXQ3xM}{[ f3WIy@I .]D+u'{8&YtXu)EGQS_(5>-,lduI.+ţBQ"5dǪ3&.Z] /ڳAußPN[UJ L^"gJ? *YOnOedv$ ;c SX%4 Gdθ"VCfaް<7[gЪ|vL9$3;H"VcS>RljqՆ$Zۈ4E 5/ 8C8RG\pt-j1{c OLy^.OO9]Mᶶ3"RB\w)_?0d/$B͂’Ȅ IJ'%J%E]aub֛W2qߍǗY:ItT uy?~$5;DUQW+"v 2NtrQ]0Y7{<ꖶ \hV"Q+ bf.^za8ȻWfM*hDD4^WK"T"6w+X1>Vn+Rj i[lS> ᏑCt \$`_,NZB_QX#VQK]'V7#57L 5podƃ:jcX#[]ۇدu Ή}#b%?=B[]nVdڤQY>$N6WL.&Xm7#vI !Q~lН= $rζqfXX(hQ2^2ņ=֩DgJX8٫J.K!Ի@nH?%ܯo?6{lɛ4׏,O0'a8ađ& F !ӝ[v̌;aЃG`Ez+Ѵk*s0ÜEUȄ>BжODz 7790[wS(pUL;EsK|=FJ'0ҋ>ë{*԰< Pu=H p2XL>5 ]>VEL$8hi~'QdJ#E 7|qF7Yȧt{(R[3 IQ޸U;j.jǏ^#jѠĶu4=:U><5c\&b=(䖊Dû%nfN;&u߹+ر( Jl@S3A i2U;;L -tZ1*j-@}dŌzP{֝'|dr/-3@D\ũ҇XL]Xek:^*&|;Z֔6J2ɪC3J{(==vʩ^ \kA"+YjtJZvW,]j70"Wm3YNw^ṕRx`3ۘ@&jKOG{ݩb6#CTK-bPQs%=g,3|l3$Xvg~*)(Ġ[} ;΋CB%YTe,i߁^S`D]N\$Z]pyO)Tpz9n^ =?No0)D]+F'>Lp 6+A>uq=hx*:IDM,r#F\ƜTKHU&PJ 3Y|i%TWYVZ5jHtsrwan_.kаhGV$bRQ2CG.Dݰ.|~{H"t5^G#:23,L]ÍA/1}ߣT*#̰{;*jKR+_=5K[['C.c]uF5x*X.zU߃>0 'M:ŏ egNx[$R i͇w3bi s2s*@YvyEO o@#~E/YS1%Hϻ P`WOuCq3u5ïqץD х|*A9Vcle.΀->lݬwQZQԕvɉvMh^m.qP3WlpT5YdNHF^;^o@ۈuW d몤W0\ົ3xԩ޾Ϗ@j٦Rⷛĉj?z䅘;nPAhߖw0zSPΐT@f.EF\ SK_'ޔ1' *%b1#_9ڀ*4c -ÎH tFy4/{0Y{ghaH!4{qptMg#ZZI`- +}FȰ|?K4;qk]x~7Rr2({ZSfKBQ]qY!EtM՞VE[^i^Ẁco;X&Tzzۤ\糢:p #0}٦AC}PIFQRmR $I X|#jtդeEȫIfaX}( g**rAVԢ#͡}#_) G{Gej(}w7Q*>m6K ߴ]37f?鉟GQ b( {vFLLR?>##mc⋡+ R GA"«eH ULlg/f M_;e-J~$"b1D|tecD) >-NxTn?ntzط4bDETȪҾo|Qё^@%_::`&HQ/QlLʷuh쌷Yv,D3K瑥WLOq~,8"{TdsErTr+8* z܊1p x:Qzw601~r҉_~ZM"JeK.dtj\Qn,Ls#I'8WC*_?E"^r@J{@jdjaNXHm.z$xAJtb8ko7[8@xEx"U2bOE6!TO?-ʹ/U ϘAkZ P8pmA$mB`{|`ub,oGm{CRBX8)_#[Ң9hѢ1\I̢/M22>&6 oV`u4s1x⨕fP)ȳ0e~|QJ蓇VyKQS~y)JExlG r> I.\R8]Oa˵)Nn' :rs/N=Oߔ9T|PIQ!u(L8aBGlhv )X\hPrAfK5N鍶!"EvWmݎ?z+*憾6C {_Z\/ W7dwXp2ܻ\ FgBƘƒlߋﬗˌ=4ơOt)n1K)v臜hA5EN(9c_]^/;6h(}Z#F ?`=sb,V>UmbȠ>#_BOR zL}¶,4oֵZ$cI=yrΦ_$U_Yt"7P h0!{MHaCV):yP;Weg:p /'(V=D mI2zTLN6LƣAH^J k1QSpRu(X,8'nYn1XIf{{t`-{)TqURT$4:Fda_-l96"j'-0q Vu6owZa7SY_ [CTJen0[%XCKAYS4tV$W9`2RU"\#l^ ҔՁg"x/ݞ)N߿0VV]CϯaaXw݇;UKT c軖}:8(>2! /`:6sۈgZ1rgDt-^Jkc;l.(75&Ri;@2XGbqhV̜=S眠rBh8POPu=1=P/T-]YC{l5.%'hc׳_U+WC`İxу٨]dSOmdK!#fgfeVc#'1aK%u$X,(;Ģ&RΞ۴5k2QJwgcvnjǓ]b _{0ƴqǰ*z33Ls(bS!A^BEYt4G6u2|*Z<[v3%_%Ji؂[W~xm:dE/J\Dew|dy$v%ẑX*01 j`5ImE=8rb- 8٥:4sb* e|| 5v`}6Z S~E h~S-b% A"xY *BTb 4KrFWUxD~m(X7(j>>o1KSZ# X[y۝M_jpÃt5f6t[ 4%9Z7A_\DƢumS`E߲ )jD- *hߟkqQlԪӹJہTm&n*鳶QV̆1#Yp|ߥѠD'>14+ښ h~rVZdbޣx 7o'rh}ޠۑ\r00 P)|*/-MoXEU ZD`3{q_:0_%ћ1i?Ɨ4}O>ohk:=epț|ĭՇcoȗbWS\ &) !cDv n&`3C`][@ن*T|͋\iVn3-{H{,gM`RWu nkh̍OEn`]KДMQ)ȵe!a򷎫>YGe #Sn+y6fAZ&zDBԵChֺ]v S_H"e?GzbPgyI+GM{J IHFa{KPؿ~Qtm_ 7-R.f*Ag:p|W:@2s}uiK^m5U) ^$+33nkpÎu'~9y?Ԉ45': T|Z[룻w+Jr=kra=3Ε'B؆4W-a_q޿OZz?=]>pP_yrI ťd>dbd؝32:0]=y,R҆F J' wL$LK˛*MM_:1E凣PTQԺBsuR1U@8Ŵ~[m9 b7 h f z-)U~1uJNx)hK} m }^'@XGe^.1P"3v4pŮ^u?. lL1S`doRt#P\B,،9<_7:O{ޔusctUe'UAƌَ=oEXz 'k-L{rh wtO0UЫ"eKu>nNTf8)"`5^Qi]U/{|nE`g''AW-m{];@^+u|e|]mIdϓ܌yP͋MPb#ueZO7 r _q™om߈[Fv۱Ǵr|K-2IP?ېS+C{2,[{"7,~O3LFc9{fύB EC9X&+m^1@505Ow`ױ18)d[a j9JLjz%2\~}aBt%Q9yQ nɨ8T*#`^^}weX߬:\\V6-Ur᪬nG:$^+]^kUtїG&":"լ;38)::4bK%j^WN"{cgYjZf%:\Ĉb._Z兡y%=_WH8Ǥ>@~*6$ lH8cWd!:󢁻{PkEl9O|5 {͐H]Dv"JbG PJA*ƬaZ]j ^"tਜmni5S iȒtBApA,7-bylT5!QngS$CqR:r9F^<2𫾌5IꤝX5G|@p |ukx°uO02圬sd/[␧&Q5jkIe3RĮ#AZ#['Cu; vH|@L AJ5"^">Ta'9R*VT8cB4 tmcnF$|PCVĠ~ Q)cAo4A-gق.OSW *77^ 9"ܨr$.N y"gMH+Qdϩ`H;bmJNgi&.0t}fNjR&,$A۳ƻ[i%TW( ;T50"ez|Nfk=) 5_/ )`vգF+G]Ut݂sBx,(['&o$^Qr w&1~4wLp "=?lnS7h\L)9FFSD[jkne[ArwW h|eǐŦ3ڎmEfȍǟ1dI 0ES_Nʃ<4L,cYT%zH٪i)lѦoibv^F͈n3iFᬃ\݀` !{c)&FO>r;#܊XR~x-]\+QV'a1"/Nsj<)WZ5`zk'iVW8M*nxk}vQZ 3=qɊ_Ct& blAr+d^br ^.HLq1qЈ'':;̝,*FGo E$EhJ?M53 + j`GGM[_O;+wMO*zjU֋UMڛ~OҢxW%p\E/2xZ&t@Pb6h+/fK4[B&PV^)y#*X=u{(KU@O_k8F,y"5TtL]z>EL>;GI;E+⌝ ~!}Mj}Ru~l 9HWQZhbZc+UZ2̐K75[ yF) rh^a 0Šg*ӏ] =[T26A.0lbś=1&I4kFcT-ۭAfϗ?\"\JDeƨ2t6\/ )^US.ܤob-kh9]`G6DY%6[gQzuދCV|UӸQ>CW5,]MXNoz]|VѣG;5~ T{Z ozNz$I_| ^zU|dEEWgޒ j}|SĬcŻrԝWq9E眮)0idީEw2M ߛ_!2sfky]MpE /܎1mKϗ~)^J{b(oͲ&I@)ngH"q<: %kkA&,0,w'cg9@/V5KZۜ#k],T]68CdƏjɼʚ{S]#fvYqfgwtƋH sCmɊ;o|woG# 82[zDQBv2h=]>58L+0R@{Ro7yÃ3%=c10ľO {dH ,6Ѐ ; YZ