python3-idle-3.6.15-150300.10.75.1<>,Pgdgp9|uD-w2{Yj$lv6Gx^azK N($Y.2w9Mϟ5NhØo0X@/#-=(RdZƠbU|tsGi@ḄoO  i 99c*M΢z现tmuI0c8}{;(FOFj##QWSYL!fثWQVPS~Db|SǑ4ByT@iwWP{H=B_>A?d % V48DHa $ d$ $ $ $ $ $$$€¨$8    (78@9Ϝ:نBnFnGn$HwL$I$X Y$ Zt[x\$]$^bucdàeåfèlêuü$vLwL$x$ylz4DHNCpython3-idle3.6.15150300.10.75.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.gdgs390zp314>SUSE Linux Enterprise 15SUSE LLC Python-2.0https://www.suse.com/Unspecifiedhttps://www.python.org/linuxs390x * 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큤gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcg6g6gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcg6g6g6g6g6g6g6g6g6gcgcgcgcg6g6g6g6g6g6g6g6g6g6gcg6g6gcg6g6g6g6gcg6gcgcgcg6gcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcgcg6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6g6gcgdca2a2a2a2a2gcgcgcgcgcgcgcgcgcgcgcgce75df0b77ff61253be457af636d5eb7c55a3ff2b6a733beea844d2b294972ebfd22eea091d1f8f7b11a320cedb5acd822469c0c7ad3629d1f50f6fde6194593dc263472e71b9b557264dd066c5f06ea76d0935d25b19b92e9ac7bc49de82f15763485c7ce263c2c8e1076c52d6044dc008a75794aefd670dd259e75b1288c343251aa57bcef1bc9567a229154ee1370395c03cc241fb814555731338d2b695aac7a0cc61079c6e2df53457e63b413e0389f2c0061eb55e80229da932c8f8dbd61abddb32c2275993c297df1b56ce5d8b34eda35f823dfc27577c2b18c26efcf8531067a78ad392f25631aba1d885f40786cf5f47854577162c9f90ff1f33164c7c98d566a13fd599d1c11a375f387fef69b6c595c4f18c5d88c188a860be0e55bfe9c9b62bf4a4b1cb8419282f78bc98f4cde453a0d6bbfce8a7b76177a1af94ae74eb8119aa88532734a84dd782830f8f5cb4dff01cfa4372b1e4afa35653134ad97f34e64abd93e1e32aff017ff8914e3204a76044f1486bc9fbefa07bfdbb26999728e6eefa83b486188a3af6900a464741307e7e4fbe4c6bb030eb765042963d5f8d5d1259e9874a263a6621ca6dd1d57608faa5f28f7d61f349583e07814a404d5bcb1109a33329f0e099fa8c07a8b02401da4e531bbc6de733a90e45aa37484901eb40eefa846308e1da3ff6f240ea98f769a2afc3cf4fdba00327ecbef9b54f0a6c4a21daea6f41263e8df267367f5b491094bea56179a9c3b4ebd65afc11c3d934f8de7d3285f616d0a9129f8113b158157501829c2e452101d067a49a59e2abf1840156e9db8f85a38822fd56ab79a139eb95ec86f1fba1bb87326bfcea17dee8413652327d3d1f7565ac6b32b392a5e424947ede2088e27600346909878665b07bcb76fb3222ea1b4947a553ad0af76fc12b31651d1707980791dca932fd307c4bdc223ae39165f413b2a530b2dbf6323e8a272865da6627535ea3c7d72d323257e4c4c095b611381fd9f336d80fa7ae9104e7b03d14a7df2d9ae9c89a3b513501ebace8e428aea68dce39d0af9f29196e08fc9ea49c99605e79e72fc5037f367472c50ae104f86df35c0d5967968e352d7ea2b944f5909326076bf88e0fb30fa0ab5d0dc3030442ed92713f34170336c4dd2623723dc34829df893f8058df4fec56eb20ff67ff84c86fd3d9697e2384c5a290ed696f6d3187aa45f8f55514d26791588de02fe685af0ab129174b32ab93efa39faf6140b6795d9dce6179c16afcf7361d8d6a52b4775a764b0af025b17ce4ff1eded3fb813558fac8a440a3964f6594be96000887585c02ec0fdbcac24103592c2f87b4da5432ddce6179c16afcf7361d8d6a52b4775a764b0af025b17ce4ff1eded3fb813558fab1d4c0e0c00a3f8f02f51cf22a585f747700d1b1766d91c0382b9f61341f26f7a3934405443521661c64ace6bddc1089617caa93396e3767e1ea5a7117b1ad99b1d4c0e0c00a3f8f02f51cf22a585f747700d1b1766d91c0382b9f61341f26f798f32826827189819d95258279fe8c5115e7f958feb03dc6694d2fdee08cb2290f09a3b0c3ca564fb9f4e41f044c1fd96968d135e589095df9ac7ae55218922898f32826827189819d95258279fe8c5115e7f958feb03dc6694d2fdee08cb22977625e885767e0f42de5c8eb146685eab75603682b24810398ae32891fc667e3073cc38a0f01f280281e32880f29b8b12c065a62a44ecdc45e46e0a6213599a777625e885767e0f42de5c8eb146685eab75603682b24810398ae32891fc667e364cae04f16392c84b60c44a70f41fa33637607cb2fcf1d8d7f01e16f0cdfb04fc2ad0feeafcd51281d2722b6d981eb1f51ad4a5a34e7e23cd8fe413b437e8fc856e91e4d01cbfee8f90dcb2b4eb28970845b0be99054a2382c7e326f1294d496407d384abacc84cc20ec34d652b58f51dd59d344273b435ef582b758dbf4fce4905113add83a80fce0ff5aaa9eb0b7ca8daed7fc6b237fb4d9207c8efea5d03d407d384abacc84cc20ec34d652b58f51dd59d344273b435ef582b758dbf4fce418c43b0330d6dbd1fd1204fa95f01356b379900e519cf03c8c54e9644698a36e0cf49f7bed7dcab7dedd9ea7f25d52af534073c4b5e90c9a15f61a51e616833d18c43b0330d6dbd1fd1204fa95f01356b379900e519cf03c8c54e9644698a36ee756320c4796bf5cfd6c8e0f22c85bdc91c673213987fc101e85f5b727b9621c800e504493fb8fe897134d15d5699eba9e033c46f3c5cb90530c48ff6d0ef8dfe756320c4796bf5cfd6c8e0f22c85bdc91c673213987fc101e85f5b727b9621c49644af21ce5b684ba371de7634098c55eac976f6423e70962ad64778d8143586375f64421a09083a76765ecd7145177ac99b6442ab2b6daedb450f3fcdf985949644af21ce5b684ba371de7634098c55eac976f6423e70962ad64778d814358387643a40d2aedbf8264b0b90b6fb3e46bffffcd799b044d360cc6bdb2d3911dcf47f3d13518b7e2d3d15d751c088bd1cafbfd9def22302fc8b7768b37819eda1e3e3a533134a1016fce3261c2127051e77e567b9b5c50933b5c8daabac71bf218cac3183de416a0e116bb82f9a068b53a1d5886ed3a353d59962cc3d54a8d784c7e61d1af3b6e278bc426d92fb9da6ff4c5ea0b3e9c739271bb33d7eba25f0c18cac3183de416a0e116bb82f9a068b53a1d5886ed3a353d59962cc3d54a8d785357b4f877173d460dd749e8dae179db7f77e7c61506a4d7bbd3c355bcfe3c7f4f4186fd0e88cb001acd57e7a01b16a46f38372d38671b528e251437a43d48df5357b4f877173d460dd749e8dae179db7f77e7c61506a4d7bbd3c355bcfe3c7fe3b7d245b9b1d7bb0d08da6039d3b8bef303cbc20181d44881a07b73b39a8af279c2b9459689aeb6fc95b24fbcbe4b8dca4fd1536f2c5d42bb18f88e8784e6e4e3b7d245b9b1d7bb0d08da6039d3b8bef303cbc20181d44881a07b73b39a8af2881d3779a2a288c798475d612e1dca203fb03f5792abeecab5afbfe3326088ade6240078973478bc8079794f2c84bead1f5e199fe9962dff1d6cf5d0ce3545b8881d3779a2a288c798475d612e1dca203fb03f5792abeecab5afbfe3326088ade75be81a35951d879d4b95a9d30fd46e1d391182de656367997402f94a2f981aac1bc4332ba3bbd0c0cf26b8dcb93d0e3b15044b1f53f6e3c0ae3e6801c378a9e75be81a35951d879d4b95a9d30fd46e1d391182de656367997402f94a2f981a936f463af5a0abc792b09f9fdc4e99212ec99485949814105e14342488ed9a06cf5254080b86d8282a911e28c7ee7609a6d10c0faf0796123979b560f26be9674682e53df51ada8ab99ea693edce85dff877683b87ff4e12fb0c31af470e91e369cb2332ebbd5edc97de57ad88ec25793cfac4b6f0f7be71e4ee8e9682fee7f369cb2332ebbd5edc97de57ad88ec25793cfac4b6f0f7be71e4ee8e9682fee7f369cb2332ebbd5edc97de57ad88ec25793cfac4b6f0f7be71e4ee8e9682fee7f3866eedbe34c9e494ee8f5331df1f0f46251ac037ac02d0d0a1a6d16b81512861866eedbe34c9e494ee8f5331df1f0f46251ac037ac02d0d0a1a6d16b81512861866eedbe34c9e494ee8f5331df1f0f46251ac037ac02d0d0a1a6d16b815128613d6198e748d7b11e3862c7defad123b0f53467a230e7110a141d3676fb6ea146ba86eaccf5396f10101eaa50830b6f6a78c5ff94b1b9284076f4a294c0edc8343d6198e748d7b11e3862c7defad123b0f53467a230e7110a141d3676fb6ea146e892f2380f114590f9c33bd8e46f385e831367191e505d0585f124214b6f7fbb7de75ec24c0435cb87bf2a7c106b32ccd711ec6f800069fa54d1f598a611cbb4e892f2380f114590f9c33bd8e46f385e831367191e505d0585f124214b6f7fbbfea30240402fbb6607be839bc50ff41b562f2385b48946178d0c35f022c847c19e8bdd29851b520d289f5850027dd1ff9cc6245a67ad1924052a8f43088688c2bf08353d782b04375b59140022f2f12a414a86b5f9a1495e707668989446f46841508d1c38d6d6f10a3d1530279fc4a7e8c382259c5a805b79ea58c0a82a034a6b5d862f8a9862c6c7262d45738f2ce6f40ef2bf7c65eb2cf3ec6bfa5eb72b918f5057ba76b74fdb9c7dfeab11905e8aca58dcced56f09b6e37eb945e73e3e69896cd686e4eecf28d18d032a1859557879a39873850503cce47e49d63ffb0310b2cff9e7248edd1ee8d259a565781da4f5b7f9d1c6858cbcae6acf298736431f896cd686e4eecf28d18d032a1859557879a39873850503cce47e49d63ffb0310cfbda91bb88641489ff5e1eac21696915ceda6bd744dbe20723796c0613d7c97db124428ca0661e394d99ecfb837f55a50093ebce63c9b85d9e8247ef056039fcfbda91bb88641489ff5e1eac21696915ceda6bd744dbe20723796c0613d7c97538bad963808ad310b4ad3f9cdb65603110dcfa8a19822eeb3318cc5236539794be62de95e05369314bacd20f2a83c824aa0852f2144e8e0b089103c08f90e64538bad963808ad310b4ad3f9cdb65603110dcfa8a19822eeb3318cc5236539795c460864d7279b9ae05c077f7fcdef02ed2ab3b83cbabc53f4beb8427ff75b8529658b33e5d550d8572b9d76b95836cec3678eada5e5ba01b26c9791b0af27445c460864d7279b9ae05c077f7fcdef02ed2ab3b83cbabc53f4beb8427ff75b85e56f40b05f0531e6f38283faeecea0085f99f3e7081cfb83258a17b3440c7402d1aa12e1216c0a3cff2f333a79838b9d849b4fd29e1a4eea030f8529548d9fbce56f40b05f0531e6f38283faeecea0085f99f3e7081cfb83258a17b3440c740224bab70e8df496160813abc32e025cdf9b774475618b4eca26f7e502696576ae24bab70e8df496160813abc32e025cdf9b774475618b4eca26f7e502696576ae24bab70e8df496160813abc32e025cdf9b774475618b4eca26f7e502696576ae708696825799ca7afdc291a358bf1e50091364539d441ff5d04468a7bf5310822f856dbc2664587407c93ec864398cc5c0ad0c7262074e7339090d6e54bfa116708696825799ca7afdc291a358bf1e50091364539d441ff5d04468a7bf5310820355e3bce20fffce66209aec9e5d8fd16b4d6a215fda3e2b101049cc973f2775951fe3444a34aabca700fe1143d78967db7a9fe5820ab9075fbb49023419bde80355e3bce20fffce66209aec9e5d8fd16b4d6a215fda3e2b101049cc973f2775f1f779e9bdd94cb39122cbdd040523650c47ec3ee56db99ba8d23c28f3b46402592311de04e775f47aa9d7e4be0a50d6b77efd41c08e26e099c48be7e023a6ebf1f779e9bdd94cb39122cbdd040523650c47ec3ee56db99ba8d23c28f3b46402cacf5351d6dfde0ce186afc6d90906b0cff76837e953a4bf1a086133ad2568479f0bd196a76b666fd159791b5e72305f6bc689762600da2a7846fa527b3d100b7b73ce612069adde9fbf32522967582e8e0f7b6546fb0c5a8b0227e9b2eada011d1e1f58a59616b099f50fd6ec51f9771a45072eec25f06305801912f8c434c3d7ae205432077f3460118e1e5537f3f0f4ba032f54774b294d1474a15c16e0b81d1e1f58a59616b099f50fd6ec51f9771a45072eec25f06305801912f8c434c3c2b632143fea441ca8510a191afd5e16b13c142aec8adfcac8224969038335af7d96890ff82045298d6b7dc14599a1c5e60cfa74f0912cce10f65fa4ea6c00dbc2b632143fea441ca8510a191afd5e16b13c142aec8adfcac8224969038335af2235cf0e8ba395cd4db3533ad938188784b014dfc399e66b458c6ca1940381bafb8d278aabbebb81342b45369e5e306e442a1d04640e66f1801a57a9c3bd35da2235cf0e8ba395cd4db3533ad938188784b014dfc399e66b458c6ca1940381ba41c8f05b786423abde659d9b14cf858592043a7c330e9bc8321a60377ad291496fc2f39215c301af3ae6d6ce407a4addafd913c640a5873b523681636c5a72a741c8f05b786423abde659d9b14cf858592043a7c330e9bc8321a60377ad29149ddceed95bd756f511ffd667df448e550ec2cd777dae9822d92d2d96c8c01fd8cddceed95bd756f511ffd667df448e550ec2cd777dae9822d92d2d96c8c01fd8c23c868c6b86e5fae59c616a5aa2ff465b15ea7af4e230a3616e15be3d097f1da3f5cd3c07acca085e267d70cf11bcd7d26a8ca027b7396754595624076474565eb474ab20477f019da63fd745f2191ff38683a717543c8ed9afa018a92442f7e89e4d893574b6c7c3a2d362a3083932024f1a7e537409259008608db8c8a764d1f8a82c8d97b6f5dd6856d77670194875a9a468916f92da0501b894c46d41598c7277551840d6fe2670f0a8878c65851c0c9b973682e9d44f81200e4bb9203723ebfa70221029b9392aed9f6e9801b00c9bbf7958ddc5ef2f9259440d56c9d3953aeb20eb34b3dcccf88a30d2946e83d52f948005e1ba588751ac7d91c046a0720ed1b5cdee8e2e3ac85f59e2bf013ae253afc5b866c8c0ce7b9609d3bf6d8b153aeb20eb34b3dcccf88a30d2946e83d52f948005e1ba588751ac7d91c046a07ccedc012ae768dc983b28912802d4a0dde83d9bb6e582d4938d626cfe9ca1b08596e9f4afaabc5af66d76267b03aa927dc72b6a0954791cd7edc1a2771b7cbbaccedc012ae768dc983b28912802d4a0dde83d9bb6e582d4938d626cfe9ca1b088515a8857401124b639a266f1dbe4b7d0a72c40bbd7f8c561564ea9044e7d0448cecf32ae3bd73cb29c4feeb422a04f130fd6279522f6edb8dd0ea23a35229068515a8857401124b639a266f1dbe4b7d0a72c40bbd7f8c561564ea9044e7d0446dfd135f8213633117f9c2257f186fdd9e3709e2a661a334853b5d7f005de02570d5a8024fcebf560ad504f1ef2f2912d3332a8f700092735caef29430c0759c1be70a8bc664c86dd7672e7afe0a9046a46e7f387c84d99a6795fd728379a38e1b5978b34e9c570637bf27162ba347bacc0cee508f9c36b0c6456d0cd15cadb2df090c955c0473629d16e89083204087fd029652542455a4b00272cf6f7e636f1b5978b34e9c570637bf27162ba347bacc0cee508f9c36b0c6456d0cd15cadb28562107717e7fad324becee0056dd4f5ab479cd11308373075eb6b1363a56d617add7f0988967721d35e6e24a84705b357aef5db06ea21c0120387e2204c2c7446b86759ea009c9d68d39e874d0bd8cc87c4754872e90d1c4755256d5b12d825f0281c8164f3093aa1ccd2eb31afbc407bd68904c06f7b6a2696671f09f7f40ab6b87f5e05940a8d813da8cbe91fbd8bd759bfeea2d015f3165d24397efec64ff0281c8164f3093aa1ccd2eb31afbc407bd68904c06f7b6a2696671f09f7f40a9e87665394922408d1195e8f2ca33f3094de4c88eddf01c3e04ffd2548b5fc449e87665394922408d1195e8f2ca33f3094de4c88eddf01c3e04ffd2548b5fc449e87665394922408d1195e8f2ca33f3094de4c88eddf01c3e04ffd2548b5fc4450c9d8ebf6f93a03e2b57b7e86717d5b8a262c5a943364c56a3938c13408665d8325309d0e86230d81d4de356a35e5ce85ec1e7c0f39ba6f91b93ab20dcc420a50c9d8ebf6f93a03e2b57b7e86717d5b8a262c5a943364c56a3938c13408665d0273f54736f4d14c2bc7700d7172f23678af17dab1445cad97c41015b20512121591dbb6d705142c165c91c11635b7a2baa6fa6b93afb78f968a8ebef2da58110273f54736f4d14c2bc7700d7172f23678af17dab1445cad97c41015b20512128e01f86ce2b649a42cfa2ff713227158e09530a4a79a1b42a8eb274924879e919eea32401211db1ee699a6e39b4e50ce851e2f1d01eefc4c21afd9a9fd47e8298e01f86ce2b649a42cfa2ff713227158e09530a4a79a1b42a8eb274924879e9112dd3231995514306f898dd72cde06f1831c511313c0f38db97371989f47b7b11147b97eedc77e1eea3f4115efc77a4e30d6ae4a271b0c79ed53092da812bc98451d613ce5aa35d10554826feeaeed95c5e6ff4447ea0fd87fbd2f633eb978e0f4cee819d5323e049785d3f221e79e956dc54a7f066f5f89a5fcf310f3f26802f4cee819d5323e049785d3f221e79e956dc54a7f066f5f89a5fcf310f3f26802f4cee819d5323e049785d3f221e79e956dc54a7f066f5f89a5fcf310f3f26802ec8cfac0b8314596a3a327ef376730619827bd9a31830e0ab3222e6820c3415eec8cfac0b8314596a3a327ef376730619827bd9a31830e0ab3222e6820c3415eec8cfac0b8314596a3a327ef376730619827bd9a31830e0ab3222e6820c3415ec48543663218f47813f4211de5e00aee27613e5873598faa1d2fdb3be3e965a56a2ac5653d81747552a066aa2a0f0697ae0aa6953d5566507137dfdf5ab78b7fc48543663218f47813f4211de5e00aee27613e5873598faa1d2fdb3be3e965a56a6b5d3a6547865528122133692d1b5319604c82a42de81804682e1b44f2b24792918ad4d05cda89fcdb80a0669ee5c692ef0e6dc4d714ebe72b029684cf546d6a6b5d3a6547865528122133692d1b5319604c82a42de81804682e1b44f2b247d4fadf1e8fd03d3266e421d27ab45ad46c95d76f14c69bfb1396566204a7e6f1e8a80697adaea194b73559517bea001b3877340fe8519d311a69804de9f8cbadd4fadf1e8fd03d3266e421d27ab45ad46c95d76f14c69bfb1396566204a7e6f1e953882cd62a3b6b5d650d4e86c91996a20dedadb2075cbd32743e81f629d694e953882cd62a3b6b5d650d4e86c91996a20dedadb2075cbd32743e81f629d694e953882cd62a3b6b5d650d4e86c91996a20dedadb2075cbd32743e81f629d694fe0c63aa69594fc4ca91c189697b5ba03dc7baab4ec525bb4824d9f60bf62b4cfe0c63aa69594fc4ca91c189697b5ba03dc7baab4ec525bb4824d9f60bf62b4cfe0c63aa69594fc4ca91c189697b5ba03dc7baab4ec525bb4824d9f60bf62b4cbc68c44edcf2c3a8028313ba0e2656b6c9dfd21a348f74f92914e81dd74c971b99d32718e2935084958d26f1da8d6f68de74b7f8687760f8d9810df45b75d2a0bc68c44edcf2c3a8028313ba0e2656b6c9dfd21a348f74f92914e81dd74c971b936f2edf9d34ebfeb61e024fc514d09e5960f7fb6c5128d557cbf74028e7d879dcc0c0021ec9fdf046ae61cf7731f4eacd5cb7001d2a4c8122d15a2def525ad3936f2edf9d34ebfeb61e024fc514d09e5960f7fb6c5128d557cbf74028e7d879e614f387dbdeb17760d9bb4cd50ae3091545f1285b9be0f5ad4b9a8c9eb930e96cabe6c0114a39fc378d91238279ed629b1a1ba65a3a9d792b4dc75b318c39137ffddac56236387d1143a42f07be881b625621be976faf3034b6f932fd79fe53c8eb28ef7addf5a664a7e3addfbfebe29040a8695e1db515828305aacba2ee4e28e8243b6a3f3fe92243ad474f808c12dffe608019627d48bc2e4d7b39185b455d580f5399568b375efe24fb7db6218d9264822dec25adec25c6d9640b854b65020cef86b5c31e96a3439d09252183f3eef21d4a103a4a909538bac3d0f1d4e4de42667bb690368459585dca6bffecaef498217ff74b9266cac74bb8af98e26730caf7524234fb85e08f01beb716e1a34aa233051fc0c3798a6b085aeac5b4663a7a35f40aa5d22c7fa74a889838f5c69631eaad0a9f4b70e6a439999d419630813aa76a1d93176dc33843b9e5bd4e6165886162d91b19e080e9c5adb30c05da1fb2a050c4e7c354b1434063e2a661edfe08852aa8a23a6f1621509832384856e9e38f992c807348eec7ddf175025ec6c149c20a7c2f597c99352caaa03e45577142ec668ee870cc3b09b7ced4a0592a9a2da5f7ccf8a314b1ed906fd7a30248db8add0abc885fc629c6746aca77cd40026b2dac8d7edb93f1fcf6ea9d28334f4e583b43fdf9bd4a731d70e074ee597aba03f3c8c36302bdc7e74650fb1fcc115c2cee869bed6e5169e410c4cebafab702449b8743c6614c0c90c85130b1ec7d1595e2034eaa93c2ca61854038e64197541906b3402c448b176e34a5af9b6b09b51f28a5d49a8a6775fad9bb944b47d65da733908b432b6cd0038ba99e7e3975ffecdbd3f9ba0d71c6e59984f8384817f0fe5b0ac69ba62e1e40a31faf596a6c26f690842feab34887e9863ee013180f93949b36cf3ac9643940968ddc1acb443ea7600c9cf97163c89799bff4dce3996f68fa6efccd4f66eb3867b754762f8cceb2fe1e3de8fad3c95d83407a829abcc028b8b02f85e4661c9c934129af1ea98ee037eff39bb5253b3bc2048ba149f43deec680fdb1f7dde421d9514ea3b32ba37b21cc6acb2a24ace550fc1a55852ed068fb2ecd13011ffa3ba5291b7346d0d8e97a030281647351ebbe56d9b72a581af69a9feeca7a8f5d09a9d3179963c0bd81f83b170583a900f3779f0cf8662ccd25479ffd2f063a6c4fde668a198ee015a3977f0d2c6a8e87db2ef7050ea10afb3a88b064bf5ef95439924e4246411433ffa2f718e123fd1c4e536bb4a471978515787ee9fbf7806a92073a787a733a26101d297127132c5e9634499f41ad00e125ea308343a20b278bee9e9225eb5cbfe6188362a0bc7db8b94c3dd313b97c83ad6d10b79451fd2a8a4bd773cd392b228f8efbf4c316bd701b09a72b084a08248e26a346c6a7636a142391a8b3e674c7d477c9d88f28b32fa07e95376ac373f2d6fa6a40e9ece2055243a63a1a908b0efbc19b01b5e3a3cfffca4236c6f1bbd0c4d963ff755fda0535dd6fa62a38abc7d477c9d88f28b32fa07e95376ac373f2d6fa6a40e9ece2055243a63a1a908bc9ef92743239f959480971eac1c94f39cf0082e47f16660e5a2cf551759116e9bcbb55de2f7c60b78df60fcac599715393a929fafe497db4e1c49c622fcfdde0c9ef92743239f959480971eac1c94f39cf0082e47f16660e5a2cf551759116e9120b505952ad56399fa588787fb03813e04817a43124f0cb364fab31aaea2a1a729dbd61b324e598d1947ca8a996953c92faff10441cb53e50a82235dcef2957120b505952ad56399fa588787fb03813e04817a43124f0cb364fab31aaea2a1af6912e624e52bb041400612697399d053807aea804a3886e69ed90d2abe97821badbdb4b6f30525fab6edbd4b411b91715444ee5d5cb1020f9141bb0b202fb97f6912e624e52bb041400612697399d053807aea804a3886e69ed90d2abe978217a9a5e9b14e0e0bc1d68ebe014cc3c44028ce620da713eb6c22229e5129850e23511d09b857f58b72a4ba6d5ad1c3c6cf4af6e427086fe2e7a34ea43a02a1d277a9a5e9b14e0e0bc1d68ebe014cc3c44028ce620da713eb6c22229e5129850e22d584e5d76433aac73899b8c4e9d4346575882b8013b3b1f0b5e50f957b13559c629d94d0b021a0ea931a36bb0386926348581fa882ff6dda093df15ad933bac2d584e5d76433aac73899b8c4e9d4346575882b8013b3b1f0b5e50f957b13559d727fc71a600aa4029037bf1aa146b3a78a7f8119b7c30d3c9f0d3cd096ae16b3648dd8e6245cea524894670f97e9d67e77f24911f3b9a6602449f5023ca21acd727fc71a600aa4029037bf1aa146b3a78a7f8119b7c30d3c9f0d3cd096ae16b078519a4310da691d94075a20bd8ab62f0df6354125b8fde48133d0f53a3f4ee0d96f300085378e75f1c0685f6aea603b6fef4dcea4689842393eb15961adfa0078519a4310da691d94075a20bd8ab62f0df6354125b8fde48133d0f53a3f4ee472e80198105d0afe68ede7a353713c6229fcafae410adda96248ffe481dd5b94d0b590bc76842cd588584e386e05adcd5566d3169fcdb9c40385d81bebe0c01472e80198105d0afe68ede7a353713c6229fcafae410adda96248ffe481dd5b95e85b927c427fabf3b52009fea86970eb802bc84020ed8700215385d0f510c485445ad1d5408764bc41497963c20ffcf4f5b387eace1725b4bc53e5f478d4764180ed7cfbb9450c252ae9d91fc530a36d03fdddeff74070c532db1015b602edbd13a57e5b65c370473a2c31ee859a8dda287c882ba8afe68df3db5108f26faad5a9aaaacf1d46cc0c982a6ee117ed16e3c160658902e34ddd816ea7142114723d13a57e5b65c370473a2c31ee859a8dda287c882ba8afe68df3db5108f26faadecbfac1be17a1c6ac8d79155cdf9c322b602cf521711b1787b564d31b1fa67e003e6f7f9246754d71b561ac90d11064f22383ea0e051d14e098903ff9feb4157ecbfac1be17a1c6ac8d79155cdf9c322b602cf521711b1787b564d31b1fa67e02a1cb6b9d6b94bcff902a9a35c407181fa936619611646b7796879ab8a6315f1d97a51ffecb0fc65de54fa93ba5772d3945902b77ae4d0e03f5bc8433e8a3dc02a1cb6b9d6b94bcff902a9a35c407181fa936619611646b7796879ab8a6315f176f1b7faafd2860cc9b1410357eff110a45b34ca9f76f0551527146de35dd34fb96c99a120d2e477f0c6234966283c2516f6b985b2ebb8318bf901f09d55278d76f1b7faafd2860cc9b1410357eff110a45b34ca9f76f0551527146de35dd34f047f4cd5a8961719731f67cefe79a070e2673cf56b4fd7e520ea219d4281b00b51f8e9995751b32f3f41cff790362ee444c2df38c39f490fee500717e1ff33f7047f4cd5a8961719731f67cefe79a070e2673cf56b4fd7e520ea219d4281b00baa173ca008d03357c5603b9b579e68c6c8277a01ff8894fff7ce101283fbd91497b47721e3d7ce8d4517d5c8806312365be2b4fe422fdb87fe076047eb4e74c5aa173ca008d03357c5603b9b579e68c6c8277a01ff8894fff7ce101283fbd91479f1b567d1f7501abad8400581ec4bfc8594974a34a2c0a72f1b8a800c7a20c4bc2fab80483d1acad4993119fe8de80526b2dd792d6f29bf8655f9c7172bbebb79f1b567d1f7501abad8400581ec4bfc8594974a34a2c0a72f1b8a800c7a20c45a3c4c33778a898d627c8432b798b38a6960be7ab262cd6054882ff5572f53f8e220cc5b5faf7f42d7162eca4c11950e3a23ec9ee8e53ffe823d562be6ce12355a3c4c33778a898d627c8432b798b38a6960be7ab262cd6054882ff5572f53f8912de16ad29439af007b19bafeb33a4be9b3456eae815ff8cab4c1a2c362a66a903d9af2ea30393302f92e20cb9de700dcbadd8093808b6ffad297e92e9e10b7912de16ad29439af007b19bafeb33a4be9b3456eae815ff8cab4c1a2c362a66a8f07c8de18300978a49b6aedcee678c18ca17216ef9d8bd7b76a6eea8e9e91860c6608be82b52736b8e24da305827f97e118e13691565d6dbde07fadb57530218f07c8de18300978a49b6aedcee678c18ca17216ef9d8bd7b76a6eea8e9e918602e3484e5b45c91f5547d03d7e5c66a95323ee9f0d0d87bfe829c8e611d82f80473e6f398461360fe38a388d6a8ddc73208cc28d45b9076581a40f71a62140da02e3484e5b45c91f5547d03d7e5c66a95323ee9f0d0d87bfe829c8e611d82f801cbb205c648b9d1e93533660f435ef346789e2939e8c226a5d4f2092e3ca7129e1c0662f77a695fdcb56f4ae0e69439f6446c09087461ec9428c336b45f979031cbb205c648b9d1e93533660f435ef346789e2939e8c226a5d4f2092e3ca7129138d2119812b0b2fa06e801624eb92ed7b2e115cbf3257c86d1067140a61b8d59da06fc2a9b59f95b30106598315f83c89df48d7dcfe15719bc0a92f6728fcca138d2119812b0b2fa06e801624eb92ed7b2e115cbf3257c86d1067140a61b8d578b606f8e95390550f5e51789fb0e642d92053f8598834135603ff41ef61736e5fde156c96153e64df0d283c27c2cdb08920e39433281dd9e2b1b3d2ca8b2b9778b606f8e95390550f5e51789fb0e642d92053f8598834135603ff41ef61736e253503e8b0b840ae1fc48429c50adacc79fbac52ab07d41218724bece712a844db8a7d691e984aff00c0c0ecc0b21061d7070ec7690a039cd48f96567d34e8ba253503e8b0b840ae1fc48429c50adacc79fbac52ab07d41218724bece712a844c32c3dfe23dfb3a82a8bfa39bf49582cc6a80623583a85323220912201507b2799e6296297b9ee2300f81659bc7f29502820c3c0dc533d4181110cde2580808cc32c3dfe23dfb3a82a8bfa39bf49582cc6a80623583a85323220912201507b27861317fcdbb7aca638e48a99d0bbd589e3a25875e90bc18a507861425215c759c2372217294ef89cfef3c0529dba615919459a8ca2fad0bd2ec919b8a51ced77861317fcdbb7aca638e48a99d0bbd589e3a25875e90bc18a507861425215c75976356ac90238233f749d2203cfc6e9531c6ca670bbc56b85e86d2f95cee0c1fce00e4a8c77e8160e20b3efba9b03ca2186d0ed4bc323d69384188d872f1f2c4176356ac90238233f749d2203cfc6e9531c6ca670bbc56b85e86d2f95cee0c1fcd84ff55d5f58fc4ce03e2f40ba3b6e3ec562606e7a95196c9c2074a9ef254475d0f1c672a536f94ee7eed51e3b84b6c9bbeeaa7f112d5df3d6d09002d1a24e49d84ff55d5f58fc4ce03e2f40ba3b6e3ec562606e7a95196c9c2074a9ef25447577a171517b871f7069d8c1cda6bc61ea577b44a142e30ec21328a8c4b1ac4aadddbc9d3fa20884a3d8d2a4188b583383851ecc17fdff0712ff083fe7f75fd02177a171517b871f7069d8c1cda6bc61ea577b44a142e30ec21328a8c4b1ac4aadf03435c0d409737152463fd12a2349fdaab5053e3b8fc09d3b4856648832c31b77f21d1f35f39bad24f8fa286215bfbc3064bd174031be9d42080595c0f7a7e3b77e1474ca09e25a94a095bcc1eaea372b68ffaec2209c017fd06bbb6cc48b1b4c96b568649476e2323149ac5ba04c015088e7b3a2dc26b50a57fe14da3f122ef6f48ce095956d9aa30f0a025c32b5dbfddc5877e5cea0792e525a5853e4f1b44c96b568649476e2323149ac5ba04c015088e7b3a2dc26b50a57fe14da3f122edb765b3e9b127ffd7753cdda708923ee64a1f2173395e01949df1bfcc1fde71833568f9a0cad9807afef8713d00e0a0c522e1ce7dcfa819c4f0bfd0f477c5e2fdb765b3e9b127ffd7753cdda708923ee64a1f2173395e01949df1bfcc1fde7184c7a4c0f8f3bba4e3425347ccdc3a2116251976bf6794d465cbd94492817e82a1710df0fd8c06cce0549821663f0c5faaccb9aa9643aae09ff670530d5ed6d5b4c7a4c0f8f3bba4e3425347ccdc3a2116251976bf6794d465cbd94492817e82ab0129a0a8d80d54034fd6096116af5a3436b230da9f0b6773361c3797db00390009ac2a11f296d73d02cfc3b40d906590f1ed05af2f7f35cf015c29cdd392c8fb0129a0a8d80d54034fd6096116af5a3436b230da9f0b6773361c3797db003903b77ee1738cb00b56b371f02ebbee9df36911ca1d16e89f506107d8043862bf43fb4309f7d267f2b86589c7d865e2e9c63c8d3c73c732450caec6275731fe2773b77ee1738cb00b56b371f02ebbee9df36911ca1d16e89f506107d8043862bf40523145420b7d3b2dc3ab8025e56ead6ccc58b8182670d068e9a3f49336d32b155d97c0f79f7a636fe497cb316feb6222b65b3cd2ca5febf43a99ffc4474abbf0523145420b7d3b2dc3ab8025e56ead6ccc58b8182670d068e9a3f49336d32b1775c87d9dda225fdd9a371f23e4f33c593f66208d41c327fa4d0c93ebdcfdf9c9e61d992787ca152a2705161cb731c55aeedcfdb7a94123bc772b77b693fc22e775c87d9dda225fdd9a371f23e4f33c593f66208d41c327fa4d0c93ebdcfdf9c870b7779e37c8e7fca53db50fbd4bc48597ce3b132cfb0855d07774c0cfcc6d6db65f6468f8ec80a9404fc6b84bbe17ad110836e6170ce0354bea0cfb41b0ddb870b7779e37c8e7fca53db50fbd4bc48597ce3b132cfb0855d07774c0cfcc6d6234a94150d56f8fe0a604b20130ee609c14fdad16c01954867c92d7a96144c3e9cfa83ef4922547aa789a4282710a64d2a63c87b4dfe8ffaec27a56528186877234a94150d56f8fe0a604b20130ee609c14fdad16c01954867c92d7a96144c3efbaa7a01b9798d201248fc510d3e9148f51578fb2b36a1301a6035b385b26e67f37472ffc7925c70424fdfc34addf1058dc7b6182124cbc1dcf04c2f2ccbe5b4fbaa7a01b9798d201248fc510d3e9148f51578fb2b36a1301a6035b385b26e67e4327e710ae24ca2d7179c82da8ca85aa187bac59e576f251b41bff74730a4ce54809bf01365af6913c19464fa4242f2c9bcd8447550f7fbdd744cbc6f2c0e74e4327e710ae24ca2d7179c82da8ca85aa187bac59e576f251b41bff74730a4cec4e220e7b5983f99e6df2af7448c75437a853759f7f69baab8c3e7ce2f48049c734d2cdde35e0469e188d412a7119cea34293da88c37cd725bf493dcb0512d21c4e220e7b5983f99e6df2af7448c75437a853759f7f69baab8c3e7ce2f48049c4dd86e01d75b82f44e1ae4eb1e166e6a73dcfe3e005907d81ef4e7c4d7e576d6e56d93712f642dc9282657b95b409f3ae3ae4818184a339974a37f08ada3cedf4dd86e01d75b82f44e1ae4eb1e166e6a73dcfe3e005907d81ef4e7c4d7e576d63fcbf37404bb792fb7033cbe2c50ccd79bb1a84b4d367166ea9c2b295bf509c2188d8b4ec4613aade3d7c1c606f79f1b1a38c906ac7a8ce78b592a0c3187f7f83fcbf37404bb792fb7033cbe2c50ccd79bb1a84b4d367166ea9c2b295bf509c21b2221b52094b317a91654db63845add509c53a23b968bdd303b3d012c7410d480b7a739299810984edf6235bb047b43bb9b3131bfef0131562498cb4a5652ee1b2221b52094b317a91654db63845add509c53a23b968bdd303b3d012c7410d42846987ba4883420cee3dace71719e60d77c059962796b513a3b5d6d5053268d80689ccda5e44f751f5b2386ba617ec15375005c21b431c0ed94e2e993f8331f2846987ba4883420cee3dace71719e60d77c059962796b513a3b5d6d5053268dfbad3f24a66c3795c835715b804f83764f80e55b5639c9f39168b61655b20dc9f93e19cdb9a8d056e48a81bef9d7bd155820bc0324c738ac4545e8253d7db881fbad3f24a66c3795c835715b804f83764f80e55b5639c9f39168b61655b20dc98ee467ebb5a8debb7c4a427413d867ed18be3c363a884d27296c83c819aba6f3d17ed1b207b32ccd887991088516bd2e49bbeb8adb581f3e0d08a1e5335e0d918ee467ebb5a8debb7c4a427413d867ed18be3c363a884d27296c83c819aba6f37567d75808d88753e75bcd5933e7b30b498e5689f2af27e3d0c46b235da65e1d0b518399a76f7413fe9f1664475e0bfadf0419be1dca2bf00d4d0981202456407567d75808d88753e75bcd5933e7b30b498e5689f2af27e3d0c46b235da65e1d9f1352d0635b7efad6afb9a6daacb0e107b40b5e54e9885c6c80012a4c1c000cfe3013faeefc0e5f8ab9c3bc2d680b82425bc919918dd7f8774764c70202a2869f1352d0635b7efad6afb9a6daacb0e107b40b5e54e9885c6c80012a4c1c000ca7a765468a5fc5e1a3d2f0c74f5e16daaf7fc23eb76a18019efd82c535f34926617f29ef437b2eaf231386b5ce393673af0dce32b80b8fab9697c71746f565cda7a765468a5fc5e1a3d2f0c74f5e16daaf7fc23eb76a18019efd82c535f3492654804494bfba06fcf447a093587d8f1b026c49985256f9ee21089a0ae28e91d1616a440faa281968925402b6edc76bdc856df0aff2e0a65331eeac8d7b3f745454804494bfba06fcf447a093587d8f1b026c49985256f9ee21089a0ae28e91d19b500124ad2e872e9d77e3ae31c1b13c49cec70621b13dbe77b0051bff2edb62ca7b2f954ff04e968b92b0c3060c53bc2a86eb8394e8119e9ec835a6d69ebc869b500124ad2e872e9d77e3ae31c1b13c49cec70621b13dbe77b0051bff2edb6268533751cfdacdf47fc9f553650d893749537693c79d27c672c2221d4ce91f1152e18b32b948e37021a0971040b8ffeef0ce70637a4f75d3510d76b65e594d4d68533751cfdacdf47fc9f553650d893749537693c79d27c672c2221d4ce91f11701868f22cd73702075786e7d8d83ff6c6391f1fab68dbdbf94b7ba40a2735fcaf419c5a2ca92be03e6f83c12f7fef2122a3faef7ce6c9ecea50d96959b67689701868f22cd73702075786e7d8d83ff6c6391f1fab68dbdbf94b7ba40a2735fc21ccc36e63809a51a2b72fd2fbf05146e3e03ed4874b9163ac5cbb2ea282c85e21ccc36e63809a51a2b72fd2fbf05146e3e03ed4874b9163ac5cbb2ea282c85e21ccc36e63809a51a2b72fd2fbf05146e3e03ed4874b9163ac5cbb2ea282c85ee0b2d7cc248a45f0b6c332a87ed52b12b3aa37fcabc0f9745834dcbd9605f06e582e004c72c2435bd49190d8d250ee058960c52354ec861e12011e0c5e56a6d8e0b2d7cc248a45f0b6c332a87ed52b12b3aa37fcabc0f9745834dcbd9605f06e91847790d5420d388e538957c82ce8f7ffe07b76255706f489af224a79e79a2bd32a0dcc663dbb99e13fac2ea619c5636bdb9c3d191fcd62b959a9e69168a86991847790d5420d388e538957c82ce8f7ffe07b76255706f489af224a79e79a2b432bc3edb07deb51969b42303c9c5b4ae9f12df01c29a7625c12317f9a863320a254cb785edd6b5ddfe27628de17e27a41bce99df4b7ecb22c4d3697bb6087ff432bc3edb07deb51969b42303c9c5b4ae9f12df01c29a7625c12317f9a863320d04277f6661c0d3776743b6b2ab5ab8d23348a65ca3627eb7fa35926bb4eda53f4b9b7bd7c51e60780d9bab4fe4d84640a90d6b3b7f24af8d1899d9341ce97fad04277f6661c0d3776743b6b2ab5ab8d23348a65ca3627eb7fa35926bb4eda53daa0acf85852e5832e74f22f67547f127172d62eb8115ba09c4252c941f8120883568c244c90f2b545d33f9a140534a6934670fa8f606b962bbf913fc127f164daa0acf85852e5832e74f22f67547f127172d62eb8115ba09c4252c941f812086c9626928213003b3819ede11ab16488de0b6aeab7a87bb29ac5dd04d98832da87af5f553fe109977f01e43fe741bc350a15f3cad3fb5f2e09220744193d391f1e17e29c173171fcd763b2139b6629df2c0ce6792b057db2012edd3e0a49ea7743421286ad234a4240f8d4bc09f67bb58da0bf9d9b07bf93010989ef2c17f2f8cdae01f8da8411c2190dc4efae37e0496503a57445ea8b3d43a9e5fc50d74f7030ab335b5312af5ca57b26945c7297bec89f31e90d70e7c8cb0a2283599ab40f5d2d4ff90ab4bc9ef0903585d2fe7f4272263535af1dac98dd4a7a31b5f1759b78d40b3fbfcc67c431ad234b516d1825b17498a5dfc77ef1957d0fee36d311aa6df5742e1340743cc9932f3876bafe243e3053cd3a5f060935201708181666667462c048c689f82c3ae6b5782a18776762f88055b80ae77a92243b6c0606e004f00aea254728b67ce3b77880b3bff50b4fa66ba25ed71122d3453fa9319370783f4b14a1bc6adb09319e651fbd51cefbba97a2633e548c3c3a13c1a311377970e4e793bae777b06206a3e368053a2c94218cec72b03ff462aa22b09051c2dce20607730edb3911e3c72b8bcb0f11f27cd131cd54caa619c9afbb9f62a7f77c6dd3aa8c8a3bebaa05f55a03bbd904bda7adfdbc7b82443abd2b007e96c4fd35231881dcf94b0a44fe355f2acabfe25d8d67871402bbc19aaab37c6ff955575f1def57a0f52368c104b2a3b3551b3979751168b1ac42b7eafa1c8d5319bc95dc30e35a9f45b223d5c7e7f3bbfd8bc6495b1156c40b0ce3747ade0aed7b41aa23ac22d74368ba175175b9c14315f9d82fd7ddde60ae93d2e5572e9a647de7e869eb559d39df8c1ff38d177943f245b87f5379ee5ea93399fd6b5f7bfa882e6ed8caed3800137d48ffcf86ecb71afe5a24cd9ed381571f23036438ba8a97f502326a001464d2ef94de500cb053cd345164d696f7f84cf38fa522c77327ab04d32982d4cea5fdba68fb9e361541820d44eed003c317f4ef14bb9df3406b8d2c53ef7c73097d2c8187a17ae6a83ab6e2cf935a1309ada7dac041598e77bc618b0fa3e1e39288f4326136cadb4fab81fe31223187136bc3d9bdf65a9d67fd152e50a6e91d152088e94e1faa3df4b900cf2904458bbcc72045dd3d830c317fe2c9d9c1c66319fe7810ed91786b503de80701a291a4f9abe54c9e101c19c0917b709e62f3b8c48f3280ddc7156fd22f58360c617e25c8d145931a9aee74a2fa7c209779c2a2435bb75863215a3ecfdb268f52508ab001d6c52431ccb51595109ba013a4322ae5fde71364b4d201b1b691bfe21a91fe6c0257d6c1ca334b0f7898e8c69238c6a3d836f26771782f53685da5987a1bf57f41159e8a38352131656d07ae3dad883aff74861ca976307358c0ea3487fc783717abd5516059b9c5f88114141e684f24b52dbc02c8e59a971b1666cd0f41cf768c0837e8abe744a7f6a559ef9ede58e39e9bad047053a0dc5f27a31ff163452166c9db4ece043f7c77f985bbafa9e0ab7c528b32bc9b74d659dc4d5323e7b6d2d718d4eada7d0cc73efc350dff6da7d9c5085ff5c64232897f6ee0a09258a41a35f153f47ff0f3b8fa97ec67be9e133b134a46b23cf2c635be3116415fd388e3a1c1581bf1a77d7f7f0aff3a725bed01d8a3a88b85b65322b2256d3d90c746ee6194e0b46afd1b0c7a873ea24716a242e91b093b93210ab422d5c638d7a57feacbdd99357b3b0a90dbf5274570ce229553dd85ecb87d114bad1e615f4f9aa0c0cf01ebb5c2b116638eb78cbe4304517c1fe16da359e01f3cdfdf3f7aead4283e8b8e1107522b72f59d4c4f3ade4c5a90f03398bba5f1d3ebb705df137a81f0cc627dcea2cec72ee6d5610e734a231e2d997f442002389b3dadb47ed8134947c664a32ef637f43afdcbd1b5c1382339ae48e477969cee58822d528ae73bcb689154d92631f97b478006a7944600e510e8f647672359066df3ee2a8bf2fce14fa15037adc10d974719b9c3608cb1e44264a834dc230d397725f398d905d0746321d543c56644e5c89af59fe3fedb61a84ec601c8786daf0564e978c97c0e14095c23f9a08bb64950f9cb541b074b3ac0550b241c99a566f61929515ca97aedf99f73568df3dfe93078ed22cb54892b6c617c8e7122ae9b675af5389f5634b9b88643ad2752509f416aedfa2a81542bfcae1d871416a9bc216ad2ede3d418de48e8a8450f93de08256aa2388948ebc852eff97903ee737a4118785fa3f73759574d39d20591919577d9126cea7ba540483502cfbfce0ac87198cfd6d0ec7e5eec68834042ed949875730a35764c83ca0e9b262b9ad0046cbb0af1101a651fcb88cd1cba38e474b863abbb074b260a0296437194c674ad031297b060e590387062fa29455c2c7131ed9c7eaeb644db7bf504b395504eb46f2ab40b2587b84b971c4cdbb6001eacd1a452fef7db8d7c49ec7c2cfaecb92c5953ab48f1ac131615c7e9815671a743903aaabd4453a7d7f97d98e9ac69099676f38aba5a6cbc607f196bfd7b691554c4e3bbaea46b2c8fcdc5178b2dd77d794938fa52adce719d4948a92ba1a689068cec1fb6888d033e0ed1efc442b3fb93de89fb0988c73f8536fc5099afb761d2b69ec101c239c8c193336f2b6994f5aacca9689f32249db20a8dac36934314b7d5ba391d94169d63c66300aa47014a5c2dfc9bc0d6c3fb234dff4e4b60a6527d4cdfbb8c416f99df447acba7570e479457fec822f02dfbd78096641cbd6b6d997d18e82b8c31a01648a2be05a654a420c7b691d7a0ce7952c84b687d7387b271fcda7a8c956cbd0f58343f2bdbc30aed247a1aef9f2032e540101b46a674456967bf626b0d34a86f5f277f16699b17c3fd176c1b259959ed235bb9bb59d54731203c9c33c2e0e431729ea34280f0b51c476c951da31291f8f646630d56a7da6602a3365808a57c797bcaeb2076b6412093b234620aee37ce8be16100880af85ba6752e3652b2678b7ef122e13c385a135cbbbe8b1d87efeed43ddd3e0be9ddd8aa24b267b61fac42870d0bf5c92b0f2a5fe25ddf95729f6cba8a9ac48c7c0d1c2fdd7a7532586f2ea46be7d55a95c96f5bdffc7869acfea19c33c62a23ef9515d4f2f9e5b93b38b905b59664d1da4cfe90df4316370fd33e3a69f5b6371d1ade46bca444c14bab9284a21fcb75abf82243eb66fad0466b1d737cb51d6b957a8ec2acde3a01fbffc5a256f1b0189ee127902c0022ba8a8660b6b824801612ab1772a04800d886ea4361f9bd3a01148a0d6627692f4ef22f93361cd19e4e279510c45a522ef10ff6650daedef66d754b3202068593d714c7bfe09dcbf9e0525a59faa09b1a2b1de640cd57ac1182488554201e30bc180aa461a708bcdab3efcc019451b46351c61c2468ec9e4e0710e1441867b17a238159e89017ff6bc76b4d42d3e133d9e8809159423616094ef8df925afde07c0920da1882853184948c4a03aeb4dc99d50c363722fdf48c7c995feaf4c73b7b4c978d33747dcbdf14ae5654bfc807b15799c63fa694529bbf957aa2e3d3e66e624810c6ad7e81015f43eb4c41dd7ac5f2d77161f75c9163965d21b2df016c01202c56010e873a7353715e43429f763c89df40f8abd187ced93dc1209703237acc8e0413a9b1ef07775f45c18847d0a3d5987f13edc3287fa8beff020087d2614966840987f4a1e858d8b3051dc7a5afcb2a0f30edd1d05c1084a10bb4d2c563f089cc20fca49582f334d861cbbca4a01c94e81976926a667aa9936ec65cd80b2650d2f0f3434c2ee54f0be91939259add06ef7fd4488b992b184ebc4233ca856f1fcf817d4a0204dd34dc0833d46fa1839c862fafb8830eed0a417f1d8b60d047d8c958f624ea5649483077927067c93c23259048e90348fbdcca2b672271ee2a3759c5b73f34a0bc9b3764f83e3ab79f2182c1e277ef465907f0be250fe49a0897a708735972b6803cac22055ed760a861fce4036c6c8c30e4ae91de1da9ff290f44187d24df84aaca6995a3538fd8e6a126ae3096b743b854108908f25aedb8cd9c067cae60e41482d56af14cb8249cf8e5a96565c24986eb3e32bdd658c238b484e096fefe347488e1a22f9e99667cd0c288e6c9d2d33e969507af34a1634cec335e7c097c5421b441b9d84ae74c37c7da0d10aba5a048b59afe384585e0b38c5cd8d2a1b536c960f92f4724a628d48215c3881abddb32c2275993c297df1b56ce5d8b34eda35f823dfc27577c2b18c26efcf8c7d72d323257e4c4c095b611381fd9f336d80fa7ae9104e7b03d14a7df2d9ae92fc5037f367472c50ae104f86df35c0d5967968e352d7ea2b944f5909326076bf88e0fb30fa0ab5d0dc3030442ed92713f34170336c4dd2623723dc34829df89ffecdbd3f9ba0d71c6e59984f8384817f0fe5b0ac69ba62e1e40a31faf596a6c26999728e6eefa83b486188a3af6900a464741307e7e4fbe4c6bb030eb7650424a404d5bcb1109a33329f0e099fa8c07a8b02401da4e531bbc6de733a90e45aaf9b54f0a6c4a21daea6f41263e8df267367f5b491094bea56179a9c3b4ebd65a4fe845553b7ffbd7696ea3bf437851cbf73df723573d3b35ed7a699f9f4de8a2/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.15-150300.10.75.1.src.rpmapplication()application(idle3.6.desktop)config(python3-idle)metainfo()metainfo(idle3.6.appdata.xml)mimehandler(text/x-python)python3-idlepython3-idlepython3-idle(s390-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.15-150300.10.75.13.63.6.153.0.4-14.6.0-14.0.4-14.0-15.2-14.14.3g6f5fff@fIf@fz@fuk@f:f*Ee؈e4@d@dVA@dRLd>@d@c>@ccv"@ck@c[@c$e@cbb@b@a@a*@a*@aaaayay?@af@a]aLl@aLl@aA@a'@aj@```t`[``@``/@``U_T__@_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;mcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@suse.commcepl@cepl.eudaniel.garcia@suse.commcepl@suse.commcepl@suse.comsteven.kowalik@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comsteven.kowalik@suse.commcepl@suse.commcepl@suse.comsteven.kowalik@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comdmueller@suse.comschwab@suse.demcepl@suse.comdimstar@opensuse.orgmcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comschwab@suse.deqydwhotmail@gmail.commcepl@suse.commcepl@suse.commcepl@suse.comdmueller@suse.commcepl@suse.comcode@bnavigator.demcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commeissner@suse.commcepl@suse.commcepl@suse.commcepl@suse.comsteven.kowalik@suse.commmachova@suse.commcepl@suse.commcepl@suse.commcalabkova@suse.comdimstar@opensuse.orgmcepl@suse.comdimstar@opensuse.orgmcepl@suse.commcepl@suse.comtchvatal@suse.comschwab@suse.demcalabkova@suse.commcalabkova@suse.commcalabkova@suse.commcepl@suse.commcalabkova@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comtchvatal@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@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- Add CVE-2024-9287-venv_path_unquoted.patch to properly quote path names provided when creating a virtual environment (bsc#1232241, CVE-2024-9287)- Drop .pyc files from docdir for reproducible builds (bsc#1230906).- Add CVE-2024-6232-ReDOS-backtrack-tarfile.patch prevent ReDos via excessive backtracking while parsing header values (bsc#1230227, CVE-2024-6232).- Add CVE-2024-5642-switch-off-NPN.patch switching off the NPN support eliminating bsc#1227233 (CVE-2024-5642).- Add CVE-2024-6923-email-hdr-inject.patch to prevent email header injection due to unquoted newlines (bsc#1228780, CVE-2024-6923). - Add CVE-2024-7592-quad-complex-cookies.patch fixing quadratic complexity in parsing cookies with backslashes (bsc#1229596, CVE-2024-7592) - %{profileopt} variable is set according to the variable %{do_profiling} (bsc#1227999)- Remove %suse_update_desktop_file macro as it is not useful any more.- Stop using %%defattr, it seems to be breaking proper executable attributes on /usr/bin/ scripts (bsc#1227378).- Add CVE-2024-4032-private-IP-addrs.patch to fix bsc#1226448 (CVE-2024-4032) rearranging definition of private v global IP addresses.- Add CVE-2024-0397-memrace_ssl.SSLContext_cert_store.patch fixing bsc#1226447 (CVE-2024-0397) by removing memory race condition in ssl.SSLContext certificate store methods.- Add bpo38361-syslog-no-slash-ident.patch (bsc#1222109, gh#python/cpython!16557) fixes syslog making default "ident" from sys.argv[0]. - Update CVE-2023-52425-libexpat-2.6.0-backport.patch so that it uses features sniffing, not just comparing version number (bsc#1220664, bsc#1219559, bsc#1221563, bsc#1222075). - Remove support-expat-CVE-2022-25236-patched.patch, which was the previous name of this patch. - Add CVE-2023-52425-remove-reparse_deferral-tests.patch skipping failing tests. - Refresh patches: - CVE-2023-27043-email-parsing-errors.patch - fix_configure_rst.patch - skip_if_buildbot-extend.patch- 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). - Add bh42369-thread-safety-zipfile-SharedFile.patch (from gh#python/cpython!26974) required by the previous patch. - Add expat-260-test_xml_etree-reparse-deferral.patch to make the interpreter work with patched libexpat in our distros. - Move all patches from locally sourced to the branch opensuse-3.6 branch at GitHub repo, and move all metadata to commits themselves (readable in the headers of each patch). - Add bpo-41675-modernize-siginterrupt.patch to make Python build cleanly even on more recent SPs of SLE-15 (gh#python/cpython#85841). - Remove patches: - bpo36263-Fix_hashlib_scrypt.patch - fix against bug in OpenSSL fixed in 1.1.1c (gh#openssl/openssl!8483), so this patch is redundant on all SUSE-supported distros - python-3.3.0b1-test-posix_fadvise.patch - protection against the kernel issues which has been fixed in gh#torvalds/linux@3d3727cdb07f, which has been included in all our kernels more recent than SLE-11. - python-3.3.3-skip-distutils-test_sysconfig_module.patch - skips a test, which should be relevant only for testing on Mac OS X systems with universal builds. I have no valid record, that this test would be ever problematic on Linux. - bpo-36576-skip_tests_for_OpenSSL-111.patch, which was included already in Python 3.5.- (bsc#1219666, CVE-2023-6597) Add CVE-2023-6597-TempDir-cleaning-symlink.patch (patch from gh#python/cpython!99930) fixing symlink bug in cleanup of tempfile.TemporaryDirectory. - Merge together bpo-36576-skip_tests_for_OpenSSL-111.patch into skip_SSL_tests.patch, and make them include all conditionals.- Refresh CVE-2023-27043-email-parsing-errors.patch to gh#python/cpython!111116, fixing bsc#1210638 (CVE-2023-27043).- 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)- Add 99366-patch.dict-can-decorate-async.patch fixing gh#python/cpython#98086 (backport from Python 3.10 patch in gh#python/cpython!99366), fixing bsc#1211158.- Add CVE-2007-4559-filter-tarfile_extractall.patch to fix CVE-2007-4559 (bsc#1203750) by adding the filter for tarfile.extractall (PEP 706).- Use python3 modules to build the documentation.- Add bpo-44434-libgcc_s-for-pthread_cancel.patch which eliminates unnecessary and dangerous calls to PyThread_exit_thread() (bsc#1203355).- 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- Add bpo27321-email-no-replace-header.patch to stop email.generator.py from replacing a non-existent header (bsc#1208443, gh#python/cpython#71508).- Add bsc1188607-pythreadstate_clear-decref.patch to fix crash in the garbage collection (bsc#1188607).- 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 CVE-2022-37454-sha3-buffer-overflow.patch to fix bsc#1204577 (CVE-2022-37454, gh#python/cpython#98517) buffer overflow in hashlib.sha3_* implementations (originally from the XKCP library).- Add CVE-2020-10735-DoS-no-limit-int-size.patch to fix CVE-2020-10735 (bsc#1203125) to limit amount of digits converting text to int and vice vera (potential for DoS). Originally by Victor Stinner of Red Hat.- Add patch CVE-2021-28861-double-slash-path.patch: * http.server: 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. - Rename support-expat-245.patch to support-expat-CVE-2022-25236-patched.patch to unify the patch with other packages. - Add bpo-46623-skip-zlib-s390x.patch skipping two failing tests on s390x.- Update bundled pip wheel to the latest SLE version patched against bsc#1186819 (CVE-2021-3572).- Add patch support-expat-245.patch: * Support Expat >= 2.4.5- Rename 22198.patch into more descriptive remove-sphinx40-warning.patch.- Don't use appstream-glib on SLE-12. - Use Python 2-based Sphinx on SLE-12. - No documentation on SLE-12. - Add skip_SSL_tests.patch skipping tests because of patched OpenSSL (bpo#9425).- Don't use appstream-glib on SLE-12. - Use Python 2-based Sphinx on SLE-12. - No documentation on SLE-12. - Add skip_SSL_tests.patch skipping tests because of patched OpenSSL (bpo#9425).- Don't use OpenSSL 1.1 on platforms which don't have it.- Remove shebangs from from python-base libraries in _libdir (bsc#1193179, bsc#1192249). - Readjust patches: - bpo-31046_ensurepip_honours_prefix.patch - decimal.patch - python-3.3.0b1-fix_date_time_compiler.patch- build against openssl 1.1 as it is incompatible with openssl 3.0+ (bsc#1190566)- 0001-allow-for-reproducible-builds-of-python-packages.patch: ignore permission error when changing the mtime of the source file in presence of SOURCE_DATE_EPOCH- The previous construct works only on the current Factory, not in SLE.- 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.- Due to conflicting demands of bsc#1183858 and platforms where Python 3.6 is only in interpreter+pip set we have to make complicated ugly construct about Sphinx BR.- Make python36 primary interpreter on SLE-15- Make build working even on older SLEs.- Update to 3.6.15: - bpo-43124: Made the internal putcmd function in smtplib sanitize input for presence of \r and \n characters to avoid (unlikely) command injection. Library - bpo-45001: Made email date parsing more robust against malformed input, namely a whitespace-only Date: header. Patch by Wouter Bolsterlee. Tests - bpo-38965: Fix test_faulthandler on GCC 10. Use the “volatile” keyword in faulthandler._stack_overflow() to prevent tail call optimization on any compiler, rather than relying on compiler specific pragma. - bpo-40791: Make compare_digest more constant-time (bsc#1214691, CVE-2022-48566). - Remove upstreamed patches: - faulthandler_stack_overflow_on_GCC10.patch- test_faulthandler is still problematic under qemu linux-user emulation, disable it there- Update to 3.6.14: * Security - bpo-44022 (bsc#1189241, CVE-2021-3737): mod:http.client now avoids infinitely reading potential HTTP headers after a 100 Continue status response from the server. - bpo-43882: The presence of newline or tab characters in parts of a URL could allow some forms of attacks. Following the controlling specification for URLs defined by WHATWG urllib.parse() now removes ASCII newlines and tabs from URLs, preventing such attacks. - bpo-42988 (CVE-2021-3426, bsc#1183374): Remove the getfile feature of the pydoc module which could be abused to read arbitrary files on the disk (directory traversal vulnerability). Moreover, even source code of Python modules can contain sensitive data like passwords. Vulnerability reported by David Schwörer. - bpo-43285: ftplib no longer trusts the IP address value returned from the server in response to the PASV command by default. This prevents a malicious FTP server from using the response to probe IPv4 address and port combinations on the client network. Code that requires the former vulnerable behavior may set a trust_server_pasv_ipv4_address attribute on their ftplib.FTP instances to True to re-enable it. - bpo-43075 (CVE-2021-3733, bsc#1189287): Fix Regular Expression Denial of Service (ReDoS) vulnerability in urllib.request.AbstractBasicAuthHandler. The ReDoS-vulnerable regex has quadratic worst-case complexity and it allows cause a denial of service when identifying crafted invalid RFCs. This ReDoS issue is on the client side and needs remote attackers to control the HTTP server. - Upstreamed patches were removed: - CVE-2021-3426-inf-disclosure-pydoc-getfile.patch - CVE-2021-3733-ReDoS-urllib-AbstractBasicAuthHandler.patch - Refreshed patches: - python3-sorted_tar.patch - riscv64-ctypes.patch- Rebuild to get new headers, avoid building in support for stropts.h (bsc#1187338).- Use versioned python-Sphinx to avoid dependency on other version of Python (bsc#1183858).- Modify Lib/ensurepip/__init__.py to contain the same version numbers as are in reality the ones in the bundled wheels (bsc#1187668).- add 22198.patch to build with Sphinx 4- Stop providing "python" symbol (bsc#1185588), which means python2 currently.- Make sure to close the import_failed.map file after the exception has been raised in order to avoid ResourceWarnings when the failing import is part of a try...except block.- Add CVE-2021-3426-inf-disclosure-pydoc-getfile.patch to remove getfile feature from pydoc, which is a security nightmare (among other things, CVE-2021-3426, allows disclosure of any file on the system; bsc#1183374, bpo#42988).Update to 3.6.13, final release of 3.6 branch: * Security - bpo#42967 (bsc#1182379, CVE-2021-23336): Fix web cache poisoning vulnerability by defaulting the query args separator to &, and allowing the user to choose a custom separator. - bpo#42938 (bsc#1181126, CVE-2021-3177): Avoid static buffers when computing the repr of ctypes.c_double and ctypes.c_longdouble values. - bpo#42103: Prevented potential DoS attack via CPU and RAM exhaustion when processing malformed Apple Property List files in binary format. - bpo#42051: The plistlib module no longer accepts entity declarations in XML plist files to avoid XML vulnerabilities. This should not affect users as entity declarations are not used in regular plist files. - bpo#40791: Add volatile to the accumulator variable in hmac.compare_digest, making constant-time-defeating optimizations less likely. * Core and Builtins - bpo#35560: Fix an assertion error in format() in debug build for floating point formatting with “n” format, zero padding and small width. Release build is not impacted. Patch by Karthikeyan Singaravelan. * Library - bpo#42103: InvalidFileException and RecursionError are now the only errors caused by loading malformed binary Plist file (previously ValueError and TypeError could be raised in some specific cases). * Tests - bpo#42794: Update test_nntplib to use offical group name of news.aioe.org for testing. Patch by Dong-hee Na. - bpo#41944: Tests for CJK codecs no longer call eval() on content received via HTTP. - Patches removed, because they were included in the upstream tarball: - CVE-2020-27619-no-eval-http-content.patch - CVE-2021-3177-buf_ovrfl_PyCArg_repr.patch- 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.- Provide the newest setuptools wheel (bsc#1176262, CVE-2019-20916) in their correct form (bsc#1180686).- (bsc#1180125) We really don't Require python-rpm-macros package. Unnecessary dependency.- 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 (bsc#1179756). - 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, CRLF_injection_via_host_part.patch, and CVE-2019-18348-CRLF_injection_via_host_part.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 Bugzillapython3-idles390zp31 1729848423  !"#"%&%()(+,+./0121454787:;:=>?@A@CDCFGFIJILMLOPQRRRUUUXYX[\[^_`abcdedghgjkjmnmpqpsssvwvyzy|}|     ! #$#&'&)*),-,/0/232565898;<;>?>ABADEDGHGJKJMNMPQPSTSVWXYZY\]\_`_bcbefehihklknonqrqtutwxwz{z}~}      !"#$%3.6.15-150300.10.75.13.6.153.6.15-150300.10.75.13.6.15-150300.10.75.13.6.15   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.suse.de/SUSE:Maintenance:36159/SUSE_SLE-15-SP3_Update/d0fb0892f7f97fc840683c308ef31986-python3.SUSE_SLE-15-SP3_Updatedrpmxz5s390x-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{|}~RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRPPPPP3h!Eutf-8a2d3b59ce4e2adcf7f1b320c9cc8265948fbef7077ececd9ab95ff6671e7cd1e?7zXZ !t/~'2]"k%a ~SРQi0! (dPÍ7^R.2ƨB6"[Z+(H(1X M{焈ڻXZ$!@G >;K$!pw5$ua8D@<뀽rzrݤF|%K\ңy"ȇceHF܅%'cbF3?-5.bʻXн]1$S];_/ʟK580%mAdxԁJ2fq"$grvT$ 2`^`c hXn_{p: oV`$ײ Asf.7ZD=ȂJQXJKFz`Z*C0QĠ=V^QG}eRХvO,(캁A]__pE·E V_kl @9u'f^9 ƨ4 3=jZn|5zdLbh7)S@7PDHZ 8p\GzƕV}׳!<CAD6|M〪o%8bH!s~@_OC/ Iɹp4Մ%yҎ6b~Xݚm,IAJ02o9AeAU{ܙY &qS*T }".ЄП]ɛ-oVL[ӿP ]-W9N1s4dOpsq铻=+΍EiiO}/ӫ %m bkvYፌf O4a֔I3#dٮVɬǀSx71aM ~jݨ9=z F*TpzEkLn~-bh[[Grc ؍{$ BK7x5)63۹ 3CIB38,82>\ũ > |e,Fj ![NH_toг$ o+GV=1<Y@ڝp4~ŹȠ,U3ЬF w~wX cPMDIE| {2!==NHyaLsGmT ǃm{oij}dg?t%V*l݈,<”ZƢ&ƶF$ ^4ϰ?:: 0!3W,5-‹7cv\?ok`ӵ=MjEˁ+>#<-DMfՁ2Yigb`I`܊ O]ɖ jLD]L+'rv~gBdR, ڒo[+ ٯҥZe ajBB4Cg^ c*pBz &Fm=4w՜GH6(<7-Hӻ;Oq96]ZK7!?3" Q}_c;/ , `[&se8bO0]竬V7SpTzƑqE֊D,|is>(l&.$giZЬʻHQI|5~b@zooct~&-1o'Pvq%wف1b _?ρAو$1;h.}*9eE + @qώsLfAE4{T=e װL)E)ݯ (6L#~Cw޲U}DЅ1f@5#N0N(pCKNpL릉 :)Hj(d317a~$/M0]xc="6>wr^f@p/Xb`f]-T+>9 Ao{ H#Z2RRTCT AAhT⼺]ix)J4wɄasKLH|Ut.HKf$^F{[hBAsUhnږ2X3Cg~1 /*聐i[A,kY`I6$_cv6(`ŌCAv&peimZ(/x^?n͚#nuЖ}XU;k^Af@}/^wt鯁2臵b_6r`"(r![:8h504Ju !K25:|Lj{ c֝fU2ov)}eu֫Q=q'bt.?t}{Uf >+7 kn$|Յ_J*[[=o=H]Yz#ei>rDߧFMzc,Ak|_~;Lv1d73W72+]?.'%ZӦOI_5jf|Bmq2+ѵ}Wq8T:]!+<1Hz\̿"lƾ9rX$}?b ]XzRC`4yJ[` vJFi5Zn6V>cH1~H08ce=`D"秩9I7̫0 3K3 a@dDHL~HxIQ ť+0)14]ڌ&j'h+jYa<3o= l4.ʫ\ :L@)+@l"nYK}#+ UqfQ ramS~NXfXs |~Xڇz0*`5` SlV@'9CpF윾bA=ҵ;9Th,!-h)9Ks3fHİy E?b< OǠR;_~Qa&"i}8etC*d쯅|$޹`RCN3PLU\I'u`+DR=,3ySe[d{ a^o5!HRS)NN 13楼')'/B ^>]7*rPw2SK⋍^҅Z Vʕk>h%;6+J0sp3c~\hԬ` v*=g"$,VI] uL^U:IFO 3;wJ]K0ܡO?^?048ҳ1Rзf(6YS^a`#̰Wg~"~ύ#o]?YMcԀ~)X}K *a#6=ߎHL$#V橆a yړSvU:~2_%5Bȁ4yz@#ZtNɌ@iig0|JuBG5B;Y \ADE2V vBQ8 +cغ/YpYcKEW  Fg.`Jw []- 0T,ϋ~/TIK@DX mwiHq_78g3*),ž@r=b>jC3)q*1Od8+ڕy*Q HBqgg۹Rq4~wYHhQgyǣg܉/ Ԋ#FF9Й\鑗K^C]I'3לM~r YTqVFְͰG t[ǂDae*y.*] hVVC+FK#A`1(?cS&X@[%Uk=ө .f>q\|¦Bqz_[a JIce!1\l*wdžzƑo9 v|ͪȲ -H&]M%ߌ?;hhbkMM~Ym؆&7j7#H:Dxxh7KqUWФ%rܤ6z#YnQ-b7_@>}o4e31G5G^$i 3D; ?< ǹI\Y>ָbu9`$l$rl 8r%bejn)'MB8#$ F,qyJed.$5/Zb ,җ\(rZƱ.e+(w8MvK~SZ#N9Ie5i"f_vSw25Bs&$?q޻Z^.rp*FqU'IS^ ;V6f20i~c~Twowk]̢JF1(JqV0*yz"_m2t}=Ǻ%~ _:(m5g}2DL:&SE𢼔[Jν<w;4a 8vлҀl}S$E߆kR\RƘg~DGJqtગO8P@Llo K*AY?'\ 7=ʄ*a݆CMp~E)8ߥ!g8+ǎ{1IAd;x?(E2mnr$ 2Dpz%:Sѭ1#˴pC&ܥ8$eXuއVnyi96HKԁP]ԁUvc6dkD4C&MGn".I}i&G`@fki_/_^E<,UH>DLs+6~]eŊ^l?5C3ݔCOUV46 qLr㈰.͟B3}XwPL 3Kj+?l^ߵY'60,L|&lN284öQ)YT^ɕןt \2th(hԱXkHq8014?JI4[XJ8Tc"?$i!Fy7&]ݡYj ";F(-lpxSU:sfDgR)Y +,q]6=ϑr1OǦ{&)ʪו:# 9! ]e?!]bBV 8&B6&8p.v?sj!`aVh@'o =z`챋Eqz@!flix2Z獦sN,7cF,KAJIM&jtFv^neKv9DY4@ V *[ak\źif /)Aa|FmX˴gf;wL jh82^/U3\;D @@3F ƙ!:]`ObΙ0TbN%?AS( uWK3.M2s_s#j4iw=/밿 bsiP6zF W>~F2i0Ed +E'  XI5RĞۖ tv/ӈe4v5#"Hf?)F&kTM H t!`m0W_hhӯ) gꆫnMl?AwDbX[ڗ*PօKTh{E,cq9@ 3: ΔuFBdnrd0ĻI VGhk`.YO#PN]Y]\oqB`܌̳jMPhk3f$(!l.1~ :{ZUZ "nU^@B!96,dW`![SR"VԂ,%݈:G;t Z1cy^\>Aį} lHmcO=+J䢨1xG @BwuJf_\gm;CAJ Ud*o8Q}IJ;'lG};@Z-#zv<:&,/:gv~X Bh !6hG@$rDs3m'4>NO֊ _͞1d,m’DFC-vVr=PF.9ủsޢj"stc; QEp*A+\^b~`}ULGNܞfo4VUVNJ nXUW&/{kݮ:i_ x|}(jŽ5ٍKZgmgNr@u&:wt+63Vl0[Ne(LN >Vu-/ݿoT[x:NH*i!TFxO:^\TfaWQ>=~.}~$F٤t 0u;TU&{_3iAB~Hc ġ~:T Y-0ZM@Ϟ=̬_=ؐɹK0'ŒU4X -XȝGeSN