python3-paramiko-2.4.3-150100.6.18.1<>,5cVp9|G\`~*AJʚTE3 Ⓓ-ԉ&RTl0̃P9t' zݤZ8~P@85| GQFeӂ|[GL[6I&T8ӯJhl wvK_FG~?q$ K*꜠Ο*F]R0 {̆V)$oTt9 ud:v0L}Yw]y ӮuϕVc?4RU6;Wa̍>>l?\d ' =PT\`y < V p  +1 +-03v355 6 6 (787(97:9FDGXHIXPYT\h]^;b}c&defluvwxyz XCpython3-paramiko2.4.3150100.6.18.1SSH2 protocol libraryThis is a library for making SSH2 connections (client or server). Emphasis is on using SSH2 as an alternative to SSL for making secure connections between python scripts. All major ciphers and hash methods are supported. SFTP client and server mode are both supported too.cVsheep95!SUSE Linux Enterprise 15SUSE LLC LGPL-2.1-or-laterhttps://www.suse.com/Development/Languages/Pythonhttps://www.paramiko.org/linuxnoarch )<  W W$$4*4*II ]]\\~~kk##YY880101VV))C;C;%%5h5huuTT  {o{oNNssDDDD/M/M2V2V``AABnBn!! q qP,^1|&{)*RlL3r(>^`#2ORkR]0v Pf L1R!|gDAA큤A큤A큤A큤cV?cV?cV?cV?cV?cV?cV?] cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?cV?] ] ] ] ] ] ] ] ] ] ] ch@ch@ch@] ] ch@] ] ] ] ] ] ] ch@] ] ] ch@] ] ] ] ] ] ] ] ] ch@] ] ] cV] cV] e79c1a81983e526f2f8088c495581d50c91d2d6b1521a7d98972398274c23ecc701494da21b16ef3c57e5ee3eba1e8221d05036050bbe180a82ca93e283edd7f01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b6f490f7f9ff7a90f1e9edc86c220c7d04736d88e6a9c727a13daff4f00a20a4947d9fe78273fd64c750e78a317b1a59a6f87ebb93d8d4cf9ae6d98a0f2fc9f9ed7a6a9811a4da4100f29fa331e19c7f7c17953190d6f408680ed50693254a8a7f5fd942c58f335db74dedd54145a9e2e5f6360abe320391059cc7a178c64fde07a80946cc87022bb42cbc312e9da4c4f1abf367f9ca135126fee80632eac0b2d5c097ccbc7b874162c84b47292da0768d65256fc74d34624b067f545725821a8d8d1a05d104b2f92c20411f10772225a78e6708e4b215543b2cca8520969fd125be2af3e69437ab110f7d4768d75dc3635ec4857b0674fb73cfa867cfcc166ef039cb4613f5a4f9f23f589c6c05cc7a66204389dfe7db5bdd2231318ebeb4f0d869244ea8232fad76f35e540a5e5c505c4c833919682d91d915e3ef2f6ec414bf4020a1e50ecb1f8f2de3223da97bf4349dce41b4a1a3a352d8670c9aea7223131b7c9f9902fbd1deceeaac2c5d601ec204d7077ab9e540f99e9b15f9f0a6ebc0603e81f453e2b7840e6f5baa483ba463dacc5951d65d36ce862b641adb44528e43559ce74b062b1c6ca734734938c006379ff665c4ab537467dbdeb57238455e43559ce74b062b1c6ca734734938c006379ff665c4ab537467dbdeb5723845518d252fee8921cb4d9b821ea32394713fd6f8f83c992e820abafe7837b47421e6016811b4f45e5d0666f63ceb1ecc6cd25da9c70d93ba12d6883eb6ab85def1551944f7160c06d4274c4667bc732a60eac44e3b5ff0d7912fb12bdf886a91c40cd47936e5b03236623041aa434e60964a4dce2d8769db60a55441bc05e277e3ddcaddb0937b9a27a54f29976b6ff9cf52d83b2e99c108b298058d827aacd821ac2fa51f02d8157952bf82f1c4f9721243c934a4d96cbc3951785158558bff5130a820426d2244f433433e39e1dc40f4bc91fbbdeef8a4b60d3778e21ecfff6f40a820426d2244f433433e39e1dc40f4bc91fbbdeef8a4b60d3778e21ecfff6f47045708f4b10101bace088c1fd7be93a6a79ff6c5f2d8128463d029cc2008aaeb15c167451beebb284552a012bd8a7a52f726fbad6a6ca038829686ebec06801b2a5d90200bd56d83e953e40d912db70b9b78c16379fc9eade1c39f21d1611f7d4566db29493d63b7fe0c66e93d3ca4e7e0e5f5a76c1d71016269f2d7d87fab370aa0db844cf296d28942ce579afd75074742f4502f36a9b35440fe6e1a98c7def0129e22af53a25d1307f3f880e86c1c5a1a7e865592d99851a1a99bcadec6fb8d696963418d38908e72373d447e15295dce8c79b1bcbbd9ec52f3a4434721c3f72abcbf9ba0aab2b89d4d147f99e717f9ec18eff115c43880c2e0723459c8f90f4bb57e3d13d8a917a557b5be1ff54459a86e4c1845e34e097bdc5319794143291ad3ad74954438ab10e41cf480f5152dc657147821d66d9020cfb17d0dd987de8956224f9b1175bfc3e1775cefb5381093dec1bc77c6df1fa5f2d9baafc0f3569b8ae5acd1ce82075fc520895ad0877765873ba10e8b272e766b1c62cdc89a3e83e32674615d95331c3d324db5c9b026a182cdc3892e573a0296d2a1872c21acbdef76c78e683ce305c90ac5300ac021e2eafe075cfcac265917652c2d8c238c7fa72fb7e37e2a3782d7073c507b2548fa9e82c1bb1340a6bf75752b0d235d92818d850d39ec71b216462312cd15a051e6bf7f5c93b037f1f68b60d10edf52b5afc7673a61ccff13ef0ba433d105df89a82ba3fa537bfc232b8c4241c72d89cbe8355da35ce2d185a202e5b3f6f6a8e3f166efaf97fb23db0d342e6c28570e575e43763ac129c43dc44fe65b786dd5d0c592cfc408b2fdc2320b0eafdaa1cac13347bc8872a3f32cd2f2e3ba537cf3a9701c4be85ac82f885429929cebabd281af57a14c1693a518d6f7b3cd98c4922129a500295351f41b76640df5b16b53c06e8a9c188277f863a5afdef6de669f32c6d855a3e6e6d47d57f3b408fe8dd6cfbcd1e32a7a05ab4cee2941488f0be30ccbd37aa5565014349acb789f83563a1d4136de803bf7735c46b68a445f7b1bff9529c5535ed61b8408e8cd1b702d5461fd0e04325ffbc05c224f966aa0ca8e72ef4156b7732f02a29a80b3eac146262a4d1e51f62c3d45b37d831f988b752bbc0d397ec1080b0823131a9d909e34fd40f754f3fe58250400e9a98892dede85c1f12dedbcabae26883d8627322626a07da95bd5797e336cb1fbb7e5cb233f68f2d01154df990fdc548da9706dab98727ee443fc5cdfd2d68d02d402ca24072c857465b23ba2822d3aecf39a75bc141e3b386a8829b7697c987fa401845e9627eff4a6475995433641c24934856f476c44e60059047a4694bb4873e992c2e1e9c06ff052cc660dcd1ad940d4855b6ecc39ef223a4cb2a59202f272de3aad4d701e4a9b9cbad648d8711d61058378ab4793935fd2f2cf2de26cb545744959e98eb726b0d8a54e7c412af9de098ff5d95cc6191c185bd880caf8d66af79aa211bf30fc13f06897892461d65cb3062b80eae4f0590a46ba17167b957ffb866c68613e9429950a6fb71ed2b891bb1c50caec4130cdadd2537dff433a185e51d1898b9e9bab186f8f5da5231ab38e12d295fa3020b0a33061bac6ca4c7344ea43584ede0e3a54432ced9fea4ff08d9ae1e0fcb4f0e197daf8552278c78631daedfbf563d740a2dff11899a4ca62245d0b153239dcb03a472907d542208f1983c7f0c25da270ab5b996a6244808f78a325b0a8fc70b15e157f649dccfe7ba4bfa712b4fa2bb1eec5d5760fe5291582c07921baa97e9fde9ec7b715ace2575f5c46d27ec955d44f548dfedaf4de65f4b06fd48c33a5f80d3bd9e358bb30eebf06bdd673ee9ddac043f1735e2ef7063d4282eb13d93bf1a0584d80bb7870a6463cf0afbefe3837d8d7a8ab01ee488629419233f74a8256384821bb82a8439c90b85e0765cc2139438b54344b94c49ce34daab19c1c93f159fd2ff14160f75242d4709bcfcd7013febac2a110beced02834dbdde3b65fc42f73a04df42e19dbbd378d218f9002ef2f42137a253d6febc1c700955450643ae82f158f990d5548116ed4de0498e0941421524a83d075762ebec762d258bbb0d9cc5618335bf45042b60fb834b159d4ac9d854c50d1445dac7421755eba35646ee57f4288d43a8f83017c8e203faf489c25144aa8e9193708cabf4eb973b90965bbfa73c97ddbda8ae4cfcf9eb58b9822a8e3b35568c0588fa7a9992ac8b5c6e068ea95d567077c7026fa12486ef70ef1792586e1e09caf9d909153f29021858250561d8624ea2ed298c71d20941416001ef38ea462889ca1266c285b497a0baa2a0086ea13ae145aeddc526f54a165d52a8733459a9a36380ac906cd04e53beb5a1c66e49b9a49a35471bdf8c84cac8a5a7e14600dd33f4e286e62cfdb43ab664e633461a9efc068bd7eef8c3267f810cff6cb0a162f91f4f698eb5c9d77740891a5dd2ab8fd72b20173322a465aba331b7a0d040c6a164e733c62c4f3979ffff7256eb1e2eb7c4411124daae288a47b1137d0e79b586f6dc4db239dc28111c89c6cfa2900463f1a2041a0daa0681775a96b4c09fef67fdcfb403b49e50d901eb45831ff938be2031099b47821af9e10524e9dd5caa75ada690ce4b3da97229148ddafabd975a7c18b1f8dec5b07ba2208becbc299dbc96c048bfa4b15f9c0164200e0c2bba475229aba7f2d0ae563cfedafbbae954e74915c15b181a813a17566ef20d7668683b3e843c3090715e9d0212c59da8bdd52527d8591f7fa79206bf24f8522d9d0fd84bd74f5dc2439f8b92dfa574eac7e9876c75d725afa13c2b915e70c3d25c3147bad51cb652220f91ac4307e245f69da8046c565621de937a130436b1aa3132d6166a7387442843e637bd6bf268e1dbdb3888745f354a1f25930ff8f5b266cd97b7e6531be24a8fbd75559b3b3d97f02a345df2df7281153b0bd41b56aafce03104f274bcc86ae2463abbdcccca73357893338de6febbde8a1afb8abc7b2f12b424da58ee8138165b6c4958353a2661b9c2e5544c6dd7097695ce7400a800920a929b52e1673a7599569eeb85da7f02dc83ab39303ebe623fb9557f7ebf1dd3e1f17451b07b8737e0433c93a83af77ec9149180acfc0bb41cfaa4bcb0e4512e14b1dbb240eb11c93ac89a5a6372d7979197fd176d388557f7b6c1404f5dfca109967ca71ec87815a6e86590d2613903f0783fbb3ef8f8346ed64d6e4b49fb12791c7a263e20df690af99b55044f28b2775cde376fcc601a423a9151d9100d18afbe9d2af7b705a698d014bcd19dafde967067037b18c0beb58d01ced99ea71dd6a9981e50e6e57339a5e7905c94a50fceb2ce6fd88bc444ab53573e0f87b8a1a2dcc4d544c18eb039d03a14b8414bbd3a177a50b2d783dba5022e53a2fada645e98afce7a628d88b71ca7d45bf10837ccd695c7acb32690ff942854fc2b6def105dbcb5e7a35a6aa17811da15b6613b35a78d80e17965953b5528fbc2a820753d9d99dc9509bb26c3ea3024b4f196f8d7b65258f1d05e0d62d3a488dec09f037e9c8fee5a7c72d66aa8cad6774a14b23d302e0fe8337098faa76d479f09785a680be571c1ac2ebb32cb3420d33baeb9b27460914fd8bfbfeae05611da96620f7bc90d8e262cfde8548285b515262419c62f38e462b46b44cae3727c22d9b14d6169620b33f481c2e421dbdd38896349c04037f082eb2d3a65695d4760f25a98cc0cd2c8e3b8770fc957dfa0bbecf38708c5e9420397db6b36e4141d35c45afdbbedf6f89fb165a7476ff42cb74f1d606283a8e8df2ecd20b4023e1d80a362c903c5c2bdef8b28801f6332a8a6261c03cdacbc99c2e983739000481ea63ffb835afcf2e69be78ed10924f0b915c45d255d70c67ab850ddc626a9e6735577b24b9517b0adcab6c17fb1431191afebe4203abc63aed748f11a27cc040a3844118098808422765574bb932f472f8a0005aea987aa36a20eb73a1de04f9450843abc1b7fb2a7fcd3b4258e2f4535d035bf49360d3943887d87c6363e243e3420e6b294e576439f552e01308eb7b6a82fc75d322a8b0f154b47a7ee590ce1444ae5ece6600530c541de466cfb699184882aa26dc8325f30c20d455180a1f442596d50037cdc27138e7c6d0a80d0987da77569c603a77cb38ad7788115bcb5c2e103085fdfcccb2a60ed3d8f2d30fbe2c1f22360e1c869209bd21892b3b07e44b7a147c74beeadf7d856ffa120a3e91817c3f4cea277927850037a5fd14abc2277da0bd8c998b9c0a7fbb9bc579bfda835d96eaa01cd24c06c9576df447dbee46bbf0380afbfef415b4c62165f004268a964656d7a879836f030fad113ba4432775da8d1a200769ca7b41d42b30815b88efe6d5f8093384f2f561ebbdcd08e8be706bc21e3618be1a1fab4bf6cb6ba00e3e17bdd12a7b999d0ea127ff3bc57ac3687ac3d5fef1b6c9c66e2d49d251f501b0a9dc07e2e92064f52ae29c69308e9caee2d5cd7988d9af469be76c82038f1b39b2e98a3b1589108b63a3a44fa09ef9d87efd599d4d4059d254569d3b3c4c1a62bce871027d9dc52923fc09f1c122b52c0087057065b341f85a7f190d63fb9b25f5d6ba3798e2f690f5e62b6017150e68a713c5228c01ba495b2de93d5d0cc10aa3b357db84280f55b96990b2cff9f95081eecffeed924ffbb46454236e20b70b0c7775fa289303d598cd4d33addafae1ae76dc32bf51ab0528c50ea40d47e256894c61ef8cbea292e80af2d0794a198270f770396a4bb67a4b7f0cf0a412156ef034347a662f9b2f4bb938f6d0a57c04c915f2d0f1b6997d8277253bc563170d1b72af98085ac20eb2325340cc3522d5fe29e2ef3c3fa53473e2a9750c02e8738cf036127efa35fa25bf5f395fd26e701c2e1de4ca7d162816986dc791c22f8f4226857ad1bb2rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootpython-paramiko-2.4.3-150100.6.18.1.src.rpmpython3-paramiko@      python(abi)python3-PyNaClpython3-bcryptpython3-cryptographypython3-pyasn1rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PartialHardlinkSets)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.61.0.13.1.32.50.1.73.0.4-14.6.0-14.0.4-14.0-15.2-14.14.1ch@c*bM`t6@^1^y@[[R@Z`@Z`@Z }YYYJY=0XQ@XX~@X @XOW@W@W\@WWUeW/*@VHT mcepl@suse.comjbaier@suse.comsteven.kowalik@suse.comsteven.kowalik@suse.commeissner@suse.comali.abdallah@suse.commimi.vx@gmail.commimi.vx@gmail.comro@suse.detbechtold@suse.commimi.vx@gmail.commimi.vx@gmail.commimi.vx@gmail.comtbechtold@suse.commimi.vx@gmail.comtoddrme2178@gmail.comrjschwei@suse.comrjschwei@suse.commimi.vx@gmail.commimi.vx@gmail.comtbechtold@suse.commichael@stroeder.commichael@stroeder.comdmueller@suse.comdmueller@suse.comhpj@urpla.nettoddrme2178@gmail.comtbechtold@suse.com- Add rsa-key-loading-fix.patch (bsc#1205132) fixing loading RSA key.- update to 2.4.3 * Fix Ed25519 key handling so certain key comment lengths don't cause SSHException("Invalid key") (bsc#1200603) * Add support for the modern (as of Python 3.3) import location of MutableMapping (used in host key management) to avoid the old location becoming deprecated in Python 3.8. - refresh add-support-for-new-OpenSSH-private-key-format.patch - refresh paramiko-test_extend_timeout.patch - refresh support-cryptography-25-and-above.patch- Add CVE-2022-24302-race-condition.patch: * Fix a race condition between creation and chmod when writing private keys. (bsc#1197279)- Add support-cryptography-25-and-above.patch: * Since SLE15 SP1 and above have cryptography 2.8, stop using deprecated methods, and update the required version. (bsc#1178341)- paramiko-fix-1169489.patch: fixed fallout from last patch (bsc#1169489)- add-support-for-new-OpenSSH-private-key-format.patch: Add support for new OpenSSH >= 7.8p1 private key format (bsc#1166758)- add disable-gssapi.patch - workaround for boo#1115769- update to 2.4.2 - refresh paramiko-test_extend_timeout.patch * Fix exploit (CVE-2018-1000805) in Paramiko's server mode (not client mode) where hostile clients could trick the server into thinking they were authenticated without actually submitting valid authentication. (bsc#1111151) * Modify protocol message handling such that Transport does not respond to MSG_UNIMPLEMENTED with its own MSG_UNIMPLEMENTED * Updated SSHConfig.lookup so it returns a new, type-casting-friendly dict subclass (~paramiko.config.SSHConfigDict) in lieu of dict literals.- add paramiko-test_extend_timeout.patch (bsc#1085529) extend timeout in testsuite to pass on ppc64leupdate to version 2.4.1 (bsc#1085276, CVE-2018-7750): * changelog: update for #1039 / #1051 * Screen off dev version of Python from test matrix * ensure ed25519 password is bytes * Cut 2.0.8 * Cut 2.3.2 * Initial tests proving CVE-2018-7750 / #1175 * Guess something else added this prior to the merge * Fixes CVE-2018-7750 / #1175 * Uncaught typo in test suite * Initial tests proving CVE-2018-7750 / #XXX * Test proving #1039 / efficacy of #1051 * Changelog closes #1175 * Cut 2.1.5 * Allow overriding test client connect kwargs in Transport test suite * Cut 2.4.1 * Fixes CVE-2018-7750 / #XXX * Cut 2.2.3 * flake8- update to 2.4.0 + new pytest based testsuite * dd a new passphrase kwarg to SSHClient.connect so users may disambiguate key-decryption passphrases from password-auth passwords. * Drop Python 2.6 and Python 3.3 support- update to 2.3.1 + cert_support.tar.gz - missing test certificates for testsuite * Certificate support broke the no-certificate case for Ed25519 keys (symptom is an AttributeError about public_blob.) This went uncaught due to cert autoload behavior (i.e. our test suite never actually ran the no-cert case, because the cert existed!) Both issues have been fixed. * Implement basic client-side certificate authentication (as per the OpenSSH vendor extension.) * Added pre-authentication banner support for the server interface (ServerInterface.get_banner plus related support in Transport/AuthHandler.) * Update Ed25519Key so its constructor offers the same file_obj parameter as its sibling key classes. * Add a gss_trust_dns option to Client and Transport to allow explicitly setting whether or not DNS canonicalization should occur when using GSSAPI. * Paramiko originally defaulted to zlib compression level 9 (when one connects with compression=True; it defaults to off.) This has been found to be quite wasteful and tends to cause much longer transfers in most cases, than is necessar * Enhance documentation around the new SFTP.posix_rename method so it’s referenced in the ‘standard’ rename method for increased visibility. * Modify logic around explicit disconnect messages, and unknown-channel situations, so that they rely on centralized shutdown code instead of running their own. This is at worst removing some unnecessary code, and may help with some situations where Paramiko hangs at the end of a session. * Display exception type and message when logging auth-rejection messages (ones reading Auth rejected: unsupported or mangled public key); previously this error case had a bare except and did not display exactly why the key failed. * Ed25519 keys never got proper API documentation support; this has been fixed. * Update how we use Cryptography‘s signature/verification methods so we aren’t relying on a deprecated API.- update to 2.2.2: * SSHClient now requests the type of host key it has (e.g. from known_hosts) and does not consider a different type to be a “Missing” host key. This fixes a common case where an ECDSA key is in known_hosts and the server also has an RSA host key. * Fix up host-key checking in our GSSAPI support, which was previously using an incorrect API call * Fix key exchange (kex) algorithm list for GSSAPI authentication; reviously, the list used solely out-of-date algorithms, and now contains newer ones listed preferentially before the old * Clean up GSSAPI authentication procedures so they do not prevent normal fallback to other authentication methods on failure. * Add rekeying support to GSSAPI connections, which was erroneously missing.- update to 2.2.1: * Missed a spot * Update .travis.yml * Whitespace * Having this in a mini-toctree made the nav look funny and is also just unintuitive * Changelog re #471, re #65 * these are bytes * changelog: update for #990 and #993 * ecdh kex support * flake8/whitespace * Trailing comma * Add test for posix-rename@openssh.com extension for SFTP client * Changelog re #921 * Add a note about new Python-level deps to changelog re: Ed25519 support * Add method for "posix-rename@openssh.com" extension for SFTP client. * Add IOError in posix-rename@openssh.com test for python 2 support. * this isnt bytes * Added a auth_timeout to handle situations where SSH server stops responding during auth. * small cleanups * More changelog flimflammery * Added changelog entry * python 3 compatibility * Incorrect comparison, should be <= * DDD re #857 * Improve __hash__ functions * Hrm that should always have been an h1 * No idea how this got past all the earlier flake8 work... * comments * Fixed test to support python 2.6 * Note ecdh-sha2 preferred-kex placement in changelog entry for #951, re #983 * Changelog language tweaks * Reorder cipher and key preferences to make more sense * Added a test to check that the auth_timeout argument is passed through and applied. * Changelog tweak * Cut 2.2.1 * transport: change order of preferred kex and hmac algorithms * need bcrypt >= 3.1.3 for kdf() ignore_few_rounds kwarg * Changelog re #972, re #325, closes #325 * cleanup/simplify auth_timeout tests * Missed a merge conflict lolol * flake8 * Changelog re #951 * Perplexed at why flake8 did not report this earlier * Add Python 3.6 to classifiers * Add support for posix-rename@openssh.com for the SFTP server side and fix tests accordingly. * sphinx nitpick fixes * Fixed encoding/decoding of the public key on the wire * Added test for authentication timeout from a non-responsive server * refactor files * fixed comment + consistency * Changelog re #857 * Cut 2.2.0 * integration test, with ourselves * TODO * That was easy. Closes #857 * Add sanity note to changelog re #869 * Unit tests * Fixes #325 -- add support for Ed25519 keys * Happy New Year * implement __hash__() method for Ed25519Key * pep8 * Increased auth_timeout to 30 seconds * py3k * fixed long line * Link to the spec * set a minimum version * Support decrypting keys * Failing test proving need for #857 - move demos/ to extra -doc package- update to 2.1.3 * Make util.log_to_file append instead of replace. * SSHClient and Transport could cause a memory leak if there’s a connection problem or protocol error, even if Transport.close() is called. * Prior support for ecdsa-sha2-nistp(384|521) algorithms didn’t fully extend to covering host keys, preventing connection to hosts which only offer these key types and no others. This is now fixed. * Prefer newer ecdsa-sha2-nistp keys over RSA and DSA keys during host key selection. This improves compatibility with OpenSSH, both in terms of general behavior, and also re: ability to properly leverage OpenSSH-modified known_hosts files. * The RC4/arcfour family of ciphers has been broken since version 2.0; but since the algorithm is now known to be completely insecure, we are opting to remove support outright instead of fixing it. * Move sha1 above the now-arguably-broken md5 in the list of preferred MAC algorithms, as an incremental security improvement for users whose target systems offer both. * Writing encrypted/password-protected private key files was silently broken since 2.0 due to an incorrect API call Includes a directly related fix, namely adding the ability to read AES-256-CBC ciphered private keys (which is now what we tend to write out as it is Cryptography’s default private key cipher.) * Allow any type implementing the buffer API to be used with BufferedFile, Channel, and SFTPFile. This resolves a regression introduced in 1.13 with the Python 3 porting changes, when using types such as memoryview. * Enhance default cipher preference order such that aes(192|256)-cbc are preferred over blowfish-cbc. * SSHClient now requests the type of host key it has (e.g. from known_hosts) and does not consider a different type to be a “Missing” host key. This fixes a common case where an ECDSA key is in known_hosts and the server also has an RSA host key. * Overhaul the codebase to be PEP-8- Implement single-spec version.- Fix version setting for cryptography for build- Add python-pyasn1 as Buildrequires for testing- update to 2.1.2 * Fix a bug in server-mode concerning multiple interactive auth steps * SSHClient now gives its internal Transport a handle on itself, preventing garbage collection of the client until the session is closed. Without this, some code which returns stream or transport objects without the client that generated them, would result in premature session closure when the client was GCd * Avoid test suite exceptions on platforms lacking errno.ETIME * weak how RSAKey.__str__ behaves so it doesn’t cause TypeError under Python 3.- update to 2.1.1 * A tweak to the original patch implementing gh#398 was not fully applied, causing calls to ~paramiko.client.SSHClient.invoke_shell to fail with AttributeError. This has been fixed. * Fix the implementation of PKey.write_private_key_file (this method is only publicly defined on subclasses; the fix was in the private real implementation) so it passes the correct params to open() * Add an optional timeout parameter to Transport.start_clienti (and feed it the value of the configured connection timeout when used within SSHClient .) * Catch AssertionError thrown by Cryptography when attempting to load bad ECDSA keys, turning it into an SSHException. * Add a missing .closed attribute (plus ._closed because reasons) to ProxyCommand * Make the subprocess import in proxy.py lazy so users on platforms without it (such as Google App Engine) can import Paramiko successfully * Fix incorrect docstring/param-list for Transport.auth_gssapi_keyex so it matches the real signature. * Add an environment dict argument to Client.exec_command- Fix Requires for python-cryptography - Add missing Requires for python-pyasn1- update to 2.0.2 * [Bug] #758: Apply type definitions to _winapi module from jaraco.windows 3.6.1. This should address issues on Windows platforms that often result in errors like ArgumentError: [...] int too long to convert. Thanks to @swohlerLL for the report and Jason R. Coombs for the patch. * [Bug] #774: Add a _closed private attribute to Channel objects so that they continue functioning when used as proxy sockets under Python 3 (e.g. as direct-tcpip gateways for other Paramiko connections.) * [Bug] #673: (via #681) Fix protocol banner read errors (SSHException) which would occasionally pop up when using ProxyCommand gatewaying. Thanks to @Depado for the initial report and Paul Kapp for the fix.- updated homepage URL - update to 2.0.1: * [Bug] #537: Fix a bug in BufferedPipe.set_event which could cause deadlocks/hangs when one uses select.select against Channel objects (or otherwise calls Channel.fileno after the channel has closed). * [Bug] #520: (Partial fix) Fix at least one instance of race condition driven threading hangs at end of the Python interpreter session. (Includes a docs update as well - always make sure to .close() your clients!)- fix build- fix source url- update to 2.0.0: * Add support for 384- and 512-bit elliptic curve groups in ECDSA key types (aka ecdsa-sha2-nistp384 / ecdsa-sha2-nistp521). * Due to an earlier bugfix, less-specific Host blocks' ProxyCommand values were overriding ProxyCommand none in more-specific Host blocks. This has been fixed in a backwards compatible manner (i.e. ProxyCommand none continues to appear as a total lack of any proxycommand key in parsed config structures). * Fix a backwards incompatibility issue that cropped up in SFTPFile.prefetch <~paramiko.sftp_file.prefetch> re: the erroneously non-optional file_size parameter. Should only affect users who manually call prefetch. * Replace PyCrypto with the Python Cryptographic Authority (PyCA) 'Cryptography' library suite. This improves security, installability, and performance; adds PyPy support; and much more. * Fix stalled/hung SFTP downloads by cleaning up some threading lock issues. * Fix a Python 3 compatibility issue when handling two-factor authentication. * Clean up setup.py to always use setuptools, not doing so was a historical artifact from bygone days. * Update the module in charge of handling SSH moduli so it's consistent with OpenSSH behavior re: prime number selection. * Fix up ~paramiko.ssh_exception.NoValidConnectionsError so it pickles correctly, and fix a related Python 3 compatibility issue. * Update to jaraco.windows 3.4.1 to fix some errors related to ctypes on Windows platforms. * Annotate some public attributes on ~paramiko.channel.Channel such as .closed. * Fix logic bug in the SFTP client's callback-calling functionality; previously there was a chance the given callback would fire twice at the end of a transfer. * Identify & work around a race condition in the test for handshake timeouts, which was causing frequent test failures for a subset of contributors as well as Travis-CI (usually, but not always, limited to Python 3.5). * Remove whitespace in our setup.py's install_requires as it triggers occasional bugs in some versions of setuptools. * Strip trailing/leading whitespace from lines when parsing SSH config files - this brings things in line with OpenSSH behavior. * Fix behavior of gssapi-with-mic auth requests so they fail gracefully (allowing followup via other auth methods) instead of raising an exception. * Add missing file-like object methods for ~paramiko.file.BufferedFile and ~paramiko.sftp_file.SFTPFile. * Clean up and enhance the README (and rename it to README.rst from just README).- Add --no-transport to fix a known issue with the tests https://github.com/paramiko/paramiko/issues/574 Check if still failing on next release. The tests is currently failing on Python 3.5, but it is not actually Python 3.5 specific, it is just more likely to be encountered on Python 3.5 - update to version 1.16.0: * Streamline use of stat when downloading SFTP files via SFTPClient.get ; this avoids triggering bugs in some off-spec SFTP servers such as IBM Sterling. Thanks to @muraleee for the initial report and to Torkil Gustavsen for the patch. * Fully enable two-factor authentication (e.g. when a server requires AuthenticationMethods pubkey,keyboard-interactive). Thanks to @perryjrandall for the patch and to @nevins-b and Matt Robenolt for additional support. * Fix 'exec' requests in server mode to use get_string instead of get_text to avoid UnicodeDecodeError on non-UTF-8 input. Thanks to Anselm Kruis for the patch & discussion. * Fix line number reporting in log output regarding invalid known_hosts line entries. Thanks to Dylan Thacker-Smith for catch & patch. * Update the vendored Windows API addon to a more recent edition. Also fixes :issue:`193`, :issue:`488`, :issue:`498`. Thanks to Jason Coombs.- update to version 1.15.2 (bsc#962291) * [Bug] #320: Update our win_pageant module to be Python 3 compatible * [Bug] #429: Server-level debug message logging was overlooked during the Python 3 compatibility update; Python 3 clients attempting to log SSH debug packets encountered type errors. This is now fixed * [Bug] #459: Tighten up agent connection closure behavior to avoid spurious ResourceWarning display in some situations * [Bug] #266: Change numbering of Transport channels to start at 0 instead of 1 for better compatibility with OpenSSH & certain server implementations which break on 1-indexed channels * [Support] #419: Modernize a bunch of the codebase internals to leverage decorators. Props to @beckjake for realizing we’re no longer on Python 2.2 :D * [Support] #421: Modernize threading calls to user newer API * [Support] #422: Clean up some unused imports * [Support] #431: Replace handrolled ssh_config parsing code with use of the shlex module * [Bug] #415: Fix ssh_config parsing to correctly interpret ProxyCommand none as the lack of a proxy command, instead of as a literal command string of "none" * [Bug] #428: Fix an issue in BufferedFile (primarily used in the SFTP modules) concerning incorrect behavior by readlines on files whose size exceeds the buffer size * [Bug] #455: Tweak packet size handling to conform better to the OpenSSH RFCs; this helps address issues with interactive program cursors * [Bug] #413: (also #414, #420, #454) Be significantly smarter about polling & timing behavior when running proxy commands, to avoid unnecessary (often 100%!) CPU usagesheep95 1669879551  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~2.4.3-150100.6.18.1paramikoparamiko-2.4.3-py3.6.egg-infoPKG-INFOSOURCES.txtdependency_links.txtrequires.txttop_level.txt__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pyc_version.cpython-36.opt-1.pyc_version.cpython-36.pyc_winapi.cpython-36.opt-1.pyc_winapi.cpython-36.pycagent.cpython-36.opt-1.pycagent.cpython-36.pycauth_handler.cpython-36.opt-1.pycauth_handler.cpython-36.pycber.cpython-36.opt-1.pycber.cpython-36.pycbuffered_pipe.cpython-36.opt-1.pycbuffered_pipe.cpython-36.pycchannel.cpython-36.opt-1.pycchannel.cpython-36.pycclient.cpython-36.opt-1.pycclient.cpython-36.pyccommon.cpython-36.opt-1.pyccommon.cpython-36.pyccompress.cpython-36.opt-1.pyccompress.cpython-36.pycconfig.cpython-36.opt-1.pycconfig.cpython-36.pycdsskey.cpython-36.opt-1.pycdsskey.cpython-36.pycecdsakey.cpython-36.opt-1.pycecdsakey.cpython-36.pyced25519key.cpython-36.opt-1.pyced25519key.cpython-36.pycfile.cpython-36.opt-1.pycfile.cpython-36.pychostkeys.cpython-36.opt-1.pychostkeys.cpython-36.pyckex_ecdh_nist.cpython-36.opt-1.pyckex_ecdh_nist.cpython-36.pyckex_gex.cpython-36.opt-1.pyckex_gex.cpython-36.pyckex_group1.cpython-36.opt-1.pyckex_group1.cpython-36.pyckex_group14.cpython-36.opt-1.pyckex_group14.cpython-36.pyckex_gss.cpython-36.opt-1.pyckex_gss.cpython-36.pycmessage.cpython-36.opt-1.pycmessage.cpython-36.pycpacket.cpython-36.opt-1.pycpacket.cpython-36.pycpipe.cpython-36.opt-1.pycpipe.cpython-36.pycpkey.cpython-36.opt-1.pycpkey.cpython-36.pycprimes.cpython-36.opt-1.pycprimes.cpython-36.pycproxy.cpython-36.opt-1.pycproxy.cpython-36.pycpy3compat.cpython-36.opt-1.pycpy3compat.cpython-36.pycrsakey.cpython-36.opt-1.pycrsakey.cpython-36.pycserver.cpython-36.opt-1.pycserver.cpython-36.pycsftp.cpython-36.opt-1.pycsftp.cpython-36.pycsftp_attr.cpython-36.opt-1.pycsftp_attr.cpython-36.pycsftp_client.cpython-36.opt-1.pycsftp_client.cpython-36.pycsftp_file.cpython-36.opt-1.pycsftp_file.cpython-36.pycsftp_handle.cpython-36.opt-1.pycsftp_handle.cpython-36.pycsftp_server.cpython-36.opt-1.pycsftp_server.cpython-36.pycsftp_si.cpython-36.opt-1.pycsftp_si.cpython-36.pycssh_exception.cpython-36.opt-1.pycssh_exception.cpython-36.pycssh_gss.cpython-36.opt-1.pycssh_gss.cpython-36.pyctransport.cpython-36.opt-1.pyctransport.cpython-36.pycutil.cpython-36.opt-1.pycutil.cpython-36.pycwin_pageant.cpython-36.opt-1.pycwin_pageant.cpython-36.pyc_version.py_winapi.pyagent.pyauth_handler.pyber.pybuffered_pipe.pychannel.pyclient.pycommon.pycompress.pyconfig.pydsskey.pyecdsakey.pyed25519key.pyfile.pyhostkeys.pykex_ecdh_nist.pykex_gex.pykex_group1.pykex_group14.pykex_gss.pymessage.pypacket.pypipe.pypkey.pyprimes.pyproxy.pypy3compat.pyrsakey.pyserver.pysftp.pysftp_attr.pysftp_client.pysftp_file.pysftp_handle.pysftp_server.pysftp_si.pyssh_exception.pyssh_gss.pytransport.pyutil.pywin_pageant.pypython3-paramikoREADME.rstpython3-paramikoLICENSE/usr/lib/python3.6/site-packages//usr/lib/python3.6/site-packages/paramiko-2.4.3-py3.6.egg-info//usr/lib/python3.6/site-packages/paramiko//usr/lib/python3.6/site-packages/paramiko/__pycache__//usr/share/doc/packages//usr/share/doc/packages/python3-paramiko//usr/share/licenses//usr/share/licenses/python3-paramiko/-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:27007/SUSE_SLE-15-SP1_Update/cbfd866301a992adf77679669f58f3a6-python-paramiko.SUSE_SLE-15-SP1_Updatedrpmxz5noarch-suse-linuxdirectoryASCII textPython script, ASCII text executablepython 3.6 byte-compiledPython script, ASCII text executable, with very long lines  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR Y\`-putf-8ae5911dd9893c4d101ced5c085e78f1f27d8699419039cee1bc42a2717e0d66a? 7zXZ !t/t]"k%{^E) `>J2lk"\8yç͑3ɀ4jPjW/d6?oP"t=t=gӭ0騸*zD ZC 2I$杸z1y_tB2wS&#ɉ#qg=D|x|P%+%)qvQ+CgiIG-.30νq˗w 3u pz(u q,Gg(5x!7f=(x5lsP'gY}\S QX)iFS^5b]JuзצZ5bU$(,Jq# ״96(Lky[]<8y2LW<><6azAȧ(UZg\PG]6^ 5p!/; S,XӜ/d2YԾVAׇ#folu_&e\8GlA5L kizM8,]\R8+36=xK$AJ[֯gMfEeIHV=N`%d)tR +fЍqB)Ѿ&%#7"k ;()AgOG|K*V0ұN$3flS0.j?3&Ygbfm)%~' on2@1(TQ(% ^k\9i@ }WtMIE9Y׆QxI=u$/ 'ٛuf0a[xdPP5Q̱gnbz(|KAj8yԯ KO$u^'%>:ܦ\2I+>${->l Qzhsx` 2G]Se-ϫ&Ŵ \TXVuk4 DNu n,'2ittm{ M54kAzӃن_U"_tdX.HR'/Dw}/>Q6ty[ĉ{ q ;uqO/#ڿ0͡]JQ*V+1@݀ 9׆8ܼʸ5_٨) "FaڊDwZX0َ\ H <-Aj/j.F_"h6lMok6YMHpƧO3'IF ;{,HiDtI*\E5%%arIk< me n K}D*6S%5z_VqIljš-K`}^szջzA[䡔ʴ"ȸHĥ1m'qh1]3" ; ALaSL( v"ʌEMe!qPoH Dj0wd{, 'g!2j1q6]ePwQs{_gJ#Kvtf,H\H%$r,M+-Y"]KzĨOstFS֫՝8(4ىfêrJ U񪍹T(GX>ZDYFo[dHqRS'?svY`!Tm'э$wZ}_ KCoy w{tT8a^%7m J6FqH^MO 7y_C[$h̵c 9g@OSbvPTƞ$yPbpxN 9ty-";wxӷэJ4N ),w'ZZܵP.9E_cPO(P ^ApyPFXQaHrqsh1$ik}zZKn %q] 9rbcȜfRTLYh_ECS^5.Q~f]{iCpHxT\dx[ !GQj.a@zFk@C _e^C $HҭWbCnljEԚI$0j]_m[O7~e*ä3 n7A_JÇ] /ŋ4kҴ|7-j"Ӭh a"Euy24N>A^饄3X|PR1e >W&8i6z\Ί(pw!@ֱ4j6ۥx)I SHzr(W݅4bٕ`^"7-2@#β΢5!LSVځL&RR// b26 f:X)h:LXҭ,?iq8L#_mCzh%DowC cf}WW4;A@sE}z.$c=2BTk/<7mf|JT~v5p'wNmWGBAqb@i2ցB"B{[+QQxxhrB8h#hGSNXl_VVC ᮮe/"Nluv&>ٔ`]2߸kӿ0S=})֬B?; ''}IAdY9U@KI)m&vInA˦ZͰTD"ɾ>'ygKUƛVJIkEq7.TFU SF2D3%6ȳyJ\N&<͞Ko䢄y"'ۜҺLcc#J^kݑ}^Tz?LJa-` "5+$jwAY/BjxNN Qq=ƮhFܨh" h)3p# R;|*ikk\ F ^M ‘Kҧ31,"Np3$'jRn+^qPU#o,;Pá)^j տ>݀6,:,Yl=1_'\mqkcgv=%46631e-,ak`^d>6A.CMUX+ _ꃌ(Q7E oJUA{] [7f[, ? ^+։c )An1q4bK# .9B ݻ|8~>JAdbzs66DFNzWdۚ7\׋I{3xo,~Hubq< +tk7y 3tX͑{io\qj&ޖ 3[iFP,|-UJڏ(/]3Ia(ᕊF8]6 Y$h8? e`K9F#&X p[yCn h7Mp)+uhaL𒭉<+A:ۦ+6h6q&\ c:!@戊}ͩ}=72ʜC+#|ݟG`ȇEF 3ӹny!5Y)ःO n~wI^Jb*7#F[,z\dZH$NIo uTԤgh犀Ȝ4礛Pɩ3q;M^yQ1#lz>Lo!d,I;$M>Qۨ;nS*W[jQ'Ȟ;ybz>u#H%3ȑis|C r@mE"3* 7šjG_3:|O+sSkVӤϹ<񡑟IIo>ـ$ }*2ȰiycaO<ݶ{Z{wIӪfTO=`HVJfo1'I|w*7\-s1cv#F]3+>Չu|NMK p`=H s@2} 71έ|T q!$4bpX%n7Ve XDܱ8Y52!p=ݜ,]t۞=SDSPɆhœɧ&ĺrXsO."^3='犤f!3_8;FZh5 {Ida?񲸜Xnϊ.EO_`-Q?TCwCMleO֤S1 {xQ*Ho f>V qvz{ Nd7+-zj3>gB>H!Dvy bcW)x'e x>hțQ\SMB`Վe% Llp }nBP%1_ Eۨ{5@{Bk#[6جPـ'}3)ᬙތ؆FHbJy7]h"63t)&}c'1ꙴi@ e,5Q2U4. ֚CJy:Dq- G=5x MfW e"b|f?";rZꖙS ҋשfLLQ} aūF#feZ3Nt=m[ȿ-=,2uF<<3{̑)/C~RtRϙ.bUCI sȲF!G at_b4DC|#GB^[^Ά;J* Yg96u_F$cGdT2D![6F'x z V!}G#G7dj] ysQ5Fqg {E~:\#i ɻ8Ħ&Q-ŲͦyA5 C5),>vTPއ;iFwt>G!^..&@K)ϸf6:t "9ZQ0v6|GTLղċ(#% gvr)K_}-ys K ]'GMN=nYPYͽnovƌrISIaA//<{T@[oߺ W,7RL:'zG hYúk".SJKpLF*׾r͇HpD_܌Yڲ]^]Y~wQ"'o w3zܺ<OU_U+n8kJ(qL[ӓ,X $ho9iwn8gV7;w&g,,KIx&@NzS8=,,r@fhBv[;nVE (ҩk4(!+80QĞ if:t^C1!Iy mL?p=ݐbjpwZ(J},rl(2ǹ_ޫB,H'Tfsڑ0 HqG8łinry2DH2#_Iݰx&Q^+JZjv兏cs%޺KwKdsM͹牕rq,Stk򄨰-F@;!ÅN?,@0%^{_Y/&w}b9-愎YSΫq-/iV2/hUamП fe~Wzfό>7=WwdJ|9pVs"{g,Oa9XUf(.K^7/*Ml xda!3Շ YQ@go^g8T16 P@8֙{5N+*4,6pσֿfh}.C$ͧ7O;ۏK D>~rdc:f8XHo/}'H3EZ(Ͱ[cȵX F B8,CmAhg/)#2*s"U >#[E5"ZPqKDfUJaTLaRI}'W̬C[2-"z4W@,-mNaSϨDgGk/QZc%M=>Y/7Yv/JC qM:Sg  %X!&cB';@GF^m:c~LG3UGzs3 6C&vd@p$ e )d"iḦ́] n|&#`9?.8r8 2kQn&dHLʧ5uOFƲ"0$vgZJjF]n{O߻w5~F7cwޓ|@bdtH){^ΏN6 >YGĮUgF }F|y%٪{ɜ0./5w[EL'e*Q"Z|k%T>>iuh@<2U +m@]*Dl&Z$| ?mt9sI#VA '2[[ #?WAu7G4&;`ښM1VsR~&3^b+髰D{)Ⱦnjmsk⾇j];-dhv=UO!Eh[[DE-2e ~̜\r@纴]Y%JJ!'dj(&foIKU6f8e)X0h2*:=m̲fX`vFΐ`k3J~ri!{W^ԪUt{2L5(ړN%X&fk@yyiTL_$59bd tgmͽX75zOoqP8Fmt>:DwY1 v1 r `e uF,y'R*@g$Q[8%$m/]8θbeytQ{ @&$F4+ We/U:/!/Sǒ4|r7`*VGຠ_D[]GEұ+yHr>:CB_R-},fIOٸTJB8AD~Eple@CcppNzrc| D4vQ'Y/GECÕN )ꒅ+g9u@j3UP?}#'U^~)z0-z.)~vjX܌⿾YN<89~jAWNJ-aѢ;cykI t5\ۉWñ+ sZw%Y>jp`>aޤ MLdIFU9cYeeuwA'I012x_kѤoũ 'f|=hJC=l%,ZDᦑN"hxPͭw" pmS|uEKOoPĝ-5 Z$|+j c+cn'ON\%q񒢓orGkn{bl}\ivB})%avwbgbA`3A+H! J_N .^L3bDo2 YݿTkC/"X>..`;(^U@}|h9Z:KB ,!^^ǔ)M1]+9 z6M +V.'0lN3 iyE\92(QoE4Z^́?@W'&OLPM|.S$.UAch݅r5.|2ńY&"HN&@ ~.-ߣ=yk餎`!meFÚ ԏ`h(x#P|:bR9a~&ޒϮTjMiS,PoˈEa5P͕ud_eKhJT#5`ız?[%b`u~98љܕn>S8X)`W&?{($rsYr4- 2 =._h7?&7]A; dz3 ?v[[ zbSF]q+Ѹb^U(ZqN4u 6787Skn"0n& jhf~:;7Uqd`?׸g2@ (R^:VV%( $ Q碣`VmiH@ӟ(Kv;tC:gnBu,g{0Îet qܛM23d8ZC.9ebCC(8c\۾Taa 1יZg^,4d^Չm>FVl᧿<&ճr5i~T% c4_#O-cۍyt+:QW&C@9A%$UYwOm~l݋@g(ZNWe%F=bC%J}r(ُLj7!@4S65Yܭ 2 lZem!N7Mp)9Xl`]:~z>chyu'5g b#wm)? V'B)(CnmfA">yQSX28nӥ9z Ư0o ڒ(.qshz<͐0J8+!xԁ`cE3ꢚǀ ȣvs'Ų3GOZ,-w8YqBmզt3r$mI8")nd j: ׁ/%H(]u@Q%:[j oB6lMv lttue8V.t2}JCiKۖ\ky~׉/%Yt U]i(^"na v1_St4g'Ϟٗ9>Bq35<&L)59yp˷!Z0zABT!gCux`Y^| _qt ȹ. XX&.eIK:Tmۖg8=XOI*[4j\Jb.<5\yvV]Qz}PiRBXя7WFXu'Ys& L-"`h 3&z 3Nb9\h{Z6F?AjPrh  D\e @Ңӻ S6hu bȾb5Ԕ SvǩrFMy} 9ǒ\Rws8@e`s>uJI͕*$ȹ_8u?uuRKU% f1Rj]=HVZ!KP0Pm3^` o| m8H哟9Gx:s&]/ 7O@/ R4$a2`%j[墐`(FMMRe/*MkI10v!m2yZrpgU)I2ܓ@ٟj[pv(HFZSZzʎeZ "4Դ ^ȶ{0u2рqbkuwŌ9e ˓gq5]nM)_eMM!%*AiTy[?`8lX}GĎI(נu{H|سd֧ 9tOrpX9x(gQ1!)W'2ޅcGF`pZFUd50U 0Y(i%F)St"=;lǕAĤ?*Sd!m-4%3IN]gڏ T//&W8`8}U0 V¶fŰ\)39H$z;04;04gЅ -xCc?pd/}©H!v̅;~p NouCDtc4}'LYpׇȔ(cQȺu0e1!jw`"-ChbtaxK Kwc.17PC~SJ0W%=`>k *'80o⿄f/?)f&@$*}%h|"ddBėb< coU=:Qx 0Eeb#< KUO]NX{@5M~G {P@P_D8J,yMR}(0و> pl90'5UD\hb{B= WDq f#=blԙYDx/ =_-_< 7M%)I5^޶?˲*vf|m!an>aХLʉ-^^ *}%Q3vn̷@/ViG^aaþ3\?\>35"G{T9mͩ[>Yb#oUc$90 h0"GnNC #VUB[x Y ]-_dc5zAFA #gã!=Fpl8s~PH6@C{B“f7nҭSJ6іTΠL0+=$}L\v)5r2wKd9lh6ߊTnʙ&i|q[Smy]ސ"z67b~ T󟚓k#Șg=EYmڈjQw;oe/EW>>MļfI T\Ỵ-=z"ѱK1vbQ=Ow<ӭ=_:J _-ޏ6/os~=wYvY/73w[K=pߩT3_Dν<OٸnǨ?}NPDpD8YAk@D4#sQ,I$}ѝt21J0+Zh@}ĮTW%;:| 5޿`msOD4ú۾<о,h X˜z%q$B*WZtwV茮R[~ .QcԮ$z1*ͮ9Zt!wvYU⼦:hag7SG6US۠ "[8ZܧaEz! sFs[ʉH#@@pH;X`-S[pi[*y|ADdw;b ntB'G,N Y倜Gʭ/J k&Ϗ"o/)op53j0)F !2akn7PShpU 5Oʘ.KfUK!MOMS?n)EXIa-201.׸o'[g2Vg7ۚ ts,}8a4fU "˟R!,2ڇ #s"9ÐgjLh%+u`.87C%Pæ i"+.b6_ZMοI2qR#wDTM#*~П)>ۿIVjsvV-w@s9,ʻ5%$qq@PT`6k#ݦ̛eะx){$Х:50m+eŵp҄9ZoM$,dP.V7?.N1 /SMm*naڵj@] ڻ~.Mdx pboXJT+Rkuمo*lʽ jPZ!6gJ58Qt&Ή^T@rI4fBd,f/QH~t#X qt>H $9NIOpa}Л6~\\χV4~x9m&? Ui+A &qaqgO>H~|[AD*|.i2Ξ`*&J=W8omxN-w;ILNbp,vc&{)H^e$6qK:oKnd%q7b\ {?t2#C+:O-w`gȖ h& >)Q^,d."Im<6bbtXS"8 u?\bH6|qXv'wL1ǎY9dc;!!׹1 %Įs˧ð^{ewζiq`l"HY&_-搛ce \9;C.bm$tV$E8&9.&'zej(0iO0j#*걻hp_?U|3~ ']Bhiz੕Cq眉O.ˠΘ^%Yp^PS' nZ .&F<|ՙ][Tpn%c؇[!NT2)%b Qh1a}w=Mԓ.̑$-a𰸟NdcYo>G=BР[P9w>}ːAB^)dOEAFWe|g{Db9gZ'Qy1=s/<)nԠ6|(XwGY7>\ Pe+7gtZ!Jqd2XkGݽ$JpiאAY?zCs]P/z8 r,pCdK)|~}{(!#niމĬYN1~qc3K%w}B7q*`n @逝LKl⡲(J!P`GGjOEvS-T)zV⇭ 8a~ º 3pGXt㋬e2OLRXϋe7uNfvaO4ɮ% BF.Վ%/M\֣mN `bĥaѣZbDҡP˱I1QYJ谥qS~Ie{bvk#!ݶ]WKD#XjP?pgK_06a9%֭o+3a9yݶ~J7t2a Fn)ƸGPàn<ìr<;?Ӿ>*bȿdd2TMGxQ}=S޽(BjtZ4p9u5C ,%Ye9AUn?*1: ~'wW4wʗvcG,j}/<[GKT8yvp,Sr- b(~(\7 @̽0;12',\-,^~H0Uku[^Byc2,5 x>T ZM"c>&8ȩv!$uʄ#R4-Ec9! |iGS^c1ڂ[(0M7SLc!۸sCܫohnV{şф~FZO3B*讟K)vDaAaND5x3\߳cYVF] @C" A3YpkZ?oT fm o8kc>U!jVg̛?Q W`x'JΐY pu{m'N`q[`pJdkpotc8WȹJlogX8*ol7|Юym)ptjZuI lpϐ=IDԑai.;{X{vtg,rvH CO7NQ,|lli0}U6yWxCm]e l$l,кDۀY+bl\9 ڗy8Y@R΁tX-w+_,- bV92FЗSWrt2Z/xWu+* '<Ï\X!(v27h8*| wjA;ܬ&Z|bƘX=؝) H"~aMeLrHX&;qB#KбZZ9!a,8+uX:mRwMלYKFs2+_$Ě }(|!e¶f|4,JvW:}vvцk? urS5ūj6ǝtAYU4MԊv $@EDn.:+rK)Nupf?I~ަogn {J"%NxiTdOds_af'(0,Y?(䤺@_uA.Ata 1!uJc꾽+#c&R`myQ4E--炑M<_/up $~br7/ֆ$x+595&p9|R+LRY>qˣW (=h0s-i]/3OșM?բD1s\ϕ LrpgĈ[jK892S䟘/RJ욠: ՠю  jpq4"Lݕ@;~~^mdrߺFҩSҶUVYC2| dM쁤 ˃櫣5{4Zf.&=)g{",Qy <ٟ$W|gR zntx;K?`TFW|d6VLkK3V1AR8mkӸ>ExP=. 7NQ*jz>@tRX#Ӫjyfj 6#TT맫zkɴ2l*kz~!c7K%"|&ShQm_Z[b0L̿$)N^evȎ.)osFU1jb-&n!t/>J1u8Tlru\) a术"pѭ9(iO/^^PϝB}a{o!R&3oIeg$:?A 9y-lx0姙mz#qL(0G,A_5)Fli{ȱ_16WWJ杵EPŻ{c(0!Bͦ!ZeIAѷ=D+Q ަ*swaE0k '&_Zt@OyPVMKW{º1K%drC- y> 3˽*:M[})ĢNdf3%`iD)F՛2[ȯ&>\|LOIZ_幻 6L4mF?bV#usȅLe;'o06 AhEӿD##~CiNEo٦>kq!8#Oѳ{gWʬΉ$ rZ) :zNi<6,+Sq! >/Өt6ld*^5ng^zS{Qq8ˊb'\ˤ6Ϯދѥ̊ܮFQu`[ <=_J 6PA'ͩmMcU(a:ZÑj:RM x4F qT7j1tkcO'%Ԣ 5 Kٵw N)ڃ0PK͋&E)] wkn馒~mIo-,ζlKTv|GGN\3ؠ_Y8MˬYQYEq(NciFRp7Ƶ'X|RH'l-4 #;ONڏfW,2e74JCf뾐aPIǎ782vbSK'1nփJ39#j5%cQ‡±.#sMZ>͇;)oJQw;U?*G'@sKs`SBd^M84>ٿ}@"Liz^ݺ0lUl %~]!oɘ]:k*dq-_츩qXA燜Rf~w3Aߠfk8[iВ1/\Z ryQlPIQN2W.Q+!?aDݮA:Q4oLWƜV(Dv= >Ebns()Jf혣&K=br٥}t2P||& ^lFN={*J4a\@/ (2YZto0Z+2Y&I5 )$F1cjv 'h-+1YɄ2B!g@0X$ E; ,6W vDqű58 (f_MGLHSo~_'^q%T%ȝ[7Tsvp+s\%|Iy4gĴZ>/-$4L_e#C7\N§GMջE&:[}Ʋ0 ̡=hj<Э<ƒC)#1F2W?Ž;՟z =;¹(F&fwRv%;k^I2{+p] I=P:hfH[P0I^Ɯ7|[7hc.4(&ٔZbrH-&dPE.R;S ۿ*a/~CV3w%iuBu x =Tx7bO|=Apr-~}&vlE!2[u:CA(ô4l`E%q$VzѬ;tl"(lr.hRXqMGϨ8` td8;9^ԏRn޲@ح Eh&6;j݃%BP? GdxXygo+;&rtj=|}e.T6fY4Н&V1j핾ցܪa ' FU;`+0Є<_&6[HГ1W’-ǀKvú( mX rSQzRG)D}ZUU{Fp13Ffg4ű E`I +:{/Ĉ#?9MrFTؾn5&ҾW`-,h+5mYOwIFRo,40x݋h:1cSVkƼ>ccVI~3sY7gMK `:x+HMΌSvĀO}~n:bw%Y^&WuD̙_ eVP+R~T)+ if:9n{ N\p)n̰[-1"mI7%~c׍%i!|S3=hW\q8nL?+\=Ў&f7SLxo19I59m4>sCN; `@& $?:Sg單%_TS]:EH#]>S>z`L SCQ{:; _[)/Lls_bC5c;՘e}+};kr*wG]ğ'f+{m-ɣ1}"Zel59˫t`_i wO7tuTՇF}zi6]tȔb6,baBR MZ _Sh!߉.:s3;16j~'e\Nϭ`=-m:խ{)Rq5l#;bV0^^lRGfW;G;$RxH&2#ڬԴ'nU8QrXe<M'|]n6WYLC';7l^cyEQfivƚ-4;HXdϛ&/vL^reQtbC*s8^!D@1Z?r)dת[`VzdgAUZ cƩ??P'.t,@&m9,槙7+^2T;d,;隸V  g$ w8D<±BUcx]Te\*αZôt5Eg0k󱌯r`Pj!r}w-@$@5K='x}d21iH{Մ(RY8N%RPXkW) 'XKhskQy29|TUqWU+gt܌$WKoV>xFQh?=IF8 bV Y좜X% I]a\v;&pN ]GCjo9=h[tBZ5ǝ[؄J8OF|Liѷl~yDw$fW` iB(L\vpMJtEj[dddn*R&G w]9%,ݾGVz.'Tu>D#  {\|f׋$\׈J0hfq'p!zgh<-+v _B. pk ю+RFqm x"ѩ9S4{nҳ(, {&gIL~3Et`srQDU%j/]` WǙsxZ3}_u([8{ {BI?UF@ݝC2zzAiв'' 2zH%w_W Q֙j0rG o֢68Vpˡ.2 ݺdB7H.zc5~n@D刭I@GRi^]7]Ow!ȝJ"Z|[݄62^ٞOJțW8mdʴ](1+݌k(0sB0e6J޷u0KRuD ~cdwU2)`~n1 .5*'av CX*&ETX̅/T=gލe=l *;,sc55QfFgm+ָP$vu4)?txgbbjH#z\&fUnjβ2Ϧݤ?3추Dzv%??y %:-u)l`'?&2pEK֛nj "ƳH%A]׏B`>S#Bټeh!o9Iqm .@HVaxN/017LLcmd eEioY,7#a+$%KNN @~8S/U تQ㷡q^Z%c_ '~p>р(t8x3Lwhf@XpxJAo~XD2^vKLmWU4/I.9L_:Γob.f t?rDo?%2'4B+Y8ӷtSrGj0fufa@رG%A:l伎oM|:*y< ~ѝ`W l~1YA_E((YY2?lwNaE\dGVslj^}M?|Έ[vrn&{2J-ׯKer_Z/ښΤa1Zи=)O,S}OP(;ɶf:yJBnjMHd`MX.N|z|bjuz\Vł!,.s4dVmbUM2"y%\_ +AR iJs Uu W 3ڽHV}@4 .TCZ.75r}SkRͯr=0`}ֽE{,Y\(;R(L"ƌKgWqqmÂrHPOLZJD=c 8q[ 灴Ã& M{"{. F*0^`ӆT >6-}n/"? Žb0 Z/,ʅ+1O\mC9@GDח^V]ΑJFiwq;D7HO`A̘I]SfSɵlO >ý.g-e/Y&P̚$ӕ); gϳs<5Ll:qG]@XND; xv'lBЗ]B҈9X_'W-Q&!xO+^ݓ8Ovn^yA '.O)-nCy4GeP ^7U7=ݚۮ@q({Ƕ&K}JioB&'9 > QS7JhXBڑ\,)U"BX|chyJM*ʝbPtd S%fP czSGپXobu*~fo]{;+=nH d WOrlX9=57&.p? />jaՑO!taUAl*F&+/x'~CwNt 4F2ʰVkf(L3'r2ݓwFMv`E!G%c[.'I )&Џ2X2i /ߝa sKthRh.v 丒:R <kˠ4_=`$)@%S $xom(4/Pa%MUī6tA#'`V*-Dc /"د;H8u*`|߱K~D\_c˷, O%&݄#8a6>J~֫`'逴{pT>ϡRnJ9D:4#+31s ͙4)Zv$7I.$;Z{M0;ZƮjE&( Vd&X^ h6@/{ZEVl?6_dNS4XY!H"jOқA9Uу걿)|z#]ծ&sTʌd־OېUa?~caO?rk0[rAQ9&IYwc^F9} gVz }!6Khy9ܞ-m~N@ P`zSuIFiSTTKhH$zҽIZau >q?DP+ygΚV)w+k* i{NԈp}?ᄖQǏ zX RV5!D:zOhgQ`Y|d$ %+OEET(jM]qE!X^ PfˬWnU! o'9ҭ`тQxOI:`9H?p A}<5ఐzqcj/H]81ܰ,3 -$|U"c.^ 86;+|PYw{rن2i?pz)Qx.#aHR"nKu'I$R$џAZ%qds{tځ7^gb/w_"A`KyI~~Ůj`8jE4Ij2Dl6(XnRK'*4^͓7j4'Q&"{Ggw_i+U& ȽPͭ|]BKsC:'"'OR,(i37}TV#T-h{xn΁hCIvcQ:BϚ(cƍ@ C |K5lvLHa%%ꭧ8D4pGGGz>N* QSr.e$ %+|XN˃؋8qIN(V 4% 1q& `j\B-xi8mRbmBg #bdQ-"|UKby] pW /c?[&Beg# K" t ΁vyո!*SVMUz Yv;ԪTf ;h֟bgxMFK#INjW`Јg|;DfF>rˌ%8zE KA\˟G*~OxqEE;A"ѪQZF YZ