libdnf5-devel-5.2.10.0-2.fc42 d>d 6 6_TdThTlT|T 3!XPȬI^DgG ȬI^D|i;LeN{^9{T xw!duqF *an7eM=6A%}b@Ik9Q6hYN$0;v{`a6.:^o.]ApD# $/V~L"nw/ G{v\3T2Z4Ti:UA@ƓE֬"w1.Ǔs<0p"qu_6%sp{FAr4ba ;Ef +҄O2~{OZTk 24 I9hVoDޅ"SJAnU0evon}DfL0] [;\aBI<\}5 g!G:ꩭ0.V(Iyi/$wۜ-Rq7wu F`>G!?Gd  =\`  t   , )C ),D/72*2H445 6t(686?97?:BN?G'$H)I+X,tY,\,]/^7b:dvA$wAxxCyF0 F\F`FFFFClibdnf5-devel5.2.10.02.fc42Development files for libdnfDevelopment files for libdnf.g Kbuildvm-a64-05.iad2.fedoraproject.org FeFedora ProjectFedora ProjectLGPL-2.1-or-laterFedora ProjectUnspecifiedhttps://github.com/rpm-software-management/dnf5linuxaarch64o Ag !:c.A <$c q x 7b+ w_ll [p & f   S=u C.  X) F  j ( %g,i #% 9> w""Z|` +&!!%/7 A_ 6Lh P}N^2s gAA큤A큤A큤A큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤AA큤A큤AA큤gggqgqgqgqgqgqgqgqggqgqgqgqgqgqgqgqgqgqgqggqgqgqgqgqggqgqgqgqgqgqgqgqgqgggqgqggqgqgqgqggqgqgqgqgqgqgqgqgqgqgqgqgqgqgqgqggqgqgqgqgqgqgqgqggqgqgqgqgqgqgqgqgqggqgqgqggqgqgqgqgqgqgqgqgqgqgqggqgqgqgqgqgqgqgqgqgqgqgqgqgqggqgqgqgqgqgqgqgqgqgqgqgggqgqgqgqgqgqgqgqggqgqgqgqgqgqgqgqgggggqgq43cf6113454a8dce3450ece2dcbe76f24fce7466250bc312362713befb3911086ec93efe0e5a39ba4aeffd09fdcf2f369b5aa15634a7139d23ce2f52ecb691ee415440e91a3b977f207862d15c1c520b3780ad6ce7dddac0db1ffed5eadf8f7c9a13803d56f5b8e5662ac8f21904969784650c7bbce01c61fae49e41cf0ece08aed9f63d953630163abc7452cf49daea06a48585fb8509fc8845816d292ddca058fa9c1362bb9dbf978640899bf3606d4ef7d1c70e96d5512f7b600e6708432295f6f69d1c2edf3efba82ced5fa2178ddfeec136c437b28b2456541a0cb28eb294e620f83557f0b78353608fe6d88774b1c4966a0661127ee1ececd59a62754a913741f1fd0e5bbab00978d5cf8ab19880fe4cd475a4c91e521d9d522343ba19a3db75eea29fdbe994e92cce8ffa95a9818e220ddbb2147ecf404f089168d03772357f6106e0e83f1dcac6301a1cfcdc2ab273f2e7d633f5be69e16750a8d62781cd4e22be45006ed3f5daf5614fe11c3f7f88d95876d4c6db1496a53c3ae740db0882475cff2633d702f158e9101e97d929414f030f10ccbefd1b72763f9099bb865bcdb67728a895d87f4577d4a86d811d432d70bc5aeb5136972ce6fbe3222b65022818e51171a865b3ef5acb3b8e9ebfc5be936d927608de5719bf8026617e8129dc2454a80f61199d2e1509b06e2b520f6176243f306530a4bfb5f8f9cda377f5cb08d0f010753d5724cc438c1bc650bc55482242dc3468386ea926d3791e708f092ac0945b9e1f3cedd44ffa30b933d2c6bc0e5d8d97c44dfbc2f8e98311d66a2cad2f80379e774700f3fd54eb35bacd9b849eb2773de4561ea1e25dbd13d5ba321613d398b3ba2544472b434946ff469849730345f49910f753e9904f87ad47b548fc812a352b16477a7fa6dfbee1dd4a724ab60e1c0cbcad55b5a4c8e115ec613506e832da856171e0611025046defdbc1da0944025268980d9c1ff93de18ad47aa81273ab4a28efa775fab2859fdd9af22a0cb1e1e1d8443e198f7e8b7849f1df771b47b8c266c25574d45cde1b05617a16d99bf3a8c903f1963a155a7906e16f9cd233a72cb897536548e059d3595ce527565e03ef0ccfff0bbe2132ffba085c35d3d333ce1c2c7232d2534fb9eb3564fff3b893065ac1d8832b1196a749fa63089907a2bcae3c75af4822d53ced3bc9d72f5902b6f1899895857825bf1ce90485e0d70e3489f686857966036d8a69dd67cf5284d75251349bdfc0d841b2014a21322bdeaf91409b7cb9ad5c2a472cbaf20acf6920a89b1cff450afcb38397b7abb0a2311bc052704874122c5966dd63003d6b69434ac0a4a90920ea712d74ef912edd5bcfae80c8ea00c52a5be4d119aaa9b7531ab42d6149afd4b633617df513362f11e828e940ae9be1e5449e5d330fc37f3e1b6b2fbaf31e92846df2a7c1d3d1a1011cc59044ad47f9724a3236f2cdaee34f1abab7067f2ae2518b989799400858c26bf2882bcf3187ffa402cfd0884ab9eca6ebc370b719ca89231bec38055b9038d0ca8f363d7d0411c8c2c501b5328cbc118fb7d381d7b6566663818e9e12fdc2e0d55422f5bd72dbf05ed37905b3bf2779df3e55ba67ce7aa61adeeb29f11d9db1d886ec802d98ccd9009e2f1929a836a69edbf71e7dbccd0dcbe6def3faa4115a19952ac95771574ab1acddee0e909254f2b985c9631b8dfa6f29939b1a76945533348c1a60de51ad6c1ae757fbf7b6a5233fd9f16aed636bbff479eb783e02414df876178a9f5463a2d6b6e6309fb8aac9a494dc08606c6936047dbeffe94678e5d385784c9a54c133ed71b1335873dddcafec9b2f010feb584750beb4e6dda2a2b0707cc774733396361795e8da4d7389335a0a174c6e6e6241c2ebd96a6525704adcf6bdca3f28381ad3975414ff797b9f741725f0e4411a76cefb0ee96fa739e185431cc0d378c0f282a8d2f79da76cbd281727088c55109cf38f1027c6777ddf0802697f8808242ef44f03e0f182099c76eef673aeb75cbd8bdd8a5f172ac079e1d656a4edb1ce1747bb0cc4a5340ffbc3580922820fbd56bfb01451bc5a4cc364d980450417b898001c296af05670f78266e1885ecdf45c285ab7e130d3c9145c2c2a3c51b4e1104af305707df5e3e79c341d9291638d582136dfa4c342367fa43a2d1be73fcb019683710f0afea00f3fc5a1745ffe205995a16386ad146463ce9aa7998c7a7287cb55ebef67040d99c0569d8fcf4bef2b5115f11b3d68b31557bc8babf5b9678d8004525bde2342c9de1e42ab70cc9f5b7c19ad0a2fa8413c0cb9cb26a170e0b872257eecee7f79ff004a1ba3cb603119de96bfca20d58881fe556b018fb7833723df34f831f593e6abdf75380bc99ecc8d8526cc7d750fc26b2bc1310b2089a76daab1722c4b3d4c8e71ae34b0b276a163f568202cdc9c166cff8e922a394aeed0c1df8d6af62861ce123ae45e2c28a45c404d0f167c0293822322dd35c55de958514cd30857b56dab76300d8cd2e2cb62a657269dab3a05e0b08b30669f908a7a2917e981037cac23aac7329e85e236c5996dd1747833f1d261a14c1e653ab628b18db87066a370138ac49d223fbe42e0863923b3336f26415d66b2a9017d877ef0bfb1df3161a75bdae2d339088cdf94478cee22e138e771c3330784512f1bbebcc6b36e4bded2ed9a62c0bfb9abbb7f531d9aaccbcad16440ae1e2d50a63e20602018b9817b23cddaacb9dd64c0bbdf00679c44c39bbe8566c61ab7b2aaaf1f027a0e0312acfb9ac7ee3fe4172157ca24f5dd0edc8e27fd49423f10bb8246067650689065906d858e47252c5cee40f2a26a2ccc35696256311418208b12efd1ecafbd42f813b4320d70df667b1d2769d42daa3306ecae87eb08a37ab3d98ccc8b3f594a6daf07fecbdfcb6a58db9e849b4731bc753abd19efaa9128b3db258f7623a42300ee1ed3166b833d43a225535ecc43fc53fb3cda0d462d45e20969543f7327738fe558b4fe450dc5718a1ccb1e31b93d359f22810581f86f3007530c434d05ddce2cdbd8e5e7b3c0d2f1f7cc2a2906cabfa68e06c87dbe543c3e7677aed51f759ca488d5dc9b6f5b7471c0694c22210072c7620b60a1d08950134026b37293325a586650c08ad7fa9995565789e2033d551e67e03eda680f61f117c1f48cb126ed0fb013dc88436517ae3a50873ff13a1075c30665f45fcd4645074e2b4d85d3561a4d6a9283600c87f4f80c8f146e8c904631e330aef66da4180baf5c0af0fd11dedd7378c6ce59fc21b8556c5c994ef4db75df1212ce124ae92ee99da7e2ce5c546c176a59315f45a4fcc2ec8693084f696abf159d518916563ca4b6d905acb761519cb60146b2b4a5e79bda3788bd454b19497d6ea48c76f84977b5ecc734028165dabfcfd6a23758a5e0adc25f8ef03eb95aec2d0f9ff9387988afedb6d51c4aecdaca7eb7e58863c0167ffe72a3ef226f1f97ca449d5af08d7059253909d151137836d9c1e8fc02dc38b3c3c99850e1e6fbe6448108e17f796b10992668023c6407e4e621d03503a7d387dafe93c9e82c286662abb7877897c3ca6d7aab7344d69d370911ac5260faf93e9a3a65f911095f3c0a65697860ce596d5bdb235e30b6f8b84ea730284012a95d5aebd16b256f3c51fd5d4615d914647623aeeef9b3f86dfdfc209850f1a85998c16aa59d51fba936ae49eee341396a53abf478ad7b834ab5c6fccca8ccc679e8571303b7c1e1bf7107ac261361133e7766b1508a2934424cf3c20e33b3e2496796277e2194c106fa92a62a81e79340fc4a9294df1511887fc2350dd825e9f040dbcbafa9742103852a4560cb893f5fb4b52fdb683df878bd313dc5cec9fb7da8616da8d20565dab6a080779f81ba30ff8451ad273b4c01681587a2ee9a4a088a9da80b432baab9058fd7163035914101361df606d1e27e30d6d3464768ebb79567213591b53fda902e100e1b19f8069df60d4c05fa40d2bec28a5f5f6b9106b7e33f6ddf9d5d9c43259e1ac13905e803c8975fb9fa4d2de04173687a2cc5117802cd12c6d0177c302bce771e4398c0bf4fd7d9c7c8b0649f74f287616ee7a15120fb8b687efef1181cc7674a4cbe4503acf973927bb5c77d4aea48e58ad146abbe12b9802e7e428941d62540e6b183d6f736c32aaf45b71f3919f753380e7b89131dff94349d14a16d24f56840b4876fda54833dc436aebb903c8fd275333cac9c726074dc46c088665f5b0aee907c63f9edcc8c886d5cab269be22d94baff1f11e8b70580b5be8114cacd2de1e8782811acfd0e74f3df234fd6c713b8d2f9d97ba1506a6ca8b05a8802ddec6f218140149021d1f5f62e8f7861e0b313720cb1487e4af68bc2d54b3f47e9c8d4e42b3c9b40398c83ac51280a3522a63f6c667faaf73f40a04cbb53d52c3419c34da0b544643aac2ab8bb66a5daae10d574dfc3f1ae7a84dc7a5451b6a6deae6adbd2f8c580e14eeaeae01b4d2c8b6aa91662d5d797e0ff7c59ef86d8c46774d6ba67f29d153ec0d2a2eb9c6fd1d0ccd67c8dd0b57184288435af059f78506f9fef539ffe745afcdd499d4673228ec402bd06494fdb43329a7ca3bcde544baa2ff7b7ab2cd43ed47141d6dd351851a98cbca0c96b5712d1b4c3f88dcdd235dbdb9ffab56817a10797c7541a29d9556c78a4fb67700a79d4d95e374ecf395515f78dbb75b5120fb620895c7cbdfca1efe4d538bbadfecf8ec7a2c13fa7d0d1d60a358517abf50d74f8448abf1da4c055ddb60432093ae853e27bedcd7f6d18d70e1b30765de3484d29a5499ba8021667eb12595316333de1ec45f99f8ccb7e49130cfc10187ba3662b3ad425513c8728c744d6ca78652198130aa1fd4677a9542bea2591a2c17dd8b4dd3401141a946aa78844d8a444bbe31d0ba0ce2fb40a8a6ca02651b9a70d19de8ed4b16e26affb7d30e1601baccbba87e8d550e2b3932f0582683617d3b53b7228312a14b6f0027e7a9c1da8edc3d2162158d7355f11657f87605dd924130b382ae446c869ec4687f7dc93a0f5e02b2c549ae01ff0433a290715361d41ceb513e46101be45bb0be1bf450a3f7c7b2164fabf4167b5c176c1cf83859feabe316719a68186fe6ae0c2e852f1e09e6aaa53182b7532e72173d4547f2b0f68c8fa4e49b4427e098753eb73615aa63c54775dddbfa843c4fbbb9dbb4904f5e2d1354242975e8f9173b136e2489ea2df938d409c810cd4375d0772ddbdf9447a596bd0ca1d7a2f3e807d09c59fafcea0c86ed4eb5a091aaf14eb6bb2e502dd69f465b4fcccf3a095ef42a86d0754f39bd65746188995f32fe5f4c92c8cff1824ae1c107739c2b611b194a856b4883f0c91f41e6484876b655d04787b7b5756a46e3b81262e9f7fcf866beadae3f3cddfdce2afb2ff294da251204af0a17dd9a39c4c3694ce7dd64207058b719f5e648c7102b4be5e3180ba75a200f21951ca10b10e226761ae3d762bf0cad5a7d763f747309e0babdd086939db2004b50eaebdb2d5ab1bce231350f771db7637dcb2b7590c4060cee393034f962199ceafc541089203a40f1db0d6e058c82c4f7fb2ec9766a711b1a4b396e72b2beb81e019034290658ff8ca25a35d26277ac69e1700963850b1b7fd49867545d49a7c5e5343322cc7c8573ec41ea6e425fc27c806ace0498e4097a6b1fb72572c0dc80679b684c30d49fa07837fb105064d3e92330e616e6d8bd11d2d8a484cdb649263d1b82eb8b532299e48b4099bbd4951b4b10f9b0b068b132d1d18b884ff14a1fb968ff6dcacbee8e69d8c592987e8510228d546540b84a22444bde98e48d03078d3b2eefcd889bec5ce8clibdnf5.so.2rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootdnf5-5.2.10.0-2.fc42.src.rpmlibdnf5-devellibdnf5-devel(aarch-64)pkgconfig(libdnf5)@@ @@@@@@@@    /usr/bin/pkg-configlibdnf5(aarch-64)libdnf5.so.2()(64bit)libsolv-devel(aarch-64)pkgconfig(fmt)pkgconfig(librepo)pkgconfig(libsolv)pkgconfig(libsolvext)pkgconfig(libxml-2.0)pkgconfig(modulemd-2.0)pkgconfig(rpm)pkgconfig(sqlite3)rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsZstd)5.2.10.0-2.fc420.7.303.0.4-14.6.0-14.0-15.4.18-14.20.0g0@g@g@gg@g~hgR@gQgM@g? g3C@fcf@f@f@f@f@f|fife@f]@fU@f8@f(@f Df @e,e8@e @eԔ@eeed@e@eeL@ees@e`@eLe:Te@e;dܺ@d@d@d~dD@d@ddr@d ddu@dtdoMdgddgddf@dP@dI@d7dxJan Kolarik - 5.2.10.0-2Packit - 5.2.10.0-1Packit - 5.2.9.0-1Fedora Release Engineering - 5.2.8.1-5Petr Pisar - 5.2.8.1-4Mamoru TASAKA - 5.2.8.1-3Miro Hrončok - 5.2.8.1-2Packit - 5.2.8.1-1Packit - 5.2.8.0-1Yaakov Selkowitz - 5.2.7.0-2Packit - 5.2.7.0-1Packit - 5.2.6.2-1Packit - 5.2.6.1-1Packit - 5.2.6.0-1Petr Pisar - 5.2.5.0-2Packit - 5.2.5.0-1Fedora Release Engineering - 5.2.4.0-2Packit - 5.2.4.0-1Jitka Plesnikova - 5.2.3.0-3Python Maint - 5.2.3.0-2Packit - 5.2.3.0-1Packit - 5.2.2.0-1Packit - 5.2.1.0-1Packit - 5.2.0.0-1Packit - 5.1.17-1Packit - 5.1.16-1Petr Pisar - 5.1.15-2Packit - 5.1.15-1Packit - 5.1.14-1Packit - 5.1.13-1Packit - 5.1.12-1Fedora Release Engineering - 5.1.11-3Fedora Release Engineering - 5.1.11-2Packit - 5.1.11-1Yaakov Selkowitz - 5.1.10-3Mamoru TASAKA - 5.1.10-2Packit - 5.1.10-1Packit - 5.1.9-1Packit - 5.1.8-1Packit - 5.1.7-1Packit - 5.1.6-1Packit - 5.1.5-1Packit - 5.1.4-1Nicola Sella 5.1.2-1Packit - 5.1.1-1Fedora Release Engineering - 5.1.0-2Packit - 5.1.0-1Jitka Plesnikova - 5.0.15-4Python Maint - 5.0.15-3Adam Williamson - 5.0.15-2Packit - 5.0.15-1Vitaly Zaitsev - 5.0.14-2Packit - 5.0.14-1Packit - 5.0.13-2Packit - 5.0.13-1Nicola Sella - 5.0.12-1Petr Pisar - 5.0.11-3Nicola Sella - 5.0.11-2Packit - 5.0.11-1Richard W.M. Jones - 5.0.9-3Nicola Sella - 5.0.9-2Nicola Sella - 5.0.8-1Nicola Sella - 5.0.7-1- Recommend expired-pgp-keys plugin by default on F42+- Update translations from weblate - plugins: Provide the actual API version used - plugins: Check only major version of API for incompatibility - expired-pgp-keys: New plugin for detecting expired PGP keys - rpm_signature: Fix rpmdb_lookup comparison case mismatch - actions: Update with resolved hook - libdnf plugins: Add resolved hook - SWIG bindings for common::Message and common::EmptyMessage - EmptyMessage: class for passing an empty message - Message: base class for passing a message for formatting in the destination - utils::format: Support for user defined locale - SWIG bindings for utils::Locale - utils::Locale: class for passing C and CPP locale - utils::format: Support for formatting args according to BgettextMessage - bgettext: Add function b_gettextmsg_get_plural_id- Update translations from weblate - automatic: Translate end-of-lines in email emitter by DNF - ruby: Fix swig namespacing in Ruby. - Correct Ruby %module definition in swig files. - Documentation enhancements - Add a hint to `history info` without trans IDs when no match found - Add `--contains-pkgs=..` option to `history` `list` and `info` - During package download setup first add all downloads then handle local - Enhance `perform_control_sequences()` to handle colors - versionlock: Fix wildcards handling in `add` command - ruby: Implement Enumerable for libdnf5::advisory::AdvisorySet. - ruby: Implement Enumerable for libdnf5::rpm::ReldepList. - ruby: Implement Enumerable for libdnf5::rpm::PackageSet. - Implement each() for iterating over collection in ruby. - Add --json output to advisory info - I18N: Annotate indentation of the transaction summary - libdnf5: Load plugins with RTLD_NODELETE flag set - libdnf5: Add a plugin to download and install repo's Appstream data - Fix bash completion if colon is in the word to complete - Remove and rename global variables in bash completion - DNF5 bash completion: Offer package NAMEs in all cases - Bash completion: always offer NEVRAs for packages - repo: Fix logging metadata download errors handling - Copr plugin: Fix resource leak in load_all_configuration - Own /var/lib/dnf by libdnf5 - Display remaining time as nonnegative number - automatic: Substitute variables in command_format - Bumb readthedocs ubuntu image version to fix the docs generation - automatic: add a default setting to not emit boring messages - Incorrect library name in libdnf5-cli.pc - Fix reporting disk space to be freed on a pure package removal - Support ProgressBar messages with wide characters - Add padding to ProgressBar messages to avoid overlapping - SWIG: support repo::DownloadCallbacks user_data - Remove redundant %python_provide statements - python3-libdnf5: Remove superfluous provides for python-libdnf - Update pre-commit hooks to latest versions in F41- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild- Fix plural form in "Replacing N packages" message - Fix reporting disk space to be freed on a pure package removal (GH #1938) - Fix a library name in libdnf5-cli pkg-config file - Fix expanding "{body}" in command_format option of automatic plugin (GH #1951) - Display remaining time as nonnegative number (bug #2332931) - Document removal of "userinstalled" subcommand (bug #2335257) - Own /var/lib/dnf by libdnf5 (bug #2332856) - Fix a memory leak in copr plugin - Fix a crash when reporting metadata download errors (GH #1919) - Fix end-of-lines in messages sent by email emitter of automatic plugin (bug #2335508)- Rebuild for https://fedoraproject.org/wiki/Changes/Ruby_3.4- python3-libdnf5: Remove superfluous provides for python-libdnf* Fix libdnf5 actions plugin sign conversion compilation err by @jrohel in https://github.com/rpm-software-management/dnf5/pull/1921 * builddep: Add support for --spec and --srpm options by @m-blaha in https://github.com/rpm-software-management/dnf5/pull/1907 * Implement reposync plugin by @m-blaha in https://github.com/rpm-software-management/dnf5/pull/1903 * `MultiProgressBar` fixes and tests by @kontura in https://github.com/rpm-software-management/dnf5/pull/1925 * changes_from_dnf4: fix formatting of indented `list` points by @kontura in https://github.com/rpm-software-management/dnf5/pull/1930 * Python API: Method `DownloadCallbacks.add_new_download` can return `None` by @jrohel in https://github.com/rpm-software-management/dnf5/pull/1929 * doc: Use OpenPGP instead of PGP by @ppisar in https://github.com/rpm-software-management/dnf5/pull/1931 * Release 5.2.8.1 by @github-actions in https://github.com/rpm-software-management/dnf5/pull/1934 **Full Changelog**: https://github.com/rpm-software-management/dnf5/compare/5.2.8.0...5.2.8.1* rpm: Reset RPM log callback upon RpmLogGuard destruction by @m-blaha in https://github.com/rpm-software-management/dnf5/pull/1870 * SWIG bindings for user_cb_data in repo::DownloadCallbacks, unit tests by @jrohel in https://github.com/rpm-software-management/dnf5/pull/1849 * I18N: Mark messages in "dnf search" output for a translation by @sunwire in https://github.com/rpm-software-management/dnf5/pull/1861 * Hint when an unknown option is available on different commands by @kontura in https://github.com/rpm-software-management/dnf5/pull/1858 * builddep: add support for remote arguments by @kontura in https://github.com/rpm-software-management/dnf5/pull/1874 * I18N: Mark "Total" message in MultiProgressBar() for a translation by @sunwire in https://github.com/rpm-software-management/dnf5/pull/1885 * Make `test_multi_progress_bar` test more resilient by @kontura in https://github.com/rpm-software-management/dnf5/pull/1882 * package_downloader: Ensure creation of intermediate directories by @m-blaha in https://github.com/rpm-software-management/dnf5/pull/1876 * I18N: Mark message in dnf list --installed output for a translation by @sunwire in https://github.com/rpm-software-management/dnf5/pull/1883 * repo: Make Repo::download_metadata() method public by @m-blaha in https://github.com/rpm-software-management/dnf5/pull/1878 * repo: While cloning root metadata copy also metalink by @m-blaha in https://github.com/rpm-software-management/dnf5/pull/1880 * spec: toggle dnf5_obsoletes_dnf for RHEL 11 by @yselkowitz in https://github.com/rpm-software-management/dnf5/pull/1886 * rpm: New API to check PGP signature of RPM file by @m-blaha in https://github.com/rpm-software-management/dnf5/pull/1877 * repo: Add option to download all repository metadata by @m-blaha in https://github.com/rpm-software-management/dnf5/pull/1879 * Add packit job to run ABI check on testing farm by @kontura in https://github.com/rpm-software-management/dnf5/pull/1869 * Fix copr chroot specification: replace faulty regex with simpler split by @kontura in https://github.com/rpm-software-management/dnf5/pull/1863 * Download cmd: Require at leats one argument/package to download by @jrohel in https://github.com/rpm-software-management/dnf5/pull/1905 * Install defs.h for /usr/include/dnf5/context.hpp by @ppisar in https://github.com/rpm-software-management/dnf5/pull/1914 * doc: Use PGP instead of GPG by @ppisar in https://github.com/rpm-software-management/dnf5/pull/1917 * @sunwire made their first contribution in https://github.com/rpm-software-management/dnf5/pull/1861 **Full Changelog**: https://github.com/rpm-software-management/dnf5/compare/5.2.7.0...5.2.8.0- Toggle dnf5_obsoletes_dnf for ELN* copr: use pubkey URL returned by Copr API by @FrostyX in https://github.com/rpm-software-management/dnf5/pull/1725 * Package file documenting dnf4/dnf5 changes as man page by @m-blaha in https://github.com/rpm-software-management/dnf5/pull/1729 * daemon: Reset the goal by @m-blaha in https://github.com/rpm-software-management/dnf5/pull/1678 * Consistently use "removing" instead of "erasing" packages by @ppisar in https://github.com/rpm-software-management/dnf5/pull/1732 * Add --allmirros option for `dnf download --url` by @alimirjamali in https://github.com/rpm-software-management/dnf5/pull/1735 * comps: Fix memory issues in group serialization by @m-blaha in https://github.com/rpm-software-management/dnf5/pull/1743 * Print RPM messages to the user by @m-blaha in https://github.com/rpm-software-management/dnf5/pull/1728 * i18n: Update translation templates from Weblate by @ppisar in https://github.com/rpm-software-management/dnf5/pull/1745 * i18n: Fix plural forms for "Warning: skipped PGP checks..." message by @ppisar in https://github.com/rpm-software-management/dnf5/pull/1746 * Set `POOL_FLAG_ADDFILEPROVIDESFILTERED` only when not loading filelists by @kontura in https://github.com/rpm-software-management/dnf5/pull/1741 * When writing main solv file (primary.xml) don't store filelists by @kontura in https://github.com/rpm-software-management/dnf5/pull/1752 * Fix libdnf5::utils::patterns: Include missing headers, no inline API funcs, mark `noexcept` by @jrohel in https://github.com/rpm-software-management/dnf5/pull/1742 * Allow unlimited number of arguments for history `list` and `info` by @kontura in https://github.com/rpm-software-management/dnf5/pull/1755 * [swig] Bindings and tests for libdnf5::utils::[is_glob_pattern | is_file_pattern] by @jrohel in https://github.com/rpm-software-management/dnf5/pull/1738 * doc: "dnf repoquery --unsatisfied" is not supported by @ppisar in https://github.com/rpm-software-management/dnf5/pull/1758 * comps: add get_base() to {Group,Environment}{,Query} by @gotmax23 in https://github.com/rpm-software-management/dnf5/pull/1722 * Make most descriptions for `dnf5 --help` translatable. by @bc-lee in https://github.com/rpm-software-management/dnf5/pull/1751 * test: Normalize Python code by @ppisar in https://github.com/rpm-software-management/dnf5/pull/1762 * Recommend --use-host-config if --installroot is used and not all repositories can be enabled by @ppisar in https://github.com/rpm-software-management/dnf5/pull/1760 * log: Preserve log messages during RPM transaction by @m-blaha in https://github.com/rpm-software-management/dnf5/pull/1772 * chore: Clean up Fedora 37-related conditionals in RPM spec by @bc-lee in https://github.com/rpm-software-management/dnf5/pull/1765 * Change `gpgcheck` option to `pkg_gpgcheck` but stay compatible by @kontura in https://github.com/rpm-software-management/dnf5/pull/1766 * Drop `errorlevel` config option by @kontura in https://github.com/rpm-software-management/dnf5/pull/1788 * build: Remove an explicit swig option -ruby by @ppisar in https://github.com/rpm-software-management/dnf5/pull/1795 * Revert "Drop `errorlevel` config option" by @kontura in https://github.com/rpm-software-management/dnf5/pull/1793 * Update dnf5.conf.5 to reflect change in fastestmirror behavior by @PhirePhly in https://github.com/rpm-software-management/dnf5/pull/1784 * historydb: Prevent insertion of duplicate group packages by @m-blaha in https://github.com/rpm-software-management/dnf5/pull/1798 * Optimize getting counts of transaction items by @kontura in https://github.com/rpm-software-management/dnf5/pull/1778 * Fix parsing of offline transaction JSON file by @m-blaha in https://github.com/rpm-software-management/dnf5/pull/1807 * When `multi_progress_bar` finishes print new line automatically by @kontura in https://github.com/rpm-software-management/dnf5/pull/1805 * Run "makecache" periodically to keep the cache ready. by @gordonmessmer in https://github.com/rpm-software-management/dnf5/pull/1791 * DownloadCallbacks: Ensure `end` for every successful `add_new_download` by @jrohel in https://github.com/rpm-software-management/dnf5/pull/1814 * Clear up changes doc about optional subcommands by @kontura in https://github.com/rpm-software-management/dnf5/pull/1834 * MultiProgressBar now buffers the output text to a single write by @Giedriusj1 in https://github.com/rpm-software-management/dnf5/pull/1825 * repo: Fix invalid free() by @m-blaha in https://github.com/rpm-software-management/dnf5/pull/1850 * daemon: API to reset the session.base instance by @m-blaha in https://github.com/rpm-software-management/dnf5/pull/1757 * Release 5.2.7.0 by @github-actions in https://github.com/rpm-software-management/dnf5/pull/1857 * @FrostyX made their first contribution in https://github.com/rpm-software-management/dnf5/pull/1725 * @alimirjamali made their first contribution in https://github.com/rpm-software-management/dnf5/pull/1735 * @bc-lee made their first contribution in https://github.com/rpm-software-management/dnf5/pull/1751 * @PhirePhly made their first contribution in https://github.com/rpm-software-management/dnf5/pull/1784 * @Giedriusj1 made their first contribution in https://github.com/rpm-software-management/dnf5/pull/1825 **Full Changelog**: https://github.com/rpm-software-management/dnf5/compare/5.2.6.2...5.2.7.0* chore: static_cast to fix sign conversion warning by @evan-goode in https://github.com/rpm-software-management/dnf5/pull/1715 * Fix `sdbus::ObjectPath` when checking signals `object_path` by @kontura in https://github.com/rpm-software-management/dnf5/pull/1711 * Do not install /var/cache/libdnf5 directory by @ppisar in https://github.com/rpm-software-management/dnf5/pull/1712 * setlocale: If locale setting fails, try using C.UTF-8 as fallback by @jrohel in https://github.com/rpm-software-management/dnf5/pull/1713 * Birectional communication of libdnf5 actions plugin with running processes - "json" mode by @jrohel in https://github.com/rpm-software-management/dnf5/pull/1642 * Release 5.2.6.2 by @github-actions in https://github.com/rpm-software-management/dnf5/pull/1719 **Full Changelog**: https://github.com/rpm-software-management/dnf5/compare/5.2.6.1...5.2.6.2* doc: dnf5-repoquery: Mention %{reason} query tag at --userinstalled by @ppisar in https://github.com/rpm-software-management/dnf5/pull/1683 * automatic: Use original dnf4 config file location by @m-blaha in https://github.com/rpm-software-management/dnf5/pull/1690 * spec: Recommend dnf5-plugins if dnf-plugins-core installed by @evan-goode in https://github.com/rpm-software-management/dnf5/pull/1691 * transaction_callbacks: Deprecate confusing alias by @m-blaha in https://github.com/rpm-software-management/dnf5/pull/1689 * offline: Update usage of toml11-devel by @evan-goode in https://github.com/rpm-software-management/dnf5/pull/1694 * doc: add typical dnf5 workflow by @kontura in https://github.com/rpm-software-management/dnf5/pull/1661 * swig: Add wrappers for TransactionEnvironment and TransactionGroup by @pkratoch in https://github.com/rpm-software-management/dnf5/pull/1697 * I18N: Mark messages in "dnf install" output for a translation by @ppisar in https://github.com/rpm-software-management/dnf5/pull/1696 * doc: Document arch override for API users by @m-blaha in https://github.com/rpm-software-management/dnf5/pull/1695 * Fix: libdnf5-cli: TransactionSummary counters data type by @jrohel in https://github.com/rpm-software-management/dnf5/pull/1701 * I18N: Mark messages in "dnf info" output for a translation by @ppisar in https://github.com/rpm-software-management/dnf5/pull/1698 * dnf5: Run transaction test for offline transactions by @m-blaha in https://github.com/rpm-software-management/dnf5/pull/1672 * Warn on sign conversion by @ppisar in https://github.com/rpm-software-management/dnf5/pull/1703 * dnf clean: Do not report an error on a nonexistent cache directory by @ppisar in https://github.com/rpm-software-management/dnf5/pull/1707 * Release 5.2.6.1 by @github-actions in https://github.com/rpm-software-management/dnf5/pull/1714 **Full Changelog**: https://github.com/rpm-software-management/dnf5/compare/5.2.6.0...5.2.6.1* Make offline transactions work with local rpm files by @m-blaha in https://github.com/rpm-software-management/dnf5/pull/1586 * Add `history redo` command by @kontura in https://github.com/rpm-software-management/dnf5/pull/1595 * Improve "After this operation" disk usage messages by @ppisar in https://github.com/rpm-software-management/dnf5/pull/1600 * Add an example how to disable repo to `repo` command man page by @kontura in https://github.com/rpm-software-management/dnf5/pull/1601 * dnfdaemon: implement D-Bus API for cleaning caches by @m-blaha in https://github.com/rpm-software-management/dnf5/pull/1589 * Add some docs about environments by @dschwoerer in https://github.com/rpm-software-management/dnf5/pull/1562 * Fix a use-after-free in EmitterEmail::notify() by @ppisar in https://github.com/rpm-software-management/dnf5/pull/1604 * spec: Stricten a dependency on DNF libraries in plugin subpackages by @ppisar in https://github.com/rpm-software-management/dnf5/pull/1607 * Reduce the noise around running scriptlets by @m-blaha in https://github.com/rpm-software-management/dnf5/pull/1606 * builddep: Support the --with/--without options to toggle bconds by @dm0- in https://github.com/rpm-software-management/dnf5/pull/1509 * Use `SOLVER_FLAG_FOCUS_NEW` to install latests versions of deps by @kontura in https://github.com/rpm-software-management/dnf5/pull/1582 * spec: fix cmake focus_new arg by @kontura in https://github.com/rpm-software-management/dnf5/pull/1615 * dnfdaemon: system-upgrade API and command by @m-blaha in https://github.com/rpm-software-management/dnf5/pull/1588 * Enhance docs for `system_cachedir`, `cachedir` and `logdir` by @kontura in https://github.com/rpm-software-management/dnf5/pull/1618 * Backport countme bucket calculation fix by @kontura in https://github.com/rpm-software-management/dnf5/pull/1613 * doc: Use ~ instead of /home/$USER by @ppisar in https://github.com/rpm-software-management/dnf5/pull/1619 * doc: fix arguments for install, upgrade and remove by @kontura in https://github.com/rpm-software-management/dnf5/pull/1621 * doc: Naming of source and debug repos by @pkratoch in https://github.com/rpm-software-management/dnf5/pull/1627 * Use correct path when destdir option is set by @m-blaha in https://github.com/rpm-software-management/dnf5/pull/1628 * doc: Revise packages filtering doc section by @m-blaha in https://github.com/rpm-software-management/dnf5/pull/1632 * spec: fix modularity man page by @kontura in https://github.com/rpm-software-management/dnf5/pull/1639 * Update toml11-devel usage for 4.0.0 by @kontura in https://github.com/rpm-software-management/dnf5/pull/1625 * Better error messages for system state loading by @m-blaha in https://github.com/rpm-software-management/dnf5/pull/1623 * Implement a default user_agent string by @lleyton in https://github.com/rpm-software-management/dnf5/pull/1590 * [dnf5] Add argument "-c" - alias to "--config" (dnf4 compatibility) by @jrohel in https://github.com/rpm-software-management/dnf5/pull/1650 * Install `defs.h` include for `libdnf5-cli` by @kontura in https://github.com/rpm-software-management/dnf5/pull/1657 * Show the output of failed scriptlets to the user by @m-blaha in https://github.com/rpm-software-management/dnf5/pull/1652 * doc: configuration options update by @kontura in https://github.com/rpm-software-management/dnf5/pull/1648 * Print diagnostic messages on stderr, not stdout by @evan-goode in https://github.com/rpm-software-management/dnf5/pull/1641 * daemon: D-Bus API to cancel current transaction by @m-blaha in https://github.com/rpm-software-management/dnf5/pull/1665 * config-manager: Fix addrepo from-repofile with empty/comment lines by @jrohel in https://github.com/rpm-software-management/dnf5/pull/1671 * Fix regressions from stderr/stdout changes by @evan-goode in https://github.com/rpm-software-management/dnf5/pull/1677 * doc: TransactionCallbacks class documentation by @m-blaha in https://github.com/rpm-software-management/dnf5/pull/1670 * dnfdaemon: Correct D-Bus signal argument type by @mcrha in https://github.com/rpm-software-management/dnf5/pull/1679 * Release 5.2.6.0 by @github-actions in https://github.com/rpm-software-management/dnf5/pull/1686 * @dschwoerer made their first contribution in https://github.com/rpm-software-management/dnf5/pull/1562 * @dm0- made their first contribution in https://github.com/rpm-software-management/dnf5/pull/1509 * @lleyton made their first contribution in https://github.com/rpm-software-management/dnf5/pull/1590 **Full Changelog**: https://github.com/rpm-software-management/dnf5/compare/5.2.5.0...5.2.6.0- Fix a crash when sending e-mail notifications by the automatic plugin (bug #2298385)- Support colon in username, use LRO_USERNAME and LRO_PASSWORD by @jrohel in https://github.com/rpm-software-management/dnf5/pull/1560 - Debuginfo-install command by @j-mracek in https://github.com/rpm-software-management/dnf5/pull/1566 - Implement conditional compilation `-DWITH_MODULEMD=OFF` by @kontura in https://github.com/rpm-software-management/dnf5/pull/1521 - Add reports when corresponding debug package is not available by @j-mracek in https://github.com/rpm-software-management/dnf5/pull/1572 - Add history rollback command and transaction merging by @kontura in https://github.com/rpm-software-management/dnf5/pull/1558 - Fix DNF5: Don't trigger filelists download if abs path to local RPM by @jrohel in https://github.com/rpm-software-management/dnf5/pull/1578 - Documentation: ABI: Defining public (exported) symbols by @jrohel in https://github.com/rpm-software-management/dnf5/pull/1576 - dnfdaemon: Support to run transactions offline by @m-blaha in https://github.com/rpm-software-management/dnf5/pull/1543 - TransactionReplay: handle group package types by @kontura in https://github.com/rpm-software-management/dnf5/pull/1569 - Improvements and fixes for storing transactions by @kontura in https://github.com/rpm-software-management/dnf5/pull/1585 - Release 5.2.5.0 by @github-actions in https://github.com/rpm-software-management/dnf5/pull/1591- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild- spec: Fix files and directories ownership by @m-blaha in https://github.com/rpm-software-management/dnf5/pull/1527 - Add --minimal option for check-ugrade command by @j-mracek in https://github.com/rpm-software-management/dnf5/pull/1519 - repolist: Implement JSON output by @jan-kolarik in https://github.com/rpm-software-management/dnf5/pull/1522 - repoinfo: Implement JSON output by @jan-kolarik in https://github.com/rpm-software-management/dnf5/pull/1529 - Move offline from dnf5 to libdnf5 by @m-blaha in https://github.com/rpm-software-management/dnf5/pull/1520 - Add `history undo` command by @kontura in https://github.com/rpm-software-management/dnf5/pull/1452 - Do not export internal symbols in shared object files by @jrohel in https://github.com/rpm-software-management/dnf5/pull/1307 - Build libdnf5 static library, re-enable unit tests that use hidden (private) libdnf5 symbols by @jrohel in https://github.com/rpm-software-management/dnf5/pull/1507 - daemon: Generate transfer_id on server side by @m-blaha in https://github.com/rpm-software-management/dnf5/pull/1517 - Fix: dnf5 builddep plugin: Link with "common" by @jrohel in https://github.com/rpm-software-management/dnf5/pull/1546 - builddep: Add build-dep alias by @jan-kolarik in https://github.com/rpm-software-management/dnf5/pull/1532 - `undo` command man page and translations by @kontura in https://github.com/rpm-software-management/dnf5/pull/1549 - Add JSON output to advisory list by @stewartsmith in https://github.com/rpm-software-management/dnf5/pull/1531 - docs: Update nightly copr repo name by @jan-kolarik in https://github.com/rpm-software-management/dnf5/pull/1551 - [libdnf, actions plugin] Support get/set repositories options, ver 1.1.0 by @jrohel in https://github.com/rpm-software-management/dnf5/pull/1539 - Add `replay` command to replay stored transactions by @kontura in https://github.com/rpm-software-management/dnf5/pull/1536 - Add "Complete!" message after succesfull transaction by @j-mracek in https://github.com/rpm-software-management/dnf5/pull/1553 - Release 5.2.4.0 by @github-actions in https://github.com/rpm-software-management/dnf5/pull/1565- Perl 5.40 rebuild- Rebuilt for Python 3.13- Update translations from weblate - const: Shared constant defining RPM transaction lock file - main: Implement checking of privileges before executing commands - exception: Add new exception for user insufficient privileges - locker: Move to public API - distro-sync: Add downloadonly option - commands: Fix using store option - Enhance warning about RPMs that were not validate by RPM- Vars::substitute: fix use-out-of-scope leaks - docs: correct the default for pluginconfpath - cli: Add skipped packages to the transaction table - i18n: Improve formatting an error message for multiple streams - Add/fix documentation for rpm::PackageQuery methods - i18n: Unwind "No {} to remove for argument: {}" - `history list`: count also groups and envs in total `Altered` - Fix typo in translatable string - [libdnf5] Actions plugin: Add hooks `repos_configured`, `repos_loaded`, `pre/post_add_cmdline_packages` - Option `--providers-of` doesn't require available repos - Improve docs regarding the keepcache option and download command - needs_restarting: Fix invalid reference usage - download: add `--source` alias for `--srpm` - automatic: Fix documentation and ship config file - fix: quote `dnf5-command({})' in command suggestion when plugin not found - i18n: Unwind "Cannot {} package \"{}\"" message - base: Add repository to solver problem messages - conf: New classes for append options - docs: Document changes to repoinfo and repolist - dnf5daemon: The buildtime attribute has been added to the package_attrs option- Update translations from weblate - bindings: Tests for using struct attributes in Python - bindings: Add Python attributes for structs - docs: Fix diff link on the dnf 5.2.0.0 changes page - docs: Add diff with API changes in dnf5-5.2.0.0 - docs: Add a page about public API changes in dnf 5.2.0.0 - system-upgrade: fix missing \n before transaction test - system-upgrade: comment to clarify progress bar logic - system-upgrade: drop [[maybe_unused]] from reboot() arg - system-upgrade: fix progress bars, set transaction description - system-upgrade: adapt to new transaction serialization format - system-upgrade: clean up releasever logic - system-upgrade: fix poweroff_after - copr: the dnf5 copr enable sets CoprRepoPart.enabled = true - Add file search result for repoquery --whatprovides - doc: Add enviroment variables and clarify options for loading the plugins - dnfdaemon: Fix Rpm interface introspection file- Update translations from weblate - [DNF5] `--enable-plugin` and `--disable-pluin`: no match found message - [DNF5] API: Move Context::libdnf5_plugins_enablement to p_impl - spec: Add conflict with the former provider of plugin man pages - spec: Add conflict with the old provider of dnf.conf - [DNF5] Fix: Remove transaction_store_path from public, add getter/setter - [libdnf5 API] Base::get_plugins_info - [libdnf5 plugins] include iplugin.hpp in plugins instead of base.hpp - repo_sack: Treat all repos with solv_repo created as loaded (RhBug:2275530) - [DNF5] API: No inline methods in shared_options.hpp - [DNF5] API: offline::OfflineTransactionState: no inline methods, move cpp - [DNF5] API: Remove unused and buggy RpmTransactionItem class - [DNF5] Command: no inline methods - [DNF5] API: Context: add p_impl, move public vars to p_impl, getters - API: cli::session: no inline methods and public vars in opts classes - API: cli::session::Command: no inline methods - API: add p_impl to cli::session::Session - API: rpm::TransactionCallbacks: no inline methods - API: repo::RepoCallbacks: no inline methods - Prepare for switch of dnf5 in Rawhide - base: Make get_transaction_history unstable - Set `group` reason for packages removed by a group removal - [DNF5] Implement `--enable-plugin` and `--disable-pluin` - [libdnf5 API] Base::enable_disable_plugins - spec: Simplify man page files - Loggers: Fix: Add missing "null_loger.cpp" file - Loggers API: unify, explicit ctors, non-inline methods, use p_impl - doc: Review of DNF4 vs DNF5 CLI and configuration changes - Re-enable clang builds after API changes - Add `--store` option for storing arbitrary transaction - libdnf5::Goal: when adding serialized transaction accept local items - Goal: change `add_serialized_transaction()` to accept path to trans - Add group/env paths for transaction parsing/serializing - base::Transaction: during serialization allow specifying paths - base::Transaction: add `store_comps(...)` method - repo_sack: add stored_transaction repo and its private API - repo: add private API `add_xml_comps(path)` - Generalize logging of `read_group_solvable_from_xml(..)` - Add `environment_no_groups` to `GoalJobSettings` - libdnf5 IPlugin: Pass IPluginData instead of Base to constructor - libdnf5 IPlugin: Use pImpl - libdnf5 IPlugin: Do not use inline methods - dnf5 IPlugin: Do not use inline methods on API - libdnf5 IPlugin: Add argumets description - libdnf5 plugins: New hooks `pre/post_add_cmdline_packages` - libdnf5 plugins: New hook `repos_loaded` - libdnf5 plugins: New hook `repos_configured` - Base: notify_repos_configured and are_repos_configured methods - Fix: implicit conversion changes signedness, unused value - Disable unit tests for Copr dnf5 plugin - dnfdaemon: Document Polit CheckAuthorization call - dnfdaemon: Catch timeout during CheckAuthorization - Not handle compatibility.conf as configuration file - config: add search (se) and info (if) aliases - Improve documentation of repo config directories - Cross reference documentation - Document Repos and Vars Dirs - doc: Unify style and move "Files" section - Document repos configuration overrides - doc: Remove ":" in titles - Bump libdnf5/libdnf5-cli so version - Mark multiple strings for translation - Set locale for dnf5 run - spec: Add missing dnf-config-manager.8.gz file - Generate documentation for ConfigRepo Class - [Doc] Describe denerating repo cache path - dnf5daemon: Make availability case insensitive - dnf5: Drop unneeded severities capitalization - dnf5: Document --available as default for advisory cmd - dnf5daemon-client: Drop unneeded severities capitalization - advisory: filter_severity and filter_type case insensitive - dnfdaemon: Fix and enhance Advisory interface doc - Enable import data from DNF4 for systems without state dir - libdnf5 options: Unify constructors - pass args for storing by value - dnfdaemon: Missing signal registration - doc: config manager plugin: wrap too long lines - doc: document config-manager plugin - Packit: get version from specfile for copr_builds againts main - Update tests to use new `load_repos()` API - Use new load_repos instead of deprecated update_and_load_enabled_repos - Make `libdnf5::repo::Repo::load()` private - Deprecate: `update_and_load_enabled_repos` - RepoSack: add new `load_repos` method - Move update_and_load_repos and fix_group_missing_xml to Impl - Prevent loading plugins for unittests - Respect plugins configuration option for loading plugins - Add pImpl to `libdnf5::LogRouter` - Add pImpl to `libdnf5::MemoryBufferLogger` - Add pImpl to `libdnf5::OptionBinds` - Add pImpl to `libdnf5::OptionBinds::Item` - Add pImpl to `libdnf5::Config` - Add pImpl to `libdnf5::OptionStringList` - OptionStringList: remove assignment operators and move constructor - Add pImpl to `libdnf5::OptionBool` - OptionBool: remove assignment operators and move constructor - Add pImpl to `libdnf5::OptionNumber` - Add pImpl to `libdnf5::OptionPath` - Add pImpl to `libdnf5::OptionString` - libdnf5::OptionEnum: remove template, add pImpl - Add pImpl to `libdnf5::Option` - modules: Report problems with switching module streams - modules: Report switched module streams - modules: Add switching module streams as a possible transaction action - modules: Add replaces and replaced_by to TransactionModule - Add missing info updates alias, to match list command - Update `package_info_sections` not to use `scols_table_print_range` - libdnf-cli: Extract package info printing - ArgumentParser: use p_impl, no inline methods - ArgumentParser:PositionalArg: Unit tests: Support repeating of pos arg - ArgumentParser:PositionalArg: Support repeating of positional argument - Hide/Remove deprecated `libdnf5::repo::Repo` API - Remove deprecated members from `/include/libdnf5/logger/factory.hpp` - Remove deprecated unused function `create_forcearch_option()` - builddep: Don't escape globs, use expand_globs = false - builddep: Don't try to expand globs in pkg specs - libdnf5-cli::output: Use ifaces instead templates. Move code to .cpp files - Interfaces and adapters - module::ModuleStatus: Move to separate header file - comps::PackageType: Move to separate header file - cmp_naevr: Fix: pass by reference - modules: Report module solver problems - Accept SolverProblems for transacion resolve log - modules: Return problems from the module solver - modules: Add a method to process module solver problems - modules: Add a separate set of problem rules for modules - modules: Store the original module context also in the libsolv solvable - modules: Internalize modular repositories - Add pImpl to `libdnf5::repo::RepoCache` and `RepoCacheRemoveStatistics` - Add pImpl to `libdnf5::repo::RepoQuery` - Hide deprecated `libdnf5::base::with_config_file_path` into Impl - Remove deprecated `libdnf5::Base::load_config_from_file` - Move all `libdnf5::Base` members to pImpl - Add pImpl to `libdnf5::rpm::Reldep` - Add pImpl to `libdnf5::rpm::Changelog` - Add pImpl to `libdnf5::rpm::Nevra` - Add pImpl to `libdnf5::rpm::Checksum` - Add pImpl to `libdnf5::rpm::Package` - Adjust code to new rpm::PackageQuery::filter_* methods after the rebase - Add a method accepting std::string for filter_repo_id() - Add a method accepting std::string for filter_location() - Add a method accepting std::string for filter_file() - Add a method accepting std::string for filter_supplements() - Add a method accepting std::string for filter_enhances() - Add a method accepting std::string for filter_suggests() - Add a method accepting std::string for filter_recommends() - Add a method accepting std::string for filter_obsoletes() - Add a method accepting std::string for filter_conflicts() - Add a method accepting std::string for filter_requires() - Add a method accepting std::string for filter_description() - Add a method accepting std::string for filter_summary() - Add a method accepting std::string for filter_url() - Add a method accepting std::string for filter_sourcerpm() - Add a method accepting std::string for filter_nevra() - Add a method accepting std::string for filter_evr() - Add a method accepting std::string for filter_arch() - Add a method accepting std::string for filter_release() - Add a method accepting std::string for filter_version() - Add a method accepting std::string and int for filter_epoch() - Add a method accepting std::string for filter_name() - Add a method accepting std::string for filter_provides() - Extend version to four numbers (5.x.y.z) - Unify smallest version number name - cmake: rename PROJECT_VERSION_* to just VERSION_* - dnf5daemon: Document before_begin / after_complete signals - dnf5daemon: Signals to wrap rpm transaction execution - rpm: New callback to wrap whole rpm transaction - Add pImpl to `libdnf5::module::ModuleProfile` - Add pImpl to `libdnf5::module::ModuleDependency` - Add pImpl to `libdnf5::module::Nsvcap` - Add pImpl to `libdnf5::module::ModuleQuery` - Add pImpl to `libdnf5::comps::EnvironmentQuery` - Add pImpl to `libdnf5::comps::GroupQuery` - Add pImpl to `libdnf5::comps::Environment` - Add pImpl to `libdnf5::comps::Package` - Add pImpl to `libdnf5::comps::Group` - Remove unused `libdnf5::comps::GroupSack` - Remove unused `libdnf5::comps::EnvironmentSack` - Remove unused `libdnf5::comps::Comps` - Add pImpl to `libdnf5::advisory::Advisory` - Add pImpl to `libdnf5::advisory::AdvisoryReference` - Add pImpl to `libdnf5::advisory::AdvisoryCollection` - Add pImpl to `libdnf5::advisory::AdvisoryQuery` - Add pImpl to `libdnf5::rpm::RpmSignature` - Add pImpl to `libdnf5::transaction::Transaction` - Add pImpl to `libdnf5::rpm::KeyInfo` - Add pImpl to `libdnf5::repo::RepoSack` - Add pImpl to `libdnf5::base::SolverProblems` - Add pImpl to `libdnf5::base::LogEvent` - Add pImpl to `libdnf5::ConfigParser` - Add pImpl to `libdnf5::Vars` - Add pImpl to `libdnf5::transaction::TransactionHistory` - Add pImpl to `libdnf5::transaction::Package` - Add pImpl to `libdnf5::transaction::CompsGroup` - Add pImpl to `libdnf5::transaction::CompsEnvironment` - Add pImpl to `libdnf5::transaction::TransactionItem` - Remove several not needed imports - repo: add p_Impl and several needed utility methods - Repo: remove unused `fresh()` and `timestamp` attribute - Add pImpl to `ModuleItem` and remove definitions from header - Add pImpl to `libdnf5::base::transaction_*` classes - Add p_impl to libdnf5::GoalJobSettings and add getters and setters - Add p_impl to libdnf5::ResolveSpecSettings and add getters and setters - dnf5: bash completion: Prefer using "_comp_initialize" with fallback - dnf5: Bash completion: Switch to `_init_completion` - Fix `DISTRO_SYNC_ALL` (distro-sync without arguments, system upgrade) - Support RPMTRANS_FLAG_DEPLOOPS - Give inline methods hidden visibility by default - dnfdaemon: Make only internally used funcs static - dnfdaemon: Enhance Rpm.list() / Rpm.list_fd() documentation - doc: Add example of Rpm.list_fd usage in Python - dnf5daemon-client: Repoquery uses new Rpm:list_fd() API - dnfdaemon: New method list_fd() on Rpm interface - dnfdaemon: Serialize package object to JSON string - dnf5daemon: Handler that return data using UNIX_FD - dnf5daemon: Auxiliary method to write string to fd - dnf5daemon: Move utils functions into dnfdaemon namespace - dnf5daemon: get_session() method for D-Bus services - dnf5daemon-server: Ignore SIGPIPE - Vars: Add unit tests for API methods - Vars::unset: API method for removing variable - dnf5daemon-server/dbus: Install config files into /usr - Fix: libdnf5-cli::output::action_color: Move implementation to .cpp file - Fix: Do not use Variable-length arrays (VLAs) in C++ code - Add a hint to call base.setup() prior loading repositories - dnf5daemon-client: New switches for group list - doc: Include comps.Group interface to D-Bus API documentatin - dnfdaemon: Enhance comps.Group.list() method - dnf5daemon-client: Fix group.get_installed() - man: Link dnf5 pages to dnf- Update translations from weblate - dnf5daemon: Remove reposdir from allowed config overrides- Update translations from weblate - Document system-upgrade aliases - Improved Bash Completion - Print command line hints after resolve failure - Docuent Advisory.list() API usage - Add NEVRA field to advisory packages in dnf5daemon - Review and fix missing commands - Document dnf5daemon advisory - Document system-upgrade - system-upgrade: offline status subcommand - Add aliases `offline-distrosync`, `offline-upgrade` - Add `system-upgrade --offline` option - Add `offline`, `system-upgrade` commands- Do not obsolete dnf-4 in ELN 11- Update translations from weblate - Automatically set `upgrade --downloadonly` when `--destdir` is used - Write warnings to stderr too in config-manager plugin - Add repoid to generated repository name in config-manager plugin - Bump sdbus-cpp requirement to 0.9.0 - Document and implement dnf5daemon Rpm interface - Document and implement dnf5daemon Goal interface - Document and implement dnf5daemon Repo interface - Document and implement dnf5daemon Base interface - Document and implement dnf5daemon Advisory interface - Document and implement dnf5daemon SessionManager interface - Add `dnf5daemon repo --enable/--disable` commands - automatic: Skip network availability check without remote repo - dnf5daemon: Rpm.list() works with commandline pkgs- Update translations from weblate - Make the error to resolve module metadata more descriptive - Switch off deltarpm support - Limit number of dnf5daemon simultaneously active sessions - Make info and list commands case insesitive - Allow dnf5daemon configuration overrides for root - Add repoquery.hpp for swig-4.2.1 support- Release 5.1.13 - build: Adapt to changes in Fedora packaging of bash-completion - Change location of automatic.conf - Limit message log to one on dnf5 start - Implement waiting for network for dnf5 automatic - Write dnf5 commandline to the log - Implement dnf5-automatic: Tool for managing automatic upgrades - Parametrize output stream in transaction table - Add `download --srpm` option - Add missing dbus signal registations - Add new versionlock bindings - Implement `dnf5 versionlock` command- Release 5.1.12 - Update translations from weblate - Drop dnf obsoletion temporarily - Use regex for tmt plan names - Add tmt tests identifiers - PackageQuery: Add `filter_{latest,earliest}_evr_ignore_arch` - Suggest to use dnf5 command to install dnf5 plugins - Added arch option to the download command - CI: Upgrade action/checkout to a version with Node.js 20 - Document explicit nevra remove commands and aliases dropped - build: Include for isatty() - Change user info display on history command to include display name and username - Revert "Use focusbest: prefer latest deps versions over smaller transactions" - Fix a warning when building docs. - modules: Add a test for enabling default modules - modules: Add a new module stream to test data - modules: Respect defaults when enabling multiple streams of a module - modules: Fix TransactionItemType for not found modules - Build: Require GCC 10.1 for std::in_range<>() - Add --urlprotocol option to download command - dnfdaemon: Explicitly specify allowed config overrides - Disable dnf and dnf5daemon tests - needs-restarting: get systemd boot time from UnitsLoadStartTimestamp - doc: Add --destdir option to upgrade command manual - Move number placeholder to postposition in copr_repo.cpp - Added url option - Load protected packages from installroot - Make protected_packages an append options - doc: Create a man page for Aliases - I18N: Annotate literals in advisory command - Extend filter_release and filter_version tests - package_query: Fix filter_version with non EQ comparator - Fix clang format - Fix code for string deduplication - Use placeholders to deduplicate strings - Add __hash__(), __str__(), and __repr__() for Package - Add __hash__() for Reldep Python binding - Add __repr__() to python bindings of Reldep - Define tp_str slot for Reldep Class - group: Fix using allowerasing option - Fix misspellings - I18N: Remove duplicate empty message IDs from catalogs - I18N: Do not mark empty strings for a translation- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild- Release 5.1.11 - Update translations from weblate - Fix `--skip-unavailable` documentation - Make `cachedir`, `system_cachedir` relative to `installroot` - Workaround for swig-4.2.0 missing fragment dependency - Add `repoquery --recursive` option - Add `repoquery --providers-of=PACKAGE_ATTRIBUTE` option - Update documentation of repoquery - Update documentation for remove command behavior - Limit search pattern for remove command to NEVRAs and files - Packaging: Require an exact release of libdnf5-cli by dnf5-plugins - Disable zchunk on RHEL - Add dnf5.conf man page - Add RPM package Group attribute to dnf5daemon-server - Document changes related to caching - Document caching man page - Document Global Option `--help-cmd` dropped - log_event: Correct message for HINT_ICASE- Disable zchunk on RHEL- Rebuild for https://fedoraproject.org/wiki/Changes/Ruby_3.3- Release 5.1.10 - Document dnf5 plugins - Document How-to write libdnf5 plugin tutorial - Document How-to write dnf5 plugin tutorial - Document Templates for libdnf5 plugin - Document Templates for dnf5 plugin - Sort the module info table - `module info` print hint for active modules - `module info` print "[a]" for active modules - Ensure write permission before importing packages - Change module dependency string to be the same as in dnf4 - `module info`: improve summary and description - Escape glob characters in pkg specs for `builddep` - Add `mc` alias for `makecache` - Implement `logdir`, `log_size` and `log_rotate` config options - remove redundant "all" in command `check` - Improve bash completion - Fix progress bars miss newlines on non-interactive output- Release 5.1.9 - Update translations from weblate - Fix builds for RISC-V arch - Fix architecture autodetection - Move `am_i_root` function to common library - Implement `module info` command - Add user confirmation request if `history store` overwrites a file - Add `history store` command - Add API to serialize base::transaction in JSON - Add API to serialize transaction::transaction in JSON - Add docs for `provides` - Implement command `provides` - Read `copr.vendor.conf` in `/usr/share` first - Add docs for `check` command - Implement `check` command - Expose `utis/fs/file.hpp` and `temp.hpp` on API - Document dropping of the `skip-broken` for `upgrade` - Update man pages with missing dependency resolving-related options - Document `skip-broken` option only for related commands - Test for adding an empty list to memory file - Check serialized temporary files memory is non-empty - Add `microcode_ctl` to needs-restarting's reboot list - Fix reporting spec matches only source- Release 5.1.8 - Update translations from weblate - Don't run infinitely when enabling dependent modules and module is not found - Always print "[d]" in module list for default streams - Fix transaction table headers for module operations - Implement `config-manager addrepo --add-or-replace` - Implement plugin `config-manager` - Allow globs in module_spec arguments - Document needs-restarting plugin - Add no-op `needs-restarting -r` for DNF 4 compat - Implement `needs-restarting --services` - Initial implementation of needs-restarting- Release 5.1.7 - Actions plugin's actions.conf can set "Enabled" for each action separately - Actions plugin now supports action options - Implement `get_reason()` for groups and environments - Disable the RHSM plugin by default and enable it in the RPM spec - Add missing docs for `get_advisory_packages_sorted_by_name_arch_evr(bool)` - Update documentation about maintained coprs - modules: Test `ModuleProfile::is_default()` method - modules: Simplify finding whether profile is default in module list - modules: Fix `ModuleProfile::is_default` method - modules: Store if profile is default in ModuleProfile object - Generate docs for undocummented functions so they at least show up - Add python advisory docs - Add advisory python API tests - Enable AdvisoryModule bindings- Release 5.1.6 - Document aliases for command line arguments - Don't print missing positional argument error with `--help` - Improve error handling for missing arguments - Document `--forcearch` as a global argument - Make `--forcearch` a global argument - Avoid reinstalling installonly packages marked for ERASE - Add `filter_installonly` to PackageQuery - Implement new argument `--show-new-leaves` - advisory: document advisory command changes and few clean ups - Document `--dump-main-config` and `--dump-repo-config` - Implement new argument `--dump-repo-config` - Implement new argument `--dump-main-config` - Show default profiles in `module list` - Print hint for the `module list` table - Show information about default streams in `module list` - Document `module list` options - Add `enabled` and `disabled` arguments to `module list` - Add module spec filtering to `module list` - Add `module list` command - Document `group upgrade`- Improved ConfigParser - Improved docs for `group install` and `group remove` - Fix man pages deployment - Update API doc related to keepcache - Implement `rhsm` (Red Hat Subscription Manager) plugin - Document `--dump-variables` - Implement `dnf5 --dump-variables` - Improve contributing guidelines: don't mention "ready-for-review" - Allow specifying upper-case tags in `repoquery --queryformat` - api: Make get_base_arch() public - Improve input for large epochs that don't fit into `time_t`- Fix Builds on i386 - Print error if unsupported architecture used - argument_parser: New error class for invalid value - Allow obsoletion of protected packages - Add support for repository configuration in /usr- Release 5.1.2 - Print error messages in nested errors - Implement `dnf5daemon-server` introspection xml for Advisory interface - Implement `dnf5daemon-client advisory info` command - Implement `dnf5daemon-client advisory list` command - Implement `dnf5daemon-server` advisory service - Improve `dnf5daemon-client --help` - Enable `--repofrompath` repos by default - Fix error on creating repo with duplicate id- Postpone replace of DNF to Fedora 41 - Add a description of `with_binaries` option for dnf5daemon - Include RPM logs in KeyImportError - Abort PGP checking immediately if any checks fail - Display warning message when any PGP checks skipped - Don't allow main gpgcheck=0 to override repo config - gups and environments to `history info` ouput - Store missing id and repoid in db for groups/environments - Fix out-of-bounds access in Goal::Impl::add_install_to_goal - Fix repoquery `--list` - `allow_vendor_change` was reverted back to true - Doc update to allow `logdir` outside the installroot - Remove `grouplist` and `groupinfo` aliases - Add `grp` alias for group command - `repoquery --exactdeps` needs `--whatdepends` or `--whatrequires` - Update and unify repoquery manpage - Document replace of `-v` option by `repoinfo` command - Add `remove --no-autoremove` option - Document dropped `if` alias of `info` command - document `actions` plugin - Fix printing advisories for the running kernel - Revert "advisory: add running kernel before pkg_specs filtering"- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild- Minor version update. API is considered stable - Remove unneeded unused configuration priority - Don't show dnf5-command hint for unknown options, only commands - Add hint to install missing command with dnf5-command() - Add dnf5-command() provides to dnf5 - Add dnf5-command() provides to dnf5-plugins - Document several methods as deprecated - Fix core dump on `--refresh` switch usage - Add `repoquery -l`/`--list` aliases for `--files` for rpm compat - Add `vendor` attr to package in `dnfdaemon-server` - Document `dnf5-plugins` package in man pages- Perl 5.38 rebuild- Rebuilt for Python 3.12- Rebuild for fmt 10 again- Add `module enable` subcommand - Add `--repofrompath` option - Add `--forcearch` option to multiple commands - Add `reinstall --allowerasing` option - Add `repoquery --sourcerpm` option - Add `repoquery --srpm` option - Add `chacheonly` configuration option - Add `--cacheonly` option - Add `--refresh` option - Change default value for `best` configuration to true - Change default value for `allow_vendor_change` configuration to false - changelog: Fix behavior of `--since` option - builddep: Fix handling BuildRequires in spec files - swig: Return None for unset options in Python - Verify transaction PGP signatures automatically - Fix checking whether updateinfo metadata are required - Fix handling empty epoch when comparing nevra - Fix building with upcoming fmt-10 library - Rename namespace, includes and directories from libdnf to libdnf5 - Provide /var/cache/libdnf5 instead of /var/cache/libdnf (RhBug:2216849)- Rebuilt due to fmt 10 update. - Added upstream patches with fmt 10 build fixes.- Modify libdnf5-devel to generate pkgconf(libdnf5) - Handle unnamed environments in transaction table - Return error exit code on RPM transaction failure - Add `repoquery --file` option - Add `repoquery --arch` option - Add `repoquery --installonly` option - Add `repoquery --extras`, `--upgrades` and `--recent` options - Add `repoquery --changelogs` formatting option - Don't complete ls alias - Add rq command alias for `repoquery` - Exclude dnf.conf when not installed - Improve the download methods API - Switch to parameterless download methods and introduce setters for fail_fast and resume - Affected classes: libdnf::repo::FileDownloader, libdnf::repo::PackageDownloader- Update specfile to exclude dnf.conf for fedora < 39- Release 5.0.13 - Fix resolve behavior for `download` - Add a message when `--downloadonly` is used - Add `--downloadonly` option to multiple commands- Release 5.0.12 - Have DNF update to DNF5 - Add dnf, yum obsoletes and provides - Symlinks for `dnf` and `yum` binaries - Move ownership of /etc/dnf/dnf.conf, /etc/dnf/vars, and /etc/dnf/protected.d from dnf-data to libdnf5 - Conflict with older versions of dnf-data that own these files/directories - Print environments in the transaction table - Add support for environmantal groups in dnf5daemon - Handle unnamed groups in transaction table - Update documentation for `distro-sync --skip-unavailable` - Update documentation for `downgrade --skip-unavailable` - Update documentation for `upgrade --skip-unavailable` - Add repoquery `--files` and `files` querytag instead of `--list` - Add getters to package for: debug, source, repo-name - Add `repoquery --querytags` option - Document `repoquery --queryformat` - Add `repoquery --qf` alias to `repoquery --queryformat` - Add get_depends() to package and --depends to repoquery - Implement keepcache functionality (RhBug:2176384) - API changes: - libdnf::repo::PackageDownloader default ctor dropped (now accepting the Base object) - libdnf::base::Transaction not accepting dest_dir anymore (implicitly taken from configuration) - A note for existing users: - Regardless of the keepcache option, all downloaded packages have been cached up until now. - Starting from now, downloaded packages will be kept only until the next successful transaction (keepcache=False by default). - To remove all existing packages from the cache, use the `dnf5 clean packages` command. - goal: Split group specs resolution to separate method - comps: Possibility to create an empty EnvironmentQuery - `remove` command accepts `remove spec` - Refactor remove positional arguments - Remove duplicates from `group list` output - Document `copr` plugin command - Document `builddep` plugin command- Rebuild against rpm-4.19 (https://fedoraproject.org/wiki/Changes/RPM-4.19)- Fix builds for arch non x86_64- Release 5.0.11 - Add --contains-pkgs option to group info - Add filter for containing package names - Fix parameter names in documentation - Document create parameter of RelDep::get_id method - Document RepoQuery::filter_local - Document repoclosure in man pages - Document repoclosure command - Implement repoclosure plugin - package_query: filter_provides accepts also Reldep - Fix download callbacks and many segfaults in dnf5daemon - Add allow-downgrade configuration option - Release 5.0.10 - dnf5-plugins: implement 'dnf5 copr' - Add new configuration option exclude_from_weak_autodetect - Add new config option exclude_from_weak - Add repoquery --unneeded - Fix handling of incorrect argument (RhBug:2192854) - Add detect_release to public API - Add group --no-packages option - Add group upgrade command - Enable group upgrades in transaction table - Add --destdir option to download command - Filter latest per argument for download command - Add builddep --allowerasing - download command: filter by priority, latest - Remove --unneeded option from remove command - Document autoremove differences from dnf4 - Add autoremove command - state: Add package_types attribute to GroupState - comps: Add conversion of PackageType to string(s) - Add check-update alias for check-upgrade - Add `check-upgrade --changelogs`- Default tests off (temporarily, hopefully) on riscv64 arch.- Release 5.0.9 (Nicola Sella) - Add `--userinstalled` to `repoquery` man page - Implement `repoquery -userinstalled` - Fix: progressbar: Prevent length_error exception (RhBug:2184271) - Add dnf5-plugins directory in documentation - Document `repoquery --leaves` - Implement `repoquery --leaves` - Implement new filters rpm::filter_leaves and rpm::filter_leaves_groups- Update to 5.0.8 - Improve error message in download command - Add repoquery --latest-limit option - Add dg, in, rei, rm aliases - Add "up" and "update" aliases for "upgrade" command - Update documentation with info about package spec expressions (RhBug:2160420) - Add formatting options repoquery --requires, --provides.. - Remove unused repoquery nevra option - Add `--queryformat` option to repoquery - Improved progress bars - Fix logic of installroot with deduplication - Correctly load repos from installroot config file - Improved loading and downloading of key files - Improved modules: Change State to set and get the whole ModuleState - New API method rpm::Package::is_available_locally - Move description of DNF5 changes to doc - Improved dnf5daemon logic and removed unused code - Improved progress bar - Improved handling of obsolete package installation - Remove showdupesfromrepos config option - man: Add info about download command destination - Print resolve logs to stderr - Fix double loading of system repo in dnf5daemon - Set a minimal sqlite version - Change to --use-host-config, warning suggesting --use-host-config - Add capability to find binaries to resolve_spec - Add pre-commit file - Improved by fixing memory leaks - Improved tests by enabling with multithreading - Improve documentation for list command - Add compatibility alias ls->list - Implement info command - Implement list command - Fix --exactdeps argument description- Document set/get vars in python api - Document --strict deprecation - New configuration option "disable_multithreading" - Improved dnf5daemon to handle support groups and modules in return value - Ignore inaccessible config unless path specified as --config=... - Includes reordering and tweaks in advisories - Add support for package changelogs in swig and tests - Add many unit tests for dnf5 and python api - Add new --skip-unavailable command line option - Add search command - Add new error for incorrect API usages - Add a new method whether base was correctly initialized - Improved python exceptions on undefined var - transaction: Change API to run transaction without args - Add explicit package version for libdnf5-cli - Improved performance of packagequery  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~5.2.10.0-2.fc425.2.10.0-2.fc425.2.10.0     libdnf5advisoryadvisory.hppadvisory_collection.hppadvisory_module.hppadvisory_package.hppadvisory_query.hppadvisory_reference.hppadvisory_set.hppadvisory_set_iterator.hppbasebase.hppbase_weak.hppgoal.hppgoal_elements.hpplog_event.hppsolver_problems.hpptransaction.hpptransaction_environment.hpptransaction_group.hpptransaction_module.hpptransaction_package.hppcommonexception.hppimpl_ptr.hppmessage.hpppreserve_order_map.hppproc.hppsackexclude_flags.hppmatch_int64.hppmatch_string.hppquery.hppquery_cmp.hppsack.hppset.hppweak_ptr.hppxdg.hppcompsenvironmentenvironment.hppquery.hppgroupgroup.hpppackage.hpppackage_type.hppquery.hppconfconfig.hppconfig_main.hppconfig_parser.hppconst.hppoption.hppoption_binds.hppoption_bool.hppoption_child.hppoption_enum.hppoption_number.hppoption_path.hppoption_seconds.hppoption_string.hppoption_string_list.hppvars.hppdefs.hloggerfactory.hppglobal_logger.hpplog_router.hpplogger.hppmemory_buffer_logger.hppnull_logger.hpprotating_file_logger.hppstream_logger.hppmodulemodule_dependency.hppmodule_errors.hppmodule_item.hppmodule_profile.hppmodule_query.hppmodule_sack.hppmodule_sack_weak.hppmodule_status.hppnsvcap.hpppluginiplugin.hppplugin_info.hppplugin_version.hpprepoconfig_repo.hppdownload_callbacks.hppfile_downloader.hpppackage_downloader.hpprepo.hpprepo_cache.hpprepo_callbacks.hpprepo_errors.hpprepo_query.hpprepo_sack.hpprepo_weak.hpprpmarch.hppchecksum.hppnevra.hpppackage.hpppackage_query.hpppackage_sack.hpppackage_set.hpppackage_set_iterator.hppreldep.hppreldep_list.hppreldep_list_iterator.hpprpm_signature.hpptransaction_callbacks.hppversionlock_config.hpptransactioncomps_environment.hppcomps_group.hppoffline.hpprpm_package.hpptransaction.hpptransaction_history.hpptransaction_item.hpptransaction_item_action.hpptransaction_item_reason.hpptransaction_item_state.hpptransaction_item_type.hpputilsbgettextbgettext-common.hbgettext-lib.hbgettext-mark-common.hbgettext-mark-domain.hbgettext-mark.hbgettext.hformat.hppformat_locale.hppfsfile.hpptemp.hpplocale.hpplocker.hppos_release.hpppatterns.hppto_underlying.hppversion.hpplibdnf5libdnf5.solibdnf5.pclibdnf5-develCOPYING.mdlgpl-2.1.txt/usr/include//usr/include/libdnf5//usr/include/libdnf5/advisory//usr/include/libdnf5/base//usr/include/libdnf5/common//usr/include/libdnf5/common/sack//usr/include/libdnf5/comps//usr/include/libdnf5/comps/environment//usr/include/libdnf5/comps/group//usr/include/libdnf5/conf//usr/include/libdnf5/logger//usr/include/libdnf5/module//usr/include/libdnf5/plugin//usr/include/libdnf5/repo//usr/include/libdnf5/rpm//usr/include/libdnf5/transaction//usr/include/libdnf5/utils//usr/include/libdnf5/utils/bgettext//usr/include/libdnf5/utils/fs//usr/lib64//usr/lib64/pkgconfig//usr/share/licenses//usr/share/licenses/libdnf5-devel/-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wno-complain-wrong-lang -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointercpiozstd19aarch64-redhat-linux-gnudirectoryC++ source, ASCII textC source, ASCII textpkgconfig fileASCII text RPRRRRR R R RRhttps://bugz.fedoraproject.org/dnf5utf-899d012164b592f593d61617792a15cc7ac40e151257a532004ca4c38d9c8aa1cd25cd306e1d7f0826b326e2be1b80286629a44b827c3d5cb086532edf36bd7d3? (/hc&54h6V22D@^(޽EU|bJu/;;g}?5Nlknް򷭟|I!}|' YfQoT$_tP*&JD4f^0zIC *LV/{,O|$iƘmN IHo`SuCdm|s36D~8zoc |홭=o&`sKj9铛oZ΋ż;%nVi7N+[Otj_ƫJo8hcK\j~_-^w%Iާ |⩠UT{%<2ӆ?glm_Nx<L( ,!g41r2uIJnĄZ ď| 'q![h7Qι%m$iрz7@:ޑѮ94a8`U C2 E5a% x4MvnU^76`ݸYzf=sX#7sD]u5M. & OlU*( VU& bQͥmYoz+JD(eM8ebRqUy!kySsetV 9D3v*co oB {m[ _(Y% nIOio Kn'Rk_\~WH 1wv6?ٽO hDwss^~[oM{itni0<@m v 4{OCrIRe/^mcH@%:sܔH ozVkshа0H\ ;#F]Tφ[d:\@`ysZ eQ C)5)z vlx7s+fZe_[޶x';.JUBXd"U}$M_D!Ă(zkf n 27m Ke;nU|߶T o6=$ "BAJ]lߏudaP͸n1(VAu`1=Lf`O2a6ۑ+/[AM.- gDTS 35mWD}*@~szAzZYb-f- eE\CFRُqӷvQOWhѝ唳cHED`gכAKob6mvZ4O~@n 0ǁ4Tx̥LAaӤ'm|L`@a6,%*K:I(<H*:TLb=Tq{nqCR6!~.kKk9nyo|67Yux|0D.ClǟXg{;]^ڳ#fM;teUbomYCƅJ:HO~wZ8arAtbE&v󋺈!e7oo8aș[Ft7}wJ|g^81\tUBjf=T9̘s@(\h0DTE!HGՄIEc)XEce@ DITTd LVz5"*Č8`h/!D&G OXVQ]K\޾j$PFt`HD%|F2Ex2eA^#8 [dzeO`CM*L0wِzǡ} .ac g=kE|4y!xȨzx{KjKQ4%8jzijS;%z_ql觊$Ӊq x~uߊyHh$Ylr2+JjQ478H:Xl1ř~)یTc\O.bȍq",d|hNNZ})"E҅ w[С 7N5|H?*Ntnj;+Nj*ק怫0'4|, 0Լ64*u.c個271O2o: dcUQeTt褷f% `.zAnz5S}&=u ?q+u[{D@(:KEgkƼ֒7P(E헧Zq/;B?$:)"A9b|}Bz"4=SDze٥A&IMjhE޽ו~fR&~N~;dÐ%Ũ**)wVEt h *b_qO(Bm&*|R$Pbz̧> IRK C$븅~s =`}cLBb%@/+,pMa- PWb4 LF%U#t8jD, kњAO艕Ss>)X(jwIJҵ~Ŝ(NcGh6bDj8Q' auyOʜmKګ\P36_'ǓV,3m_=4Q 1*ဖjnt{fSf8HEhk*?-gIZxAxG }E`LiI):"&>/4Npk_%s-gWD➀MsA_[Ew%Ժl%rQ Ȗ'Vs͊'(.Q(uoH&и bn|_5,R=._ܱҙ'6{YB%񑱽}?|ڠlˀ\1?TŒ.lKM@cܙe?{; S<ԃ(ImsITn Y&6y ٮ}<4ge ?JT2Ʊ/=GE:}TkMl\" Oݾcv(Btl>Z*8rZJc wV>yHBw}BYA~2۵,Z ' Olk(JE9Pw0VJT8@Rd[tPt.Vyw7#,nYcg&٭i0\*GP͞y\tDR<AH/Z?j6hCɑT m^$g`Nzx¶;]+r @;)(Q\[@+%/Dzx301 19JuKuO;ݟy !nPaV 5Bi`F6f\!}oQƏlT^|i~# GGi.S!Պ{/?㐢cpƺl8Rt"eS&Wh?Dܩ401,9dgZ˶egpƄ}uC'߯Őx<񏙅'a@4đeQ-&uU 5JxoD~Q>O|cjs:u oqS/&NS%uV<ҭR?}5^w4Jmq{6yf}짿 -³ O(װ$< ;>{!i|?| { "h^9V}4&Enͨ ;TI<tO"'Q*RrR{zWX[ )K-v q#'+06D =DC3ptُ=]Ex$1Ni,~Qg+ !ണoqOFاE@O,(Y _-M$%3=vi{ >5̀`>xL ʭ-Z7r6_cH 'ue^\u7=MH-C˧Xpj?r{L[Can6Q@Iˏ[#ȲI 脦K7f}E j?Py͊]} {ðS*PLn0X@W ">f\[1ԩQwˠrxxpjL-rWf2͌0.wBh2/!1 c)K;eo]o:$~zD$piXΫ` X~IHչk|ใ9)]1Qg/ *FvI>5|YL#K>ev oKi)ǘAI]?+L T%03 Z!hol̰XAP"+UD K({5:hAQhQɉ{3[-w_ mi$u7_0|`MA4 _R>Pޚсt Ǖ9"WT\ң~FNcA;*X3:dlZLS0vNw xc ¥5 S))gjg q[p˩TH*S{Xxu o۾A<0dwX";X H.X]C0]-az\ @8dLsu~GSD{ѐ"y#1el/)+8|]TgC,4 SИUNR5/aЩgziƅR] WB3ܭ9O~@/) ]ȣ%5>A'puE f Ēcix~O6VeY-=(SPEAMy 3LnsцI#@kK\rMmrn L[>xYq ?Pw(7, - K`b/^j ||PV;{r: /;Ps~Fl&a)蔛4qW?ƺf!醾P Ѩb(k\K1U?`dcFNr9"1TtH,'$wMB oWx%9j-Q kqQ# A~ϙw=;bHetU~K,c ٟzLlGlP艙MW1Oμ*t8} se< /ͪMvca'V*[JX2UAk8I;ɲj;|iQ-zOL܋ )@QFw]miy =*+ Y~lfA7 P9=?N[fXL> s`P#2Q(J1̍ɏ̼ʝ{m0-~nNLA'FPް jNܳ}T_P.$=t {y{A֎u##6qmnpZDrͬY g6:nL7[c5Iyڅ!#+Wo+RpE[ɜԞ-2X3`..]}ff1yC~=3&QfAm2ru0V9{Lj(͘!8ʄK~HPP8H$޹T+UBiM5l k>㪫ٷqczBC;ΞL{o \/:9>ꎗQ-T#8pLlH1g,MғΕdw_zm%Sܲc铹(m;e+24u#Ri!x/CAs'+mqGb7CYhc(xs&|4;} nyTr, j=3O3i\l(!ΟV]Yײw It~|G yd6]jΫ [k$$*MbH,J4}o:|yb@/LK0ٵ`t8Y mm7` v&m.|wh%vf:t^(U,6DM<ݞF}촐K/ԿrGBկ2p+ˣ ^i'Fz>Zn#Q$Lb9 ,;$\4J&'̐JQqZr67RR T*> ,~4F*pi) YI8],!V ZQ4 +@yJl\Y<%8R(QD7EvE$ |cՠPG3'PZn BJltk ;Lӷ"  %놁&2z~?y?.K&`tm_@_TrY(R+M܄["  +G"u*a_,ru)W__K=) #&aRuXT.Ƶ39vZ*`cu8`YUw\J}/಻gˌ I AP4Ss:gO}|eAR ?y)^T"b ևL& rEx x)!Nv$8hec-C$ZoP/an'M#eSnapw7[(L5{,+s痏H͋& |I+TSNJ24wgZnV/\qHNWB$t1"O0įi( hÄͱC``3~]؛ QU00G=q(q+ݺ%̻o8.džDqI$#0;Q^pX)TLbH8Lxcl/H@_"ȍu.+IRGgIQ%Dӟ*lHz HU5!L9Ɣ'~I⶜C,D=oS}RՔ]V:Rfg@èngS:sa! !p"vjoIN ߦ/ׄH >UJ oe~s$:}«o /WӸOዪ"/>!3Y>l߫Pȹ$,M  7G+ ~"ߦ}^U~( ?´MBmmIp Vd I3l{Ġg(6\9敫C,9e<(]H3<+x[H2Je] J؞6 G"6om/#kʁ6S^R܇B>MɥL`+H/Fvg9OaY϶q'9[ ʴnߵ3 aԋ;e68ecf,)4bR4%OH6V$*WRǜ=j?(-(L@ {% Qw)`?m+"nyP )ux*`Izx4hJփo]ӖmW+ zy'ŷ3G#CM$ 8@0j观jأl?:1L }0iol2x] TS6,-\:H BS !z eHS5\vtSNѱٹZ.t [),>Cg@Q^AX]&=¹I6|Ds d"x>-żƪ>4ulGXf`XȯP6{5|e#G ENT5y " 'x;e=3>M?ReAf0C]ߴO4L^Н^SN)k]30WPneIy 8%Ʉ+ʒnmG_Hֿ<$]_JSydBo^&ZriVٱί0,OMbڼtn[*/M5 mv.-ɌMvCV,'Fmn5Ltt B2Wƌ-֓@H1}VEu 7:gr9ԧkAM8@[KpxTŎ ZϘ*7  )(5#u#75L&$erחFz4{Up'C!//$Y;҉Ϊ-? Z&<"p ,=FTvػɠ%bqfcciԡ,iI,BϟoroB$.~Ƶc\ۭ",WH3'A2SVe,KB?W˽|Ռ2y"jN ! e?vƊ^_h“XQd;Q'U_8RUH5s% Vq CљT/E>21@M w_!&c<:Rd۾CIw|8c[Ԍ8NR6R5:̞VW)̒v2%@H [O9Z$T &=Jc>?zI6=#d(i]Q+ ?0T5ƚ?n%5@bAѥlH3b> SQ~,lVidv9˶c74#P kߚ nEB˫ybUFðjbB25ʀbvB̺e?f)H?"*G6Qf:I"c8bF[>Kb C8G~K(g e yԡ>!DQd"M@CȖZ<M@Q8trJ1a1l\W3#A~,`z$! ' ӪS#}}хW/yXObEU!HQa$/%o:!X,.Gx38ȇx~! QE$Ijv) QiF: +& M mICIS|ϝ3˹ȋ= n׼C+&Pxd !ɂl=\o=h& wȪBKybkq[ŢAІXRi'`X$DMaW WV~`A!3*+p `Cr p9c 48:THJs4Aɑ :|uԝXv¶YA[ٺ,>~%i5 VCK 1g˖+B4+i CVc{M[Tp2-r+?鼨W i{ɭ5#ɘ>3 g,'+~"CX"!%zf6Ƣ) r`dM(eS'&lnc֨s/|#;K; =/uɑMAD4,+wMjv`Z9 nJs進IwCNZ􂗮'صX%8g~|M!qڲ6JLBqȕO A,eGTZfj|`}R>O7Ԧ6Mkoœ;飰% K89/{K'}E%ȿ dOYXʍ=sHWS";{ؾZ ء[qn $Z+(4t{iu3?7;7+ΪFsͺG(U1TW_/p$|+44JWAG3q[D9gvy!2C} ;7aN)(yR+0SuYA52""w#2U ٍ\j|76Hd.S;(VqBP;)HSX/bw>L C"|qI0pÈ+İiL '0cl5q6za}/63Gw9I ~4Pō{\U' ֒C!vd^0uS#erS({}eMuDrnuȴS9b*(/-FLmvnKx7XTiœ1ji󙋻5wC=`3.@[Fm5*Omhleh EUS> PU8[Z/!SY-& W$ @:PX#/ B>m2n x[R=f:7 q6I\72Era օR>Z)=DP0miHb\z/2`.Ntt]s6KVL6olhN,g|JCVT=(pcPrwpa!0-bۡ+h.ay[U#פx$Fb)h%G  Lf绞G-E$D&@5u<ϬD#j#H2'&3yפIejVBS|⣤&ô0KP=0Y:BH}~ e?lHT4!{#crVz֐:p?RIbaʤ/1U 7zSvktWC­Ԑ҉^pp$ե7Yc,xZB kE9wxb2 qjgS7) Vkvl2Ҍg%0e\ bEKEekoKpCq -:,!bOy3; ))Fdhhߍ|ٻ!~vc͍"duՒ8@]pt|40#AEw3PZ ',#xtևYn/`<4a֘z/.~ Z>!]?6eqVT/Gs[ِ"pI%? VJ·#XW5O؜%6ph>u"c n =9ǧo훟9o(2C$!=ZP9~@BtT [X xmZ=ʃicv2d r#Lfϖ /ڡkJQYSoV:=1 DIk!/VeUX@+VЫ'Iϗ fy77Z_& s|rD|ې_ڭs|=vT7@7TخcbfNSL~(b۪(n6JU0G"AƠG.k_R{nmlйq^CA"(##.zIOCQ`Dfީ :i T+>/?H)ߊikZ~&uցzٱ=D3XrdXr3g  $aCl^Cc,Jj>Ӻ~UUaxgxCE$sI,N#HeڈjmX6A{7)x9;Mq"r<пk1%Snt2xpj&?e&Y+HFQpNh>VnbfH[zc[/]t JxD`9 g^VpH~=9\#o!¼2ڣO=|V ÒNgR|"7.R6׳u(4| _z^хf{8&Ԥv)sP 8*F.5q5ƺNjH]Q[,]*x(4~Gޫ#2:x;$4"ƵsK9hy {*Z1YgbW#JRo Ƣۣ{-@MR l?PF2znAi8ЧZ_+$" E'V\1 ,u$[F W@̴R|T_r&, T?+u3r1nu*BƩFv`GW4 -DvᤘcU?M/>@t{.{o2Sq: CC;oǰ"4؏9K= mVp#[fG N>rm@&7m%#VEKwubWw_dBNSȉ_Bʄ7zvD(x_qCaA:o_ʀ7PVTOi/OP銫 ;|n`ZNϵP!l](Rö 9 'G`Fj#Fn#Јޱ(D=%?+#]5'bZ\pGgPMx*\5Ki^fLzA|s9Z6t映~ ZTkJNW7ip:8y~IN8sB4{vѐD-YpDܫ>Ω+ӑ8~xX<ϚE&-4R `j,h7$QZYMR> LG8-v`TBm:(eRDv)_t\??^58R3TJ}B,z)C;b8c6 &ӟ̬BB0MLHnS0q{P}+cf Y 00amt1n*K*Þ>Lji3~݋X PЎQ: R8|\<#uMƼ>] Kk}|S ]b+jr )FC^~iǹhVߔ?u=GI, DGvTS< yқ`KCE꩘tl =~q|~*@ Ӵq#Cv+Յw'sf1MhЪϢT=(9tR*'g3S_ ;u? %lCE}7O<ޙa+Gu (0AƮW*@4nv,Bu N~$ rqzj[kp;Q#g`~hBNŽYχV/~,v+&6pCBCF; VHa{npGZ bաSb[ 8SULQU*vbcAFT5=%Gμ|ϔO&ыLFP2^W"(d2N[JYJib:C?5G‘}U> ?F98 Z-Y{ <0Zv.̬߲7"e8䔡dF 9 u'Sd]V{8j g#Kd\|2XHGd(GVw *$EeY&9KCY,..ζwfrĸ;s4ăP4 W*iI=Dtnb` !"[^-1p t4\(db єVT>hE +T2\p'>JFP"& )1Ú E,( '-.50<͛uLzjr[XpϽ.^4Uܲ(2qd垜"Eث[pJW[h7϶@,iaZ񣅤׋\8e@m.#.j}e/IA0MhBܣ~eIZ| z@ eQ쭗\IÍ! ɘdҮ .3?RrԽ( Y)z}sh kdQ-ˎ!s?ŞYD9do/R`zsa鯩5uT4UBu6͇ˬÞ~^/\u]Wٻ;iCwbc % bvظIJ˖јXWY0$O[?Y9nlp222\&56fly)"`Qz&0+Ͻ֕2(L6 e_ Fğ.F|s~O\]t</oNCO Dĩ-P싱7[x3~D8+rEMXf har ˑ-EDcE[:.%1%uE sK4L`og6Yb4ݖ. @#Oy[|F l^jeu >xꀡ6Vldk%]i@yjf$9IkXc[!/_मk&ƂwpSVܺ6iokr۠, , uhƥ/~2&rarM{٨r^ jԱ*H٘8ĥn1xE6NX{j5d:_@[<Ø(kXyR$)QC-~i 1M=t_#j{k$O_S@$Q("2,"_ @S_ʏi&3\ T\CƠ:G-%.?T:PZ({qۙ? QMtvĞ)+'N`Ve$ƋC+AJxVd $pvUX(x*Jq[Y>BBщgf\'{Z 0}*呮.);DTcV]̞8"BQ0({>ϸ>+!2wء 2iC#ʒ'G@*fȯo@Z<)#_#I퓪TQe{bI"<6eq[t~McoZ96N^(9Th A7^+$Iቓ S5Li Ү=s&<ʄ] X7sbeFa>tClW;ǃ(A`2hW뉓UgW &9Oum*JN9hx@ \kDO&5i=շ{')znskbPC$ܐt'T'')4^XXO-qKlu"Ȝv*[ y/L^Cz*;ɇiPl 7N?صQǟwzՎO,ɿVv(ʹzjB L,E,h;5UؗCVFjP X,aB=9 {L,]\l!/I{LC%[A*hD>?;=xcCmڊI90~=Pct#ƕJ룢$GX5ru3ii`oS*<ʽ/+~Pk\&di>7ٯ8|,7MGk8Ѯ?NGV6XWƩS0H!l)Gt+4F5@ ]8*5QxQgW-qtI,'|0HrW>awf瑬=܁f8zNz ,2 `}<}e6nCo<m.8,޾O؁V^%Q=dC[V3eA*8rLm.Q_ 7#Xy8a9+V,NsW:vd .3ҵ2{_R3cĘq^-d~pfYG7[PB'H4𔲺YhО F`?!*ܲz1_z {COwZ;nՆG&?ux(ǹy7Zҁe~ٴId%yw/sbbE_^[[m$h֧т$!t}J.s+N$f2LR;kBiD # jtp*ϟWGbj-ZWܼ /x׼f8;<Db^Qlxނ47F*)BA{݈ FAbz: {&m%h + 侜 13w7Grw-v>b0,~@J>[xs/.WW^'LlDf.894N9Qx"AsJ6~[M;#Z} 7;/ 7Jv}V89nJc\+vlX0;'zy0Z)j/uᶭCKNJ]b肻ٗ#%#]ܺnM Epkkt^d E1T7^Z-JPuwCL7{Ĝy\Eղ^Qh@9wo̭POec oT389i1Q4l\1;$M8ؗz´XѪŃiX6XMǵBXr& סvGF5dg3o Lz#^TvFF4 @b]R [a(ǽ/*c59GԎcJɓr'"G-xb#Vs|\?T}pܝ4b{^Izb48k#xVϢ"q)KUw3uC1=h0K*oڛ$2P4kyΕHxxWH T.Sp%8K2պOh1W7+j^,Ƣ>Oi[tD618f-mMcqmRt?4xAm.HJ](5R. TB{c/:z'yⵏA:+m$GU9^VH2 ѳ^UI^RvDƻ L)>sdՓ`)(ȵ}60[YО Q!%:YFW9&mhWCXOfui@S8(g<{/Q~-s,JQ MJ1ʤp77QB:?@PQ:~ST׭ܠ᥎q#Ԥ wQ]xeW@UmE6-+3g9I3jH!HgݹҜj7h/Dky $Ӌho=5hf0N{~hcZO@8ѢˑJ&^>5gæ9G:FDXF EM kbAe&!X8b@+ӛW|֑RA0+޹ZA`^QLp=SCtQWn2 Q&ݿfyțtn>j:8j0*Pԗ5rhY:,$=a+(SpljGj@iDɲvDsԇ\FPz!ǵn@iRf&4y2<>%Ө[ZzM)`:Mpuc[5nvW"g^' ^ iO~]u$ӫu.(م;[ q'癪yChIw} L3jn D|7h":2\N $^DGcJR†f{2`b@ |gLtd0- U<-&bƄbӠ(򢐢 E,ER ܁ @1g- %!FC!1B" 0hߛzL<>RqZcQA LS>r#:p3gp٠A巪ujɩ3G_m}0𲬀,sʞ-EV)4ᱥ]M׿.Jx Ԁ:?e"[4^8_55fpE>2m4>¾#`&XC㍘aÉM)o?[<0ҿ34 <&>Bv3@5{.j^vdK봅?S%'%4R_#(j$z`82UQ~f86ntszȚL`1X5PV`9P/r32:=Xե8n߃}@t$D(0SSFP*{΋+01z>g(GU״=Ȍ8&?;;n^a2NDo14M)l0 ("XhB79rG֌3?i6Jg6\ľPoO#3ÒG38#͜wF{_>>8ʃP@z;,V.jVr%q/i1"z[smPO% =Q$k;J%m%zZ4oJ|÷O7^t*M&58C& \.=y4?ae_fqO$%Ȭ` l^WĢko gѝHI"HOG#QB1q@A1>Pu%C$t9Rr%o6 qW%X br}:.V= xwKSRV[[cD^4IR-!~T(@VOu\lFɷ3kQBT9b{ݱ2Tw`L9 ZNH1A,P*뚷/ФzkU ^ -xM&zںDJȁ̢8-En7o`K+aK#d{zG\e&NT,=: ^wG9Iu@Emw*8FUܗ܏5d웈q)hhknw۩|O aҦźpc ʗXZSڰ4y5$L/+Zh~1uYʰ! Y36mU˲:uFtr;16 @&UU䱥_ Dr[٨IMDr~bu9n9c"~JrqZ/WxN|7݂rK( Rh)֑tl}\洷€ަv,vO5K(dr{ā|ѯ1贊 l4F}\?*f{Lz>:]kW 3q Ճv䛢])i<`6Qce*^`[$@qq;ó%`+֘$miiGI >t#>B*0Rgr1=_jL2D@Q]`, A)>R3fK`x&7JzSKH}< @}'5puY J1lVrpvX8[yi IY;"<"jRkrb7`@ƷJT\P'Mk5R|)eګ!Xz,Tkz =$⯢ K[=Kۼr^.O'\uܶkQ xZ"- _RFyO k ]m*2yaoX:ehB֕첿2R1{%%!8rHf[N؞47 W,B`}E)tqLl@Pw~z,WWxA؄(K\hI_[40e hbzE\S7E5<̃1^gWgQC*)!I  4 0k@<0(ZR\4zXoCݦay70=v?!QpN߭drK@-g$7A:?ZvC_GWri5Xf2e)11zcz@;ҙG;0uf ox0n[ /\pJWo"~>ǫ8 U.+ Qh _w*$:ĸ2Tš{_ոz.%зPޔŢY=݄.mm AS21 dǼ:<@,Kl? QR 0˫+Lq4(~BSE:ZkHH$Glz}> W1 tIy=sMid'AIfKjQc&I*2WoJ^rZ{VՑშ@,\\2F$u3y>>Q !.' 01f=B=T+\cAC"螢$k S^A$@EN ˈ%VFhuo5Qr\F[)Qby&Mj&(<Z˥YGXL \L ytdAWn{fWKQ9SL|up%ő؅Hǩ忠 gZT.HIQAHsgѩiZ耄 yw JDuB~Wߊ|E Оs)rMzmS<rr5uw:F in|+6%I֝Ҧ~p]d(9K[Y>R, fR9@骣W:w?j:mKfT@E6ŒCn(Ap$Y5;D9fxJ@QAgmU%ry@Q+7SǺ ZFpZp0S_ k%| ;;B΅cD0[ZҚw"$P47HlwjT/}Wh jnz)vABBXaE"K;m*QC†3"1H,a!D¬: ])jfVW'DqV1:- +!NDRPF_6$ ..Kv{W-$ZqY܇0P Bb ʏ`pڳML}hPjxSm}#|qH6'fm,mZ!7&D FD*,P&`+(çB& 3ΐޛ0LmL5)w!yraXN'Yo'nh1$+4 $U05>7 pb9 iEj!AjJ%}SG {T|fA Ĥ&jgIس;S)DDb譫ƕH!Hu#m/:vAȑ!6KT[qEw@SSGvcHD?3`k,L$ " wGgrPŸҟ?>9=^/l 89,CR);mW(lFMe lƐhG%]@?MŸbwJ%?GVK[vn<PNuԠ0@G}`^^g|2zl?Pvf#ݦjQYeN(D}t[K uZ5Z6eAZqʏL"f@9;+>V݉T(Ж$ $4lPMu<%N/BqF#BsgBW` ˲ XɲȳIıՅx!>K0nUZT[ U4MjrhT?w&}Wc(kąl9Z>Pߋ;!ry`Xׁ8M ؉[%\J<';Z}vmGJ酼&$%cP,+hLs)NqL95(4!i4F#Mv< +!MΝ4t7W*ΞehD $UcC5-x:qΉe%XsR˭gn7/i]?K%L[2:aQwc:ߤ yT1v@,s-̍HC4DH3g6~RPr`fgڝŇM.f_8e,vy 5Ys;^[ߥY,Kǡl͝bSL6t^% G!-Z]MpUmY0Sj/ձ}Wb,zٲoj$G#g9[%u`XfD& JEϘƃ2iD LJoM&ԡH+]EjE4"91.t~qRU7)X`-b3R @‚hsb5tQcz NƩІ9WL@@P5V1Mv\q_)dG;2TP^5fjxMi ocTMg*o<{gݖh1?oSj#`C#k :w?1":M9Uj1k7ϟoTZL//,eM -+_XySeConyi: U8/;Ƅ$2!DŽٸ@8 Eq4PB 5Y^+r,iO>22IɕBKs3W㌝$ ߀$S.Ӭz&&s@$"LD&q h|D cK|s?alUPP \!aݑ  # >a@yAW;at(fCk7jkӐI-KB܌Lw5vԀ};h !7u_}4a?#3P(99-s@ dh )X&#$LQrkT@됖^*:,[x0D`- =Q3ϔyD0LL5'P/JӶ6^q'b ׿ud<Ŏ\Ts$vDÖpYάvf"WAĖJO\HƄf=?_[A3*{%0qkc DQ@ɇ-f݃S͹_nNo͘r78j_`ޔphE&En? *78%R}}:%KvBg)*m[l&aku Up;;~EKDKsP[#suFE -"P7(('KއkT=?VBq=:j 7I*`G;>i-!:}v;W]Ѡ$z@ -Du\1 u:eG3;16+?}.׈`M]^ՆPӑNQ{9[ s55l;F"AqIYWITwhlu=^t:561 ߧNEJ7!Y7 FSdR<-)Piġэs5k:YB"tSݐ/tUӃ6eIU%`T&8+F<L /3WaZ!CkV8:UCS|B Խ&$ G(p28?eٞ9.&6fApŭgdhpZzˉ'Ҩeu%mUKtLT+A58@ZbĀ׉Fӹ.ZJdD?-6lxr;hdcC|Z^MVӀ6FC_I_͇ c\W9-CXe4.^H?KEh27~wr,o_E=!%q$4λޑr( Y-(Ks;\$3{gAez P*U_Ųւ^۫D4%2\HB^ Ӝڜh)vb°!WFI4꿆ADPZϹ!-oYWĐ\]c ?1=q6;G bj#s‚k'O8:,ǂJe`@S֖v( .EZ:2+mZ i@AU(^b8,t [ߟ{P+ 4/2X(v?t(!9Mcy2XBH-zX,+fg)frXkg'2k4XB>T,ia d+M'(`NY8`5 (tJM͐<e,)O(a6<D6wN2&˄8]fhJYϘ-HH㖾I`N nWn:PAƊMIvCF3ϡh WW^i,pjh)d8syyoi 7W]pJ󹆂pWKd?6\)g~{9`ZkV:FW;Ȅ6]E^ O G@nU a)լpAN_jЂ йQz[JEBTV2w{Ł it`8[9li6pR(|iLlS׮ ]KNN(UMG$;]yv.:P:ﮫ$N V(~Z5NIWbmP5\sP"Ϊ C l k婮ߤfﲿt+Ju1\pd@R@IPM*9jtyqK-nc5cUv8iC(9􅞊}zﶠқ~b?W}jM?}?k O6VSW$fˢI|gGL؁G$ ٚ&^Ia&|~6g!W(n68AlQ[)Iܖ +r"q)T0D݀;y@)84W"lKϟi)]p "@g SK*W 1/-7诠IըhQηp:[C$ ƚ|".]a^}eKa*@i BL'2@Kd-bOr>OC'YQI^QAI#gHC*p~G2#|Z?|J-eFmt -!dl9jPN{J#aXHaA7?}1ֻ-*bIze6Cn5*Č4,c/3`(NLFc(f->6ivһٔqbOkڼu{K~?)@ymsvG}q&oh݁):x(G@b5Ni92DQ"K/Ad.-[%iQ. ÐSB:R԰+)̲9; o_V=9ͩSW"}թ*ab ݌>mnԈA -sK4_2Y om-"%Hx7_"j6j7םX(wkTr\M\E8w3wMzzd^7W}q#4j "C>sT4_8dVRD9щ̔fϕXB5Ҥc{ի3 XC~)u(,F%)F|恵HEmBNvJ=?1B(06+T3<(=rDO]e<Bxu՚:tE9$ m9$-jX7AgyqaaQ|y f:o l3W|C> ؅cX7, \~EwnZ]7t',82s?"@d  m`Nc/vw6ڨ Y:%&Z#@UX߰0SW6t-k~cc )w@Sؠ0P8A+g[aML!.vЗ,]&>"OTÑt. ͋B\4IiV+q/ "G 6Ћ]Q`,r1"غp<]Q)h^ skwz@A,JKN| [< 9pzTQR MNH)̨(~(8sZ phNۜu cyF ^f)tX)^V4m-]_-$0htqQm-Y*2(8"x$~F*ZھQY .:/}%NJliRE3jJXܽ|p?9$mMbSD6ѧ7d''G)s=HW:7q@gA@g}[4ņAبGFJ/]{iŹ$i=|ֆY q0vpu} St<#_[a۲ogjYpՌLŽ$5?Vn!yס(t1BE3¼!9l&z1.ƭR30CQ/>XpX櫑c:Pg~9g&؛)>IO*ƣ0^Pcji?1&Oo*d=s+X/޶iܳ yehA&;X-_Gme5v``BCe`0G5};@OihK7Gscstq~"D 4t9ps^2d&?@ ͇HS>R @@52cg32eKy1MH@Xk^pA0Hs(zȲUtc62]ȕv[@3,U 3ƭ3trʛF-[І8UɆۡˆqWxB0ǖu|afN.xS Vذķ4،5Hl6geOPca9~*E饋 b6 @2ZRr&3t/B@]BÐ`"ZeW@;ΛǥLFՖ ]9Uŷ?i@c*[ޢM ~]X*GXh?7x/"ASBbI|_s`2_GQd%⯨ } @1(S'fttK1Iwr Gl4?бs܂2/Yf2u%Kb,X?;aPK7/\B<=رQ}'}FYjԨZvK%Ǒ'ayL'Hi{ 63Gr$1;>P9b$6}k$F+yGt'KW{R"$O -at. \2e?;&7XۇJ{ 54RW ;76RGce0֪>!`n(Z!IeA+5 +DYІNiK>& (1ܟ * ̪m̘gSR+;T $epm#16_!T*gZ &ԧOʰ  ٴ^E]P0 D^BiJP:IGKZNo}\oH^i]Hm_Nn Pjd-Pwg) 3Ϡ"XuTjm#I+=[;*nQ fL_vA'!] >TRFr{?}!dƹc!Di8:?O4ɼAN222h`7; (~ wSwzȋ ܕۼW"(qTܬ Qebp|O`G:ssĽSޑD|nS@[=5CqmN$h~L`Lǀ`-XlG]굧sGpv% dR ,㙂."'D0rg`f Rr)aE0I%^fR\`kf? =Pvq+؂P9a6>@NsP,f g~ߜVNpf!X3Jq0o݃u=9UWԚex+˟DS8dxv.w.k-#;_\>~{atMhY.޽>^t!ޔ !YGYuRd{%2 ~4ܖE@ !YBT!ae E9Y t ,&l} {8"mOޜC.rx7t˔7 'q׿B|T,`D<d`WQz3 oMaޯK}*ncy [}4=J 2ꗉ8׽e%H^RP5HT)t0J3H"pdoI7YIԞWCsy]QJ ?9X^+Ne$u$޽l73^%/gj4|0_w4=_TiE3w3x@iufAS>ɉd#V9u$/6Ԫ;^3a[GZEIUvHq-j $;^:ߔkMqcWm!FjCoD%8y#>y4q4Ϯ:7Ga qQ:~N9e=+0v ? A8@kHhtb d.p%`Ȼ7c,NR5hQpTJ,FL۶w`L,-765oԮK*}Zh!G \g䝪';`~'|~q.X<|AxRTݩYo?BN|y$Z@wFq\L6[bwN`ݙ@oZVuǥnΠ~&Fiʼ:ٚdCc &^Vbp<``ZFU( v`]ձo>s v(3}v)ߐmb: ӇDboӏx t:Jtw='`Rz7_"0}j/,=" |V^S>s3.A`{?Ej 8x79bd5Z7M)+>O0j ݵqD[+jA$!aXhZ'D'~ʤ pω-2@z D i6n N b9I03V>aQR=א9Ůl^KN.cJb(?QaAFKffɇW;^a,'lԶ/Wċfk[ -Ȋd·xU]A6=x8͚r|*d> ɣL 8nTJx"ً:E~m ^>_*p׍)rg? # vb瘌4=j/qA^[[8j$u~o|n֟>wҵ#BwQNRy,) OhSP ( t4BSa<%8|+&TwL} .6-]p9hL 079- 1cf^=0clPpgLn?:TдRK+?'ŸFhk&rZFvՇ۝H@`o,HGN1qieqK pI`NY)8zTKQ&"_tZ:պ4 + Dž7z0yˏU3z2X}G>XɊ)v^y6V%?lefVxP]b Rb4 o]=d j;B~,Bv"C\Ͽ@@Τ+Gńm8\[W:A옷ٗ5{SR~{6?I@sv yz2 ,=˼<DFjyX|5ԤM%x^6Enp2x {_$ Rq8E_%y-9 ~:O:"}.Ї_``pr`)0t󷀈ٟȿm b /(}ZGU @7 n DՃmڤgx9t S'Ez[34ԫ׷Tf\gS)8閃cfk: C CvDIwGl :]_qy$THv,;CCLÇ2J4C7&Cܮ 5 `?˿A1C=a{Ⓔd^dF4>RHvyp^PSX%+>nhDt(z| DU5P-i^eSPtMxHysVԨ sX^f{<-Q T<95L\4KM"߸KX6v-1,>*q yÝ]wY831r|{^x }u5lEFJ5*oNfjklPp!{ 6&o;).=y6o~9tx3/wAN w>vwԳov(bܓcWKtj^Te^}C '`9]*Ҁ-t>nU$)"Om|%fA]|Ǘe~peǵO|*hNQ:-X+{}:qlC:J. 'oʶF]Z/uM A@1bWWPBtrzlMxGrZ $!9S̚]>|@G³B7dV%_JfQe,cǰܮW Ln -T+'6x_ئ@հ}jIɫ5 (`@a~E?Wqu7c$`-%#4m DDC't!yӰJ{ 㴧QJ#qRO=.5!sxÐ<%'g 뻬hTHF >rtm/zNN}Q+IG'Ғ@@aue”hK 1&k#6X!8P{||Wp1YHl8"t ~PR\bL ޢ)" WQok4o#Է*vdךšx`:)qE׆nE CF Rcw*HCo"_SKShj H<Z=L"D\1|'rN8u,3CJLa9tT+DR710ZqvFFR4M^dq=~3L /^}NOPeb}XWp[Di^U ҆1EiE wQ,Uю~+ ܌B $<ҡK@h=h ono1nh^Ϣ8sK9u6'dP)m"R.]k{]kuaGM{SyFnݢu vUպl~g&g]k2T l]$&mVz)l%}aܻ,)d6`^(E7֒N,c7j xeA\U_4Ojv2$Lw sF*MCyH;'-=O\32ڄEr `Nr䛗e*_(W45$[ sv yTκq92a_@\<=`Tw`?3nxIEĞWro'/z[ EnW~311`EuY(m$|,fu+ D7OԅrY<( jaPڧ7s妹UbS=yH:nK= ~׹i,ieO'3UbVϛwXz͗C_u&8俰I=@_ȺEm cC6^_vhg#]KKafxTͽuڙ #z65˼,A[Bcd MؐʜT^u݃Tl$*Y?y3ʭFug_iT׸ fLO!N/n<+&~O">"C{6]^ik0O/hnN橗JLz} z}&Ew`c&!Vb+JXD !N| KĈ/)%wWM߀xpAr#A 943m`g;:3½ſΠxvTJ4T39Ü^}+o/woBPIH(o?5~2Ly\>t##R^ܱoђF' 4 ab ,=H;HRdB̪x(O*{A)B|Px(qU,"V*JTZ;ZKP}Fdd؀F qUԧW\}ec<ӐP Jn~|NYUe׮Ht7r)AB9[bϊi:q9zE q7)wRw%+٥a6mMKሥ|耸0l$ fd犔o&+u^fkٕaޗܽ>%m)̯~醕g/ ($PeA6Ţ3E/0?cҴ='yE)4.JECG.&EiVL->i-ZF?H)5LHSH_"t:),T.&@ &d%ߖ6?Zޘga|TuYٙ{wtjdRVK(܋a6--b6ܴdqtsLuR=2ҐP#\}eTwIPYQLXa]˻Ϫ5 gϓWb_qב}*m%ʁ}nU E9&8O'[Q,?IjL=< !:|@0̖x-p:hfi^1fя/a"t 4|5Vi CRQ*T*UbӉvbաZ1>Xe):A^{!xJ sIgCAjmIcDŽa}=၉Sv!rLx^QlC<~@KE"f3 !E8 1[mX@ KSy0ő&?Z\-AvۧD_Ǭ<' لYLHd 25. *UQp"&&C)r>ނP dz־EH>%΃mKZBvsQA7MhO`ZaZx{&z*u('C- {7 fx‡u4 ?=]K ė*ocn  :+& nPy(}KPz8,&8#( &&!]d0-c̹3,> g=z.jBE{s-1Pi;? 6Ulǫz*xdT\ = NFxm⦣ uNc KAE{X31+:lO}oC%CE/# $z"ɧ{.缑{k 5S 5/O贋"/2m`%R C66WX\ zn7zo5q8"g!C`qら\1 /#[Y GPy÷ Vց$gbq*jFf%(Dlعpdb֍"U>Qjų~hO 7>;PRn_Mv3-lGnQk|#1o %EY~ɾ}Yt!1y@lre҂oFƈp:Zsm5 ϑlϤDi"@k F#ٌ"9^>wC⎔T'9*lcov(RRU\3LyznDο{l^ ]qL\kU/ 5, `v!v.]ZmAStlO*: '!ʇU;D82CЬ3V[OyPyQj<;Pcq0PYu@5Hx,:nQ4LN3$]ɲ|X>)-z&YRbQ9#2!MHXmG}Ѫ8ģtz2|ݮwFRHxh7=Ǎ JO1Tԁvrq)k(ͰʖEo Hd2#Ĥ=P So?gt/ˎ)'Ճ '}a3]l憨.k('߸m}eH^%Hy:"w)oHW}mh8$R;m$#D{r6F{)$g !=+G@Rwno-#dtJ/cD :X~>y2m[H`"ڀ̽6HoajKʟ =J~.5݅[ƫxs.@7_l /f6C`dd,KRdKKx-ΑI&i ;!m:e">VO~AOGo@Cp[<2++z-!0 #2xޮk ?˜NZ]WPڐ+G}oau!m R3F)D2U*,Nʽ \Q:LuQ-z8q Kn1Duh-wy/V(\ Y>1G *6}2fZ{$Jvb@ZNHօ=~]qZ(>NWeM<_ F,Q3O0 .+a|t){ 9<~Q:9~bCa{a+@{ b1 ]7_=/W~'rña_O ɀ3W׊IqmX*w_;y}8Hu P ɾOrqoG^^A5{Wܽi4~k[V.l9yqE֑pu+&^Zc]ǀ x(TLHZڝ6v*^QPx sRGy3U2pdQ= ű!6!\p12m^<ŇѯL?Ka],[2# :<%AvS'з2%I'g@]kq-t̒?= "XQ$nΛ@R+'!f<3Y!5(X{a#1Eh߁˔$"m)Ӈ 134LƩn`@."?{,|jZ2+7$Hw,<oT`4H3C'Xp4ޕX" qsZKhq_zV[ֲlDe EYF8H8ǥ2Jp "%u"ag[F1{+F|h5zk ;$k#}WgL%A/IvZ\򭣚&."sp(T=Xb] vDgFq51*% BrdM|َZC Y3CS[j!ߝj; cTЏƔb!!OT-昆ݮ˧*w%b%QÛ5mxsJwm,KIovWw{ lb0 f'rP`LϵtcE$BYC}IHx u9-*7ۃ}4@Bb"vRM/o sϐyCè'b*\@Dv':uc 4)7$uɨ {  KF-?.!DnrS7$D_=˦!iܳebČvϞ802RTTyP: R" 7B{v4]I0H(n=e_SWRj[+0r"IHy p]9ٗ,P=ݰQAX#AM sMj3_]@EPҎSt/i+?o+3>O7B~ߕ2mOv%N'#/*= QE;Jz%HĽ9"fIhP9xDXHaU/ȷ-n-N b4k{ӈa U-,ʨzeCBAۘ%]sAS( |iP-D{f\`ϩK8;P׶ )Ы,`^_>k_eOyr0yi'6s(nGkG䗽6<{{G&hxE>vE5#7+BD&:$+Jm\XSDE8 Qc%Ϲ|e+,WF7N`$Ք3a'*Ȝk[EzM:jm.Pd'$)"(%b)!3A67IvB$9=1\DW$CN +JO0E-4˕#Ē2b G>O\9[B\ W p};TO3owj3-'6GugYBN-0j )^Ɍ<#a=YF_ &#O_a87O t^jOSêZ,硖Lj%|cAQ̕6h@`v'`E]>w%ZQ J@Rm/I GDa_ DfP׋kU稠 K-x]ƀ[TA>p]SosuCt{iM;ҶeD=tꯎ7 !!v  Ed=8L)۔Pչsx4|ij8m ?tucK<؄17Z/'&$?.V4a10vg=5mѐ.疃ao~WS39u؆]S㱇Pd7#O7eѶ⯷`FC~{} 6IcSӎY .[e8زktwHd-A9DɝB-}Ø-Q۾dm@Yj `M"^|mat_"ÕHdoґO9 Եe?][5x$0iD/Px2O } I'P2;4Y͂oEsRL2,~l-?W}ũwͽȍұ!SX>2ٲ-8'ss-_ҁ28b,PYo_'ǬKq^WtǓ5;!9y&5qEZm#tC;{sgHV $U0kaүƉr7Xa`[?GxW| rKNbv ^$ i,i÷u}@]Nʯj խvCB}ȴO$0?2qO2w8 ցS)hm7m ֵӓj;]wTh(%m<4j@5lү׷!P )D"TRO:7-DB k&l> D^VL $la|t<,Oj4y1%o0{׫枋7eٴnm n(c&Xt>pOF(6A!zO'r(=z]"%_\z`N8_0@€QJZeOB&fB#Mcz,?Cr>1'8b3%HAf-/Hb|Hs‹o$Y*; [:n$]5"_qxkT$&dnuaj2 vˆ4d~y|VB-VL&#$~^"="a3J5 )%QnuM"8W MqqrpXX =^UjeR3/T'5] (V=.X (2Ѣ2C&u}nM0W8olhMYY6`'HlQ&1dk*!M wMnF:+y} S2ĂlQcR@^cfyfvZxhG1.ZjEcU&afMYq4K7ʭz t41fU:#%iqv]Yggf418=TބOWE5ex'D&bJkmq5?H}C!((IUcz&+0ma (B`bhPF}[xX>\Zm>tͥ5geS)̮+65E P,c X/W",>{&օB*oSi%h}%'R 8>E@jjGzP oc^, 95Ov*Zs}A P6Ƙ$|#W N%UcZɣt{كq{4G}hщlX%hco"IT HRV"#QE0`333xtMKDۮ[BӍkmp[ÑņNJRqS"!5>ʴVDO-lBeqbcsv,GfܑqGR%uގpi`zDњ\].@5L8(_ɮGUq AMcp+\?C%|?i}.i]KH/]^|QEy V d~C\Qi(@G=r%)wRi@Ybm)$B>hϡq8DH>&5)Cҫy)zS7/U:@q$:!?6 6#P-9\dP$3#ϰ` )1΍p81emձ 35_LfWږ/Dڟur:Y!O4T}4+ܝ60nF _CŽ;7O,|^HHE=:Z&S\J6yH $< Hk_>o9tD@j`C}/{ܿk0F_pճwQ-ģ?\YÈ ̶ysi0DA# X{1w6aEׄd2=U(2yXzϲrn/2Zw.S4ꈕ)+ϭ9r[C5FQQTrzG ս&t&_ #fI a0D44!Ulji>H;Y}r)Ec m6X )n P!o= 1-\0Lv1|/)RW ,TU/4HE/qU1bĈfI̫fOAk5ぞ#sʮvJM%fK`n_<׃|ft8̎X`Fl WF5 Rȏxv1mwgm?A-Ά+W"Ft,:ʠiZ8q&qEI:h&Wr]\Z h"5/5`wn|)P\Qg)b*UCUfׄVCaHi<8^4}Q//xY y]8s@B Osupw+[W  UCU @cr+C0hw{։GPZL *p 2Y vdlZT!+h(P䟢fh *iK]GLq$J_tAa0:QS<ԭBoi-^OwB{e9M.$<J[-6FfxF1 +XjyvY(hMx^cS+섗OɓR ⛖(*i-%FL$ BJG du0fC)'u)fI=p.ɝ;nE՘ԕnom8[H/# w>Eg7i,CfVm燘ܷBӾ/qtI| 8EtN <o]qM3$&TV0gac'GxyDm:;IN>j71HSvMIwoRd+bpItwJ?oq0% qƐS{mPE&j:s2_m=!GGtZ`OΪ[S݂yLH-Ԡ,avpPE7V]E@&Bd¤Ex-w$ThAqcY6!cHw%A c,j &!6+KkFR398jrW!w_6,`Lo.^qnߌjz7j, ]~Te}0)fCވ> ƩnS̄2& R= JRVBL!1&tdV6 d8x{YP" ky窧zͨ Url&A | {ϛDzC. mP_)}ÑAL)9lҵD&?T|{_sw>G VS_oCZHGD)ż N+TO/`NF4ﷵծ&0K HՍPkueQGݺ{էau2,jvm^l-#\L!}bhl7 vsΞm,FU"+ء-mݴr ]1 ?_QHT'4r0CNa:U|rUz<df 6~xgǥ,DcA-k:0n]؟Gprq;dEY؟q}c~IM޻q;=Z3徶UanadDMZ^,&়۪M_Z@L/YQU rwm Va'1ng;kEq~eÌ> Qj)@"OOpz5Ҡ<פ/ ^<[KÔP:ĹdzXosUA ;Y%Qi @ Ys|Z^~^sī| 8#zf66{8?X5x2J0Wդc1WXG^o:(N۸OÎS8=(n!T?U ?:Ҝ}!_7ۏb']/L]A[S02B wiJy/ e=7)zB^T:\GrkgA46*з .wFKO]|R e Phj&ŻL9$ QLr"DEh% mޢ#]FDT(8grlGRN`fhO>C+Da6*xsm.4:4Cԗ[`GEMޖc[uC7B~T!ȹzn#D=,U2^Էm]1'旘,J52f&M)}Jɳ=QoXM \`|lP9t).F-[BW,qlbɰOTB-QD|:kۉֺTfkf^& U## ,`;yeQSrest[I|׸8/2?=6$9:!_,D 4cds$F|]8PafI*Ԓh釯?^\/OM{zF٪}LTv$_BQ);nYIyGWp3B]xmA#9 5$qbBI1xA[pr*:M#A5D^Ȯh*f-Ѹ:V S;Db MD:s%i.H?:NкG%,`fD?^a-MKe@Gؕ8}aFV 0ԍ9q =y{*C;`.dx|{5OZP6Tl7ÜY.i*,rLle0zk3/)tM8ʡ"bеlZĨ ,NhyQ?!4fi-̱AgFRF/D#y4$(%˺n?ɥȔL il|O0UN岏>~'̚SmZ'7.^ף(X(!зӪ*JjVsI"ei,R GRTgI0x˗2QZ{+*IeV8KH*sţo1oJC\tdz]8 Tq"3Wmgc.`-nH7{(v / ,kw\wIsA0*zF^nN.^$w]\4Tk*X Ua,w#J(YwP ;kzs[LFR̮e6MvwS숛#p ֝ad =>CU )ay[=:6B2[zIÎN앫5MG/x]˴9,ɑY*e<*p(|ؤJ)z3f4n@vf\fcQ:/F'ޡV6y7-҄M0ްDJeqyt.U#Û:o Dj*5vRZN+꣑Å Af.p.JtBjialF!8ٲ:ӷJIAyU3@3g4u2n"YpFU߶\Gh?Xdu9ɴGX|Z&le!Fm6u` G08>j\T3/6 ?+ RE&AM\%ՄuLIc`Հ,oj&b``Ng@ Yiuhݨ̼֠V xgL(`Vͽ;zfJ[6~g #La]g}CBΑPh[!Wv'Q9bD:#MPhb+uTM*(L];VG Co^'Rq0=Z5۝2mx(Nbb9IבG"Z١ @C_ly(uivMu{B" hJ7F+OZYp@C.&(?.},?3lw M`W|a)g|Ux޹Htƙe$*n!N,yvQgxaSA& _Fs ߏm7*c?,|色M@Z0妧[tzl"0wMiwC9!+9Ln7PYEi57g֨Ë0˅} Ϯ۞Mq=։#3F'KО;k (dJ}^K"JžkO=p@wiO%yZ>nبS3CtvqLB.=yVR ʮc&:tIF\Ƈ+%S_y]**8P[qȽAnWPeM@*];]R֍g`X(kwyԙGww6uz,g^j|SѼ 6= K_ 3_  -˘F`G1apQӷ.ty]h b#ܻLF EӔ3D(7gU~tL57/K&<3ȫg"e-8= XshvʀɹtQ2m]LfZ|#3:|e2JzW,1q~N~āo Do;KA a+(Y kOGORx},[i-#fFx@.Nrh3yh'J/ͽHm{NB UJ) 0XWI\ ͔^|dD(1Ž<CDpYÙDӫѕIqE|Iubb,%m,AJdCGrIcM(C;i:+5ð<{ 7qCa|"}S| kנKV/sbjY'0ʄIΖ$G.Oz&oqd17(?5YOr„t/%8Oij#ʁ&GØ6: k|r . ɴt"~&W=yߥʖvazǏ5# ͈tlR=/G:3iE!]WhMzR-3|X> gs@&PG]1ȴ%=R CEoZ@? pzZ pG%"`oफ़֑U`Fn}K'}9,CǹoimiP$82K5Ø~{r6$ئ(酄'_T\IJc7a*il1\)TԒ㾺q\|QzP[d|'^4@7l >Q#nDƒR3X} hXT[`TeR!3}v6~8 vzm3ɚ/?Y ;A9՜hkk;izm#T~= V`{EV+ynDSYot;n%d0!\ 7 BQu8/BzU؞8>O` ch{*>Agx m<@ײ;âat,_JVN87FҀ`}+HH>1}+jmS(;S۰tOmaRai)&W4pfѧ  ck( Gϻ㘿Q8hLPY(w0( 6TS`_q^zՍMz;û9zѾ%3oJ{{r`XzZla`_$bR{e!k,UW<ZL6K2\slkα\ (1;I8$V%)œk20=N^a.1Ĥ?ΡU1J6zlh%{V> ~85*#.vi0ˇ?0mC¦+ES~տ~9ab LTcJY26 w<;,WQ%-_ fK^Сظ۴nNSEL2V.) L7MHVQw \b#:<=*R$b< øKo}oP;Ly$x8 Ǯ2{ğKI T-r{^ߠ\F%EQpP'YvU$ Oq$D܂SEԯGM$[IQLY;66}m2`q[ySJU&\'I~l4{O, BR,ƣ5?|p*q(ڨ{`/ht`Q͇#@Ħih"ڝ`= OپJJXM.;YLn wڋ7{}rC(͠dB!i"6[x4n4ƍ5o Z/ =;~uAN{ ~/ӌ=o՗ƀER|ӻL7\\>F/*CMo29#9 > ,T;_$vxU`ć/t_+$qb37o8$}p-[cS !ۅ0up8tF_RV,X;/^TA+Ls[Qkcts WC+F3&>@& Db҂v1W>'ɄHXM4D-2&cVt>(Έ[JB/7nC#$%YBh$iAN>(34]K&62:B] 1Mh8[|y"Iyn(!Z4HgybcLO- Yk <&`s$Z k50KjNY4Ƚ 86PbrZc6͸ũ#r]l3pfqs{s lؽ.t>5kӘN>/D+;MkC6fϕ!jF$+Y>dkN{gߏN-[s{ >t\Ңe1Pˡl* ;ǻ]Tp> J 8 rr,j69᫒ G?{mg~ZAJ5}Y vӵ`6Gd"kv%q0c=| xo$J6ۄ81WG*f63&KgNZ` a}\L/BwdVe7" 5onx@qCzXkf ɏմdhA\c>qƩ,o(/-=Ix H ?<3Ipx*?[EM`5Cj )WMQoLQ6cj*4  ^b<03 ;$@#mjq}3LupWmD>tX-rC^7<FborYx!ðn;%#3@szPSg's8IH!BXx(xA EҐ ژq:ǎُ͒ȇe:i(Ok8DSđV1qCس-! j_PԐb>R[KEm`Ni3F ޯ3\`#)oxtڗTfXҞc%X\G;0弱ݣZqA<\[0b]}Ph+XfN0h7!^4a**2WӉYd OGeJ۔l$'C!p0m1J,__M9&`ͺ ?)^Fnj5B "'Pˋ0K}59PPcQ0k܌zQL \ԕ.It1T] !1gW(T!= z MC=abH)#U6TiBWYI"-"ԉO?( P?wD .Wy0Z`iq nt Բd'j{k+O`^F}?dȑg*-n 񏏁VmvOszm!WV x״ ?~vz1 CQѳu~Z">h)u Y{zb c|4,KW '7{rARfO/WH.Ɂ<*o~n t@٘fB돦&SQ#%6Y&OՃ,o-O bAn+[]!Ћ+ @AyC١X\SpK}Ji(5C؇#diBX~&mjP6GR ['l¬H?[l :P7 aT?d&*Iю༱I|mD)ol)eP8}uiYuH]/T`RQnKRH~m[#Ml?%@%e12_E\ uJ{[2,h2r2 ]] @ R0cPG l I%Vc"!eõ噬[RXR`tRYb/hcS;5Dz[تwjӜIǝƵ8 Iכ9c?O5Uc菅ڢlu2f? 82ǔm|`01>FblD2Dpe&l0{ UV$KXsh:ܛ3sc~Z; ^sFEzGh׺]8#9ޖ Vwﶾ6+o:}5S6 b>_CZmq @cY;[S8z cT ;W>%@oJ=kfFrN;*]x7 sYGDJ#i1OM@HМED+}+4? ^OΈM4mPK k'-C廯W,A;E.SmXhJMy; n륔R-f޳FDWq'oHB>N:-u MͷIN14BlXLĽZ%u _-"}? Յ]uFс%'Np Om?4>OI Ձ`];WXtzC%VXv /kAn t.M1'뒟_ý4ZKk..HT hCC6a9/V "&]kĭp<7`ـ erEXĂp$5fᶙ"OKi_53(m*b+%KE5Ў"˜jB̋ΥQBIzըI*S -h }^zǵOݮc:o&O( D( !_}j0HdJ66d ;CEJ:3⠖ D ydQW$A&|lK9ߠ|=\PSXY'2҃F)脳;NAXt!J!vz0[:}ɀ &-|D? *STƼB9c jq2kwVx/YFY F} z\3{qK|NL_gK"/5gĠ~*r%~J8qXYyxhYy!5rdfxEIl%rM SG{nZyK{i"*킮QVy  sk#uK>M_a+oy?x6S8Xl X,;/Q^R\zګ!k& ٬\#  &0K4˕_`@h+?>$DNCBS:mo< ,*Fi .'(z6r=|`7u4Gȏj7o>œ^AK`~ۡ75D:`(Vu4ֺ9|T‘N/ttWxeٙ/UZ CC^Ϥd5,(,¢Ti}Pgu1\*jO`UFE;XovOTip2S$d+*'JIg;TKֿ"q!e]*\-t%R !LxdT\\ 8XF]9E̞:FU~h4lbp:LosN.jj%qضPKB$s9+EkOPI's)*,-IЦ$ ש@2#FHH"f,އR#G, %yTRʴ^$yL/PwͣFvZʖWe0zKe#V)<;Sby*Xv8iQ[buVvv}jCadh'| ҃<вzőCCWlm>_dEcY_i(bj?FLM[TF)-V RCUFޭPMck_=K#7|u`Oѻ4>m"ԛ]পm={pEgO PL(|ϳôx08~3=kA-\bcv2kʻW)%&#o!Ĉ(@,y}VLjjCJ/(ASx 0~ԝSh'{41$#m惻,ilE"Hagô'llܥu2GӦ&Vqe\ǕќxLhͦÁm4dlm"ƁMh:lv5Ɩi?HdXljMqiްk p,ȴMmY7EG4ep1-b1L-k̂kl\L{"HҦ?14*yӉ/z#sgtm% S 0H, T>d H .1FGXv s0A$P9(s8<˕&nqbd-v>c/E_ t=BZ^NIHRf(mZ-e)1𽥌EKfyL*YW> }coo$oDYrdEgb/K2nfP& +Bf}k[{ЊPOLuȵ4PwYj4twdYYcᛜ=597Hݤn;$ʋ'+[7@;ΐz;L}HCQq3hfn(5T vh{bϫ1 Uqs9.^S8lO RwW}rDe[(E L+P_sHo/RC08W+ݣWi2k0U" 9inV۲)م󢻝D؈/e`,=ڄVZp.ݐ^6s.bТXoN}¡ n``ad:c5iCx԰+[ w_r *Ι &RCR6f}^W$3w0٩fпVLVc:by=cQ LP2>ib?p:([4Vy\̽Z&ePFOSOv=rK“?Ktj?i](,ٜ>NM1e 1Gcyʲ#̪ 35S9Gz3|w5Ɏ [ÑXsʽpk]x@2;݂ y~r1SKD*=ϽOWoS&71b0@D\drPB2)-z>\MIıtaՂKHDU’[YVz gOѾ cvU`N2CaΥǦf]{ȋ5BoA.M7gf#Ia4آ铆u.UFz.a ?N@YI]iLΝqmX1vf}L 28&€*YI?mA WHtx00Q"AgADlT]~5mGRObZpϋ OQM4QJ>;lduK8<^ %7Nj;}+ыɅt&?DyS}S3w]x|HBgVTK˛*X7 qCɗ{j3SҞSwHP׸*W FY0ꯎ%^W7[#|OaUiiOw{I6W?L )9 633mhXrg_Och<b3ڧLFKt UQFpCStۯsڧ\%lUd! ӹߤU\ } !7qיW5;h3<`֚tE!7T 5~P^ҏ\WIú@4aFÑTp}KˁLgED5Sj@ &td*,:ʞU#`[s&[bGu9{ VvjRRQr Y%fMY3[K1x[p:{s~_ݩim5+6ڨIiWEW?,b7U:'kPOFzq҃&O_ ܶ)U(p˼gW^i3&nͿ i(ŝp!'سE׻[槐IQ"L;5>Ti}t{Աw&5Fn=AS5WڊH/z3Ԭ_Eb,1n ꇆXGG1 E9ɋ䓚 ʹN?A+?N\,,Yu7{/idINa8fkR*w(- ,}>B|.h΄&Fssd! :>gC㈓I 'A$9 s.ir=̃mISKSUr~о@Kѐ=Zv) zN4JУ~!+`uD=< ^rBX,cp0t4_Q`KBJiZL=6kL<2OiPf<(f5LǦw&jm/*uFk B /L]z3ȡ+6S;b v5L ӋSƀ@)*D}6q]Sώuь YpEբ)" %J iT6rJ'*?f8.ǓnJ\+Ds C<=Tx;b@e"\3d?CBIQ4GQE2:9ZM,2}+@ $@b)=7Z|+~m<8YpGHטg;WKh7 tz+_9Z|U ?P._}M),$W ?L2]f.Y.紆T,^W8˽6eA/>3 X!tix$ND] ,{@CX҇*V0dLË' 2}A6W|PtGzOTl3v+>vDu``XG4gƘUI!]@p]tUvfJJH7ue浻O (ֲV@[d@w/$uco_Gh7  M^j1,0!xJwz(e=0?4Lط;yVPl@B_Zm$3y#85r\eK{@Ҭ|쓅X'Vݑ4G dCtr۩ŊAbnxToJ@V]tJlz(YRo~Fvf٠npPnyoy']\ʼn]~kȖ_<՝w!2Tv1^>ْF,Fm$ E(VT;z 7G:-=7CF@{!S uJf:alTLoحD<_!keo=BGduu"45ѨYQ"Lu|(yxП~k1 ^T$.dl zW"KA9  Js!6dP+XQ~wE\A>VBɽ ),2(enҀcla>!I&oZSyzrb̨:00HPQ#gz[vC|Fm8?_Փt[Z"$."F'ƻۣ!C*sBr[oO%711Q?5G ^.Gv O%ڨDy:9ݟ%k9g=سK` ARf 75s'+Fb4;hٍ KCԢ!v-#z%M9{ &trG;4FxL0md il_@Pqx~$cZA#fd^rPȿ\/!dYmӊ86\lڤj!]- =y %Yҭ7ZW943!!\{- [-^FXe@dorX}lRlv;`tjXdT*%.F^XZes6NK/I+:HUXtZ WOi[v