python3-idle-3.6.12-lp151.6.36.1<>,ܼ_/=„v2/ >ũoÓbhV+0Sv_T@0Xu Of3`!WVmZMY͚2}G&hI|E ߣyb;:Po!"G1mZ~zڎ.itݹ$xa;͎ `y#wH#U^X6 Bů}ouڼ~uFo+ ɗSBHeU$hs@K0A_Ցϙ}2:]">>@?0d # T48@DW`k $ H$ $ $ h$ $ l$$$dˆ$   ( 8a9Δa:!aF7PG7d$H?$IH$XJYJ\K $]S$^bcd;e@fClEuX$vw$xx$yz,Cpython3-idle3.6.12lp151.6.36.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._build774>openSUSE Leap 15.1openSUSEPython-2.0http://bugs.opensuse.orgUnspecifiedhttps://www.python.org/linuxx86_64 * 8]J((Hx[MN  lf`}OIUj$%x!~((+&(>+V  %P>%PY  wOWw616..7v67v5,[60   ^g  1LL(p( 0g 0eJe:::545 ;2t;?  --.M( `(R R LQ>wL;3<99 L1&,&;747*** ? ? ?e4e];_$lMu Y(, "!4`J/l::8VJ,=#2R:"33+"+  **(("" ",p+,((O(_dadkk  k s F s66 d  a N a\\ee f5W)Wa.e+J.e: : 878k:7:Q)Q$$$ ` &B&&B<_6U<_V r ( r""6N-k 2i8"%tg;w! u dQ#xf R8 vH-P q%E$  g-UemB  3P%wH$ y :Np0NRdCxj \03fV:+' <(%x!: fA큤A큤A큤A큤A큤A큤A큤AAA큤AA큤AA큤A큤____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________7_7_7_7_7____________e75df0b77ff61253be457af636d5eb7c55a3ff2b6a733beea844d2b294972ebfd22eea091d1f8f7b11a320cedb5acd822469c0c7ad3629d1f50f6fde6194593dc263472e71b9b557264dd066c5f06ea76d0935d25b19b92e9ac7bc49de82f15763485c7ce263c2c8e1076c52d6044dc008a75794aefd670dd259e75b1288c343251aa57bcef1bc9567a229154ee1370395c03cc241fb814555731338d2b695aac7a0cc61079c6e2df53457e63b413e0389f2c0061eb55e80229da932c8f8dbd61abddb32c2275993c297df1b56ce5d8b34eda35f823dfc27577c2b18c26efcf8531067a78ad392f25631aba1d885f40786cf5f47854577162c9f90ff1f33164c7c98d566a13fd599d1c11a375f387fef69b6c595c4f18c5d88c188a860be0e55bfe9c9b62bf4a4b1cb8419282f78bc98f4cde453a0d6bbfce8a7b76177a1af94ae74eb8119aa88532734a84dd782830f8f5cb4dff01cfa4372b1e4afa35653134ad97f34e64abd93e1e32aff017ff8914e3204a76044f1486bc9fbefa07bfdbb26999728e6eefa83b486188a3af6900a464741307e7e4fbe4c6bb030eb765042963d5f8d5d1259e9874a263a6621ca6dd1d57608faa5f28f7d61f349583e07814a404d5bcb1109a33329f0e099fa8c07a8b02401da4e531bbc6de733a90e45aa37484901eb40eefa846308e1da3ff6f240ea98f769a2afc3cf4fdba00327ecbef9b54f0a6c4a21daea6f41263e8df267367f5b491094bea56179a9c3b4ebd65afc11c3d934f8de7d3285f616d0a9129f8113b158157501829c2e452101d067a49a59e2abf1840156e9db8f85a38822fd56ab79a139eb95ec86f1fba1bb87326bfcea17dee8413652327d3d1f7565ac6b32b392a5e424947ede2088e27600346909878665b07bcb76fb3222ea1b4947a553ad0af76fc12b31651d1707980791dca932fd307c4bdc223ae39165f413b2a530b2dbf6323e8a272865da6627535ea3c7d72d323257e4c4c095b611381fd9f336d80fa7ae9104e7b03d14a7df2d9ae9c89a3b513501ebace8e428aea68dce39d0af9f29196e08fc9ea49c99605e79e72fc5037f367472c50ae104f86df35c0d5967968e352d7ea2b944f5909326076bf88e0fb30fa0ab5d0dc3030442ed92713f34170336c4dd2623723dc34829df893f8058df4fec56eb20ff67ff84c86fd3d9697e2384c5a290ed696f6d3187aa45f8f55514d26791588de02fe685af0ab129174b32ab93efa39faf6140b6795d9d4a65543adbe0bbf87e0ec369b49660626cd2c979e4bf62939f78c5014e8f1ae809e9c950b671ae38dac3cad87d1f3c06bc474df5f0993015ae129ef4684e742e4a65543adbe0bbf87e0ec369b49660626cd2c979e4bf62939f78c5014e8f1ae809245539898ea15587b6fcfcd42600f232634a1d05e17cae4e425c67a54182babc25e28b7b775603635c46e2c669b7bb01a61676a3f0b65140964583a89a005009245539898ea15587b6fcfcd42600f232634a1d05e17cae4e425c67a54182bab0a41b5e8be3b3bcf34d681b08445e70bbf9d36827558c8cb195a66d92a8fd0533497e614dacee3a735ee10c286b08bf8621fa04e72358ff9b0fc269dd509b75b0a41b5e8be3b3bcf34d681b08445e70bbf9d36827558c8cb195a66d92a8fd056d80aba8be6bc8096464f0fbd9c76a2ece343974bf0feaee9781bce36b6bbedaa13cc61121db14b16280879a7e797dc55e3a423c66522b42ae17656a262bb0456d80aba8be6bc8096464f0fbd9c76a2ece343974bf0feaee9781bce36b6bbedafa7f184c7ca7e227b8bc8dd9e68152c50bc6ef80b42885add33795d7852bd26daa405b486f8f83b5d146593d7c2cf2a4d76e4a3a27cc524575b0014ae7dc8941a35eecdb131615ee67521895fcd1f6981624b50b8249982115bb1d103d93a16e233b4443df31ca8171f39b1ab8b90275223b424b9fcae3c94055d9de2f0584d953a2217c36c0b1078cc3f9a8fbd54a0950fe719f91fc7eae8c5e48f4f7581f1f233b4443df31ca8171f39b1ab8b90275223b424b9fcae3c94055d9de2f0584d95e59cd1ebf3a4886b0cb3c97607fbf208819723566b67352f06eaf7c677e2e867a95703b0a73a18b34af62c640276be64c66fbaa1e017b35ec231cd31f8e8d165e59cd1ebf3a4886b0cb3c97607fbf208819723566b67352f06eaf7c677e2e86998c6b3a5c0680828869690679269bd750a669011488d82bbd7846d6f880bbe124c3ebd20f3b82194ca62cc81c72668bd6111fd86a1e538b8421cf70fa9e48c5998c6b3a5c0680828869690679269bd750a669011488d82bbd7846d6f880bbe1b21cef70501427faa1a89e40863439e6c6d3930d8fb3d057a13e3bbf23fa38b14c484161baa4f768dd419dc1c1297735099c0cb536d70f6fe511a2ccca7dcaf5b21cef70501427faa1a89e40863439e6c6d3930d8fb3d057a13e3bbf23fa38b141bd87d7f6c1829a3ded5fc8c9d928719a09c54528741c018f7f372bd29c280ac794102c59eac5b3099c7c7d7b52f62b8c3d43213c4e873c14c10087499c813f0830f9a3ce2a2f499c371e607bec1d66817679896860478e3ffcf8e055b991cbb5df3a59c7387252363e66029508f2365f1b62e1634e731b554ac63a328beb315f59484b355a1cb5a2e1cb483baec95006523a07a7aec3230982b3da26d149e6b5df3a59c7387252363e66029508f2365f1b62e1634e731b554ac63a328beb31f3f075050c4900d9ac0b389f3451a8a5818b1fafc60bdaf2fb17d778d53ee012bc90b4073b8daa74b4decbd1896b6c9d08630723e1645b8b0f2b305e019eb662f3f075050c4900d9ac0b389f3451a8a5818b1fafc60bdaf2fb17d778d53ee0126be2a7d812c4524a792b968965052d26134cd61e710531ea08d41d15f3f36f6eed9e3316e3510a4bb4f13ea40202ae7dbdc03d8dc50e7c2b426e6fae6bf7a0896be2a7d812c4524a792b968965052d26134cd61e710531ea08d41d15f3f36f6e1f8892f2c9027de7d0f89eccf968727139f3ffcf8a2f20eef4bba8e807ae635fe3ec7cbdb92b2fb9c838f9e514da1efa442f41860e1973c98b689b4e4ab9c1491f8892f2c9027de7d0f89eccf968727139f3ffcf8a2f20eef4bba8e807ae635f8d519bf69aa347314575fc2f71f3cd3ed9579157e3024cd9281543f75da555b7ca7b3d0057dca62bbe85352c1b69c6d41c67769e608536cf9c7df7b7aac6d9528d519bf69aa347314575fc2f71f3cd3ed9579157e3024cd9281543f75da555b734eaa3385fc379ed62d32b025efed5ea1dfc6aceef43797a0aab0e9bae8219f77c95e5dc8d5b7a045461365e221fd65da1ca48e9df0f27abb6c88f90a3d9d0f412d3c5adb0210df1c22c99e3b0449b763e4f16c5e9750d66461b684a276cad0511dce1dfa14c406ab6661df0afda90c49759bf0fb90d5a42303a3e9cbd1b722611dce1dfa14c406ab6661df0afda90c49759bf0fb90d5a42303a3e9cbd1b722611dce1dfa14c406ab6661df0afda90c49759bf0fb90d5a42303a3e9cbd1b7226815290693a13ce9980f7d4bcc06a41c6e43ec75371b48d2932a7c0cec734b5fe815290693a13ce9980f7d4bcc06a41c6e43ec75371b48d2932a7c0cec734b5fe815290693a13ce9980f7d4bcc06a41c6e43ec75371b48d2932a7c0cec734b5feb73052280e8ca70ce0079303df45345e58072b17d43e125769f5c6a2d3af706d4eecfd9bfdfb15cf6501f05dfe0788f0cb5f324c7fcad86895bf1e6187ac7959b73052280e8ca70ce0079303df45345e58072b17d43e125769f5c6a2d3af706d1f9f823d8229d8fa244c342be46887e570d4e5f99176f3b94d51177a34a943ba9e919478c3b6d1ff696bf87c50245347a29320537bb8e0d0c9f72863d570f54b1f9f823d8229d8fa244c342be46887e570d4e5f99176f3b94d51177a34a943ba92ceae83d820c8e691c5efff51a49f9bc45bec8f34f34c0c85903809e10d00f1faf7e06b6faa71f7076354c5d5fc97c28f2988b386f4ff2c06b8a1af975a8020dfa62f18775f7b215fd43ccd0b7fb9b1f9cb1da2d87bddf09e23c3dab89af49cf6caac3dfa9f1914961882f7466a2292913ec98e8160da4e5242981e2d443441168fc74c6a4067c73040ff4fce795f05bf6cf5a758fc3c2a9729f1d2e69647a2b45e078b2c36cbea0fd327ae90834eda2254618787978788897147ab14e188cac44d34b3a1979737e47bdfbea1b4b9c704e996657cbc76b4147bc21b02135b5492c1b197e6ab8783e3fdd07d2c10e81c6077bb2b3c6a2409ba3166e6acdff253c44d34b3a1979737e47bdfbea1b4b9c704e996657cbc76b4147bc21b02135b5414cd97c84e70e3f809dd83cb35fef7f699f6ccf521da65d793342d007f03fbe54d5d00ec9840fad99db52d8689eb82a3fefdb3a8da65f6136e2fedb2165020f214cd97c84e70e3f809dd83cb35fef7f699f6ccf521da65d793342d007f03fbe5ffc42c781abfd3a9bbfa71fd04cfa16975c0132d4f2ad9cd1d27ac931712b6f96b912a66727dd52df6dadbde6c13ae5962d28646da65a5afc046b92c47b8ebf9ffc42c781abfd3a9bbfa71fd04cfa16975c0132d4f2ad9cd1d27ac931712b6f9da04ed81ecb9b24dc9ec99e394dd33ef2c04aae676fc63a94f67cf1cead0c8ed7e21088eb9ae76dbbb43d3e47fdfd8cbd4fd66ed9a2f8174bcd7ee2380571056da04ed81ecb9b24dc9ec99e394dd33ef2c04aae676fc63a94f67cf1cead0c8edbb964a17e32ddab5b8390d42db4cb28e4b1655b1bc76b0ab2e4376743e6b6835b4736aab27cace23f6f84daf386edd9a6882bad6a2280b3d5fbb6f19be5a35b1bb964a17e32ddab5b8390d42db4cb28e4b1655b1bc76b0ab2e4376743e6b6835e663ee54885a7617bae735bb5a1e388e5ed20b5693ff0b88584074e232c6ce16e663ee54885a7617bae735bb5a1e388e5ed20b5693ff0b88584074e232c6ce16e663ee54885a7617bae735bb5a1e388e5ed20b5693ff0b88584074e232c6ce16776236d886ab1eaaf815f6fd9793e2c39d30381e3f2a8a16e84943cc9487bc98a34756ffa1859921b2f6dee5a7b206c4f817bf45fc31eec92985781f7c961f66776236d886ab1eaaf815f6fd9793e2c39d30381e3f2a8a16e84943cc9487bc98ca14e60a86f856d5d2f159beea559ec94415fe0ded8455b7cb47cc1c0782c021be8cccbbe80994f3c69b42acf4e4712c49502bee6f8827e7c396b1c9e4aa5be0ca14e60a86f856d5d2f159beea559ec94415fe0ded8455b7cb47cc1c0782c02122d4271c2c59b95e1dda006d76c45cf5f512de2dfe714e63cc0856090cec791cda6aaebbd9c2850e0046598667787a42ec61252de716aed0855219581f1a0bb722d4271c2c59b95e1dda006d76c45cf5f512de2dfe714e63cc0856090cec791c1d318e85e10c7266b7f6441aea2762204652c00c98fea50a296d546612ed589d248c6854fc8178d23d9a4f991c13ae74477c3152182335369c30eaa31d900c98c3fc0e58ab875433f5259eca1a734ba81e46bd0f9c143354c1d0362c4133dc923bced8878884a834c5dc85f49fb6d005236c9211b3d2df4de7d43751c5d465519a0ef01bcf984c7ba092e5d3237ae902edbc00b3446c698f969e4dc221bb88d43bced8878884a834c5dc85f49fb6d005236c9211b3d2df4de7d43751c5d4655181043fecc238bce55923d11578deb9233577b02a7a2cfef7f19adc0e4068053d3807c684a231a13989541a8f20021b99a2e3dcaaf266d816d4e297bf4bb58f9681043fecc238bce55923d11578deb9233577b02a7a2cfef7f19adc0e4068053d1ced6e720f885c7c21eee4a0e93c63e85be9d262304519e753f8df54bd724909edbd30cbf90444b700ed9fcdc540c004c2b323a618639485ded909e2a22b4fd11ced6e720f885c7c21eee4a0e93c63e85be9d262304519e753f8df54bd724909d40bf8a0b6036dad7f03dbc2d0f0ac447732e7dfe9cadd60c5fc8024b7e2292dd69b1830ec8702265307467a50c7a45ecd8b7275bb1a836df682078bac162084d40bf8a0b6036dad7f03dbc2d0f0ac447732e7dfe9cadd60c5fc8024b7e2292d3bb106bb80ba7bd3d49b0ff04cc7a83d35f5a8fa52d7ee71ca8f4a50e0c5cbf63bb106bb80ba7bd3d49b0ff04cc7a83d35f5a8fa52d7ee71ca8f4a50e0c5cbf6137629adf229d34641288a38365ac754ebb579a11a3d15042e4e8cd5807fa6233863cbd7d67147a492e01ed549c3e517f7796d9465b399b9b21e6cb2968f36b23b9f82dd4c37a92c783a71a59299cd29cc698b45d24938c8798934c622ba2252b0a671703f55797d41b804e8a4d2b07f9f955bb5a100b91644b45719558b226b7ff67760fbe8bf8276b50a12eb7cc46490f7fb3cc581eea8cbf18421ae7ff410266ef3bee8e1637b2cfc19fddecd186c99b408baea97fa71a9ac438afef8d1c6a7e21048b9061b43d318ca987510e8f62891423ec49e5bb1a6b399da6a5a7208a8f8ae19b20d573e607b26217567d04bc60d180f7180a8e715875a95a9dd9775c6bc89f69c4c484a430ef98e6951c8a8f91c0c9c635fb342114610e0defcf428a8f8ae19b20d573e607b26217567d04bc60d180f7180a8e715875a95a9dd9775434206264dee00166f451e2267d79f2d9eb990ac49f094e3809b6358f02413e51b4d4313bb297f8fd1961b676964fb3e232645fc331bc85cb77563f888077f13434206264dee00166f451e2267d79f2d9eb990ac49f094e3809b6358f02413e5545a3d0300e3faa4931fa67e1a20e07113239ee7723db8540a7c9fa92bc419641a18241a7d465eb24b936b5df277d4cf0f7f38f10a81422aded8922d1e2a27e1545a3d0300e3faa4931fa67e1a20e07113239ee7723db8540a7c9fa92bc4196491762d4685a4cc906c7fe9b8269cb9e2e33be7bba1bc1607ad5687c56b1509c9cc3309ead3289ceb6950574ee2a98b369e03f9899d0c3b1b9b259ddcee875c392b8fc64532ae30b57ac8f6c8ef16b2bdb0fc4d84d3cc5f3366aa6314c1569d1437599d6e01677b1dc16c1015b20cc8dccdb79435c6db6b466eff0b068bdd635bc227fa7fd61d2d9eebcb1fd9d3c80b00965a062d413e1771e114c30e3ba688b737599d6e01677b1dc16c1015b20cc8dccdb79435c6db6b466eff0b068bdd635b1a820e6948865bf835fbe8746b5d28c434400d97ca34eeb9d59dc699a9b99fd2c7efd5c4696e5d21e840af3fda100428abb0ec8dce64583e373516c24cf84c78d127c14e5fd092628cd3cfd69aba8207ce4e9ce4a77829a1d5a407b166ff3f8aaef814fd3a7cf7be5e13d6bfd8b01492ba630f4a93a140ec6c365d9b3933689a516ee9965bb43bce2d80786f6b56cd740c3434962b1fb388c05cb0361192d823aef814fd3a7cf7be5e13d6bfd8b01492ba630f4a93a140ec6c365d9b3933689a8d6973756ff6c65e067f59d87d0441d75014c9386996c0b3d8c97dd4b3af1a3e8d6973756ff6c65e067f59d87d0441d75014c9386996c0b3d8c97dd4b3af1a3e8d6973756ff6c65e067f59d87d0441d75014c9386996c0b3d8c97dd4b3af1a3e454c9f172ed449443f95b5cca18cd46bb1867433f9b4c7a7eff2cbaa9a59bd7c1815546e5809f1d8f18cb75ff22ba7bb656a41428be8764b52aad241c2b2dfd0454c9f172ed449443f95b5cca18cd46bb1867433f9b4c7a7eff2cbaa9a59bd7c759cc757d304ae67442ecd16e71414226bf6132f03dfdab1bc0181a45aa427d03eb5f4dcb05febe75dfa749783ea347dda5a8339d5cdff2888026a98a415ac54759cc757d304ae67442ecd16e71414226bf6132f03dfdab1bc0181a45aa427d0dec210a58d9d9d8094dd897d3834cfb66dbb1b830d81f39a8860cf7600929dc072de4c4d72262fe5a440fcdaea795906d4bf2ddc89dbfffef2870117a2e5534adec210a58d9d9d8094dd897d3834cfb66dbb1b830d81f39a8860cf7600929dc010e2dd9a1a69d0d859f1fd42c7d7eacdfadf4cbce02a039012d5c62a6f2cd443c5f9ffe0f26e43722a0a1c5b89378b2c490c625892fcae7fce59cdcd22d87eaa35fbbe448ae782ae7ef8b8d4cfd97c9fe9b7f1aee6e431efce4a2a1f0a98ba4f1f996f13a553fc2cd3c1d30068669b6b209a0f0b83a6626adae34b8d2c1bc1b01f996f13a553fc2cd3c1d30068669b6b209a0f0b83a6626adae34b8d2c1bc1b01f996f13a553fc2cd3c1d30068669b6b209a0f0b83a6626adae34b8d2c1bc1b0c1e585989a55b86b8879698949937b8d5b48e8a51ea805419d585a82e4166a0fc1e585989a55b86b8879698949937b8d5b48e8a51ea805419d585a82e4166a0fc1e585989a55b86b8879698949937b8d5b48e8a51ea805419d585a82e4166a0f596a9f9cb3f9a0e97f32e15145210322d3903d34d107d626cb4aea61e1d2f0d7adfc45577910c8e4009acbccfd3a9aa06ee41848dfc0e99e8d849440a5ab9367596a9f9cb3f9a0e97f32e15145210322d3903d34d107d626cb4aea61e1d2f0d72854bad1fbbb6d3ef47762e7d7bbf8d87ac7906d81044c166c3a79917dddc3857fecf768fef7ffc3182b4f5f93cf73fc8596a881c8d03b80de743fa99df0108f2854bad1fbbb6d3ef47762e7d7bbf8d87ac7906d81044c166c3a79917dddc3859789e1dfba1f5d12c896fb4a0a8e66ca58e0eaa966830f965f8cff2b6e00778fcc6520cab537ca53d590f1bba65d28c3398c74010718876ca0e257d08d12a0ae9789e1dfba1f5d12c896fb4a0a8e66ca58e0eaa966830f965f8cff2b6e00778f1c182c3aa5f36237e3ecd0589ea6568fb6bb75fc20c8e48ee4c6c2f7b04800c71c182c3aa5f36237e3ecd0589ea6568fb6bb75fc20c8e48ee4c6c2f7b04800c71c182c3aa5f36237e3ecd0589ea6568fb6bb75fc20c8e48ee4c6c2f7b04800c7424e1cfc12023a21e129535181da179135befd9306d71e679a38f3b33e89fa6e424e1cfc12023a21e129535181da179135befd9306d71e679a38f3b33e89fa6e424e1cfc12023a21e129535181da179135befd9306d71e679a38f3b33e89fa6ee0df02deda906e3623e455d110b0be3ab4b30c36a27a02af1933ff148785af21c9b684319e5c02add2f988a66a73d5e2e6a70fff23f0916ceebfd5c8793d9a11e0df02deda906e3623e455d110b0be3ab4b30c36a27a02af1933ff148785af21a4c7150749427620115519c8fd97099f6abbc0311852ffd10ea72cc5cc0227628b2615b0dcb0aaa872725325c159455d6ee31d6a3a08e4d84b5bf41640ec0d13a4c7150749427620115519c8fd97099f6abbc0311852ffd10ea72cc5cc022762e614f387dbdeb17760d9bb4cd50ae3091545f1285b9be0f5ad4b9a8c9eb930e96cabe6c0114a39fc378d91238279ed629b1a1ba65a3a9d792b4dc75b318c39137ffddac56236387d1143a42f07be881b625621be976faf3034b6f932fd79fe53c8eb28ef7addf5a664a7e3addfbfebe29040a8695e1db515828305aacba2ee4e28e8243b6a3f3fe92243ad474f808c12dffe608019627d48bc2e4d7b39185b455d580f5399568b375efe24fb7db6218d9264822dec25adec25c6d9640b854b65020cef86b5c31e96a3439d09252183f3eef21d4a103a4a909538bac3d0f1d4e4de42667bb690368459585dca6bffecaef498217ff74b9266cac74bb8af98e26730caf7524234fb85e08f01beb716e1a34aa233051fc0c3798a6b085aeac5b4663a7a35f40aa5d22c7fa74a889838f5c69631eaad0a9f4b70e6a439999d419630813aa76a1d93176dc33843b9e5bd4e6165886162d91b19e080e9c5adb30c05da1fb2a050c4e7c354b1434063e2a661edfe08852aa8a23a6f1621509832384856e9e38f992c807348eec7ddf175025ec6c149c20a7c2f597c99352caaa03e45577142ec668ee870cc3b09b7ced4a0592a9a2da5f7ccf8a314b1ed906fd7a30248db8add0abc885fc629c6746aca77cd40026b2dac8d7edb93f1fcf6ea9d28334f4e583b43fdf9bd4a731d70e074ee597aba03f3c8c36302bdc7e74650fb1fcc115c2cee869bed6e5169e410c4cebafab702449b8743c6614c0c90c85130b1ec7d1595e2034eaa93c2ca61854038e64197541906b3402c448b176e34a5af9b6b09b51f28a5d49a8a6775fad9bb944b47d65da733908b432b6cd0038ba99e7e3975ffecdbd3f9ba0d71c6e59984f8384817f0fe5b0ac69ba62e1e40a31faf596a6c26f690842feab34887e9863ee013180f93949b36cf3ac9643940968ddc1acb443ea7600c9cf97163c89799bff4dce3996f68fa6efccd4f66eb3867b754762f8cceb2fe1e3de8fad3c95d83407a829abcc028b8b02f85e4661c9c934129af1ea98ee037eff39bb5253b3bc2048ba149f43deec680fdb1f7dde421d9514ea3b32ba37b21cc6acb2a24ace550fc1a55852ed068fb2ecd13011ffa3ba5291b7346d0d8e97a030281647351ebbe56d9b72a581af69a9feeca7a8f5d09a9d3179963c0bd81f83b170583a900f3779f0cf8662ccd25479ffd2f063a6c4fde668a198ee015a3977f0d2c6a8e87db2ef7050ea10afb3a88b064bf5ef95439924e4246411433ffa2f718e123fd1c4e536bb4a471978515787ee9fbf7806a92073a787a733a26101d297127132c5e9634499f41ad00e125ea308343a20b278bee9e9225eb5cbfe6188362a0bc7db8b94c3dd313b97c83ad6d10b79451fd2a8a4bd773cd392b228f8efbf4c316bd701b09a72b084a08248e26a346c6a7636a142391a8b3e67447609a85977ec4d121aa69ab96fc0bd826df99b3ce7f66fef35aba7e3bb5c7bfaca1c14a54abf833ffbfe25a767cbbb86e806e8c83f52e8986fc5a268d09e92647609a85977ec4d121aa69ab96fc0bd826df99b3ce7f66fef35aba7e3bb5c7bf4e81209c6c1482c0c19379de18bfb8ea98be6b30682dc5b7c1c467dba16fd6a98f8be6714b7fd64a4f1ee746fed9820c12697edd1f497cc7579f9e847db584c74e81209c6c1482c0c19379de18bfb8ea98be6b30682dc5b7c1c467dba16fd6a93a62759676b6cf0b638295da94a1e08e5795c06290abed16ed1864b72f9a0cac7cbb93ea28180b091dfac6aa5308fec7b9e91a03c97a864e75fbce6f0b9e6c333a62759676b6cf0b638295da94a1e08e5795c06290abed16ed1864b72f9a0cac2d0ac21a4a5b2c38893f5044d396ae3625053b1d984a0072ba11a59160b4f8692285c9f727bd7e1b86cbf3247ac2d44ba3d51e6ba17326ea0b92e2854f9f5f742d0ac21a4a5b2c38893f5044d396ae3625053b1d984a0072ba11a59160b4f869adeb76930654fffdc15c2c5119ba44a2847ca7ff5f85e4e6e668541b791eb44ea8154ba876892a6a31f629e3e58d95f3a00fd53a944723577bffc23365f8531dadeb76930654fffdc15c2c5119ba44a2847ca7ff5f85e4e6e668541b791eb44ed927fd6d8831c24491aa1b4d8abb184808743ce466891e023995eea2390105fc21230d264cf664d792784e88dfb8c14c9fa8dbc4887b51bca163fc3495ffb5f8d927fd6d8831c24491aa1b4d8abb184808743ce466891e023995eea2390105fccf34a97756521d252f4c449f3518f25558769e2c48dcf2bd593b13fb77291b2f46de86d7dd6456e899271dbe14fd5e7c38f2ddf957cf12a6bad1295058c52886cf34a97756521d252f4c449f3518f25558769e2c48dcf2bd593b13fb77291b2ff1072fc7262ed8ebd9aaba534fca39fb50d2f2a21ae9684a49d2dc1b6184c38e959c7753251a0eb7234b04cdb86ab51198360bc5d53d385589cc51907c900acbf1072fc7262ed8ebd9aaba534fca39fb50d2f2a21ae9684a49d2dc1b6184c38e778e583a1796acbca64db3f7bf5376570dae5196f4ee696f7d1d992a22858ebbb381abe20451bacf314ace4761de0f5700426538411f5c20488db59caf769ed1778e583a1796acbca64db3f7bf5376570dae5196f4ee696f7d1d992a22858ebba8ccea8cd82cd48e70e4c319e63e2f4b6da602dee82ee55847a2af3962532a781ca92e3a02e5f0621db6e86fba16b2d97b27ce3ae1b4e96e12a8cd32dc12a5b4cd1bca394d8318844f5f34bceeea5af2fc67869d943234b24ad7c01ced0712fdc738f4fb4a4564ef230344730a9799feeb7ee05e9e4f0d8a2727f1a54713565d959f129b85c6777e794941a7f62cd66506d8e7e05d941ea9be3d0ff54ef44639c738f4fb4a4564ef230344730a9799feeb7ee05e9e4f0d8a2727f1a54713565d8e8b4cfa8ef3e86c6bf0dc01f6a866502e5f8b55b3dc40ffb7854fa0e6d44f88a13296055284fbdab424e018970887fc2942969880589b79081119340efb490e8e8b4cfa8ef3e86c6bf0dc01f6a866502e5f8b55b3dc40ffb7854fa0e6d44f888c9164f6c8090b1ce46cca6c9b18f1c6c3d632c5843cf87aa6b617319d1c4c62fc0fbaaf8a56f1a5f1af8b34b18e08639afe07aa9a3b0dfa87e10916083b944b8c9164f6c8090b1ce46cca6c9b18f1c6c3d632c5843cf87aa6b617319d1c4c62d01577e4890a2ddf37a8f9bf764d206c4a2e29acb959d07e83bb222af388382b58c11cd6eb070af8f7787209e1ab39caaa59f65aacad3180da2bc53ab35b96a8d01577e4890a2ddf37a8f9bf764d206c4a2e29acb959d07e83bb222af388382b4e59a42095f26237a10198869424515e595700a6b31b9668361b93efc0d7e01672734973a8ed3c848b2c3e077f0d46e472e6dadabdbe8fa875002826b2b5c64b4e59a42095f26237a10198869424515e595700a6b31b9668361b93efc0d7e0163c4c76df62867c7349ebf12e0330281cc81b1fb17fcf17e0360d12dd8437c45284dfcbb7e3cdf60c73f675209347477c5eb3073e4b9e75d6560ddeff3c88d4b63c4c76df62867c7349ebf12e0330281cc81b1fb17fcf17e0360d12dd8437c452d901de1a308b13b811dd29ac8331dbfb6a47b1ce6d1bd1cee0a9a05753ef6b7aa2fecefc91004f6e29e7e6a5287d4a1db0387c55b20cba43854260afb8236a82d901de1a308b13b811dd29ac8331dbfb6a47b1ce6d1bd1cee0a9a05753ef6b7a28297df86266712f3cdca96542cccf52455d07a70fdff826481acc485d0ba3d62c46abe1798591e3d9248f5c69e993e1b1dbf1f235bb392f7fd0b161589f513028297df86266712f3cdca96542cccf52455d07a70fdff826481acc485d0ba3d6c8f0840c27fe5f936cd674ff2617ec96566f1daba4062612412b9849daa2f6fc73951a335ef9e3dd0bd4ea6253fbfaba7b2840876241fa6e317df17341309869c8f0840c27fe5f936cd674ff2617ec96566f1daba4062612412b9849daa2f6fcbb1a86e6c47622c2e117fdfbf5ea1fab54630cc6726a249a7305773c95dd3436e8c6ba17bd85384f67b2dd1464e514415e6b2cae3c1985ba80e2a0f57cc2c462bb1a86e6c47622c2e117fdfbf5ea1fab54630cc6726a249a7305773c95dd343686fb2fddd6d9d4bac49011846219e5396cf36eb32f0cc336f00560ddc314119ee1ffeb48dce7b83dd9893a308924eaf0a2d4c7793d3c700015a9ea6a68fbfaf386fb2fddd6d9d4bac49011846219e5396cf36eb32f0cc336f00560ddc314119e91d4ba6fd660c042b596905cafbfe5dfc96b7b6fefff60ccba6c8095f4bc5ed38820589aa4b0b72285b68e140e941f01c5f67e53cb6c02402d46f2d91589291c91d4ba6fd660c042b596905cafbfe5dfc96b7b6fefff60ccba6c8095f4bc5ed3e2be28bb58932ed7523218930ddac4715ba38896629fe2a33a4a06cbc07365af2e1e76ff216e3d0257af8c34d15fede3f6f4c6f470b6b03b0e08571462fea9f5e2be28bb58932ed7523218930ddac4715ba38896629fe2a33a4a06cbc07365af41b58cb92a95fa41907c6f3ae2b42e0c1ef8c1381aae4326a2882c6a3ce1841f8d2f2c56a5380b417e09f671c09827f01f4bd89d4ca8f637ccc95a8f78066c0c41b58cb92a95fa41907c6f3ae2b42e0c1ef8c1381aae4326a2882c6a3ce1841f72eb731a9e099b4c5b3e9e7f070c89780c89297bb85fe4273ffeb907467bf26926cfe0cbc9fec137268e9c2bf7cc00c915e24d5d1b764368004ac9f16093b4c772eb731a9e099b4c5b3e9e7f070c89780c89297bb85fe4273ffeb907467bf2692c13f623ec0ad6f436b060a857746b78f57c9f447d1cc9d5fce05c021d75ea26b817790be6aa45e8939433cbf7146460b1bf72e4072545e2e77c9eadd6836ff42c13f623ec0ad6f436b060a857746b78f57c9f447d1cc9d5fce05c021d75ea26ce0412633f5d6cc142b683d7104172f4a4f1b13b2c7cba17df64b8f271d93743bc458e0a7cce5a6163ce7bc6743d0c286d0d2d8147dea1203f57368b0b88e7dece0412633f5d6cc142b683d7104172f4a4f1b13b2c7cba17df64b8f271d937438dc7b398cb03a4a83779b4083968c39edd0e938f1e3017e8dc4939ae6e80f877f70bfa803928df1ef6b3f1630f30aadbbbee4878293ae41b0c0fd825a27f5ef98dc7b398cb03a4a83779b4083968c39edd0e938f1e3017e8dc4939ae6e80f87713513cd105e267fd834e80b6ab55ea4c9a2d57a8196b4e039f8d07f968eabeaa88e79d070102942d1b518bdf2450b4fadb261c4ecb0efca4a9e39eb43c6089f513513cd105e267fd834e80b6ab55ea4c9a2d57a8196b4e039f8d07f968eabeaa745e676c9b07c39cc5ea09d27bb5bfc1115815b7018f5a1869631fd7272e64dfde2021aab50716f9b52be3f9fd7aaae84f848fb9816d713fd3e3c9acc9c5d6ef745e676c9b07c39cc5ea09d27bb5bfc1115815b7018f5a1869631fd7272e64dff91b77e8f46490c33ac593a2523d2539c87e699d70ce9253fad5166762ecc38f4249c607870be98f49a8da9eb5f1f7a6fe517237f5a76cdbed51f3a67ee2705a87bf720b967704badddab45d69f5ee5e4a2cb4fc470e2318170100d593327dd672aab7ac25421138500583301cee3edcdac07a00d2921da564ede9dbaabcd98933e08e4c4676126db516b9a07a2e5c921224cd4abc0cd7d11bee4a990ad3be5d72aab7ac25421138500583301cee3edcdac07a00d2921da564ede9dbaabcd989ba1620ca7bbb18a019170b67ad7195f500201c5737189778d98838436bf5f2e112536a6f1c859bfcd8c3ae37991d20dc505ce67aa7053d29e90f155d62dfec18ba1620ca7bbb18a019170b67ad7195f500201c5737189778d98838436bf5f2e1b4ace901f1eb6d26720008e7ece1dd4995b3eff9918ce1f96287dd222139c4cb597f312c3a435dc4fb7a26fbb06077c841549a7d692720488735ac30808234e8b4ace901f1eb6d26720008e7ece1dd4995b3eff9918ce1f96287dd222139c4cb7e71f5034a9ed8fdd2819d6af4695b2e31fdad8a0b29a8a3739af7fa7c6394dbaca8fb5195000f5b5c7a4ce043a3737392ef6a2e686f7c19af488065d5b40b597e71f5034a9ed8fdd2819d6af4695b2e31fdad8a0b29a8a3739af7fa7c6394db773e9ac48075db2aca1e05879baf7f343ae1330b8fdbdbfdc8b0da50b0b8b62e5999be6b2758fb6981c9b4c936a7f5aef8776803a29f37b9e2bb2c24008cd50d773e9ac48075db2aca1e05879baf7f343ae1330b8fdbdbfdc8b0da50b0b8b62e6aa992a609ec175af3859bc97ff8c218dc3dd0f16d32f4fa8503bf63bbfdfd577a8b83a8892ece9f987639f1ed269dd48257625d745e3855ca51d5546a6d9a7f6aa992a609ec175af3859bc97ff8c218dc3dd0f16d32f4fa8503bf63bbfdfd57c1175d6210cdb109200bdf6995a48ecf903346f02c60c37f3720917d63354e750ff16dce90cb909792eaaab625612f9316b55deee9a42fa7cf15cda84f453ffac1175d6210cdb109200bdf6995a48ecf903346f02c60c37f3720917d63354e7567e2b9909555e74c055d8acfdd596770c7c97ce01b7389a618bf8e01d561eb662aae0f85f2f7a154569993d87f637bd9d0bd6ea34d1767532a2241aa9d9eab8667e2b9909555e74c055d8acfdd596770c7c97ce01b7389a618bf8e01d561eb66a4e9fef5af4b68103dbfa96ae35e02f36e76e445b4bd12b68b2f30ccfd9987b83aa280e3e255af3c48f5bead8e6fcff6c4d6567f6d16f39efb37614a82723e43a4e9fef5af4b68103dbfa96ae35e02f36e76e445b4bd12b68b2f30ccfd9987b830f7f4515aa7c9198dbe0ac8f17d6bc44da1b5fd7e2418a27f3cf256707fdb90b7e764a95482690187bc3ddaf79b158459a57e178d1a46d4484de5e23b0ec87930f7f4515aa7c9198dbe0ac8f17d6bc44da1b5fd7e2418a27f3cf256707fdb905af34c96a52392906ca4a2630205484fda61891cf485cd0ab9de0a2e1ca6e8b35e5ef4dd80023c9e779ee85fb21926ea9aa16b7b26b653c505e7d9d8fd2683c05af34c96a52392906ca4a2630205484fda61891cf485cd0ab9de0a2e1ca6e8b30e7d7a9766ac09bf831c80c7f26858bd3f06b1e3403d8c6461405dc28acc56295bc70b2bba6ad974796e7114e5787c0746793e3f0fd50e33caeba33d6f627ce60e7d7a9766ac09bf831c80c7f26858bd3f06b1e3403d8c6461405dc28acc56292776bbcaf4abc143fb873caf99ca4bd45b9562ccd1962142f7c676cdaeefef788df70f14b22f0bab55b0b23d21c68ff8b69ca72b465c9a4b9642f0df927cc28e2776bbcaf4abc143fb873caf99ca4bd45b9562ccd1962142f7c676cdaeefef78540c0e21168d88ad907afd5e0df7b908b43d834efff8907edb207ed047cbb0580e523203f855d6560d7d0c51b2085f67a3804d424def0564e8407121eb398de7540c0e21168d88ad907afd5e0df7b908b43d834efff8907edb207ed047cbb058d89705929fa94044d94387502f159c316922060772d40c5471290b1a6016d3ef9599e5a1faad4f367ea08e92700a67b528fc580f3e93428c90fae644bcdd4c6ed89705929fa94044d94387502f159c316922060772d40c5471290b1a6016d3eff840564b1489473f936d1c15d7bd5c94f347358d6efdf56da91cddd1d6c4ff0788211d6ccd9404dbace017d176a61b5df91a2801b81eb74ef51c470989cc632ff840564b1489473f936d1c15d7bd5c94f347358d6efdf56da91cddd1d6c4ff07db103ff6c90072ded1f2280dcfefa66e624fa1dcd0d93ab42d59e05a90feab51defa0251eb546fda3d2632913cd2b152717400580e3dad4b3b2760f51e4cfba6db103ff6c90072ded1f2280dcfefa66e624fa1dcd0d93ab42d59e05a90feab51512617efeb31d0c21591660d432f24b6d01c16b96722b86a9193bcaa461b4dac8b76df3e77c983d3beedef47c748f694b70061523ba5f682b87886c38e1f454a512617efeb31d0c21591660d432f24b6d01c16b96722b86a9193bcaa461b4dac40067f7e8319cc63028037eb66812902a3ba4160df9879a6bc6ba791f880f1abecf376cabee8048198cb6b43a9143263c65ee54a01b1de5817d912ef21b99e1140067f7e8319cc63028037eb66812902a3ba4160df9879a6bc6ba791f880f1ab7c300ab53edb68d57f4e18a61889ce2fd1f0f478705c32a55b2c7ef54ad1a4646aa3ce49751495bac7aa19f421b10e9decdfddc056de7a888dba22635b3e3f247c300ab53edb68d57f4e18a61889ce2fd1f0f478705c32a55b2c7ef54ad1a46494efa97694e140c15f97b600934b344b84359ae591b993417a3d53293f9dc47b3759df7261085db1ebe083c65c7a3a9a2f1cee6467885489436fd722aacfd01794efa97694e140c15f97b600934b344b84359ae591b993417a3d53293f9dc47b900f12aa5703c443b2c56d9c779775f3db8a5da733e398d5748361c8b13fc14e92627023f17dae3a42a24591dc8b73ceb31643dbb432e70b21dc29115aff3810900f12aa5703c443b2c56d9c779775f3db8a5da733e398d5748361c8b13fc14ef98469163a18a8f2d487f315494c0a8a9d4a80b49dac53669852c436248dc88afb280018c6405689124428516fefabab07d768f8df57ecfdc0c35308872d964df98469163a18a8f2d487f315494c0a8a9d4a80b49dac53669852c436248dc88a05275e3f69638df481f2e7bbd94a8cf9ddbec9eb8019d3b28bf197788ea93fe58da808024e5d093df63339021045624ee03722c87e6182ca9fbcc2cd8ab8efb005275e3f69638df481f2e7bbd94a8cf9ddbec9eb8019d3b28bf197788ea93fe5b809a47dce64caae8efdd8430bbf18a549c54d2febd2ae62af84be17834d4aa590507b9f718481112e29ca7e7cdb0a48f165aaddd3e9ff3265a9e65b18cfdd50b809a47dce64caae8efdd8430bbf18a549c54d2febd2ae62af84be17834d4aa5a61a9e512116cb3463ceebb85fcf1c948a965d8a23dd56ea142b46ea9a77a53fa61a9e512116cb3463ceebb85fcf1c948a965d8a23dd56ea142b46ea9a77a53fa61a9e512116cb3463ceebb85fcf1c948a965d8a23dd56ea142b46ea9a77a53ff7a3b60d97c1959543ae8ac80de9899c846276e61945e072eb6f247e2375775d95674ebb89a9a4018276b0b108d85272a29020275525534a796ed67d78b9581af7a3b60d97c1959543ae8ac80de9899c846276e61945e072eb6f247e2375775d36a67218ce788e977005297a2f2ed86f87bd97b1173a54accf8e8642d522a9a3a55b88010ba40683d5e097a51f8797a1e3d9ded68bf54ac377cabb29a6d16a6836a67218ce788e977005297a2f2ed86f87bd97b1173a54accf8e8642d522a9a30f92739ee8ad87a64f5c599a697c38901e6c6e7d5ec4f1b8043eb5d8b273891ab4fdb9d33e58597c967ae04fda4772d2529874d924f64664c32082a75e78b1ba0f92739ee8ad87a64f5c599a697c38901e6c6e7d5ec4f1b8043eb5d8b273891a775a3120ed1d85abf7ae7833387a7b0f870ad4956222fb2d4e139920ab2c1924eae0e732a7ca2959eabca48cf7741f21443d8ddd4edda49b59f8554550bda5e2775a3120ed1d85abf7ae7833387a7b0f870ad4956222fb2d4e139920ab2c1924b1c43ee98fe5c5479309019a577bc5a387dea71f452f6ff642af932c5fbc4de20339672973c7deda61e2d50206d6d4576ef6e64f60a40fb0921eed93cc064819b1c43ee98fe5c5479309019a577bc5a387dea71f452f6ff642af932c5fbc4de26c9626928213003b3819ede11ab16488de0b6aeab7a87bb29ac5dd04d98832da87af5f553fe109977f01e43fe741bc350a15f3cad3fb5f2e09220744193d391f1e17e29c173171fcd763b2139b6629df2c0ce6792b057db2012edd3e0a49ea7743421286ad234a4240f8d4bc09f67bb58da0bf9d9b07bf93010989ef2c17f2f8cdae01f8da8411c2190dc4efae37e0496503a57445ea8b3d43a9e5fc50d74f7030ab335b5312af5ca57b26945c7297bec89f31e90d70e7c8cb0a2283599ab40f5d2d4ff90ab4bc9ef0903585d2fe7f4272263535af1dac98dd4a7a31b5f1759b78d40b3fbfcc67c431ad234b516d1825b17498a5dfc77ef1957d0fee36d311aa6df5742e1340743cc9932f3876bafe243e3053cd3a5f060935201708181666667462c048c689f82c3ae6b5782a18776762f88055b80ae77a92243b6c0606e004f00aea254728b67ce3b77880b3bff50b4fa66ba25ed71122d3453fa9319370783f4b14a1bc6adb09319e651fbd51cefbba97a2633e548c3c3a13c1a311377970e4e793bae777b06206a3e368053a2c94218cec72b03ff462aa22b09051c2dce20607730edb3911e3c72b8bcb0f11f27cd131cd54caa619c9afbb9f62a7f77c6dd3aa8c8a3bebaa05f55a03bbd904bda7adfdbc7b82443abd2b007e96c4fd35231881dcf94b0a44fe355f2acabfe25d8d67871402bbc19aaab37c6ff955575f1def57a0f52368c104b2a3b3551b3979751168b1ac42b7eafa1c8d5319bc95dc30e35a9f45b223d5c7e7f3bbfd8bc6495b1156c40b0ce3747ade0aed7b41aa23ac22d74368ba175175b9c14315f9d82fd7ddde60ae93d2e5572e9a647de7e869eb559d39df8c1ff38d177943f245b87f5379ee5ea93399fd6b5f7bfa882e6ed8caed3800137d48ffcf86ecb71afe5a24cd9ed381571f23036438ba8a97f502326a001464d2ef94de500cb053cd345164d696f7f84cf38fa522c77327ab04d32982d4cea5fdba68fb9e361541820d44eed003c317f4ef14bb9df3406b8d2c53ef7c73097d2c8187a17ae6a83ab6e2cf935a1309ada7dac041598e77bc618b0fa3e1e39288f4326136cadb4fab81fe31223187136bc3d9bdf65a9d67fd152e50a6e91d152088e94e1faa3df4b900cf2904458bbcc72045dd3d830c317fe2c9d9c1c66319fe7810ed91786b503de80701a291a4f9abe54c9e101c19c0917b709e62f3b8c48f3280ddc7156fd22f58360c617e25c8d145931a9aee74a2fa7c209779c2a2435bb75863215a3ecfdb268f52508ab001d6c52431ccb51595109ba013a4322ae5fde71364b4d201b1b691bfe21a91fe6c0257d6c1ca334b0f7898e8c69238c6a3d836f26771782f53685da5987a1bf57f41159e8a38352131656d07ae3dad883aff74861ca976307358c0ea3487fc783717abd5516059b9c5f88114141e684f24b52dbc02c8e59a971b1666cd0f41cf768c0837e8abe744a7f6a559ef9ede58e39e9bad047053a0dc5f27a31ff163452166c9db4ece043f7c77f985bbafa9e0ab7c528b32bc9b74d659dc4d5323e7b6d2d718d4eada7d0cc73efc350dff6da7d9c5085ff5c64232897f6ee0a09258a41a35f153f47ff0f3b8fa97ec67be9e133b134a46b23cf2c635be3116415fd388e3a1c1581bf1a77d7f7f0aff3a725bed01d8a3a88b85b65322b2256d3d90c746ee6194e0b46afd1b0c7a873ea24716a242e91b093b93210ab422d5c638d7a57feacbdd99357b3b0a90dbf5274570ce229553dd85ecb87d114bad1e615f4f9aa0c0cf01ebb5c2b116638eb78cbe4304517c1fe16da359e01f3cdfdf3f7aead4283e8b8e1107522b72f59d4c4f3ade4c5a90f03398bba5f1d3ebb705df137a81f0cc627dcea2cec72ee6d5610e734a231e2d997f442002389b3dadb47ed8134947c664a32ef637f43afdcbd1b5c1382339ae48e477969cee58822d528ae73bcb689154d92631f97b478006a7944600e510e8f647672359066df3ee2a8bf2fce14fa15037adc10d974719b9c3608cb1e44264a834dc230d397725f398d905d0746321d543c56644e5c89af59fe3fedb61a84ec601c8786daf0564e978c97c0e14095c23f9a08bb64950f9cb541b074b3ac0550b241c99a566f61929515ca97aedf99f73568df3dfe93078ed22cb54892b6c617c8e7122ae9b675af5389f5634b9b88643ad2752509f416aedfa2a81542bfcae1d871416a9bc216ad2ede3d418de48e8a8450f93de08256aa2388948ebc852eff97903ee737a4118785fa3f73759574d39d20591919577d9126cea7ba540483502cfbfce0ac87198cfd6d0ec7e5eec68834042ed949875730a35764c83ca0e9b262b9ad0046cbb0af1101a651fcb88cd1cba38e474b863abbb074b260a0296437194c674ad031297b060e590387062fa29455c2c7131ed9c7eaeb644db7bf504b395504eb46f2ab40b2587b84b971c4cdbb6001eacd1a452fef7db8d7c49ec7c2cfaecb92c5953ab48f1ac131615c7e9815671a743903aaabd4453a7d7f97d98e9ac69099676f38aba5a6cbc607f196bfd7b691554c4e3bbaea46b2c8fcdc5178b2dd77d794938fa52adce719d4948a92ba1a689068cec1fb6888d033e0ed1efc442b3fb93de89fb0988c73f8536fc5099afb761d2b69ec101c239c8c193336f2b6994f5aacca9689f32249db20a8dac36934314b7d5ba391d94169d63c66300aa47014a5c2dfc9bc0d6c3fb234dff4e4b60a6527d4cdfbb8c416f99df447acba7570e479457fec822f02dfbd78096641cbd6b6d997d18e82b8c31a01648a2be05a654a420c7b691d7a0ce7952c84b687d7387b271fcda7a8c956cbd0f58343f2bdbc30aed247a1aef9f2032e540101b46a674456967bf626b0d34a86f5f277f16699b17c3fd176c1b259959ed235bb9bb59d54731203c9c33c2e0e431729ea34280f0b51c476c951da31291f8f646630d56a7da6602a3365808a57c797bcaeb2076b6412093b234620aee37ce8be16100880af85ba6752e3652b2678b7ef122e13c385a135cbbbe8b1d87efeed43ddd3e0be9ddd8aa24b267b61fac42870d0bf5c92b0f2a5fe25ddf95729f6cba8a9ac48c7c0d1c2fdd7a7532586f2ea46be7d55a95c96f5bdffc7869acfea19c33c62a23ef9515d4f2f9e5b93b38b905b59664d1da4cfe90df4316370fd33e3a69f5b6371d1ade46bca444c14bab9284a21fcb75abf82243eb66fad0466b1d737cb51d6b957a8ec2acde3a01fbffc5a256f1b0189ee127902c0022ba8a8660b6b824801612ab1772a04800d886ea4361f9bd3a01148a0d6627692f4ef22f93361cd19e4e279510c45a522ef10ff6650daedef66d754b3202068593d714c7bfe09dcbf9e0525a59faa09b1a2b1de640cd57ac1182488554201e30bc180aa461a708bcdab3efcc019451b46351c61c2468ec9e4e0710e1441867b17a238159e89017ff6bc76b4d42d3e133d9e8809159423616094ef8df925afde07c0920da1882853184948c4a03aeb4dc99d50c363722fdf48c7c995feaf4c73b7b4c978d33747dcbdf14ae5654bfc807b15799c63fa694529bbf957aa2e3d3e66e624810c6ad7e81015f43eb4c41dd7ac5f2d77161f75c9163965d21b2df016c01202c56010e873a7353715e43429f763c89df40f8abd187ced93dc1209703237acc8e0413a9b1ef07775f45c18847d0a3d5987f13edc3287fa8beff020087d2614966840987f4a1e858d8b3051dc7a5afcb2a0f30edd1d05c1084a10bb4d2c563f089cc20fca49582f334d861cbbca4a01c94e81976926a667aa9936ec65cd80b2650d2f0f3434c2ee54f0be91939259add06ef7fd4488b992b184ebc4233ca856f1fcf817d4a0204dd34dc0833d46fa1839c862fafb8830eed0a417f1d8b60d047d8c958f624ea5649483077927067c93c23259048e90348fbdcca2b672271ee2a3759c5b73f34a0bc9b3764f83e3ab79f2182c1e277ef465907f0be250fe49a0897a708735972b6803cac22055ed760a861fce4036c6c8c30e4ae91de1da9ff290f44187d24df84aaca6995a3538fd8e6a126ae3096b743b854108908f25aedb8cd9c067cae60e41482d56af14cb8249cf8e5a96565c24986eb3e32bdd658c238b484e096fefe347488e1a22f9e99667cd0c288e6c9d2d33e969507af34a1634cec335e7c097c5421b441b9d84ae74c37c7da0d10ec55086e47ddb99c9922338a9e0b88b04511b4cd233c887159d82ba4ccf1978b1abddb32c2275993c297df1b56ce5d8b34eda35f823dfc27577c2b18c26efcf8c7d72d323257e4c4c095b611381fd9f336d80fa7ae9104e7b03d14a7df2d9ae92fc5037f367472c50ae104f86df35c0d5967968e352d7ea2b944f5909326076bf88e0fb30fa0ab5d0dc3030442ed92713f34170336c4dd2623723dc34829df89ffecdbd3f9ba0d71c6e59984f8384817f0fe5b0ac69ba62e1e40a31faf596a6c26999728e6eefa83b486188a3af6900a464741307e7e4fbe4c6bb030eb7650424a404d5bcb1109a33329f0e099fa8c07a8b02401da4e531bbc6de733a90e45aaf9b54f0a6c4a21daea6f41263e8df267367f5b491094bea56179a9c3b4ebd65a4fe845553b7ffbd7696ea3bf437851cbf73df723573d3b35ed7a699f9f4de8a2/etc/idle3.6/config-extensions.def/etc/idle3.6/config-highlight.def/etc/idle3.6/config-keys.def/etc/idle3.6/config-main.defrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootpython3-3.6.12-lp151.6.36.1.src.rpmapplication()application(idle3.6.desktop)config(python3-idle)metainfo()metainfo(idle3.6.appdata.xml)mimehandler(text/x-python)python3-idlepython3-idle(x86-64)@@@     /usr/bin/python3/usr/bin/python3.6config(python3-idle)python(abi)python3python3-tkrpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PartialHardlinkSets)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.6.12-lp151.6.36.13.63.6.123.0.4-14.6.0-14.0.4-14.0-15.2-14.14.1__@_v@_0@_0@_@_G@___P_P_m_O@_N7_L@_?@_>e_>e_=@_@_______^^g@^>^>^8 @^0"@]f@]+]@]m]y@]v>]8H@]8H@]1]]@\\8\@\E@\C@["@[6@ZZԐ@Zx@Z@Z@Z Z Zz@Zhu@Z`@ZLZ"Z }YYX@Yo@Y@YY@Y@YI@XӸXƉXXqX@Xv@W@Wx@W_W@Vm@VhV*!@VCV }@U@U@U@UU[%UT@UCjU@TeT;Marcus Meissner Matej Cepl Matej Cepl Matej Cepl Steve Kowalik Markéta Machová Matej Cepl Matej Cepl Marketa Calabkova Dominique Leuenberger Matej Cepl Dominique Leuenberger Matej Cepl Matej Cepl Tomáš Chvátal Andreas Schwab Marketa Calabkova Marketa Calabkova Marketa Calabkova Matej Cepl Marketa Calabkova Tomáš Chvátal Tomáš Chvátal Tomáš Chvátal Tomáš Chvátal Tomáš Chvátal Tomáš Chvátal Matej Cepl Matej Cepl Matej Cepl Matej Cepl Tomáš Chvátal Matej Cepl Matej Cepl Matej Cepl Matej Cepl Matej Cepl Matej Cepl Matej Cepl Matej Cepl Matej Cepl Matej Cepl Matej Cepl Matej Cepl Matej Cepl Matej Cepl Matej Cepl Matěj Cepl mcepl@suse.comMatěj Cepl mcepl@suse.comtchvatal@suse.comtchvatal@suse.commimi.vx@gmail.compsimons@suse.comadam@mizerski.plschwab@suse.debwiedemann@suse.comtchvatal@suse.comjmatejek@suse.comnormand@linux.vnet.ibm.comjmatejek@suse.comdimstar@opensuse.orgmimi.vx@gmail.comjmatejek@suse.comdmueller@suse.comvcizek@suse.comschwab@suse.dejmatejek@suse.comkukuk@suse.dejmatejek@suse.comasn@cryptomilk.orgjmatejek@suse.comjmatejek@suse.comjmatejek@suse.combwiedemann@suse.comjmatejek@suse.comjmatejek@suse.comhpj@urpla.nethpj@urpla.nethpj@urpla.netjmatejek@suse.comtoddrme2178@gmail.comtoddrme2178@gmail.comjmatejek@suse.comtoddrme2178@gmail.comjmatejek@suse.comdimstar@opensuse.orgjmatejek@suse.comfisiu@opensuse.orgmeissner@suse.comschwab@suse.dejmatejek@suse.commailaender@opensuse.orgrguenther@suse.comp.drouand@gmail.comjmatejek@suse.com- readd --with-fpectl (bsc#1180377)- Adjust sphinx-update-removed-function.patch- (bsc#1179630) Update sphinx-update-removed-function.patch to work with all versions of Sphinx (not binding the Python documentation build to the latest verison of Sphinx). Updated version mentioned on gh#python/cpython#13236.- Add CVE-2020-27619-no-eval-http-content.patch fixing CVE-2020-27619 (bsc#1178009), where Lib/test/multibytecodec_support calls eval() on content retrieved via HTTP.- Add patch sphinx-update-removed-function.patch to no longer call a now removed function (gh#python/cpython#13236). As a consequence, no longer pin Sphinx version.- Pin Sphinx version to fix doc subpackage- Change setuptools and pip version numbers according to new wheels - Add ignore_pip_deprec_warn.patch to switch of persistently failing test.- Replace bundled wheels for pip and setuptools with the updated ones (bsc#1176262 CVE-2019-20916).- Handful of changes to make python36 compatible with SLE15 and SLE12 (jsc#ECO-2799, jsc#SLE-13738) - Rebase bpo23395-PyErr_SetInterrupt-signal.patch- Fix build with RPM 4.16: error: bare words are no longer supported, please use "...": x86 == ppc.- Fix installing .desktop file- Buildrequire timezone only for general flavor. It's used in this flavor for the test suite.- Add faulthandler_stack_overflow_on_GCC10.patch to make build working even with GCC10 (bpo#38965).- Just cleanup and reordering items to synchronize with python38- Format with spec-cleaner- riscv64-support.patch: bpo-33377: add triplets for mips-r6 and riscv (#6655) - riscv64-ctypes.patch: bpo-35847: RISC-V needs CTYPES_PASS_BY_REF_HACK (GH-11694) - Update list of tests to exclude under qemu linux-user- Update the python keyring - Correct libpython name- Drop patches which are not mentioned in spec: * CVE-2019-5010-null-defer-x509-cert-DOS.patch * F00102-lib64.patch * F00251-change-user-install-location.patch * OBS_dev-shm.patch * SUSE-FEDORA-multilib.patch * bpo-31046_ensurepip_honours_prefix.patch * bpo34022-stop_hash-based_invalidation_w_SOURCE_DATE_EPOCH.patch * bpo36302-sort-module-sources.patch * bpo40784-Fix-sqlite3-deterministic-test.patch * bsc1167501-invalid-alignment.patch * python3-imp-returntype.patch - Working around missing python-packaging dependency in python-Sphinx (bsc#1174571) is not necessary anymore.- Update to 3.6.12 (bsc#1179193) * Ensure python3.dll is loaded from correct locations when Python is embedded * The __hash__() methods of ipaddress.IPv4Interface and ipaddress.IPv6Interface incorrectly generated constant hash values of 32 and 128 respectively. This resulted in always causing hash collisions. The fix uses hash() to generate hash values for the tuple of (address, mask length, network address). * Prevent http header injection by rejecting control characters in http.client.putrequest(…). * Unpickling invalid NEWOBJ_EX opcode with the C implementation raises now UnpicklingError instead of crashing. * Avoid infinite loop when reading specially crafted TAR files using the tarfile module - Drop merged fixtures: * CVE-2020-14422-ipaddress-hash-collision.patch * CVE-2019-20907_tarfile-inf-loop.patch * recursion.tar - This release also fixes CVE-2020-26116 (bsc#1177211) and CVE-2019-20907 (bsc#1174091).- 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.- Make library names internally consistent- Disable profile optimalizations as they deadlock in test_faulthandler- Disable lto as it causes mess and works with 3.7 onwards only- Sync the test disablements from the python3 in sle15- Update to 3.6.11: - bpo-39073: Disallow CR or LF in email.headerregistry. Address arguments to guard against header injection attacks. - bpo-38576 (bsc#1155094): Disallow control characters in hostnames in http.client, addressing CVE-2019-18348. Such potentially malicious header injection URLs now cause a InvalidURL to be raised. - bpo-39503: CVE-2020-8492: The AbstractBasicAuthHandler class of the urllib.request module uses an inefficient regular expression which can be exploited by an attacker to cause a denial of service. Fix the regex to prevent the catastrophic backtracking. Vulnerability reported by Ben Caller and Matt Schwager. - bpo-39401: Avoid unsafe load of api-ms-win-core-path-l1-1-0.dll at startup on Windows 7. - Remove merged patch CVE-2020-8492-urllib-ReDoS.patch- Fix minor issues found in the staging.- Do not set ourselves as a primary interpreter- Add CVE-2020-14422-ipaddress-hash-collision.patch fixing CVE-2020-14422 (bsc#1173274, bpo#41004), where hash collisions in IPv4Interface and IPv6Interface could lead to DOS.- Change name of idle3 icons to idle3.png to avoid collision with Python 2 version (bsc#1165894).- 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) - 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)- Add Requires: libpython%{so_version} == %{version}-%{release} to python3-base to keep both packages always synchronized (bsc#1162224).- Reame idle icons to idle3 in order to not conflict with python2 variant of the package bsc#1165894 * renamed the icons * renamed icon load in desktop file- Add pep538_coerce_legacy_c_locale.patch to coerce locale to C.UTF-8 always (bsc#1162423).- Update to 3.6.10 (still in line with jsc#SLE-9426, jsc#SLE-9427, bsc#1159035): - Security: - bpo-38945: 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. - bpo-37228: Due to significant security concerns, the reuse_address parameter of asyncio.loop.create_datagram_endpoint() is no longer supported. This is because of the behavior of SO_REUSEADDR in UDP. For more details, see the documentation for loop.create_datagram_endpoint(). (Contributed by Kyle Stanley, Antoine Pitrou, and Yury Selivanov in bpo-37228.) - bpo-38804: Fixes a ReDoS vulnerability in http.cookiejar. Patch by Ben Caller. - bpo-38243: Escape the server title of xmlrpc.server.DocXMLRPCServer when rendering the document page as HTML. (Contributed by Dong-hee Na in bpo-38243.) - bpo-38174: Update vendorized expat library version to 2.2.8, which resolves CVE-2019-15903. - bpo-37461: Fix an infinite loop when parsing specially crafted email headers. Patch by Abhilash Raj. - bpo-34155: Fix parsing of invalid email addresses with more than one @ (e.g. a@b@c.com.) to not return the part before 2nd @ as valid email address. Patch by maxking & jpic. - Library: - bpo-38216: Allow the rare code that wants to send invalid http requests from the http.client library a way to do so. The fixes for bpo-30458 led to breakage for some projects that were relying on this ability to test their own behavior in the face of bad requests. - bpo-36564: Fix infinite loop in email header folding logic that would be triggered when an email policy’s max_line_length is not long enough to include the required markup and any values in the message. Patch by Paul Ganssle - Remove patches included in the upstream tarball: - CVE-2019-16935-xmlrpc-doc-server_title.patch (and also bpo37614-race_test_docxmlrpc_srv_setup.patch, which was resolving bsc#1174701). - CVE-2019-16056-email-parse-addr.patch - Move idle subpackage build from python3-base to python3 (bsc#1159622). appstream-glib required for packaging introduces considerable extra dependencies and a build loop via rust/librsvg. - Correct installation of idle IDE icons: + idle.png is not the target directory + non-GNOME-specific icons belong into icons/hicolor - Add required Name key to idle3 desktop file- Unify all Python 3.6* SLE packages into one (jsc#SLE-9426, jsc#SLE-9427, bsc#1159035) - Patches which were already included upstream: - CVE-2018-1061-DOS-via-regexp-difflib.patch - CVE-2018-14647_XML_SetHashSalt-in_elementtree.patch- 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 bpo-36576-skip_tests_for_OpenSSL-111.patch (originally from bpo#36576) skipping tests failing with OpenSSL 1.1.1. Fixes bsc#1149792 - Add bpo36263-Fix_hashlib_scrypt.patch which works around bsc#1151490- Add CVE-2019-16056-email-parse-addr.patch fixing the email module wrongly parses email addresses [bsc#1149955, bnc#1149955, CVE-2019-16056]- jsc#PM-1350 bsc#1149121 Update python3 to the last version of the 3.6 line. This is just a bugfix release with no changes in functionality. - The following patches were included in the upstream release as so they can be removed in the package: - CVE-2018-20852-cookie-domain-check.patch - CVE-2019-5010-null-defer-x509-cert-DOS.patch - CVE-2019-10160-netloc-port-regression.patch - CVE-2019-9636-urlsplit-NFKC-norm.patch - CVE-2019-9947-no-ctrl-char-http.patch - Patch bpo23395-PyErr_SetInterrupt-signal.patch has been reapplied on the upstream base without changing any functionality. - Add patch aarch64-prolong-timeout.patch to fix failing test_utime_current_old test.- FAKE RECORD FROM SLE-12 CHANNEL 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]- FAKE RECORD FROM SLE-12 CHANNEL bsc#1109847: add CVE-2018-14647_XML_SetHashSalt-in_elementtree.patch fixing bpo#34623.- 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.- 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- FAKE RECORD FROM SLE-12 CHANNEL bsc#1137942: Avoid duplicate files with python3* packages (https://fate.suse.com/327309)- bsc#1094814: Add bpo23395-PyErr_SetInterrupt-signal.patch to handle situation when the SIGINT signal is ignored or not handled- Update to 3.6.8: - bugfixes only - removed patches (subsumed in the upstream tarball): - CVE-2018-20406-pickle_LONG_BINPUT.patch - refreshed patches: - CVE-2019-5010-null-defer-x509-cert-DOS.patch - CVE-2019-9636-urlsplit-NFKC-norm.patch - Python-3.0b1-record-rpm.patch - python-3.3.0b1-fix_date_time_compiler.patch - python-3.3.0b1-test-posix_fadvise.patch - python-3.3.3-skip-distutils-test_sysconfig_module.patch - python-3.6.0-multilib-new.patch - python3-sorted_tar.patch - subprocess-raise-timeout.patch - switch off LTO and PGO optimization (bsc#1133452) - 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#1129346: add CVE-2019-9636-urlsplit-NFKC-norm.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 gh#python/cpython#12224- bsc#1120644 add CVE-2018-20406-pickle_LONG_BINPUT.patch fixing bpo#34656 Modules/_pickle.c in Python before 3.7.1 has an integer overflow via a large LONG_BINPUT value that is mishandled during a "resize to twice the size" attempt. This issue might cause memory exhaustion, but is only relevant if the pickle format is used for serializing tens or hundreds of gigabytes of data.- bsc#1122191: add CVE-2019-5010-null-defer-x509-cert-DOS.patch fixing bpo-35746. 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.- Add -fwrapv to OPTS, which is default for python3 anyway See for example https://github.com/zopefoundation/persistent/issues/86 for bugs which are caused by avoiding it. (bsc#1107030)- 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]- As we run in main python package do not generate the pre_checkin from both now- Move the tests from base to generic package wrt bsc#1088573 * We still fail the whole distro if python3 is not build * The other archs than x86_64 took couple of hours to unblock build of other software, this way we work around the issue - Some tests are still run in -base for the LTO tweaking, but at least it is not run twice- update to 3.6.5 * bugfix release * see Misc/NEWS for details - drop ctypes-pass-by-value.patch - drop fix-localeconv-encoding-for-LC_NUMERIC.patch - refresh python-3.6.0-multilib-new.patch- Apply "python-3.6-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]- Created %so_major and %so_minor macros - Put Tools/gdb/libpython.py script into proper place and ship it with devel subpackage.- ctypes-pass-by-value.patch: Fix pass by value for structs on aarch64- Add python3-sorted_tar.patch (boo#1081750, bsc#1086001)- Add patch to fix glibc 2.27 fail bsc#1079761: * fix-localeconv-encoding-for-LC_NUMERIC.patch- move XML modules and python3-xml provide to python3-base (fixes bsc#1077230) - move ensurepip to base- Add skip_random_failing_tests.patch only for PowerPC- update to 3.6.4 * bugfix release, over a hundred bugs fixed * see Misc/NEWS for details - drop upstreamed python3-ncurses-6.0-accessors.patch - drop PYTHONSTARTUP hooks that cause spurious startup errors * fixes bsc#1070738 * the relevant feature (REPL history) is now built into Python itself- Install 2to3-%{python_version} executable (override defattr of the -tools package). 2to3 (unversioned) is a symlink and does not carry permissions (bsc#1070853).- move 2to3 to python3-tools package- update to 3.6.3 * bugfix release, over a hundred bugs fixed * see Misc/NEWS for details - drop upstreamed 0001-3.6-bpo-30714-ALPN-changes-for-OpenSSL-1.1.0f-3093.patch- drop python-2.7-libffi-aarch64.patch: this patches the intree copy of libffi which is unused/deleted in the line afterwards - fix build against system libffi: include flags weren't set so it actually used the in-tree libffi headers.- Fix test broken with OpenSSL 1.1 (bsc#1042670) * add 0001-3.6-bpo-30714-ALPN-changes-for-OpenSSL-1.1.0f-3093.patch- fix missing %{?armsuffix}- distutils-reproducible-compile.patch: ensure distutils order files before compiling, which works around bsc#1049186- Add libnsl-devel build requires for glibc obsoleting libnsl- update to 3.6.2 * bugfix release, over a hundred bugs fixed * see Misc/NEWS for details - drop upstreamed test-socket-aead-kernel49.patch - add Provides: python3-typing (fixes bsc#1050653) - drop duplicate Provides: python3- Add missing link to python library in config dir (bsc#1040164)- update to 3.6.1 * bugfix release, over a hundred bugs fixed * never add import location's parent directory to sys.path * switch to git for version control, build changes related to that * fix "failed to get random numbers" on old kernels (bsc#1029902) * several crashes and memory leaks corrected * f-string are no longer accepted as docstrings- prevent regenerating AST at build-time more robustly - add "--without profileopt" and "--without testsuite" options to python3-base to allow short circuiting when working on the package- FAKE RECORD FROM SLE-12 CHANNEL update to 3.4.6 (bsc#1027282): * fixed potential crash in PyUnicode_AsDecodedObject() in debug build * fixed possible DoS and arbitrary execution in gettext plurals * fix possible use of uninitialized memory in operator.methodcaller * fix possible Py_DECREF on unowned object in _sre * fix possible integer overflow in _csv module * prevent HTTPoxy attack (CVE-2016-1000110) * fix selectors incorrectly retaining invalid fds - drop upstreamed python-3.4-CVE-2016-1000110-fix.patch - move _elementtree to python3.rpm to match its pyexpat dependency (bsc#1029377)- Add 0001-allow-for-reproducible-builds-of-python-packages.patch upstream https://github.com/python/cpython/pull/296- reenable test_socket with AEAD patch (test-socket-aead-kernel49.patch) - reintroduce %py3_soflags macro (and better named %cpython3_soabi equivalent)- update to 3.6.0 * PEP 498 Formated string literals * PEP 515 Underscores in numeric literals * PEP 526 Syntax for variable annotations * PEP 525 Asynchronous generators * PEP 530 Asynchronous comprehensions * PEP 506 New "secrets" module for safe key generation * less memory consumed by dicts * dtrace and systemtap support * improved asyncio module * better defaults for ssl * new hashing algorithms in hashlib * bytecode format changed to allow more optimizations * "async" and "await" are on track to be reserved words * StopIteration from generators is deprecated * support for openssl < 1.0.2 is deprecated * os.urandom now blocks when getrandom() blocks * huge number of new features, bugfixes and optimizations * see https://docs.python.org/3.6/whatsnew/3.6.html for details - rework multilib patch: drop Python-3.5.0-multilib.patch, implement upstreamable python-3.6.0-multilib-new.patch - refresh python-3.3.0b1-localpath.patch, subprocess-raise-timeout.patch - drop upstreamed Python-3.5.1-fix_lru_cache_copying.patch - finally drop python-2.6b1-canonicalize2.patch that was not applied in source and only kept around in case we needed it in the future. (which we don't, as it seems) - update import_failed map and baselibs - build ctypes against system libffi (buildrequire libffi-devel in python3-base) - add new key to keyring (signed by keys already in keyring) - introduced common configure section between python3 and python3-base - moved pyconfig.h and Makefile to devel subpackage as distutils no longer need it at runtime - added python-rpm-macros dependency, regenerated macros file, drop macros.python3.py because it is not used now - improve summaries and descriptions (fixes bsc#917607) - enabled Link-Time Optimization, see what happens - including skipped_tests.py in pre_checkin.sh run - run specs through spec-cleaner, rearrange sections- FAKE RECORD FROM SLE-12 CHANNEL apply fix for CVE-2016-1000110 - CGIHandler: sets environmental variable based on user supplied Proxy request header: python-3.4-CVE-2016-1000110-fix.patch (fixes bsc#989523, CVE-2016-1000110) - refresh python3-urllib-prefer-lowercase-proxies.patch- FAKE RECORD FROM SLE-12 CHANNEL update to 3.4.5 check: https://docs.python.org/3.4/whatsnew/changelog.html (fixes bsc#984751, CVE-2016-0772) (fixes bsc#985177, CVE-2016-5636) (fixes bsc#985348, CVE-2016-5699) - drop upstreamed werror-declaration-after-statement.patch- FAKE RECORD FROM SLE-12 CHANNEL Due to being fixed upstream (differently), removed outdated patch CVE-2014-4650-CGIHTTPServer-traversal.patch (bsc#983582)- move _hashlib and _ssl modules and tests to python3-base - recommend python3- Add Python-3.5.1-fix_lru_cache_copying.patch Fix copying the lru_cache() wrapper object. Fixes deep-copying lru_cache regression, which worked on previous versions of python but fails on python 3.5. This fixes a bunch of packages in devel:languages:python3. See: https://bugs.python.org/issue25447- update to 3.5.1 * bugfix-only release, dozens of bugs fixed - Drop upstreamed Python-3.5.0-_Py_atomic_xxx-symbols.patch - "Python3" to "Python 3" in summary * This seems cleaner and fixes and rpmlint warning- FAKE RECORD FROM SLE-12 CHANNEL Issue #21121: Don't force 3rd party C extensions to be built with -Werror=declaration-after-statement. (werror-declaration-after-statement.patch, bsc#951166)- Add Python-3.5.0-_Py_atomic_xxx-symbols.patch This fixes a build error for many packages that use the Python, C-API. This patch is already accepted upstream and is slated to appear in python 3.5.1.- update to 3.5.0 * coroutines with async/await syntax * matrix multiplication operator `@` * unpacking generalizations * new modules `typing` and `zipapp` * type annotations * .pyo files replaced by custom suffixes for optimization levels in __pycache__ * support for memory BIO in ssl module * performance improvements in several modules * and many more - removals and behavior changes * deprecated `__version__` is removed * support for .pyo files was removed * system calls are auto-retried on EINTR * bare generator expressions in function calls now cause SyntaxError (change "f(x for x in i)" to "f((x for x in i))" to fix) * removed undocumented `format` member of private `PyMemoryViewObject` struct * renamed `PyMemAllocator` to `PyMemAllocatorEx` - redefine %dynlib macro to reflect that modules now have arch+os as part of name - module `time` is now built-in - dropped upstreamed patches: python-3.4.1-fix-faulthandler.patch python-3.4.3-test-conditional-ssl.patch python-fix-short-dh.patch (also dropped dh2048.pem required for this patch) - updated patch Python-3.3.0b2-multilib.patch to Python-3.5.0-multilib.patch - python-ncurses-6.0-accessors.patch taken from python 2 to fix build failure with new gcc + ncurses- Add python3-ncurses-6.0-accessors.patch: Fix build with NCurses 6.0 and OPAQUE_WINDOW set to 1.- improve import_failed hook to do the right thing when invoking missing modules with "python3 -m modulename" (boo#942751)- Build with --enable-loadable-sqlite-extensions to make it works as geospatial database.- dh2048.pem: added generated 2048 dh parameter set to fix ssl test (bsc#935856) - python-fix-short-dh.patch: replace the 512 bits dh parameter set by 2048 bits to fix build with new openssl 1.0.2c (bsc#935856)- ctypes-libffi-aarch64.patch: remove upstreamed patch - python-2.7-libffi-aarch64.patch: Fix argument passing in libffi for aarch64- python-3.4.3-test-conditional-ssl.patch - restore tests failing because test_urllib was unconditionally importing ssl (without really needing it) - restore functionality of multilib patch - drop libffi-ppc64le.diff because upstream completely changed everything yet again (sorry ppc64 folks :| )- Update to version 3.4.3 - Drop upstreamed CVE-2014-4650-CGIHTTPServer-traversal.patch (bpo#21766)- Add python-3.4.1-fix-faulthandler.patch, upstream patch for bogus faulthandler which fails with GCC 5.- asyncio has been merged in python3 main package; provide and obsolete it - Remove obsolete AUTHORS section - Remove redundant %clean section- add %python3_version rpm macro for Fedora compatibility - add missing argument in import_failed, rename Novell Bugzilla to SUSE Bugzillabuild77 1609269489  !"#"%&%()(+,+./0121454787:;:=>?@A@CDCFGFIJILMLOPQRRRUUUXYX[\[^_`abcdedghgjkjmnmpqpsssvwvyzy|}|     ! #$#&'&)*),-,/0/232565898;<;>?>ABADEDGHGJKJMNMPQPSTSVWXYZY\]\_`_bcbefehihklknonqrqtutwxwz{z}~}      !"#$%3.6.12-lp151.6.36.13.6.12-lp151.6.36.13.6.12-lp151.6.36.1   idle3.6config-extensions.defconfig-highlight.defconfig-keys.defconfig-main.defidle3.6idlelibCREDITS.txtChangeLogHISTORY.txtIconsfolder.gifidle.icnsidle.icoidle_16.gifidle_16.pngidle_32.gifidle_32.pngidle_48.gifidle_48.pngminusnode.gifopenfolder.gifplusnode.gifpython.giftk.gifNEWS.txtNEWS2x.txtREADME.txtTODO.txt__init__.py__main__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.opt-2.pyc__init__.cpython-36.pyc__main__.cpython-36.opt-1.pyc__main__.cpython-36.opt-2.pyc__main__.cpython-36.pyc_pyclbr.cpython-36.opt-1.pyc_pyclbr.cpython-36.opt-2.pyc_pyclbr.cpython-36.pycautocomplete.cpython-36.opt-1.pycautocomplete.cpython-36.opt-2.pycautocomplete.cpython-36.pycautocomplete_w.cpython-36.opt-1.pycautocomplete_w.cpython-36.opt-2.pycautocomplete_w.cpython-36.pycautoexpand.cpython-36.opt-1.pycautoexpand.cpython-36.opt-2.pycautoexpand.cpython-36.pycbrowser.cpython-36.opt-1.pycbrowser.cpython-36.opt-2.pycbrowser.cpython-36.pyccalltip.cpython-36.opt-1.pyccalltip.cpython-36.opt-2.pyccalltip.cpython-36.pyccalltip_w.cpython-36.opt-1.pyccalltip_w.cpython-36.opt-2.pyccalltip_w.cpython-36.pyccodecontext.cpython-36.opt-1.pyccodecontext.cpython-36.opt-2.pyccodecontext.cpython-36.pyccolorizer.cpython-36.opt-1.pyccolorizer.cpython-36.opt-2.pyccolorizer.cpython-36.pycconfig.cpython-36.opt-1.pycconfig.cpython-36.opt-2.pycconfig.cpython-36.pycconfig_key.cpython-36.opt-1.pycconfig_key.cpython-36.opt-2.pycconfig_key.cpython-36.pycconfigdialog.cpython-36.opt-1.pycconfigdialog.cpython-36.opt-2.pycconfigdialog.cpython-36.pycdebugger.cpython-36.opt-1.pycdebugger.cpython-36.opt-2.pycdebugger.cpython-36.pycdebugger_r.cpython-36.opt-1.pycdebugger_r.cpython-36.opt-2.pycdebugger_r.cpython-36.pycdebugobj.cpython-36.opt-1.pycdebugobj.cpython-36.opt-2.pycdebugobj.cpython-36.pycdebugobj_r.cpython-36.opt-1.pycdebugobj_r.cpython-36.opt-2.pycdebugobj_r.cpython-36.pycdelegator.cpython-36.opt-1.pycdelegator.cpython-36.opt-2.pycdelegator.cpython-36.pycdynoption.cpython-36.opt-1.pycdynoption.cpython-36.opt-2.pycdynoption.cpython-36.pyceditor.cpython-36.opt-1.pyceditor.cpython-36.opt-2.pyceditor.cpython-36.pycfilelist.cpython-36.opt-1.pycfilelist.cpython-36.opt-2.pycfilelist.cpython-36.pycgrep.cpython-36.opt-1.pycgrep.cpython-36.opt-2.pycgrep.cpython-36.pychelp.cpython-36.opt-1.pychelp.cpython-36.opt-2.pychelp.cpython-36.pychelp_about.cpython-36.opt-1.pychelp_about.cpython-36.opt-2.pychelp_about.cpython-36.pychistory.cpython-36.opt-1.pychistory.cpython-36.opt-2.pychistory.cpython-36.pychyperparser.cpython-36.opt-1.pychyperparser.cpython-36.opt-2.pychyperparser.cpython-36.pycidle.cpython-36.opt-1.pycidle.cpython-36.opt-2.pycidle.cpython-36.pyciomenu.cpython-36.opt-1.pyciomenu.cpython-36.opt-2.pyciomenu.cpython-36.pycmacosx.cpython-36.opt-1.pycmacosx.cpython-36.opt-2.pycmacosx.cpython-36.pycmainmenu.cpython-36.opt-1.pycmainmenu.cpython-36.opt-2.pycmainmenu.cpython-36.pycmulticall.cpython-36.opt-1.pycmulticall.cpython-36.opt-2.pycmulticall.cpython-36.pycoutwin.cpython-36.opt-1.pycoutwin.cpython-36.opt-2.pycoutwin.cpython-36.pycparagraph.cpython-36.opt-1.pycparagraph.cpython-36.opt-2.pycparagraph.cpython-36.pycparenmatch.cpython-36.opt-1.pycparenmatch.cpython-36.opt-2.pycparenmatch.cpython-36.pycpathbrowser.cpython-36.opt-1.pycpathbrowser.cpython-36.opt-2.pycpathbrowser.cpython-36.pycpercolator.cpython-36.opt-1.pycpercolator.cpython-36.opt-2.pycpercolator.cpython-36.pycpyparse.cpython-36.opt-1.pycpyparse.cpython-36.opt-2.pycpyparse.cpython-36.pycpyshell.cpython-36.opt-1.pycpyshell.cpython-36.opt-2.pycpyshell.cpython-36.pycquery.cpython-36.opt-1.pycquery.cpython-36.opt-2.pycquery.cpython-36.pycredirector.cpython-36.opt-1.pycredirector.cpython-36.opt-2.pycredirector.cpython-36.pycreplace.cpython-36.opt-1.pycreplace.cpython-36.opt-2.pycreplace.cpython-36.pycrpc.cpython-36.opt-1.pycrpc.cpython-36.opt-2.pycrpc.cpython-36.pycrstrip.cpython-36.opt-1.pycrstrip.cpython-36.opt-2.pycrstrip.cpython-36.pycrun.cpython-36.opt-1.pycrun.cpython-36.opt-2.pycrun.cpython-36.pycrunscript.cpython-36.opt-1.pycrunscript.cpython-36.opt-2.pycrunscript.cpython-36.pycscrolledlist.cpython-36.opt-1.pycscrolledlist.cpython-36.opt-2.pycscrolledlist.cpython-36.pycsearch.cpython-36.opt-1.pycsearch.cpython-36.opt-2.pycsearch.cpython-36.pycsearchbase.cpython-36.opt-1.pycsearchbase.cpython-36.opt-2.pycsearchbase.cpython-36.pycsearchengine.cpython-36.opt-1.pycsearchengine.cpython-36.opt-2.pycsearchengine.cpython-36.pycsqueezer.cpython-36.opt-1.pycsqueezer.cpython-36.opt-2.pycsqueezer.cpython-36.pycstackviewer.cpython-36.opt-1.pycstackviewer.cpython-36.opt-2.pycstackviewer.cpython-36.pycstatusbar.cpython-36.opt-1.pycstatusbar.cpython-36.opt-2.pycstatusbar.cpython-36.pyctextview.cpython-36.opt-1.pyctextview.cpython-36.opt-2.pyctextview.cpython-36.pyctooltip.cpython-36.opt-1.pyctooltip.cpython-36.opt-2.pyctooltip.cpython-36.pyctree.cpython-36.opt-1.pyctree.cpython-36.opt-2.pyctree.cpython-36.pycundo.cpython-36.opt-1.pycundo.cpython-36.opt-2.pycundo.cpython-36.pycwindow.cpython-36.opt-1.pycwindow.cpython-36.opt-2.pycwindow.cpython-36.pyczoomheight.cpython-36.opt-1.pyczoomheight.cpython-36.opt-2.pyczoomheight.cpython-36.pyczzdummy.cpython-36.opt-1.pyczzdummy.cpython-36.opt-2.pyczzdummy.cpython-36.pyc_pyclbr.pyautocomplete.pyautocomplete_w.pyautoexpand.pybrowser.pycalltip.pycalltip_w.pycodecontext.pycolorizer.pyconfig-extensions.defconfig-highlight.defconfig-keys.defconfig-main.defconfig.pyconfig_key.pyconfigdialog.pydebugger.pydebugger_r.pydebugobj.pydebugobj_r.pydelegator.pydynoption.pyeditor.pyextend.txtfilelist.pygrep.pyhelp.htmlhelp.pyhelp_about.pyhistory.pyhyperparser.pyidle.batidle.pyidle.pywidle_testREADME.txt__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.opt-2.pyc__init__.cpython-36.pychtest.cpython-36.opt-1.pychtest.cpython-36.opt-2.pychtest.cpython-36.pycmock_idle.cpython-36.opt-1.pycmock_idle.cpython-36.opt-2.pycmock_idle.cpython-36.pycmock_tk.cpython-36.opt-1.pycmock_tk.cpython-36.opt-2.pycmock_tk.cpython-36.pyctemplate.cpython-36.opt-1.pyctemplate.cpython-36.opt-2.pyctemplate.cpython-36.pyctest_autocomplete.cpython-36.opt-1.pyctest_autocomplete.cpython-36.opt-2.pyctest_autocomplete.cpython-36.pyctest_autocomplete_w.cpython-36.opt-1.pyctest_autocomplete_w.cpython-36.opt-2.pyctest_autocomplete_w.cpython-36.pyctest_autoexpand.cpython-36.opt-1.pyctest_autoexpand.cpython-36.opt-2.pyctest_autoexpand.cpython-36.pyctest_browser.cpython-36.opt-1.pyctest_browser.cpython-36.opt-2.pyctest_browser.cpython-36.pyctest_calltip.cpython-36.opt-1.pyctest_calltip.cpython-36.opt-2.pyctest_calltip.cpython-36.pyctest_calltip_w.cpython-36.opt-1.pyctest_calltip_w.cpython-36.opt-2.pyctest_calltip_w.cpython-36.pyctest_codecontext.cpython-36.opt-1.pyctest_codecontext.cpython-36.opt-2.pyctest_codecontext.cpython-36.pyctest_colorizer.cpython-36.opt-1.pyctest_colorizer.cpython-36.opt-2.pyctest_colorizer.cpython-36.pyctest_config.cpython-36.opt-1.pyctest_config.cpython-36.opt-2.pyctest_config.cpython-36.pyctest_config_key.cpython-36.opt-1.pyctest_config_key.cpython-36.opt-2.pyctest_config_key.cpython-36.pyctest_configdialog.cpython-36.opt-1.pyctest_configdialog.cpython-36.opt-2.pyctest_configdialog.cpython-36.pyctest_debugger.cpython-36.opt-1.pyctest_debugger.cpython-36.opt-2.pyctest_debugger.cpython-36.pyctest_debugger_r.cpython-36.opt-1.pyctest_debugger_r.cpython-36.opt-2.pyctest_debugger_r.cpython-36.pyctest_debugobj.cpython-36.opt-1.pyctest_debugobj.cpython-36.opt-2.pyctest_debugobj.cpython-36.pyctest_debugobj_r.cpython-36.opt-1.pyctest_debugobj_r.cpython-36.opt-2.pyctest_debugobj_r.cpython-36.pyctest_delegator.cpython-36.opt-1.pyctest_delegator.cpython-36.opt-2.pyctest_delegator.cpython-36.pyctest_editmenu.cpython-36.opt-1.pyctest_editmenu.cpython-36.opt-2.pyctest_editmenu.cpython-36.pyctest_editor.cpython-36.opt-1.pyctest_editor.cpython-36.opt-2.pyctest_editor.cpython-36.pyctest_filelist.cpython-36.opt-1.pyctest_filelist.cpython-36.opt-2.pyctest_filelist.cpython-36.pyctest_grep.cpython-36.opt-1.pyctest_grep.cpython-36.opt-2.pyctest_grep.cpython-36.pyctest_help.cpython-36.opt-1.pyctest_help.cpython-36.opt-2.pyctest_help.cpython-36.pyctest_help_about.cpython-36.opt-1.pyctest_help_about.cpython-36.opt-2.pyctest_help_about.cpython-36.pyctest_history.cpython-36.opt-1.pyctest_history.cpython-36.opt-2.pyctest_history.cpython-36.pyctest_hyperparser.cpython-36.opt-1.pyctest_hyperparser.cpython-36.opt-2.pyctest_hyperparser.cpython-36.pyctest_iomenu.cpython-36.opt-1.pyctest_iomenu.cpython-36.opt-2.pyctest_iomenu.cpython-36.pyctest_macosx.cpython-36.opt-1.pyctest_macosx.cpython-36.opt-2.pyctest_macosx.cpython-36.pyctest_mainmenu.cpython-36.opt-1.pyctest_mainmenu.cpython-36.opt-2.pyctest_mainmenu.cpython-36.pyctest_multicall.cpython-36.opt-1.pyctest_multicall.cpython-36.opt-2.pyctest_multicall.cpython-36.pyctest_outwin.cpython-36.opt-1.pyctest_outwin.cpython-36.opt-2.pyctest_outwin.cpython-36.pyctest_paragraph.cpython-36.opt-1.pyctest_paragraph.cpython-36.opt-2.pyctest_paragraph.cpython-36.pyctest_parenmatch.cpython-36.opt-1.pyctest_parenmatch.cpython-36.opt-2.pyctest_parenmatch.cpython-36.pyctest_pathbrowser.cpython-36.opt-1.pyctest_pathbrowser.cpython-36.opt-2.pyctest_pathbrowser.cpython-36.pyctest_percolator.cpython-36.opt-1.pyctest_percolator.cpython-36.opt-2.pyctest_percolator.cpython-36.pyctest_pyparse.cpython-36.opt-1.pyctest_pyparse.cpython-36.opt-2.pyctest_pyparse.cpython-36.pyctest_pyshell.cpython-36.opt-1.pyctest_pyshell.cpython-36.opt-2.pyctest_pyshell.cpython-36.pyctest_query.cpython-36.opt-1.pyctest_query.cpython-36.opt-2.pyctest_query.cpython-36.pyctest_redirector.cpython-36.opt-1.pyctest_redirector.cpython-36.opt-2.pyctest_redirector.cpython-36.pyctest_replace.cpython-36.opt-1.pyctest_replace.cpython-36.opt-2.pyctest_replace.cpython-36.pyctest_rpc.cpython-36.opt-1.pyctest_rpc.cpython-36.opt-2.pyctest_rpc.cpython-36.pyctest_rstrip.cpython-36.opt-1.pyctest_rstrip.cpython-36.opt-2.pyctest_rstrip.cpython-36.pyctest_run.cpython-36.opt-1.pyctest_run.cpython-36.opt-2.pyctest_run.cpython-36.pyctest_runscript.cpython-36.opt-1.pyctest_runscript.cpython-36.opt-2.pyctest_runscript.cpython-36.pyctest_scrolledlist.cpython-36.opt-1.pyctest_scrolledlist.cpython-36.opt-2.pyctest_scrolledlist.cpython-36.pyctest_search.cpython-36.opt-1.pyctest_search.cpython-36.opt-2.pyctest_search.cpython-36.pyctest_searchbase.cpython-36.opt-1.pyctest_searchbase.cpython-36.opt-2.pyctest_searchbase.cpython-36.pyctest_searchengine.cpython-36.opt-1.pyctest_searchengine.cpython-36.opt-2.pyctest_searchengine.cpython-36.pyctest_squeezer.cpython-36.opt-1.pyctest_squeezer.cpython-36.opt-2.pyctest_squeezer.cpython-36.pyctest_stackviewer.cpython-36.opt-1.pyctest_stackviewer.cpython-36.opt-2.pyctest_stackviewer.cpython-36.pyctest_statusbar.cpython-36.opt-1.pyctest_statusbar.cpython-36.opt-2.pyctest_statusbar.cpython-36.pyctest_text.cpython-36.opt-1.pyctest_text.cpython-36.opt-2.pyctest_text.cpython-36.pyctest_textview.cpython-36.opt-1.pyctest_textview.cpython-36.opt-2.pyctest_textview.cpython-36.pyctest_tooltip.cpython-36.opt-1.pyctest_tooltip.cpython-36.opt-2.pyctest_tooltip.cpython-36.pyctest_tree.cpython-36.opt-1.pyctest_tree.cpython-36.opt-2.pyctest_tree.cpython-36.pyctest_undo.cpython-36.opt-1.pyctest_undo.cpython-36.opt-2.pyctest_undo.cpython-36.pyctest_warning.cpython-36.opt-1.pyctest_warning.cpython-36.opt-2.pyctest_warning.cpython-36.pyctest_window.cpython-36.opt-1.pyctest_window.cpython-36.opt-2.pyctest_window.cpython-36.pyctest_zoomheight.cpython-36.opt-1.pyctest_zoomheight.cpython-36.opt-2.pyctest_zoomheight.cpython-36.pychtest.pymock_idle.pymock_tk.pytemplate.pytest_autocomplete.pytest_autocomplete_w.pytest_autoexpand.pytest_browser.pytest_calltip.pytest_calltip_w.pytest_codecontext.pytest_colorizer.pytest_config.pytest_config_key.pytest_configdialog.pytest_debugger.pytest_debugger_r.pytest_debugobj.pytest_debugobj_r.pytest_delegator.pytest_editmenu.pytest_editor.pytest_filelist.pytest_grep.pytest_help.pytest_help_about.pytest_history.pytest_hyperparser.pytest_iomenu.pytest_macosx.pytest_mainmenu.pytest_multicall.pytest_outwin.pytest_paragraph.pytest_parenmatch.pytest_pathbrowser.pytest_percolator.pytest_pyparse.pytest_pyshell.pytest_query.pytest_redirector.pytest_replace.pytest_rpc.pytest_rstrip.pytest_run.pytest_runscript.pytest_scrolledlist.pytest_search.pytest_searchbase.pytest_searchengine.pytest_squeezer.pytest_stackviewer.pytest_statusbar.pytest_text.pytest_textview.pytest_tooltip.pytest_tree.pytest_undo.pytest_warning.pytest_window.pytest_zoomheight.pyiomenu.pymacosx.pymainmenu.pymulticall.pyoutwin.pyparagraph.pyparenmatch.pypathbrowser.pypercolator.pypyparse.pypyshell.pyquery.pyredirector.pyreplace.pyrpc.pyrstrip.pyrun.pyrunscript.pyscrolledlist.pysearch.pysearchbase.pysearchengine.pysqueezer.pystackviewer.pystatusbar.pytextview.pytooltip.pytree.pyundo.pywindow.pyzoomheight.pyzzdummy.pyidle3.6.desktoppython3-idleChangeLogNEWS.txtREADME.txtTODO.txtextend.txthicolor16x16appsidle3.6.png32x32appsidle3.6.png48x48appsidle3.6.pngmetainfoidle3.6.appdata.xml/etc//etc/idle3.6//usr/bin//usr/lib64/python3.6//usr/lib64/python3.6/idlelib//usr/lib64/python3.6/idlelib/Icons//usr/lib64/python3.6/idlelib/__pycache__//usr/lib64/python3.6/idlelib/idle_test//usr/lib64/python3.6/idlelib/idle_test/__pycache__//usr/share/applications//usr/share/doc/packages//usr/share/doc/packages/python3-idle//usr/share/icons//usr/share/icons/hicolor//usr/share/icons/hicolor/16x16//usr/share/icons/hicolor/16x16/apps//usr/share/icons/hicolor/32x32//usr/share/icons/hicolor/32x32/apps//usr/share/icons/hicolor/48x48//usr/share/icons/hicolor/48x48/apps//usr/share//usr/share/metainfo/-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.opensuse.org/openSUSE:Maintenance:15440/openSUSE_Leap_15.1_Update/f2062f5aeadc2f86544b9fd5601ae64c-python3.openSUSE_Leap_15.1_Updatedrpmxz5x86_64-suse-linux   directoryASCII textPython script, ASCII text executableUTF-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 11python 3.6 byte-compiledHTML document, UTF-8 Unicode text, with very long linesDOS batch file, ASCII text, with CRLF line terminatorsPython script, UTF-8 Unicode text executableXML 1.0 document, UTF-8 Unicode text  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRPPPPPӝ:eV]utf-8d652992b9374fbb3e0307e11e6433d236178ebeb8e573e4444e7f4a5f4df7871? 7zXZ !t/P'1]"k%pa ~SРQi.Dri *jӹ.qq=6K4KI!=,S0d꽧h淖<րy(D ["]Jk8#1:Aݭ O 'D/e-Z5'9{#xށMb+c~z dn=0-݁6bz8w.<:<4ҥ]Aj?'=3%H F}=h-qeѷ}WlUԸٯ,zk:V{Y:.{=r=77ms8\knjY1˚}R 9{M;'*cuۍ׍X_,زbH}F%a1#d;ʂ}6)8RlQT=i\,D`2]`ȓ9Bx;?JJN/NzjN_#ˀlKSi:ѣY~˙R/{qҔXJulyk;wxxbh!{B4Wv!C*sÂ;Ry4Z6)ǯK)L6e-Q1<͠,x3\cwN3h9͟Vl' 2wOCŒ&, ^jT2Ǎl:Ӛ ?q֪`( Š )(/`iV6E"2G| {J!Z>7J@jt‡,k>C`B5a&.~G\4X'3tj7aLLl714y6P|b.nmuy$ր`ޱXф+i2ж<Kе3 bsxt8.gE|*e';+YZVZa*,85g΁͢PU `~#h7 ¢( xh-XIk_|G.c( )FN}OZF,&e b+bHD)-X uuфd]Е]2Lch%7S`ߕ?`ު.)LMȡQ*ftVcZTz.ŢցU[ .YmV HBC9}{ Hoxw\=լ(!b>!u7)pjeݻ vSN(MkZzvI!sXXp_>c>-6pPJp6c.iOn*!qUBm0*t'O[_1 B v~HzdTG1KZPЉ<>x"ݷ8X䞣P"/$;6`B5e8n'Qd\vк":SwB8؇2 J&/P7_Jʝ_aR(}qW23PT`~<92a)uԝnɥ@2;lP*3vFQ F?w@dȲIkH$'RJ@Y tf|H>~bt4 dhM̢U(#FfZs8wP? CݥgH:3+22p])X!z;(j@.QWBRpJTZ601.wmТ=J--#=9Lh-_F9-H!Z} MOrE:*'oWlyqz^)a+R8jڱĄ6;!an?5uwx-N>S һ,)»bas銼G;2qFn@ϛ !8%ND^ $J*7WS/J؃pԢ_=!ǖ4s {ߠ+.ymZfaǵa4Iا~/.!fK*[|nHv QPCeY&_g}x վPuR5P{@Tp߆'c7P0MB&d ֢lp%ohw]NIOWL).a7Ԭ9^CG(pl䵪Ǹ8;aI8}(CZT:rL&C<1ZǢm}E$pNegkzaCkhP(9rHT8uJ,8#810AdU$w|[VkJV%#UnDbn_5K^ mTJ0_cev{j,Y%nm#J[M. (|Z4JE+(6=LT Ilzyx>3zr2ڗvp yoJvgh_|ěHJ"#(&\-mR֭|MǕ;+ܫvWGn&ޚp]' ,@#zn̸#n'/>t׺a/ n34$UEx=k>3H݌(~mjDAPn񕲲O_Vj uh'zrF{7RS879͘x| ʙKK+I\}76^yJH"kP1s\ߛ+Zp;vƸ *ܝv"t-{1 ZzAs4{yrh5FrR&*ԈqtPGƳ ;6Rzx}qBy]D0U7gq %!hUP q, @/1>6ݵSQC!T.FDHrv,3ֽ y['8$c^iXO B+j8DR[ヲH -Qj[>*l[S^,SE\C `ʛEAz]a_N}'ڳC-KҷIq.oI# 9A'Zd2=NhjaUODpFWt`C]̗[ 6U62@{"I= Em`y7:;>!UN?L.)N2{8G#קqP\`aڷ o,AS]K+KxfhR8X;JJ}^_$0= Mo0V[45z 'ſq}1` [r5G˺A®?;ꪹ3Ĭp%#'YhYa OЗؐpV .]FzФuT :񢩻p_nDNZw|]Uw\s};f2TmE)KbV}ޖ:}l a@k pF8v eW7FXSbvoXoگٹ$4lNaCgbuymI L;PɵNqDiD~*Mp3)$}ob=!;ɭ5;;2~EL(%-*jzc}>zHr [qu9m!M*`K"${eHWGj+E%}Rfgu-Vzu(i8EeG(E'/U7nO7XtMIv~wqi n6'{jXC|: 5oʍabڀ,n8d /> /w&j%HATJEor/lJ/8<(-t,XZ)>]ٻkc1p*j3B_i(q9@p?:I Ѥ}B3sH^=+&Bj߮, t2[[ ReJxRp@̒ e1YL,Gz>aPc"uǐNr0H'9-xF҇^ 9hD<~tŽv{ueqe jܯGFYOqMu sIP0ܷWxvQ 'm}T( )ڛ%~42L8$jr&UyV!i̖/:Mi6\qttR_?WX9 &A?EݱȄb$RZ ɇWx F=] CaJ9M]v%o|cAau.)4W ACrdi UO ŮQ)uT/s7R M1CWeENfzЍ_DꆧH {A-dwY3跍YK(^ gg"H;"r`B93^DoD9i} uC٫|?d]Tlc([(ckk?7c>7 5 uZD qYUs;E~tyUE >4bj y*ľo)8-7̝ܔ>;Q2Is}F _ᦂ*ehXw]Wt$ di*v"7Uظr9_A @HsWlz;Y 0+Y <؅yw)hb \I m2DVWܲXh⧀w 'X;mlDD!Qg`&:d^.#*1I,$9ERR&asMd ^fLy͇$`+;75{fL;`U! oe ~7[2Dݣ dW 5k%t{FS/e'!S*5N5J6G@x *,>ViݭCM7;e#p-!ડLUXH]Nʄa)+0ib$Lȉp۸cŦ^=^ߊ Gր'v Û:l!D[q4H;l 9E8bgj7f:&*Q0_ހDj:\-\OX8|z';_|u oP %R,J N;5㍪pO(BY_Gw[ŰwBĀ̹ۧ)җ֯hi ;SS}C\pBIt;GݸA@[|ԛ+4X8jظ KK4DqV5ΕmۘDqBuM6_/1 4+R@!a. pw$%P4X9pqu p۪0otSs^6 먤@e$ tf;f ޓ^sD8hC]@6|^8iu%(? ?$ֈ\!l^]dtLq[ʮ+܎7/=kD7]9&ir}Y{ݜ7hp֟У̀m&\Bt>7#RXGww]dʯWt$6V_(CYL>8 38 !r}xKP5N $Ͼ_! lx_B2|ZX,Ȏgx(5sے-ѓ~] Bs;r>-O0jwc-쌷  O#Y)Ƽ?I2Y2]jI fY`FP.EH/Gt13>q,*͍DSOD:o ҃b~؃5^Zm>0Y_\BRm%`=,<75=bT͑(H*=chURpi5~1 E1sq=k?v7;-K JrrN)xC-T_.r5ki;pÇք=$7;v\rTKxUF;h=+jEP z.yzI~誕 =?? {C(o^̛(tCoj%;nQA}ym8ɫ=Hp6ʗwa"VRvBE @b->jY$[IHvnr|I% Auj0X~sxvܪ.]j˱P|W9{R:7}qa?691o[pWAFT?WƆBbw9v uwQ=E}f]3#0~rL :]-ͬt9}!hzü_.Nцcy+ YZ