osc-1.22.0-150600.15.9.1<>,xxip9| XΧҺs,{}u(⧠&J T~ObLFkymŖfO=U9^<0֞f2S;%n^N2bI+=>/Cw|l~JxrU;5֓;uǩx%҆C|S Ngj;b~vٗ}sZPG ay|%V< "i笋=0prƙt)}Q5) ^R |A6 "%=D?d   J ,0Ij{ n n ln Hn n n pn(nNnt٘nPt   (28<9:iFEGF nHOnIY|nX[Y[\\Pn]fn^W*bXcdeflunvT w nxnyĐ;z|͌͐=XϼCosc1.22.0150600.15.9.1Command-line client for the Open Build ServiceopenSUSE Commander is a command-line client for the Open Build Service. See http://en.opensuse.org/openSUSE:OSC, as well as http://en.opensuse.org/openSUSE:Build_Service_Tutorial for a general introduction.ih03-ch2c?GPL-2.0-or-laterhttps://www.suse.com/Development/Tools/Otherhttps://github.com/openSUSE/osclinuxnoarcho;4,,gg  #/#/EE"Q"Q+K+KRR~$~$66,S,S* * XXFF''  "} i&@ )MX)(t"" llxx&9  *aa    bb##$$LL)u)u  88 ''66ww = =  -Pl05 ':  @.Mr'+YDKK OO ^y H H!!#,#,110c0cXX!!TT.. S S (N2]@N!Sh+{K T@@  ff QQBB!! j jKK>>ggxx## F F  || $&V)_3 Z%y9t  #mxSJYD CCH Qhuu YYJSJSKK mo'KVQQ^^c 8jO))""eeOO.a.ahh = = 9"$* ^{3o) e%r$r?Fq!AAA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AA큤A큤AAAA큤Aiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii i i iiiiii iiiiiiii3b63b263d6dcaad59ac2fd6a233dcff3c7d0f77b7299330afbac5d79eee662405f3bc296f4b5014fbcb88c0b51694ed66ce78e98a6038f6e06df53e8eb01ec8ec472b305a57d86e8c1bfa1a1815ec78ca088dada4817b05cecb91a9e1fcc96dc656ba8152d7bf3013deff844502b03266bc911cf6327c9fab5cbf4bf9a14c43cf54b58e3dca05acd60e35dd485c3ef6c13fcf5daf69fac26374b7294e950a5bf6cc9473bbeca56deba294051732910dcd22e1ffbd99a08d93b112007b744e26b01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b37ed926b62df1118142de4ad69b3f78288b0479fbfb47fbe758de3a3c27f0e74e02018adb8a0d2c79a84029db9d0d9d589769b357d66fe39a26952e69a44828fa4d9f06945ebca12a04ee5fefe204175ee05bc5a630f4fb71dfdd091f5ec676489da8603294c0e4fe2760102952c3a046815ecddde4c21d24a634902e5707334816b0f7d577af577df9ce28443cdd12994c7fbd43e0400480caecbb9a31500a47c4b37ca9e28bb26be1c0b649f86e46085d2d1a26457cd52316a016058a912658d489d663a4c9c633c7cd613eeced5568655b8bc7b4c74e7d4ee2efd52edab17f010437fe0c2689ccaba4dff37e7b4ee72b25f1c48d15cec0b76782035e9cb4273a628c1b02974b458d6907affdb7f6de2e8d17142ee623a2df718b8b5f6a3516b2cc9edb5fd1a057d2c1877ef1518969607a3567cd2cc6bcd88c41791d63fa094934bb5f9f750d27fdd5e85b8c8b9484f196515250cd0c58f38d6fb255a989de4685912c817fe13c62337d1767dca8e2243d26f3070ad218f85df097e56113444f71dc7a57819d1c1196d77a0d706e0be2de8f2d27c03d02b47f850637012a39df042f8dcb75bd48fd5e3de38f06b48208bcc247e854b0b4ebdce2d804bb1cd81469bc61b6975caa23ec671aec13650b27d62efd3a2caa240c3bd7892906e825ee134f27cf85d24ffbe04312587cce3197ba9b68675d869b7f8cb76fd7ebf403788d96a1ef52b621ff51e5a65b38c1f10ad4c7679d81da853f7acbba902a3079039c9bc8b93de629a439e1cbe7cdf2f09b764a17b047493d47517e3a99bccb0320edac6bbc62ff75be0705cbdf8dda5abcdacd2250b9a8dad95a86969d477f9cd989d843f07ef5b0f2bdeaabfae737bc0c1aa85d5a735cff74f92d0d94313cc7f436e1412699f05bd5d4a8b2d8f70cab8409f5f18898efa8c54ee1554bc4d8eeab2104e26ee6d69b9151e9b6f07145f69468ee344bea0e70afa4b15db1e5b1d3103702aeb49ae1745234efe429a807631af61186a0d0e4eac20efe39f39bb3e5f9c0f3070a154a0c0e8584a0e948a275129873ea43ca399c3f5ba2c3cdd379eadf2d66eada7c0be1ec5cebcdadc52ec605b415f7f1fc9a6909f96319ac870862e7643f75ebbf18d5ee63796474eb9d437c3002b7b5c5bbda94a75da28bbc78517616e4b05ce69fa67b2d431c9fec7b8f6908b6a338a739f275efa94270349b93531c767910ce55ead2f363546c00ba5e841d94959bb2128c5e74cec48615587471f97d9aab338c97d39b34eac26fcf37f51e2c498a6814e68fd6e3a92b230170e9468ff6860c320494a28fae6df78fa96b01a7bab2bcf6b712296fd231efc2177795d547dbd8b6c5a677e871860d829ec52bc156473dd74b44e81bb131a17defc6bcbbd5ff2238654484fcda294111a37dc631532c39fc10cefa90ea612033657e301d3c732e67fe1d7f6725bd96c82d6652a757947b26d913e16c187a1097c98ea63319f8f9f74df6cbe252fe498a920bfea875b5a587cc3a004572c9fbf09ce1aaf751b9b23c8450fbeae5efcfae3f7998ecac153b95ebbd9607432fabc18f5b4c087e0e0f3724565e7183411a9897357c82c1a345a5c4be0b6ff8884d0ea4c842d579d6f1e7a9cfd13b20fdbdc1b07d317237667eae3f09970a3ea28f4d810b9490434b66df188fc1e5c8bd0edd0a9fa8cda61a1ed9790ce1f55c8d28ae673fd42be414e261227b906bc1827c010cdf01a0fad5f2310b795dcef4718c4701120a8a16e13958f4ec9406d1b388aaa142b0302bc3fdb23080bbdb6fee74dff85af969146804f0f2823b35d0dbd2a852513f577a052ccc50ecee901e13acd2a4a1a231338d0eea88e98f8fca019933098b2c5d51ff2ffd54795c8333d9315044a1a231338d0eea88e98f8fca019933098b2c5d51ff2ffd54795c8333d931504c2cbf052483a59fd89041c7ef28d6c8448a5cad758ca9fefa1f476fa4c952c6e92eff7ebd65e49858bb3c01400d2ab4b253c85d3ee99b23a504a0abf0d25ed1963a3a595cacc3315fe68f01d7a903c1a6c921fe252d5721ab8f89554209f18dd7381719b48a3c40b1fed6bfd9d0a2a0fb294af8264a6d1f33b8940b2eba2359abc94b448ebcf5ea7e4658ab170b544e9606d13afb4e6db38dab13f3a2b9aa12aa4f89b104abbc037fdab4ef7bea44e24f4c41993ec12aa6a91d0744a1290f3c1228ae77a1c92f5730d3eed47d32391e6bbc8719b8d485633b017eea51497fa494ceb93fae4fe6b1b25fd06f313694154c55ee339b4db4a1932bd23719e9d61e91dbd65464c9c72374a8ce4dc32d583f2906656d73cbeb56c6661b44eca814930060123ed0c2c8097ecc345629475fe77d9f12b7f5cf701462722bc74493eea672c83aadce562c40e3bbf7ffc4e29768e17748295d9ec7dd6c7022a00ca3926db3cf61fd16cf145bc3470a52d14ae02151b62bb31c589225e238aca86abe3bf1c09049e67e4ebfdc460d0a0a8afaf14db2cf59d378e4fd36193f31ccc1abd9fe97b4615a9eda08fafaf55e950260635cb363bed497489d4b57e76f2f97ff90afcf2bfd4e420a247261d04db4aa1e7e17fc560be73a8e04a9e7a15e06bc3eee6e9cd86328f620e2afa9e8094296a5b851affca5dbd8f04593916e26858c7f24d9821a5cb62c988c8408f437a757f56395c3d843c72b5b946955d94944c06fbab1ab0d755edf618c43e3243dae26621d2b4a5b3bd694c01e0908974b7b0d3162a0f219d107fa8183007b9aebbc551a4d3e6a672fe4e3e7be8a2d4073ff775a26418843c552dd16bcdf19f1cd361d0c48a15f1131f29b4bc685c70a2c2a17d26d7778de3407e76382f23659d3d168a29d86dc7198cc4b05db4cf5e55d76da7ed93e0915d474dc1d4f275c8db0908a24f7057123abfd465c14e3db9000daf009e4bf73c8131a9cea02e3af37bb2baed8a541eebee7c2d0d0fc3373298137aab2c248c0ee94596f2f01348440347aed6dee797c5447d23585d1b8ebe1f802391b174b51cbe559752d6cf6c511bd11a8ee6ae83b34bac31c1f481ce58479602e3ea86ba7b6cdd68ff4538b994ebd3d36dc5a68829c0de6e27df5b5fa43d0154f977f1d32bc6cb52d89e218e468459771b12970fce899dc2497789effa1cd575c52b4079064c97c596d2d92b421de978ac611346eb15067563b09de6b5295f77bdef97a75174f95d30d4af277185c083a78b250968d6d447cb65e92864bae44c4783ddd052ca62bf6e3ca7935eb0b19d5e128330cbe1f5d7d0f30d24a29dd8fdbc04685b8aa7b4d1329ea1ca5c20e442e076d98a8b8bc467e512d3f3f4b174c92b9d8087e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855dfd188e73bf832cc852248fba92289c1217bde98740c4b8e722b195e230d1abadfd188e73bf832cc852248fba92289c1217bde98740c4b8e722b195e230d1aba5f800dc47685e2f847e720e9b62b026143584cb5d971e0bfe37985de17551e76c1fea020fdaa1aa4b2afd2c4ca887cb9f8424a540de856f4c6f26a54fb742747cbfed8769d8c4914fb5b7e03462164f14d0535127d196a8c2070ee73fe384b850c5923c7f33687fa43608340b8270570d7981ab882cad19d6673243dd228c3b28f05f583d8aff2c179a748f24612d6e8c239de958a9f7c7770080b2afdcf1336021bdf907810785773d6d1987ce83d3399b43b97b3e4e2094b56953f7f25f6c2187c9d0db33836dcd4cca6bfeec9464512af2ed6d3defefa288920c9d1536678dc2b37c251341fdc2df55bf77055f44991fcd74780663125d28f248e333ce540170c7f307476dbf791a803e6bb78b07fe71c662c90d655605ccce23f5543292bce4677dfc5cdf92c9a51583f3cafa2c07750184f2cb2c662a45f26653eb9a7ed2b665ecd8110f631b641d9313349154db569db039f18bd6bba7e52d126dc47f74f79791f578609dab5bb35b0e7c12dcd1d5dfaaf3268df359fff6155e9e3181c49e2ec2abfa09d2c58fca9798228e637aa810304186b776e226a8a39a747799bcf4333d3602e8dcc36cc7d05e197d60aa1ca1315df945a4b8ebff86e78484cf59f673a5baea71cba333d9b9b8c4799c0a274f76a67385ee46ee1819504f8ad307d7f603bf8d86367d1b76c023c32d4f89144a385256304f64709817e0dc3c3aebe4f37760e49315ddd7ecc6fbbaf2fc1a8d78e2a2071e31b278775435216f8b092d8f3ef7c9f71396b43c6a7e3a5f032cba1fbeefcbd6e40a207be85cd7db541b3f6dd861834a7054265892dc3d45d4ad0e044252ffb0b886aa8d2e5338daf17819ff101807d114b966ea8f076b8505cf01efee6bf6b5b8f2e58d47c8d0bad98fbc5b10df1618baf74148a289331f9782ad8e3bb313e7a9bffb2f38145d1ce1deae1ede4c54d1e41474b19005ee461d9fd6b158105d96c51dc3c8f54fe711bc4f120ab8f6da82b28b319ad65eb1c9539178ab1e0dc9459d13d45ea142afda3b11a4734a260c452dadfb1bfd085f820ecaf6b3ad0ed961a0bb165992a1bbae8699a00bfd6f48a37309d41381ec4d3732dcb45f2178db96285bebf43c74b30de1f4dd284dca384eed8ce6c9cfe8218f0fc3c521039d6905693a7cd6570d2e1b97b1612534848b2a26bc7f8d24343f9beed89b34abe21ec6560acdc607956c823b1e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b85509640eac583b0c40b55303ac95add1f12ae7c15077f92df8f1839ccf474ae98f09640eac583b0c40b55303ac95add1f12ae7c15077f92df8f1839ccf474ae98fea0039b22669bcbf330d18e09ed5e320b2455aeb1f5cc5b6fc572ba00134e6e7159523b66fa00bef2e93a6dc48c3ce747b6c1cbb01e9e9066c223ce51d6b43afe63fd4284c3829a18cac2dbdab7273982198e8f49be60317242a1739962448b4faa157d66a55a4f635144ec0bb096d419d04e32e1942a709f11d02c260c42d14343d3485dd3b1c98e4abb9984a4570a63e6eb34edc8d43657fc92e1c7b32990a6badd0ed5af77e5937bfab912f02bf3b277a4105a03ebc6c415426fae5c5bd37a9acb00a4e5a4805c9e4a3c1aaac5eb53a1277e4ae74e0a683ba4a7406f492e47efb8b11de98a17607592ff673ad517ce61ee318430fe93c3d0067573353fca4a8bab94f27a82099106190512623bb1c65d04511c3dffe6801164aad21603042a8bab94f27a82099106190512623bb1c65d04511c3dffe6801164aad216030423e4284f748cfb1193d4693750219035da61ac1d97641087d1b38e31d84b047363e4284f748cfb1193d4693750219035da61ac1d97641087d1b38e31d84b04736c806199d3360e4f43ec7d4e66638386dd35e2fad66a3578eeb52e8f431c163749667a11495d25ce761c9a3b0ac4bd4b6e35b8be74f73dc33333a3a14523cf49c24803508dbf2bdda44bbd52c5b3ffc7b0a3b8f9c367128c4ef63bb73f5dd9b7f0746a7ffffc7badfdb0e6811fffa1d056f69809691ad43028e4376575d3cac2bcf30eb96008e41455e0d45ddec16f6ec70a91108d5f04960fb5892bb5ee675ba545478f8dd16b77eb301493cb483255a9c308a485e5ee67e387a242592bfe29b713d94a4f3d135d5ba1c7aab3a0c2a244386a9be3bda23673dd919d0a7d7a289c0649ee82d4d9bee6f725095109d0024f64f8093b5264b48a3b4af95d44915666e6c89c175748d1378d59e114f06465a0a873feb74ab2efbf3854acfe0fc190de0ee7cdab42bd32448195b29f629d862ac4bab053558236315b6c25cef45a18061c1bdcacef25e7140b7ac1322389cd4f6a62e3525f4c6e7f22e17db6f6e07a1d2b3ae881f76567f1999c69cee6b3a9dfee77fe5c126e6e539822db4d181d49f2309eeced99eb588765addd172e7528f711885e50f6783ef32677042c550c439474492c6d6e9ef3effd35d0cce0ea1aae603d99445174a25ed2cab5039887b79279495614e302bc65a2e71cfe97d7d3258db203290d5583a21e0e4ebae20a52fb6a2f4d17a1d628d47743cd6cb03eccbf6a307a4bb44155d097f180d340b2eb618608cdbec6cfed79ec5b1e0debf9e5f5d361837773524c509a5fbd0d6f0582bd2de2fac52adca095ef637537f8a156b2d59a0fb1b28dfbfd67efe4f6f4dece457e6cfc59c5b7e1b8f4c3bb97c683114e164430b27f0fb496252672fe979702ec317b271ccd2202e2d0f97395d035166b47ceac42f6971c160fc89a05012df4a4015e870ee1ab57da586ff772586aa6e508b90edbca6cbce2ab8f64f90b6f48dfe15d032fe65cf157e912eefde28b43de74888b400d20f0456a07527c00f511f196e3a936ef9cdb5b39558c291d24368956c692d6145ba7bfa49b1edc8f9d5d369d13e4f8302c4235a398fb0293b68fdd2a476fe491cc0b9c79aa2591d11142344cff1c5d39cc905f8cf52ed8993efdf8eff30684217afa59ea8902e9003c3135d64d96124a00c84213da0345f63341e2ea0de984ac42b72e573021398c7a7bb983b3121b863d974bfc6d99885fd69084d075f36c4799272eb971f8374613842f9195e6c5b37b59cfbd8f4895ebf332bb3811ef0f01c2c218a9436722e26b9bc88171b59421571389055e808138ae6d07795e3e2b3d24c940d3b27bb248d87a1eb9a25868f3f92ea16ceb9ff9c0a76a0a8814ee0a98b3c9fba1254cde2ef2ca9683618a8d8a827f543d5a0452c2244ce0c0b91d7f3c791a5f930068411504c0adb7bf1e7aaee9a1b0c0168022d9618b2405a78c17345956110cf794ea0dd9a6c449f5df46c029027d619b516499e9899494e13ff2d33581301627d8060c0fb8c3efee60e64bcde1b83b40cfe69103dd5fda9d122c5e5c81226bae9d05a1fa8f948bfccf3d544ac8853dba6a3649d22b40d050ec448bdd6f18050adba1f9bd78b58f8c90c3bce3d85ef47e722b27b8593fe0b329fcdbd55bda1ab70a88b4dbb1c5c001cac8556de3a76b1e05df1c20e75c678859a64b98163a65739963ba0f7d7a13f5af3fcacc97324e9e4e441bf59e440ef5a82c2e38e398e6da6bf4fd7e52d705281aa5f4d16d7ff40e82fab1fe1bf9cb92f1fe712ae449eab398ae21904e873f669842d94014a90bc6f2c33b2ad3ec3c5eda34a729859a1cf769e66049979ffa506ce5d0ac850cb2fb7b1804cf9164e04dd3199e11728de82706aeb62fb2854234aef85a5e670b3426d3021f5d465795251ac870536eedef031e183be4ae40001b93fc83538bd9fae86eb5ce8f3dde24f2b8faf5dd9d6dc773bbcd3cae32e0327a5cb3d841cbdf397a76e34e53b0cd08bf5f39da6cbc3c58a8e486552fa4acf10c9519d4d48debe0932132f8ccb1a8ddf01368c162c9222c17fbac7e64b24b1560c9f36555cd4e0bdba27be0c9695c9ebb7b25c07f106cddf4a8f7653818f61039c58405c49a3c28f15bb6aafa6712063b2c59d9943d9744abb81e1bbe12061039c58405c49a3c28f15bb6aafa6712063b2c59d9943d9744abb81e1bbe120f34cf5e0701b0d22306800fc387837ef983879bcfac3baac8bc21574037a7616f1e1ad50507253e3d0ab1b122cfc2cc57e9d804933f91b13882d0f0d7ef35437b75a8a19dcde9d5ddf1bf233e001d4df491895f2774ce04975c383abfec333b50cac68f1ec55345468f9bdc00933e80dd504e9a5cef59e841ac8c19c5b438db30c27da93c63c6feb80764fc65a91e19b31b33ac409b4a6f2f69b3ba2a027da5aa2570ca33884c203d1fa7aaeb3fca95fb841516da9c98652b19477462039c502580ad063222a982c88ec907ff0a75eaf1103a9180efab229cb175f5ed0382356048a6f7bb40914810d223e0ed81873249c99a8311ce084240504989818e8f43adb0f7ee98310a5943c432b5c7bcf28f12188260bffa617d932021e9f5fffab76453d945d7efcff574ac6a7738872987328d45b8373c1e2b08d0083ba229048e66e8766a7788c0cd151704a3763c25fffe95098578ca0ecf9cf7873c75418b6a803d83e9d310fa8904c8e0cb07d11320709e35c068a30afba8f47945e9cbcc7dba47705a8070a62716ee9ac881bb02c0a0962a276ad419db85d11e55f7d02671f6b4b3b48f257e788bc716e5af5c848032c33039f58464d4dd7b5c122fc0c944c904bf683795a95fd6df70aed6076091ddf9f2960f13679de8f2f9fe8f1a433fe904bf683795a95fd6df70aed6076091ddf9f2960f13679de8f2f9fe8f1a433fe7441922dc74b4929a7f4cae2e75e3f571f6524ead7ad17c0d9a73ca4bd14b0097441922dc74b4929a7f4cae2e75e3f571f6524ead7ad17c0d9a73ca4bd14b0094d57e2bbef9d50088cea620a8146d126d3ef7539183c0f1d3e15c8251223fa9c944030eaab81084c34f62da9e26a5152a16a3871153db63063ca8a00bd8659fd215d210781ae7260399ed7a12aa893e40af8225d7392654f3ee06baedbd348de129e4685b90d3b8fde62d15a20a5d20257bf138cedb8c8404663fc91cc4f6b630b6d27fe74fba1bad8a0b2a2dc5d3771ce3109fb80f304b093b687dff8358e8858a64643d67c91d3748a701fb26944d20de5b6db919d1d4a6d718cfb4c64c48660653d10cba1444c5b68994d6723e8f76cf3566fdbb4bd83a02256ec4fb0acef873f99617192a02c414d4d1a44277f5b1eb34e74d44aacf80394e1cc10f5e12b7a455cdf84b0b80cc1d7ea7997f32c5877e0c5b13fb125d27270f8f8308c2610cc271227ae9c7ad5f40e5e9a7c6bf0f15a5268fee59e5db16d86a21ed975eabb507c87ef9d23571b19988b74113c3e319b59f4194e679c5c47fd18fa4059a18c70646249688b26f03ac1b71230590c7b9460b2014aeff419afa5de8fd3bff77db8f3abd5bfdf927cb1eade5ce89643231798b32a3b589378f2c7ee7957ca509f778cd3267695e37580e9a947ec4e4052d1e2f24799c8fe1e31a135a5741865b9615ebb4ca5be261dad9c8466a634b95f9dcbb26757e133e67447b93453d82dc8a6647fe3e394dde5969c33455c1c16d24fea05db89b992e2cff264d16ea2928689623dbfba68a82c585e6e9c97b660d613ce35f85e8dd899242d67d332669b42d9e702907c44d0a2ac2d5c52e3cabea1df9c8176b244c7710aeb592be463759daf5e3921061f46d1bb980283db68528034a08a07a3afc0b5929376398f0acf38aefb9038c7c8f5320f5ec7ac2b2653677bf6acfee1f72746604a4bd53b05b5b9d68a76a719f6900f5e894f5da8eb088281268803bebc31fa256167368fdcdf243a3362fef6c93f56561d42ed3ba9563a60b352677818cdba1eb564e09b9ee7aeeecb4c6f39e33bb6f9c457ff609480ed4d60151097b8dc5c21eb66c7e42674fdf02d90e21c9db217ffd845ea024a0825c5016792eae0b64552647113023b845d126ae6e36d9d942305a3333a0c6c11be12e25215170dd5131e23f1cd0ddb1635da05559b4e76f14b8e5f77ac3f7c2744eea216d015c82f39c795b78745f9e402bbee6915ff65045e7ee373b632693f1748edaf158f82017ca7394cafa6482c180b8427a6f30b9895a91b80378c3f8c0fa3386863be701833e7c6188a475da262592ae89f857a7219eb68a2060e6d144e96946988f63c801775fcf0e71f8b5013958aae4b9d02201d89b00041ad7fdf554463d130a7c14985ab6a951d3e003e1a292985177097b88098921531cc5a22be09e3b30509e857d7c5ac41daf5eb0b85012ca17dc6d5824ef9bb29ea50aaa1e3559c4e930fe21f53fd72aad599859ddeac3f919b44530188a2284a3600eeb2517ea80d64fd4d34677c9c5629abe4fe83e02aa267d4fc80b96364e81e9ca24e842d5d9f26018133f4eb87a38907dcd7b3fe9898af66cb52fead3cc31ef1aa5c5c09a5eff10c18f14dc510a2a87a259b61e70b0760dc110b6871e821995cc4d1bac15090e8f0cf21e15f9f45271b3951231d757d0cc785ac07e8b6be34c569595817dec306bc930fad6456c6f3acc6ce87173e9c043881ec4c4103b4ef1d9429982fdf2fb77ecbf7b676c42479e1f64669cff823aed8d37021c6441131b77096dd7492d6d24bd3ccea051bc4ea66d43e66c81aa062b08527fa8b5d7d4561735d334b16fd189a8dd16fac8b115fcfa04f66c38d889cbbf44a2d3ef9b1e0d3d84e77762103a1ab6ede74613fe672123137edbe4a036e9bd5f155265b9d9457fadbc813738339b1f40083456de2473e3712f3b9cce9b557361b6db16ee655da43f49ab51e3ddc7418dd254dc2335879cb308140235194a98084c57a4bf28cd25a0aa1a4b14264bf991aa044c6254c345e90d7a803287f7597f9ce064fd1d5c06414d2d09a71b5b4ccf95396ea952d40825e2b70eaf9a0a2ff5b9ffa94f496083382db1168ce17553f02ad5c22ae2916696be9413fa2fa86243e7dc1abb3e119ec8583fc50bb0cbf23866ec1e60640f03e7d5fab1b0afa03f11a71dacb6ae2b3659e013c153bf39621980287ab2143c86ba5372206fc8cad988ac3121ad821bfd418800fae44a6c60122cb986ed4afa050fb921e4bcb7c832a4099639d7716f34fe4ceebd6e619979e6f8fdd2d00ba5152e45023c1853b4eb3755094aa5cb9fcab3201552e05d0683addef155b562b50d41f9ff67db2a309991059d57cdde5e86a78b83bb239068b158cda5b98a554d162ec3bcd47f22e3471f369b7c2286b6881592ac9b6c74d5348fb256525711cfd602ec2b3e4e8e5eddd363f3b8d557e1bf5b4e2c2a45004992b6be3ff57f84ddf0629f265a5b84ca8cc8807bf35836197f34d181472f9d4d2f486aa76790b9d7949cf43cc175bbf852669e897e5c4713319b621fc500098d3277b411b2c15adde40ce9f09ff42963152334c108cac777f36af10bcfecb9b36bc330f3e8308568f28a4b4ce6e5e9a6a9f7f6185e8ff8b4580cd247f74286e20f5b1575d3fd26af178c78cf27f3c72d061c88a7d9752df3d581836bae748bc683241cc3773eeb18534e7d380bc8dc731cfa7f9216e2f1286abbee94d42b6a32b684a4fe9e5072b7445f2a0ac498285e2bed326e4c288a12783bc3da223c4a280625a016657de3ce71d3dcb78e23711a50769fed2328fce2f1cedaef14b9173ae63636e2214476b21d2c5cac5afa95c4c28a72db0cdee5646ed0d3300ace6a4f1849fe7b8020061042859367b5b5e3b481a65545c2cac9583e82d4f359d2123f1e5c31830b6d88c69db5440dcf2deb2221362efb3a07af74ad7518e876f1900d172025c453accf6a3a6bd0f75d7988280e07de84e15932b55a0ff90d5c686ec61c98c33d66d23babf83ef5cbfb57fe3cb1b64b440f19c3d4cd3c1231106e853577bd60eaeeba09ceff1308746cae9b2d378104c95a82d4d84c6e46cb309302609ee86456efce11a0f1e4b1e7cc1084724bcb8e33b619369472b37911d308595cfb96b8e1ede059e2c4f8f6c7a6b408f9b1f9f68e528f31577b52bdd766bb5f8091eccb2e021954e648ce8853555c2b411891637f169647f6f04a64d90c8d72dfc3b9f62e54fc8610e7a0d1566a41028242c506138d459165a742e724895b61de18a69cc49251bd07baa50ea175beb3d3660f817175009c55ff846c037f63def17925e7fda3a0926dbec485069472f30ca3ced8f70dfa9d9a2d8d32efe69f4be7a6bc455d447bb30def7777908f4a9cdbe3cc5c23b5e38ec7097cd82c5d7c88737108043bb5b54f4bae62c3eb53504a460e39df10a73beab81c5b7295bdc824958ca0c936299de6cf9badf1a7dcb2e017c61eb3e3f87394c112c32d4fef54b80f887b1b2885fff83c7b4fbf8f8280812af38be20976b0dfd63277e59902d443678bc162c0d4e58210bb1a9b6e8e9cadc787f10b4835a617d9b109194d207d840cc67413bc58af325b78b19e3f2a940f1b6e520b2153657c6ba3cb85b4b3dbc1defeb8b1aacf5c09adb7dc9e25b29ed95fe0fc37480a70aea966b92eb88cbe53337f5a503210bcdfe7643b8f21b564bdff904813cb6aa44386ce887fcbfb7ebe899529039cc3468184d9eb0bf473b4381b354d136aba06faad714ce9191f9d5f6f57af80c2fed7b1318ccd650e0b5a1a67f0f414d133139b8f7e639174366d6c9c110fcb3b44fcf2b6bbea264e425d4f83e3e865a571fbdb9133f869dbf710416535f3e9e711b57a3923e2342759affe455faddc12d6115651c4466a1b9f2eb1375d3cb6a3dceafb48f3763c1e27a54fdc6e9942ef8896e4f7f11210d0a9f4f13a7132fe58bbba562c1a29098b466990b47979802a9a228112c688e9f293591b3505b03520428ba966571a2113be6cc75c01b78677d57ec926e08682f6f546081ff92dee79aaab2647a69c46bf18a442a8324e649177eff46b7a6e917312da06469b9e24b745215e9c30ebda8f95b41a65c96a3d0b374939dc21a9ac6d3ac09866187ca1f62b654fb062bc7a832c8330e2a69b87d8242df649eb61eb17896f951c25c25698462c45f2a65bcfb2f53c42e20b532647eca235e563afa87e593ada4443f1e9189b22440ac318d67e87b24f29d7693ab0a80ce8a81a3dcbd16e43ea4111c178c1cea520e1f91d9c4472db90e62680c1ca93395e2f82d3f36812d3577b561c4e9e06f3acca47458e274a69359fe9f58b917f72ace856cb3fe9d78bf4b717f37523ed597105760bfc72f234efdb175d1df4ea56ccfe43e505c8ec27f3c20fdc62add4f85a314eb22dc0721acc5c9573ec5ddc453659f90a7bb0bc2d4da579778262276d2588151de7b7da6743750878f43448146cd5e9d46f5c3a46422ea0d11ed275a772c90a2bd4439787120622183116c813a30a143e4efbb74a61ce886b7e731e7bfe59d5b8b503639bb4cb9fad93ae74efff3637190e8a9745e1621f7db2f67dda35430636c0e5f34990bc37038e2c4421c3e0c493435d4ca6b3e25d4028cbdce73810ba99fd8bef81d80aec3ba0c2c8485c76917151597635b1b0d074866d09aad2446431d860e6796b4a26ae6193e04073f62ac647f58073a3eb703e3712ee7308e5821c17915f5f22435a0db5c37b192e92e2ce939160e4f55ee0a086a5a9b4b12119239154dc44980eb9c1784371493ef255cb114ccf328bde3d5888556119dafc0c0fb8b51fea00c916235fc4f4038cc7ec63217c0316e8d87e0fa6c7dfbf444fbd596a1648ac123e7a2cdc38446358e1fa444683325fb0971c97b22b95b3950a4610c1547dda2d3becf42addd832d42267d081e2a16d993ab1ba5658ae92560425e7fe517be2a7d9008be60d7ab914b44703cc343ef922f5091b78a1f0c1aedfaf9a73c24faa3264abc8eb02dbee5d2b1868a59a38f0131aac94912c40a3656c86c4882b20809afaff210d36bad862f44f6f9511c4fd5ee2b3ac9682ab05b75ce1d1b1d447b7db4d87e84d5bb48b31f4171ab6b6e96829e458e17c8c1b3a9f6a12b90e460f7064e8896e8631a05fdf02225c8a24ff9c065292344e92d39aeecd2732da3953efeaec5c5e09c7664243fe1136fbbacf6f125be3bec2168e6749ac6fa7fc30bb08380756158e95f6fcf25962cc2ec7feb452d9f40203f087827045f4eea61a1ae1c26dd12ee8e3e863f3c848cab1a322236644ae4dce1bca0ae4b26c2ea503db568139c1abeb05d24aaccc8593af922e54e754898fff97c755c1798c207b931995b332517a1c075c521a636f908754704b466917cfd1d99f2068fe3af9baedac659cfb84335619a1c637451afbaae1a02625edbf8269c96612dbff514d98a91b8b09ff7ad0fb4ba63cce9c63570fa899ca36bfc30e73d6fc5234881c36a21e707fd66ff4357cafda5b590aff08ec92083685901be1092041ce443bdb1e8e07fb57a1164803c2c529b70fbe3f605c2f32e8fe049368c4219b590b1da4f8978feaa33721fa477924a603fe8c0c95de5be55311a3ddf3e3c7b74be9a3f97ccd1135f43a56ccb2d179fbd6bf8b9a88f5ec10dd1b681e0310fe4a07c43e198c0d5f58986507e1ca0757839341ec9fbe4c181e6fd47704c9a4c047ef724102a2008dbed39c53ab0809c52218eee7f41655610bb3fdeb19b7bce2de079573f9643c864a8e9bb5b73d50ec6b53a354834b20e331f49ff6b9a19f3fea83c3e9f487064963f421cbbe76bb1d577f0830818f2a336524e9fb04d975dcf5fe00ea7a217736ff07c66c1bcbc86cd9327a8eb7e2d227ea0fd46781e1953fb1ccce45cfde0a3616291921d6dde8add17cc3b443524f8a7317abc299025d7eff0324d70e6a121616291921d6dde8add17cc3b443524f8a7317abc299025d7eff0324d70e6a121686a5feb3de5c6bf30b4a3bd8acd5ca0d821f9ffd4039d95fa92fb9b433760dc69ea2cc56548816ed861a288f5778ae2b800298075b8034562b46c751ea1509c8418d734f90029fea30be8abc15c3be3a80eaa99c52d91eec8a463ea77a51dc6c11a506a846d86cd87afefc7708e8d798658b44afd66279c3cd48440b96956246a0fdba3b58935560b0f53e0aa95b4dcd888b48921e2e9de47583c9e54723ac3993217f5a62a944598c207ad9c8aa3e0cb34a3c1e93aeb977df5eacf05e0c1aa3d8c224c73a687450c1651078317df0296cb3cabf408c7b3ecfbf40c5e2efdf41a98b02ac12e786d29d36c928908f6c05baa31adee5610826e6fe023911330d22c99e62d38bbaa7bb2f8b9124bade5062082b273a3196b16febe974b06f62360fff540bce2feb3f6c983083c77eb2e6567df311dcf7eab95d6991d5f8dbf745b886551645c58cc7656d1bfa4b2d6d0b8ddba525358dfeb22644d6d4cd279d7b0c55a7f93a28ccf5b899241ea5bf13313f424f20f3e2e90e7a963b605f744e962014e14ceb321d5065a4941994aaf59062622417a26413d899e431e9335e5403feabf6e43d43d494c784d5436236a670dad709b28d883af6092399db32130ab7d19f2663bd78809f0e3db4df22d8a0355be899d1e21b4039afcad534224645c42905233e7559f736cdc54d74c82ddd83cea45dc3fb91b9b16ef96456e468e815b1ae93403f60948f962c48496beb0da5f1e8ade2fcce86d05a01ea7af404c70ddaeeea570de18e1b783315ec106d64651a6088e2ebfcb1c771c445b2b0df98a4997b0bfbab812c477953cf3df8ba7e241f1366e64bbbada3ab61f0162cdbd1ce332492af9520a77392635a0bf8817d7200436f549f3c3f1f8cc8e171f92e3150d8d20cce3cda9def08a2abcd1b642955a4c6d9606ddd3178ee1c5e507a0221f288d20cce3cda9def08a2abcd1b642955a4c6d9606ddd3178ee1c5e507a0221f2895f405125c73c276232a99e472a0936cfa39ec6b60b0d58ded4bd30ec622a8b695f405125c73c276232a99e472a0936cfa39ec6b60b0d58ded4bd30ec622a8b62964f579240595b0c3a26f2562b7803cbf13f57d9b4d7d2576717b697e111bafefca0e18362d0d8aa46229f4bc973ce8c5dbb75f7e1c1549bb9d8ad048125ff0b1223ebedee86b2d057012d9a5194d66d33132746db9b016a47ddcf4cc71ccb5cff93aad2df16ff8711bbfe248770eb601a07e17d1e2a469c3d32f60246254269c87be9829303e6fd1a83256cdbe901c0fdd2642d3721c635d0da0adcefe3688ce2ae5e9fd28850a448b0a5a82d4ffce26af9c541e0a660da4e47e9c5b9dfa635fc93c359da714b85d37fe4fac5da79aec5822ad8521ddfbc482d8c9357f194455755fc93732636ea61d851409292f930235dde493f2c67acde1bbfdb99136060ebcd68c00a34c179723102529db72778d7d45f05ae78f7917630c83354aebd671e2241d2f32c53752fb853d5e99faa12b7018346645e517d3993ab39eb40061dde6fe9e0401ecc94c6c5acc3de96cfab322f93e628886446ba46545237edcf1d1049bff0c2969e27f18923dae86aa8c1695dee784c623c3534eb7607978e6f6533a20b60d79cb98307e004affdce4cbc97edeb2cc589a9d7feb74f3a0149115a9ff550453c1ddef8de1b07ffdd3bbec916cf81d19899f08f192f4e6819003706ad58c7309e4f39222a367ebee906201b6e80f799de9494c1577239c19e91f47d7182736bd4bf8d3dcd9157af4b66f7efc4e80b20f3ed192ed5f79c0c804115cd9cfae88139ac4761ae58f2dfe0b21bdb1dbaf21f23caf82ec9a31b08f2588e2e8da83a19a8f1a59cd8add969aa8acfe67f4b945e02eae1556087c96ba5f5f5fba1597052bef912962e886c7adaf4cccfb004c86ad43eaebd6fd8a1ae6b995034f1ceb74b9f6f1aa9217f15fe5e32ca406b931c7550ddf14b413f334d42b1ceaccd299b2aae0fec07e64ccac176d099c7434175fc303bd92827a4707c0a01b7747d8a20ada6b676cd4a26eb3b9b18e14da0279e3ece498ecdc57ada63ab6e82f19685e2a602e2874789fa5d57c9b79046597a8c4b1d8cc4b2b969c8427be2816ea8b2278f0ad39206ba53e5a10b39be5b28b162dbf1152d1011c9e958f1e8508be0ed484ff89bef6d68ce383de76d015d219c27bef057365dc578886021b7399737ed3b98cfe4fc29c6d1bed744421f05c143fe52bd5f726ef6ee9e1dc03a0e28207656d3c01aff36b63da1623b821f253332eaec971c878840841f9a1db2d7f260ef28c159b83b78685f8534f776a906a2c1a5d0aefcfbdba68c3c85a2f643cd7aac7b6917d25d35ea812871bce06cda85f4f64d53e9409be9ed2dad5e220dd04a91509dbc3d7134f81be13080e5902e73f0b613743c78c34a6c6f3b1d846aa58d9486db1162f8a2513330b2964715b4a8b56fd9f4bbf8ff47c6d4dec7679ed7b99fd75cf73ae32c1dcce4aa4c7c7e009cf4fd227366e20b59a11658bf0d871121ec736b51eb9b69aa58a03b57de379fbcb6b33f8663fee47ca2ea1aaae65a1e2a90d83552018424b73f2811abb7027368e286231937d4a7110c2109f5d418bd83e78fcc169a8e741ff098d7cb5c19d8e951e86adf23cc1ebdccf041bb3c34b6cbcc85a8fc3c3cc95f2da36303b363fe88b8bd7331897938581f3d84e2a2f26a46c41cde0ee77b74ab394a266067284cd6637b5a6b3725cf73a1bfaf0f02628a46c41cde0ee77b74ab394a266067284cd6637b5a6b3725cf73a1bfaf0f026281f07419a5828753b7ff5052b726583cc07bb8d498590b4fbf497975b6df1c0c0d8bb02d01a469b37976eb854a60e9f120a27b6ac8c24b3789f9cc7ad174da862aeafdad384f44fb327d24cfc9150f75325be019a0410dbfcfa9176ad1533ff043af1ab9253e9d44c53e958eea0b9e0c83234bc378b9446c1ca4ae2a7163ef9e4a7c4d2d92a42fa0d65bbb565e1dd69be72f2acac933649a9dcdfa017cfc6a39f30e03f1855358605a9d4aea37ec81b1622610f13fc334b68138babd6a33e8ea791ae34a7cde1f22071f676a3e2a5dd7ae6a1020a3fe4b0401ed1e2539e65ea409a67cebfb3974472ff6c0fb928a5c501cf4da7ba792404aea1aca6c3f2057f898702cd37a237f1d755f0457a4ff28aa191de6a4542ff69231f5023d3703b536d89b86c4f0df678c2b6933cf4e21b2483750cc9f7568161a3a0b0f92b39eac455dfa90fb328dc7461d5c85ad2f546bf0d1a1a11f8912a2cf57afdf5d2cf380b2a5cefe3ccdb0bf3819e38cd0d650d5ec3eb1b96a4eeaae0d5b3e4459ce27875db6311ef37528b61754eb275e0f712a41265a133c6ecaa8c64f9ba5093f1973a9b768d2c40772e05bbaa5ce493006260eacdaf0e0d1a441e902ff846d38a509235c9ca1638b262679b0df7a996afb54a503f1e32e8228897eb7b623dbb2e73850842aa061f45428c0628243bfc37db851188952b6e04728407c2809d53c1f0f74a125048505c129332fa40bdca98a4debff55d715fc72aa2742c8bcc444a83029a125048505c129332fa40bdca98a4debff55d715fc72aa2742c8bcc444a83029a8b9011e7f19bf931605555c4fe986ef031185609128811986f161605ccf024dd4a0e701e4733e6b9cb23df3f456a2ba77906537ec21abdece33c9d7e3400d5f2d230be186178e2b64fba608004a48bf485a9cedff60877a1fa5398d3f78ac25dce2399c9fb805114fefe015e41895458374a76483962812a85d99be5f8c6658ff5d786514ec8b4f7f826b40825e2ba0f02e0dca518942432bab3cef8062f46f287799d61ec08fcec7b8e29758fcb290c34462e73799cafd75c8ac0a79e5a74687e49d2430c4376ef19298a35dfe9f9256a0c7db8a4da35478218ad9fa8fa91a0131cbfeea739e96fc02067b287a6331f6c8889f6f4d7dbf654670fe33c4032ba1affff5ec2d9c654fea77a3a8f037ed6624a3f40861295dddf23a6a3c3e9847605a28b9503b4e7d7f9adb9f0af6e01731e27855d35acb000c18aca3a8c09673e941a9b485129ab4880321373111ab336957a069b70645b3282a7c56302ec154cee01cbd571cebd8f83c96fb24f604c6217b60714d5d4418fc10431f3b84940f18061436e0088601020f6957b7f6c1c1cede0cd14a63739e679f6afb39977c0ad02dd708e79b89f8709b26398d51cb84c55597526c3eb5ac53aba1dd4d410737c6dc13a3e494e92718e09d58bb3d35d0554d6ca0911ceb163c2b72d9514dd5e264fbf63dc3c385784bbd6b846179641f8cee0ab1104202bc98230dbb4f127705f650f0d52720bab2758af85c9c43a5cdf16ef07f8260cd9bc70da0b2e768e3dbecffdc9caf5cf60705d7775e44df8bdb6bce6a3bad3978f1ca8e8d5da824c1bfc819f2f5d07645d758d1f63d3c4b003658a4b33d02d3a1e3bee0d465c6135204b4d6f0755a5d87dcdcf1ccb25440be6ab7ef44b5fe07c372a9af542ea75b439df99acd3b3bca143de969eab777298d0db2cf8a57c9575d45aca5cbc2ac0eb3363b04d4fa8c1f0d298c5709326129c99dc332347f1e3e4692061e15f379eb1a8dcdac07fafff0f170074b91b893a536b8ec2b4261ad2320adbcd4f170ab8f4af1fdac07fafff0f170074b91b893a536b8ec2b4261ad2320adbcd4f170ab8f4af1f4a053b18a08b5a7b68cf83e868de2883ce8ace6ca9a9f1744d1dce748ed3bf82fb2c1c46ba5ecfa7791873a75165e8b19457ca0d63d05ad52c55fecbe58bd57b9b255924b9a9e89252b424b351e50b0ba80a39d3a3137d0f87a8f4a7de591a6d50ec31bc35af5c92a47e11da54e10e4ca87a1b02b7dfa7192480d3d625671a27244fed0545ff9b2f66a6028a99f4b2e920939f41055f636e91d98f2f3a35dc0948c45b70a3aab0e8a0b10ad50399327a17bd550c9c6e6a0e930776f80a6c2c10d5942e24164dd0223230ebfefef807f41daec4d88657e266a70fc114f5cd0709863304d308e7243f4bf69778c541e33d4364b68f0fe13dbcef692db4850bbf18d743c8c30d97d7a27df3b8cd86ad28145fd1ff10636f738b56fd4d4655b42faf909f83cdf3c0819413dceb1563436e4dfb4f4fc38d58214a606a4957640df720061357bb2b7d086465c059ba9a503db25c1cc4d5defbe2317ead0ba302b686d4c4f4214595aec5b6f7acbb15b9c03cc4ad8378fa770b5c7ab0cd42aa41ffbae1485714bdf5b686e52bfbfd6683805bb3a27c4db0cf275e417a838fe6b492c63012783e9d2131aefb6fac84e450b785b90753586523df4242ead9e770baf3097b3466570221cec8261def50cfff9282b02a3dfa8f6b5a4993cf753a917cde8ae6701b9cb09668fa6e6943fe53846250eaadacad5011da89272e6cf34853554e2029b4a14a754f2e28c25b31795dbac3249679d9cbb2b9dfe8fab4c1468a3c5442c6405af1e76e31eb0f88ef82016ef14e7fe232ded100f481d71dfa0a5ef5a7399749d3a967747ec464107931519d7e6250760690e0542091f5c664691bb121277edee8fb9823b18b8f6bf8e3b1ebef806be6eb6efe9d10a45b39e48960898d054fa592d466e5b4b60cd6bbd5ad94826e624956dd7404b38847af5e97486574cd7a969aa8198e345e19d9c25a94965db61246fe176f4c50f732169a575275b5c582fa325e95bc0ba6dbd0a1459f385573e718a0881d711d66dee65b6e7f23a4c5ce3048249972649f0f351eea140d3ad8026bfc7f80fbb9e41a886a661ca8ef607d1111daf19aef26b5e14269f9a18e2c1e8ed8f299a8759ef9e03b56f726270eb7e71f282a04f526124e8c9d8b37704332f03422e8833ea0e5d77cfcf45f216b08b86cceb4847ed87fd3cbb95dcf6cda8abae2bd2e84de1fa6a9a445f9cad494041799a4fcb9828ef35bffd84a0983974b819451c0d90a460948aa59eaba2f1bd732423cb7040f7d31243e00ac31d01d9c48ed01c7af3d977c7292d827aaae6191e126066d0e652e0777971304b0eeab851adaf91dcaaf0b6089347228acb943841585e7ec81dcfbb5ab740ff24382745d2d6238d39aa0d66189708f9cba3c8cc30c13f9d9307a254296acabd649a78e3a797070c250954899b3c60b1c99cb570dca383bce42fa2333b3ff3615a05c42e163fc7b81c23d71024d03401d45602956c6dc54d78cd26657a217818f689f0d2522da4cbc66e9ff1248e1c291bdcacefa2cd20f4f7ca6f8ee6eef1cf70fdf29e4d529da740ddf29b135095ec862f23ffe3abdc3f1a33f4850ba40c286e7dd919f63d753b5839774e2b4d60736e874235739aa29a1e032d078b9744da8fc63c373a19d43f5048ffa812c8b7e60ab45fc5847f4803495377fa85b045c1e95350b0e43d7e4174bcabe74c7cfbe2110c1356a5600dcf32415479fa509115912ce49f44b88562835148e0bfef4ab9e18900eead045ad2498e696f2cd270f8194e8880021fd58e16686c73fedddbeb6b7459ca9c3d5f5b5cb78aa20a2d4520251aa0a339958494458d58ce41c1d7d5cbd1517d3bcc875ff179a33d2cf3d664823b2c1e0642cd9ca3c72caf2c5dd491707965075d6af87488b5e4042d7974d60b76f51d3b0232681ede0108db262685c3b7519b0e4e6e045011f61255e3f4f137508f8547bfdb6c141cdceaff94c3aa1ea76f10080eefbcc4ebcdd805f8facaf157e75e31fbdbe543592dd05a80bbfb07cd8edead760d4069e9cbb8f28b73dbc7ece331006a0587c72686fae85eaf7246c5cec3da2e2dcba0b81a9149504064af71923e13cc29cd71deb466bd4a71a95bd8abaa8e96d67eda27172c8e2339d8ca006ca9430d5959d20930593d0d78727408727b51c81b748c5f68049a6d19a6fe7e7905d254fb9fc2001c18d7f63cc7bf236702d82f2072d9d59a609bc1b5613d0d68d30544ed4d62c899e8b3c5bcdf797fb2b041b36ca8a188370ebf1a78a32b53c1c4d6969e5eaa0e6129543ba782b4a229338f42cf80bb127b5b77a62698111d385a0671a308dc5f8945301e8f9db25f8a252ad906dda8ec430d6b9091d2de70657e58c7874bccfe2a9ae3797e0036ec60b981b6149b24b4d196cbe81abeed28b3882bdd5237bd5f64a3926cd9fc9a21ef7eee5d95c978af0bff7ee814383251250f404ff71f0550c61c170b74f7d18eceaceab7c79029161188ecf41a64fd6a583cb78bb5fbd72d77cd234ee2a5464695b4d422e03c50ae28b52e7810d256344cbd72e218bf426e6fbefecc90bb092482d7c9ff2bb79ad252189dc041d07eed476e23787ef70851958d2d60257c883d502ca51f2decfe89e635870861a4c99d91af9870098eb12b7ecba1e6b39296961891163c826b08d7bb5dd255e907e22b0328026a17d8d90123d0c384761a4d8f3e865e14e2964582287b49459269c4a63939a1a59e7df89ce5d911c91730e46361de20aec1238c76b2c93ca52e772478c02a94bc48c2236c14ef0e92c6a86236bcad2055d56da7c5100092a011f6603e4e92a5f9784e11c29b973758b416833098a244f347aae9417ea74c67ce10babd09190d8bd9ee92b5d6c5c8aec368bc20b43b0ec1471b8f708b4939543b224896bb8f01ae1102a4fa50c087881ee5b8e786ab0ec1471b8f708b4939543b224896bb8f01ae1102a4fa50c087881ee5b8e786aa46387e8bd57df4731729c16b6bd8c273bd8e480b63a1cb2c7e996668812cc435831f218d4b6b411761cacf8171ac4fb28e02fb0abe2659110dc78060856a192bf7577c420e7aa29ae7f32da8ebe935afcec3feeab02a79d71e4cc264c1e320ab81f9dac80c4aea11918abf95f8e9a36b728210a7f4e474a97b1fd1140412b439d1c6b6b5ebac99c5aff19934b086137707ed445d7e20359f30d9ed677cd0ceea6e8cce7d24b08c8f42ab9600e4318e49cdaf9e0c941c3e38073f46e1418f8df90b442122ee0a1fc5074bb77b4a466bc8642ce5d80585227c2e37c8f6b1a0a44046e497e16b23c03327a53f1eabe474f831cba2d37464e027b8bcb0745bb56989d08330a6c3a9289b7de7d33276bcdf90310fca0ec59d73378e2b4fa65df0b48dfa541c4afd086327dbce23e71ee6b9fd25be3c14236c7fa6c002c909adf697ec2cda8452a0b0fa5856478aa0ec6d5daa1279a6857eee14e4b8162c77c70c108eccbd68b040b714c39afe5af601f38005a39d217927b1e5945e91daa79078cba7c48fdcac13519a2de04ee50376a3d8931fc29e2083f619affe3aa1bdf63115c422b140f157f23250d351b5736fe09d62fed3265d2147d1a4cc87eb3162912112c76b3b811bd5c083baae931f918266a3188f8f5d1357a83c90756ed105b7e3baaa97b4a2e8fffc20de308a8a75956969dc38ab8e629a5f64e100f7601c380946ec713bb353adacabb760a2ef51d1476a9966851c7590a733442a614df41dcc78ea74df66b253b0b984eb94855db24f03345a44f180ea2a5dd58654784be2c3f8ea74df66b253b0b984eb94855db24f03345a44f180ea2a5dd58654784be2c3f99dfc15e553ff5d8294b30556cb4c3b349eecc0ba4fac49d01d85a585bbe37d0f18df9e76147a5dc6d260024eaaab791d504e660fdeed7003ee5fc173b5654ce8377064c4a96eef8cf2df1e323f2c0c537d21d00011fbf00ef0b813d4b01a83c8377064c4a96eef8cf2df1e323f2c0c537d21d00011fbf00ef0b813d4b01a83c40a6107e55b86511fe6e14212169a8a8d2e99e7901ec2229ef801417ca1d9a59134f1649ac2b36e0ed224fc02b9ec87efb9af65347dbbab7164c7c7f4827eefd2ca92212049b33781fde977da297158de9353d49e7744efbaf4fb858d833d2272ca92212049b33781fde977da297158de9353d49e7744efbaf4fb858d833d22759efe447307f278d40f49de7470c1ce6aed035d2fa5a3998306bd18e41034c525072aac7c810be3b38a6cd46a32a57cc06e54272570aa1d2fc26ead5cfb112f95fedb6c4d87612b767a1f968f9f888e09092c01549281e9e5d69b1d42b5a460a3f27b15cc9392c12c082224d9a874c26be384c66f6c15cb45b34d12e9bfa58df80f42641e6c8ff7785562bf85f2c31561fc32a0661b9652707f295f497c88d28ee1d48493dde02afee10ec3e31350a4fbab81bef0c02a91455759611fa03004fdc8d7ed0caaa5dc2f442f14ad121762598b1ebe7e31bfb04412bf92fccfb6879e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b85586c998a5df0bb6116e6de227c6ba8c30d97430f441f0052a08158e3a2adac095f0c62527e7f45a9dc5d4d30705cf8216191cfceeaf77d0b96e7fb39b5f77c6d8233723e6634208e56ce394f2df6ddab16d33ee56c6eaa4d0980f8a25c63382f4d9309432b8e7817fc935937c76fc131a375ccea5197cec4fe45380c5d385fd8b3f4220a32285dc1f2d6b3a93b558cbf1e2f9228db153bb629107593d3206ecb82bf8909fe38cb19935721f78646e7709ec0f7b95a1e0d96be077bd51c586520cf51eda4ba7e6f93e47c1d57b781093c5c591f9e9b991c7bb311b95b5201c745ae8c769d485caea0168a9fce5d72aa80de5b144d41d5cce7968c496ed7bbde3bcb72d4ab5df55b8288bdd0b0d1f4005e3631044fbb8a8a1fef430396b4e6cf1ab392398628aeed4093f641e0ea9c89b79cca52ec009a64ac74f88b7798b69b2608f76f3f190a3dd3c60c45765d776c2e1e66722b250405cdbd13e30d85ae55e2b970fc8cc45f4b99ef14b890ab7c399dabd544300ccf69fc60e812bea83f224d61a0130cfeef0a5db0a513e6957ed5f32cd8ef53f576e4c1609eadadd14fa612539eb20b185d17f787942d57111e12aca8c52391899315a1b2875daec2fa46d1a27e610b70544438bae7936e84128ddc0c90f25a966f0eac57ac9fd801c5191d8fd089d132b866e26ebad799ea82fe88a244947e1afef7a55ab7184face7abb46e2f07179e456681e0c52f3170f104389c55f345a9547b8298fc3aad3ce703b1501be4dd0d471cfa4d922ed7324ff43c45002ac7a4bd8d42e47c7b041a35c3ab02211872ef7bd715d26e6cc19fc8d6171923194c6ef30800c2466c0700df93397615a2da9a0f67817c41e8523f007d7d27b73264d9e400c061358788122dd024ef03a634330688f9a847d239c82a65e3c95576625b4fbd9ed0431e3b3d71c20befaf54844c95a13aa3ba6dbad7071a1f1345c6f986255dc9972dc62945781b8397f6af80327832d73cdc83ffa7deb3090ffcef0442816f1a537de7f85476d9fffa8cf99e39dfd5639b67b01f86368070f6a3b73b2c9bb95f7f50eb5fbbbc5b446a2bd6afc4dd99ea37586d7868c2eae614a4a829cfbe5197be4cf9067702387a6a2bd6afc4dd99ea37586d7868c2eae614a4a829cfbe5197be4cf9067702387a63e7233c1da4e35ea95d854b8d103405525453dca3f6c163049f143e1cc1c4cea3e7233c1da4e35ea95d854b8d103405525453dca3f6c163049f143e1cc1c4cea05f4432c8c922790be7fd591174d2802389efcb26432cfd980a10d2218f4e90d90a04c3f6502b488d36da649e3fc62af5e84c6db72183e7e8ba20a735e4229542ab147218cb1e3e3feb135037934cf776da802ecdfb84649230966cdeaff591a2ab147218cb1e3e3feb135037934cf776da802ecdfb84649230966cdeaff591afb0c545e3e809e8cb497a0b031e62c290fbe3f168841b6a25f1eb396f5de0189609a7a1096e8871537022134de7be6bd9c60d1680064c6ef9b8cbb411a0cecc2e945aebaf16854e4fdf0f220a2deb616c8235db6c529f31be42f828e7c5d62253ed86aefe876c002d978466dd28209a6edb92e90f2568a5e64c534cec9907e6cda26463b8b2f993bda4397a037f01b63321f5abd6de3664e59535c733d00b0c2cb2bba6d48d27b157f601664b452728314570af5cd9bb16b633d438aea5defa24dfac1da9a52c4330d5981827610ad5d587e7955aa0f1c6d9eb27532fa02441ce7696f429c403a826924dec79cb35c644ba65b9a1410dfd0322e6315b438b01f269e9f5715730c12073dc744851f146ba9dbb3fbd6b2c4f12a28a57c9b4ea68d374fc7ad3b22c22e921dc754435f55bc24562ff778a3dba75c514b8e793beafddab68538d588a50df3a3765364c60288f084d0d462d20f26854743711ef9beacfdfd0843b2448da416888bd55dd858190d29347706b789e3755495ac8ef892c9660649f9df1353b28ea62d5cdeb49ee85489afb2a393db43d4f22ba9ac74d2fdbf753532bb4829c391ba70879e3eb58a59ebf37f2b841e415d7e8cc54816550424b22a7e9cbcbe8ba04355e1c39ef489edc3aaa8e8abec1348efe35b6b9bba0f36255a53e445e62ec0e7c2d912834f14630ef3f5a77723bebc26765196ca5fd2b79a8e97119152ce8a1443aaeefcc5baaded9117153a1216f3352f468df5eacd2030a9b37c77e7e99c59c93ea349f3d0f8db501551275d6fc2212bae0f6ff45545f999e0a6cb0499c30a66552dc082f5348e267a3038637ce7687a365297485e503a38def4715c5d6afaa05700b6b100d852c10964e42c26a895bcc0db1abc244a4a6dc3e7de1d5a79c36e46c7be3113c37d280e01b81755dbcf5c8b51ee7f3b41870e648e0286229831f30c1ef27c5a86909406678f5f023ae0e68e816cab8de1d5124aa9b7689a4d8d88b19b561c3ffbbb59e43785800f2aec0636160f8bc792acd1ad3adcac92e3370b010ac422dd93e20ae4fc1f52e235b97ed905d7405c345098a626a8ad888cb44d70e88e6d8bc8aab1e5f0e80456dd95709712a07f228177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643f681a4f0dc098393f0b6b360c6ddc31b4b6df72e9fadf7963a30d4372c5a3f713b0f00d1a6babd016cbbf102845c5740db318aad86f5d5dac19d196f0bcc0e12853e638a0a2675aaabedee23ebef484abec18e2754d6e87775df5fef7118ddc6../../bin/git-obsrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootosc-1.22.0-150600.15.9.1.src.rpmconfig(osc)git-obsoscpython3-osc@@@     /bin/bash/usr/bin/python3.6config(osc)python(abi)python3-PyYAMLpython3-cryptographypython3-rpmpython3-urllib3rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PartialHardlinkSets)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)1.22.0-150600.15.9.13.63.0.4-14.6.0-14.0.4-14.0-15.2-1buildobs-scm-bridgeobs-service-source_validator202502060.7.30.394.14.3ih@hQ@hChf@h}@hZ@h,nggg@g@gw@g@gřggg g}@g-@g-@fX@fͿf@fff@f~fM@fee؈eM@em@em@e]@eC@e7e1@e-%e%/!' format - Properly handle deleted users and teams in the git-obs timeline - Handle situations when there's 'None' among timeline entries - Skip binary files in gitea_api.PullRequest.get_patch() - Change get_user_input(), add support for vertically printed list of answers - Spec: - Provide git-obs- 1.19.1 - Command-line: - Use OSC_PACKAGE_CACHE_DIR env var instead of deprecated OSC_PACKAGECACHEDIR - Connection: - Check for both upper and lowercase versions of HTTP_PROXY and HTTPS_PROXY env vars - Library: - Add 'trackingbranch' field to ScmsyncObsinfo model - Revert "Return None if GitStore cannot determine apiurl" - Throw a proper exception when 'apiurl' argument of 'makeurl()' is empty - Move code setting apiurl from store to 'osc.conf.get_config()' - Simplify 'osc.commandline.Osc.get_api_url()' to return the value from 'self.options' - Remove 'osc.commandline.Osc.post_argparse()' because it's no longer used - Fix unit tests to use the new code path to run osc - Fix osc.gitea_api.dt_sanitize() by replacing dateutil with datetime- 1.19.0 - Command-line: - Add 'git-obs pr cancel-scheduled-merge' command - Add timeline to 'git-obs pr review interactive' - Add '--timeline' option to 'git-obs pr get' - Fix 'git-obs pr search' by using pagination to retrieve all results - Extend '--message' option in git-obs subcommands with the '-m' short option - Add a different message for scheduled merges in 'git-obs pr merge' command - Library: - Add 'conn' parameter to gitea_api.common.GiteaModel - Add gitea_api.Connection.scheme attribute - Add gitea_api.PullRequest.merge_commit property - Add gitea_api.PullRequest.get_owner_repo_number() - Add gitea_api.common.dt_sanitize() for sanitizing datetime strings - Handle missing head repo in the PullRequest properties - Return None if GitStore cannot determine apiurl - Remove extra newline from store files - Fix the 'Move remaining imports in osc.babysitter into try-except block' change by preserving the order of handling the exceptions - Spec: - Use primary_python to define runtime requires matching the shebang lines - Provide %{use_python_pkg}-osc for all pythons and python3-osc for primary_python - Add conflict with obs-scm-bridge < 0.7.3- 1.18.0 - Command-line: - Add 'git-obs pr comment [--message=...]' command - Add 'git-obs pr show-patch' command - Add '--reviewer' option to 'git-obs pr review {approve,decline,interactive}' to support group reviews via group review bot - Update 'git-obs pr review interactive' to return non-zero return codes for 'exit' and 'skip' actions - Make 'osc results --show-excluded' work in a project context - Add '--no-pager' global option - Fix 'osc fork' by copying whole query part to the new scmsync url - Fix 'osc buildinfo' for git packages by handing the 'build_repositories' files by store objects - Fix crash in 'git-obs pr get --patch' - Fix git-obs to exit with 130 on keyboard interrupt - Fix --sccache help typo in 'osc build' command - Connection: - Don't retry requests on 504 Gateway Timeout - Library: - If a devel project is not specified, try reading it from a mapping from URL set in OBS:GitDevelProjectMap project attribute - Improve detection of packages and projects in git - scmsync_obsinfo: Pass correct revision to obs-scm-bridge - Add obs_api.Request.search() method - Raise an exception if obs-scm-bridge fails - Fix obs_scm.Package.get_pulled_srcmd5() returning an empty string - Fix git store to support non-default remote - Extend 'gitea_api.User.get()' to take 'username' parameter - Move get_editor() and related functions from command-line module to gitea_api.common - Migrate subcommands from using Store() to get_store() that is git aware - Make imports lazy to imporove osc load times- 1.17.0 - Command-line: - Rename 'git-obs pr review' to 'git-obs pr review interactive' - Add 'A)approve and schedule for merging' action to 'git obs pr review interactive' - Add 'git-obs pr merge' command - Add 'git-obs pr review accept' and 'git-obs pr review decline' commands - Implement 'git-obs repo list' command - Add '--export' option to 'git-obs pr list' and 'git-obs pr search' - Fix crash during token validation in 'git-obs login {add,update}' when value is not specified - Fix loading shell completions for 'git-obs' - Fix 'git-obs api' by preventing of quoting the URL query part - Add a possibility to override git-obs login entries from env - Validate arguments in 'osc fork' command - Revert "Improve 'updatepacmetafromspec' command to expand rpm spec macros by calling rpmspec to query the data" - Improve 'updatepacmetafromspec' command to expand rpm spec macros by calling queryrecipe to query the data (bsc#1243722) - Connection: - Do not use pipe for ssh-keygen input - Library: - Refactor gitea_api to use objects with properties instead of raw JSON data - Add GiteaModel base class and json_dumps() function that can serialize such objects - Rename 'anonymous' argument in 'gitea_api.Repo.clone()' to 'use_http' - Allow git in git-obs to be switched from SSH to http(s) - Move yaml handling code to osc.util.yaml, add fallback to PyYaml - Fix how types are compared in OscOptions.set_value_from_string() - get_package_results: check for waiting states in all multibuild packages - Extend _buildinfo file lookup to the current directory - Fix git store when .git is a file with "gitdir: " link - Migrate store_* functions to use get_store instead of the original code - Spec: - Modify spec to use PyYAML on SLE15- 1.16.0 - Command-line: - Add 'osc rmkpac' subcommand - Add 'osc service precommit' subcommand, for use with git hook - Add '--target-branch' filter option to 'git-obs pr list' - Add '--reviewer' and '--review-state' options to 'git-obs pr list' - Add '--no-draft' filter option to 'git-obs pr list' - Set limit=0 to disable pagination in all relevant git-obs subcommands - Improve help of the 'git-obs login' subcommands - Update 'git-obs login {add,update}' to check the gitea token format - Fix 'osc fork' when in the source project is empty - Fix handling env in tests for 'osc vc' - Fix how GitStore reads project from the parent directory - Fix 'git-obs pr create' with multistring EDITOR - Improve handling exceptions in 'git-obs' command - Improve message in 301: Moved Permanently error in git-obs - Improve git-obs to read credentials from env variables - Remove commas from the list of request IDs in the superseding prompt in 'osc sr' - Connection: - Fix git-obs connection for urllib3 v1 by overriding the default timeout - Library: - Add troubleshooting info to gitea_api.Login.DoesNotExist message - Add 'min_key_length' argument to KeyValueTable to enforce the minimal length of the first column - Fix implicit optionals in type hints to make code PEP 484 compliant - Don't crash when OBS API returns None as request description - Fix TypeError in response_to_exception() in gitea_api- 1.15.1 - Library: - Revert "Run decode_it also in the other case"- 1.15.0 - Command-line: - Improve 'osc fork' to follow the devel package specified in the 'OBS:RejectBranch' attribute - Hotfix 'osc fork' failures of devel project users - Change 'osc fork' to print an error rather than raising an exception - Fix setting parent remote in 'git-obs repo clone' - Extend 'osc build' to read build project from Gitea: /_ObsPrj, project.build file - Fix 'osc build' when working with sources from git, when .osc is not available - Fix crash in 'osc build --host' - Fix rendering help output by adding the complete docstring of the commands - Add commented git status to the 'git-obs pr create' message - When doing an mr from a working copy check for unchecked modifications - Consolidate working copy modification check dialog into a function - Connection: - Change a debug message to a warning if ssh-keygen is not available - Add explanatory message to ignore the signature auth warning when not using SSH keys for auth - Library: - Implement handling of updateinfo.xml and _modulemd.yaml files - Fix working with _subdirs when detecting packages that are subdirectories in a git project - Fix canonname handling when querying a downloaded package - Add obs_api.Attributes model - Add 'quiet' and 'branch' options to gitea_api.Repo.clone() - Fix GitStore by parsing git urls with obs_api.Git.urlparse() - Add gitea_api.Git.urlparse() for parsing git urls - Change gitea_api.Config.url_to_hostname() to also try matching only a hostname instead of full Gitea URL - Rename get_parser() functions to argparse_manpage_get_parser() to clarify their purpose - Refactor the validity check of cached binaries - Other: - Update git-obs-quickstart doc with more detailed info on creating tokens - Spec: - Recommend obs-scm-bridge - Build git-obs man page- Add temporary hotfix for osc fork- 1.14.0 - Command-line: - Improve 'osc fork' command to support also forking projects managed in git - Extend 'osc fork' command with '--target-project' and '--target-package' options - Enable shell completion of various 'git-obs' arguments and options - Fix 'git-obs pr create --target-branch' - Fix 'osc fork' crash in print_gitea_settings() - Use -A/--apiurl specified on the command-line even if running from a checkout - Assume openSUSE:Factory if project cannot be determined in 'osc build' command - Change 'osc whatdependson' command to take multiple '-M' options incl. wildcards - Fix diff highlighting - Library: - Set pacsuffix='deb' if binarytype=='deb' - Add scmsync element to meta template - Add missing project_separator substitutions - Fix call os.userexpand() on gitea_api.Config() path argument - Fix adding arguments to the argument parser so they work with argcomplete - Fix MultibuildFlavorResolver to consider an empty flavor during glob match - Fix MultibuildFlavorResolver to work with _multibuild elements - Remove superfluous setting of apiurl from 'osc fork' - Mute mypy errors on field property assignment - Add type hint to XmlModel.XML_TAG - Support new 'X | None' union syntax in field types - Other: - Fix 'git-obs login add' command invocation in git-obs-quickstart documentation - Spec: - Recommends: python3-argcomplete for git-obs- fix the generic provides for %{use_python_pkg}-osc to be versioned so that one can actually have versioned requires against that symbol - restore python3-osc provides if we are building against the primary_python version- if we have primary_python defined lets use this to get runtime requires matching the shebang lines- 1.13.0 - Command-line: - Add 'osc fork' command for forking a package with sources managed in Gitea - Add 'git-obs pr review' command - Allow 'git-obs login' subcommands to prompt for Gitea tokens - Fix 'osc checkout' command to support deleted packages incl. revisions - Update 'osc rpmlint' command by adding help message for invoking command in PKG dir - Add '--multibuild-package' option to 'osc rpmlint' command - Library: - Change how git projects and packages are detected - Change show_project_sourceinfo() to split a huge request into many and join the results to workaround GET limitations - Make 'rev' option in ScmsyncObsinfo.from_api() optional - Make GitObsCommand.gitea_{conf,login,conf} properties writable - Fix local building of deb dockerfile - Fix getting scm_url from scmsync_obsinfo that has subdir set - Fix or silence pylint errors - Support 'enabled' field in tokens - Highlight trailing whitespaces in diffs - Fix missing spaces in help string - Other: - Add git-obs Quickstart documentation and man page- 1.12.1 - Command-line: - Improve 'maintenancerequest' command to inherit description from superseded request - Library: - Tell the build script to disable repos/containers handling for normal builds - Improve detecting git packages, use .osc metadata from project in parent directory - Fix retrieving apiurl from git repositories in get_api_url() in the command-line code - Fix typo in core.binary() that caused text files being detected as binary - Improve core.binary() by always considering data that contains \0 binary - Fix assembling scm_url when scmsync_obsinfo.revision is None- 1.12.0 - Command-line: - Add 'git-obs pr' command - Add 'git-obs api' command for making arbitrary API calls - Change 'git-obs' to use owner/repo[#pull] arguments consistently - Change 'git-obs repo clone' command to store ssh command in core.sshCommand git config option - Fix 'request list --interactive' command that wasn't showing request forward prompt when message was part of the state change - Library: - Avoid fetching _scmsync.obsinfo when scmsync url contains 'noobsinfo' query parameter - Fix ssh key priority in 'git-obs repo clone' command - Fix loading config entries with underscores instead of dashes in the keys - Fix detecting binary files - Fix diff highligting - Connection: - Implement retries in 'git-obs'- 1.11.1 - Command-line: - Fix 'linkpac' command for projects with a project link - Fix 'linkpac' command by always removing element from target meta - Fix command descriptions in help by moving the import statements under docstring in the do_*() methods- 1.11.0 - Command-line: - Add hint how to deal with scmsync-nobranch scenarios - Speed loading commands up - Fix 'log' command to work correctly with --meta --patch options - Document that 'status' command prints unmodified files in verbose output - Hide progressbar.Bar widget after ProgressBar has completed - Avoid printing urlquoted file names in 'getbinaries' command - Configuration: - Mute oscrc permissions warning when there's no password set - Connection: - Save session cookie even if a request fails - Library: - Fix local building in git projects - Extend xml.etree.ElementTree.ParseError output with a snippet of broken XML - Sync ScmsyncObsinfo with obs-scm-bridge - Move running obs_scm_bridge into run_obs_scm_bridge() function - Convert remaining makeurl() query parameters from deprecated string to dict - Add more operators to XPathQuery - Make 'title' and 'description' fields optional in the Package model - Fix progress bar code to support progressbar2 - Support LoongArch64 architecture - Mute pylint errors in show_package_disabled_repos() that are false-positives - Fix another bytes/unicode issues in core.link_pac() by replacing ElementTree code with XML models - Fix handling 'lock' field in 'Package' model - Fix handling SimpleFlag model - Extend RequestActionSource with 'repository' attribute - Load most of the modules in commandline.py on-demand - Fix traceback in 'linkpac --disable-build' - Spec: - Add conflict with older versions of obs-service-source_validator to ensure that version compatible with .osc store 2.0 is installed- 1.10.1 - Command-line: - Fix crash in 'build' command due to undefined 'build_root' variable - Spec: - Add missing python3-ruamel.yaml BuildRequires - Fix rpmlint error about creating the /usr/libexec/git/obs symlink- 1.10.0 - Command-line: - New git-obs executable with several subcommands - Support parameters on token triggers - Change 'update' command to treat empty '.osc/_in_update/_files' as missing - Change 'checkout' command to allow checkout obs imported sources of scmsync sources - Change 'creq' command to allow specifying source and target repository - Change the help output to determine executable name from the command-line arguments - Add '--no-timestamps' parameter to 'build' command - Fix 'token' command to avoid crash when a wipe token exists - Fix crash in 'results' command by skipping non-status elements in project results - Fix crash in 'build' command when building with --local-package --alternative-project from a locally initialized .osc package - Print buildroot directory when build or chroot finishes - Library: - Add 'gitea_api' module - Support the mkosi build type - Support copy of scmsync packages - Support Dockerfile.* in _multibuild packages - Implement obs_api.Status.data property that returns status data as a dictionary - Implement obs_api.Package.cmd_fork() - Fix meter by setting default of use_pb_fallback to False - Fix store migration from 1.0 to 2.0 when there is a 'sources' file that would conflict with 'sources' directory - Fix revision'd checkout of scmsync package - Refactor code handling _scmsync.obsinfo to obs_api.scmsync_obsinfo.ScmsyncObsinfo class - Store the container annotation in the "containers" directory - Spec: - Install symlink /usr/bin/git-obs to /usr/libexec/git/obs to make git-obs available as a git sub-command- 1.9.2 - Command-line: - Fix 'resolved' command to skip subdirectories in package checkouts - Fix 'comment' command to resolve project name - Implement meter.SimpleTextMeter that prints what's being downloaded - Connection: - Use configured 'http_headers' in HTTP requests - Library: - Fix storing _buildinfo and _buildconfig files in .osc rather than among the source files - Use findtext() instead of find().text - Spec: - Recommend python3-zstandard to support opening control.tar.zst- 1.9.1 - Command-line: - Add 'createrequest release' subcommand - Change 'review list' command to omit requests with 'declined' state - Fix `osc build --local-package` - Fix typos - Library: - Fix extraction of the 'ar' archives when they don't contain header with long filenames - Fix iterating through arch_list in core.get_repos_of_project() - Check for None & len() of ET.Element instead of bool() in PackageBase.get_meta_value() - Spec: - Replace 'setup.py test' that was removed in setuptools 72 with 'python3 -m unittest'- 1.9.0 - Security: - Fix possibility to overwrite special files in .osc (CVE-2024-22034 boo#1225911) Source files are now stored in the 'sources' subdirectory which prevents name collisons. This requires changing version of '.osc' store to 2.0. - Command-line: - Introduce build --checks parameter - Library: - OscConfigParser: Remove automatic __name__ option- 1.8.3 - Command-line: - Change 'repairwc' command to always run all repair steps - Library: - Make most of the fields in KeyinfoPubkey and KeyinfoSslcert models optional - Fix colorize() to avoid wrapping empty string into color escape sequences - Provide default values for kwargs.get/pop in get_results() function- 1.8.2 - Library: - Change 'repairwc' command to fix missing .osc/_osclib_version - Make error message in check_store_version() more generic to work for both projects and packages - Fix check_store_version in project store- 1.8.1 - Command-line: - Fix 'linkpac' command crash when used with '--disable-build' or '--disable-publish' option- 1.8.0 - Command-line: - Improve 'submitrequest' command to inherit description from superseded request - Fix 'mv' command when renaming a file multiple times - Improve 'info' command to support projects - Improve 'getbinaries' command by accepting '-M' / '--multibuild-package' option outside checkouts - Add architecture filtering to 'release' command - Change 'results' command so the normal and multibuild packages have the same output - Change 'results' command to use csv writer instead of formatting csv as string - Add couple mutually exclusive options errors to 'results' command - Set a default value for 'results --format' only for the csv output - Add support for 'results --format' for the default text mode - Update help text for '--format' option in 'results' command - Add 'results --fail-on-error/-F' flag - Redirect venv warnings from stderr to debug output - Configuration: - Fix config parser to throw an exception on duplicate sections or options - Modify conf.get_config() to print permissions warning to stderr rather than stdout - Library: - Run check_store_version() in obs_scm.Store and fix related code in Project and Package - Forbid extracting files with absolute path from 'cpio' archives (boo#1122683) - Forbid extracting files with absolute path from 'ar' archives (boo#1122683) - Remove no longer valid warning from core.unpack_srcrpm() - Make obs_api.KeyinfoSslcert keyid and fingerprint fields optional - Fix return value in build build.create_build_descr_data() - Fix core.get_package_results() to obey 'multibuild_packages' argument - Tests: - Fix tests so they don't modify fixtures- 1.7.0 - Command-line: - Add 'person search' command - Add 'person register' command - Add '-M/--multibuild-package' option to '[what]dependson' commands - Update '-U/--user' option in 'maintainer' command to accept also an email address - Fix 'branch' command to allow using '--new-package' option on packages that do not exist - Fix 'buildinfo' command to include obs:cli_debug_packages by default - Fix 'buildinfo' command to send complete local build environment as the 'build' command does - Fix 'maintainer --devel-project' to raise an error if running outside a working copy without any arguments - Fix handling arguments in 'service remoterun prj/pac' - Fix 'rebuild' command so the '--all' option conflicts with the 'package' argument - Fix crash when removing 'scmsync' element from dst package meta in 'linkpac' command - Fix crash when reading dst package meta in 'linkpac' command - Allow `osc rpmlint` to infer prj/pkg from CWD - Propagate exit code from the run() and do_() commandline methods - Give a hint where a scmsync git is hosted - Fix crash in 'updatepacmetafromspec' command when working with an incomplete spec - Improve 'updatepacmetafromspec' command to expand rpm spec macros by calling rpmspec to query the data - Improve 'build' and 'buildinfo' commands by uploading *.inc files to OBS for parsing BuildRequires (boo#1221340) - Improve 'service' command by printing names of running services - Improve 'getbinaries' command by ignoring source and debuginfo filters when a binary name is specified - Change 'build' command to pass '--jobs' option to 'build' tool only if 'build_jobs' > 0 - Clarify 'list' command's help that that listing binaries doesn't contain md5 checksums - Improve 'log' command: produce proper CSV and XML outputs, add -p/--patch option for the text output - Allow setlinkrev to set a specific vrev - Document '--buildtool-opt=--noclean' example in 'build' command's help - Fix handling the default package argument on the command-line - Configuration: - Document loading configuration from env variables - Connection: - Don't retry on error 400 - Remove now unused 'retry_on_400' http_request() option from XmlModel - Revert "Don't retry on 400 HTTP status code in core.server_diff()" - Revert "connection: Allow disabling retry on 400 HTTP status code" - Authentication: - Update SignatureAuthHandler to support specifying ssh key by its fingerprint - Use ssh key from ssh agent that contains comment 'obs=' - Use strings instead of bytes in SignatureAuthHandler - Cache password from SecretService to avoid spamming user with an accept dialog - Never ask for credentials when displaying help - Remove unused SignatureAuthHandler.get_fingerprint() - Library: - Add rootless build support for 'qemu' VM type - Support package linking of packages from scmsync projects - Fix do_createrequest() function to return None instead of request id - Replace invalid 'if' with 'elif' in BaseModel.dict() - Fix crash when no prefered packages are defined - Add XmlModel class that encapsulates manipulation with XML - Add obs_api.Person.cmd_register() for registering new users - Fix conf.get_config() to ignore file type bits when comparing oscrc perms - Fix conf.get_config() to correctly handle overrides when env variables are set - Fix output.tty.IS_INTERACTIVE when os.isatty() throws OSError - Improve cmdln.HelpFormatter to obey newline characters - Update list of color codes in 'output.tty' module - Remove core.setDevelProject() in favor of core.set_devel_project() - Move removing control characters to output.sanitize_text() - Improve sanitize_text() to keep selected CSI escape sequences - Add output.pipe_to_pager() that pipes lines to a pager without creating an intermediate temporary file - Fix output.safe_write() in connection with NamedTemporaryFile - Modernize output.run_pager() - Extend output.print_msg() to accept 'error' and 'warning' values of 'to_print' argument - Add XPathQuery class for translating keyword arguments to an xpath query - Add obs_api.Keyinfo class - Add obs_api.Package class - Add Package.get_revision_list() for listing commit log - Add obs_api.PackageSources class for handling OBS SCM sources - Add obs_api.Person class - Add obs_api.Project class - Add obs_api.Request class - Add obs_api.Token class - Allow storing apiurl in the XmlModel instances - Allow retrieving default field value from top-level model - Fix BaseModel to convert dictionaries to objects on retrieving a model list - Fix BaseModel to always deepcopy mutable defaults on first use - Implement do_snapshot() and has_changed() methods to determine changes in BaseModel - Implement total ordering on BaseModel - Add comments with available attributes/elements to edited XML - Refactoring: - Migrate repo {list,add,remove} commands to obs_api.Project - Migrate core.show_package_disabled_repos() to obs_api.Package - Migrate core.Package.update_package_meta() to obs_api.Package - Migrate core.get_repos_of_project() to obs_api.Project - Migrate core.get_repositories_of_project() to obs_api.Project - Migrate core.show_scmsync() to obs_api.{Package,Project} - Migrate core.set_devel_project() to obs_api.Package - Migrate core.show_devel_project() to obs_api.Package - Migrate Fetcher.run() to obs_api.Keyinfo - Migrate core.create_submit_request() to obs_api.Request - Migrate 'token' command to obs_api.Token - Migrate 'whois/user' command to obs_api.Person - Migrate 'signkey' command to obs_api.Keyinfo - Move print_msg() to the 'osc.output' module - Move run_pager() and get_default_pager() from 'core' to 'output' module - Move core.Package to obs_scm.Package - Move core.Project to obs_scm.Project - Move functions manipulating store from core to obs_scm.store - Move store.Store to obs_scm.Store - Move core.Linkinfo to obs_scm.Linkinfo - Move core.Serviceinfo to obs_scm.Serviceinfo - Move core.File to obs_scm.File - Merge _private.project.ProjectMeta into obs_api.Project - Spec: - Remove dependency on /usr/bin/python3 using %python3_fix_shebang macro (bsc#1212476)- 1.6.2 - Command-line: - Fix 'branch' command to allow using '--new-package' option on packages that do not exist - Fix 'buildinfo' command to include obs:cli_debug_packages by default - Fix 'buildinfo' command to send complete local build environment as the 'build' command does - Allow `osc rpmlint` to infer prj/pkg from CWD - Propagate exit code from the run() and do_() commandline methods - Give a hint where a scmsync git is hosted - Fix crash in 'updatepacmetafromspec' command when working with an incomplete spec - Authentication: - Cache password from SecretService to avoid spamming user with an accept dialog - Never ask for credentials when displaying help - Library: - Support package linking of packages from scmsync projects - Fix do_createrequest() function to return None instead of request id - Replace invalid 'if' with 'elif' in BaseModel.dict() - Fix crash when no prefered packages are defined- remove dependency on /usr/bin/python3 using %python3_fix_shebang macro, [bsc#1212476]- 1.6.1 - Command-line: - Use busybox compatible commands for completion - Change 'wipe' command to use the new get_user_input() function - Fix error 500 in running 'meta attribute ' - Configuration: - Fix resolving config symlink to the actual config file - Honor XDG_CONFIG_HOME and XDG_CACHE_HOME env vars - Warn about ignoring XDG_CONFIG_HOME and ~/.config/osc/oscrc if ~/.oscrc exists - Library: - Error out when branching a scmsync package - New get_user_input() function for consistent handling of user input - Move xml_indent, xml_quote and xml_unquote to osc.util.xml module - Refactor makeurl(), deprecate query taking string or list arguments, drop osc_urlencode() - Remove all path quoting, rely on makeurl() - Always use dict query in makeurl() - Fix core.slash_split() to strip both leading and trailing slashes- 1.6.0 - Command-line: - The 'token --trigger' command no longer sets '--operation=runservice' by default. - Change 'token --create' command to require '--operation' - Fix 'linkdiff' command error 400: prj/pac/md5 not in repository - Update 'build' command to support building 'productcompose' build type with updateinfo.xml data - Don't show meter in terminals that are not interactive - Fix traceback when running osc from an arbitrary git repo that fails to map branch to a project (boo#1218170) - Configuration: - Implement reading credentials from environmental variables - Allow starting with an empty config if --configfile is either empty or points to /dev/null - Implement 'quiet' conf option - Password can be an empty string (commonly used with ssh auth) - Connection: - Allow -X HEAD on osc api requests as well - Library: - Fix credentials managers to consistently return Password - Fix Password.encode() on python < 3.8 - Refactor 'meter' module, use config settings to pick the right class - Convert to using f-strings - Use Field.get_callback to handle quiet/verbose and http_debug/http_full_debug options - Implement get_callback that allows modifying returned value to the Field class - Add support for List[BaseModel] type to Field class - Report class name when reporting an error during instantiating BaseModel object - Fix exporting an empty model field in BaseModel.dict() - Fix initializing a sub-model instance from a dictionary - Implement 'Enum' support in models - Fix Field.origin_type for Optional types - Drop unused 'exclude_unset' argument from BaseModel.dict() method - Store cached model defaults in self._defaults, avoid sharing references to mutable defaults - Limit model attributes to predefined fields by forbidding creating new attributes on fly - Store model values in self._values dict instead of private attributes - Spec: - Recommend openssh-clients for ssh-add that is required during ssh auth - Add 0%{?amzn} macro that wasn't usptreamed- 1.5.1 - Library: - Avoid using '/public/' API routes - Update 'osc.util.models' to avoid including lazy defaults in the rendered man pages - Spec: - Simplify distro-specific macros - Use %{?rhel} macros- specfile change : use rhel version macros wherever 'fedora' macro is also used + Build manpages on RHEL distros where argparse-manpage is available and where python3-sphinx is available and cleanly installable without requiring environment(modules) from EPEL + use fdupes to deduplicate python bytecode on RHEL distros which support it- 1.5.0 - Command-line: - Change 'rdiff' command to display diff for _project if no package is specified - Update 'build' command with initial support for 'productcompose' build type - Change 'build' command to disable preinstall images in rootless builds - Configuration: - Fix conf.write_initial_config() to use read_file() instead of deprecated readfp() - Other: - Support installing osc into virtualenv - Spec: - Recommend 'build' on openSUSE/SLE and 'obs-build' on all other distros- 1.4.4 - Command-line: - Fix autocompletion for new locations - Configuration: - Fix apiurl_aliases handling in OscOptions.__getitem__ - Fix crash when there's no [general]/apiurl option in the config file- fix bash completion suffix (.bash instead of .sh) (bsc#1216531)- 1.4.3 - Configuration: - Allow undefined fields in Options and HostOptions- 1.4.2 - Command-line: - Change NoPBTextMeter to display no output at all - Fix retrieving the configured user in 'user' command - Configuration: - Restore 'passx' host option that contains an obfuscated password - Fix retrieving a password in case a function returns another callable - Fix retrieving config values in core.vc_export_env()- 1.4.1 - Configuration: - Always display apiurl when asking for credentials - Ask for new credentials when user is missing from an apiurl section in the config file - Library: - Fix testing revision for being empty - Fix core.change_request_state_template() to always return a string - Tests: - Replace 'git init -b' with 'git init' and 'git checkout -b' - Spec: - Run fdupes after install - List the python sitelib paths explicitly - Mark csh completion files as configs - Own zsh completion dirs to mute rpmlint errors - Move bash completion from /etc to /usr/share- 1.4.0 - Command-line: - Add rootless build support to 'build' command for 'kvm' and 'podman' vm types - Print a hint to clean the build root after a failed build - Avoid adding a newline to prompt in 'wipe' command - Fix 'build' command to pass '--vm-type' option to the underlying build tool - Add '--just-print-buildroot' option to print build root path and exit to 'build' command - Add support for keep_packages_locked on request revoke - Import zsh completition made by Holger Macht and improve it - Use XDG locations in completion - Fix 'search' command to resolve '-B .' to the current project - Add '-M/--multibuild-package' option to 'checkconstraints' command - Allow constraints file with remote request in 'checkconstraints' command - Unify how the 'commit' and 'build' commands work with '--noservice' option - Fix 'request show' command to print superseded_by information - Fix 'service' command to support already documented 'r' abbreviation for 'run' - Configuration: - Implement 'exclude_files' and 'include_files' config options that allow skipping files in the 'checkout' command - Fix api_host_options for custom CAs (cafile and capath options work again) - Switch 'osc.conf.config' from dict to Options class with type checking - Rename conf.Options.build_type to vm_type to be consistent with obs build and osc --vm-type option - Update list of supported vm_type values in conf.Options.vm_type - Remove any duplicated code loading configuration from ENV - Library: - Add 'osc.util.models' module implementing an alternative pydantic-like data validation - Add 'osc.util.xdg' module for handling XDG paths - Fix handling empty vm_type in Store.last_buildroot - Spec: - Install zsh completion - Build and install oscrc man page- 1.3.1 - Command-line: - Fix string + int concatenation errors in 'build' command by using f-strings instead - Fix '--all' option in 'rebuild' command - Fix 'build' command when '--alternative-project' option is specified and the git branch cannot be mapped to a project - Stop suggesting that the working directory is git/mercurial/svn/cvs - Be helpful in deprecating commands - Configuration: - Add more config options among integer options - Library: - Fix GitStore to error out properly if there is no 'origin' remote in the git repo - print_buildlog: Remove control characters from build log before printing (CVE-2012-1095)- 1.3.0 - Command-line: - Add experimental support of Git SCM to the 'build' command - Add experimental support of Git SCM to the 'service' command - Make 'meta' command capable of editing attributes - Change '--add' option in 'meta attribute' command to skip duplicate values - Add an interactive option to display build log in 'request list -i' command - Add '--setopt' option for setting config options from the command-line - Fix '--prefer-pkgs' option for noinstall="1" packages in kiwi builds - Change 'checkout' command to print open requests only when running in an interactive terminal - Enhance '--force' option description in the 'request' command - Connection: - Fix crash when HTTP_PROXY env contains no auth - Library: - Add 'git_scm' module for handling packages that live in git scm rather than usual obs scm - Change pop_project_package_from_args() to use get_store() to support Git SCM - Change osc.build module to use 'store' object instead of calling core.store_*() functions - Use alternative project if specified in parse_repoarchdescr() - Fix xml indent() on Python 3.6 - Fix less pager by adding '-R' to LESS env - Improve print_msg() and migrate some arbitrary prints to it- 1.2.0 - Command-line: - Add 'repo' command and subcommands for managing repositories in project meta - Extend 'browse' command to open requests in a web browser - Add highlighting for 'osc diff' and similar commands - Fix 'api' command to stream output to avoid running out of memory - Fix printing utf-8 characters to stdout - Connection: - Fix ValueError: Cannot set verify_mode to CERT_NONE when check_hostname is enabled - Authentication: - Correctly handle passwords with utf-8 characters - Library: - Fix crash when submiting a SCM package which has no _link - Fix local service execution of scmsync packages - Detect target package by its full name, instead of assuming its origin is identical to the source package type - Other: - Spell openSUSE correctly- 1.1.4 - Command-line: - Change 'review list' command to display open requests (state: new, review, declined) - Fix running osc in an AppImage by switching to the correct working directory - Handle ProtocolError exception - Library: - Add 'req_states' parameter to osc.core.get_review_list() - Connection: - Fix grabber to work with old urllib3 versions that do not contain URLSchemeUnknown exception- 1.1.3 - Command-line: - Backup edited messages and notify user about them when osc errors out - Consider only open requests when listing requests with a given review state - Fix 'diff' command when no files are specified - Configuration: - Add glob support to the 'trusted_prj' config option - Library: - Fix core.xmlindent() to work with ElementTree objects- 1.1.2 - Command-line: - Add '--buildtool-opt' option passing options to underlying rpmbuild to the 'build' command - Fix 'diff' command to support diffing selected files only - Identify inherited packages in the 'dependson' command output - Bring the '--debug' option back to the 'buildinfo' command - Fix 'buildhistory' command by setting the type of the '--limit' option to int - Library: - Fix a traceback when failed to unlock a keyring - Don't retry on 400 HTTP status code in core.server_diff() - Clean-up the '.old' folder if an exception happens - Document 'popt' attribute in the _link template - Fix build.get_repo() to return only directory that contains 'repodata/repomd.xml' - Connection: - Retry on receiving the following HTTP status codes: 400, 500, 502, 503, 504 - Allow disabling retry on 400 HTTP status code - Fix urlgrab to skip mirrors with invalid scheme- 1.1.1 - Command-line: - Fix 'creq' command that wasn't working at all - Fix 'ls' command when listing all projects by setting project argument to '/' - Fix regression: Run interactive config setup on missing config or credentials - Append plugin dirs to sys.path to allow loading modules installed next to the plugins - Do not recurse into subdirs when loading plugins - Configuration: - Display apiurl when asking for a username or a password - If apiurl is not set in interactive_config_setup(), use apiurl from DEFAULTS - Library: - Decode entities in HTTPError message body- 1.1.0 - Command-line: - New class-based commands - Sort commands before printing help - No longer read plugins from /var/lib/osc-plugins - Configuration: - Do not error out on setting oscrc permissions if the file is owned by another user - Library: - Restore 'include_request_from_project' conf option functionality - Simplify how babysitter works with options and config - Prefer f-strings over c-style string expansion- 1.0.1 - Configuration: - Fix a cut&paste error in setting 'disable_hdrmd5_check' config option - Connection: - Set Content-Type of POST requests without data to 'application/x-www-form-urlencoded'- 1.0.0 (full changelog to the latest stable version 0.182.0) - Command-line: - Use '.' as a wildcard that resolves to a project or a package name from the current working copy, for example 'osc rdiff ./. -c ' - Add 'create-pbuild-config' (cpc) command - Add '--disable-build' option to the 'branch' command - Add '--disable-build' option to the 'linkpac' command - Add '-X/--extra-pkgs-from' option to the 'build' command - Add '--add' option to the 'meta' command that appends new values to the existing values - Replace '-q/--hide-legend' option in 'prjresults' command with global '-q/--quiet' option - Replace '--debug' option in the 'getbinaries' command with '--debuginfo' to avoid conflicts with the global '--debug' - Replace '--verbose' option in the 'build' command with '--verbose-mode' to avoid conflicts with the global '--verbose' - Replace '--version' option with 'version' command - Enable forwarding requests to the parent projects in 'rq list -i' and 'sr accept' commands - Make use of '-M/--multibuild' option consistent across the commands - Enhance '--force' option in the 'commit' command to allow deleting packages even if other packages depend on them - Print URLs and xpaths in the debug rather than the verbose mode - Fix 'add' command for github /archive/ URLs - Fix 'buildhistory' command to produce proper output using build_table() and a CSV writer - Fix 'linkpac' command to avoid copying a lock from a locked package to the target package - Fix 'setlinkrev' command to write a log message on setting a revision - Fix 'submitrequest' command not to error out on using an alias to apiurl - Fix 'update' command on project level for scm packages - Fix '--mine' option in the 'request' command to show only requests created by the user - Fix the documentation url in the 'maintenancerequest' and 'createincident' commands - Remove '--skip-validation' option from the 'commit' command - Remove '--oldpkg', '--oldprj' options from the 'rdiff' command - Remove 'create', 'list', 'log', 'show', 'decline', 'accept', 'delete', 'revoke' subcommands from the 'submitrequest' command - Remove '--seperate-requests' option from the 'submitrequest' command - Remove '--raw' option from the 'develproject' command - Remove '--maintained' option from the 'search' command - Remove 'deleteprj' command - Remove 'deletepac' command - Remove 'editmeta' command - Remove 'results_meta' command - Remove 'rlog' command - Remove 'rprjresults' command - Remove 'rresults' command - Configuration: - Add 'project_separator' config option - Add 'disable_hdrmd5_check' config option to ignore hdrmd5 mismatches - Remove 'plaintext_passwd' config option - Library: - Add Store class that will replace store_{read,write}* functions - Remove 'GnomeKeyringCredentialsManager' and related code - Remove Request.get_creator() method - Replace unmaintained cmdln.py with a custom code based on argparse - Replace core.findpacs() with Package.from_paths() and Package.from_paths_nofail() - Drop Python 2 support, Python 3.6 is the lowest supported version - Code cleanups, following PEP 8 and the latest best practices now - Improve handling of hdrmd5 mismatches - Handle uncompressed Debian packages - Replace arbitrary XML escaping code with xml_escape() - Fix race condition in using .old directory in Serviceinfo.execute() - Fix manual run of source service - Connection: - Switch http_request() to urllib3 and cryptography (drop M2Crypto dependency) - Warn when using HTTP connection, make HTTPS the default - Send HTTP header Accept: application/xml - Wait between retries - Authentication: - Support signature (ssh) auth including ssh-agent forwarding - Lock cookiejar to prevent unnecessary signature auth by waiting for a session cookie - Print user and apiurl when prompting for a password - Fix a crash when deleting a password - Known issues: - Commandline option values cannot start with '-', for example: osc build -x -vim Background: This is a limitation of underlying Python's argparse How to fix: Use '=' to join the option with its value: osc build -x=-vim URL: https://github.com/openSUSE/osc/issues/1227 - Commandline positional arguments no longer recognize '/' as a universal argument separator Background: This is an attempt to bring some consistency into argument parsing, reducing number of separators and value combinations How to fix: Separate / from / with a space URL: https://github.com/openSUSE/osc/issues/1272- 1.0.0 - Revert "Remove the '-A' option from the 'maintainer' command" - core.get_request_list: Remove deprecation warning - meta attribute: Add --add option to append values to the existing list - Replace arbitrary XML escaping code with xml_escape() - build: New option 'disable_hdrmd5_check' to ignore hdrmd5 mismatches - commit: Pass --force down to delete_package- 1.0.0b5 - rq list: Fix a traceback when --type is not specified - core.checkout_package(): Use pathlib.Path - connection: Retry all, not just default allowed methods - connection: Wait between retries- 1.0.0b4 - Fix regressions to osc 0.x: - mv: Fix traceback due to missing target file name - rm: Fix creating a Package object by providing multiple files on the command line - copypac: Fix downgrading a package to an old revision - buildhist: Fix running from a package checkout - rebuild: Fix running from a package checkout - rdiff: Fix traceback when new project is not specified - rq list: Fix passing values of the --type option - build: Fix reading extra-pkgs from oscrc - Support withfullhistory in osc.core.get_request_list again - Fix osc.get_request_list ignoring the req_type parameter - Revert "Do not list declined requests by default" - connection: Mute the "Converted retries value" debug message - connection: Fix traceback on loading an invalid cookiejar file - connection: Save cookiejar only when there's a Set-Cookie header in the response - Add oscerr.ProjectError class needed by core.delete_project() - Fix all errors reported by pylint - spec file: - drop upstreamed patches: - 1217.patch - 1228.patch - Recommend python3-distro - needed for setting the default editor by distro- add 1228.patch to fix regressions in get_request_list - add 1217.patch to fix correct variable (prj instead of project)1.0.0b3 - add create-pbuild-config (cpc) command which allows to create a working config for pbuild tool based on OBS server side data - branch: Add --disable-build option - linkpac: Add --disable-build option - linkpac: Fix linking a locked package by not copying the lock to the target package - sr: Do not error out on using an alias to apiurl - rq: Fix the -M/--mine option to show only requests created by the user - rq list: Avoid conflict between --all and --state options - rq list: Fix traceback when there's no search criteria - rq list -i: Enable forwarding requests to the parent projects - rq show: Improve output - sr accept: Enable forwarding requests to the parent projects - setlinkrev: Write a log message on setting a revision - buildhistory: Produce proper output using build_table() and a CSV writer - buildinfo: Bring the -d/--debug option back - build: Bring the --verbose' option back as --verbose-mode=MODE to avoid conflicts with global --verbose - service: Add verbose option for running local services - service: Fix manual run of source service - conf: Avoid crash when deleting a password - connection: Fix the '9 - review the server certificate' option in cert trust prompt - Handle uncompressed Debian packages - Fix osc add for github /archive/ URLs - Handle empty EDITOR=/PAGER= env variable properly - Mute ssl/tls deprecation warnings - Add "--extra-pkgs-from" ("-X") option to osc build. - Fix a scenario when OBS sends unexpected md5s - Replace core.findpacs() with Package.from_paths() and Package.from_paths_nofail() - Always list requests with 'new,review' states by default - Change get_request_collection() not to list declined requests by default - Add information about osc vc using the EDITOR envar to the help output - Improve argument handling in many commands - Implement Store class handling '.osc' dirs, migrate some code to it - Code cleanups - Deprecated: - core.get_request_list() function - core.store_write_apiurl() function - core.store_read_scmurl() function - core.store_read_apiurl() function 1.0.0b2 - Support ssh-agent forwarding - ssh auth: Avoid password prompt when using TransientCredentialsManager - Properly handle missing ssh-keygen and ssh-add - Add ssh-keygen as a recommends for ssh MFA authentication - Print user and apiurl when prompting for a password - Pass apiurl to all auth handlers - Do not list declined requests by default - Fix 'osc up' on project level for scm packages - Lock cookiejar to prevent unnecessary signature auth - Process input with configurable project separators - Add project_separator to config file - Fix race condition in using .old directory in Serviceinfo.execute() - Send HTTP header Accept: application/xml - Print URLs and xpaths in debug rather than verbose mode - Inject no-op print() into http.client when http debugging is off - Reset "file current position" on errors in HTTP requests - Create ~/.config/osc/trusted-certs if not exists - conf: Convert defaults to their expected types - Document `build` repo selection logic - Add debug print for REPO (and desc just in case) - Shortened `build` help and add debug prints - Replace unmaintained cmdln.py with a custom code - Allow intermixing positional and optional args - Add global options to subcommands so they can be specified in any place - Remove the '-A' option from the 'maintainer' command - Replace the '-q/--hide-legend' option in 'prjresults' command with global '-q/--quiet' option - Remove duplicated --debug and --verbose options - Add version command to print the used version - Remove deprecated 'plaintext_passwd' config option - Remove deprecated 'GnomeKeyringCredentialsManager' and related code - Remove deprecated '--skip-validation' option from the 'commit' command - Remove deprecated '--oldpkg', '--oldprj' options from the 'rdiff' command - Remove deprecated subcommands 'create', 'list', 'log', 'show', 'decline', 'accept', 'delete', 'revoke' from the 'submitrequest' command - Remove deprecated '--seperate-requests' option from the 'submitrequest' command - Remove deprecated '--raw' option from the 'develproject' command - Remove deprecated '--maintained' option from the 'search' command - Remove deprecated 'rlog' command - Remove deprecated 'rprjresults' command - Remove deprecated 'rresults' command - Remove deprecated 'results_meta' command - Remove deprecated 'deleteprj' command - Remove deprecated 'deletepac' command - Remove deprecated 'editmeta' command - Remove deprecated Request.get_creator() - Remove PROJ_PACK.txt file, move its content to GitHub issue #1099 - Remove TODO file, move its content to GitHub issue #1098 - Remove fuse support - Remove unused run_bandit.sh - Remove obsolete osc_expand_link.pl - Remove unused icons - Replace imp with importlib - Move files from dist/ to contrib/ - Move osc.fish under contrib/ - Move python package metadata from setup.py to setup.cfg - Move __version__ from osc.core to osc - Fix resource warnings (unclosed files) - 1.0.0b1 - drop Python 2 support - switch http_request() to urllib3 and cryptography (drop M2Crypto dependency) - warn when using HTTP connection, Make HTTPS the default - add XDG compatible location for osc plugins - replace osc-wrapper.py with entry_points. - core: add functions for glob matching of multibuild flavors - fix multibuild packages in all osc commands where applicable - do not ask for login for -h,--help - move format_table() to util.helper - code cleanups- 0.182.1 - Fix crash due to list having no copy attribute on python2 - Fix crash in ssh auth when .ssh directory is missing - 0.182.0 - fix build on SLE12 / python 2.7 - SSH auth: Fix getallmatchingheaders() output to correspond with headers.get_all() - send HTTP header Accept: application/xml - git_version: return version from the source code if there's no matching tag - spec file: - Revert to python2 on SLE12 - Recommend openssh for ssh key auth- Fix M2Crypto package name on SLE12 - Do not build with python3.6 - it does not have libraries nothing provides python36-M2Crypto > 0.19 nothing provides python36-chardet- fix building on distros that are not openSUSE or SLE- build against python3.6 for SLE12 and older- 0.181.0 - fix crash when 'pass' is not set in the config file - add missing attributes to Package when scm_url is set - fix failure to create config in current dir - update list of considered file names for ssh key autodetection - allow users to prefer ssh key over password auth - ssh: recognize gpg keys (yubikey usage) - fix operating on _project meta - revert "interpretation of string literals in messages" that broke unicode handling - fix product build rpm caching - enable md5 revisions in osc log - parseRevisionOption(): raise an exception on invalid revisions- 0.180.0 - warn when trying to commit a prj/pac managed in scm - fix crash on "osc up" for git based package/projects - don't traceback on invalid credentials manager - improve README, rename it to README.md - declare OscHTTPSignatureAuthHandler as a new-style class - remove illegal character in comment- 0.179.0 - signature (ssh key) authetication fixes (RSA key support, skip binary files) - commandline: handle calls without arguments gracefully - use percent-quoted url for download url generation - osc co/up: highlight pending requests' header - get_results(): fix check for empty details - another exception for github URLs for "osc add" - update Sphinx configuration, documentation fixes - make Sphinx optional in setup.py not to break package builds - support flavors in aggregatepac - check if repos provided to aggregatepac command exist - several coding style fixes- 0.178.0 - EXPERIMENTAL: git repository handling * init command is working inside of a git repository * downloadassets command fetches references assets from build description * checkout is cloning from git - EXPERIMENTAL: signature (ssh key) authetication * allow to configure 'sshkey' option in the config * try to guess ssh key from the keys added to ssh-agent * rename OscHTTPBasicAuthHandler to OscHTTPAuthHandler * simplify bad auth retry workaround needed for old python versions - add support for building preinstall images - add support for building Helm charts - show the md5s that are failing to validate after fetching a package - add missing space to copypac completion - never require login in the help command - linkdiff: raise an exception when an added file is missing - run tests via calling 'setup.py test' - several coding style fixes - spec file: - run tests via calling 'setup.py test' - disabled tests in debian.rules- 0.177.0 * switch to python3 in osc-wrapper and make python3 explicit * allow formatting of the sccache uri * show repository state and details * a few minor fixes and improvements in credentials handling * order credential managers by priority * kernel keyring is now supported as credential manager * support regex based name filtering in core.get_prj_results() * revision parsing parseRevisionOption(): cleanup and make logic consistent * use sr_ids[0] for superseding (fixes issues with superseding requests containing many packages * download logs and metadata in subdirs named by packages when osc getbinaries is issued on project level or in multibuild case - spec file: * recommed python-keyring-keyutils for new kernel keyring backend- 0.176.0 * add -F option to osc submitreq * add --verbose option to build command * fix getbinaries command to fetch also multibuild packages * fix getbinaries -M/--multibuild-package option usage * skip fetching metadata and logs in the getbinaries command * do not download a bdep with a hdrmd5 from the api by default * re-download file from API when hdrmd5 doesn't match * honor --download-api-only option * remove Windows from the supported operating systems * fix license in setup.py * add py3.10 and py3.11 to the classifiers in setup.py * use the latest version of COPYING file from gnu.org * fix crash on terminal resize during download * do not fail with a traceback in case of a config error * preserve oscrc symlink when writing conf file * escape % character in binary download URLs * fix printing paths to built debian packages- 0.175.1: * Modified SPEC file to be more compatible with KOJI and COPR. * * Modified SPEC file to use python3 for CentOS/RHEL 7 * * Modified SPEC file use fedora/rhel version macros. * * Changed perl to sed in %install section of SPEC file.- 0.175.0: * do not crash when running "osc search --binary --verbose foo" * don't run source services when building outside of an OSC package working copy * fix XDG_CONFIG_HOME * offer a force ("f") choice in metafile.edit's error handling code path * fix XPath used in search requests * add support for creating a workflow token via "osc token" * handle missing os.sysconf more gracefully * detachbranch: remove _link when link target got removed * improve error message in case of an URLError * fix downloading from mirrors * avoid sending entire projects on "osc mr" * fix hdmrd5 check of local cached files * improve logic for conffile mode handling- 0.174.0: * fix password deletion via "osc config -d pass" * support changing the password store via "osc config - -select-password-store") * support slash syntax in osc browse ("osc browse prj/pkg" is equivalent to "osc browse prj pkg") * fix the commit of a frozen package wc * fix local product builds using obsrepositories:/ directives * print a meaningful message when trying to a commit a non-existent package- force Mageia >= 8 builds to python3; python2 is deprecated in Mageia 8 and up.- 0.173.0: * add showlinked command to show all references of packages linking to a given one * add build --shell-after-build flag. It can also be set via .oscrc. * add build --stage flag. Useful for example for fixing file lists and just running the install section to see the result of it (use --stage=i=). Check the help for more details. * allow to run build script as non-root, by setting su-wrapper empty => osc is not guessing anymore if user builds are wanted * add support for cross arch local build using a sysroot * support slash notation in "osc creq -a args" * add "--force" option to the "osc add" command (can be used to override the exclude_glob config option) * support the commit of arbitrary sized files * add support for sccache- Install macros.osc to %{_rpmmacrodir}, not to /etc/rpm.- reformat spec with a recent version of the obs-service-format_spec_file service- 0.172.0: * support --lastsucceeded/--last-succeeded in "osc buildlog", "osc remotebuildlog" + friends (perform the corresponding operation on the build log of the last successful build) * fix pypi deployment via Travis CI * several fixes in request related code paths (no double html_escape of a request's description etc.) * support local builds in a systemd-nspawn container * fix potential TypeErrors+UnicodeEncodeErrors in the util.cpio and util.ar modules * support local flatpak builds (requires a recent build version) * "osc init " works for a non-existent (server-side) project * .old dir support for source services so that some services have access to the results of a previous service run- 0.171.1 * maintainer search: lookup via package name by default and binary as fallback * fix crash on console resize when downloading files during build * add proper repourls to osc reporuls * new command osc releaserequest: This command is used to transfer sources and binaries without rebuilding them. It requires defined release targets set to trigger="manual". * some improvements on output of help and error messages- 0.170.0 * fix code for python3.8 and python3.9 * remove dead code * fix tests * don't use chardet to guess encoding. utf-8 or latin-1 is now assumed This will speed up decoding (bsc#1173926) * escape sequences are interpreted correctly on -m osc sr -m "1st line\n2nd line" results in 1st line 2nd line * add status filter to osc results * add --brief to osc prjresults Gives: build openSUSE_Leap_15.1 x86_64 succeeded build openSUSE_Leap_15.0 x86_64 succeeded build openSUSE_Leap_15.0 armv7l unresolvable build openSUSE_Factory_ARM armv7l succeeded build openSUSE_Factory_ARM aarch64 succeeded * osc prjresults -s : status can now be the long text like "succeeded", "failed" * improve error message if osc service is not run in working directory * web links are now also printed for osc mr when print_web_links=1 is set - Spec: * re-enable test suite- Really fix path for fish completion file to /usr/share/fish/vendor_completions.d and fix its permissions.- 0.169.1 * add --ccache option to osc getbinaries- 0.169.0 * improve speed and usability of osc bash completion * switch packagequery.py to return only bytes * improved some error messages * osc add: support git@ (private github) or git:// URLs correctly * split dependson and whatdependson commands * support for osc build --shell-cmd * Fix kiwi build with --prefer-pkgs * add pkg-ccache support for osc build * fix security issue (bsc#1122675, CVE-2019-3681) do not allow '/' in filename- 0.168.2 * use helper method _html_escape to enable python3.8 and python2.* compatibility (boo#1166537)- Fix support for python38, osc#763- Spec: temporary disable tests as they explode under python 3.8 * Needs to compare xml using testtools.matchers.MatchesStructure- Spec: * fix destination of fish completion file to /usr/share/fish/vendor_completions.d- 0.168.0 * MR creation honors orev now (bsc#1160446) * allow "osc r --vertical" for projects * several typo fixes * cleanup old functions and remove python2.6 compat code * support zstd arch linux files in local build * fix deleterequest for repositories * append --norootforbuild as default to build command * fix decoding in interactive request mode * use signdummy for product builds * print release project when creating MR * improve SSLError message for TLSv1 validation * osc maintained --version prints the version of each maintained package * print web url links after creating requests (New general bool option 'print_web_links' must be set in oscrc) * fix checkout_no_colon on project level * handle empty release number of rpm packages in build.py * handle bytes vs. str error when parsing meta * custom exception if importing m2crypto fails * fix missing oscerr import in util.helper * several fixes for keyring handling * fix arch zst magic in util.packagequery- Ship fish completion file.- Spec: * Recommend python3-keyring when using python3- 0.167.2 * fix regression in osc chroot * fix broken importsrcpkg- 0.167.1 - fix cpio fetch error handling - support local build using RedHat rpm-md modules - fix local build outside of the working copy of a package. (fixes boo#1136584) - Use the distro module for linux platform detection for python3.8 compatibility- 0.167.0 * Added --lastsucceeded option for logfile display (requires OBS 2.11) * osc shell/chroot/wipe is now handled via build script (working for chroot and KVM only atm) * osc build/shell features: - --vm-type=qemu support for cross architecture builds - additional debug packages are read from build config now (extra-pkgs definition is therefore by default empty now) - --vm-disk-size= switch supported (has only an effect on clean builds) - repository, architecture and vm_type from last build is automatically reused if not specified otherwise. - support building for kiwi products using obsrepositories:/ - support local building using RedHat rpm-md modules * fix decoding for osc aggregatepac - added Conflicts: build < 20191205. The new osc shell/chroot features might not work with older build scripts - removed version dpendency for Recommends: build. Does not work anyway. - added 0%{?centos_version} >= 800 to some %if statemets to enable build of python3 version on CentOS 8 and higer- 0.166.2 * Don't enforce password reuse (boo#1156501) * Config option check_for_requests_on_action is now activated by default. Use check_for_request_on_action = 0 in oscrc to disable it * osc vc --file=foo bar.changes now writes the content from foo into bar.changes instead of creating a new file (boo#1155953) * fix output for missing pubkey when using http_debug=1 on osc build * fix crash of osc linkpac when there is already a _link- 0.166.1 * emergency fix for credentials handling: - in case of an old passx entry in oscrc osc did not work at all. Now we check in the compat code if we have an passx entry.- 0.166.0 (boo#1154972) * New password handling backend. Supported password stores: - Plaintext password - Obfuscated password - python-keyring (kwallet, secret store) - gnome-keyring - no store at all (ask for the password every time * Refactor initial setup of osc (to select password store) * fix decoding on osc lbl (boo#1137477) * fix breakage of submitting complete branches back as an submit request that contain packages without a change. * fix error with plugins and osc -h * various decoding improvements * Transfer the name of the input file to vc instead of the content (obs-build/vc will do the rest and open the file). * support appimage builds * new command browse. (opens a browser opening the project or package) * new option --incoming for osc rq and osc review to only show only incoming reqeusts for a project. - new Recommends for xdg-utils. osc-browse uses xdg-open to open the url to the project/package in an internet browser- 0.165.4 (boo#1144211) * allow optional fork when creating a maintenance request * fix RPMError fallback * fix local caching for all package formats * fix appname for trusted cert store * osc -h does not break anymore when using plugins- 0.165.3 (boo#1142662) * switch to difflib.diff_bytes and sys.stdout.buffer.write for diffing. This will fix all decoding issues with osc diff, osc ci and osc rq -d * fix osc ls -lb handling empty size and mtime * removed decoding on osc api command. * fixed broken TLS certificate handling (boo#1142518, CVE-2019-3685)- 0.165.2 (boo#1140697) * support different token operations (runservice, release and rebuild) (requires OBS 2.10) * fix osc token decode error * offline build mode is now really offline and does not try to download the buildconfig * osc build -define now works with python3 * some spelling fixes * properly parse the error message on osc meta -e * osc maintainer -s now works with python3 * simplified and fixed osc meta -e (boo#1138977) * osc lbl now works with non utf8 encoding (boo#1129889) * add simpleimage as local build type- Spec: * add Provides: %{use_python}-osc so that other packages can require the correct version (either python2-osc or python3-osc)- 0.165.1 (boo#1138165) * fix oscssl "urldefrag is not defined error" * osc release command now python3 compatible * add more decode logic in get_commitlog * osc add in compressed mode now works with python3 * osc getbinaries now prints the output instead of using the quiet mode as a default- osc-0.165.0.tar.gz now contains the correct version (tag 0.165.0)- simplify "BuildArch:" decission if statements. (Avoid double BuildArch lines) - Fedora29: m2crypto for python3 is named python3-m2crypto now- 0.165.0 * full python3 compatibility (bsc#1125243) fixes bsc#1131512, bsc#1129889, bsc#1129757 * removed following patches (now upstream): 001_helper.patch 002_man_page_building.patch 003_setup.patch 004_babysitter.patch 005_oscssl.patch 006_build.patch 007_core.patch 008_commandline.patch 009_fetch.patch 010_fix-decoding_in_canonname.patch 011_repodata.patch 012_packagequery.patch - spec file modifications: * noarch only on non-SUSE distros and newer SUSE Versions > 11 * disable testsuite on older SUSE Versions (unittest module too old)- moved Recommends for diffstat to suse specific section.- added Buildrequires and Requires for python-chardet * needed for determining the encoding of objects (Requires) * needed also for testing in %check section (BuildRequires)- activate tests for osc - add Buildrequires and Recommends for diffstat osc prdiff --diffstat needs it The testsuite needs it (Therefore the BuildRequires- modified patch 008_commandline.patch * fix broken sorted call on osc my sr when sorting the submit requests by reqid. (gh#519) - modified patch 007_core.patch * fix slowdown of rbl with readline(bufsize) function. (bsc#1127932)- fix for bsc#1126055 (osc build -p fails with TypeError): * add 011_repodata.patch * add 012_packagequery.patch * modified 006_build.patch, 010_fix-decoding_in_canonname.patch - fix for bsc#1126058 (osc buildinfo -p fails with TypeError): * modified 008_commandline.patch- add 010_fix-decoding_in_canonname.patch RpmQuery.canonname returns broken filename due to missing decoding.- osc is now noarch for all - fixed %license- use %bcond_with(out) python3 to simplify spec file - add and apply patches only in python3 case - replace shebang in osc-wrapper.py depending on python version- rewrite 009_fetch.patch some versions of python do not support rb'some_text' - overwrite python_sitelib on Tumbleweed and SLE >= 15 - swich to python3-rpm on Tumbleweed and SLE >= 15. Otherwise python2 will be installed- use python3 on Tumbleweed and SLE >= 15- cpio download of needed packages during build is not possible, because cpio.py has now a bytes only api and the decoding needs to be done in the fetch module instead. added: 009_fetch.patch- added patches to support python3 until the PR are merged upstream (bsc#1125243): - 001_helper.patch - 002_man_page_building.patch - 003_setup.patch - 004_babysitter.patch - 005_oscssl.patch - 006_build.patch - 007_core.patch - 008_commandline.patch- 0.164.2 - deleterequest for entire projects needs the --all option as additional protection - rewrite packagequery to support python3 - rewrite oscerr module to support python3 - rewrite archqeury and debquery to support python3 - Export vc env vars when running a source service- 0.164.1 - rewrite cpio handling to support python3 - rewrite ar module to support python3 - enable fetch module to support python3 - rework progressbar hanlding (if module is not present) - improve os_path_samefile in core.py- 0.164.0 - add support for approved requests (requires OBS 2.10) - fix various multibuild problems - improved and fixed various help texts - check constraints without local checkout - check out deleted sources (osc co -D) - replace urlgrabber module with own module - use progressbar module instead of urlgrabber to draw progress bars - show buildinfo for alternative projects (--alternative-project) - run release job immediately (osc release --no-delay) - build results on project level can now be watched (osc prjresults --watch) - removed python-urlgrabber requieres. (Not used with 0.164.0) - added recommends for python[2]-progressbar- 0.163.0 * add sendsysrq command (requires OBS 2.10) * add addcontainers command (requires OBS 2.10) * enable statistics for local builds * add new options to diff command: - -unexpand for local diffs only (bsc#1089025) - -meta for diffing meta files * add support for podman/buildag engine (docker variation) * support realname in .changes files * fix DISTURL checkout for package containers using a multibuild flavor * Disable ssl session resumption- add Requires: python2 for Tumbleweed. Otherwise just python-base is installed which does not contain ssl.py [bnc#1097996] - removed duplicate entry in appimage.yml to prevent double builds- 0.162.1 - Send sha256 hashes for tracked files if the wc is pulled/linkrepair- 0.162.0 - Additional file content check with SHA256 when using OBS 2.9 - support deb format with control.tar.xz- 0.161.1 - Fix python 2.6 SyntaxError (multiple context expressions)- 0.161 - show lintlogs in interactive request review mode - fix potential shell injections - allow multiple --repo and --arch options in prjresults - cleanup babysitter.by - supersede existing requests if --yes is passed to osc sr - prepend request summary to diff in interactive mode - show issues(bugs) in interactive diff mode- add Recommends: ca-certificates to enable TLS verification without manually installing them. [bnc#1061500]- 0.160 - support fissile build type - Container support for the package cache - Remove all untracked files during "osc clean" - Support the commit of a deleted, but non-existent package - triggerreason --multibuild-package option - improved status display - improved request listing filters- Provide non-deprecated plugin directory and macro for plugins.- add Recommends: obs-service-obs_scm- 0.159.0 - "osc buildhistory": show build duration - Support builds using native Docker build descriptions - Support usage of pre-build containers for Docker and KIWI builds - "osc build -M ..": fixed behaviour of falvoured builds - added switch to show only issues in rdiff - show build duration in build history - allow to cat/less files from deleted packages (using -D option) - Allow to override man-page date- 0.158.0 - cat/less/blame command: default to expand to stay in sync with checkout - add support for highly experimental native appimage.yml support - show package status when repository configuration is broken - add '--blame' option to osc meta command - try to autodetect local package when running 'osc build' - comment requests in interactive mode - fix github issue #236 (--no-cleanup not working) - fix wipebinaries to prevent wiping of complete repository - add '--build-opt' to osc build command - fix requests codebase to fit old obs versions- 0.157.2 - add compat code for older apis that do not support multibuild - fix ssl.connection instantiation in case of old M2Crypto - highly experimental support for appimage - fix local service run for non-existent (server-side) package- 0.157.1 - fix local build of kiwi images using obsrepositories://- 0.157 - add unpublish command (requires OBS 2.8) - add blame command (requires OBS 2.9) - results: show multibuild results by default - getbinaries: make .AppImage files executable - support operation in checked out package for cat/less/blame - add comment command - improved build recipe selection - added multibuild (-M) to commands: buildlog, remotebuildlog, buildinfo, build, buildhistory, jobhistory, rebuild, restartbuild/abortbuild, wipebinaries, getbinaries - add checkconstraints command - add workerinfo command- 0.156.0 - highlight scheduled jobs with dispatch problems (due to constraints) - allow to specify a log message in lock command - Add '--wipe' option to osc chroot for deleting buildroots - Add '--vm-memory' option to osc build - add --multibuild to results command for showing all packages of a multibuild config - add --multibuild-package option to results command for showing only one package of the multibuild config- Install bash completion in the debian package- 0.155.1 - fixed "osc add" of new package container- 0.155.0 - osc service runall: runs all service local, independend of the mode This allows to create local files even when disabled or just created at buildtime - support snapcraft.yaml build descriptions - "osc add" of a directory offers to create an archive for uploading it - support usage or preinstall images in local builds - revision control options for "meta prj" - bugfixes and documentation updates- make a noarch package if suse_version >= 1120 (since 1120 python noarch packages are supported)- 0.154.0 - support for new obs_scm services (OBS 2.7 needed) - show errors on branch failures again- Recommend powerpc32 to avoid 'osc build' failures- 0.153.0 - "my sr" is using the server side request collection to get right results - maintenance request offers to supersede old, but still open requests - add build --vm-telnet option for getting debug shell in KVM builds - add buildhistory --limit option OBS 2.7 only: - add "addchannels" and "enablechannel" commands - support new package instances on branching when using -N parameter - add --linkrev option to branch command - add --add-repository-block option to branch command - add --add-repository-rebuild option to branch command - add service merge command - add service wait command- 0.152.0 - add support searching for groups via "group:" prefix - show possible used incident projects on "maintained" command OBS 2.7 only: - support buildtime source services - support maintenance_incident requests with acceptinfo data - support maintenance_release requests with acceptinfo data- Fix rpm URL. gitorious is shut down end of May 2015.- Recommend sudo (needed for osc build)- 0.151.2 - improved error loging- 0.151.1 - fixing regression running "osc service run"- 0.151.0 - fixed shell command injection via crafted _service files CVE-2015-0778 boo#901643 - fix times when data comes from OBS backend - support updateing the link in target package for submit requests - various minor bugfixes- 0.150.1 - minor syntax fix- 0.150.0 - support local builds using builenv (for same build environment as a former build) - add "osc api --edit" option to be able to edit some meta files directly - follow the request order of the api (sorting according to priorization) - add mr --release-project option for kgraft updates - add support for makeoriginolder in request- fix bash completion (complete is not propagated into subshells, but PROFILEREAD is, so the setup script is never executed)- fixed #123 (wrong requires for Fedora 20)- 0.149 - removed "--diff" option from the "createrequest" command - introduced new "vc-cmd" config option, which is used to specify the path to the vc script - various bugfixesh03-ch2c 1762852287  !"#$%&'()*+,-./0123456689:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\^_`abcdefghijklmnopqrstuvwxyz{||~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTTVWXYZ[\]^_`abcdefghijjllnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@AACCEFGGIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmn1.22.0-150600.15.9.11.22.0-150600.15.9.11.22.0-150600.15.9.11.22.0-150600.15.9.1    !"#$%&'(()osc.cshgit-obsgit-osc-precommit-hookoscobsosc-pluginsoscosc-1.22.0-py3.6.egg-infoPKG-INFOSOURCES.txtdependency_links.txtentry_points.txtrequires.txttop_level.txtOscConfigParser.py__init__.py__pycache__OscConfigParser.cpython-36.opt-1.pycOscConfigParser.cpython-36.pyc__init__.cpython-36.opt-1.pyc__init__.cpython-36.pycbabysitter.cpython-36.opt-1.pycbabysitter.cpython-36.pycbuild.cpython-36.opt-1.pycbuild.cpython-36.pycchecker.cpython-36.opt-1.pycchecker.cpython-36.pyccmdln.cpython-36.opt-1.pyccmdln.cpython-36.pyccommandline.cpython-36.opt-1.pyccommandline.cpython-36.pyccommandline_common.cpython-36.opt-1.pyccommandline_common.cpython-36.pyccommandline_git.cpython-36.opt-1.pyccommandline_git.cpython-36.pycconf.cpython-36.opt-1.pycconf.cpython-36.pycconnection.cpython-36.opt-1.pycconnection.cpython-36.pyccore.cpython-36.opt-1.pyccore.cpython-36.pyccredentials.cpython-36.opt-1.pyccredentials.cpython-36.pycfetch.cpython-36.opt-1.pycfetch.cpython-36.pycgrabber.cpython-36.opt-1.pycgrabber.cpython-36.pycmeter.cpython-36.opt-1.pycmeter.cpython-36.pycoscerr.cpython-36.opt-1.pycoscerr.cpython-36.pycoscssl.cpython-36.opt-1.pycoscssl.cpython-36.pycstore.cpython-36.opt-1.pycstore.cpython-36.pyc_private__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pycapi.cpython-36.opt-1.pycapi.cpython-36.pycapi_build.cpython-36.opt-1.pycapi_build.cpython-36.pycapi_configuration.cpython-36.opt-1.pycapi_configuration.cpython-36.pycapi_source.cpython-36.opt-1.pycapi_source.cpython-36.pyccommon.cpython-36.opt-1.pyccommon.cpython-36.pycpackage.cpython-36.opt-1.pycpackage.cpython-36.pycrequest.cpython-36.opt-1.pycrequest.cpython-36.pycapi.pyapi_build.pyapi_configuration.pyapi_source.pycommon.pypackage.pyrequest.pybabysitter.pybuild.pychecker.pycmdln.pycommandline.pycommandline_common.pycommandline_git.pycommands__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pycfork.cpython-36.opt-1.pycfork.cpython-36.pycperson.cpython-36.opt-1.pycperson.cpython-36.pycperson_register.cpython-36.opt-1.pycperson_register.cpython-36.pycperson_search.cpython-36.opt-1.pycperson_search.cpython-36.pycrepo.cpython-36.opt-1.pycrepo.cpython-36.pycrepo_add.cpython-36.opt-1.pycrepo_add.cpython-36.pycrepo_list.cpython-36.opt-1.pycrepo_list.cpython-36.pycrepo_remove.cpython-36.opt-1.pycrepo_remove.cpython-36.pycrmkpac.cpython-36.opt-1.pycrmkpac.cpython-36.pycfork.pyperson.pyperson_register.pyperson_search.pyrepo.pyrepo_add.pyrepo_list.pyrepo_remove.pyrmkpac.pycommands_git__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pycapi.cpython-36.opt-1.pycapi.cpython-36.pyclogin.cpython-36.opt-1.pyclogin.cpython-36.pyclogin_add.cpython-36.opt-1.pyclogin_add.cpython-36.pyclogin_gitcredentials_helper.cpython-36.opt-1.pyclogin_gitcredentials_helper.cpython-36.pyclogin_list.cpython-36.opt-1.pyclogin_list.cpython-36.pyclogin_remove.cpython-36.opt-1.pyclogin_remove.cpython-36.pyclogin_update.cpython-36.opt-1.pyclogin_update.cpython-36.pycmeta.cpython-36.opt-1.pycmeta.cpython-36.pycmeta_info.cpython-36.opt-1.pycmeta_info.cpython-36.pycmeta_list.cpython-36.opt-1.pycmeta_list.cpython-36.pycmeta_pull.cpython-36.opt-1.pycmeta_pull.cpython-36.pycmeta_reset.cpython-36.opt-1.pycmeta_reset.cpython-36.pycmeta_set.cpython-36.opt-1.pycmeta_set.cpython-36.pycpr.cpython-36.opt-1.pycpr.cpython-36.pycpr_cancel_scheduled_merge.cpython-36.opt-1.pycpr_cancel_scheduled_merge.cpython-36.pycpr_checkout.cpython-36.opt-1.pycpr_checkout.cpython-36.pycpr_close.cpython-36.opt-1.pycpr_close.cpython-36.pycpr_comment.cpython-36.opt-1.pycpr_comment.cpython-36.pycpr_create.cpython-36.opt-1.pycpr_create.cpython-36.pycpr_dump.cpython-36.opt-1.pycpr_dump.cpython-36.pycpr_get.cpython-36.opt-1.pycpr_get.cpython-36.pycpr_list.cpython-36.opt-1.pycpr_list.cpython-36.pycpr_merge.cpython-36.opt-1.pycpr_merge.cpython-36.pycpr_reopen.cpython-36.opt-1.pycpr_reopen.cpython-36.pycpr_review.cpython-36.opt-1.pycpr_review.cpython-36.pycpr_review_approve.cpython-36.opt-1.pycpr_review_approve.cpython-36.pycpr_review_decline.cpython-36.opt-1.pycpr_review_decline.cpython-36.pycpr_review_interactive.cpython-36.opt-1.pycpr_review_interactive.cpython-36.pycpr_search.cpython-36.opt-1.pycpr_search.cpython-36.pycpr_set.cpython-36.opt-1.pycpr_set.cpython-36.pycpr_show_patch.cpython-36.opt-1.pycpr_show_patch.cpython-36.pycrepo.cpython-36.opt-1.pycrepo.cpython-36.pycrepo_clone.cpython-36.opt-1.pycrepo_clone.cpython-36.pycrepo_fork.cpython-36.opt-1.pycrepo_fork.cpython-36.pycrepo_list.cpython-36.opt-1.pycrepo_list.cpython-36.pycssh_key.cpython-36.opt-1.pycssh_key.cpython-36.pycssh_key_add.cpython-36.opt-1.pycssh_key_add.cpython-36.pycssh_key_list.cpython-36.opt-1.pycssh_key_list.cpython-36.pycssh_key_remove.cpython-36.opt-1.pycssh_key_remove.cpython-36.pycstaging.cpython-36.opt-1.pycstaging.cpython-36.pycstaging_group.cpython-36.opt-1.pycstaging_group.cpython-36.pycstaging_remove.cpython-36.opt-1.pycstaging_remove.cpython-36.pycapi.pylogin.pylogin_add.pylogin_gitcredentials_helper.pylogin_list.pylogin_remove.pylogin_update.pymeta.pymeta_info.pymeta_list.pymeta_pull.pymeta_reset.pymeta_set.pypr.pypr_cancel_scheduled_merge.pypr_checkout.pypr_close.pypr_comment.pypr_create.pypr_dump.pypr_get.pypr_list.pypr_merge.pypr_reopen.pypr_review.pypr_review_approve.pypr_review_decline.pypr_review_interactive.pypr_search.pypr_set.pypr_show_patch.pyrepo.pyrepo_clone.pyrepo_fork.pyrepo_list.pyssh_key.pyssh_key_add.pyssh_key_list.pyssh_key_remove.pystaging.pystaging_group.pystaging_remove.pyconf.pyconnection.pycore.pycredentials.pyfetch.pygit_scm__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pycconfiguration.cpython-36.opt-1.pycconfiguration.cpython-36.pycmanifest.cpython-36.opt-1.pycmanifest.cpython-36.pycstore.cpython-36.opt-1.pycstore.cpython-36.pycconfiguration.pymanifest.pystore.pygitea_api__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pycbranch.cpython-36.opt-1.pycbranch.cpython-36.pyccommon.cpython-36.opt-1.pyccommon.cpython-36.pycconf.cpython-36.opt-1.pycconf.cpython-36.pycconnection.cpython-36.opt-1.pycconnection.cpython-36.pycexceptions.cpython-36.opt-1.pycexceptions.cpython-36.pycfork.cpython-36.opt-1.pycfork.cpython-36.pycgit.cpython-36.opt-1.pycgit.cpython-36.pycgit_diff_generator.cpython-36.opt-1.pycgit_diff_generator.cpython-36.pycissue_timeline_entry.cpython-36.opt-1.pycissue_timeline_entry.cpython-36.pycjson.cpython-36.opt-1.pycjson.cpython-36.pycpr.cpython-36.opt-1.pycpr.cpython-36.pycpr_review.cpython-36.opt-1.pycpr_review.cpython-36.pycrepo.cpython-36.opt-1.pycrepo.cpython-36.pycssh_key.cpython-36.opt-1.pycssh_key.cpython-36.pycstaging.cpython-36.opt-1.pycstaging.cpython-36.pyctardiff.cpython-36.opt-1.pyctardiff.cpython-36.pycuser.cpython-36.opt-1.pycuser.cpython-36.pycbranch.pycommon.pyconf.pyconnection.pyexceptions.pyfork.pygit.pygit_diff_generator.pyissue_timeline_entry.pyjson.pypr.pypr_review.pyrepo.pyssh_key.pystaging.pytardiff.pyuser.pygrabber.pymeter.pyobs_api__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pycattributes.cpython-36.opt-1.pycattributes.cpython-36.pycenums.cpython-36.opt-1.pycenums.cpython-36.pycflag.cpython-36.opt-1.pycflag.cpython-36.pycgroup_role.cpython-36.opt-1.pycgroup_role.cpython-36.pyckeyinfo.cpython-36.opt-1.pyckeyinfo.cpython-36.pyckeyinfo_pubkey.cpython-36.opt-1.pyckeyinfo_pubkey.cpython-36.pyckeyinfo_sslcert.cpython-36.opt-1.pyckeyinfo_sslcert.cpython-36.pyclinkinfo.cpython-36.opt-1.pyclinkinfo.cpython-36.pycpackage.cpython-36.opt-1.pycpackage.cpython-36.pycpackage_devel.cpython-36.opt-1.pycpackage_devel.cpython-36.pycpackage_revision.cpython-36.opt-1.pycpackage_revision.cpython-36.pycpackage_sources.cpython-36.opt-1.pycpackage_sources.cpython-36.pycpackage_sources_file.cpython-36.opt-1.pycpackage_sources_file.cpython-36.pycperson.cpython-36.opt-1.pycperson.cpython-36.pycperson_owner.cpython-36.opt-1.pycperson_owner.cpython-36.pycperson_role.cpython-36.opt-1.pycperson_role.cpython-36.pycperson_watchlist.cpython-36.opt-1.pycperson_watchlist.cpython-36.pycperson_watchlist_package.cpython-36.opt-1.pycperson_watchlist_package.cpython-36.pycperson_watchlist_project.cpython-36.opt-1.pycperson_watchlist_project.cpython-36.pycperson_watchlist_request.cpython-36.opt-1.pycperson_watchlist_request.cpython-36.pycproject.cpython-36.opt-1.pycproject.cpython-36.pycproject_devel.cpython-36.opt-1.pycproject_devel.cpython-36.pycproject_link.cpython-36.opt-1.pycproject_link.cpython-36.pycproject_maintenance_maintains.cpython-36.opt-1.pycproject_maintenance_maintains.cpython-36.pycrepository.cpython-36.opt-1.pycrepository.cpython-36.pycrepository_download.cpython-36.opt-1.pycrepository_download.cpython-36.pycrepository_download_master.cpython-36.opt-1.pycrepository_download_master.cpython-36.pycrepository_hostsystem.cpython-36.opt-1.pycrepository_hostsystem.cpython-36.pycrepository_path.cpython-36.opt-1.pycrepository_path.cpython-36.pycrepository_releasetarget.cpython-36.opt-1.pycrepository_releasetarget.cpython-36.pycrequest.cpython-36.opt-1.pycrequest.cpython-36.pycrequest_action.cpython-36.opt-1.pycrequest_action.cpython-36.pycrequest_action_acceptinfo.cpython-36.opt-1.pycrequest_action_acceptinfo.cpython-36.pycrequest_action_group.cpython-36.opt-1.pycrequest_action_group.cpython-36.pycrequest_action_grouped.cpython-36.opt-1.pycrequest_action_grouped.cpython-36.pycrequest_action_options.cpython-36.opt-1.pycrequest_action_options.cpython-36.pycrequest_action_person.cpython-36.opt-1.pycrequest_action_person.cpython-36.pycrequest_action_source.cpython-36.opt-1.pycrequest_action_source.cpython-36.pycrequest_action_target.cpython-36.opt-1.pycrequest_action_target.cpython-36.pycrequest_history.cpython-36.opt-1.pycrequest_history.cpython-36.pycrequest_review.cpython-36.opt-1.pycrequest_review.cpython-36.pycrequest_review_history.cpython-36.opt-1.pycrequest_review_history.cpython-36.pycrequest_sourcediff.cpython-36.opt-1.pycrequest_sourcediff.cpython-36.pycrequest_sourcediff_file_diff.cpython-36.opt-1.pycrequest_sourcediff_file_diff.cpython-36.pycrequest_sourcediff_file_new.cpython-36.opt-1.pycrequest_sourcediff_file_new.cpython-36.pycrequest_sourcediff_file_old.cpython-36.opt-1.pycrequest_sourcediff_file_old.cpython-36.pycrequest_sourcediff_files_file.cpython-36.opt-1.pycrequest_sourcediff_files_file.cpython-36.pycrequest_sourcediff_issue.cpython-36.opt-1.pycrequest_sourcediff_issue.cpython-36.pycrequest_sourcediff_new.cpython-36.opt-1.pycrequest_sourcediff_new.cpython-36.pycrequest_sourcediff_old.cpython-36.opt-1.pycrequest_sourcediff_old.cpython-36.pycrequest_state.cpython-36.opt-1.pycrequest_state.cpython-36.pycscmsync_obsinfo.cpython-36.opt-1.pycscmsync_obsinfo.cpython-36.pycserviceinfo.cpython-36.opt-1.pycserviceinfo.cpython-36.pycsimple_flag.cpython-36.opt-1.pycsimple_flag.cpython-36.pycstatus.cpython-36.opt-1.pycstatus.cpython-36.pycstatus_data.cpython-36.opt-1.pycstatus_data.cpython-36.pyctoken.cpython-36.opt-1.pyctoken.cpython-36.pycattributes.pyenums.pyflag.pygroup_role.pykeyinfo.pykeyinfo_pubkey.pykeyinfo_sslcert.pylinkinfo.pypackage.pypackage_devel.pypackage_revision.pypackage_sources.pypackage_sources_file.pyperson.pyperson_owner.pyperson_role.pyperson_watchlist.pyperson_watchlist_package.pyperson_watchlist_project.pyperson_watchlist_request.pyproject.pyproject_devel.pyproject_link.pyproject_maintenance_maintains.pyrepository.pyrepository_download.pyrepository_download_master.pyrepository_hostsystem.pyrepository_path.pyrepository_releasetarget.pyrequest.pyrequest_action.pyrequest_action_acceptinfo.pyrequest_action_group.pyrequest_action_grouped.pyrequest_action_options.pyrequest_action_person.pyrequest_action_source.pyrequest_action_target.pyrequest_history.pyrequest_review.pyrequest_review_history.pyrequest_sourcediff.pyrequest_sourcediff_file_diff.pyrequest_sourcediff_file_new.pyrequest_sourcediff_file_old.pyrequest_sourcediff_files_file.pyrequest_sourcediff_issue.pyrequest_sourcediff_new.pyrequest_sourcediff_old.pyrequest_state.pyscmsync_obsinfo.pyserviceinfo.pysimple_flag.pystatus.pystatus_data.pytoken.pyobs_scm__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pycfile.cpython-36.opt-1.pycfile.cpython-36.pyclinkinfo.cpython-36.opt-1.pyclinkinfo.cpython-36.pycpackage.cpython-36.opt-1.pycpackage.cpython-36.pycproject.cpython-36.opt-1.pycproject.cpython-36.pycserviceinfo.cpython-36.opt-1.pycserviceinfo.cpython-36.pycstore.cpython-36.opt-1.pycstore.cpython-36.pycfile.pylinkinfo.pypackage.pyproject.pyserviceinfo.pystore.pyoscerr.pyoscssl.pyoutput__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pycinput.cpython-36.opt-1.pycinput.cpython-36.pyckey_value_table.cpython-36.opt-1.pyckey_value_table.cpython-36.pycoutput.cpython-36.opt-1.pycoutput.cpython-36.pyctty.cpython-36.opt-1.pyctty.cpython-36.pycwidechar.cpython-36.opt-1.pycwidechar.cpython-36.pycinput.pykey_value_table.pyoutput.pytty.pywidechar.pypy.typedstore.pyutil__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pycar.cpython-36.opt-1.pycar.cpython-36.pycarchquery.cpython-36.opt-1.pycarchquery.cpython-36.pyccpio.cpython-36.opt-1.pyccpio.cpython-36.pycdebquery.cpython-36.opt-1.pycdebquery.cpython-36.pycgit_version.cpython-36.opt-1.pycgit_version.cpython-36.pychelper.cpython-36.opt-1.pychelper.cpython-36.pycmodels.cpython-36.opt-1.pycmodels.cpython-36.pycpackagequery.cpython-36.opt-1.pycpackagequery.cpython-36.pycrepodata.cpython-36.opt-1.pycrepodata.cpython-36.pycrpmquery.cpython-36.opt-1.pycrpmquery.cpython-36.pycsafewriter.cpython-36.opt-1.pycsafewriter.cpython-36.pycxdg.cpython-36.opt-1.pycxdg.cpython-36.pycxml.cpython-36.opt-1.pycxml.cpython-36.pycxpath.cpython-36.opt-1.pycxpath.cpython-36.pycyaml.cpython-36.opt-1.pycyaml.cpython-36.pycar.pyarchquery.pycpio.pydebquery.pygit_version.pyhelper.pymodels.pypackagequery.pyrepodata.pyrpmquery.pysafewriter.pyxdg.pyxml.pyxpath.pyyaml.pymacros.oscgit-obs.bashosc.bashoscAUTHORSNEWSREADME.mdfishvendor_completions.dgit-obs.fishosc.fishoscCOPYINGosccompletezshfunctionsCompletiongit-obs.zshosc.zshosc-plugins/etc/profile.d//usr/bin//usr/lib/git//usr/lib//usr/lib/python3.6/site-packages//usr/lib/python3.6/site-packages/osc-1.22.0-py3.6.egg-info//usr/lib/python3.6/site-packages/osc//usr/lib/python3.6/site-packages/osc/__pycache__//usr/lib/python3.6/site-packages/osc/_private//usr/lib/python3.6/site-packages/osc/_private/__pycache__//usr/lib/python3.6/site-packages/osc/commands//usr/lib/python3.6/site-packages/osc/commands/__pycache__//usr/lib/python3.6/site-packages/osc/commands_git//usr/lib/python3.6/site-packages/osc/commands_git/__pycache__//usr/lib/python3.6/site-packages/osc/git_scm//usr/lib/python3.6/site-packages/osc/git_scm/__pycache__//usr/lib/python3.6/site-packages/osc/gitea_api//usr/lib/python3.6/site-packages/osc/gitea_api/__pycache__//usr/lib/python3.6/site-packages/osc/obs_api//usr/lib/python3.6/site-packages/osc/obs_api/__pycache__//usr/lib/python3.6/site-packages/osc/obs_scm//usr/lib/python3.6/site-packages/osc/obs_scm/__pycache__//usr/lib/python3.6/site-packages/osc/output//usr/lib/python3.6/site-packages/osc/output/__pycache__//usr/lib/python3.6/site-packages/osc/util//usr/lib/python3.6/site-packages/osc/util/__pycache__//usr/lib/rpm/macros.d//usr/share/bash-completion/completions//usr/share/doc/packages//usr/share/doc/packages/osc//usr/share//usr/share/fish//usr/share/fish/vendor_completions.d//usr/share/licenses//usr/share/licenses/osc//usr/share//usr/share/osc//usr/share//usr/share/zsh//usr/share/zsh/functions//usr/share/zsh/functions/Completion//var/lib/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -gobs://build.suse.de/SUSE:Maintenance:41576/SUSE_SLE-15-SP6_Update/42fd63265472e3d4aceef645f7c19e4f-osc.SUSE_SLE-15-SP6_Updatedrpmxz5noarch-suse-linuxASCII textPython script, ASCII text executabledirectorypython 3.6 byte-compiledPython script, UTF-8 Unicode text executableemptyUTF-8 Unicode textBourne-Again shell script, ASCII text executable  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRXMVebuildca-certificatesdiffstatgit-coregit-lfsobs-scm-bridgeobs-service-download_filesobs-service-format_spec_fileobs-service-obs_scmobs-service-recompressobs-service-set_versionobs-service-source_validatorobs-service-tar_scmobs-service-verify_fileopenssh-clientsopenssh-commonpowerpc32python3-argcompletepython3-distropython3-keyringpython3-keyring-keyutilspython3-progressbarpython3-zstandardsudoxdg-utilsutf-8fd4872a24f05a12a793db486925d39be053bc4e4ab34b6e8c36302781657ae3a?7zXZ !t/q]"k%n1qYh/:̣@b8-&) |67Y4'鋃1T5d~+Ă?ö_zRL+\KAZ=^NfÂɏ0 tDH..F>h,XG5O&q̚`#W^c^>A!vJM^mS'bM說KD+K ,YmLy{gYE2_cz4mzLl fݾ\T2EDh8Y`\c-B7L+-2XݧuS8EevƵ#F%~4N,/Z(m{H(@EP]vP)z\fi@+3SО?J4HUË%p:-cS9pGذ?yסʧB[YKy~ݼ'­E#0H2CXюZRm5O'sDF<9wv@Ψ;.zNN=8`H,]YEɀNʿ\Ps}W1vZ`QM2# ,hR+Ae#.0H0Z>4㮦m*>V<.Jp$Em6يG[1#&0YbĖ!6VFnkBV@T}޹yUz b#"MyCx wLhع%㞟I.hPN%%GU3߀Dw!B~Pnu1'1q'a8$.᧝02gI,;:$a R,^8T.s27 >U ŁRf=r<ټ}?Σfq{2;[Y`rG. ~ a"3ƹj!"1"񆟋($ Cc5~ %E&ƊбCɖR 1~\Ȇou#ղ<Įoztw H_ s)ڬ͟Mp)]E=re8^y:r ~U=" E1$A oz nH(l*S}PEIo[\{Hn`XzGۈ)/2G!w]$"X#0&) ^a"I{rFAo|,)&O\&<-F*ЎInWFQcR< 7ܣm/|7j* i*_sG`kb(^t.R'̔c&RH mU~k??l=V xƕWPqLR?ij#D?iN',]7 =UNIFo1<,9"߆4yڎ+.\[QϒoSKp|^Ǖu~)wdG\WyG| FxMӅs;/n~ru1eSnsM+6 > j>hQWֹ e_)ztC]g}"5-ZH[Uvj4(g)}Mlwwp[!LR=b:=MQ_vΌrE$Ab]1)K39$H7Udb"a]UaZ)V.yNvq*C)aa8xxGωa㸦Q W I% O\&ЄL(u~جqDE&1{|Ƀh5fA%dy5 5&+e|әUj!YBE"ѓ+V^7 GhČr4M\x.L 'AUƝ_bDi"R_-obHn %NHNwɶqƳr4g9@qv L$ :"C\ƪZa' z3x"Xoϯ]bwPyaݥ\H944ORI!邖ɜgߺQT2L{Wˁ՛WJ`dbW ŵ`1QD>}ig75z3B[~Ё Uk=y4x3|@[=(MlT8DgLuyr\¬Zϼ;&)EٔNy)](SƑ^j_AbOixS2PL}D^DQN ͤ`P4 iU dړK5:W |D@zgrfTҝgӕ/8 AϗYF][WG“䘄7Bڨxq7QooBEC: o煶lmEddC}5p N)c<ʩcɣ5s6%x՞~ŁGĥ`k>:Qwvz Zj2M2{.0Kbu1,4#؇jqD2,fn`U׷qO L{QH(NZQ/.Z 1l\ ʋkǹ Um.SC6aiY;ͣ\Xt #{8 y=r,2]NhYԝ)(!JK{l݄+I0 Ě8?hE8C&T3BE{Pe P l0vΏT#l-^dL߇\6iif<>.³L[vd@q9IIyϒԮ"0/5.6=Tkpڑf-YfA61fZreo`H`J԰t-!TE?>F^۴KZ &SEz`2PejR<2S`.EN=7%U%΍m@FIkJnȢCGZ_UO~{n>zN1tLNR^sFyɁ|Y+8ܞצI;F =9oQ€ۚ ҡOM}ݞd,Z}ז j׏% M ş{$x:! pX;nA{|#4fTU&=kyk%$`Ҵ06qXh8bE"s X2y[RQI~-uCEegY\/=Srd`6;|@8 EHNJ~ f(ʓA/޺W[Ceș^ [9c$ЕExLrz*U\% yj3m(9hs>薿C*6T9]萯"!q@8!u9ps|0MwL4m0|p)N|'ǹUIcR_@ R-fMcuxOKL^TxAW@4pZÞ;yxP{4U[YN܀KLXvԣ63C!Aø Ϣ +0?g SJqGf .,DK?㖥ԅ"z`l\kNj1U㇃rgH Tr"^ܗ1>sՀ,ttre=K_Xe cAsQlS~;zo#.K]29Jrv-H^:'JZ~Lw[!LOzbr?zTEKW&Gfw!A7ן% Aw:޾zH!V +?9ϙpa"X@t2zM <䵮' oHV '$gzFm7P˽Kr.wJ 1MaAz?LV2bXuB@rzf7ct+O>0;kc#vzr)3@0]ܰޔdbm źq,&8?WTt>dyl[J:xe L:buiY jϪ9}0?vF;*9[c N'ClTre?j3Wة6P?0Ԟãmg=WaF HyӾ֓fak3ƀ1Peʍ:A0i@M^TI܃T?>\f9:]|[^ 5].dJ& ѕȉYt>KLR=L2*03+*0phAp!;yc7g $ݐFju&h#]pY 3XJN.eHY$Ryk{AΞYf# clq8fͳ30osB8;9 Z.QcK4fd|)(V!Uq;ʨl|ǟsk6K`oPwE8M6M#XϞbj^ /Em^YWEז#4V}ϣKxY'Srx骹^ c[G9/ > bYΝ_ b+ wQYd&݆Z0UM>/ϯ^tn9ÿs3KF*=<؍n9>U(Sx 6&f ?C0v'g.!MfLse"n(1=OSr܆ cow5DL% \ab f>(=)Smǥ<ԧ%-06 ϞY$^tm߿!``9Wg^@/3a=-7QubÞGv$V̰vy/FmQ1z)=C%ycƃf{2[Vz=2  j](h!Hk`¾\NlI EbL+-Ł3@Zzh#O'xW_.֕GΛ[LaŰО~-g$Ym]yb3߂P9#3;OCQ39%mXu>=Xڦ`a]*hȢu6Xd^Bшe*ϙLuӰ}‰*K3Dh/XmAdc_[|JUb@u6G( .}K'|k=tP[}K% }BM0 2_RYV@%i$ηBU1U[[-lj uvOG,C 4ϔ6gri*Qlf }L[w&igQj`gv͈`y3}at;Hk`?RlMVsG5GYv"'lwcR^]p[iERԿ1/9hz`4q;B]3Rk3}3!cQH&kyʰ}ՀIU t@~ՏU}[/1AN=:sDfw1 ܎@u?/e vN:@ Kza:ݻ6Hk`v qKߌSjtqۺH%{1%]n,$\\ݩ6W {I_>2 qOio}Wh}vY,E2@-T4ɲ68**Dbd4pUYTM V; '+IabdH tx{ : ^--%6\yNo=`mV`tfZĺE<0F9T#4)$lj(&Ь:c7YCۨ9[e%՝6cؓO@6\(~8'X*4}ii W2ݑ `9-Z#eQk"B>:=XuL%FoG"zcoZTY>; /:S.v@~mrf%ď8K3@i!y9sCR-lWvfK˒ZMEAh%vLvu6^ddQ)u{E(Nѽ4Mxk},en1 [p`pP!en? NLG>g_XfNH $T(`sa|zeqC0dwx0.MR.dKv%=>~]J dB&(;zcz/R*􏗬(پD7P=e@kU'jї*xzb &]HkIy Z a?`H|\J9 W"Qx~ ڏ.ApZkBi} O՟6M3A ш8Fceڑm JK*X}/Lϔ,ۭ`kƚy:qR>Jq[cN*ٱs (3waʊnJMݼEբ.-[[U#{rf kmYf0"|ᒗI[zeElAc$U7%mkD+:Ph%CJ6CRwl1t"n.&rjj1Zm-M (ikmV;̱ n}1WΤKar أ)YMliWmlboQx9L&E1^}H_KRY'7h̍㉻Fe} z\ +Rs9 {Q9#YOqJb ^ R:;&(4ەYlb=O|sq.EmM]#zՒ XkW,qi9лxgEtP69aܻ[zI\E\l`Da;4UBk)Zʏ){ܸM.F̫pbPX}ĤZϡ@Rߙ.O<#@zXL86DuѲÐRشZER]mXC㗍퇿 !*Ay? aﰺĠ,pZ/4=V%C'cAF!/5tgeTxN(/z/N؞t :Et|^1l{dUo N Ɍy_*CkhE3=ќA@/XQIbd-g5]-,5l̏EVi9ƿ Q & %31Hxn 7!RvO㕴QSe6>!f}[ oDtѺrv\RA4و)ƫaZW#'Z64vY3?3Rn?6>5`e_HES}UIOTE$yRmèf&g*:UT+-&8\θY2WgFZ”7'qM!4"?FQgTal[9캜ܨ*oܕFJo&Br=NM-곁=~l.j*_cı>fj#=qW "'%Id*yzҞюb[H{:"gaW o0%lo?ZvD@v"ʖ)oIa5hzaj.չ=6AКL.&pyvONcAGU\S~4>w(lwwsSc| BߧMQK|x,xr[x(1|볐2Q2EddB0dT˽;89jpTLYX̜qtw kGѪ}= `d2_H5ΔCKk&AH8jct3_};4c[ϓ ÍkxiW$5/_]54 tyк-""5F!V!l\݅5纪6m?ѼٱhA`nY7pDߍގsh@sw)1lR3h|9 DK⍬:WCO bl(VED5TRsLӸޣhOBTɇ&LF5 ʮ^ ֯-_~щ{K-糇bNTdN$?8j~PV@pz<JG/_d5:\QJzOY~z.Oz" c44`DIX3˂EV{ߨUcU6 HZJhݖ#T@Kf&9''WAHha0Hw_Xht &| D phgrk'I]n =`YzYgZ]h2_׼x1#!6s.lB> Yhl!$\x#Wd6}B&Frw_|e1Jϟ"xV#ٖ].Ś%>s{~YORT(CfsgYz =ggsomoA"͎\T U ؜@,RP ~ K`2f@+:;n!:690Z,*H W+G@hji!Ԥ&4in-bkjѱ[fo\ mw1/02Ep>A8PZՙ/O,coky-Gn&iZ()*!cA@D5`[99ub u;7(osSЖ]q9Ɩ4+k=F5ja*iM :t0< 3#$SK7&jh9!? ]?k"\OyvΘ٩AW_k(ZbZ< -F"6R)шq; Er1%Ry.G[3J8KXzzZ04L:)kҰ~$xS^JֹHQ#bMȢʔD& [C ~M<qU<`D)$VͼD~a@ v2K@kg Lqe ][(y|7GŠE#yl|!} QH; 2nT+ Kcɴ8t?(! "? :HdWsP않)%'M]Q%h'K?C)eo =I6DvxOMG&R9 ^뛕m'3 #ʋ4KSp@Mc wCq2qIgS>œLo|>=h8?kdD3@S7+ga[TU)dnn;H5&R{xی LsSgD=UܶׯYK}!yji"dA MiM_EEˑ' [Xu4tRz*=#Agrث-,_Hz) rU'CA5:!k".90g搪Ky͛s9.}FC؇ As]y?7wB{8$ߵ$я%;gpb4 | VTfMd %UGMKHyS'0_Rni\Lo٤gi'3}d<!=qp[ESB\k3m_5/@9d"ݞ`*)EԦe^BkqeU. b{u))KC`$ќru -|}ixЧg֊AjJgY˭jg88[PsO+?CL<ІI݉T4cQ rca/v~_U8ީ4x6İ7;4h߾-Fٴa]Oj4Ѷn#L, {`pL=*N:n`Ncaa-=f >SdTUn,1NW)IXP:ud(s"Lj_W4rbu8)XG_@=yo +# ʛo0n\;AҊcE,xI& ѼL+ߪT@y=?Dk>r>R.hxځ<+A #pEWi*VJ}ֈ-\ iD@PGΦD{C*PoS/Hb l0uuvoUhW~kCKjM}jSY{ß= z.\ⷳȡ]pRt5l@l7}^ߢCM{Tðk(Dz*3㆗+LJA+Bg sBY|d֒"wM\3IU"D\`F!'[u:ʂoԴ`՝ӜW]5D;U1 >1 a&Ւ:g-ň9z:PAZاHޗ9VyB؜> ڈS ZѡY WsѸފ@)tٔn0jM% hSP2# tc[ԛPH֏..ܱ _W}bq[t!0z1܅#~-ON:X4kީcvx| 3F!ϝ S%B .Wv?}i9%!86pm˞reԄ0Ru$/N6l=N\8hH](Neg}dbak}?%+(Zّd%3Lf1vfuh5lkJ$+k"6|O~W]eu;fksW09Ҏɣگ~ڕ~L:&z%c(3C+Lai]YŔbE^4-#4i*F641y:1#''3x%wã=>,Z. tyAwlwL 1AhR'iaf@ND:WT;\d{ϗzٝO=xTRz'?;g߭)6PF'IJH/IxM͠Mb3uC+)y+Qnqu.1%b2K*ץ*׃dqy:'R'?c$WP isnQC!QȌ?ntìcFs ;/2 \Uny -W=lqk16=ԢgTs3SdO6os&ԇ>CS  2]Re Q< rd-. qDcӨ>aIڗʋ~DsF=Gyhin^Ew.v(׺/l]yݲe*H){ ~HHK#=$R0T"3Τ3&16?[6t&V=lRjƶ<# hܯ9@jMA\hXwݚ@qmN m.90!˚Fg։ 2"臿І+@yIL! 9Td]*-1_4C'am{d|\8` p< UQ@N +u{෈2,`"H?jvÚVKCCIޭ]tȗHzmQݾ&e/y[2rmzūΩme,ןޫ~bU() U EjY 7oxWeG>oom"m56F+*4 A~3NS-½Yn\˵VZ +,~4a/A-q1uH"|2;Qo’=ne JY o҅NQ}g<b̋jPYؘ3u9PH7Y,%⴪g#TDwKB`8ѡ6%tt1D7ĕHOԵ"cM$bR?nؕ=K'V 8 +[*Tź0.+S Z3+T&kF3:q*;0N˴8xAx3#n)Q(hX}@3chydϞ*4MU@Mqz:p5=^Q2> 3/A|%>2X A"#q[ZabCMρ>5M4ĈY<`>.6N,kmZ9NAWv QZάSqO h%ԉwCBHp{T5kRѱW9[q:{(ixOX* ]i{& m% .c53TtGq9܀R9tmRߧj!Tq_j*Jݑ%.-0킫:}a1K.gSh yDmu߫ ls_ڧ4IrIll?p`h @&YzYZUT*RRoV~!Syy!a.l#V@{y<cP y2(gbҕ>Ms8FZ(=n:Xn"܅ ԄFQFo+ݳL۔m!!_7gp79Umi W~K?}043}:->{S#aso~*d +4觸c[]`6hSUvHa#yتYq:f)T+bp,z }slv6z3G ~,ke}b@n= ų uPK$ҨUJ+,4I=v>vw~T ܽSl wP}ʄo[+O(N!hG_%skC&9.H)c<~6*+lyB0tBib 9 :ﺿ[1}K`K!J2Z!knQa~^#4-+_EL3Ig !K TY cSpԁw{r7QɌ,[B@VG1[»Ga׊Tȍ1H `3/vW,@ w7h7H{"SPa+Is6ײ]I(M]@m jS\ G%E.-Z}{U59yB[>vompޙd!8悾K_JH>v-h- e:U.@LĺɄZ M~-hߢ%(SXkggmrxm+u5"?BṰtՠHWʮdBR~/iiԁ~8;uC6p or[y%)Jg@E ifAQ!`ё?>x`avGm;L,* Jy;*ϫPmvm| HSJGFg~Jp &*G"͠?*Np$<M)ӻSY & Rw삑 B%m@N Z*2uPxcYڵi'^i*eֽvi67uW.ؐ424ۨJb0$ۇ &!XEmtw6.ב wge̾Uɲ oT\er׭9c 9fSh %(BJva\HplLeߊ ҥ7^玩8 ,v3[dV*WTE0wPx *DsV/ĉE pXrǗF<"κsx!5nq_{\vWw^>ԁ mBkv%,%5iB8bkyy4Y`QC Č񓧈%z} c!I>"ڱ:0Z>MU΍r5bZ f*q@\j ame#Y(02!(:ya Y>,c iBdU$tY0:\,ol@\E<{#7br8F|ԼΣp-u" fdOmj =eErNnnڱۊaQqjSJAN\ WD->?r4Q:M<ɱawmटf6ONYE!93 b~}`6A!㑻2 fDcϐ]NK6E+{V~Pi*o!>#%_zv 42嗗z0;dNAV^ӛ3l"A~O/BW#X>[B?r,Ƈ𖧸^}HD Àau-~@S:RGl(Dpi颐8Pwp%t0&ۉ$ܴ ~|#46qIf[iǛry9w2f-W s"78La_|1'*-l m\U=zwvjQTGM_yJ*'un3ZQBa0D+~o@bvcmwp9U5#V@M?$Xbz\ sQ1/.tbQli%K]Ljfv_/"ːh@1P p $;s }UET`Wad{&ZURB9|8О{8PHk=5)7. SvFe vo((2g0RAxd cZF-߾{~ +J9hX,@=S!~¯`.E*5xev9y҇ lmf`1hS22D_ X#2,CIg& CH0;KXqpƐW]OWڽgSaUa0ԃޙ^nW?m*9Gzd`@YK,bL28u`s:T~ 6JYm.S21yɮ3RaL"H`zOB=Ggd6k i %,2T&kUĴS[TnTQkT~ʍOyycO?FC̠IRqIA{H[mqK~7?Ǐ9G!Ez? X9Z_ڒ^{:c<0˜nÎ'R,A,TbֱYq*laL 'hb58q\LըKΆlw.D̂mk{Y\b\28Lb"se;ҭ]=XOm%EnxsGdxt:_l+tƍ$]^>QHQ*[SdxD@Xi )q+fӞ33JPO!>3s5nA8FOРGh2ĞY? ,ApC]WYugc_W2fa;1 ^.汧(k jʧ!i\'|4V`YSX.?Q DyMD5k:b#['Hqk} ~zCL.'cƤ˘sHJn?g.eM~&,;c.o̻M~ٚ501?ʘPQuNXf˫2 ݣP?m`}Oa}`ǿz^:Sd /KۆI8oR{yݔf9kTt܋X?g&$9@/DXY4=-o(A!S!4p??^je&$67EvOyS`) jJDJfx|Qi3mqGcMpq"f^1 hC"iqL"+/%^¢ڄm xBzI;K N?oқ~!\Y.'xf,(|Wri?jC1.\I.ӒͲAJ HqdXS8D^hjaG\0xާlzO}1g xhI\j>aU` +w &)ot7+~dΆLV6w7g.Rv c|4B)oBګJ?A$FҴԃg~%u|5 LkEOsơd<8O P6]-*v?+{j ).\ImvBaj #}hn 9n:y?U|<)H 3OاȔ3`QFV~W8ò;0ӏO 7uSf-MsUlUY0鎂TDyyR. |~Vn߇Ts'ָL~ |}oYٷ)MT6Tb+5%ҊzR9 >y%15#7fP 6GF6M KsdKDX7sŊz(Dͭ檛u )|K[]| f e X\ ݆xyg[ fsNw uKonAޮGc.KcQ ăN酓ZA݈\yB:&>j#% _ _d ? HLBlOU8G-^o|AvŰ0 _:?x1XJvH V*"s umg!cDno䗶ItǛBn,pVՎgD A㲁js']OS ["cC)M_JW=ak4ӈ?-$^Tn#Shn-]ᕒ%c͜rx_J)y m@y9i {?75 pͨY}D[arFИ Sp͜}|n| pt sY%?Τo  c }U+8lBRk9bYv뜞d<`1<ԑY\OS,@z"`aJv qHEK"D|QF A .TdN-仉nUK8DĻ?rT~E[ % )!mHK $Toyɞ37[<5>p٠"ؕf $V-k ]QH5EIq~^,H0r.s`,z`a6ύ=RՠTEP+'a6Zٽ ""puUѠ#srb'Ц/r':6jMV?yۄ[ Dt>ZTeB$Jd}4 b`BaF\5UDJ.X/+YQG삟bGXpEI~֘C ^CB3U~cg,ݿ )S~`ݶ/~-"{ Ox#~3^/ݸu<\Y +޻]'y ify芑cSˌMh*F==6Gq 348)N66~.ƭ:ξsR@l!s2mjoFLZ⸺]$_+a=u(S6&{+h`g,5EQܠ Ny6YɅ6IvI .Oqhku>xh5ۚbz |!0 d` D^[s9w1G2ֻ+~3uXG_Dɣp$_\]_:7ܪPylݔ=Cf_"Ҏvڱs77k_];9 +TS56q|?0uFgeDXy ^UVxVH|"M Ab1ס]a  ɺi7jcdf6BEp^21 @=FoZBB.\;3kY޳HʳC'5As (!Rx5Y%s}a+21U3`oU(D?uMZa5((ɫM>i$rWO͂.Rt<ܹqĪܢѥxk;tTyr )v8"7RUmW49fX<^y觡i%7-Qfvt{fQ|O,TuR,=[mA`2\Qi4:~ِ́v ] ZZ=pFkqt}eX\\kl.`i1OZajhؘYdW&x \GvY{9S!k64+¯u`K{tZ we2NDMc/@YY@pD;ORJöKWgw@Q3WDS{.fbK7kv(З𥘜wFi85oL<0’g.GTqz`Ec٬JO93@_ƹGf.HF7j}Gce) `/Ū[|Nb֒Aq5T C)(rQs vPDŬGUKsdrև|!RH|ЛAm)<^]NNTJk:9\flmՖ(neV/Ɩ/2A=/u|ПDu/q@I 9tdMv7f9nwT(h@,-%G̜y)X@w,lPnh|%D9"Hr  Pct1^煵?bgUD!(~ZƯLKkthB^8 SNwgwKBTW-} uu6G<Q ]N8:}+[L*T<+^,0|ѐ3P,<>B#5<p|4J> `tpT݆Gݟ|>ֶm!Tui.1(d9yy|qH66_zze_*Ba8B׭\Y GhY0e̦WCZ?KFT8ch"LmWVv4YLGz"尭,3_mR_MDā"iA3n:qRJHԯƄZ,b2ivvd;O=?b@-IøSxdl2Z`sÀX ;@lvn2܍EEiT +vWj .H-l&ϫr]߾Dk"~O0m*%0\NDB`iqnFZ6cS IN̶Zy ,қ/(5PI~X?>m iCU$?*?N6e,*I7KM5ں6noˮ &`͝4!0M&,=S\PHK&Bov5sȬc k 5{`]Zl8܇˹r#ݤ5,0e»I^H " /t|UTƂF_Cp(rf!pfO'&nCD^Ҥ t;(4)LtJZZQ}M:2ekFЋP5z_-HBdRX0jL|f5>#{⺌k7%~ٜ/'P$:SX2§9&45.f7G |s8fw}jJh:Z=jlE-&KN~um@)G¬]uH-lrl/_+2l=| Vh?q}TH(5d0r)ίvztf#Hs@fc%X*\8R/Q%UmN fS :0*jo7g{h$J A%JI8e89}nҌ@5H=tߍB-BHEejDzt%0#(5; v KP}Qq/O%'L( Feh) &A;Vɝ!% M?L{Dž_b2uϾm %`&5HԂTy6w4&KO9bE)~/@ --^ѳ]DEeX^^ckiÇ9|,k/!Qp2IMbZ>{I mzSK!V`d3.? ߖHZ,TGMUW|D϶A`Jlqy . ##ɭT,%* dA*IH)[Y@q( xvjXme3׺=~k#RB +R~08w^R{_!% ǥ9G6ߐ{c3RUk )nRFl;pAb@K<iת+*|-#ijJ]{2b0 W >lyKngpG VmZp-o|MOJz`4=q=^=jWk⟻GK:Ik)%-a?\:zAX [~[ꏋ0ә=\o3bs)l{C!q%O H6YNU#ٸX%sّee7y8CE,0"!ܴ݁l %#-ԫsHBtKy" UVQJ}rJ}51#uYPz }Eǹk ظC ͖$v)܎vCW#~}5O>/=Xn,Yߔ[ghHG,%uwṽȵXGJ@/nuhgn4$kuP?O]9zObF{AoR( +X &:Z51n3'ŇXIA ]IP||lr" UȘ7en^`'F#lw' R. az=v(97a%)tXCOmp#nw:KF FG63KiLQk7P(J٩V*vF7GZZP={Rb>}v-5ʩ9#oob}ćzcjdF)(V!$g*CiGRlۨO nrM&.poT#Pvb4+Ґ+LDJ()2}rPZ!̵S/2t]]$P奈Ez$׿=>&+V+ 7AoO;/ 'n!(I\vE V?\6RlHC$dMe㼻&Vw?kJEeW*#f77@nbH}<4>&W_4Ñ.`gtdW=xLQ̞R^E˯-Ym(SwE/L:[eKc3>B޴mXc!}5:gzmJRv֍t4x 乘;*T0u/:"m!T G8W&߬㑀Ye,6*9݄xD$Y6>PhA L9̞ d, N 0u=VDWJnA%]!yDiu9qmt ~3";_ d)?.b>JnǦc{.IbfK )#)ִ`_iS W/hdpbN]| YZ.eMWSE{" Gsk~ `* a*Mߴ_õ`9H(:v8giNKh..[hDfl _M4^&cN)ͭښEkx9h da-Cy&: ӏ؞OBT5 h2F4"l+DP_<(w`>klGF&WHiub·~u(}z;?Ӂԉ轓^Q@$#նk 0߹0ܿyvG /iYx_5Ll.c\HN}BN,%QxV.Lh=>Um+B )Xp]?iv;Aa§aVR/HTFB v8)D_A_!Gp@X tx4ˍدMܰX_'h`7iIg<<=pLYNVFw~+c-Dڋ2mnd%M!_1mҽ:K>-'*SnO@c}ϭV c{pNL|3@0MxS9WBE""k)hV-> MWv/xŔ7Qzv_AJN2# Vc@YBXT&+5(3-BbpXq rdn=n[eK})"kjx'aRAaũ\賥˷<ָ8U3AJF5_OoRt0`@4bM? Q35F]r7c:Vi8M$:!%x%׏ (|GCc*FÐ<俛s@?wP$|6? R. }8åzǮ\lKX |n-i6R 7_L8Qw :A]V y`,.W2Vp5UA?>3YhWk?v *ЧxA9g^pg3m5Sw@Vc싌yX8;dVZiĪDer4V5.Lӫy ֐8ICe匿x:,@y*z0˫[3ΎٳA%, q˵g"mG?ʁPeK,TbR $]Y8ZPfO>enUN_w6LHYlcF5%,eKp~J4sݳȴUJAi2扝l,݀[^4ւV#X`FEM<qhr>0J5<@U!/!JcݲG(.O }c7(Wa64im|@&劆^~s \g) N?x(n =u8-u\BId&.j!Q;|X7Fcf|kH(j;h2pP0v;[Gq;0'ȍwjR]6W+f8!\Da[>9qMvL1ڛdTz)C})0>$]t%fBS܇5*vb`( ݎQVjEa[ܰդЃ0]q Q_-fA/u8.Ne+ѻm"U겇 GǯgTSY]^pyVy)\o(e+ ƎoTJnZgg,ʱ!G0]"%)E$GroSauRǯB[f5vYH tQב37\q W޸%dXXA9 zQ%<m(/s I$v̐_\`C/{HڲI1j5w };-arc9ueYU}&?cUhfg¶}t08뒉U&@b(tڜk(k'f/0`]A7[V'?qt~ؙv #WJo%@ o;:|8]AjPȉYHfBZn?K|-o~s!±9/+Ouh `rh)vNP黊 r]Ki8~-(UƅHqQuE-SrkDsH6b!Or4rbᇸҔS,^Bbbbbmˢn}T>(WPk>͒m5lXXyV5M 7I"oՂZ/Pjxr,b7x;sRBiE~i^#2XݗJ> }NRG^+խ9kFsS%0\;*Nx_ z4x|tH G(qb!H6Zd8n/D%|+>:K5!=aO{EO**dhst U'5sO (Ţ)A1g?Rc+G/nA9iߑd>2? Ƅ^j1>Ol*Ċv.6k 尟[ɢx=Q JKXp76knkPwc&ي(ANa Dȡp(NSK6ƀ ,+%l pO;v B1}*u(Aqwj//G㍆E/W1-UkZ ϘxDLDHD瑗wAEYp[`Ty+cIDA^R]ˉ C$}Ch{HbNz`zhuJRrQwM~ھZP%Pp$z uaC7f{ZAox+CD泳3q AF-^@iא2|S{#?5nh%ۼ7]H.a hZ 2kHՒ34!QX|do2漽ke"bCTLM>jݔ&?uе) #-׽lTX?C|ҾEh (K0$;>M<2~zXOuRC=<ܼV l~Jl2c(1[4% {߿bШeA!ÖnzN ?#]`I+~".-8ODKxՃT,_Y9YUz2IW} {;8rEɝ"(]".2!ҹx>$a,qđ\)$jL94{ &xVw(s'| fYxcdA $I(Fo`2af{w{hPBtф 驻ZVF $>-FTlEM"˙-3'YC};FAͬyW$"?HG-y5!$]-5 kW'i"53;pd.Mxާoq\M,8Λڱa\D!l*2LUaŇZpSQydNGbMi;\ݺ~@6)W¨dj촀`XAȹc*A+hsO@g|2?ʯƙ&e.ɥAlF+O\Oihw?CVM5w(d5Zq2uuYb+ +J0,,-P_[a\/3s 1 ]@J,c3&ҝ2/BґMWvh A (rᢹ92Jj6ԡ͞jeRu^ :8Em73OVWV̹xw&h \ND%'?:l5*w3R9iHY9@ v ܼT+Hk)芝kV&U=?p{:P 3>ff:VB)$v3$e`f8!-puk_>}\|>h}rB-cz34jm6ՠ bR0$pI|v5슘qGM7OIe{p7mI#2 gQ߅lmVvt:99+ L%~4` TS /m|r _~B ]-+v@:6۟uA^F`{] @#~8 & 1rp ̍~#SPl@gI`oY+y0B]%:5Qpwap! D9Zk?tUڲ[j ^jlcU_Z*B;?.zikm*xzy AԢ ae&v0ܢޱ{{ êQ~ L}b:>t=\eRt5>ZC\ G;Ɯ(tpDecJo!lX[E1:[c9+ejB/^dE/ lf7(:ܕF>@j#S=Z:ͤ~^w;t@b)51pPOX{/0a=н>oL M=a{;;`Hy[6GKA} 4ȧEy r\Lݦn}KRt:< _Xz\,gOnO< `|>E͍A4+Spwf$[-rMl55ޯ-ks[mˆe,iS+s\IsˮA'J ū p~04ZnTn4 Pq]L7M5]lT)}A81ȓ)1B<@6.c=U<@ڂT L'kw)9M ,uk@+CbcD0&*ì1x+a[U͌e% %,gZ}hraKum3MaYjs5 dsx\t@vwJkb4A_4*T}%I(yd%^}A" ͊{j]W%ݾ#9"Gp%n BsQe{dtA,nʐ/ޒP~.z,@V@ew7W۞"tk# ĢDa˄)$V{vc<}3GMϷ|FogQ [1eRt/[HKv!E97~NHރ[p0Q 3=ڤ@(cPȫT\ϏsN o&-XX^Pk*L[ݔl\) x9N{Rݢۦ4|Pn$=K{K!x8C;~˯燂]/yr琣AqC ˌ[?GNW4lJYjOQ}ќypux"kmܟ)+ˎ߄3e(;ZƼ  8bhi(ԢsN *F!vu*Od;HO%GI/}/$Ar84>@1\35PB4"Asnr#zT_ My;;Bhg/TeX KyW/6f6A3呰P.wC+E#q83R#l0ٕǀ1]Gq7}clMJZ:I Д=Y!t1\ZQZS%߿ ګ{\iJ[:o$wP \ZXJh&ZB?OfgdJ5=p!ܻ P`^>(I4>9&n~0DPMF\bHeHUJ*MWD\^}<0Ⱥecur(b^ͥn&S0R"!Ƭ 6ȳs2[䌹h3ۚ ܫ/Yífo̕10 j 7&C\0 2gD:HgY؄];"w@G97{hetPwqFǶ͒k顲R-/BRkbf}̱aИ "FtWN2&J?E4,qzKi2>Yϥ3A}FiWW I#`D("ߒ>y((ОTΜZ;>v%=TŊ[,ئ+i"Kxӯ4>÷%WFBՀQ6"ʊnW靐 gvH'xgqȁPnb)+v>b8d]07 ZDŽl-L`+rko z!4>\H;C?|ԆPz*\ĂN\X}s\S+*9+gҏi쨚_9ݙǘgE3?A@'Iɔԍ2 Ա*~@MR)7<gtŸO'ٮ$A`6+Kjc9Gnka&)(_'3Dq>0j)Oŝc/bCSOrפ4cS=7}FUa fhˇM5Ez>t_/a7d&3x 䲟tP1S~ B8gWXfqنonӕpKNΧSOV _rvH!]a)G>UtN7#0X^2=CgF62?+4uMF74JR1ӱN oa-3dB*ʉ9 NF>Scs86#a 0&OwCY|wfסޭ PCx}tq0̝:~P\7LzݲSmh: {9̂,8G5\@qN/ Z_d]SY2*ih\HODzB|('tnT2Dzo9Xc|v b%60``F z#96R;:x#r `Lnu?Z Jmd{qm</ޛ\8ҍIֺ z S׃$iH"l dCL[15xSLsЍ4M&!MڑW!4PQT.a=r=~"m>+"d/=9-O2jn=< lR%9?w0Ofe#BF 5 ~J-$M}qSV$o)By&"3Xc gON8NZR#VӸ #\4YB:9c!3 L:3xgV ˿iϥZR ES]?ވX/t<#< ׃N#y\WG|A=ڟ3KȒ>cB93^7Sl2{_/lNqf0O2 ez[/\pT0bo״g+mM,B;珦HJ*/HIS'FvhX}ѕӘ>Bh8XBU89:MCK8SZ$H44ܪe<Zw ,z<^96"*OGha^كg佭$:(\b}N$oħ&+~nYYhH`2eDu>a>.خ(αB 2Sfxb|\A!Vga@p[4l"xA aNb; vw`v^Fƀ7 ÑŕD|Út0TԪE n6\w-E#.^m VpdC׉hwdmr\3daelͪNC1j3eFlt9[J)(>97cb=@}~XiN ϣT(ԴLOꗱk{[Δglp'kiY媭aXtvB-@,Hȗ DǥQ\֓oc~>ܨq)$ƴC*b~umL?S8'XNN+1A2dð+Mc/OxVwA)3ώ8=(~ - ^#O'#'@9 OzKa`BS ?Ӻ;1ϛVD$ T>h(`x`.I$OV t5|˝m T'~C ^hߑ?2{hYNgN}GJvviKvLQ g:3ͨoRJ$6iy٠e &Zi zGWY|TP\tImذB4|w0w`U+.¹?<, \ k~k̓IO"FJ#w]ZqɖL7hTpѝqñ@~>ˍ5'Ybr[6huфO .Gvdh,q =o=wHKa%l6$j)4|:vIEQS.d_wIEo ;ˁθUmB;8"(5@8C|S~^93cg @4D!ݵhl2/*|ْ͟aX>xH_Vf}GHqCĦTyo+rZ^HAbKǠZ!*pPZ`e$U-.4J~'/u(K=܂;zdl#U]D${jKj:̘LsJ~iOQ$Wm:52O ;2@Yf8]9ÈѵsFܾ0i5pS)1_k%fbISl ^%fxֺ2(QNR1_@][#/iqSdGV.NƔ@c)ZAz(-ɳ?2A6VU:";/@:qQĊ_ŹES{$e;'YE5v2ϣލgca+Wjsw;/& +̢>C0u{*x!fy>.GEvpqI85.qOTk8 x.eSw`&*;t-hr dpXYp8~Iv1\U l?NJϮ+@x{'i< y'-jOb9!s3*Dʬ9{KTl H^C<= bTc9gmL"RZ|){~2 l`I2\;p'(z?׽n:Đtl1Zv1ӍQ;oc@`I0w;g>QɭɿdPѥdrmrJfAvt5##q7r*?XF!"(dz'rHK(oyQ=d3 5Fl%L7m8Fڲ9ΥJnT,ک ͱ-zD)M P.*}J򬖎+y7Ed%pߗl:bˊ'Q/8Ner$? }MI闦ؕmQG12+ZVg.u5M(,5Tgw$d|oP%?)s #F4W|JU:ц;ʚڢݡEeC&R*Ə;LY'L߿넝D^., jJ?twB4X5"dg&¦^p'G&g"dž[o֣ ^ƾj 9|&K 4daK;aݬ.]glEǰƅ撵Y5Aeu0L.i>;">,UNj?RLhK2ڝ+_ dhoAu-<[Z1YC S&L-4ioFꝢ4YAg_qwV7@rL=& JBg\OQ!Cx]q>ZAoPu54e7BE=_h"IA@" \˭~O hf߳פAWMzw$ UbZ)\a_n #9ޕ$=EOH#/D2зRîJ#hZ69KʬӮwtx0M9+[@=fgEVO !}L,N+r!vp}f il }jfF4ֈ 4(e OC,$xYtһ=K~uaOa.T(c ZKR0n5ڹ-BLUćSTO:ב2xנMARBc,f[y_? 4#"VsޠeqNghhNVBi`~}A`&0KuYTF| hXЯ!\-Ɩ_wa ")b@ ~mRTѡ1݂۫9Ib}q5ģAZ̲uUM]pN,j&aId}KA࠾zMkU [ hȅL  5)1,Q tQCu1)Jl\Tn_ FBs݌Jn:.5XËߧhy&>;[I4nG޹&@c(y)a=S$d:9kֹѣS%rg ||[#Mrkw+!` &lCaeD&n%ꥁ ы2DTQ#.-sI>[y'9b g Z,0FJ^X(b2 @CANjpʨ |,Rӎrhw]_KPFz ׉c^zbt R\fZM}h* =DͥBqL>v)?9Rhd Ey r-3^P}Rr8 OAtnҁډZ6@q9I'OZоV׍TvD+:B|MZQ #NPP3aY+ʌ.׉I$/o;*IdܲLR뜌m`6Z -ڝl⪅6@X cde38m8m-&ɞETy'mz"Pzb1y"R3mj?$g=z$3&i>M>®P̵JFnɋ;J26WtP}ܷq6:KU" ^ `'\S6|]slqO3Jkˣn\߅}׸9GIRMD_k=r%祉gMzNjߪdǨd^G 8/XkuDWbԊC6;QKr? 0ԩpj ~:Ly p}Ӳ6o{SCsVJSՂMF_,˳a_Ȃmț\ïëcҨ-g}j4nw( =f >\FB^ܢ5 %J! qwACj7 X]MG-oc!t^@m` ЅwL.Q]ԹFI68{<[ġTWYca,F4b'|-_7l Po[O`NS+$2&pF37on2¹elA{LS3Y<쨤-#24\+ RUpoqy 32KVa4DKs6+߰L3$cVMyBgP'0L%ge珳˟=b@b!JR.; |Ϩ߆?Z#jm^}zu 7ޝiLxtcWuBZH#2޶,6 -Iw/h6mW2<һ6&O5Ujzz?X ~XkdW#tFô"·Zq.abQie^2aCT]^!*n_OҩF^6/j];3Ĵc`rPAyLFFX٪F6ռ֏Kpj ĥh19Yk hV}S?WO꠬"xN2H,H^h}^*ufϋWLB)WfFHXB*5 E'OB-s([6N4.;sj8)OT v>WMm1F‰pf{\#~-q i~r[2ܰxry $ 8u"p=fѵK~F;xD=|0Xڑ-)T]%U!Qi &\l(9&841g "vfV  rB-oó]vB_c AP5};!}ۖO"),[o;YԐ?˭ޢğޒ5֪8Z*C5%.9Éfݏ* AxΠT2 ʲk,z?@f>.j= Zh%2#Vt`{&AJEL;j&nHQۧ3'O~& b"Oz V]-_IgNpDD.~g_蠫c,J2ߤ5lv`V} FZpGxb 4!wt]/.62%{Xz" `T)R6A"e Qi0J(%֎ˇN8&9ݰ2bh=e)`68Oi K3|݊E.>)GhV"W%[g/|,vI^Zٌ) n͖bp[ۈLP+bnRu)zyǸUKo%_Zi=`iυ,UC[Eqrt=@K-?`}b~*%+j_ ^WRV8 6n/XjbRI5cסo[Br@Wό#s1%M#gL,>S(WO:XzR I q!P+:寠^U|ԃŞZ=rNp,Yx pJe"%ƒe42+JM,]7gCsH?{9(Q^ꏽU(E>j; N JJ>MҺ:Y N`Հj%{9S0ɌS?P'w. 7ϴjmG[73<$w <幗9t73%E(*rLp H`3[u0p2bֵ:x߼w9E\ҏ%BbRЯmj0&p/Fxy!-ki$-1d6{նqwh<`s,Jelvu%t<4"0:p%Ef/6U)q lH t%zaF~9/x#C=>;/uʘʓ:<>dRY})_\Jn@R D _~(k5dvTXw*j:sޥxqH#_*_aUvWZ ' 0rC12w^frcqbLjlopl6g|D:A!V|W O94 qsݸ^頓&2yboYp'GdՎm{BqvԴ#W ѹiDAQuAwI"PiWU`>CЛ|IT:4)A@3BՂ(g2M9VOi3~5d=8rujQAE/V;O׏(DRիCcDK[#'R-vjƃ6qc-Iz!Cϵx.rnۛjp7Y-:t+8&)@H݉¸Ao 5N~s_N6롉6l OHmEgMҐ v51P[w\-FI~>g_Ӆ|LK`Eskr Zdrb l<%AgѠ*SBv](^ nBԮsP+wP6Nٛc3lёoUfڵHhgi押X _,n!i|za17lZu{-DhF )636BA(}ʰ0:s>9@pf "nt^wo $P(Lr)A<}|鮓CT#KH-8w*eDo"=+C\&_9! {l̷!<8_B ~ko?jrlsŻy @zK(Cu Ƣ1t݋L(y Zn^&)4ja׫`IpedSGv8/a,~-`-pEXRy_{Y*$9/17EљӇ=Pޛ hU62[ʣmHD+"aXiogθ$R }K_Sҋ5>uJSv+PFa/J" \Xy aTji3ѡ re:R3Cf94wt X(ɎB u74ѬJBUq|LX-R_vogA qPψg; CcH+2B5COHS {SQXA9iBKd+=/w&^k!"X+|8 d|-dJȠW Mg߭~jH9&lpѓ 9Sv 30.hSr 4e` 65}i$Ce#-9˼cLMJH=L?Z.\%śNG+=r_Ø[F>I:貃~#Jrb8N1s7M/톏g΋t0Ffo٢.& ? "Y,5JNZ#\?pxPZX m2ґq z[b37;u-Nh)~䏀W(_8X,kC=W2ʟ|X}dHT><%Bx_ }:]źZx,\SDB3Cj  u;Q]Jwí/& {?`"v3a{EHu.O eG#3CbMTܦ')pxOE-|$|v+/1ݼǗ ;Fݶ? ?,E$R–7oZ}Y h]~*D։$^]@Jkv{x' d[+PPT,8⺣Ym}"YG&qXnMVNLFtxP Cζ;LbC./3w' ^WJPN)N:?+4]t'򇍕kV%S'BX֧gqf  MEۋtuRj~4évLHN27% e졨;ۂqӏVKAHkWYRw1wAp5T/ج9/+u5 n03] =6j,WGMdNt#%\!3{7MRanj&^CAa̷ǚeL 'c\^ *b6bm+Y孾|IZiHIRph .@lZHjdž ~r>Iw ୾?xrH/ng ~:XScs` $ZGnױDV>Έ)pxD=2;D+wn> gy3\OP&'FءdwC, g6$w3Dj!4 "AD5U„J"$ö741~g)hUDSMPZYik~wbXEG7R !W>z9׸O+kΈdzwu8Zh%`Kls *K9~qH` z)P ؼԇݟ7=,Lh|=-%. :O3I[k_c=g%RظȒ7Xζ>q((x+4gm]md!_zn`+AtScfuWiQd'8mMJ1Ev0EdGJT'b ƺ~ZɬZI _꟢_ h^p&A NQ4s[=l~h:utt x8+⇱Bat/Up*iw͐>Hsycr6g m_yV@MJ|5bu%oiv}e󙆪e3"f| X4P|s)mɮ"7B v_(f)r\ZE48<;S p!r6%P@k9Ql /ntd4!1_VU:A@3pof a+dm+z&d nl+령9VWjVbB9MS=] Q|: @M姚mzPgCG: N96 'Ĝ%4b Qb WOk_/S'Ug\~L-w"\2*3Zv|7 fb f$FwtPxT7(e*ZkV$-6֎@xi34p%5n ǯ ֍ŷ"* # 񕽰-l,ˆ$]/Ync}Q&hpH^u9%N'owy_J'j0)JRߟb&.(mXa*(q9j ,'b`3N>ZlxzΉ0\2ElI-Ϳ{uFY5}oΔW~OB#ĎО{o?~,cb9?2MmU/ӆ"vINءݩ!9l9Q䏦+Pf6%9%!e~^#k^EVL o]Ng_kǒ+Qr,,3>}?lʹbb% ;kړ,#$ ,íaJR <3.u/DH=V|Z+%=lvS$B~:c{\3\2I+A:\31=B@:O:~o gF}208'} kq[\N}mSr bq7Iζ0R;if#þ~.]Uk SU:|w jh^kѦ 'K6 ±ɢw v(0ͥvR="|^4ӄ1"["脘p#]Q E3VKaЍH k χo^/:~`]KUU\/1s3X1v>NJe-B:v rm;ioz> SmTUnp x֘F;3*L ex'&h »^|94B6ւ`FLKhvכɼAbυ(!Eq\ 0 |ow llL ]~ShtY>e!Zqf 2:S)l?>{_yӑC|0ؘJ'l$:Ԅ_- 8ݎ~mvFxbO>mw"RP 4+;c~i2l9/КM//l9>.~Գ[qCl g-7a{|kjv}{ji6w ?~=,jP-?Xt.D݆#yW-ȶYEm~t[kiә")2^uέ1q$.ydVdY™vn82MO9*$#k:]'nIU,,{O–N3i=rUR-_gC 96}a͂TCcL Jp9^ =!>.jio&6LF.5]tK[a>.lyXM$L !~eRYMP=*`׎[b?}ݼ7Z-sޙ[(~_#-^&,xrk8J}U˼ 4|}): _C qu>L2 }CŲCЦ>wރ I{##ZwkNHj|hyCg 7E{=r ӝsỎd<_Wch%[2'/+ \{z/Ig']bnTPr4NhɌU|JQ[2ܼ<6QMڝr0BSH훶hZL+Ri'yn!Wu*9g<<Ш1)J뻪{ IGy>?W&s@nF5Vxfpne 4EAWml[]Xh B8q'dg[3\R=GAgXyĥTҗU,<{]3Mfz !1UOrZFU'ZJ+u6t0b_v͆tP&zO;}2xk|M4uqh~(rZ勹GŎ&q_T9/-`2Y7Ҭ a%6upYe㐳f똍E1tz :+Jj9:)|#%ۍ{sG̹\Tۆ4DTC[aJFl^NDLj%K4b5$/Ku$т# Gw%F2mwg`A2!W^2OOeKL&Su/W?% ƚH5DC1Qk\hfy [{hdQÒM@eOba}Am!%Qn(e0KJJ N GVo`%Ea@3[eⅫ榚{'(L%5,p>K;AR6۸|o?s.8\ ;f/`m0эy/Zw\3Ppfz_4`FchTdݬ~.$|Q RFz$K5Q;l4s+i2=8V,$ !pF\)NUk> .9 Tw/e&l;\J#ja҅5ПGou qCH).*md]J'hsDUYu/LgށK8ǴSBdh<Zf)3v4n6`!a_l36JJSbS0,{)Y?bL,dKN 7j>}$˂PT:LƚߎG̹Ɉ 26{DWr jDLrV0^uFеHsۯ ^ &K-Ltyv_^^$0ӆj,?jOqQ@!$[MעX<4?HlF z!JM:u Ԝ?9Oo7!V;'$e^#vɿ`qsY3y!N+xZf_S!; tM~[_ qKǥƛ`'HeӶ6ъ]+t`Uv|i ]P\IA:#(.0oQ6ԪfM>׉iqST7ڑ04m[)J}{Yi>4'UKLmyeg{S{yH+Zrx[tSFyvpc}>Io&tF΂rxycquxn`YBy ɆTաjCMz3!ҢE !FڞqՂMlC j7H ȼj\֖YCU-H']u0J cD.L jjavoQY]aFfKX`/iz¼2&1}=t0Ll5qJWKxTaK;X&o픙r!AHȹ@10PW gGIwP&y!z@WCyw6r,R`]bG+ d/Z\K +Ыpb_=@RR I tB=kP[CrZOև=pUHSTp> ;vQf23}E~kCÒ5 h5,ٿ0PĊ=Syvs0~9 )U\Gff]Bڣx%&qV7j)Na_̰[;7 ¯lIlmTdoիhFf|| ~ "Ű}6pz #`^Y,4It䢽F|"N@ⲴQaٯP/" Pǂ_#u9Yg-S2a V||xRoXmTj V,2y:_~\shR1 BλDAܺfi $t:FH-)*5V镺وA*ςMRJ#?~!m<() Sa>Rk=5Ϸ=TrJȾ' T\ᄿ^otLnVgO@P#b ؠplVDfce3IKi|n[E Mf'}D$Ц/a} t„6Nt`_X8~^l<"5:0IscrOBQ,q@[LeIoRn@9h: J`c9~S_G@\h==Z5xw`,*-G.E"( ߬UIX&&d8߷8xqS[ @GΧ`_^cZ ,O^Oz1mL024B S?v/pI2d(Iά S_9W luBU}Y3qJdPb˓3ē%,Fe$j^n {gbQ{F@"_rK(M~^"QiK$5:nʼnwuⷸ(1nr8BRXň9fܗgNX5#Dy` *kHU, H]lEޟB n˼rcq{9]1Q 8&B˱;OĈl܆@@YC2tj]d&0! ec2ꡘq_ƖGdȳצAѐaQ2u UOؐW-éԠbwZ7럵Y[\ %uTB @.ܠ j9ڎ?my!PH'魁xz5‚ o#e ]X8Y/]+u##hVNS jՋdFLa&ȬwS3d+a=QR7ouC"ip5zU$[?6Př4`.@\ib*y68%ӊB{QghKsJj.x {@mYCb9'w*G^ߑ*Qi=c\q[[19E "(EorRbzV78RmG'%shs(͘ {CZݾV rU,+pevpq:Mx״@h'Zn/RT_fb7䉃c.LWufVwy¬LUTBx ?~n[I ]h[>eٗHk걸2t*t&x'Iߛāp4;-5SK*+ctܲń35P8+B9ؓf|eF`0%;Gkx)ڄٿԢ>tFk|o+.,;w7xǧ-]0’h@8pAGa VZ hdFZ}u~E<ߛ3;jjYk`/lƈ'F[? 5QdU)C Bsw;S7-QcY?O V #D/m%kO1F<SWDi7BbXL)ռuKxOwg]!Ϣ{s']oZj&Xg25Xꆕ^y\!.DݏoƀI<.b=Z j$/Nҹt7<Б8kf֖ ڝy+g tf$[KٚTW -'SUT1oG: I4=+=p҆ )͉ &L`|g3N`jdMF hXc:՟W"kNx+"nJy\B l 8.hI6oOfeM86.γW4RЎx\ *D醾qND֫9m4AvNU)@5UDNZ6+$H @L !mlҧO{g=E ܜn_իt@6F(:GĎH\ a-+TwVHl529: 7sH:8p-ͯdseI//k`Q[p#CTiּYb9ԩ.[4EUw% ޟ? yVl.Sj!mkeUQ㈖ᄌcjW/.8|鑍E>O׼5V*ǵ>BW[fx,-[w?C\7yBW׾abHf&!UxOkWaƪ|;MYtQ{nrKkV.>jg P\Jϛo5!/҅vP!S5 pݳ1o^zVa1/*zj amhȫb̓}(IsɟlaWe.n2 !K#X> h v _1=GCpo˙cF#H(2Ud0YRBhvYz,1`YBccveQ̓[#_Va# `^8nrG\'(y)6\R4X PSwk ;[pų!cQ:mmV3+nJ B(6g jd~!@RԏCYW+`Gl=oS%vrHUCڰ^4aDԸ~T2M@VQFEl|fɌJi䕱 BWobQ%m ay410D\J3i(tطW1[W l|'Sq~zWŽC̽5ј15];֖Ea!N0JWbE+- ( &H> eM$*̈́^mbqk\ºb̫i 2U+kfָҪ嵸8!hY:v)JoQg;(ĎzRa%zz["$ZAbkRDr\ ^QJ 3>568+e\7h[m{(`|Q[1Fag4j>[ӈu8I /G^lr}ԉ$fy-ঁ APd]4#*lXŽ"q!2Qel.?+7<;tAbY~-}iamĭ[d%$4uoJUhME`iOPSyNx g#r> ?AW&k(巧<= Fn K+$^f59=5~s)#ij˛,k^dTL4pd⦀I0hxWץÿړOiߴM,G˳jfRN<'Y>10I zMêfEP4Wٵʊ" cwA<'y" T{w`g1Zh$f]*lW̚)?k | lq  S7ҵ;\l,²>9BvPxCľ-O7`OekEsU8Jx58.[\O_ 0W杭Fg#l B,%؎5Ra4?=ZyM8U FLDcZFH/C+`[T3i ؽ꼵Z.M)Ʈ$Ejvt*lOlPe~K"7(2s\]M q$ϸINs=+eZQ<+)Jx;jDm1sAk,v_+NQY2i,,I7Nda!hsލ}qmGvb9Rm)x%e$&[e؊軥/6P+48yK{K񖤵{M\ph.֏(B:/uG;.2v~i<TK>g7"EnQ `grE`seɛ}.sԁReM{ޓ7@3K_ϐ G7t'|x*#׺g 8T`nZb:Q C"0&J1i7؏A~G`)D闘}NOIh+'!;E\KέcQ-+',usQ9ݿz4@R>\S54>S,=v m~i8Fke^j]- ]*^ތi k |ӓ7 y0)2 RS]h["v2}Ck&%_Pznh"s1[e?͓G$dM[ML\Mq|THa -zzyյ ;kƫadGЇMkEY;l^L׌MLiKeVJLϽ]q-:2u۶=аRuܤؽZSʮ~ u|?^5<7wج@*Pzxѽ@C<7365b։|)?^Y7Sʣ;[abrS%ʻs1 ;]^99%HdջCuɪubri}Al&1Ht-⍬M>HJHˊ$TwJsy&9G^w┽<.dDbVHKnjgbm=2L`!p|r>Eӧ;Bq<;3$DܞMu@ ;FI_bA ;ddZg?2o (K I:?Z>w GD˃Hզr.­ͽꄂ Mb0E'.4B;>1o֟F">NRezj)`y@5G0[q切HF:,5K~zg.=TdL- 14p>.IÉ-HFbte'*݈ k,2וN4uؒ;y.[8:vT cRl@(^JE d'YM}|t"wm'Na-"O@BռjF^GQCw|̂'"7#μG~Ɍjb/N6j͹ %E><H7N!9e8*c=}9P҇i ?cKC~kM_",/YȉnpAƏۆ\!'.]qdy \roлc\k̤,t q Ed#NtA' &kt*i`“Fu]"\= nQɑDliP4Rsln T P+2U%t$ )^2䕻a rL+2Jܠrskubo'Ť>C5W6yߞuRjޓcs#NmTwHCtu|e{b%A9QnI+:X3lX{_ ||V+S~/<ؖ 8KcW_5 cx4z=yrxM-pxr+5^b>D?~(9#+b֞2IݐIb5=ڶظd}h*ָI?Ű@{ͱ@xdtOo4TZx ͸:d&Y/l%^ =~G)r\[eũO͏oe@Cf d~ TV6'h+0Y>.4ȨLg}?FxXNاēg 9>Ґ;#uL]Jz;>.UnOJptQEV*8SY"A.EȹN:RkxTocPw\vV/tlAe9 Q\|u V6}-DV HJ8&HФȄR?|Xx%Hf ' MuUU*,&q*tk]VxP=,잆[h*t>&eY2 AoF8_Ue3͗$Vl8:QQ'mʵ0D g1eTrSEj^yZOY6a#޵eR $0d}PZEez0?2DD%9PAN}yӻsRA+X*YklJ*UJID;hC +vBkZ6c}Gܢ.]|ECOonQO⍲ S1LL1^ih4Te>< - 8ryDI^bTII-N,`_j>#,u4̮#ilJ"B cˎ@? P./ Aq(Y A:Jx^p8R?MRNV,1v O~T\=xt<-h_Ѱ"m~vT"cNj2pm Bse¥'Vѵ?OH}%'IBzY+ƒt ",Ջps\>/M69`eb!ܖ^2L,?`ɫDŽ3I[UMJCA{ >~awDmv*\3sG-7aNsh8#}~I; 4/|%@[\Lp+E-u7sZ@EH9 eR F}=nl?DFCKrFDO!"\y:P{l9)ׯ3% cgл_g(4upD\|Q L(W @s35FnqNոV1׿Df3{1)b_WZVj;EA}J\65v6VhHw׆}M#qUl>8 ~P -~W[CԽEN'g;<6vJӗ/LM}e=}+wD^#PJ`I_5 -;`&'4QTGQ0%*Jv Xr\-y_ )A;lwY1LB\\JԞE% x#}RBFXn\Ko吒!}X^wQpms'kԼ[bi]t,QIDC+]+\~J9/#,"IhZm/rfXa}ʣF=7wƾB\vn=x?IU?,vzuFN %2eJVd[ʵTeY]*VӮ?hHږCo5^YY,+4̳xc׺]h5|1IBb4\g:<9fYֆX-ǩAI}>#[^:-uL?0{B/]%܂a92>UߌwgJ$`ӷ&d2L SnQ1妘J[=fzt+r-)B^lW9֨HƐJg-f*У.ViXW'Rqq24ZPҒ!`7(bf|W=If˳jtv>yiĎʩCpw.&8z$Ť3Qx 3"AC;4+,{ ڿL7̔H&ٴ 4ol஛v@e?լ9%cPgRcj 7's+F#KZI (a]AnJ 8JߖyJDPh&7uaP18qf۴G S888-q[ORyƾS[$(T ֶ\2_ې~mWU &_pOt5b s/G6cgؠB{}q#] suzWIv@ٷ91:Җǣ5%5pfY"pat5r̥XlKBR+F*pw{`+KtwR|j(bcz+K YDĴ "yW1& q9)t GËLhٓq1>Zk,'#4*dX٢8'x0l+nyv:Xa{n< qeEqBz]h7 y=p*xř9s+wX|i'Tr_G[*A*+|ZbjX9NijTx[\7kN4]%ԓL01nbaS7WT^k9{`Gt&rIj,E[G;qPIQ_ɻu %-ua;0CȁV2V2nl^:nm0} }-XU RQHvÐO&) +4 ].NClSj{ C}tţ׻Wx܆$4UA&=RNY@ uh7'RurrI4=p]7,%™-p !>Pi2RA!a:8` ,{>fV&O[pYQ'EY"a(Rwp!X  넀䥎7-EAiQ`yY}C@k-{8zPg>l0+0EmQ5Jb%dD;H>?E4] S "7X퐧tsU xْsm8`0Q wŨd|QsvsV';7H_,۲dӾ_P4I&ЇgoUF.0۔GCڇ^pelz`Ytq7[L^ue:KZ&bY8w>^*;WlzpRkN):xм2\ SWWXXam66ҤM*EX pDUƠr7csrsD1բrF†ſ/ݔVG2AZWieT!s̱vk>M5ğkUCI7 u&8> HZ$'']N3[[ͦ23.Ї0}T_ed8$keXh2*Mt&yfyru"o@@HJS8(A|p/(T&ѷ[a^XGs%q?WNVc/@8C)P@RteSOZ%:!D%7<)lvL.q[b] .8y9zU|bZU"N"4p ȳH'VlcqH#ZW7ЫHfIsy4ŽdimUWv&>n 9*ռ$m۸ ޾d&֘X̸e@_M|N.xڂ|KԸg@d (@;=PCchr/2IfWN,R}ٍ[әo;Y+YFg"=<́(Y)]\Ji#d{ҷ:j+oݾLto(/Of{)2_t"zyGRkGif7?&YqӶɔK󻯤 ;Rb\aMҬ|n3By9';9"xv!!Sc a%JJ%c' ?cp;z &̨=$`St%c io!b1~z$"bM4ػx檎E4 $9 (ǭmk&EA l!gUfVtq2DK [B|5D: YTlZC{­ UrpuMIZC7(q_ERN)csՀ>5[%8v&㓠c][$r$؈`DY)qoMj'+߆ZN._nr^oi/t> %(_nR!hπP}ʿ{ԛ)K0_ubLRu6P3խY@bjapV2߆ 3Q "p%fP Aժk b8v4d\zT[k摎ěn(%& %FAD)|DSB|jxV-i"%v[;q[*FᵗQ] Ka{U*P_OvÅ l/}4CqKTtG [MkHqnr>Rz?TbP0_Lz{8d6~RFI}0>pgΗ Aި۩S4aI48},!ukj*J)Fy>&viU5-< e&' N~0%ӡ!'+|Y{[zM$Ccp2 `yBm]b$j؈uawpNUꀁ\ +nL oâ?IGxWD?'2}](eL{1G?4gBLrq3$AlRx󔍫Qܸ7~>5Oj+1RÞ!cm:hxq!VӟB[Hnar`LTY1p`2Zl f$ucg(1Q ki.A+׼T|B9W8 7vh|JNZM?btFʱ>RxݼK~_0xF\2*ߪyFzA`Mxi 1q2w9\;+>A`v i6Nkvδ" (q̀$/c[[4MItG#Ģ#Yq'HұJ88ݲb!ZObF̱X%tbcw+}Q7?1/+AgFY{t!׳edu5: tэohԍ0R烆U=T[64k@³؝gN0Z-^L6uo7SHj?җ6Gnvq8įɠM;:`iEӔd8[´S0 z1~ aۈxWy3J>/L [UfilLFRxt䚟 ?J[e;kK2'!\ zl異LLO'ht^IH!SQ"<K01lu YDҽ}RMUbvF r"_a5=V`/깎 w $69T#'rBy(wc*`2ǬUYqE4n|Ct]uV#hP"К{\ A=> H{gxdgQ4,D^B8ǻ?qxw]@'hJ=o3=!wAJ_~E1;S,+\N-]2 - HG͓[ZNB+Y_ 53ߊ-?"~j}e;NT0vs'яQW&l^rE9!KeG514(=.N%!o:jx~XMɷğG|R%-}~U_y/܋Mv `!>{+3[bc? #Tk`>GfD=k`+h!s(.3y }G2dM*mo\]թ0* 7n{!G&}E( _4!=PM L؈G/,p)ud|$z UqAN]T(d,KE1.$nyBFtY"SWN.})}X3Et2*22g!&h)g`^yz!M{DL[l Δ8}~BT|LǴݒ.oH}4Gȳ;]$ݢ\+ǵ,EgqTzܹr0] F}%U[19JbN~9,wr5qUcF',p5=BXٗU@5;RԚo%r5]r4F*tBo%a/LG/J0mxto?a?鋂TOn$}rX$m c$vu]A28:C#'iљ#q:kN|/VحSC7F;5XƊM*0uF^==>T-'il~~!kia6b™hԏ_*:h-ޤGQF{1`0?ve3 h^X=0#Mz/eOD'vk_QN +kMitgKuC@ 6g$ !'.Y{SD8pRhdR/3 [xOxp#|Pǜ!hxR^H*Xx62+Yܛ=â L$r[CV 4B/mLcrϩJ4 (wΞUx91%s/0rG3F݅銔VlZK`> r(k.8(q1Ԣ#Hc\u|r<5A+=V";r h n!!l_n{!D;K+qƾthtqa1M>s0%c$~QySS_`e6K!3)xIC'ZUxAu^i=ŧ\[ּ.q?/: &:d 39T)1B|œcflol[#;ȂSǃ5Ek%&n9:`ڈ‰#[FvC+GfXCw8(rW_ρ3꽘,%zES~M-0P1fnLSKiwUqt:c\;DMqFq#gGF |݋2)(C`pk1TjyKՑyphiO;eUTyX,64o#~{TX,Cd8]Cv%Ծ,=|RX / nWߦ啃XLZ#˥ߞX? nsMqFc +%tJi}/ow^Bi<\9) 1b7 ):X4"yݩvMKkFZ!;dD40C{謧I5nۛz~8U9Cm|5uĬVUrm X(?n=#0hkRj4U1%3w|@ AD%i`Bˋyc ΃J-E#롄'4XY QX,w>į-3bK " hCw1f|=t;q\  ėΧh1M3%yh̅޹Kp6Lٮdp Un3һ_.`TX?R/CdAhؑm%TywFFڕgZPpZG9iz-{j~,8^./Lv&z9yӅ uV#(} dw^Dz.kX4 CHȟ]S{','D\*4gZ$P&zteP>;]A?v7d2@Fetn-`v)<Jbҕ9Gr K{ed8"'l% 1SYC 8K ? sj3Pzi\ήo$)bQz~V|1zߩS /ء>J ܩA!<3%|LQØm9q4h— $z7ߥTKa>-\+rJi[lhvORmVA23V*kpnǓO2 h+7h;[D}Ug:rBqR,ά1,:̍ wa#*oCsH$s720*\ܶ8VwqeUowep*thPB}8mE~Oi)_wP# !OQ)VAڗ'<9e=_ݓgQ 忇QITB5~'.aUJ$E^48 c{Y JlKh TZQ jbsEPHu]gMfvy'=Dqs>oS1oPDDvhʪ[N1ٚɓ~%bnLjy\ @=dx$Y4sAYu{ָ@#%g)0 Di?9kX&OSƝj4p0 3N/f\7%w*Ww_$.C]Qrz<冕XY26K dx$t;fVR I>"glFI qX#ʄ72SC^Gdc;`X%$;^0=-H!ceӰhl'Brٔ ^{1I%wK?_lڃmت}&HʏھPQ35mC>QN x\L>լ)SxDὊNt2Bƙ̻mag)կ5cy'DX^idAcO1f(d@re(;o z#Tk2E>hr $w ˓`kTQ 8Hr,cI%ߌ^qHBby 3t}JE%pӁ|_1DmIn-N}L'T8\"g;I>m~W $pMk \Lwpmu]&Рg& RYmQ}3 \[^~g?D;~I0'] 4*%J%j<;lR~T2ƦK jv=/6)2+IȆwC;qfSoLH[gO#b͋ &{P'Hw<΅N@/2i!F᐀X Ow;郣}>G:11|b0](7Pۨe;fuƞ2ezYXQNԖ\<0zzhn-xHkbNOKkTohbe؊{Hkg|'xAUS<2yJ _[|TzxS8W4U~ƺQ_&s斁[ԩyP``ɢ$v&`q>JlI5][@1!=N^ϝwRJzZRQ8j6Y.'GFZiDmE-TTڤwї!'}D]L' ȵ!{WSO6Me>_}='쪩Mʼntx>3up>P5T(G4)rЌ­oL=6|:oCkGLÁ-Asz|KmR+ok62$<"`.TƴӡU#IPFmyCO4fp7flz+V ,`9U i*|2ߴzXWV{"?![ZyK@ٯ;BFT)B֧TN`-bF'[20AY&B?IoZS /[kxS%4hߨ7O&j\$b@8 ?܄t%PQE-ƕu0 4χx4džs_ȥ3)ok#Laʀ*z7%HiؖinA#- ZrdZQ xZe*Mŀ"ʨo>PR1NWz6&%sS7"s{`8#dP!`M׵39N) 9@ ݞj=,)&0]^x·8Os/Pn=du _:³gt|bfبe]]v2z㼏ۿQJ YȩH9\W5&c vF4U.4)a]<+Rb{ʫҚx9XdPdYvˈ'f o 42^w;?iM'Ju>= ) MQx\ N映yPʀMz Ytg HEl 3ɉFnR#tzQw*Q.`S&2\YF" ěΔu!:MI,|xN^jgbmRZ cxN ^AbE'OEr!ˊrgeF%/א(B|V8 (Gحܬ6:s Y.6NXNo$m`t@w ׃zt+`OtND9l&fx *%i*yۘ>nΦ;SuHӌ&2/bߚmfn9[m7nus%"Ei+\+֮cBc@Nn%ږh)۶Ta,Q4? GS>|Wcd ۤ;Ƞu^^h6ǸRQ/Q^^b0[Ay\+A4jFT0*SsA@-IðZ39,W V#6SǷ,{1EܢgM埿n!P]υo/8C<宋Եq|*v#|eث3UAsnf^/v.\TcJR?IXrDn8Ecx>9S͞H/mzڒV?كq]?ʣz*Rr]V؇C6nB{8}`v~J2G=8g~uaWeP|TtŇ"|}o3{|o?.ynb+P\րTL 8I{Q?ed1(:~=j8͝1`6o*zKMP2$y dZsGɟZfL@whuW= 2`G 8VzBQ42 +K x SiJ6%l1Eog 59BL$ۀF޺mFŽGk>X0*6tO'G/q1OehWHq㰀$tN< @0.,SSʈ,> `IEH"2vMn1ϒcY=z{2hqj/zS9EZ8րoˉ]IƸcc4vmT]F2zXMba5 ؈ 6]匍y'C | C 9k'yk%\B$ee|iЃؽ8%E+Mb=M7mv]GT(Oo(gV6K g `׭̆7dVJ<DaXGqvԋs(0*S%L֤`@QDؤ,e{ɬ$ A^n1ԞotWеTkv=[ǃR$S[%nn\"yO;bX~Ͽ _sxg ?6wl"$رLJl8u8B"-Dt*9s6,e)&09S+ =lTuߊJF$MO1M}~5D3ˊx{pM+uBϼ'^ $?D.1pS(Om FmD62BP/'ej7d?xs]_PHPMi:ʁH%zϘ*Bdq:X˄> 'C+~g?53+ yi;&ŜE>abm# `V 8l F4/.<"`b8WkSC sgM F4Y,UgQW O |?o^`=y _7uqKgAH\ mјmk ?հh 0Lp0Scb׾9]cT\B/WA٥Bkc֜U˳W-X_>)??v:D΄5,ױ{;%߸Js˜[ېwEIÏ$rYcsW / QHj̎$UoL6?$S@;E ^uC2˩@[ag<(BK+4!DZ&=# Aw/0BGר F 2UqSI<{n@H M4hyi `CtEyBՃI&v_pRX-0Af' MuRĕ'MZ3l$#i0 ?֚d'i=nX(\ e1bDI^lti9PC≯,?=i7bgcW7$8 ;%Sʈ.JꚢJVX.t:JmT'yà?-eX+wH ?ud"8tmEzpXl{$bMȵ*E@tOBW`>A*a>5%3qtيﮗ#xrVn5QTA72(^W1[s3Nk;dTt6r4RUz! )4+To {.ȗryNQ 0Rk,kSuny@D%flý ͞U\"{arYtѫkxϝsFt5rԺW-}P&{- {כ|ᄕTnc2Uz%sF*BolI-spjlNSr_رKCGvlG >zFߗ澤>~gg+6N )knٵfyҺtQo/Ǯxp !}azHt , HHRhǷ|D[}w1h'{d2 0^|p\ !MBA5S*ri[;OHFֳSR*x1$9>,qIm< I>ogzr aV 7)e+FS6"%1#Kpv$tߡdZhmrcV{*$/$z*{dR,`M^DY2ҊMW:#'G\|q2Ԃe٩ O>dznXuIRe_q(?墳uZs+$hRz8y'mpuJċ<9{H0*>3yZbXmG0w*7vV3IWMk7$zR^{'wQz8E*FĘn0HK NvHQdڦ_˭&L2\KP|% L9kv;cUG,X17 zɒ # eXF5ȭ+wM '$y%F+y?|%x'%`l9AJwU9?q$踦~H7E`|SZxdC[Y_SIC,L2[D`.%f RທҡWz`!p;"t#6ݬٵ7]*Pp۩Fn_O;@P ` r)/JA ^oI^'!/h쥋GވU p>F-x5\ɷ1ċu:evO '׃+< Cn@edZ9*%1sV, '3ؑlLs2ێHoϰ4Xb^yCS7#s&ZO vKF#n=#xG5ۖV.Lb cWC!!E CdH@ɀ>4otȣa dX7zW;j]QO Jd~Xmx2D.ڶG PĚsDPID0 [ l3On!&D5d)+~?# V1f?eR](~@W&߽͹OT7e\,*z3;7$ciNGG4.Yd-z fکc\*^A^7A.W1=N*'חˮ`2d4ϲ\4v`aneהՃF F܊+JAXe;%PEPQgf ? )vQ{2$gٵ6ImHuᡡQzMRcg9e"]JΝ`5iК$ \ǃǚ,2=J 6=p,$C:p3Ӿ-27o 檙mM߷H^j",r?UT6كZVu܀U5oRctlB׍ZJW9)=rO^IZ Rz8b) pCz (K1aG)UY@0ņ [vR7-LA|"QdkujM7VPa~"9ʉIN>I_ A9~0)uNZE9>+&@CV}2ɸr¶=TP#ixSAe ZŰSWk\+ 5_BaWm vOaH?>p [$MUC( Z[4ACkžBLRKf=D p=nj`rK#d,Iqzܼ^Ln[(g@GIӍ}ot%֮Edh]"1zi.h ƳZKM컒GLЕ!^ f )N3SXLH/ܛ_,OfH.MSM!"Ehi)cGh a_I[X $[&dΠ6+Pm*5y%@x& 6rzΥ-u~ p xcr(zlY4ԗ#MwƤmXdBn(F `QDy̅>8O)$x fv cS$8#v)I3e x7+p8X2ZkVȔBYt2_ljҾ9U{$3rQ3KhSgF h)򭃴OӚv ɯutG3 ι l!ISZs.! τcf ?7l#>Da|0IX!?#noZW}RucH@A~*(53Yً: DzHEqpL/˕U4LE=è @S?-_\(!AWݭD5M{p^;IRR/[{XIvm]q?)卋wJyva#Y:hOm) h(wf84XR&8ː( ߙ`[ XG}:Jh(&O/@9uKyH(fb3zyIݭr,PEss;j<T^fAYTݩvrlxpK n%cKn9XusjШdR0l \VPHhkR7ҫt]\m$1D5ı>7;2l7V*(t.Ef*y |61Zi`'\Q䂀H$`op-ԁɡIDqGjM6>{;YiZ%YA಺=XgL{ӕe,C 6F_U$dp*ۏ7w܉`rTaϋ9H&eA7XdWFYL"C2T*4OJGpmՀ)?q>FNn{rBe nhs@Z J=Bv\smХcH%qjj-Dtvy<{1qE !VsS GPx/ݥ9Bݑr|0Tz"RLm6 tF{]|Nx{/社BYv@`_r2,lp5+j9MC{!-Ŕ B΁+Lw#'N>IXPe{g_#Q$2d V<ۮH,XsS~T,*ȾhnFӆiϡU' 毛=@g5Q+4 u/<}4?a7m9C e9/`:m u":s&:kO[Ï„BcU ECqNy mk\dE `p[S$a"2"^O~?w0#Igmcɫbȡu%o<(f/O3LԺl=.7]]@ɺ]-F1`^ynr tR P/K\wׄ[b܍1_,pz}bb[g,Ns_@Z҇KeNSņ{f}y/yP>UQuX{,D#U,ġI6*(ELM:ma^w;ZFHv%J <9#H5Ӓ.B $.Tg 6+Q o@.ʜ{&b9{,ggSV1~@4O:+иsTFn^03@1 â;GL,3fYxO~TbPb]х/ϩk٤*v!Bkߘui(jQ?y1_NPL 1d$B5dX9*w!5'C}keP&2Bp'ŝ8f>ӓ?;[]FJl vHX4%a-12dIE 2jTmzoA}37̀Bn57it1:]Pvfrli{<eSj,N7Ng4 ^7Kn3\|VϏmX]xӑ->+dMJND<^$tЁK̋; .( u,lG~PteU %*ݐ܁v\<ɴWƛ+kF′%Aㆍݒ׸)˳kΗb IHR/.;On <@fR}<} zsCY<*,lv*~(Ly25*/h^n*=đaDmˡhf9olk~2k~ӋwJ~L$8%WJQD+2|ApֶwkwDD=č[&!omcfad6#p1[Nbr; zt9$e6o>٫@F*ǽȱH4A50:pVyAyJ¦9}$w !L)">p}KeSF͗hg2]w'K\mu]-a-טּs2T~$N)٠;?6CYg?NVR*ە|IWcXMτHߠfy6$Rx|XcV<m] *@"Y쏖 3bsqFR1 Wў&uG jhP^ -F.CIRdy2:b9=BC@2#庻Y+@'mv|YO\M |\Wq.27'!{0k~ $-_9*:"3{N(caɚ_O'Բ+E5` -$7R}x~vxl#~AD#P9aŢ;9\jk.ԢʁlӚ3f/ .(' -LVgoMހڬ}Ye0-R9/cjgIqBy3Rd=1٩P_1(,w(j\3~ԉǓO%g>NVf7.X X̴?#U&l5jfϐhtPbQH~hwd BOgB}4  ! 4P?/#0P,i_ށEyXi&OPyF$qJj+蔟*E3̚r8UBpCc'+Jy4'y.{w!Wt 2ٱm^[wpP:P Œ$ߨn̹#Q"9BݨϛLOC瓒N*]P\pA-KB Vþa67n6/E3,B(TȌ4{ѹ ƄӠڿ|pU{r1O>]GHH/q[Ϣ3U6LeQZ "~LqTxi:#HNZ SyQpZG0CݶHo,ZR #եc`Z "_Q{$CBiRN,3]Hw@Ԣ='ZX)U2\ %,I3E6az! g7a9OC}ȳOi%4pZ5?)lFtS޽^$0$́(;ݯp :([eL [h$oЀT1͈(. BDQ '7E!LGCcL`3o!tA8 zb$\Wg(-"a'*Ygz1@jqzarv&mٔ[4jtq*Y(b |E6^BrPhNU{Dн:x^ stxlZRT)V1Yn9b }fppX1t^OMcp lwp4 %ɸfYŹh @ZP#Y0^U2Ik&:H(\8]M%_zkX?Qi=L$ܝg\H }