python-idle-2.7.18-150000.99.1<>,bixѬp9| 2. lJ>z/KbXo\q3așwmiXgz/^)G@O[m>#?#d ! R04@D]~ 11  1  l1 01 [a1 ]1a1g1mm1rs sH t (te8tl{9vX{:~f{FyG1HT1I1XLYh\1]p1^ Ib c md e f l u1vw1xx1y<z#X#h#l#r#Cpython-idle2.7.18150000.99.1An Integrated Development Environment for PythonIDLE is a Tkinter based integrated development environment for Python. It features a multi-window text editor with multiple undo, Python colorizing, and many other things, as well as a Python shell window and a debugger.ixѬh01-ch3a!zESUSE Linux Enterprise 15SUSE LLC Python-2.0https://www.suse.com/Development/Languages/Pythonhttps://www.python.org/linuxx86_64 a ]#LLC00 C WWJ<IW%% &"""G<DDݴw(M)UHgHgx[MN  lf`}OIUE%??Dpp:  HL6'%_Z-p??+ffLLMM! RR F!!' n nO! e==:EE*#44YY 44nn f++~rrCC :+///p3t51818= ? ?-60J0J:/c/c ww'' _WW877 K ; ;4NNw%!- - PPM,1i1iX  QBB0// NTTv2u4k41HHH I!: fA큤A큤A큤큤큤A큤A큤ixѝixђixђixђixђixюixѝiwW@ixѓixѓiwW@ixѓixіiwW@ixѓixѓiwW@ixѓixѓixђiwW@ixѓixѓiwW@ixѓixѓixђiwW@ixѓixѓiwW@ixѓixіiwW@ixѓixѓiwW@ixѓixѓiwW@ixѓixѓiwW@ixѓixіiwW@ixѓixіiwW@ixѓixѓiwW@ixѓixѓixђiwW@ixѓixѓiwW@ixѓixѓixђixђixђixђixђixђixђixђixђixђixђixђixђixђixђiwW@ixѓixѓiwW@ixѓixіiwW@ixѓixѓixђiwW@ixѓixѓiwW@ixѓixѓiwW@ixѓixѓiwW@ixѓixѓiwW@ixѓixіiwW@ixѓixіiwW@ixѓixіixђiwW@ixѓixіiwW@ixѓixѓiwW@ixѓixѓiwW@ixѓixѓiwW@ixѓixѓiwW@ixѓixѓiwW@ixѓixѓiwW@ixѓixѓiwW@ixѓixѓiwW@ixѓixѓixђiwW@ixѓixѓiwW@ixѓixѓiwW@ixѓixѓiwW@ixѓixѓiwW@ixѓixѓiwW@ixѓixѓiwW@ixѓixѓiwW@ixѓixѓixѝixѝixѝixѝiwW@ixѓixѓiwW@ixѓixѓiwW@ixѓixѓiwW@ixѓixѓiwW@ixѓixѓixђixђiwW@ixѓixѓixђixђiwW@ixѓixѓixђixљixђiwW@ixѓixѓiwW@ixѓixѓiwW@ixѓixѓiwW@ixѓixѓiwW@ixѓixѓiwW@ixѓixѓiwW@ixѓixѓiwW@ixѓixѓiwW@ixѓixѓiwW@ixѓixѓiwW@ixѓixѓiwW@ixѓixѓiwW@ixѓixѓiwW@ixѓixѓiwW@ixѓixѓiwW@ixѓixѓiwW@ixѓixѓiwW@ixѓixѓiwW@ixѓixѓiwW@ixѓixѓiwW@ixѓixѓiwW@ixѓixѓiwW@ixѓixѓiwW@ixѓixѓiwW@ixѓixѓiwW@ixѓixѓiwW@ixѓixѓiwW@ixѓixѓiwW@ixѓixіiwW@ixѓixіiwW@ixѓixіiwW@ixѓixѓiwW@ixѓixѓixѝixѩ^^^^^ixѝixѝixѝixѝe9a0afb565dd64cc30f062eaa9d6378b184ef6bb02c1b8df395c3b950b3abb0a3370804a789de79c9633e2ac3920aaca50fc589d729aee49b584817aff266245bcefe0cb4c5fa37d80f7508bc7c8efcc028d7fd74752860831d43650dff02b0a2749ea4c95c05856fe745d26d20d6354c2ea1cb5dc9fad7be2b21a2b7a0970f8553d04d748fe166c4997868f7ab6d1d9d780e1ebab3025f62508db00eff8e2b3a3ffd0d82f4b642a4dd737e13d25c7273e1c83239354ae7ba23b6a0e0229f155c9b7133033b41c9d2d078f28499201b197c1d24a2528376f17155d168b7ca3efc9b7133033b41c9d2d078f28499201b197c1d24a2528376f17155d168b7ca3efaa9f2ffbc70d9eca20409b661312e833f6d19656f66d4d161debfd972faace1c19592fe7e0b1e77e78226613e0ae0d34a2c2205adb654b6e8694b8ab9af4788429c0ba7d57be1ec5b7d691c3fb376d22c8e1d26f04bed084d1e1c47aa78d43588447e6928e7be6d9bd2213609c645b2a353b69a8c8b915e1ebc8cf4f3db0578bdd86e6c50c35b47245a005df81b1df88f3e1ceba6a32bf94bedc9fa3e8a9919edd86e6c50c35b47245a005df81b1df88f3e1ceba6a32bf94bedc9fa3e8a9919e0f8ade6353b9241672db6c81f619cf5e70f8b373098d56c060ecac2b8bfe4cd1472c1237b0f937fc88e93b5561eb7d15fb2f0ec576207f783046e6025d3cb080472c1237b0f937fc88e93b5561eb7d15fb2f0ec576207f783046e6025d3cb080c7a0cc61079c6e2df53457e63b413e0389f2c0061eb55e80229da932c8f8dbd6067f359b48e53ff378f4a3a022515325c570ec4033ed2370ae8358f00663ff8fd57825823005f8cc92c3cd9032c77f44417144ffac76883e4c04559a8e01aa84d57825823005f8cc92c3cd9032c77f44417144ffac76883e4c04559a8e01aa84d1db52cc42a6e67cd375248b34b335b432475a4676ff193bb9308916c1f09ef526378a64fef4b9c988a410c2b0378cdf5f0bb0d4d7c33afee6a5d3c832471a1e26378a64fef4b9c988a410c2b0378cdf5f0bb0d4d7c33afee6a5d3c832471a1ef8d8896b5a64164249bc8c2875bf4bd854d2acaaad9c526abc5cfc48f17c795704dbda8d418068055b5fbdf905359677ef4d9937a75ff648d3a56b09f5ca3cd0f0111e13892af1b70e019b7800add08d47057ea9d47cf0c75ecb755842825291f0111e13892af1b70e019b7800add08d47057ea9d47cf0c75ecb75584282529116a3f0024f70618a2ce5f9d4b07c0ee8b097c1a491855b165dc03e38c081d90b02e6bf3d38ff0dbf63a9f34d60280e49c02372d6a1cccb3ce5d65d146c988728275ddaee7fa513f69a6b0d277058d0e77942386070264866b669a1566b1d308be59a93dd15b8a9914d785066e4f876ded9a26e1b26ba8ab4a3869c005dcdf5eb3070f5a5d1b07acac29df7675afe04e3f83a31506038b6d9afa50e4077b96ad63070f5a5d1b07acac29df7675afe04e3f83a31506038b6d9afa50e4077b96ad61780833e989c613bb4fb79940acc57e64521ae038a9c3753bd9b68ef8d0ec4656e6be495657656fb57ae27f3bd32c60fb41f8a14e912cfca41c44ecf10d14acb6e6be495657656fb57ae27f3bd32c60fb41f8a14e912cfca41c44ecf10d14acb1a92680bcf6975a4ed05b7ce32b0f8cc7a19d6f10302c61baab60caf4a457fd9573566fb62ae55df0a81e51c6a3a51b0b86d0b7ab3cde5e17ec9852fcd962dcc573566fb62ae55df0a81e51c6a3a51b0b86d0b7ab3cde5e17ec9852fcd962dccfa09ef6317bcb667d1de85c5b5b4d8b3872ff77f238936e86d54241f0996ab83b06f016f9a616961bcf05ef978e2e0d8ec66a66363fc9ea67e46e450af50e0d1df73eaf8fbbba05fddf357243a06987b2d1f9a896c9ce6d55efac17b2d80abff77ed0038bba5fc3e977f3effbba5fb59b6a78598f95e437701423efe19fe28cf31730a4e5985eab5dd401988c10e3fd86857ad3803acf6f5b13a4750ce1b53458e589898f2b7387fc0452832c700643ce4f18ceee253c12db6de99f7d813c5b226939bfaf123309a329f82ec593b5074a445776657e8b3ee4e747f254fa49e24a453ea7f6c903a60b70f7bc7f87c03ca7e571cb2510389f69ee31144788e05bca453ea7f6c903a60b70f7bc7f87c03ca7e571cb2510389f69ee31144788e05bc3f9304e8cdc1d2474b494eb0d22c91c51842bcf77c7b45e0e976a2dd80fd7c0b018569836f411f5199e8acb60375bff321a70063f9a659488d66b4793c032cde018569836f411f5199e8acb60375bff321a70063f9a659488d66b4793c032cde4f3354076dc3aa8961f963c267e66e6507e267734bf501f0cf6fb678116d15f54460462cc57607c1991775e6721b7bd2f79df70ed16b9da59a5ae8ac8df1eb1f0dcf394b18b738e41c4cdd079bcdfd143ab4b287225da47ba3219b2da61c7ed60dcf394b18b738e41c4cdd079bcdfd143ab4b287225da47ba3219b2da61c7ed60493c6e200f420232a619ee8d918d169adf4229ac9c1adf61fe6efbce6317cb38099fe0fde257bcd9f543f60455299d19f3ca67eaf286743b99c19d67d5679d18099fe0fde257bcd9f543f60455299d19f3ca67eaf286743b99c19d67d5679d17c98d566a13fd599d1c11a375f387fef69b6c595c4f18c5d88c188a860be0e55bfe9c9b62bf4a4b1cb8419282f78bc98f4cde453a0d6bbfce8a7b76177a1af94ae74eb8119aa88532734a84dd782830f8f5cb4dff01cfa4372b1e4afa35653134ad97f34e64abd93e1e32aff017ff8914e3204a76044f1486bc9fbefa07bfdbb26999728e6eefa83b486188a3af6900a464741307e7e4fbe4c6bb030eb765042963d5f8d5d1259e9874a263a6621ca6dd1d57608faa5f28f7d61f349583e07814a404d5bcb1109a33329f0e099fa8c07a8b02401da4e531bbc6de733a90e45aa37484901eb40eefa846308e1da3ff6f240ea98f769a2afc3cf4fdba00327ecbef9b54f0a6c4a21daea6f41263e8df267367f5b491094bea56179a9c3b4ebd65afc11c3d934f8de7d3285f616d0a9129f8113b158157501829c2e452101d067a49a59e2abf1840156e9db8f85a38822fd56ab79a139eb95ec86f1fba1bb87326bfcea17dee8413652327d3d1f7565ac6b32b392a5e424947ede2088e27600346909878665b07bcb76fb3222ea1b4947a553ad0af76fc12b31651d1707980791dca932fd307c4bdc223ae39165f413b2a530b2dbf6323e8a272865da6627535ea3bf69ddebc20a0e6820941d9f96776738019f4eb99858834390ce17cf96d1301087f526be2c9d873c87d7430d09e662789dae9a204b0e069c40840d09aa91075387f526be2c9d873c87d7430d09e662789dae9a204b0e069c40840d09aa910753e4553bbf2717bc92627040459aef992aaddeaed0c92d1f58847cd4cd7f20c911136e8a501a5a842de4c4d2b69a72232097c65dbe6324ad4d05c412bf84de47d8ef1b8e48cb95f82f829d9aa85778705fdab89626016803714df733c6baa3613bcc57937d546d1d56776ade6b00f59ea6a478ee711b4e5cf69c0a1d822ed29a7e68cc80efd9609e99e6d6cefc8b3d321a02a9ccdf430060507dbb11cbd974683368cc80efd9609e99e6d6cefc8b3d321a02a9ccdf430060507dbb11cbd9746833d77d55936a0e60586102820034a6222cd4687f0c61b3f41cf121a45ec2bc4606c2606b972224ca3122621b22ca4cb3b914a42dc440974e4c4033447ee9ef57c2b1964a7cb02dd8e0a24a460205f8c0b555b1283e77963e74b2a398a40d3bcbdeb1964a7cb02dd8e0a24a460205f8c0b555b1283e77963e74b2a398a40d3bcbde86a87afa7ff7d0e74abffd39d5e924b4624fd6ec1cbd1f7c52570ad1673ef098b91fa73edb5133e69711220aa2ec2c056b5b6937e548dd15ded047262fe29672b91fa73edb5133e69711220aa2ec2c056b5b6937e548dd15ded047262fe29672091aa52b4cea5ced27e9293252d0dcedf8838e2608bb1090f267da09385a90f166b39e064240f551ed1074a927f8048cf90600f4f783c3f2b359d7b9acc877e966b39e064240f551ed1074a927f8048cf90600f4f783c3f2b359d7b9acc877e95f2444b5056b1520decd5db0dda6cd75817eefaada6e16b1802d49403070a08d606e2de9d460d825a7ac21712e9f503ec653425ac648b7883b41d13c336cf3d4606e2de9d460d825a7ac21712e9f503ec653425ac648b7883b41d13c336cf3d42c86fc8d91a10e769aa3e93119dcea7c1ffec2e21c26c7cdf4122ce4d68222d00005d4957121b0b41e47636db0ca9ed6d1cbe81e44de9ad56400080b8edb8939d033177dafdc4dcfa120f6506fb88745b7d90f5030a40c14d1d2f1d9ba8aa9e4d937a665872aaa592f157b28157b04e49da798c0dd36aec253abf65064bcf44cb1650345d020e4e1ce82aa2b86a6baa9672fd1d9d0d55db85e4c1dddae2781ebe31d193ab49042714cfa2046c5b210bb337e9efeee6c3dfc491079f6361e4b89cd466b0516c363cedbdfa293a2285d812299473ee37f7d0a3244055b73936b9112f1e05a2b05848ea45c85802a955bdad96db25e197e0b9213d7a8affe5aca8526856badee4b9ff026aa188553861d5d16c0c419e7d9fd0c46a06733a604fc9a4d4a20c039b4fdcfb7a242eb932675b32a6200700eea0bc23891dc8689979a7bf3a73dea8234f66af391835d0b8894ec5a851bc5bf806696419020f105d06472b7aeb7acc6d2385685d5e493509c10d37189160ae25d2fc393c6013284ab8bab83f6c0fc252697faf5fe92766050bf8f5a9ab0e28fb5ebd78f41f99003409a506f6f145e2c2274621776f32a1e8cfbc2778078dd50b18628465323e5dc4cfd7f66696c6727dfa974e29d01e6da583a097f1b2b7205986ebef97ef76af523b7d666696c6727dfa974e29d01e6da583a097f1b2b7205986ebef97ef76af523b7d6d8277df4c8d68e74f83bd58ba8b94a2718537ab6fc0a31b1bd578e9da3d9b696ce3b05a7dec910626bb5fc404775f12cd4245464a7a1adac5fb8799c1c109ae8ce3b05a7dec910626bb5fc404775f12cd4245464a7a1adac5fb8799c1c109ae87d31fe0d400ad9a42aa87399bb85f02b0f107e8224a7956e88671a0355ae881187af60d4b2b23779a0d61e7b5680023ae92a513c49c07aa3d8bd49503f5003fb87af60d4b2b23779a0d61e7b5680023ae92a513c49c07aa3d8bd49503f5003fb4e5d320a6c34bea34f1746bf8a85d00cf77d6d8a3b52d8649c93b2282d3f64e6323e0a08f4fcdd99f4681d0b431ed83d56f120bc82e889a1994ca100594f544e323e0a08f4fcdd99f4681d0b431ed83d56f120bc82e889a1994ca100594f544e8b24c7cd67e4ba93352aea4a3afd17d7d0a7c05bc4e9d2105265b91940d28f677deb754df355dd27d42f6b5e567e0a055f2d8c2113195c069bc7f1669e6f71197deb754df355dd27d42f6b5e567e0a055f2d8c2113195c069bc7f1669e6f71195ccd3fc356db47046ded0c041b4035c2d6ae459e53972908fe8aacb7458c44de3052f69b4fc72e40ff5b18ef00c03a9e91f7700e4b7300dccebc5bb2d3275ac33052f69b4fc72e40ff5b18ef00c03a9e91f7700e4b7300dccebc5bb2d3275ac31beaad785e59b21a9b784d4116c31b54e6138d98a4f5ba55123398a52a8a08ba8b31a2acb39d415f65fceed1ebdd154c2f3f1f48f03ac5011fb578015bdfc2858b31a2acb39d415f65fceed1ebdd154c2f3f1f48f03ac5011fb578015bdfc285e5d1e6a2d08ee3e35fb162c881b6bc73d3a87b403e92b01a7847eed37516e87eaf49384dd4feb8c0f59bac5cc1865174224d8e52d93e54839f0d6e2fabea6cc9af49384dd4feb8c0f59bac5cc1865174224d8e52d93e54839f0d6e2fabea6cc99c78b6d0b1f41a33d7d04efa27de9b6f120d195ab4657e97b3557d2d9d69b2d4f68afb1caa3cc7dedacddb021ec931c1c7079b7b9586c13e4dfcf38f9b39728af68afb1caa3cc7dedacddb021ec931c1c7079b7b9586c13e4dfcf38f9b39728af88e0fb30fa0ab5d0dc3030442ed92713f34170336c4dd2623723dc34829df89318e74f6b14f4668093431e14f1336049d2342e83ba348266de97a9dbad8886e7703f48e1cfe30932c5ee95596a023822f3a254b11b6ebab24efc7146494681b7703f48e1cfe30932c5ee95596a023822f3a254b11b6ebab24efc7146494681b9ba9f979dfd7ec5f82a4014fe0c839aa3076904f14498050e69af79894299b7fce92860e8b7d999cc7aad6a7c2060a98827e2ebbe2433e6fd35d4a714af57496ce92860e8b7d999cc7aad6a7c2060a98827e2ebbe2433e6fd35d4a714af57496b63326878babe4bb3102c821add39922746b94b0334a78e22ef00647d45eb1a194e730adcd0ee909e4927ab11a9f1b4b5121576d298fa6106bb237037381d81d94e730adcd0ee909e4927ab11a9f1b4b5121576d298fa6106bb237037381d81d0cfdeeeadc50b94d3d599a708549d71332feeeca6f6757c1a19d0b6fff4c882a7f7288704380a48b38474370ee442f4e68ee95cfa132ecc81d851398446a91257f7288704380a48b38474370ee442f4e68ee95cfa132ecc81d851398446a9125e6270c2efb4d1b77e88276c2afc1325b9817cd68c8cc71a98afcbff72ac70ed2baa48bb22eb3d2491d6ec7cad276d55c01c54928bde0aae183de2df912d46339baa48bb22eb3d2491d6ec7cad276d55c01c54928bde0aae183de2df912d463398e337755af548c7dfdb8b237d469a241109019f49b8f574f9ff53a1166c364407513a7c314c55b277abb666fa5b3fe24de2590b61ef8a6a76ff2cb8a86a417ac7513a7c314c55b277abb666fa5b3fe24de2590b61ef8a6a76ff2cb8a86a417acecd580374d51e2ed1e0b4bd1269214eebf9aae2d7d54213040a9034dc471e8f218d042cb46ae42c4a6c38886dc89c347948d63501acd7b9d02849ef64ecf922118d042cb46ae42c4a6c38886dc89c347948d63501acd7b9d02849ef64ecf9221d05ee2cbe1b243ff6d299683d6077bc940de43c1e42313e94863108debe587e1706bce9f74f9251c6339035b0e97b3f025abffb450589f7c47b00589c014af0d706bce9f74f9251c6339035b0e97b3f025abffb450589f7c47b00589c014af0d8963ecfa7dca22827835e9aade13bf055ac04d9170a346a55a0f22945f2000d0f65b250ae24cab09a4e3351e20b09f2bde6d713683677bd8ff87c4045bcda861f65b250ae24cab09a4e3351e20b09f2bde6d713683677bd8ff87c4045bcda8611d609492fcdb473230de2309f7767675962811d6b855f5d013040ad8be62b757e8ee95b0ac96a2432880e45f22627de193ede7a808ea625b20df29092fadd8a7e8ee95b0ac96a2432880e45f22627de193ede7a808ea625b20df29092fadd8a707146d1dc8afa51062e31308a4082508dbffde14c7f7871bdc58e38975c183a49278017d056db8a1015d6a409a9eee0008060a1d67c3b4c802a295dbe3879ce99278017d056db8a1015d6a409a9eee0008060a1d67c3b4c802a295dbe3879ce9562d13ba5a1f9d8ff5ae5cc7d391272071412cda384217bca4440edf0a908420f7cbc4e94f6c383c9f302042071c307b8edfeea325c66f72699abffab6ccbb57f7cbc4e94f6c383c9f302042071c307b8edfeea325c66f72699abffab6ccbb57b4928fd09e9e7209a234cc6d8d7551e940317b3f17a96db621695d30543ba9f1f65c174ecf5d4336dcd2804a01918c62933967bd3bca819e06dd56feb9ba4171f65c174ecf5d4336dcd2804a01918c62933967bd3bca819e06dd56feb9ba4171ffecdbd3f9ba0d71c6e59984f8384817f0fe5b0ac69ba62e1e40a31faf596a6c630a25b6f93762f8ec4d6b1b9a69a4f70d88c9dbde91925c45073937f74977971c05a4494e6738e5225149326b2359e7beff32094dfba7d72ae94c95f1592b9dc7fe6d54e6e08576bc0beef3808c5597b71bf02445957dcb8515eab26181ffafc7fe6d54e6e08576bc0beef3808c5597b71bf02445957dcb8515eab26181ffafffb96214d4975050127530bc58f0326fc7dae119b9da01de5d49ddc2e08c15f915a3977f0d2c6a8e87db2ef7050ea10afb3a88b064bf5ef95439924e424641145013f7a6875bec61c30478ba35b9d34dea1662a81d61589a22e2baed81bd25e3eb38c8f2b79b4d42515f4552d7be37244b33cc04a964795aea17ca5ae87fd726eb38c8f2b79b4d42515f4552d7be37244b33cc04a964795aea17ca5ae87fd726ca13c01f83239d042a2a43d541176c637032e73aca10bd9b2ae761558f035d43b7f9403044b4693c05d081f5d79b842b9de4f1dd37c3904407906560c6c4908a7667920f545d0bb0ccb5bae12d130f9f52fca3e259b5486b4c1bdcb6c6f2bd9bc2efba354134cc783dd4f185dff0f0a43c6e2edcd380f5bf753e0148e7e914ddc2efba354134cc783dd4f185dff0f0a43c6e2edcd380f5bf753e0148e7e914dd70801546822d7300d72667225aa310b7dcdbb3bf5133c66e801e5b7dc4b9f8e1b73c69b7b7e3d96644e8a09d9a36764d1076c3869583d81cc406b2093ec6e897b73c69b7b7e3d96644e8a09d9a36764d1076c3869583d81cc406b2093ec6e897f188303acd1b5f5275a33fcd1883de537fd35ed886ec610e971331a58da2ed53eb16afbcf51eb12b9bb6d3acb5cccdd90dc080d29c6d56714a9256f477f5840aeb16afbcf51eb12b9bb6d3acb5cccdd90dc080d29c6d56714a9256f477f5840a29082169d71910d4e09cb76b6cb578c6011ccba4c1c86f6f23db814a72ba5862f9fed4926385f836078f2118972897c76c6b4716060d2599404120ea8bdbffa5f9fed4926385f836078f2118972897c76c6b4716060d2599404120ea8bdbffa5080bfa30a9672749d9d8aa7296ec165c339b81d338c846ec3b8f1f491ceab2e21905d3fb2c28fdaac9d960ab58b62b055d358dec1cc9208e128dba562a9767341905d3fb2c28fdaac9d960ab58b62b055d358dec1cc9208e128dba562a9767349f6183a68b2b3a980cb18b5516c35baf81f4e5bbfd67e77fb6919942b260ad63e3c7fbf9d3c0079ef1c49cf38313cfdb91da91754d6b770216152b686a78384be3c7fbf9d3c0079ef1c49cf38313cfdb91da91754d6b770216152b686a78384bf18ff1d8e6693e36ba442f343ee823038a9a91bf33f5640665b993f509c362555ebc146503bc08e5c83ec0ae365a9934ea287e400216bee26e430026d54b08f65ebc146503bc08e5c83ec0ae365a9934ea287e400216bee26e430026d54b08f63bf0211c1a60483a99fcfaa61c163b1fa8cf4fca8bbda294102763e47dcc2fc473245078d127968424601eb37a8ab25cff0996c1c99581aa266fae07af957c2f73245078d127968424601eb37a8ab25cff0996c1c99581aa266fae07af957c2fb09f5b109cafb693758cea77ea3a7d24e5849aa891a672ab21d598ff04ac7a133f8ba4277b99b0d09f3300d78fc9354e20ee4920ad085ab777afb0368db2b4493f8ba4277b99b0d09f3300d78fc9354e20ee4920ad085ab777afb0368db2b449630dd2206a4ffe5b8b194e0e674a8ff4808a31a65f412bfd62387a09a05685bb0cdc7683a96edcaf1e82b5a3d160adbbeea724993ac57d3b722aec90640484630cdc7683a96edcaf1e82b5a3d160adbbeea724993ac57d3b722aec90640484636e8c706653671c627bca47ca3751ed3e73279bcc888eb39d5fffbd25f0bb0da703dd86c652a6ba73f81d27a13b752e97969527054defee5eb056345481e48b6f03dd86c652a6ba73f81d27a13b752e97969527054defee5eb056345481e48b6f95320c34909ab5b53edebc454bd1c10cf00e489944171be3514532252f119776442fe56d6397321e92d427e0974fd3c0f1dfa0f48bfe601591ecb1f2203310bb442fe56d6397321e92d427e0974fd3c0f1dfa0f48bfe601591ecb1f2203310bb2435f6d51ad27e1a096cb193d4a2809c7806e243269e788cb383ff49afd6375b870cf3f7777e1f3bcb85d0deed23ea45fc34c1eae0857e46bd5ad88e07a531ff870cf3f7777e1f3bcb85d0deed23ea45fc34c1eae0857e46bd5ad88e07a531fff72ce58dbb0ece4b2d4fa3f81c50bef1bfea7b89b8e7043907d8d5a39b4acde594e119a603446b887dfb206b1a3e7280717c03e4b5864510864f80f9b205246694e119a603446b887dfb206b1a3e7280717c03e4b5864510864f80f9b2052466106176ab4686f13c09b5fba64f91e3c0e2006954b1d38ac1bbb6e94cf3af6486f8621293badda2ae791aa8d68bd04c724d181111699c3ef08d7c913054c4e453f8621293badda2ae791aa8d68bd04c724d181111699c3ef08d7c913054c4e453fd5372282f97eed305c94cd36ed2042ae157e14470a31355c304db295328e5b2b36cabfd231ed37ab332642321044bd4e493d3363bd0b1986eb371cc724ab0f1b36cabfd231ed37ab332642321044bd4e493d3363bd0b1986eb371cc724ab0f1b4553759e7941625bb83083e17810e1a3f950f31ae6d94037873c9302572607a31ef25036e0a6f4cb04e32189fa1f6467f16f9efb851ff9abd516335cf26bbb831ef25036e0a6f4cb04e32189fa1f6467f16f9efb851ff9abd516335cf26bbb8be656645a0aa1d7578a11dbfd6985094b6bfdcbdfcf40d4bf48f4924b3bfb89b7c492562d5a55f0233ac0d5be25644154cb41ebbe92e5cdb4351e672c20602017c492562d5a55f0233ac0d5be25644154cb41ebbe92e5cdb4351e672c20602016d1616aabe21b118f7881202fb11b825bf2ab7d5e12651e75bbc36f4f68eee2b3bfccd3b3cda5930b22aa462e881488052f82080a8e1f6357f78acfdae8edc6b3bfccd3b3cda5930b22aa462e881488052f82080a8e1f6357f78acfdae8edc6b516a23b27c2e2f063535f2f878b5f8e6b44762955fe0ffe63e833476d172f3689472c060540d4931a5e7e399aa2e31ea3e51dd6aaf274e35aaf625da2dfc39049472c060540d4931a5e7e399aa2e31ea3e51dd6aaf274e35aaf625da2dfc3904d8f7dc682ad8cbc6960cc4ab8d7bbc50e3b7b7af07c41c20e668aaaf35f1f8ea33dcf327cb7d9f5c10c7b9d770d6748b04c38041ec6644ec82a4d8483999316833dcf327cb7d9f5c10c7b9d770d6748b04c38041ec6644ec82a4d848399931689ad085b1826dbddb85fd854190192d5d2ee3026be7a279ed08cc56aeb57a94b1d479018696fa67e17c5f58454672e1a6908f731463e38bd2be8fe6014ff8b5d0d479018696fa67e17c5f58454672e1a6908f731463e38bd2be8fe6014ff8b5d08e76c888a9a5d2e625e709008e85fa8332ed98aec468c7f22f04197f8c346086dc3f155a1b9092679903718550820b74b7d6646497a015fd4fa32524b4eedee6dc3f155a1b9092679903718550820b74b7d6646497a015fd4fa32524b4eedee6dc5b655bbc0b742f403173499cd29c1928927439a193506833b1ee5df14ec8db54250eca68d473005eabd7c57e30267d9b8462bb2a9ba6285654b1fec25d872054250eca68d473005eabd7c57e30267d9b8462bb2a9ba6285654b1fec25d872054854231e1411d0420ec65445242ab876b99f371f1b317885d9a480c3e8f5c41fee2fca9630a795fc704599214102ae1e6a543108bd8400aaac4129340bb7094fee2fca9630a795fc704599214102ae1e6a543108bd8400aaac4129340bb709402fac1b063673cabb30180460745fa67758f1830a8ed0bea8de250d668055f137cb664c034176d0d3971e1061ff7851efaed54dfd6c20afe538fd2823f2e9e137cb664c034176d0d3971e1061ff7851efaed54dfd6c20afe538fd2823f2e9e13a9e59a629d4ee97cc7223a074d78887c16aea625760652960f61fedad2c3583f427be23c22b7412a2540bf9ec7e25e2211da5b0967ec77a82c8b5177d613e47b427be23c22b7412a2540bf9ec7e25e2211da5b0967ec77a82c8b5177d613e47b106ba4e8ae1ee7c4c780f2f23526147d80a372be0f5f289425af6dd05eb3e782ab40b85a502570cbb34fc2d5a49e4f8e0e67ebc9e5af0a368fa06f37ce8a2ddfab40b85a502570cbb34fc2d5a49e4f8e0e67ebc9e5af0a368fa06f37ce8a2ddf0e7592d2e6ee0838e408ec43a9c1ac4cc37d19af859e17f9b3d698424688e4e958d7afdbc36c14ec0199249181e9bd423590e80882feff33cef39f6112a2a26419c2e9b5bb11594852ca54461859aa751c94f1dbfdf013cf4922e82334965fb4ea1db3464072e9b70baa5c940bd0b9d30180c0ea21f72681e749a2efb9485674cdefcc0948b977b2abef9dde33744cc81383129e28dd11c89f02f12aa1809ea22974cc32d8a4138e537419ce366ae1e389b93434f239353e876ec1230727e5249ee08c2fe1f88be79aa8578d36a779f600a86549c5b1711c8a43600ccca687dbc2457c6eb18a896adcbe276c0471a93c944aef843adc8eece7c503b27aabd1d98b2cd07a86dad1cf3d59b0bb26d3c9a637208ef0f8e259ec2981ac75747aa7f813ab20e0c42f5c0f2ff10334436b310208080949a20283dbd1f92e124cbeb253d96dab25e28315143abeb5d2b74746156c9d416c4cb7b5b9b18493635a9a80c9d96dab25e28315143abeb5d2b74746156c9d416c4cb7b5b9b18493635a9a80c932c07432df422e856420d31a461cefa0d28a6f8e03bc58189873e6eda61f57516144a82e50dfbec246e4d9d25a69221c135b8d10863ee5ee6f5f8cce7d6371b86144a82e50dfbec246e4d9d25a69221c135b8d10863ee5ee6f5f8cce7d6371b8faa2bd4db391d2fb44828da3f865ccd3bbb8a8300c31ff7081db8310c5b1d650f8d8896b5a64164249bc8c2875bf4bd854d2acaaad9c526abc5cfc48f17c7957d77d55936a0e60586102820034a6222cd4687f0c61b3f41cf121a45ec2bc46064d4a20c039b4fdcfb7a242eb932675b32a6200700eea0bc23891dc8689979a7bf88e0fb30fa0ab5d0dc3030442ed92713f34170336c4dd2623723dc34829df89ffecdbd3f9ba0d71c6e59984f8384817f0fe5b0ac69ba62e1e40a31faf596a6c26999728e6eefa83b486188a3af6900a464741307e7e4fbe4c6bb030eb7650424a404d5bcb1109a33329f0e099fa8c07a8b02401da4e531bbc6de733a90e45aaf9b54f0a6c4a21daea6f41263e8df267367f5b491094bea56179a9c3b4ebd65a5a1f4e4d0f2f0ff28b47955356a6767cc24b9e09f2eeaf1f69a18a332b7bffe4/etc/idle/config-extensions.def/etc/idle/config-highlight.def/etc/idle/config-keys.def/etc/idle/config-main.defrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootpython-2.7.18-150000.99.1.src.rpmapplication()application(idle.desktop)config(python-idle)mimehandler(text/x-python)python-idlepython-idle(x86-64)python2-idle@@@     /usr/bin/python/usr/bin/python2.7config(python-idle)python(abi)python-basepython-tkrpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PartialHardlinkSets)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)2.7.18-150000.99.12.72.7.183.0.4-14.6.0-14.0.4-14.0-15.2-14.14.1iwW@i_@i@i h@hxgw@g@g@g4f@fH@f?]fh@e,e @eedeeeRd˖dD@dq@du@dtdm@dxdc>@cӼc0c|ck@c pcbbb@b@b@ba@a@a(@aim@aI@a'@a#aj@a`t`8`_T^J^@^@^>^>^;^8 @^.^g@^ @]f@]@]]]d@]d@]@]z@]V]y@]9]1]\t@\\7\7\\J@\J@\C@\2[[#@[6@[@[ @[Za@Z@ZxG@ZtRZp^@Z, gh#python/cpython#103848#issuecomment-2708135083).- Modify CVE-2025-0938-sq-brackets-domain-names.patch: we don't use bracketed_host variable any more (correction of the fix for bsc#1236705, discovered during analysis for bsc#1223694).- Add CVE-2025-0938-sq-brackets-domain-names.patch which disallows square brackets ([ and ]) in domain names for parsed URLs (bsc#1236705, CVE-2025-0938, gh#python/cpython#105704)- Add CVE-2024-11168-validation-IPv6-addrs.patch fixing bsc#1233307 (CVE-2024-11168, gh#python/cpython#103848): Improper validation of IPv6 and IPvFuture addresses. - Add ipaddress module from https://github.com/phihag/ipaddress - Remove -IVendor/ from python-config boo#1231795- Stop using %%defattr, it seems to be breaking proper executable attributes on /usr/bin/ scripts (bsc#1227378).- bsc#1221854 (CVE-2024-0450) Add CVE-2024-0450-zipfile-avoid-quoted-overlap-zipbomb.patch detecting the vulnerability of the "quoted-overlap" zipbomb (from gh#python/cpython!110016).- Switch to using the system libexpat (bsc#1219559, CVE-2023-52425) - Make sure to remove all embedded versions of other packages (including expat). - Add CVE-2023-52425-libexpat-2.6.0-remove-failing-tests.patch removing failing test fixing bpo#3151, which we just not support. - Remove patches over those embedded packages (cffi): - python-2.7-libffi-aarch64.patch - sparc_longdouble.patch- Modify CVE-2023-27043-email-parsing-errors.patch to fix the unicode string handling in email.utils.parseaddr() (bsc#1222537). - Revert CVE-2022-48560-after-free-heappushpop.patch, the fix was unneeded.- Switch off tests. ONLY FOR FACTORY!!! (bsc#1219306)- Build with -std=gnu89 to build correctly with gcc14, bsc#1220970- Add CVE-2023-27043-email-parsing-errors.patch to gh#python/cpython!111116, fixing bsc#1210638 (CVE-2023-27043).- Add CVE-2022-48560-after-free-heappushpop.patch fixing use-after-free in Python via heappushpop in heapq (bsc#1214675, CVE-2022-48560). - switch from %patchN style to the %patch -P N one.- (bsc#1214691, CVE-2022-48566) Add CVE-2022-48566-compare_digest-more-constant.patch to make compare_digest more constant-time. - Allow nis.so for SLE-12.- (bsc#1214685, CVE-2022-48565) Add CVE-2022-48565-plistlib-XML-vulns.patch (from gh#python/cpython#86217) reject XML entity declarations in plist files. - Remove BOTH CVE-2023-27043-email-parsing-errors.patch and Revert-gh105127-left-tests.patch (as per discussion on bsc#1210638).- Add CVE-2023-40217-avoid-ssl-pre-close.patch fixing gh#python/cpython#108310, backport from upstream patch gh#python/cpython#108315 (bsc#1214692, CVE-2023-40217)- IT MEANS THAT bsc#1210638 STILL HAS NOT BEEN FIXED! - Add Revert-gh105127-left-tests.patch (gh#python/cpython!106941) partially reverting CVE-2023-27043-email-parsing-errors.patch, because of the regression in gh#python/cpython#106669.- (bsc#1210638, CVE-2023-27043) Add CVE-2023-27043-email-parsing-errors.patch, which detects email address parsing errors and returns empty tuple to indicate the parsing error (old API).- Fix the application of the python-2.7.17-switch-off-failing-SSL-tests.patch.- python-2.7.5-multilib.patch: Update for riscv64 - Don't fail if _ctypes or dl extension was not built- The condition around libnsl-devel BuildRequires is NOT switching off NIS support on SLE < 15, support for NIS used to be in the glibc itself. Partial revert of sr#1061583.- Add PygmentsBridge-trime_doctest_flags.patch to allow build of the documentation even with the current Sphinx. (SUSE-ONLY PATCH, DO NOT SEND UPSTREAM!)- Enable --with-system-ffi for non-standard architectures.- SLE-12 builds nis.so as well.- Add CVE-2023-24329-blank-URL-bypass.patch (CVE-2023-24329, bsc#1208471) blocklists bypass via the urllib.parse component when supplying a URL that starts with blank characters- Disable NIS for new products, it's deprecated and gets removed- Add skip_unverified_test.patch because apparently switching off SSL verification doesn't work on older SLE.- Restore python-2.7.9-sles-disable-verification-by-default.patch for SLE-12.- Add CVE-2022-45061-DoS-by-IDNA-decode.patch to avoid CVE-2022-45061 (bsc#1205244) allowing DoS by IDNA decoding extremely long domain names.- Add bpo34990-2038-problem-compileall.patch making compileall.py compliant with year 2038 (bsc#1202666, gh#python/cpython#79171), backport of fix to Python 2.7.- Add patch CVE-2021-28861-double-slash-path.patch: * BaseHTTPServer: Fix an open redirection vulnerability in the HTTP server when an URI path starts with //. (bsc#1202624, CVE-2021-28861)- Add CVE-2015-20107-mailcap-unsafe-filenames.patch to avoid CVE-2015-20107 (bsc#1198511, gh#python/cpython#68966), the command injection in the mailcap module.- Filter out executable-stack error that is triggered for i586 target.- Update bundled pip wheel to the latest SLE version patched against bsc#1186819 (CVE-2021-3572). - Recover again proper value of %python2_package_prefix (bsc#1175619).- BuildRequire rpm-build-python: The provider to inject python(abi) has been moved there. rpm-build pulls rpm-build-python automatically in when building anything against python3-base, but this implies that the initial build of python3-base does not trigger the automatic installation.- Older SLE versions should use old OpenSSL.- Add CVE-2022-0391-urllib_parse-newline-parsing.patch (bsc#1195396, CVE-2022-0391, bpo#43882) sanitizing URLs containing ASCII newline and tabs in urlparse.- Add CVE-2021-4189-ftplib-trust-PASV-resp.patch (bsc#1194146, bpo#43285, CVE-2021-4189, gh#python/cpython#24838) make ftplib not trust the PASV response.- build against openssl 1.1.x (incompatible with openssl 3.0x) for now.- on sle12, python2 modules will still be called python-xxxx until EOL, for newer SLE versions they will be python2-xxxx- BuildRequire rpm-build-python: The provider to inject python(abi) has been moved there. rpm-build pulls rpm-build-python automatically in when building anything against python3-base, but this implies that the initial build of python3-base does not trigger the automatic installation.- Add CVE-2019-20907_tarfile-inf-loop.patch fixing bsc#1174091 (CVE-2019-20907, bpo#39017) avoiding possible infinite loop in specifically crafted tarball. Add recursion.tar as a testing tarball for the patch. - Provide the newest setuptools wheel (bsc#1176262, CVE-2019-20916) in their correct form (bsc#1180686). - Add CVE-2020-26116-httplib-header-injection.patch fixing bsc#1177211 (CVE-2020-26116, bpo#39603) no longer allowing special characters in the method parameter of HTTPConnection.putrequest in httplib, stopping injection of headers. Such characters now raise ValueError.- Renamed patch for assigned CVE: * bpo44022-fix-http-client-infinite-line-reading-after-a-HTTP-100-Continue.patch -> CVE-2021-3737-fix-HTTP-client-infinite-line-reading-after-a-HTTP-100-Continue.patch (boo#1189241, CVE-2021-3737)- Renamed patch for assigned CVE: * bpo43075-fix-ReDoS-in-request.patch -> CVE-2021-3733-fix-ReDoS-in-request.patch (boo#1189287, CVE-2021-3733) - Fix python-doc build (bpo#35293): * sphinx-update-removed-function.patch - Update documentation formatting for Sphinx 3.0 (bpo#40204).- Add bpo43075-fix-ReDoS-in-request.patch which fixes ReDoS in request (bpo#43075, boo#1189287). - Add missing security announcement to bpo44022-fix-http-client-infinite-line-reading-after-a-HTTP-100-Continue.patch.- Add bpo44022-fix-http-client-infinite-line-reading-after-a-HTTP-100-Continue.patch which fixes http client infinite line reading (DoS) after a http 100 (bpo#44022, boo#1189241).- Modify Lib/ensurepip/__init__.py to contain the same version numbers as are in reality the ones in the bundled wheels (bsc#1187668).- Add CVE-2021-23336-only-amp-as-query-sep.patch which forbids use of semicolon as a query string separator (bpo#42967, bsc#1182379, CVE-2021-23336).- Add CVE-2021-3177-buf_ovrfl_PyCArg_repr.patch fixing bsc#1181126 (CVE-2021-3177) buffer overflow in PyCArg_repr in _ctypes/callproc.c, which may lead to remote code execution.- (bsc#1180125) We really don't Require python-rpm-macros package. Unnecessary dependency.- Add patch configure_PYTHON_FOR_REGEN.patch which makes configure.ac to consider the correct version of PYTHON_FO_REGEN (bsc#1078326).- Use python3-Sphinx on anything more recent than SLE-15 (inclusive).- Update to 2.7.18, final release of Python 2. Ever.: - Newline characters have been escaped when performing uu encoding to prevent them from overflowing into to content section of the encoded file. This prevents malicious or accidental modification of data during the decoding process. - Fixes a ReDoS vulnerability in `http.cookiejar`. Patch by Ben Caller. - Fixed line numbers and column offsets for AST nodes for calls without arguments in decorators. - bsc#1155094 (CVE-2019-18348) Disallow control characters in hostnames in http.client. Such potentially malicious header injection URLs now cause a InvalidURL to be raised. - Fix urllib.urlretrieve failing on subsequent ftp transfers from the same host. - Fix problems identified by GCC's -Wstringop-truncation warning. - AddRefActCtx() was needlessly being checked for failure in PC/dl_nt.c. - Prevent failure of test_relative_path in test_py_compile on macOS Catalina. - Fixed possible leak in `PyArg_Parse` and similar functions for format units "es#" and "et#" when the macro `PY_SSIZE_T_CLEAN` is not defined. - Remove upstreamed patches: - CVE-2019-18348-CRLF_injection_via_host_part.patch - python-2.7.14-CVE-2017-1000158.patch - CVE-2018-14647_XML_SetHashSalt-in_elementtree.patch - CVE-2018-1061-DOS-via-regexp-difflib.patch - CVE-2019-10160-netloc-port-regression.patch - CVE-2019-16056-email-parse-addr.patch- Add CVE-2019-9674-zip-bomb.patch to improve documentation warning about dangers of zip-bombs and other security problems with zipfile library. (bsc#1162825 CVE-2019-9674)- Change to Requires: libpython%{so_version} == %{version}-%{release} to python-base to keep both packages always synchronized (add %{so_version}) (bsc#1162224).- Add CVE-2020-8492-urllib-ReDoS.patch fixing the security bug "Python urrlib allowed an HTTP server to conduct Regular Expression Denial of Service (ReDoS)" (bsc#1162367)- Provide python-testsuite from devel subkg to ease py2->py3 dependencies- Add python-2.7.17-switch-off-failing-SSL-tests.patch to switch off tests coliding with the combination of modern Python and ancient OpenSSL on SLE-12.- libnsl is required only on more recent SLEs and openSUSE, older glibc supported NIS on its own.- Add provides in gdbm subpackage to provide dbm symbols. This allows us to use %%{python_module dbm} as a dependency and have it properly resolved for both python2 and python3- Drop appstream-glib BuildRequires and no longer call appstream-util validate-relax: eliminate a build cycle between as-glib and python. The only thing would would gain by calling as-uril is catching if upstream breaks the appdata.xml file in a future release. Considering py2 is dying, chances for a new release, let alone one breaking the xml file, are slim.- Unify packages among openSUSE:Factory and SLE versions. (bsc#1159035) ; add missing records to this changelog. - Add idle.desktop and idle.appdata.xml to provide IDLE in menus (bsc#1153830)- Add python2_split_startup Provide to make it possible to conflict older packages by shared-python-startup.- Move /etc/pythonstart script to shared-python-startup package.- Add bpo-36576-skip_tests_for_OpenSSL-111.patch (originally from bpo#36576) skipping tests failing with OpenSSL 1.1.1. Fixes bsc#1149792- Add adapted-from-F00251-change-user-install-location.patch fixing pip/distutils to install into /usr/local.- Update to 2.7.17: - a bug fix release in the Python 2.7.x series. It is expected to be the penultimate release for Python 2.7. - Removed patches included upstream: - CVE-2018-20852-cookie-domain-check.patch - CVE-2019-16935-xmlrpc-doc-server_title.patch - CVE-2019-9636-netloc-no-decompose-characters.patch - CVE-2019-9947-no-ctrl-char-http.patch - CVE-2019-9948-avoid_local-file.patch - python-2.7.14-CVE-2018-1000030-1.patch - python-2.7.14-CVE-2018-1000030-2.patch - Renamed remove-static-libpython.diff and python-bsddb6.diff to remove-static-libpython.patch and python-bsddb6.patch to unify filenames.- Add CVE-2019-16935-xmlrpc-doc-server_title.patch fixing bsc#1153238 (aka CVE-2019-16935) fixing a reflected XSS in python/Lib/DocXMLRPCServer.py- Add bpo36302-sort-module-sources.patch (boo#1041090)- Add CVE-2019-16056-email-parse-addr.patch fixing the email module wrongly parses email addresses [bsc#1149955, CVE-2019-16056]- boo#1141853 (CVE-2018-20852) add CVE-2018-20852-cookie-domain-check.patch fixing http.cookiejar.DefaultPolicy.domain_return_ok which did not correctly validate the domain: it could be tricked into sending cookies to the wrong server.- Skip test_urllib2_localnet that randomly fails in OBS- bsc#1138459: add CVE-2019-10160-netloc-port-regression.patch which fixes regression introduced by the previous patch. (CVE-2019-10160) Upstream gh#python/cpython#13812- Set _lto_cflags to nil as it will prevent to propage LTO for Python modules that are built in a separate package.- bsc#1130840 (CVE-2019-9947): add CVE-2019-9947-no-ctrl-char-http.patch Address the issue by disallowing URL paths with embedded whitespace or control characters through into the underlying http client request. Such potentially malicious header injection URLs now cause a ValueError to be raised.- bsc#1130847 (CVE-2019-9948) add CVE-2019-9948-avoid_local-file.patch removing unnecessary (and potentially harmful) URL scheme local-file://.- bsc#1129346: add CVE-2019-9636-netloc-no-decompose-characters.patch Characters in the netloc attribute that decompose under NFKC normalization (as used by the IDNA encoding) into any of ``/``, ``?``, ``#``, ``@``, or ``:`` will raise a ValueError. If the URL is decomposed before parsing, or is not a Unicode string, no error will be raised (CVE-2019-9636). Upstream commits e37ef41 and 507bd8c.- (bsc#1111793) Update to 2.7.16: * bugfix-only release: complete list of changes on https://github.com/python/cpython/blob/2.7/Misc/NEWS.d/2.7.16rc1.rst * Removed openssl-111.patch and CVE-2018-1000802-shutil_use_subprocess_no_spawn.patch which are fully included in the tarball. * Updated patches to apply cleanly: CVE-2019-5010-null-defer-x509-cert-DOS.patch bpo36160-init-sysconfig_vars.patch do-not-use-non-ascii-in-test_ssl.patch openssl-111-middlebox-compat.patch openssl-111-ssl_options.patch python-2.5.1-sqlite.patch python-2.6-gettext-plurals.patch python-2.7-dirs.patch python-2.7.2-fix_date_time_compiler.patch python-2.7.4-canonicalize2.patch python-2.7.5-multilib.patch python-2.7.9-ssl_ca_path.patch python-bsddb6.diff remove-static-libpython.patch * Update python-2.7.5-multilib.patch to pass with new platlib regime.- bsc#1109847 (CVE-2018-14647): add CVE-2018-14647_XML_SetHashSalt-in_elementtree.patch fixing bpo-34623.- bsc#1073748: add bpo-29347-dereferencing-undefined-pointers.patch PyWeakref_NewProxy@Objects/weakrefobject.c creates new isntance of PyWeakReference struct and does not intialize wr_prev and wr_next of new isntance. These pointers can have garbage and point to random memory locations. Python should not crash while destroying the isntance created in the same interpreter function. As per my understanding, both wr_prev and wr_next of PyWeakReference instance should be initialized to NULL to avoid segfault.- bsc#1122191: add CVE-2019-5010-null-defer-x509-cert-DOS.patch fixing bpo-35746 (CVE-2019-5010). An exploitable denial-of-service vulnerability exists in the X509 certificate parser of Python.org Python 2.7.11 / 3.7.2. A specially crafted X509 certificate can cause a NULL pointer dereference, resulting in a denial of service. An attacker can initiate or accept TLS connections using crafted certificates to trigger this vulnerability.- Use upstream-recommended %{_rpmconfigdir}/macros.d directory for the rpm macros.- Add patch openssl-111.patch to work with openssl-1.1.1 (bsc#1113755)- Apply "CVE-2018-1000802-shutil_use_subprocess_no_spawn.patch" which converts shutil._call_external_zip to use subprocess rather than distutils.spawn. [bsc#1109663, CVE-2018-1000802]- Apply "CVE-2018-1061-DOS-via-regexp-difflib.patch" to prevent low-grade poplib REDOS (CVE-2018-1060) and to prevent difflib REDOS (CVE-2018-1061). Prior to this patch mail server's timestamp was susceptible to catastrophic backtracking on long evil response from the server. Also, it was susceptible to catastrophic backtracking, which was a potential DOS vector. [bsc#1088004 and bsc#1088009, CVE-2018-1061 and CVE-2018-1060]- Apply "CVE-2017-18207.patch" to add a check to Lib/wave.py that verifies that at least one channel is provided. Prior to this check, attackers could cause a denial of service (divide-by-zero error and application crash) via a crafted wav format audio file. [bsc#1083507, CVE-2017-18207]- Apply "python-sorted_tar.patch" (bsc#1086001, boo#1081750) sort tarfile output directory listing- update to 2.7.15 * dozens of bugfixes, see NEWS for details - removed obsolete patches: * python-ncurses-6.0-accessors.patch * python-fix-shebang.patch * gcc8-miscompilation-fix.patch - add patch from upstream: * do-not-use-non-ascii-in-test_ssl.patch- Add gcc8-miscompilation-fix.patch (boo#1084650).- Apply "python-2.7.14-CVE-2017-1000158.patch" to prevent integer overflows in PyString_DecodeEscape that could have resulted in heap-based buffer overflow attacks and possible arbitrary code execution. [bsc#1068664, CVE-2017-1000158]- exclude test_socket & test_subprocess for PowerPC boo#1078485 (same ref as previous change)- Add python-skip_random_failing_tests.patch bypass boo#1078485 and exclude many tests for PowerPC- Add patch python-fix-shebang.patch to fix bsc#1078326- exclude test_regrtest for s390, where it does not segfault as it should (fixes bsc#1073269) - fix segfault while creating weakref - bsc#1073748, bpo#29347 (this is actually fixed by the 2.7.14 update; mentioning this for purposes of bugfix tracking)- update to 2.7.14 * dozens of bugfixes, see NEWS for details * fixed possible integer overflow in PyString_DecodeEscape (CVE-2017-1000158, bsc#1068664) * fixed segfaults with dict mutated during search * fixed possible free-after-use problems with buffer objects with custom indexing * fixed urllib.splithost to correctly parse fragments (bpo-30500) - drop upstreamed python-2.7.13-overflow_check.patch - drop unneeded python-2.7.12-makeopcode.patch - drop upstreamed 0001-2.7-bpo-30714-ALPN-changes-for-OpenSSL-1.1.0f-3094.patch - Apply "python-2.7.14-CVE-2018-1000030-1.patch" and "python-2.7.14-CVE-2018-1000030-2.patch" to remedy a bug that would crash the Python interpreter when multiple threads used the same I/O stream concurrently. This issue is not classified as a security vulnerability due to the fact that an attacker must be able to run code, however in some situations -- such as function as a service -- this vulnerability can potentially be used by an attacker to violate a trust boundary. [bsc#1079300, CVE-2018-1000030]- Call python2 instead of python in macros- Fix test broken with OpenSSL 1.1 (bsc#1042670) * add 0001-2.7-bpo-30714-ALPN-changes-for-OpenSSL-1.1.0f-3094.patch- drop SUSE_ASNEEDED=0 as it is not needed anymore- Add libnsl-devel build requires for glibc obsoleting libnsl- obsolete/provide python-argparse and provide python2-argparse, because the argparse module is available from python 2.7 up- SLE package update (bsc#1027282) - refresh python-2.7.5-multilib.patch - dropped upstreamed patches: python-fix-short-dh.patch python-2.7.7-mhlib-linkcount.patch python-2.7-urllib2-localnet-ssl.patch CVE-2016-0772-smtplib-starttls.patch CVE-2016-5699-http-header-injection.patch CVE-2016-5636-zipimporter-overflow.patch python-2.7-httpoxy.patch - Add python-ncurses-6.0-accessors.patch: Fix build with NCurses 6.0 and OPAQUE_WINDOW set to 1. (dimstar@opensuse.org)- Add reproducible.patch to allow reproducible builds of various python packages like python-amqp Upstream: https://github.com/python/cpython/pull/296- update to 2.7.13 * dozens of bugfixes, see NEWS for details * updated cipher lists for openssl wrapper, support openssl >= 1.1.0 * properly fix HTTPoxy (CVE-2016-1000110) * profile-opt build now applies PGO to modules as well - update python-2.7.10-overflow_check.patch with python-2.7.13-overflow_check.patch, incorporating upstream changes (bnc#964182) - add "-fwrapv" to optflags explicitly because upstream code still relies on it in many places- provide python2-* symbols, for support of new packages built as python2-foo - rename macros.python to macros.python2 accordingly - require python-rpm-macros package, drop macro definitions from macros.python2- initial packaging of `python27` side-by-side variant (fate#321075, bsc#997436) - renamed `python` to `python27` in package names and requires - removed Provides and Obsoletes clauses - dropped SLE12-only patch python-2.7.9-sles-disable-verification-by-default.patch, companion sle_tls_checks_policy.py file and the python-strict-tls-checks subpackage - dropped profile files - removed /usr/bin/python and /usr/bin/python2, along with other unversioned aliases - rewrote macros file to enable stand-alone packages depending on py2.7 - re-included downloaded version of HTML documentation- update to 2.7.12 * dozens of bugfixes, see NEWS for details * fixes multiple security issues: CVE-2016-0772 TLS stripping attack on smtplib (bsc#984751) CVE-2016-5636 zipimporter heap overflow (bsc#985177) CVE-2016-5699 httplib header injection (bsc#985348) (this one is actually fixed since 2.7.10) - removed upstreamed python-2.7.7-mhlib-linkcount.patch - refreshed multilib patch - python-2.7.12-makeopcode.patch - run newly-built python interpreter to make opcodes, in order not to require pre-built python - update LD_LIBRARY_PATH to use $PWD instead of "." because the test process escapes to its own directory - modify shebang-fixing scriptlet to ignore makeopcodetargets.py- CVE-2016-0772-smtplib-starttls.patch: smtplib vulnerability opens startTLS stripping attack (CVE-2016-0772, bsc#984751) - CVE-2016-5636-zipimporter-overflow.patch: heap overflow when importing malformed zip files (CVE-2016-5636, bsc#985177) - CVE-2016-5699-http-header-injection.patch: incorrect validation of HTTP headers allow header injection (CVE-2016-5699, bsc#985348) - python-2.7-httpoxy.patch: HTTPoxy vulnerability in urllib, fixed by disregarding HTTP_PROXY when REQUEST_METHOD is also set (CVE-2016-1000110, bsc#989523)- Add python-2.7.10-overflow_check.patch to fix broken overflow checks. [bnc#964182]- copy strict-tls-checks subpackage from SLE to retain future compatibility (not built in openSUSE) - do this properly to fix bnc#945401 - update SLE check to exclude Leap which also has version 1315, just to be sure- Add python-ncurses-6.0-accessors.patch: Fix build with NCurses 6.0 and OPAQUE_WINDOW set to 1.- add missing ssl.pyc and ssl.pyo to package - implement python-strict-tls-checks subpackage * when present, Python will perform TLS certificate checking by default. it is possible to remove the package to turn off the checks for compatibility with legacy scripts. * as discussed in fate#318300 * this is not built for openSUSE, but retained here in case we want to build the package for a SLE system- python-fix-short-dh.patch: Bump DH parameters to 2048 bit to fix logjam security issue. bsc#935856- add __python2 compatibility macro (used by Fedora) (fate#318838)- update to 2.7.10 - removed obsolete python-2.7-urllib2-localnet-ssl.patch- Reenable test_posix on aarch64- python-2.7.4-aarch64.patch: Remove obsolete patch - python-2.7-libffi-aarch64.patch: Fix argument passing in libffi for aarch64- update to 2.7.9 * contains full backport of ssl module from Python 3.4 (PEP466) * HTTPS certificate validation enabled by default (PEP476) * SSLv3 disabled by default (bnc#901715) * backported ensurepip module (PEP477) * fixes several missing CVEs from last release: CVE-2013-1752, CVE-2013-1753 * dozens of minor bugfixes - dropped upstreamed patches: python-2.7.6-poplib.patch, smtplib_maxline-2.7.patch, xmlrpc_gzip_27.patch - dropped patch python-2.7.3-ssl_ca_path.patch because we don't need it with ssl module from Python 3 - libffi was upgraded upstream, seems to contain our changes, so dropping libffi-ppc64le.diff as well - python-2.7-urllib2-localnet-ssl.patch - properly remove unconditional "import ssl" from test_urllib2_localnet that caused it to fail without ssl- skip test_thread in qemu_linux_user modeh01-ch3a 1769525676  !"##%&&())+,-./01224557899;<<>?@ABCDEFGHIJKLMNNPQRSTTVWXXZ[[]^^`aacdefghijklmnopqqsttvwwyzz|}}       !""$%%'()*+,-./012.7.18-150000.99.12.7.18-150000.99.12.7.18-150000.99.12.7.18 idleconfig-extensions.defconfig-highlight.defconfig-keys.defconfig-main.defidleidlelibAutoComplete.pyAutoComplete.pycAutoComplete.pyoAutoCompleteWindow.pyAutoCompleteWindow.pycAutoCompleteWindow.pyoAutoExpand.pyAutoExpand.pycAutoExpand.pyoBindings.pyBindings.pycBindings.pyoCREDITS.txtCallTipWindow.pyCallTipWindow.pycCallTipWindow.pyoCallTips.pyCallTips.pycCallTips.pyoChangeLogClassBrowser.pyClassBrowser.pycClassBrowser.pyoCodeContext.pyCodeContext.pycCodeContext.pyoColorDelegator.pyColorDelegator.pycColorDelegator.pyoDebugger.pyDebugger.pycDebugger.pyoDelegator.pyDelegator.pycDelegator.pyoEditorWindow.pyEditorWindow.pycEditorWindow.pyoFileList.pyFileList.pycFileList.pyoFormatParagraph.pyFormatParagraph.pycFormatParagraph.pyoGrepDialog.pyGrepDialog.pycGrepDialog.pyoHISTORY.txtHyperParser.pyHyperParser.pycHyperParser.pyoIOBinding.pyIOBinding.pycIOBinding.pyoIconsfolder.gifidle.icnsidle.icoidle_16.gifidle_16.pngidle_32.gifidle_32.pngidle_48.gifidle_48.pngminusnode.gifopenfolder.gifplusnode.gifpython.giftk.gifIdleHistory.pyIdleHistory.pycIdleHistory.pyoMultiCall.pyMultiCall.pycMultiCall.pyoMultiStatusBar.pyMultiStatusBar.pycMultiStatusBar.pyoNEWS.txtObjectBrowser.pyObjectBrowser.pycObjectBrowser.pyoOutputWindow.pyOutputWindow.pycOutputWindow.pyoParenMatch.pyParenMatch.pycParenMatch.pyoPathBrowser.pyPathBrowser.pycPathBrowser.pyoPercolator.pyPercolator.pycPercolator.pyoPyParse.pyPyParse.pycPyParse.pyoPyShell.pyPyShell.pycPyShell.pyoREADME.txtRemoteDebugger.pyRemoteDebugger.pycRemoteDebugger.pyoRemoteObjectBrowser.pyRemoteObjectBrowser.pycRemoteObjectBrowser.pyoReplaceDialog.pyReplaceDialog.pycReplaceDialog.pyoRstripExtension.pyRstripExtension.pycRstripExtension.pyoScriptBinding.pyScriptBinding.pycScriptBinding.pyoScrolledList.pyScrolledList.pycScrolledList.pyoSearchDialog.pySearchDialog.pycSearchDialog.pyoSearchDialogBase.pySearchDialogBase.pycSearchDialogBase.pyoSearchEngine.pySearchEngine.pycSearchEngine.pyoStackViewer.pyStackViewer.pycStackViewer.pyoTODO.txtToolTip.pyToolTip.pycToolTip.pyoTreeWidget.pyTreeWidget.pycTreeWidget.pyoUndoDelegator.pyUndoDelegator.pycUndoDelegator.pyoWidgetRedirector.pyWidgetRedirector.pycWidgetRedirector.pyoWindowList.pyWindowList.pycWindowList.pyoZoomHeight.pyZoomHeight.pycZoomHeight.pyo__init__.py__init__.pyc__init__.pyoaboutDialog.pyaboutDialog.pycaboutDialog.pyoconfig-extensions.defconfig-highlight.defconfig-keys.defconfig-main.defconfigDialog.pyconfigDialog.pycconfigDialog.pyoconfigHandler.pyconfigHandler.pycconfigHandler.pyoconfigHelpSourceEdit.pyconfigHelpSourceEdit.pycconfigHelpSourceEdit.pyoconfigSectionNameDialog.pyconfigSectionNameDialog.pycconfigSectionNameDialog.pyodynOptionMenuWidget.pydynOptionMenuWidget.pycdynOptionMenuWidget.pyoextend.txthelp.htmlhelp.pyhelp.pychelp.pyohelp.txtidle.batidle.pyidle.pycidle.pyoidle.pywidle_testREADME.txt__init__.py__init__.pyc__init__.pyohtest.pyhtest.pychtest.pyomock_idle.pymock_idle.pycmock_idle.pyomock_tk.pymock_tk.pycmock_tk.pyotest_autocomplete.pytest_autocomplete.pyctest_autocomplete.pyotest_autoexpand.pytest_autoexpand.pyctest_autoexpand.pyotest_calltips.pytest_calltips.pyctest_calltips.pyotest_config_name.pytest_config_name.pyctest_config_name.pyotest_configdialog.pytest_configdialog.pyctest_configdialog.pyotest_delegator.pytest_delegator.pyctest_delegator.pyotest_editmenu.pytest_editmenu.pyctest_editmenu.pyotest_formatparagraph.pytest_formatparagraph.pyctest_formatparagraph.pyotest_grep.pytest_grep.pyctest_grep.pyotest_helpabout.pytest_helpabout.pyctest_helpabout.pyotest_hyperparser.pytest_hyperparser.pyctest_hyperparser.pyotest_idlehistory.pytest_idlehistory.pyctest_idlehistory.pyotest_io.pytest_io.pyctest_io.pyotest_parenmatch.pytest_parenmatch.pyctest_parenmatch.pyotest_pathbrowser.pytest_pathbrowser.pyctest_pathbrowser.pyotest_rstrip.pytest_rstrip.pyctest_rstrip.pyotest_searchdialogbase.pytest_searchdialogbase.pyctest_searchdialogbase.pyotest_searchengine.pytest_searchengine.pyctest_searchengine.pyotest_text.pytest_text.pyctest_text.pyotest_textview.pytest_textview.pyctest_textview.pyotest_warning.pytest_warning.pyctest_warning.pyotest_widgetredir.pytest_widgetredir.pyctest_widgetredir.pyoidlever.pyidlever.pycidlever.pyokeybindingDialog.pykeybindingDialog.pyckeybindingDialog.pyomacosxSupport.pymacosxSupport.pycmacosxSupport.pyorpc.pyrpc.pycrpc.pyorun.pyrun.pycrun.pyotabbedpages.pytabbedpages.pyctabbedpages.pyotextView.pytextView.pyctextView.pyoidle.desktoppython-idleChangeLogNEWS.txtREADME.txtTODO.txtextend.txtidle.pngidle.pngidle.pngidle.appdata.xml/etc//etc/idle//usr/bin//usr/lib64/python2.7//usr/lib64/python2.7/idlelib//usr/lib64/python2.7/idlelib/Icons//usr/lib64/python2.7/idlelib/idle_test//usr/share/applications//usr/share/doc/packages//usr/share/doc/packages/python-idle//usr/share/icons/hicolor/16x16/apps//usr/share/icons/hicolor/32x32/apps//usr/share/icons/hicolor/48x48/apps//usr/share/mime/packages/-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:42443/SUSE_SLE-15_Update/254ee4c69e35b21ca6431b0d84b9ef95-python.SUSE_SLE-15_Updatedrpmxz5x86_64-suse-linux  directoryASCII textPython script, ASCII text executablepython 2.7 byte-compiledUTF-8 Unicode textASCII text, with very long linesGIF image data, version 89a, 15 x 13GIF image data, version 89a, 16 x 16PNG image data, 16 x 16, 16-bit/color RGBA, non-interlacedGIF image data, version 89a, 32 x 32PNG image data, 32 x 32, 16-bit/color RGBA, non-interlacedGIF image data, version 89a, 48 x 48PNG image data, 48 x 48, 16-bit/color RGBA, non-interlacedGIF image data, version 89a, 11 x 11GIF image data, version 89a, 16 x 13GIF image data, version 89a, 14 x 11Non-ISO extended-ASCII textHTML document, UTF-8 Unicode text, with very long linesDOS batch file, ASCII text, with CRLF line terminatorsXML 1.0 document, UTF-8 Unicode text  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRPPP|zb9=wutf-8536696be9b5aec49960b4448d50c329bad57f3c9ea7331c361cf53b01a2274fc? 7zXZ !t/:]"k%js)  8ZQfn/sϝvѭx(AF/~hE!1`MEC꽸={} +7$IvE.Ui\:ؔۇzn&e PJ fbRe`/D EK`W9lհhX`NW 7xiڦT{J GӒtTts!)c.yRoa*sp[X>cBЉmq0žso6/%@p$MgWґDD$Ckra;.6]QzkWJ ܎-0ge@c .i+<6< b)4Ki<~ rǧ#[6>ˊcDފwW1X/l)%j\\A"hf wp?p?U-hiQNGG{³/).w° ,=_d[ 3k-<@ebqA >xi:d` " U]tVRan!On>ja<됻unk0YisjIP)2%Pvv4/JMIuhJF$ڐU6*C>d.#oKrQEK׵/lc bc7Z]5z8eS vĂmDQ.n9*aC&.S.QUMG"Y}P #nwLx9O!W_ w.fQڿ~&Fr?/yWEadѽ S3>€Wj$XBM;󉒉Y)2R*]tj;2_.#W%=$F-%2KZ^ڰϰ#^K]9:}L'nZJ@ QJ*f}IQWX 5UHm|rK&v&?"_O0 B~WVKpI6wVX0=ceT{'?䲚GGj{,wws }Gov2F`nF;rV9@~w8vHๆܡ7  RuX{n.Y^q0Zj(Fz 6))gCoOܪW >[ЪuhCKn re0RWFMOvqb ]Oj㥻1aO'L]TbV*aNe<CJNأE9Ї3nb@L$DͫLfApmD C:N6VA3cy`ƻԾ&8H Owd D4}AOk5*G(*b^ $ӳnǹMYu$h9J'籱C.%9_&t}dfgSWEPHɰTK (xa[ @g?FH~!9 aq{J@d?L+i vQ6V rmX-ޱߝaݖdt琝z̖نR?h Xʹ+em؛E)3TؗzDJQ %u MOLtQ泸oo7em"ljNhWj]%UUYrd#/1Wޖ`3nHon~ksK}=kXpA-+*&vq3$@Ҥh"wdwӇGһ7m5*l-$c $3u@ʾ46 5qM: .l&[GͣA^ƿGwءR(*W쯗ꌛ!hq@?(FDV?1+FE|rw{}3Q F28X̶}*[,0l|qlA4i RM)fSt K_f0Eʖ?A*"zh%dzLx8 'ZD$X?\]Nn|0217k߳EbY7O%+[25gE RX};19=cYKe,S"?wNd_{^PtJ;#yr)uk4 sYa?o > b\3) %_@H]+tKh\?M\";Mmy}=55ޛ14YQ Sת^09Վiھ wv YC;=vVH@UبyYZq|)sM_1u`\ZWz %#3շH)*mV ᶶ~K)?(]w\Ǒ+ğ}iAnq0H;v?/%#\dias4;ld5 |/+)ť_7.O>g9QTawy~\M^K=Urukœ њ\Swb!{IE16kَOp9ӱJh5:QQV _\f߶` >8,u{&2tE.,ZDK.k~ԉ 4ꈔ"E㚛LU~}D9)_}'mv"1ͭ.랁skuNVBS*R7p5i$]e $k9L;Ij"HCVhoÄ5t/#雞K36γq2u!n$f{y,Jmb4s( m{׾Rbo"P;x`zU6|/A>&\^1(Sçc>HP*RO"mKUݪG E,f[YYRPEiD߈ЗdUÃ)u&Ϭ3XQqӱΞz4 #H *hrFtQc𤑼i+qrO8;l+$G_X0[PN%8߂n_Nz]F̈$$34eSScaiV1mސw?bTѻRA7cغe+U3 -0,Nk(Vv(M(:D'bPN$Fd;nT_18kZvS83t8|^cПOv5T9S]; A%E6أџNwT k*])M nP݆(O#2>[<^dQtas+y٫A]&z'^ڷn糪}g2u=uV7~0TbF7ؕa'ㅢ2+Ѯ"׼dӷK̓yw`;Eﰓiފ]z{a&'R^1-SvAxuZ+  4O[>8Y+ϥh,h 4jFuo/ %'ԱP K*::M2Zx"jw/^4a6l C~$k^=RקS%2Ȭ܎SwRY Q`Z%k#E100J[XzM2)b9ÔeZ <%<}V6 x*Ώ/:EM(u  >az |`rH=-3(+oOq;=L-:)@7?= ,w2}1zn,:س, i'[8F& Lja#"lk5U^8DQ:Uy Y\*7kSAj9o~/Cq 礚"j!*aG@ꔠ( ȱ܉l'SdoX'v`j4ԎbG_ ;`УqZ%P4SD3Kc@C[Dž/E¾H;׺qUm$R$~E2!֡F\9HK:wc&j{QB+#rۈs5.df8 Gm}c3qcǀ^U~ʀNJՌP mX|,,.2{ݡ7OL<4㷟pLxRg< c߇G ӼҒg;\yA'} =i\ø'Fv7X7ͬ}Y(KkpM؈P"uTNRҝ[&\V-}X'ëv@#-~5m *$Ӡ]m:ZMћ.}o v[ZBZݠ8^ʷti)KYhc֞:G縻B1`)]*|YOڊK{#Bpp<&T!{ƜSP?w'-q$Zxl3Jj5a!O}l+%dS~Hۤ(. NE8Q9bU={U'-(ļjeEo?/Cp~WXre2|< FdXڵQ+[^w oqp)sx7*\h$@/{34V%q5ob$?;v^$4vB^WԌ;c RAIçjh ,n~ Aď^e^ ]{}*×r"DŒP{>"hj܆78;YczJho^$G>=+"9%wӯ #gWAq-EEړ{1@&H>ZӆB]Y\(\+4G Xzl=OJT)ڮ3u͕y B _'qjߡe'&D6_SuguWNGO"8.]'fv؅cQJ&?^;l16+ A\Jfl4wL@<TˠjxL$N$X})]V4 jtȪ {KzYt- 4 f '] HBPtOfv8D!$ ؕZ5?tR{ŧ5'k8W-Odnv5'*uVD18_V,( zk$0ܩO֎Q3ԥZ$i{"ϼLx` [ve -)6 FuD8=Di`=/#He♪j:GRVB^qRxW-1/ZO}U0qb kl*"ZpۏuHJk-fFcuM2X}>Cc ]p?"b::rs]FW>^ [~/>@w6TWwKEdTY<5Y'OC]x}Bn(-}Rw#?ZV <_IU+sR1q;? nz֣s99b[Hգ s$[ie=Dpez+ ZIIy) fQx˴~wwt'}?~DRUv.3!kd`%>\k.J%f R d%K!cADÄc^4A*[Dʪ[GNedz\n0yoSzfL7Ф[ǒǯMCtNU7ҩy{\nS^'%^BRaqj%f:!QI8` tjAG>q/i jbP*e&<m}>cՈ+oCj." Hi ޗǷKm.@FDRO176\L-Z,Mn Ouܫ魆r]]p|kqQa'1wڬ >bkX:`]]H;ϲ<,WN+e8uZMZٵζ gمH ~ <ҫѥAu@ZVbXFJN'mEΐSXd഻%;x_'M6/P&U~/~QY:!,UFyDK$Bd۰@ᫎ&HiC7=JLsIv.,0̹脍HR7UBoyn\^dLޟӺBy6!.ڴ>kpm\ eUL]AE;ۍ}&\I#n B L&> Dý:w`0%p3LޛaO0XktڅMceK9{']~R"!7]>`X6%@GNi&E:7+`oSy`T>.Gk!8sIh^_'ehH$Ӿm φÆշv]f\;*O6 07[u ;1Kv |ŵ )4sF!,+DO̡NjSxRa +[w>hHY獆mܳoq)a5 1UdMA6k] J#WZ t Bukt4A`8{[m\j|D[N8JGX#N^{gAtw#ӔY 8,vX%CC' "N. f|^p1jdY5r#N= Ϋka],Q^ދ62PF3yֵU1 `qq=hDž <(Z (_7B %*ղ#X$EɺFdT6KҠ(璒+?λOℊfj1s)o]No,wOVtAҍY1v³'I_t x2Ԥ/ʸ-›8k7,;5g%3> HHe担٘kMA{BZ|^àjp|_ghz/C؅,R8da P_t9։}v3;åpz]kC)XNÍ?e7 %I6*1Prf~EF#(JfI.Imujo;ƨSu`fXnc 1Buj:ݛ4)e5IpZD6AH3rZs^H+>uö}%'1Beyh" #9I>Fj:t tY-FRo>K RD#rAf̞S & RSk+0lcC&)^ sof8K7@5QVSs&f+ D8Ֆ2&Q;ٳ?ДKy;,;"e'lH]V@E=@!Z@VxOE~J[ z˹:m ͉V[Cu pZ .z8b<>-W!/T| ~uق*4 >$Z<vCPK;e 4TvLPτOhn?*ZFZrym5qMy.Q!YGzW.z^~fюƫ8pO,97fȓr!WϘcκH96qBo O.}vpp-+nm,wӿ3R=%@1IYΞaڽNaBV<꺝JCd`NXBkH#TymRz*#i辶G/썍d;4)ˌM_N9q`1Ks[AjQ`G\`qP To8gF }7N>`Hcyy& jl ?hfa*5?b16 I;z d.:wxXMpv9*ŕ>dB*YdYF ` 4vΔ.vh2-q*$jѠPfMh&vkP)]k0kf6E-6_B1W$Mq;Q=RG;MI!D8GlN"NϱR\@Ϣn#4J/Qqd謾j}W->xCACG !RKTP_cAq/Ϗt i$C%o+th,*㏩s#oG#(h i>Χذ=:vU6O{4Yh8f쥋{}븛k=4sq+~}U!r.evG4Ob/oYhT`xY 9y}$ Y^hf0/D}"p%pź΋ܲnN.s'qN"oC S18# gr"=o2\JUV[?fep Ai)y#! av I9qT7)>)Q(F5I4E{,/8=Ȯ#zcqk)IGon~qj,:= ͱ-Tѕ)p2TtureMaSob a7j TСU㗗o.a5k5d N AιAay SJ4 yx&uP2^uZ$!e37SҖc/a#FRٝ?A^}$́93H$BUVy:>7iPLh.bB<69HRFU#9yF)#UۺW#k,׹y7iiLLmnp\m/&k3-Uzch[;gހdTs<{Uhٳנ† b*!W@V,,m@ChG;G|כLqd QGJLH%\KQnԽH3nX#Kr,g9>)7#KL1?guk'U˨F;V q~.NךϦx\eLG DCm%[bC2L K ]VҘҵ-7'5qignH|yp/Hg3TݔSF""Z0@ă61j2!j'<J]W Oavl5w#0W[4Jw|ߩh9|U0zrbRؼl $_\&c?M ydl\ʀ]HЄvE\L O(, Q(@PRMl_.v@zD,yfa܂,KX^{9T#M? 9PR $qut YZ