python312-tools-3.12.12-150600.3.37.1<>,Di$op9|qLjB3(Y-1~Wl@G:Ed+|;9 2ƇE`r%=MS{wCa}R&$3^ uF4P@/عgsÆ>fWډF?Lj 2a;uīa̲My$*2_z }H5ǂ,@Y+!6IZ\~ByF~H\x[dX|FHOF]i8@/K$>>?d ( Q! 7C[ah   H    lXn(89:F/'G/<H6I>X?Y@\@D]G^d\8bpcq[dqeqfqlqurvypw}xdyUz(8<BCpython312-tools3.12.12150600.3.37.1Python Utility and Demonstration ScriptsA number of scripts that are useful for building, testing or extending Python, and a set of demonstration programs.i$os390zl33@SUSE Linux Enterprise 15SUSE LLC Python-2.0https://www.suse.com/Unspecifiedhttps://www.python.org/linuxs390x`:;SGDS $   Z  64345    '&7'  }} ;  z kq  Q b_ CK`; / 8^}Jc&Z m <*) &c63M1-3 %L  !9P<2&EL/MsCyP)v=q*Dv s92I4~ 5G=1 FS)Bd  _`B#CW W.# n $j _c- = xlX] j$ 29o 7pq$> NO( @d^MUmq'-g.IS 6$3CnC ,#/p1*qQ&,c H 'g  ^maN_P _y.@W 0#(CO6"''&e$4,$4=a ,HB@ 4'cn#dA큤A큤큤큤큤큤큤A큤AA큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤i$ni$ni$ni$ni$oi$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$ni$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$oi$o2bf9c64778471df0f56ce7db2e118441a6324eacd18572ada86aba3f66d857585f465277c96c107a5af544b0a962561f97cb0bfd75906d9bf9741450ed02b0e12077964f456a0b5425a20f0ae5b89423f834e45013198a7d44cab8a6cac7a6408c5dec6c61934c8da478b8b3a7380e8e471428ee88b69394f7d8063e7c76ace53ba9518736b402c8bb6fc998ff96fd319c27a516a698566b2fc3d66b58a03b428c5dec6c61934c8da478b8b3a7380e8e471428ee88b69394f7d8063e7c76ace527c528066731f096df9564d9d6bf54f72f997727063f7e6e2dd214e1054b726fec6d1e313c9a439ab0c1c6c643921a14a9109094c9493e226f19b99da65a86f327c528066731f096df9564d9d6bf54f72f997727063f7e6e2dd214e1054b726fcfaad20d90d209f1903635bee735a097ba256db223e15bc0f896d45808eca556ca0ac86001a8c14c0a6a9112b3f5e8214c2146eaf3ee557a9c232074af6e5bd5cfaad20d90d209f1903635bee735a097ba256db223e15bc0f896d45808eca556b362a8c1a0b8d410cd249bb287e010ff7bdc554014c37b48de9e507927142baeb362a8c1a0b8d410cd249bb287e010ff7bdc554014c37b48de9e507927142baeb362a8c1a0b8d410cd249bb287e010ff7bdc554014c37b48de9e507927142bae1c3e481ef2c3ac381c10fcc435a639b1b18dc0e7fc5b83732ec7f543096ada31c2b13f81848fc0d01ad2579110c4826c754283c50f550382770f9b2dd19955841c3e481ef2c3ac381c10fcc435a639b1b18dc0e7fc5b83732ec7f543096ada31bf61bed6436aa102705e3520eb17110f1d1515e7799ea4fce3143772f0919809bf61bed6436aa102705e3520eb17110f1d1515e7799ea4fce3143772f0919809bf61bed6436aa102705e3520eb17110f1d1515e7799ea4fce3143772f0919809cd8e218c2c3fb9c3c9fb9bc97260b50e9f4f06e73392ac2ddd6984efbd2ff49e95cfb6a5ce79d26d82549a6e6b5888a54ff305a897523970e72ce6b1501a4004cd8e218c2c3fb9c3c9fb9bc97260b50e9f4f06e73392ac2ddd6984efbd2ff49e67b70e202a1f4d18d61641367144fab5a0dc86f8af94efc86078acd1b260b74bcef8d395578d8510857836018ea2bcb87a238ebae0b466d2031b50872409fbb167b70e202a1f4d18d61641367144fab5a0dc86f8af94efc86078acd1b260b74b7ce31695f2b426fb4545059f82a7b7537dba85a6f279da1c3885607460683144909858dfdc18b27bd934f786e625e300a1428595800aef892ffe38ca5eb09c3a7ce31695f2b426fb4545059f82a7b7537dba85a6f279da1c3885607460683144bb03f7c2bb389fc7766760d6b8acc9d0c75794bcd17ec1dd975c8aed65a94aba91babe1852a5d9998cf4dcd6bbfd074a5d77d3a523a43650d2a18ea17af21c42bb03f7c2bb389fc7766760d6b8acc9d0c75794bcd17ec1dd975c8aed65a94abaf9f82b059f4c9f1c874c666317cf1688e84ee3161dd48356e902aa76f6291059217c420c9bcd64f3073e6eb6ebeae6b8fb606d5fcb3d96d3c9c41ca94419a6a4f9f82b059f4c9f1c874c666317cf1688e84ee3161dd48356e902aa76f6291059909d24053d3595f5b7a121099e2e60359cf4f3b096d39b5fa2be81369f141a7376373b10c8134d80e985e35c3bddbf0a4c884b97fd9c9554e2f6736990a61e80909d24053d3595f5b7a121099e2e60359cf4f3b096d39b5fa2be81369f141a73c2f2c5d7c4d49cb46406bff5090981e32fefc3500a2c4b57d1791f761bef81f42783a146822fe86ff0bd106cb4940c80558c2909671b37f1247d963c29d0337dc2f2c5d7c4d49cb46406bff5090981e32fefc3500a2c4b57d1791f761bef81f4464103be8fa50fd560ad3e5530bc2a40efe1cd395cfa90b91eb3d7b7738ffadd6c2cf08c0e284b89a4f0e991b6b1b05b81e9525fbaa38895641e3a8a3ca14def464103be8fa50fd560ad3e5530bc2a40efe1cd395cfa90b91eb3d7b7738ffadd3fdf965269ebc1727b7409564b65bd9bb9ec4359acc34e417e731139e3a796601f9ae911d32017a7c7cdc0ad1e9f1f49b07a536f0cbc169225cec9e39a20da913fdf965269ebc1727b7409564b65bd9bb9ec4359acc34e417e731139e3a796600c1a69e504e4a408586b592d21fb1831957e837610619a272a6c675697bd1a8400bb90c03ddfa9f70d0a1bb8d3a43bc607694aa92bfee3c57bd1ce5c3adf24230c1a69e504e4a408586b592d21fb1831957e837610619a272a6c675697bd1a840015c8b33fa25e2c5cddfd82b6552e600b781635f2524b07e757b7c094e2654d0976054d732f91b3a4f4d9c6b4e1286573ac26e4f7f832c4b12f6048022388e20015c8b33fa25e2c5cddfd82b6552e600b781635f2524b07e757b7c094e2654d5239615eb6e38ae6c14befc75977d05d0746c09d3808ed46edc80f4ff63204578bedd0758d14be35cbdfccbc8df63147fd9d8c5578af414e9ba6addd966fb86b5239615eb6e38ae6c14befc75977d05d0746c09d3808ed46edc80f4ff6320457945e5b161f884b5b79b770ca30a5da444c68f85fe8b634031088c6f23602acf629fa48eea5158eb4f37e9026515d05ee25846add3f761cde19bcb01f784af158945e5b161f884b5b79b770ca30a5da444c68f85fe8b634031088c6f23602acf6e24891eefbfb3854b1be7996e4e48b4426a9358916ad5a6e793a6864a42ca16d95b52394861b5ac3f7384864c46b623035530645efe2b929809e03afe80494a7e24891eefbfb3854b1be7996e4e48b4426a9358916ad5a6e793a6864a42ca16d2f003f928fc912f035b2a358763ad1aaeaad0b9c14f4a588a9b5f7210b50856d8a543cfd00d01e6cb32f03fd3652595044804a123e104fed8557d4ef03ec9c862f003f928fc912f035b2a358763ad1aaeaad0b9c14f4a588a9b5f7210b50856d2ab201d62ed85c964ea36cc7281b16b1fa06dea6d2348672c64ea3a9805a0630bc8a3a9b77e90446fb7060ff68ee008ffd6b23b366052207ec225cc163b4dae5a2dd020d6377bd7ccfa79adabc83e46308130ff3c97c1761311d793f146ce279bbb065830edb37fd53b1c004118853176fd8da32ee532cb0d36396088092037418326a5883f974d5bbe3bc69b4f229dd1bdbc3fe010044ef40ee11d34fd23eec6253f2957cc68f78e0cbcd67a968cc7c00b7405a1bf7ec6c85881b2ccbb6e2214ba86a5142785f7573fb873886fa4f08c2644d5199a6f0c2a6c026bf41dd5c4551dc079d3e9663edfbebc107eed462b0f85e8e19c72de01e4820141ee2714621939d1ee904a7b00579bb44719b0286e7524bf560c7ffff6d482064b41b09fdb36a165c31636bcad07f97a1922a077c4d63ade1cda076b67dc0eed2716198e5fc01284b125d6bda512d81636ddd959a55c3b0fe54f058db7de0dafc1e30fc48a36c80492309c65f94c0dc1158b270fbc9bb80eb477d640343cd67834ed8fec3346f12e77668beb96202e0076a1aa6f47203bc65f3eb32d30e2f3eb86e3f51227f61dfd5bb932cc5a0c3bb9caa8ed74889a19a8d3ee3cb6707ea8f63595ec350b04ecaac02e68f11ec1a406a6ce8a4b17e4f8af74f76157e0776360d0dd041f276bbdb8775951ba1b1a20cee59ce25a265f3775023a8a4eeb85149378517143fc82ad4c890622db3fd795897380991a8e0144f516b3d07ce402bb93de35c52ad8cde66698dc4f083792df6aaed1e5d94e879852d72f1f24ac09c8fb4cd144c6c883300593114fb9286af9360cc9d871a40e5dcbea4aedc24b832607d1dd71c7b96f5f8cf645f4caec1a89e91fd013c14e4d884f0666f4c7690d10a16b6f21ba573c3edae6e1866f3568a51038e75dde3385ee14e303176410061bcbea31cf959c54219de20061f19cbdeaace9990efc5d5cd2d2f0834b248b814f1d71053df4851127f262ec398024eb70b06758ae07547a32bfb5d3269f3bfb7598c990e64aba1a1b03b36b66baef41d700c3ceee68ede7588c843b935c786df298ad6b489b8d0e41c913ae5b0cbec0b3051a175978d9bb52905a796beff2dec447fc666fd2641a08903b38e9cd2cea5f36248ce137d1439e5cf1c8f813cfb637b6cbe3c1ea235b19685a2de4ce64d0dcb1dd56cc3443105e3ba62b557627e8d511783cd2b24f8ce61bc6361d64b86d3f8cd0f9924f54fcb84c1b1e273cb96845f7ab6fa1d2167055f8aef49c0155df99a686e16556dbe29dc1de9662410b5b5a943eef0ea5e436a149c03fd6a8f4211f955c0774054828c90536f7572dbb90133264ede57d71f5d6141a8bf6b86cb36d7e350367c80e2f105fb8d3e730add5e345173c04de24308f099c77a6a0bf604c29c1de0614c354e45b7f4abe48f4daba1a4adadf751b8b4f8b5efa849a817c62105fb5943d53cf05898dba56ef506a7a17dfebebcce292db887a882fd03d0c0555f335d4b076aa90dd8441ca69de046502df6dabc7e0b0240335854cebdda8805bc34e34e0100c11850b9762db3e0baddd0d65b8fd214e0abcdcb5f3c8b69fd2761979d40d231c7ebc6a9d209cc11ee3d0798fcd64e3b828a858be8f8d574fc27200b3983f587e62c3708517a82e6e3b78f368903f25dacc928a877ba357bd1bf72caa4476e7546383c3a6fbea4fac5acd361f90dde7b94f01b432ec47a5d675a50c8e44051d1629dde33186ee2c62e4bbc6ea2fd49e6e561584e3ef37ca76d53cc6b2e454aa6692cbd7fa9cf2588a93352d62a914834951b8125f609c5e9bcf042f71d00ec208052a00b32062e1e911a74a9a81cb680f504a16ac4c20a08af8d98080bfc0abc54cc9e9552682d1980b58f52ae0fbf18f6b65bddd386894e8f742da1914edd1448adaf3c21ad09c6eebfbb0ead28bda3487460d0c149f43c04875db3da085b7f4b4800258fee184b01673466d9d1a58a233ac9dafa353b71f34c1f64497d61116c86a730a8dbfbee1ec72300b33339d51f13660fb1cf765b29c7d01acbb1a478771c65e6d1805704bd7a24272d6744ca0a5197a243de7a63377c655982ddfc95f063a5332bf8c766b7ac6e13bf9881afc7f278eb0b4297687d9a44c38429c8f5b6466de3a0d58fa113602f312d87c062ed988ab08c966d85b2d6819fe5f96e8e53c236f30602e2a83460d317d306f6559a6be977d3585fabd7f916e88f4f68c1f718d70fb6923b0cadc14491192c345b621d57c4d9359e87edf7142b22b84af9ad4d73a49aafc2644861a0470c351ae8281cde81736b78a3dd62d2f49f5d3a5270ca92ab272416d09560f631aae262f7595e99b6a74c0643a21dea89d911e02d021f1ea79f0d08b5a64c27e73f01e3287578c258605071b781f9ff7f770415358e79aefada7e8421a750a20008715bf47aeab9cfd5bc72dc4b0887f222f3153e518840c2d8167e8c31d69f021c66705cb96804df94e679335ee331d0bdeafabbe5741fb6fef1d87a4abb5ea0e2fb9a6f52ea4ca97acf29a9459a92dedbff6545d9b17a0b500f98d18916d34735b27ddfded154911af4ae2b2129854065f62255d7699ae49a08c7cd392739bfc261b85d6501728a1f2d6da41fe2afcc04c82ba810bc42dde85bb91cd13b7e600db7c8a49434f54a0ef465d7858d212796e7c7ef4f4b60d317fc3384e5e601c90ac89fa00b20bf96f58a511d8f8a2fa6fb9bd19ae8fc86b5bd0269b393544cc095c5a46cc83f8612f65917f52288b43099d9b1c9295550f9158655696a55d1aad96e6be91065fa0d65a889f0ee37f1abf759c1b0c466babc7e605f974fbbb7832613cead1a095e7dc285ad2cfcd4de757841b018e9b0eb159ba11fd2a709c74bc00b45f56672d287f243aff75ca71b5e3f7f77b9dfd808231c9828ab1cb9724e3f5c6002168cf7bc1190480841b6d5527a8509e19d4c8d2108c20b978be185474874dd7066b4183cdf7afde74b1d54af819d22f80cc84f559561268aaddb36ac39e3ebb947144472a174407869772915774b1221f7274ff7294a6dcb1ddbd81cfba48cea2acdb6191f14b5bb085c31adace126c0b8bc0aaeb0294ee366e9eae808f657c0b0f3a1045934546d385c928ea49c176756791c71870eccc6edd072f22fbecfe6e123e8d3e910fdfc018a242dfa5a2c6995ad73310c686fab16d6fdb9045bc2ceaf102f87ee5ebcd45620d6dbacfc1e5483e770fe09f1b952cf21632c83c28f5c984647eed2ded076f691b1706516d4bd445503ca3165ddd53d7ef0a13de2027ecec7e6c4d18277031306c78ccd92e8e90169cda8854e10352a5a2380bcd480d5381a9b5323a1e1f0d48bbd129a079bcff6df82884c28cb7b5caed8ba89a88dbdff39bce31a93ba673b95809f319989fcd9b9a06df095b821857a7549670e60d9aa9f47b174da4fa0f51b81c7265ff4278bf6734c436119ca7eb45cd90b4825dbb017b080f49396b0fc6f5fab1e58719ea1ec7ebc248d7364811152d5645f6ac749b4dbea6627d535ae0037692838a0ee22d2932eb2b3151b138cb367c124db961d305a9203b3c5a9fe36507686464e392807e2fa699fff204a8608023768bdb37cdd30ff1e06ed1c9e24269d5450123bc1b35b3e1195415bb95160b85d5f5c1865fca861097107b9923c3a033332d78069e296918c1c66e1fde7514846d931d226bd98dd86211d764655d6812d9f318fd337dd1758b4c50cd6361374643d810a457fabe45646d574641e677dd9ae2b689514a9ec663f860593f51e0c52a42d3fc49a4d5e952b6b51316536c573edd98d3f241b595712145e96235b314eefb710898b0b2073e176607c6b3baff6455f9c3e8518720ecbe032887f0beedc7fd59ee5d749fc54544b244cdfb3855d368693a20d80e909ca417599124b902956274aaf3fc63254c1daae0e174aebe5b3955e23f2c89d67310462a6b78dd7883b073af3587d7052c000cb93c3d5f9421a3b3d293a11bcedf5683a5f48828e430ab64ce3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855fa0f18c9fbcd32e38ccb753947081ed0aea25a36a8a7832ed97de30e3bb1218a82cde02109d0ee10560a0d0afc172293c05d182dc3a06f0dc57356127c88e7dd762137aeeb347024eda4fd252fd3dcf9c92b38711ccd1d93832b7533b957ecec683abb36a89fa2a6fcd1fd4510f1fb70fbc50c6a5bfe61b05f0e8e5dff62b9cf37a32b4c0a8aea5f52564ead5b0791d74f0f33c3a5eea3657f257e9c770b86c6123c2b0088158c47401b42761baa62e2988db3524e0c8929c9fd81601880d4923ba4675ed362b8d36c20a3a780fa0b8f51d226d9465f922cc289d7508ae9d112ed7634c8cdb84ab997bc86737d5f9f55f8c716c4f6ced5e56365dbe27364c48c0f672d3ba2e8c98be9ed84e1b2a38a8649cc7cb9029cd02a997fb38e6aa53206f6247017389e5f4b9700193c36f27ea0fdce2067513fc3711e163eb2dbc7fb87643cf62e26094f57753a1fef544c0b354d075f21dcc60c275c7b89af7a18eb3c27eade0cb42a3595be47b8e1f263ef1531eafdaf32b2fd0e911a5d56880486b43615374a8d4b238e211fffc43d2b17e2346438cbf34ed62f015250a50ffb733fca4117f60203ca1092ab5513bd994c996f511d3476bd6f584829a90abaca194dfa314fa751e0efacca5f322c03a147a7eed2242c6e8b42fb15fae29ecaf0b0f1e0e499b4ba4a4cfa1043a2b8d7fd1cea03be75de014fb9034fed9109d2c20a7cb220475f56ae31675e2620f300b6f0ec7ea66acdc923cfaf85f061c8890cf4e1456b8f24be728294f7604713f6e5d936c6ae4c0f3b75e460971b5c27903c5756ec6684e2ae18d1ea45e17d693b70a886fb07ee5ecbc09e33e0f679543ac6a45ed829f054212de76aa6a2133816f47297d24e0230167cdb555ecd94beb5504a9e556bdc40cc9b7eed85611c7fd4fe0a5d989829c086fc94237e2968264a325bdc117ff8ad9009b4243dea18c013206a859604198e3fad7f81f5d8ade3ccb7cb5e12de0c706c2524ab80a790a17cde62e46a3da7da0774a087c8de6584c92d12e93c9bd58cd44f8784775d7d79efbec0e827dc31d767100ac48eadf48a40cdc7ffbcde541fc47399744e74d2ff61291262aee4f121e94ffaff99264b0b29515fdb669c70844b415482a7448a60a4e53e07cede0a8922999bdfc41fd9325f8733cbe0ba386fd3ec159ce512852daa22b2de82f15e7976376476c2461ae83d3f5d10a4beae3b57528ae154918cffde2f0aa8695623f7935704b6a891aea33dd227b3ad0377668444dd40783902d90a0bd908d279a00602e4df31a66cf40c67fd307fb794da217971be45a9c2aaf578874f3a7c54f38e58d3849709ce637ed5c22021ccf276f4ad87ddf24a15acf4d14852688525114e802b53b23a761bec765f5df9254cc4f13545f2e3595e51bcf03cc0ee67af2f6c2d9ac22e2c9852e5de2e40e489046394b65de956fa6fed642329d639a8326390e4536c7653f7cecf830a4182323763c3a58b6cf1cec2024a8d1ff82eec388fad73a9477c05aead8e078d2eeea5f388bfe4712aa5b2ad30ee0f14d50e448741eed9dba4e0243654bfcd1af15db8b9bbdb9cc46744b84a4a3847be57ebf091618f8d1f9f6087b589b42213f736dc112e1febea5d986437d0c7cd44f55e12f0d50a1245e6679f96a048ba4fa1e5535cc9d48854133300dc7e86b8f2f39c28cbc07ec9627f2a85faf9db633d271a48b6d2e830779039a088bf157e8a3b29b09971b27dd7e76464ef0e79b53c535b8e38597908b151e6abaf3b6592dd07d9633a88fdda2f7104de14a18cd40c3514782d4de109916df993d29d2a25f5fa1962fd52dfc02d80d1bdb13bde75d87dfd14c75fb904c57c2197695141fb784fa0202c233163005a789791e5dc339d109cef754fee3147486b97a182cf9149398489bcf837d88eaf5bddbf96d8d8c591272fffb904b1fb4fedea64ea924a76a289cabb3b46d8d7b24fc7f3027ad15b23a5078c27557ade1c09feaaf294206aa3caf404ccf53f8fec63f92681dedd602028486eebcb1ccdfdc9505ea87956a04b4bfa8f8edbff3a2be92171e5d6989cc268481a73144b9de2bacfdc66bbb69e74ba7a1e5de71698ea89aa24b1ee2c7a381c06b810ec97d10f68f5cedc6b9a970dee9a3bdef4e14d48018acc1e3dec93bcf82d5e2c153b47760ec16009244175290c30dd4e23986aabd5d3a5b9ed9d53a7428d43541113852fd0a3bc69ee0716731e6bdee5227f5add64fb803dd26da8b469e66f3d8c35886121247db4b1d0ed2c946cae96a9b40c64ccce751310f0e382914dee85139c3823c36cb9f123c3778593591848a8eb0516104e1d867bc680d9e8d152895e4604eba39757f2b0f9734ffc979c9fcd7ca1c6bc848bbcaff4792ca4f7605f8a1a46a4491c43c7e6b982ea15782984106af722279c347179a759ee06fe8e9e5bfa2281e40a4b4fec9c374bfea23104e4d56e6f6ce6c1b8e4b900bf06cb08a1b29cffb06d909ec91fa387a929fcf08a793164d6453be88244b02e5ad67fecfa7af733cf728c3bdf792f0a9adf30b688201ae93d60ced72337a898127079434bd1368f47f08acf6db66638531d386bf15166d78d9bfea4da164c079067cb95daf98edda8e08a242e1060691b6941f0911692bf468a3f9c5e4b58c09b8fd040bae3ad3283f760e7f7e8cded5a4da98bcf252a0d2d949c8f8e4d187ad66eb7cb2190d8f04fa432c3b0af4288f41d8f20a178325887619ebf61d2961228e757621fb9b42ff7fcd23ab165706ee9eceaab48da312a1b6bb7e46dd804caaad3462ebd5aece64ed0d798ab1378f01666e7171deabee312aef233e46bf1799a6a637c7e61ff8b259e6e4d994bccef59338c1d2e5ffed6263a5adbf167a88d13e4a212c9ae9c01ffdf01532ecb3bc967560a24e461f753146754071bb57e731da427f01c9dabc18a915f65f44252f8afb4e7ce077220b293d03a304b61e83407dae38f2c3bd446b4c347ba7c922aec3fdf1dd933636f3c573083743d42b385c4a928e1a196134ac1c061a8f1f405ce13671c28eb6279b6ed85eaaa1d3e75f1bb407b4a552c1cf6f20d08850fa28fc3f348f6e06bbb5767b6e85828015ee2099309799f0a552c305a0c48dafc8da964601e212599f4357f697c03c0456dbd54c138e26cd475f5eff12a7c6da058ed67ca089010a1c08f938589883b77025929b9f62cce8371410f6735950996ac2081e0aba5b84f01ca3c5f6caf0360e5b4167c8ac6f691a90e7e46b3f0f7e8b30deeeeb4172fa90b94cbffcb5db209a21a88bb22cd10684f33fe1e5b7d61e64d33ba4b391e645782af54a48d6c62e59bfad445765cb2641871b42c05116f4d0259d733d14eaf85128c1dc002d3db05cd885c76e1533bba52d0ab231d73a16278a426617418843539266aa5a6e3159acc37709cecde4a245dc6f0b0566946ec7d91cff19415e6858600f50d223a7ef73307cf79840f75ac838137234bee48fe11c2040c94b8eeb5fcf52ca9b206e4a3e3f7ea67ac89a8d617a7e6660031efbdd067c6c0e4b318cfaf5e94027e636f26bd42c72d8a2f634332701fbab74fe53488a15ca3a30deac07c7fd5f0e10888d7d65d772050f429b62ce73ca23f651a87c9ffcbc9c725abda5a4da66d4d119715c44a464dab78111dc1362064f88696a0cfdc02350585b6155df807580c695cb8e64617c5d0d0c4a6c54a688ed1c6018b00abb23c9de7f22de54e51881fd97d086a061373c5323966fb68a376649465573562443cb915b1a871565d743a8b2fe3490422bc1765cf32c00a59f1eaceb96e28a2705fdcfcde6c0a433f435b1ab5e7b45191906243a9253a8226c5ff5c6fda20772d18f1bfd25275b5a21a3b4907260d8318b5b0207375c29ded8c3717f906776c3b84734a87736a7524672a4e40a4c6bc956521991cde2d01f0488fb2caf424a93b0cd1b04bacc1945a8599aa3c56e0cba937603c64b772064588ee9b3acda840369ccbebb65c0269c60e9b3df21dcb51a47233b91132c415dfde231e8bbb2a43d7c2a23f969070fbfd9b5e0f65972dc10cebd78fe3ddf6ef481e35d5f90206a972ba5015e07b3adeeef239da2d157ad6ea203f33ab4830caa596f5d8a423011c3a85ac21720a2d6c7cd46e2e4681f20af2221d559eff9e3850c4eef1963928799b7a0ad08f83a917e22f044871e618701b448e8812f64c41da7fb44d57f9995ff1ad808d179cbda7eac64b66337722df1c1357db7ba912d53ed93caca7df229ad75fefd00e75677018d784ab6c727e2ecfc6c09f39ea3e25aa177c3135b33aca162b307f1ca90e22ca095af4c770ac549e11b3e0d5acf8ccc1315fdbdaf623c1e669a2a2fbbd04c71ad6c7af3ca74257d1a058b0b771b8e71f7a790b2ab15475bf5aa5a660ba56e9848eb6501705294d836b08226c9dcdf07b49584903f03c5b3ff63feb199f9dfc96def6388c6ed1ef4bfd747bb3f96c2548e55358a804d3a85ebcaba5ebcdb08e5a323c0afa103a1249c9904cc01c234fb8498683cbb007ce29ed5be59820d4e4a8f30dca52db2216d25f280698086c0da8cd098d32cd17ba4f1e1ca6b7358464db2a87f0addabc9dbcc4f644e9610e5be9d2af1dc9b857fa8afc1221745b61c326ed790dfef0c2551cc13d24b2b52e43724bb93a84c37941f037eb2a08b87efd1b076bb94b024406159f79b6185772337027b9497d0b9cc4fcc1c5897b3822dbd31421c96cf1be4191137f140a8180c3dd9576d273d32ab30e85b41e9cef7563c594c4a3b8251769f1f91ff839c68af518fab80373505db02c551d8368361a74531c47947a805b1f9a5d04bb2cdcbe11bfd7558d82594ac1f8b02260d7de7568b1173183c74bfd4bae50af2150aa0a1af0f0e5c8ac3521cc4acecba65eaea5120a5a8c9b6dae28c41391b50dde09a6a388f0cd0ac8b01e42c949ed5d81732f7277ddf9af568b8ba91c7ac3d31405fb01e1d4bf4b5cc1a80d50220be4b17c99e1b30b067c48b963439e52792c456f4d9b0a76c14c0e518bb131f8d6f7e5da861ebce56ac20fb84599df75e7e0cfc4b50b6f4f9bb1b66a2cc80ab2d17723ecaba89b309a5a198a8cff97344143a8366bee1057a2ac2104d4fb53740ee312e00594b5def1d30e60cda175ba1e870032a8261f5f30b5500d7d3427d7c89060c307cf67d2fcdba18baf19031e90657066af2bfea6102f52289218c493f09f04734e09bf3a06aab3469ba9b46d1cd4c96451288acc60c99bc37cf8722aaa5a5f9427cf6b4185acad0b6e0384278422d055901a3aa1d56aa9876572445295a8b92f7be10ecf5d420d8b986e2941ea562e820df0b5db1977dac06c88892e4df3417bce85a11f740edacdb44c028edc8879371424423255da67240e4f07eda6de7bf09f018154523e248f02ba77e6469c71b456fe7858f3e8037aa1b6ec50014c537765837e3b9eb5a8406585d75b31d4cd61ebcdffb37b85e9304f89e3ff61c168c96c6aefcd4255fa09fec5a828636f36b5e79ffcb85bca3b32a65dd1525165f1077f999a865aea323ea2106daa764beadb75f4e9af42a6f1914534203fa27e17ad168c02daa94dc7a2b3efcd7533ebdc216a010d406d94f7401950c8e4d883bf1e6487ccc6b799325d79d4b7ba0b2c8b271b2c2c81298d13dd3b841e30b102e9b11a90351a9cf30969cf8436550735df720fe9079131e203d7d810836d55c46a89d2103e8a09ca9e9ba19e8cf682d38862ff71f84a237f7c52cd44ca8cccdb8ca90903111a756d6dafe097e62ed7ce32af79efb88e36663d29a9bb0b49ed1e935eb09af00191456779a7d4001fbc4dc32977106fd6d39ec6d01368e5bba4243ae3524adad326e8b6d7764dec3fb69db7a894ecac78fe93e0a3f0b20647149f7ffe9261e2e5c960435fe4e462e8982eb914e28ca61ed2d4fd047bddb4770d7197ccb6fa11ebc7fe48fdc36b5471d541ad68080b5fa62178488bf59fee5760932da8114ba8e4e7f546f47776ac8db1aadb90207b3fe960049f72c7efd3f1b1a56b2c5adbfa36bdf177a348a21596a47e64778e4e1d4475800f44b76a34c4f1b6d818bbe4f9db786a51973dc43b4d46c7ebdfb9052d966814ed6259787670320cd7e253657ff6a1400b6c5d695ca9b24bcc6e93c797d1af4a64b9a7b51da4f3f6b28ed6fc75c9fb2f9e08e5250c5dbb7a471dd0c2da7774a21faa3b25683e8fc532a0a3dd8aef03620d884ca2df8257d5dfac2680d8bd378ad058a094dff3c1747dbaa02c19544abe44b4751aa74fd440eff7d5ce98a6cbc01490a680f5c208e75ba308bd7dddfb901c2462d38666cd10926fd448750f29a9cd8a5127509dc062cf65002714b12bf11928f957fb6ba5ce168a62a56acdd86282aa6f38d0d47ba89e2539879a84d64e400eb68e52a5ff94a8bd6159f9dacad56bdd22c0589cd8e5e07219e83bb13ac60dc97fe3684feaa5e241017ef176a55b30e751b02d608560220d38c98297e998385fbc62e8518e830e457619487e7592994299adc0b711a57e5ad3980d7eb4e78534139c3edb382b8873c8e6edc94c2d4b6aaf1ceccf101fe8767c20f3d2ac548edff91d23c10caeebe0365cfee4c9c06bf161a260c2b82321b5e5c8248150ebcfc402a589de89f240da4a378b50df919c87be475738b2431633a65752fed896e3745f9948543501713894b9c20ab877753f0e2f6567ef74c16200f5377a7533b6c96829912a92377f81099e73f108e0bb53a439a935d288010021d35fe169935e71c92d1e8946116945571c2bebeea77606e5c287c6d8dca7c15d65b84374efe3177bcf15dc7f856c75b80114df605f15fcae554f2a8e330d9b7bc04929017531f1efee2b93d204e3f802364fa2b3361cc10315132422b2c8f58af81647982752c5e65c95ef0ea13b2029f0058506ba2b19cb36b028b720b701fccfe5b8103354a75b319655d12c18519e8079be6d1b9ee72d445929d5b991aefd0e2005f8bc4aae70e87fc0192940ca811414e49e5f6bf76c87b9af966939d2ad73f1d0598ffc79359f81cf64ff53f1097f64330329b80658b594780a9da72aae76bb53c4b4a6a8e6d33e3fa3d89e6601bafcb0f78c109e8bf1eecd8245a471910e1ad7da00853b6753f0e4283cee96ec4d8f1ef56787351e23ed92ba9f907d99a5b2a6a7c46ee324db6ae304906eb2914bd5d2da79a3c98d667a50a4cfa42d578bb09fc6d3a20e88b8160bb22e04af2ef03c7bdca201351dde0b257d7fc611d39258f9e715228e3d120a022fc37c2689300124f0bdf841a81f1c0d54b26a4e667befe1728e89f04d5b7f0d5e85d478b6ad31de498190f12afd526c2329d94a789c22a3bf917f76872910f729f142ae03e460f989d9c2ac76adeabf8e01b519f5b08817905fb4fb728010c1d875ca813fa1d756a9a6ce15a31da223c83860875f1df55a353753071074915f9f42020d1aa0bb1b222db081d5a3edf61094d44273d8d8ca2e227e2dc48947d3599fbc9949070da466e945d48d4a02928bd4d8ae01855c9b296b10edb81d2a9feaa29fd1e339a960763c199d41ce90d5b2786af9bd2e7cc7f919d64f50d8ae1d4d0fe2532921be71b64a6064b5bbb4591403aaffa97d28e820539325e3302c3267fe127bde11258d9fea475be802d0f7e460eb0c4fc3645c3459557ebbae8fb0c31f40bef0a1ef6844716c25d7b6b46bbf90114d4e4448e3b553caf02f1ce00d8e94bbe0cb9bb074c2067691eb0dcf9d89fc6fd419242c3e6c3e7bc5702b144bd5878e88999647c425ce7e37827efefa6f083b28cbc8c3e11178709b097e2f588ad1cf1f20ae4db1a371ba24f37189af9d74dab95ef2629ee54c92c4d2b9e5197cc151d499b3e3b727b9c9f428131f74d500db3d561e45b68afb61758f47db1bf8d5962ef4522e872b47efe5f595ee9bca63051bd8f312028d9a7ef893c234febaa3fc70abed6cfeb32ea6197906337949602eb6c00c3db58d9179a4fd0f006390412466fa81e5607798e1f3abc9a2df8289f31a42a51fdded1d441a969563a75b1b4dfeb9d15c0e75ebac41f3fcd9d45bb3eda9cf87a9d80e08f0bd35a357ba0a4016f1cc73100225aff84043965a55382c518a27f6d1ead8161c19336c5f48d082c5385a19fb4476db50e2b9bf6296bb95c154422e949a21472830010585ad7ae3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8557e55a691f5f5743ce3ae1afee4dc04f15d3dcf257e2d1edb0b2d760a9a7f9b3ae3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8559b192bc7096a5d2f5af229d0a05ba7ec268897b82dd6f753c15105540a22ce752e8fa57eac3234c9887d191dfeb36be65664e767506ada5f2307e09499be4574bae6ca0a75c279ba1d191547a572b629bebbee3dc0758621fbfbe54f0e88218a25bfbe51a11527963e7cbb68de774b6a2fc8e69cd3cf5eeebf61f982de021fc2132f1700bb4fc65de2bafce4a12dc1f72481a5f1119d04c8af5db39a404e052cb8073d973f2e1eb83512c5e83339c34bfff64b19260022688a88e28df9fbfea1ada8f1aac84faee16aa05e02c92117bb1730d896b2dcd7c5302fdf1021419e3f11bb50142ea7326e1bf22d445212a9e8969c6b2111f160876e82c0ac54fea5723f90b14f23f5b5e30a90e3864b317ea0c92a8788ae88753391703027a9cd4ba37afe2096b916fc397b125b46150b77410421ff0f40d7334ba6039348b49281238a6d48791f9030965406673dabf032f57280bfefd410a2206003f6c4468a74ee4d1e94fab107378ff32295c07f8db40b2d449e47c44f4c4fdf387640bb0bae1353bdec2c320dbe43d448e75ab96ac04d07e4be65add6a9f020d1cfcbc49cf22ef06c154fb8a9f628b824bf5fedbaf6f829dd9e263f37ec1f3191fd8ed5b3b8f8553ad009fde6797de6f04b675d7d3993ef72e4ad18a1f14fbfa93a0e2b401e1dd4f22aa7b03c9a706c58eede522922b0045c00edf65c54afed6c6edb5ecd334f85099ca3b4f8dbe900910b44a9c5ba31c4f4513c375f463f727e8272ae1712714f46af59d1cf78108bcf25e9695c5b3ce47253885b2d6a2065dc44ad2c181868683da86966c8a6466955532a5c3c20e2828152eb63d3a003073c609fcd636b89a587173751fc10a5f7394d4f0eb0928adb6282cfdc6728be52751b4f8461b15102969cff683460fb052b78a0fc47042bf8e4d3ae3525fcf434f138200e1c9b5c76995cffdd023feb06424bd0121f44d3587a13a5f4ced7d4f5015b91fb73f257ea7dc5b14de182fa16e7417c7fb6a7d32f51a45c0f4a414e186493db9f724cf28dd753495c9d835e7c5c4961efbb5a39dcaa49b92ab4baf316c8bb030c7014568325b57e9788bf4e9364b43cb77d192875af8a243ff8faf0d300f360debdb5f6fb2069994fdb0a7321f99542f0c4cbb084d7445e9500896f36aa0d7e309971ab6c589077dcbfac05b679573418db3d58e5fd8cd174709b165538e3aba20f3f18caf584f1bff9fc09da4cb901ed2b5a708595300b220194a64406c4836911a7966850413826058b0b97a54eab474ebf13295adcba27bd64aa22e4587d419adf9f8229f460240846fd4a6cbbe3cdb0842ade26aa65591a40ce77066231afac867a1771857f5fe3ee87d8a9a79a9d24a507fc955ec0ab6daa182aec3ea29ccaf8e806b64d5dcf27682ed87ebe236e8cff530c02994e5f4002c5d251153b6b40dfdb0f94d265a1040ecd0442457be60f4a147a540fd2fa92c3115cafaf70bab72596abcd1bcd5b78d384b21c832eceedcfc878080db5cf7cf7c080c8074f4173cb4943359d0e84e5ef83130347797dca950738e6b3ea972da50b324e138073d3b86b6c393549617fe77b5691473e2fe91364a412d2b395775d7ee6993fd54875146af03ae1cf496ad34a2cf82e33ff0a975878cccf769475015e95a7e0955d6e7063630c15b1414d7a61becffd15c6164030c0425f9449522301fd8284df4323a8df0eb887f3a10e084a1e97f1ff565aa8233ee302c28d3eb2bef4e24ede2dcad4d94a653e8b2bc0f7efc29130415638b427ebbe9966d49d99f89caea2f8576c501cff0fd735a9a548cebce4380d9e1e7660f5f86a3d2ca3c240e4314a1231a27ea90c45aed3b98967b340486904c6bf3bb167c10edf70a2092acef777105f37785c168dc979ca99dd25d15575d2681d0d8069b053571af4298bcf586dc53e6f15cf5b637ece7c876b928a4bb52541806779dccb72a9dce15c17788f9d823867ccf4badb32eb1ab22d820f38b9e226c42058540b680fbcb3dfef34ab4d566e9dcf4cfda8e3764c5b194e4c9f7e601b184baafd27873fc3f86047dd18b506805505366c4c70f3d172b009ae4d52bc38d0b3726d5b415fac8c7a3501c518f58254099288979dcde1f3f1e070601b9d4e0d9ccde9236b95af64523505a60270f9e069c110ba8256173ad4854993d8dcbd5470477cf5be2926c912f448b70e30a823f09bf293a6a6946c3423c0acaff5f8b9b1cc565382a59c6f1de48de9ddbb232e056ec21ee6d96c0bf60b7965eedd54826487ee9a5be77ef2131d7fbed2293de4f28b56a38de6c73818ea893f7cf8ee9443e54862c494d13964c3314a7748fddd5e8a15f13f4091b15f2758116f5045b7c6ceecf93b393768efed66ae7ed197863d040532ed79a46f6c1d3a93903357ae9ad2fee4fb653b9dcabdb512fcde15b4f0a796706701969bafb414bf00ea74a59e7256d51c39f632a07e7ff61e98148e5ce430577b14652b800efb340d351fd40e311bb80e5f89a4fe870630213cc58195f93231a1eb55ee749d3c362993729cbf2f05a94b02da63609e82a46b5b1c3b820b0f660ad3fbc2331a9eab84aa5f105e92ab498dd442ac93b2cd4d133821928c00b2e81558e0d5c388932ac314e5d8b1d3f9fbfb593d1a6a9786518327c9919a59e96b92f57980209b6aef47fcf7ab5182bade6f57930a11bc26ebfce30d5c579aed1528454e20342829cce283585b9f2cf66dc265296b28ae3b0cdd675e4266cc52335c54396c41d3e04856cb6018bd600469f210556233aa9895b1f396b257edd36ca29a43ff9d397377f7a39f90991ef1d076ff831dfd4a03e3a55e068a921707647d2cd06373e449a6c6b7ba64dd17a892fe1246e968449cfe6be55be148bb6f11327d6b3c8b32c7780f38f3bd7c69bab8f29e3c8ad17135cc392225d936926b92b2af68964cf18f2219c2fbf647a9d80c7442d4e86dc2c4d7a887d6cc67c647350d44c6db23e0f0c9e9f4a1bf2e966369f52357fd01425bc06b9aaf83f94341c9b4c9221162a94cfa5a87016256c42321a8a4f81c852034564e67eab464462b01c2232a104b043a91fdb360978216a069a357264eea90ad912fd148297375a9b671865c10cb2068b23ae4f00820bfa17578c50dbc3aefc2a60ee62c03303205d15c48b72f6e4432e91eb3b5b024f8fc814f4368817df73c8ad794bc90bc1570838bd88053d50c328f611784a2b8cdcb444b9c1dba3d62037fcf4bac8ce138092409fa7a73c2f56bdcefd8bbdb1ffe9dc9bf54fd6dc9e87c276b5a5d37922ea11e0cb8a6d318f87c21066463411d0f44d3268a1ba3854593a0c43bb445b9698f7fa761a05a261c83ab4a5fc3c7729b084905163eb61a3a38bd56e7643cf5131825017e7d165d9bd0cd7249cea632422d05d89178fdb14500f4e655bafecf2bd78775c894471f4a79c7f1150bcf114a7bf0a783e83501b94dc4dd7361cb89c5ff6734cb89ac543f38901e6491baab709f9316513f38df75aa33d8eb3261a8c3bfdffe0de1e54a6007d25d05ce97edf3dc4926cb258737f0dd2f4e6971e31149d0a36c0bd49a847f8dcca0ff6d0f8c5ef7017221ce2b1d1377b2f6159357d1cc673e1eceb3dd5eac8750abb83c03e1ab25bbc06ee772b683bb2bc99ea0ca6826rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootpython312-core-3.12.12-150600.3.37.1.src.rpmpython312-2to3python312-demopython312-toolspython312-tools(s390-64)@@     /usr/bin/python3.12python(abi)python312-baserpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PartialHardlinkSets)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.123.12.123.0.4-14.6.0-14.0.4-14.0-15.2-14.14.3i@i@hhth:@h@h@he@he@hchFh'(h?h@g@gRgu@gR@gPD@gH[@g5@g6g6f@ff)@f@@fըf@fafafIfff|f|fy_fb@ff@eZe؈eԔ@ee@e@e|?eV@ee d@dd@d˖dD@d dx@dw6dNX@dJcdI@d!@d@d@c>@c@ck@c@cS@cck@cWcRc#cccb@b?b@b@bzSby@bs@b?@b@b a@a@a@a@aX@a@aa@af@a\>@a,@a(a @a` @` @`g@``r```@`N@`/@`"y@`!'`_T__԰_ _v@_u@_P_|\@_m_O@_N7_>e__@__A@___ @_X@_X@_X@_X@_X@_X@_X@_X@_X@^z^z^z^z^)@^^^^@^(@^3^@^'@^H^|@^h^`^>^>^8 @^8 @^ P@^[]f@]f@]]]]W]]c@]]]z@](]]]@]V]w@]i]g@]W@]Ik]6]!]G@\\9\~\@\\@\7\+@\\s\b@\b@\Q\C@\4\4\,\2\\\\&@[[@[^[ @[ͻ[ͻ[$@[ā@[/[[@["@[D[;e@[6@[4ZnZ@Z@ZZԐ@Zx@Z@Z Z Z Zz@ZxG@Zhu@Z`@ZLZ"Z }YYX@Yo@YY@YY@Y@YP@YI@XӸXƉXqX@Xv@W@V@Vm@VVhVCV }@U@U@U@U@UU[%UT@UT@UCjU@TeTBV@T;mcepl@suse.commcepl@cepl.eudaniel.garcia@suse.comdaniel.garcia@suse.comdimstar@opensuse.orgdimstar@opensuse.orgmcepl@cepl.eumcepl@cepl.eumcepl@cepl.eudaniel.garcia@suse.commcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@suse.combwiedemann@suse.commcepl@cepl.eudaniel.garcia@suse.commcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eubwiedemann@suse.commcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eumcepl@cepl.eudaniel.garcia@suse.commcepl@suse.comschwab@suse.deschwab@suse.demcepl@cepl.eudaniel.garcia@suse.commcepl@cepl.eupmonreal@suse.commcepl@suse.commcepl@cepl.eudaniel.garcia@suse.commcepl@cepl.eudaniel.garcia@suse.comdaniel.garcia@suse.comdaniel.garcia@suse.commcepl@suse.comdaniel.garcia@suse.comdmueller@suse.comdaniel.garcia@suse.comdmueller@suse.commcepl@suse.commcepl@suse.commcepl@suse.comdaniel.garcia@suse.comdaniel.garcia@suse.commcepl@suse.comdaniel.garcia@suse.comdaniel.garcia@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comkukuk@suse.comdmueller@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comschwab@suse.demcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comsteven.kowalik@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comdimstar@opensuse.orgmcepl@suse.commcepl@suse.comschwab@suse.deschwab@suse.demcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comdmueller@suse.comdcermak@suse.commcepl@suse.commcepl@suse.comcode@bnavigator.demcepl@suse.commcepl@suse.comsteven.kowalik@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comcode@bnavigator.demcepl@suse.commcepl@suse.comdimstar@opensuse.orgmcepl@suse.comdimstar@opensuse.orgmcepl@suse.commcepl@suse.comschwab@suse.decallumjfarmer13@gmail.commcepl@suse.comcallumjfarmer13@gmail.comcallumjfarmer13@gmail.comtchvatal@suse.comtchvatal@suse.commcepl@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.commcepl@suse.comtchvatal@suse.commcepl@suse.comtchvatal@suse.commcepl@suse.comdmueller@suse.comandreas.stieger@gmx.decallumjfarmer13@gmail.commcepl@suse.commcepl@suse.comschwab@suse.demcepl@suse.commcepl@suse.commcepl@suse.comtchvatal@suse.comtchvatal@suse.comtchvatal@suse.commliska@suse.czmcepl@suse.commcepl@suse.comtchvatal@suse.commcepl@suse.comstefan.bruens@rwth-aachen.destefan.bruens@rwth-aachen.demcepl@suse.commcepl@suse.commgorse@suse.comtchvatal@suse.commcepl@suse.commcepl@suse.commcepl@suse.comtchvatal@suse.commcepl@suse.combwiedemann@suse.comtchvatal@suse.commcepl@suse.comguillaume.gardet@opensuse.orgjayvdb@gmail.commcepl@suse.commcepl@suse.commcepl@suse.comschwab@suse.demcepl@suse.commliska@suse.czmcepl@suse.commcepl@suse.commcepl@suse.comjayvdb@gmail.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comtchvatal@suse.comtchvatal@suse.commcepl@suse.comtoddrme2178@gmail.commcepl@suse.comjengelh@inai.demcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comtchvatal@suse.commcepl@suse.commcepl@suse.commcepl@suse.comtchvatal@suse.commcepl@suse.commcepl@suse.commcepl@suse.comtchvatal@suse.commimi.vx@gmail.comhpj@urpla.netjengelh@inai.detchvatal@suse.comtchvatal@suse.comtchvatal@suse.commimi.vx@gmail.comadam@mizerski.plschwab@suse.debwiedemann@suse.comtchvatal@suse.comtchvatal@suse.comnormand@linux.vnet.ibm.comjmatejek@suse.comnormand@linux.vnet.ibm.comjmatejek@suse.comdimstar@opensuse.orgmimi.vx@gmail.comjmatejek@suse.comdmueller@suse.comvcizek@suse.comjengelh@inai.deschwab@suse.dejmatejek@suse.comkukuk@suse.dejmatejek@suse.comjmatejek@suse.comasn@cryptomilk.orgjmatejek@suse.comjmatejek@suse.combwiedemann@suse.comjmatejek@suse.comjmatejek@suse.comjmatejek@suse.comschwab@suse.detoddrme2178@gmail.comarichardson.kde@gmail.comtoddrme2178@gmail.comtoddrme2178@gmail.comjmatejek@suse.comdimstar@opensuse.orgjmatejek@suse.comfisiu@opensuse.orgdimstar@opensuse.orgmeissner@suse.comschwab@suse.dejmatejek@suse.comjmatejek@suse.commailaender@opensuse.orgrguenther@suse.comp.drouand@gmail.comcrrodriguez@opensuse.orgjmatejek@suse.com- Add pass-test_write_read_limited_history.patch: Fix readline history truncation when length is reduced The `readline.set_history_length()` function did not previously truncate the in-memory history when the new length was set to a value smaller than the current number of history items. This could lead to unexpected behavior where `get_history_length()` would still report the old length and writing the history to a file would write more entries than the new limit. This patch modifies `set_history_length()` to explicitly remove the oldest history entries using `remove_history()` when the length is decreased, ensuring the in-memory history is correctly truncated to the new limit. This brings the function's behavior in line with expectations and fixes failures in `test_write_read_limited_history`.- Add CVE-2025-6075-expandvars-perf-degrad.patch avoid simple quadratic complexity vulnerabilities of os.path.expandvars() (CVE-2025-6075, bsc#1252974). - Reapply patches: - bsc1243155-sphinx-non-determinism.patch - doc-py38-to-py36.patch - fix_configure_rst.patch- Update to 3.12.12: - Tools/Demos - gh-139330: SBOM generation tool didn’t cross-check the version and checksum values against the Modules/expat/refresh.sh script, leading to the values becoming out-of-date during routine updates. - Security - gh-139700: Check consistency of the zip64 end of central directory record. Support records with “zip64 extensible data” if there are no bytes prepended to the ZIP file (CVE-2025-8291, bsc#1251305). - gh-139400: xml.parsers.expat: Make sure that parent Expat parsers are only garbage-collected once they are no longer referenced by subparsers created by ExternalEntityParserCreate(). Patch by Sebastian Pipping. - gh-135661: Fix parsing start and end tags in html.parser.HTMLParser according to the HTML5 standard. * Whitespaces no longer accepted between does not end the script section. * Vertical tabulation (\v) and non-ASCII whitespaces no longer recognized as whitespaces. The only whitespaces are \t\n\r\f and space. * Null character (U+0000) no longer ends the tag name. * Attributes and slashes after the tag name in end tags are now ignored, instead of terminating after the first > in quoted attribute value. E.g. . * Multiple slashes and whitespaces between the last attribute and closing > are now ignored in both start and end tags. E.g. . * Multiple = between attribute name and value are no longer collapsed. E.g. produces attribute “foo” with value “=bar”. - gh-135661: Fix CDATA section parsing in html.parser.HTMLParser according to the HTML5 standard: ] ]> and ]] > no longer end the CDATA section. Add private method _set_support_cdata() which can be used to specify how to parse <[CDATA[ — as a CDATA section in foreign content (SVG or MathML) or as a bogus comment in the HTML namespace. - gh-102555: Fix comment parsing in html.parser.HTMLParser according to the HTML5 standard. --!> now ends the comment. -- > no longer ends the comment. Support abnormally ended empty comments <--> and <--->. - gh-135462: Fix quadratic complexity in processing specially crafted input in html.parser.HTMLParser. End-of-file errors are now handled according to the HTML5 specs – comments and declarations are automatically closed, tags are ignored. - gh-118350: Fix support of escapable raw text mode (elements “textarea” and “title”) in html.parser.HTMLParser. - gh-86155: html.parser.HTMLParser.close() no longer loses data when the