glibc-html-2.38-150600.14.17.2<>,PgN€p9|2ǝ !u:=<>?0dn'(%ũDD4+ySC{Wi:@ˡ7[SRA++T;@J%aƽd_4ڐ5 eêT}bGA\Ԥn,t.n=1e6MTT'?گ_ѸB3M{pSCIwL/ꋍPvIbcaEM!~ RJC>4 jXA!ir/#?rGu aq>;?d  ! J:H ^q d @  $  NO(k8t9:,FGHTI XY\]^bcde f lu vzCglibc-html2.38150600.14.17.2HTML Documentation for the GNU C LibraryThis package contains the HTML documentation for the GNU C library. Due to a lack of resources, this documentation is not complete and is partially out of date.gN€h04-ch1aKSUSE Linux Enterprise 15SUSE LLC GFDL-1.1-onlyhttps://www.suse.com/Documentation/HTMLhttps://www.gnu.org/software/libc/libc.htmllinuxnoarch %!j#~;*f}GX%v.1 -=,7/R@/4# (M- <$wx!B5yM ;+.!z%=^.=J ;~r3wc]I$!DQ&25+;!oa4H cCb/  e- ![;Bg] 'vZ0X%$0"BX`!Xz %##lcOS^M !<"p!o'4e!#:);.=$#>ms%%o7lW0;toI$1]N3"H P;2=jG"48/1HC!,@43!e71!#,iet3=l<;"Vo(*#Y/1=7+A.T+4$-6x *|$w g+*4-E1&DM#**7!vYUQVq$Gs=#~e (* V7N&[0F-3'^Z }j/f!F-V5)kt/'4"TPj.OD "(O=&]V|"L7k)RnOe) AV}4#r.=<MH$*1" LhMk){!!$%U.7+IW1D41(JS&D'e^& 2l~'G)) ')&oC2_%3U<>&*Dfe-p5]b'3N/\=(M CM_31%h"r'K(=Q1FBJ)2!!+(7 )t0Z!<%Z"#:+dG\v^"|8C#/c+ 6/U%I,}zD"n) &.<"< $r$<"> " o)#G&: p,#V'!S+:+%^$$}#QbL U#50q!/M!c3[M4(&A"(OG""-t[ 9*+[!xN(7%!:.z<4Z1&E2*g"%d"[6. 6 &%rJ;%O< $n ,L>J15c-v'`X?J&A)A큤gNQgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgNgN57330f276db7af456bff242b102b97aae25595cf01a4cfcaecabe0fe4091cb3268acb8c51750a3a33965a02953b3db72f2c42706de8a51083f1096e4c30a28ea9292497be46b96b3ffc6810ac0ee55042a909a021a68f870615a1b3be995f697c186c6d6519766194877cbecab62e641cff77d22231e52b4f230043ef2788131312122b712f21d3ba9c1fb7bb2493e19e621a352dc9ad2a76d86750040cb1125eb791f7804e23ccbec6668b615ea1743be924f5c6e82b4c82c30a5260572b587af62ada3fc1e560c6671c17aef7c78909575062282a22d0239f8faebdb74a31e1a36bf19dd0d5d5245cd89477edfaf75c798304515233efbf714dc610847dbcf6e233875cce71c772a791b187e3e5c1c9403814cc1637a9d3fcf52f2de7fd241039aad19b10fc4e29cdc138f125c32cbb512a3f136c75725e93a94a35210b4003edfbe48dd7725e723f62cc890276990a1fcc7a8988f89196d4f11370889d220ede411a3da4adbc1b50f36b0f98696b6e6dcf0581b3c14bc18c15a1dbc7e47481fb25eb6698bf7e41d1fc20340363efc487738be715904a09f820eb070283f87261f1ffb200c65e691a96b5a584556221447df1a29076decbf1b9aa97e58ae65c9dd67df9d6e04dd9110edbd06afa47bd4f22eb19ee1a5c753cb3e0699953f2de07fd3ebd7e7528f82a5807d104a8d47093fb651f890c0679a7066423be2a018a3bbb2b052cf69df4f74c4a7633ea79241d788f89388718d96652fb9a1a583e4fa6cac7ce1d741ca2ff75dea96d21d274e665b691ffde27629246d690bd2b4bd8754ce0039c90571eff72a5666cae340f64024b9959be183e2e09e94f54a584f0386c4235e5efa68e4f6d303719304af5d071ebb2a4fc8aa038b3a7e74c9835a146fe5ee3896e2eea552cb292e83c630caaddaf77396b09f28176e893eaf8e9dffb0782eb67bde6d3dbc9a96fe8660c0a3e42e550c7ca3c88a1ec097c3333623ae2729f470d8f0609313119aba477107ae77556ae526122ff36624e7484abb66f26c30ebfb118078b34af92283cf1acaebe6526a40b53ba749f25f326f279d156fcabe85df58d365f90a3285b0613a42e1b088fbb7b66978d21395ecd8493d3e7f29708b4b9f720dbd7401cb5c4009778dba4cc26412f85fa0cc7616e3880c5d23d7edc716f79a517d67f2434dc8bc7270ca9abd039a363151b3f6c4d42e8b0cf37b184d892e31d53153477969ea923b97444bda2a97b50fd9d23661f80ffa2f62d8900dfd129bee9079d6adc7b5df59186f92b973119c20de0943cf75e7293cebebd5b41cca2b45050ca270225919b26d11a54b8b1bfd6efd6564aae6845d3ad9d8e9dcf9d92174f1b92c634c309c0302cd205c516a3cb9b35409130f9575731545c8076f8d304e2b0d5cb2c0f35270d5322cea5cd3757db850a248b445eb479b8620f8876505fb0bcae1d01170095137f53f351969839247c9d9bab7d8fda00d3769fb48d182a5157dd29ef8bd0343738d9f7631d4200be79b38a854b55e19a92d28a1136a8505ae183b64065c44a983c0788c7c59a036eed80a18532e2bb08d9af346c8e74237ced3032b1e08e51f4adab270c4c6cee086395996caa2fe7cce3766a5703263cdd7e2e9f48d9abf40d5e949a7012e36cbe2c44495083082bb0d76e6150854121f3eda315e4300c63bd16a139454cbb4bca167e055b05b223a067efb99b58b121d9a46a354899195a9658fa3ad69d8d771b0e8f5e3b7be4c60308d8b50fa37e6ba43726d972ee2058bd80082093208fe70d72a9454fba0b782c31f6202272d4e50a3dc6caaadc4f99c7f648acee8645dae36defc7744d2c4d4a89551b23d8f11f56b855df3123cbebc4c4570c22f11ef9c0d19b0bf335494b70c3ba96cb27a0a576223095d9250943182ef78c564a7f85c78db4bd2e09948db24630144799659c46f5b8e3809de87358cc74d508902696ef6e71673bfe6ce5022853fc835721a2f6888fe17da6259bf8e234ea98cd0a0fca34ec6be17e25274e54b16b059a56356b3cee052f38d78f4c974d2d3a20b30a0b5bf4ca4ab368f3118453b1df5d123a99a520a886517c41799f4ba3aff6b8c7245b21fc48c89c149297cf75b4e785e1f21bc59a96177a593e52daa94a9f813f14ab48fdf19589f963013ff059495787c15c10f5f8fa3a76c214de827833e3fcc9e0a693a1687b4c0911d2fb47e5163ba3608dfa96a35546581c0d9a093d0030236e6c1ca07274d60ebe3824f6dd4a97d4e7ed168dcb1f78247e0c87eda656e996ea987852a076d5b9478ec01efac008b10727e979efb6ef07784e1d802893a2ef70af6333358c7d58cfc1165edf3735455303b0a8aa587463dd32d66793e4123530146ccc80570354898aab4c07e4f024dae91daa3a02a1e8f399c90764f783b676434bcf377a278fc0ccf9191f339ee27be29bd2449a5c147fac7f3876225491c22c8a52e387f73fb1dbbc6b6e4277a07255d02bd1cd2555ca812b358bdc7f57c49b413371b34c943bab3eaf7e1964ea45bf0a26896d73c8f72f1b65dfd13829ac3245de2429497c19d58ca07cb3fc4dffbeb126fb3d7cb5806994d890eb0ff7ba0652e02dfa22d6bc31914e9af50c0af2b33fa78c3c2299403781fbfa57863dfffeb1d1157d3c45310c142314a56fb25994f13ffa380599c20ce418833924013e257c6003101c0a98c9a85e89c9eec61896c85bb86674d1909a29ef86f9ce5acc92101a872c44019ccf0a467e72b8f6b5d87e29566b03650a6f8b48eb0f513e1bcec6e788740112c8ff37fc5898d97f86a0dd3e9bb1b41365e93b439704fd4f79a7639009f07b4ea020238ee2e029f6da8d38d713ccf728b580f860d77824ea3ccf3ae911929e26b1fbaeebe4a11b40750ddbb3b9f9946c7d3c668106be9938f7b7ee34997ca8b8f0315e68c5cb30457d445c81cb125c7c6aa0a702b7324d76c8367633af0cc028c40549846f8fe2403621eeb2cdc784d3b608219becf7d853d0290d0f0f1d01e4149e03c3540a78a5bbe90281ed34c84a642abca9206e33cf030288676aca778842aa29f04281ee9eb5aaf95571b6098e6a805f3496f34f490d3ac18d9536ab8d547da70805ba7b8f6db73ef46a3b3ed9e261adafbc4250bff94a6d4a0af2be881861198eb2e468b8455b26f1aaff8ba82499c57fe6f5f1759f32f00e6148cb90795ab7d34b51ddf7a12c7948d127dfdafe55dcf8a2c429e64a9cd1a3f8cafc967f150992d9cabe31d0333c350069523c40a2f6852f329c23016e809eb55d13b7a5add82bce6e31d1cf48ee8f10584efc67758dee6b85263921fdfcfbc00a27cf43d54e6e99e0f17454ee98461ce6cb59d8e3d14d23d453f666f0d277937474830117799d7d7aceaef4d7c4fe30dd932bb8bb60590ff3cfbdaac60542b0cd57bf06ac644353614a7b497948e61bd39fd3edfdf6d2ec56fb1d6a60d6182fe3249f3b823ccbe996d1a87596ac7dd3e9a6c6289183dde66045a07a7da53366a255f657acbb74cbc945b0e9a9b4d8fb83c906e77f20076b07a509bf81e483a654f162f4546d8b1cfa9e2899a292c21fed1bb2f0e0c7172efd6f1123453da03bb8f567151d49531f70cb94acff739370d88b2021b8494906f58355c335827c9f3b7fef2453955a1a5fc57373ca26b08ca6385cdedfc495eeee0916e1fabbebad41c9ae7a94197264fa7d038e7e81adb61c74b504e51b412409ca20932dc5c6bb3d86a54cfe76fd244bb19dc81f0656b7d32ed2e9e116326973897a0720df1a4baba03b304346dbc84f593155fdc613da3e97e143c18321612f7f6787356523beae537649279caeb82d38ff3b79f5808bd73196ea7a8ea8ba7ad825f03f7982735a051d554be5fcb0ac55a23ea7f3ee6695ed1463832f00d308a3cf626a4e33150ec6b859dba00e29a3dcd74b6650d681b8e814491bf11b41b3abe6dd3e52fdf7c1564eb90549c27b0a4ae577a19be89d02dd895af95ee8e88abc6854d221f6387c3f21ee1efd8471c38d23434840bac1d41c934d6e03393d428366c3c1ab54eaa3e22abc0ac68b87e6defdabcf89c90333c53c264ab432d9e652261ccdf44017e61afa135b68f96fb9f9f5e3d702b0573e7fbbce419f766599cf5a9499306ae829b1a055922798bc32bc6c6a64e009d1b2174c4734e5a4128343f7cd74af5e9aacf1f103ed187283901e1f3e003cd5122c58ed3900f570e547820b921f42a5bc10745f5b54896cb725b30e28f10d4a592c2b5ed3c062ecc0cf029144364fdb0f7756f1fc6e370c46eaa86de662941bd967ec2909f2fa079bc98cdb939583c5838a6acb2e52525ca76c13ddcb2e08b0427e0ca4c6ecd91e2add04b6f7b122ec28256bcdcd4a26c438771a182e461bb935e113252f093ed4449045577dc003f6722e772c93a4ef8e903633bea2bbcd27f6ebe650c23cdc0b58c6830aeb97d6145f893877f15687faf3f6c872a73d98a408e306ef59bef9a576f6a1d76684c04625893f82b7965cc2c9bd545f6799a9c4e3aec9bcbddfd9aee20ac0513d1cf15ec920bc02af82ced8e3ce7256c7043c0d63f9cde98871c4c8fd50568a39056abc3dee13d497e9a0f5f94303084538950a3b892832915128f4a098ec97df69d9bf44b5bbbd51bbf137fc8b8f60103d3e4280fcbda62ddb45ae1e0657e0953dd3bd33e40574335f2a4d51f4db8cab581b382d223664673ec9ed6ff7273f96616a27acccf966e8e96ec8ef7b69149d02e2d2166d90475c6d4ab9c2816736759ce96c3e8f6d6d11f5b4560ac8e8523f028cd919c7f4974dda53853b9ae0580ccabf6c93986b50beb6a99cf85a95548935212c9ff4f9200e2a89b703aa8d68220c8db3e2840082aa0dfaa0f997f0f59b7ff82c0c2eca63cc390ab7b04b56b4f9eb1a164329524f19971393cc5f73370fcf29f4c1166f6b0c4b5ebf880d52ef6f6a5f8cd4716b2279845308cb1740139a362ab08a76b4ae7414c0995a708c8b96f9815743ac313c6302757eeabfadda81bd9ffda3756a16bd93c834021b97ce3d74885af3231865c30fcdd422df7da0af7993e5195cb244a52f80b0b9193ff464ca96df223deeb16455c861cf2ec86d88dc2a6763f1b6c1fd24435e8c92243e033c138d0187ca657a8569be8f7cd565325a35c49833b72ce4b76f0ff4f980f7c5c510a903c6b7af76023916fba96fb999672dfc580c40540a6cc647bdcfcdded72499ed0b0577f62296832433fb9999bdb92644fc34b0be92f9351a8e27f029d132c6b8af3000b9d7b1534a72fb55bb363c7e1e1414531845441e4cba5566c96ffb57c975c98c5c9f828b211f33e6efb5ac3881a8043ce4d335f51538d7243a99bc51c9de9542b4541aa31d09fd5b1be4fad526cffb148aaf923e075c1809673938ff971b7febb5cbd8c42c7d993d7176c3ddb7e6955df120d1115295e1808ea506943c099fc77da105e4fe007ee19dca83323ed94b7f13c21426e5b0ccdd0108ca493d12b289c9cbc1f6627a08a11d82c0ec41fb7415d3f65b8f7cb1f1e337c1497fa4d694d92997096b7b5709033909ee078c9cb84ff810678f2c67d8ea51cd5cc1f2cc5d6453776de2aa631f4a2b95c0d8cbdd683283ec115b65399ff5d70b8ff9d48f90ab5cdd45953fd4064316bad2dfb1edfa8597a81440b5fedf59e1d081d175e74ead7bc11c973f4708859e48ad1c0df53ce57f3d9bcd1fd50ffc66becb50e6d6ac4ab48e380563d039e691429e991da1a29bbfe9d04d454c0843727aeaf66f7964eeea08bf8262109c9e690ae94542b191ce8b8cf18daccb3f18699071f4e760aef1f6516aa71834813dfa3fffa43c2cd1e81b7b85d5d11c050c89f75ef5e804d60a651974c063d3c0ce582bdd2cddbfd6cf7f2c73aab6d5e1d8beacb1743f69fb643ae5f6ad4227117761d48c7e07ea65c5c1868e78f3408f0d9fefa7f1fa3efcb55371f7d1722cde22191ff6a46466b941572a2af1d7d46973a2b53f9064ba216bc2050500816a104998238547ac082f6a7faeb7729f0121511679842fd769b450f02bc2475442a6ef33c64aa9124bd8b492b05f7cc576232d8d3d7152a93b01df1b6264ce1dc665c171867a2e0eb18c939d9394dcaa34509de445ae1b9d4838d89fdab847066acaadca71f61d43f92ae89974c3e887d7fe87a4892bd5a62ffb2cb85da384e0a12cea61124c47c2d7a476f77b4775dd10f651444dfc4dbe59361ba998f21ac8f954bd037772229e1af4adefce3b8616c969406177cc50dc1ba0c637270c8184b0a5b50ab732d1e6c7d4a60da2b79d4eaa4027236dc8acd63920a4666ec5f66e56b24bb0fd09809c2a47969ef26686d196feff073b58876e5e67e33150d5dd47a360178143810ea4248533efd8b1988e7523e20ca96e769242cec32697fd66ee8b38cde05bca4e5d8b694745e65cf882771e5ca6ed5bb1429283e364d770364323d84118d6633eb0e5e5ac6e9a28e27973b9947d5113a05654d353a3e339dc8622582378c1b079fce466acb1b728af97126f04d3673b88325e53442daaa4089db6dca0cbff0b3dd49dc32295a9c9d173f218b63223f01f2af81fdc2a1d4f6e069029577ce2ecc01c59a6a807fb97cb0f0a5549a5be941ee8f22388398b072d17e29415d9bf6b7733e0c292434d6e750d20eeac0e8fe95a14116bb15143cfb3f1fcc8a91815de81a6c83c63588d010aab79e15cd4d03d557b9b1f80e871f46773d5d50bab311e63048f3a1acf6c2c742503c08fbffd05c5c5565b42ca6f19c04819bff2d91f018c9f857eaf3232f6d4152a01eaf55e9ece6af0386abae6b1676b2b5e007c88cb0fb286f83deeec1af6a9dbc400463728dc60be64612439b845e90091aad33e333e6da605693a85406e77e520ab1402ac0a3a1ae8e196528610c420dfbc034316949b40054600fade036b35ffa09d390c3b06cfaa46b8731ad255f611549b6a445bd310634d24b8582671762852b8765bbc3e66693b619ae2f356938658ed1aac59b795051d56b9dbefd3bed86821116ee7960e8f0575dbdd583d50db41157aa610d84747cbf6d6ce6e46475509cae429f6ae27699a707b2ed337cfa196e1652dfc4d7bddaacde71016cf7cf87fe3cd67c15a7c5ec80c48d1b4b8ff841b9a98b3dc9196827b4d4ec4be7fc50a75af19202bcd407d93466ae6e01f7e6ad893004e0169a3c118d305bf2498456c526d49ee4ced569dd8d1f0e5e588702e422816b3440693d70b0475538b515d1c34986bb36b1f49319f1d57b9b27b28a54dab9654e650ea55e0f28ec7a8043dbb498d6d748d5e78083c91b26a3e96511bcd5ab009eca831ac52d21185d63d35175f8452296d67c9642eb439692613de40122a077f6886a4c6cbff39134d5a3e776458a4762a9d2e592e8efb4e44becec71249826860d16cf7dc653158e3a60f5e2a4636957b79fb50315f506e5e08a218cbc465b8a66e1a41dce8a0785bf2640954930952cd34e05f76a407e4da1c2877f0866d277132c712a236bba2ea91553628806fb16a61d4f1793a5e474dc80c3f9f9dff23a06cc127c9aadb60b46825ab08f8e590466a2195769205392ec5aaed36f4630d72615c9023a096cbf6a19869be8b11a225f7165ffcee9300e57f6dd0454b8050b70947f337823a5755d617548a3aad4f0ad693d8849654b2c8d26adc44f7d0a7517a605b10abc5463e21f8a7bcd30ee7d64e716f26cc0fca69b9f8a4dbc201011c70eb8f39bef0b83cc9437b0b826b2da16fb5017502d2dd45a3d6c938608775196438f836cfa1eb267b05485e294fda1212337eb373a0a944b447eceab40e57aa4b3e34293cb371bf514559ab78eef32f48b3e7b7bfd8c4e6dbd13ca93deb999f6d25e80a2b02771e5b5471d87eb4cf07ffad364eb7f990167296bbf08bfa0cae314145d71e796efca4b2343deb0d6536fc4ebf074cc94548c42aa2bc9fef7bae4faaef3b790910be594c627bcc024b0baed7bc8bb7ee5adfe615886dc0fc3d5f6ec860df4763e6496336c86bae8d15fed8c0b0a173f23bbf0efaed7a2e0a02c9802fb1816de9d761533404b6833baa0752b1ef29b9a79b3dd00baebbb50cd74457f7bd8090268bac8d483195ce07f0e8359e6a3da967b2f97387195712fafff23cda92cd4baaa964e7096e453fc5651692865e8e7af4a538f4157274dbc4b61b7ae571e113c3dcd58bc6539e8cfda56b9345b0d054d66fdf254cacd86b3eca1bf078b60ae89aa5ed866916245631a427a4d2c28fada608a7a6801786200d5798eaf14dc87d5785e870ca60edb76b07b037e428ffd969f48c19f79a86521d1c34a3c6b3f2e116e1c86eb3bb68e09d6c61ba246de671d0454cdf0e0398adc24bad31161987a9192010bcaa0b182d0a1d0364708cf1e5d59fa70f894f7aaea0ecff6fd1a72d2007268c0ceb618be2bc5fa7c3d47fcc299ee2f383d4b4a23de5c5add4a36afd1e9c67544f8839e3dad73501e3afe7b0ee67b8b92f0c4ea120fd96b2e385d88e3966f50af9158a4174d02647cea2b20101b4d08db9b74bdb9c74a82de158e73d47e20455b171222f5a60949c0642e27cf9b7a2cc091420f5ad5130ddea00de283160341111ea555f5bc840f0af802e2a9ec65282c6c0a27b9ed1836f69b00bfd19216acc6407321d45d2c07e882a6f1050ec421285019e4e7f2728f327d673af4c76108d8eba712a0db1fa8700f865ba83274f44cc27ea0b6ca031d7703669654d0a073b195a922f3195b44bf26d423f4ef873a8c8c40556deabad8580c9183b0ca9742e75fbe06936c2b37d8d7b496cff9c17db39f76cfe2bab04e7def2b2c070316b88e3638ee40ab41af6699274c30426cf40d30658e788d3c1d2dcba3c9e45ad0ba13c8123354f0a90141d1055826dfb00dc329116101f2c6e0178c594088602f11852ac004ab2a93cea39c383abc9085e24726cbc3afdda94a04d0749ebca1dc2a9e80ce9b061a7fb8db3cdbf76d9925dd220cded419b3109406d2c69d9ca9292abb3ab6b0e4dbba6c84b547ac8013f6e3d83c1fed6a23726a5abb13d210b2e91002fa60519be01d6c4a4d46ffd48d53d28539dcf63c748722c030746ff49d53d5ca0f25f502fe929a16bc5bd641e95c891c11c2692a7348670d719996e69156eaad9ddffc3514012ae9c901d07b1f6547046f0adf5a1baa6973b50578349bb2a97ef33c744ea7ab1eeb9cafcfe79b3147b7872f9184e73f5c6fc035188c4c89ac6ead92fabcc574a1e6e4341d50512ca1140204ef56217db4dd601e467ffc123768c28cb9727ac89089aedc0cdec08445de2f47c0288b116d4ee987d116a7df92e39f3a04084a30420eba37c7618781d4fcfb55dcbeb21f7e67c1018e277d52d7c82504e3983b369fdd0633208db089d7b8054d660d82440ff674a9f2f6911e4b1fd6eaf91113efcff0575c682672616c3912123249a37cd06ee11188c8ee5243f178d30388a7ce1bf4cc45c22b031ad5d998a2d32bdec010280ae95202cd629594ccc46d30715adb5026b3d466307fc88da54a1157c81443178275a5675333914131e2677470f5fa8d76132df2df479caad29ee6414509f7a484fdfde549289027dfa1068eb8809b2e1940a9095115bb29548c1cc3703aa8c66489ed3c7ee635a4517bb89ef99aef4400924ec76f96ffcb3dfdfb3d75c5feb971dbc14e2202e5473afb4afb890dbfd29a2e6e3b8524d363c4ce672191a7c5397d2f5ac1b5eb8c422d9dfcb1bb6b02c56ed1cbd7a0acc3c8fdc542ea892163cade89c78b630285a96cfca58e6b79190375d3e7816b30310ffb710024ace690b3663bcd3f3ec79cf9df2e63f03fe989d8e7ea1f5dd0d8ae976c944502dfb877f7e5e9c0791d3e82a13e6b656ddb7dda08d34e39be4077f8567d5301f53eef1485fe0487914850d6003a302118c83387a59b16ec91c12266a8527082a9f02b04f186e70ef3c4d5bdd118611c798243c8d17e95816bab4a872d282f0f1b423cf0c882dde2d32598d9bbd5a4b4bde7b25ef58715c86fc8033f0fc795ddfde2be0980e8743cb875b2a97b1d223e06a31010787849657c575d5688c76b3754e944106a866f9672ee0dbddb5a834f453ad2adbcfc54f1da4d8ce785da4fd8ba25084cc8924afc90b05bb431ce2d3d4af95f79b93e62686d8e24bb574d66c9c5229307a13e7efc170874cb7383e8722d3aea125b5a2d5c21fd5740c8cafca00cc41d1694fb62ba3803733e3dd1b297e5cd00cd2cd45b73025c2cd6bf821b3536968a2003a5b9fb14d8d87111aac3dbc198689766c8083b62672e15834847587b2ade07763de317332fb06e964b83261e4c674d49b2a8dd8446a3ac2a98d12796df9f74c8be485cdbd56bcb8a4f0b76c646c6d23c9e8d3729b4eb29aac21d0b495e822c0fa4ebface659432936618650bc016f394e45617b5c2326a05f5a3a459024195775c4bce5754de42ab46372c51c2a517a9eaec1eba543cb6e4cd6fa75ba8757e84ed46d3d0416262cdcfc6dbefd2ce306ba3274c75d890a26c07633eee4dfc7ee86154e0143d768e36165f74a8bfeb225ecf2b5afadcd53750ad3c287e7a3df5b2639719552b699c58940c44d370c22eada1124070c33a61f12ccaffb9e357f098214a4f62150f21739d02f58cf217eb6fa99870aad8db7c1443cd8197809613283bd5dbff6a3afd9f7ae6f79d4613fc3e6f931f57721ffcd952f19767767cd6b548e10abcb77e2766dd847eb98c45969caef4a6c2ad8cc1a1ce8a534f3322f12a3d357f3925126ea0ff25a09bf0b6124650d5459cfddd0782bf6bbc042f2f20ad7f93979f8bc53a2cb62b38750f86fbdfdd26865d476a56cead48b0facfd7d11b7b6bcc6469d281d8469b52c5db04ee26740359ff28d708b313cb587dbd33ba6a530a8aa92999eb4464314bee071ec4fa9c2013c238a2d8e58ef72693e508d51740ebfca3bc6ab61b110792f44db779080a50b38bd6cdc19f986f72a66bc34eedef2e50fa0d2dbe66a6b1d7047b6b60760adb182b97fbe96232631806fb7af800b1cd9550d668eab75f67a663dfde1e22f8f5265631e3d74a9d9ffb4c67f72e2da8f7a96244d2b727de312fdac8b5d8a15513fcac7e317ee63a0ffccc92ae26013001ad6649997889f25440441ee259cda3ad54b696cdc28351c1fb9b2d3e537b267e068a37b05f3a9348b31c2c3b73ee8e3f82c4e538b60325da7b079850d1592e3b9e6decc743afa84ac11355918a2453b6588b6baadd7c7640e83100af20dba03e79a8ffdeb5838f5cef096009ea664354d0823dd2692bfc795030a5d0bcf044d6f9a7c58070a79785b1b2b10e21cb8d58fb46ac665abdd4ccb70f69f5e06dbe6144e940c2ddf7cba3f204a7ad87499369c03896b2a89257e9e15d4221fc816cd1f9a5416e5237968c8f637a07e4d7bb5fb0abf79bc1c30ca3ae374d68d15318f3c1144ff6ccca37219db5d58e79526c0fd07ca1b713c588ebbcd2acf2c4957b3f2101787148bd77a4960c9ead3599454c5062ff5f90c66609d233f7933ded4d0e570b65d351527efd6ba0fd5f1438723a53a25417d372eeebddeecac41f93029a396abbb0570c4765a5ff57a323e3d922ae1eff9c868f4196b0da1f854645d4dd73f78f68719e268177bf35e9353e9b38153d1b218d06b96b2beb41ea390489ba7492c37c9c34f2761117ab7603a8654731771e90e60dd42a1ce3f27391fef55715dade456a7874da4d0bdb29d5fff61f011ef53d73f768bdfed16ad2da19fee70d4d74ee387e9bb701826c069ce1b3c14e59291625bd7d1d96a598dbb884bfcb4174e53f61cf8c5954ffe60e34f2886ceead0f794aff55317e4a84c86ee2fd258e8fc4372a6fe3bd705508d9a5f62ecfcec3c07c8c155b28e951c5bedafde4fc273b745c70addd7f861179fa1e0ba6d0ada242444d4e9db87b071218d8db90d18684bd2801265564e1fc6c2f29f990fae9b04b3cb2e18f3170d72616ec99e03ff8cd2c9f7517903bf52379971537ae39137b1ad9d26e2f27926465e6a40fbb084fcc6814ca48849996f007effe380281e74617d66b93d07f6e2b99b4b6205ce8fee46a844f795aabcc08d626040fdc247715643e043b9d3ab765b91904c28d6d034b42ececcc26da62088d504adeb5c7f9655cb4d6a4374be6ab9c4d366d3ac1acd7a3eb431210cec6ec1f85973639c5a5a3a9d93f521eb801098ce6bc3ef2244ef16a17b76389a00bdf9cff54751ea853eecb7dd1552e783f50ea70553c23d99aee0bb27c6f13d2c2f153ef376ec50bb05d90cd834610344057ec6d65b27ddca81133f7fda7231b9db3ba4c65c6fdca9cd6caaf0f7865e68907923cc3e13fde7a19c69ec4c71c464ae76ea679cf71aacad7c2651aee78a426f1173859175d6764c4ae1828e49fe618603770dc3750f3522a905cba9862077fb1689c7e13febac59b37899fa01fe92befeb9759b7395c999a3281c81e4de756998d6f341256f1977152c4dba35c57031298c60c3f43bd6927eaf2e6a067e53883827c51322402ef394d936c28fc551cf7a7cd8a13b9db2313e4f577447b5b20aced54079467b54c5897bf567126f2c7c03b2393dbcd3d35cc5033ceb77a29ccd44d37f990cf14b6e1ea5faaae0d6f8595cb1b7c244e1c29424261ebb68e52ec4cc7e8adc7b5caac36ca297fe6b7c479e52314c552f915e9f87ffcf33d766bd76657f8e0da88d48aa51e0c51699cf7424d1d2e449aef8bb387a1c6e2dd480e53357043d7c592a93fd4f7ae2da088b161deb0a849179dd6abb972f3469a8126ca530ebfaf9c23f65789bbbb49b74a3f7bd03cda7d8f541499d37735d77dc45ecadda9c23a41b69ea382f57088af41c9d6fc494fd804a5f35d21d5a28f27e2eee9b182550bf3bbfa3b483e4a49b38a6ba5786e685bd51c149f26728b4cb620f010470b2b6369da052db257defa8676b503a7bfdf8d7d887c339bc6ea3c9a5692f0129cad9e65b1bfd9b146fd8d85460ba1158a51e226c08813a2bd75197454bc93b0da8997dbff2282c3e2b6e9043b31b46cf1f32832d8cb06572533ff29dfe02b72fa12e4e7592bc500b799767481e9213b55fd8c371cdde7e6044493aea6c8d0f740f98475c37b331a1c0e8a14f3f9803c3e7aa0f4579aa98b57e8a67712bc3f75443152de53267b97f2c14cbff6a578a2da736f64dd30b49ebca25e924c573e51da8c0c893dc0ffe76a80c4f9c8d8c616d05f3b1f3f3cb4c38814aae97daf9dcf6fdec42faec7a4cd1248c3d5e23995689e25501aa19adbe4e90a770876de1f38cee2502d5c6c026843bec143e80a1c03a9e6187a90b9d180442f80007fa6230e59c6312ea5de6df7320651a06896bb807646caf2b443bdff3db90dc5214f2bf93ae79621d671a7684fbde48bede07b67a02005386f36af1b326d8da773c4172d5200dff6f67de9c7f864f57ce226a9fe16d420a1ae0abdb2820122190920a8cf385c9eecd2ede7a9677d9ede7bccc5ed1b4bcb101d0f3b4c5b3dcbd8c729149633e3c853b6b95f95f366e1b566a733d7be5c6aa5fca067180c71f75260d780eaf281cc4b3bc7b6a091f75b83ec281a66907135416192cfffd30b1e8eebeb42bc8b22696297b5938b7c06604ab21ccf6b1991791f1f1f3242ac604c2d4eb6aed050b51388e06a505c14ca37a810fcc35e3d4034d0d9fc4d82cf0c350a442f2601db10c66148c36f36a583720750dca0353a5db399ec660eeb844b3542dc0ecd7c3bb0562d3708abd1a10cf29bbcc17a35ba6fbb18bc45b4be536ed3c944fd2eb1332aae6ecdf567272d608198db62c529b816c2661bc02d6735291f0125ede17ab3e5f858a0f6e7cf1e240d9fc364b8dac9e0edf1748af6bcaa6ec0a7592bb92545aa480a10fc11da180d44393c438f247a3c1a3418745fa4240b8e842220374f6d42c5f941506d6edae88a51b0f24b6222fe30c31efd7ed3e5f8f9b6bff134de5cfafa2ad6145d93e10d87017b30bb372ccca5d97f460a01fad8d9099e185e1da803dfeecbc03d15cdc27d390a11fef3951a9e851c89238894cca7b8597d1a88b0fae369e29797a188739ff75378756539c46b12fad6533c5ba85eba2562b484cd56f72836b0fc777f11143f3d63fb744f8ea0eb6c80a2184193e730a770b003a4a287f7d815d82dc981cc0f9d40c989ce3334e298b6da1abdbdad7e107aa1c63b6e4881d007ac1524de6310fab9ab0c7e5569767aea594358b414d72f61221c2f38049f85d3fa7e2dd0acd3bc494ad95e0ad6fcdc9a1fa495e20af1b380f82c8dbec051ecd10d5eb5f8fe51058033a6be6c2ef6e7ec18167519ee5af03dcd83935c384a7cda322c8b690e659f0d3ceb02d67f41da0ac6e4e4d40edff9533d398153d20b83dfa9c1ac8bd0925991df812e63204f4bc94567bd1eae91d98acc56d3a6c18007e9cd9da69b7e7409ff19c80a7951e2d5dbcba5ee087d1b80755eb3638a549e869c68552d8d6594dc981ef9294c99cfa1f831b11a7f2edb58b67e9278d704b9a71fe0e6020ff007832387b28044fd7e8b8db13a4f501c7fe2ec47d77e9bd14fc1b0d0d00042cf825f788833deb3649a3e69ecb3b7712b7ad5580400703da3e234f15ca9486dec49587161af1cb88e273ce653f86d2b2361aab31a22d114a0a0ba079bf395e833c4c32b9ce2d2da3fcf50cc5b0e39730c74c3615ed33cf4fce2b91e35e276ecc716904122aaa36a692cb6be6980d232a9cea4ab5990a7d3ffc9c91fd2e07d11eabf7294f54a73415c76e86ace3c4c1855530ff0d9b7f88ae5c313aaf39f4a90a3801d7d6f087d9f1a6d8d1e6332d8245534ddea347097226d037fddb11896ce7401ed07800cf518dc29c89bcbeac1dc335554badc08ba2b7a1141485a18f345c5083530fda0eda2710684cdcacb9276633ed792cee73d24acf6920b1a53c790c4ecc5a3aba3688c37a5d675c1efb6cd40dc4e16961dd0ee86c45f04b19c910796aaa4a1472c462bd69491b42998de2dc622e5490d7061d00ccd3db468d195b25459e425770645fc38de894a06e43b6964761edc7743aa190c557fbc0f200f3034dc3d4b23cdd1f394228844c9be0e33e7594494ce97fa524b5297778410bd2258e032dd3972f452c33497105e0708b65c0912cc65af487ceba1f62020bd9ae2f15f32e9eeb6dba3287e5cde1b445e470b3b8a02292c684f795dbf45dc57790e8817f4123d8292c9144d197bde8fa0df0ec31925ce05df9ab75119e3db632339249e17f92e31147e99ac2b6f8816846a11e4463666ed76e999b6240c13348a0769e0bd218d49c3f380c90635ff415f52bd1a2af54e6c8ee677da6a689d96a98caf0df3794e56d8e7517fe35c1dc6d489f4a386085df1cb634c811494a67b4ab2f02ab9204dd8f378c0a2c7825dfaa615dc212849d32318445e32153da00b5d078373b569a7a52dbb095f5ae5003eff1d487cdfbe1e10ed3512421220c7c1cbb577ac1cb32530fee573733331f31e39e60f059797448552a85d170c85023b7373fd5b19ef495961cb1c600c765b44f4fa5ef910cde490c680aed46fab04c6cbd5ddc131bc39a1107f340e5cd5325808080e1d7ee304857f953f09ca840577f010e41c29e10483e3316538f06a07090e77196bbba1a55b2df53ccf57a6438125395fee75c62d43e8c7469ef7f1755cde09223f7ca081ff488a9c214411e0b64465ff7493f26d6c67e9b9c2dd728c6ae2806b6125d82abf2ddedee7a1158bba74d112d04f1c87b2b42619212567b180b86c537d9e5a6e6ca311b15fa15ee21062750393841d902e959e6254b1864bac3826da6edc0c0bc3dba9544bad15ba4d78c8c7869e6f6a7dd65b1eab9339d18897b54cc265848b8ce40e5525ce91d53206f5f81725fad900d74fa84bde2d0aa30cae7cdd7122547c4d275798ecc4950875161941fea57cb02e5a1d5964aa8d9a09661efe91aaf084c941c8750f74b1f919478bdb3b78f7b8748e80561e3bbf2d849f91bdebf9a3531095103381bb1c33dfebeec651b331ba463939db7e6485fc6153295f3d3bb0b16fbd48c98a311decf113867a0be9df663f40f911df955ac53258ddab9a8c9ba07fbc1d7ce3735cb6512a364372f7055d42ec48679fdbcfee074bb628c57f246490481c5fac4d05a0b9de0a1725057b79f0a990472aed47d74f72ee15289c775b2621daa8c4b77a4bf41b9342a6c99ea9b1cae89367945827d3f2f7d49ffb8db60f254df3511c72211d6d722e02de630f436239f183f6646b3f67b774b58fcfebf202c10814c842b75b5f6c37805858f0d66a5c40adfe3fc596a3d8f6a5028bd7c8069a248f3b8daff0551c76c804c2f89e3dcdb04d33d906b85a67f7ae2e950b56f18942c4cfb9022aed12998414944d2803d7c62598cb2262c7a9831c2cac2c05e024235df880ec58e6670e94fbcedbbd5543b3d4688b10eb997f0b21909c82d2c1695cc614f23920b5b7c663c7605e830f5d4b1307c087dc66d3dad0c3c1a00336f0287de96ec41af05c8da3a005bfe48fb2cb31f8a2321b65cdb3c7cdacb30c4138db0871ab9afd01b6b18c996a7d0d38d6d4b9eb39105a4ec8de1e283cab679f3676d58f119471612ca0a18053f526a5381447999915eefbcdccb1e19ac02e590c084fa3045954711e58c2e4c0bd5cf6e70a854504733c83b2be9d636d44870f839b47c85ef14e6bf4b8c29800ba9df659e44cce3347a2e9a162e8c3320704eace17efd07b55a514954514201f6b246956368d43ee8246bce553ea08730ced21259eba382156b654b0386bef0072ec4853970d82d0dd31fb560dcce0c2055b617c47cfe57bdba9f30c3e9d684c9a6b6f8c92d088003f3a55a19d702bf773761c4a0185184fb7c0902fdda2ba6337482d5f0dffd35ebf2921297eed2a55a79efd03a31655c48e4fb339db73a8e086f4f64d9ea1e59a17fb24f8726e7c25026ca3c9e523a0c3c2660f8923e58aa699b171ec6a2a8075d8b2adc8e1aadabd6015d48481d8a08de94b2caf659ad6813cd18525cc5b4394d4425c49b9063e794d4d13ee34695f9aea7676d0f728c0cddf95f91c31ae2cd8b77735a98671b4116e1188a5695e58250bf4cc12dfeeab1daa2e8264d26845cf1095d3be850ace512e5337fb23c82bb49230c8aabae56dc6016ec0b44adf1475241ec6b4fa8df72ddb9458a73a2b49ea7ac3ccee59c305ecff6f4c89bd9fc38a64acd168bb208c2a72a5f8d3b1ed600f0e7e420ff97883ed4cd39ad630f07d8a4e04634ba2204e5f5b383b9ffff7053c9e3d87d4a698c49936b28a96a40e9596194372a3574dc38a6241a2e4c4c38cea4f978826f1ddbd885b873e142939454c8b7d7823f65c2d2fa145cead18ef2a9b8ab904126cfa550db1e49a1136fa83b6583b56dd9cf15398b988785eef781331eb435fb18d0f399778bdd1a86be3d6723e52aa9c41416190cfe9208a14ed28337e6c11bf3c1528a4ef47693d96a2155891eccb4e5d1dcbffb9c4dd3cb26dbd0464032eb195676fdc804994483e24ad31ebaf9a986ad3abadde0d5c30fe12f4079e39d84cc0ad074d5030544394cfd1c50ea9b070ae23204050c0a5165e1492005d514e62ff74791e4ed79b00b8e651e92ea7930e5b9c81110c10dd411dde9a4f29667501a88838323b8aeee5834654b67ba552c8554f031eeddaaf65f781237a76da5d4353d96fbcc3d33860a8ae9d8245674a4b7c0fe8e7a15aa17f30f9b1c0711f52a798c03ce3bbf2029ec09b3c63888781c3b6ca8cc13630d1d2def8befb952cf3b83ea60694fc7a9cf4d9311b906224b52747acc0c4e56bee6b3372026c41f8d3bdb6204930f43519792daabd35604a35206ff595984b2738cfc7d912163ad4e9f26ec00adb8ac8072ae0890efabf2cbe47137bbf3522a238ccdec3645233a519c9ba4e41fcb3db1ac2890f41375f62568247029a1520d74dcf417207e922e439ab662bb97d420de4795cea7ef6df05b45d2a944b9e2e9a4fcabdf7f2ca4765f348412fa75be117db9d97e0a9436f198c08ef35c9316c5ed09c92b3324157ce159d2d67a46dd7876c332f90656a66faf05ae6e8ebb9e4d1002fa1b96aed08a3c5b19db027404180cdefc3e5eafc2366c5b93cc98b450c9d2cfd0a595ceeb4b003fa8d22707e9fed3c915a3bea944d9943bc9bcc0e03cfeb188bd56fe7a4c92fe69e25cdb383e6d82dd7d17ecb406f6a13710eb245fa53f9fc424dcd768c3065c5a7c196f49dba17e5f4d5127c6435bef20456adacc78f544068aa96a62b3f6d8b320cd5934987c40ef95fd23ba9b517b2a9d53c85f5c48cde3995e59d95f26ebb208163c7958bebccefc8dc61eaa782d53e895e4d0709a0cf19cc50cd39340ce33d19d7d4d6f5c01c0c717ff5d0ca14657a75e3d6049dc344cdb8cbe343ea41dc2362d101a5eaee822fc0373b6de9683e80949e0d22ea6401de29592b3f0613d1a70049c1e70994598f0a5060443bf1cfad4659826e281fc10554bbe6436485ba2640c0a7eccde7d7921fc43ebe050bbfaa4fd972936f72c7835f676e887f87473e703c35d108dc352c70fa919912b9b3a5d1931d5e0e189a86e1ce41330fccc6921ad1659688febebc3d38d660da470d21cfd2e11410ad50e16691f710c9b808f06886391f83212ca99a6779834fd91a3d9d25051610889a7689d0266379c04bee366ef2b1127723e30d80008e57e977b0f3a369fe0d2f40f15b16a908d8f1f482a62d2db5424c5079db2afe0f2d62c2afb38b412439692f66efd693dde6c38f7855b0813f067ba034ae692f5e9e7f36568ac3448770a10c7fddaaccaad421386e1ecfe0a7baea01e424ef2dcd4bab54867ebadfbcd7445c9fdccf9374ed1e76f1081b686a1c94a97173dbc4697de3b4ab0cbc43b51b67ae109ad3e534c69a415c789c6f89d923b2d9c70dacc581bc1b1de5357110dc28736be848ba110e1b9db41a54a7f7206b98b378c08be425ada91d0b8fa85c0f1b5d2a2750f7961d265a38485bbe84e0382d5dc9fb7e0ef5a25735af93d7eba69187b121a6490cefbd3eda213014fdcbf8cc3664fd2e8a58c647ec313a1e0475d3e1778619cf3341daa74073b7ef6fa9223f34729ca36b6466657fa7a57cf43f72745c0b5a2cec2eecff6fedb0892f2d17835fa97d0ab87b9ce575ac7298f76671b5982f2eabd2733ab0e1f715a792efbe78f6a69bea6ee155329c4b6c5734ae22317b9773aa481d67e25d5697905d23d846dae78e48d78c442cf7434e6f63ceb677e211df5b8555ef4644232dc9c6808f2d5b79aa7112b9d8dcc9dc115b9c9ff4e552c0f9fc530d2fe808e19aba8d28293fafec2f1bf720aada9b57d25efa0a6c274f92dbb35dce38b332318efb0378eb53c1ddb59524c3510dd9f82d14b147650563e979c952e2e44c51e874d8b8edfe504a3708c4470e245403f1b2fe1326ab03f53464d47196f1d5ddf615054e0b4c7eaf454b7397083f9a43af4f71cda1e567bdb2325d15558725d7a6602df0449172e935fe3de74eb1716fdf5f177c235fc35cfc84898e7b20784177294f6ac3a3e33c8b8bde0f6c59b200b691681d7fd57f0d29af7ce68dc4f92209488baac9fb23e7861bc0bf7028ef557dc95a44bb14a8e7526b02f643e2d7508817aeb75b5e52dc0cf6b2eec4f12ca182757fd66438166ea20ad42b859e2cc86f4a1090808ef8255099306e752f64bc7233e9318e0c66e95fba1a5f331a6e07edde8ea63a5ba0fe55e19d91789d61d7de10613e1c175c5f55dce3043d2e85e2b9d30718805d5c1a2ebaf63f5b1428a62e5cce5386809c6f20103b2a80dc71c9cd55b0fabd59aa71ebbad4b318ded8f4cff6b60a9b53ff8680d7368f67783a74166beba4e7699085214980629f29a6b7973852d7e177ace7958c83dbfbea1fa50a4847d24d25105abfb5d9169191e63c859af4178e5985ff14df9ff3ca386b9b22f8d018cfc9b46aeda541e912e8ecffb159e74dbe9076c13f9563f64ed32ecaebb6cdbc53485dc9d96527593f03d7600d5154953b78eb1822c67c731b7e6faf5ebe4bd6bb4d6b2a1f4098a295493c28589af8b9ce33fd661688bd615f703d9ce0465ddacee4a0b8b2b3cf7284dcaffc995bf41a4d389fe2bd64a1a16e2c7203091bfb1e48b9d320623c2b7e9b03c61552d9e439d36b0cdab14c4b968621b14b0887a52216da0e7de663cedb6abd90d45a0d741b2fad429234c96ac9f2fc4a14ded29db604c6b6884d8b7cea4aa5a4b05b8b2b387fa8f9d836a76a68285b04fe437fccd673ec936f03b9660dcf3e2021a7bcf7a06de5dbdd8e14a1e00ed3c0ecdfabc872abdc05908b1d7dc835b84094c9f6749f2b3aaf1a6ca533fed1a861485ee7b41f37f034474c32b51e1d39a734a399992a8583b5c0b90f71b6cb4bd6600849074022a078b9bceefac74b7913d16bc837ca4c227af9cf2bc7373f58be2caaee604216abac426356ab9cf0f7333154d07f6d37e8de4784e871ba52eeb6929839dcdeb8498843525464d6d6ffa64fc6ab35a6a00902f22c5ed5183d13e9e60b71c9d303cf851b6908fbdd4e9ca856b82b600adb3b31f002ab4ffc147cb1830a930385db360caae0ee65cfa0545da9639ef0038673ea15187f00435ab7f548c57b1c7026bf91b7333f46fcca0aca72f4b89dbc61a05ac7bd489d3826935670c1d5d56073b07b8f9e103d2945875fc4255fca927c5045be152b39d009aebc1a57e7886b5f996fbcc02244dbe2b309760b85099e9af8468fe416691e7db8a11c876cc00e398185c2c1b4fa10e7b344886dd027d1217c1cd88d1083d7d5bc3ff6dd0031a6d5b6903f7c088df23d10ff674e3924b5dcef1ed814598d627e9bae65ebb7c76c8f751732a935b72bbb57cca5485712835d57dc0d6686934e84a5580b5603676d951a21f820a18dfbe886dd9bdf49a3fd4b5efb3c0f37584f437cb8386e5123e5498b30d20860a605344be843c5ded83a8581b4df9ce7e91d6b359871f127bd3a3fd226522551bba326df48302b270ef0718314f0a24cc623c9bba3005e96e7a95307ededbe222f824b58f0e0a0c7e3fcc2f6c90ffed9cc1e133285b9dfcdd4767c889a0de30f325e7b4498ad4c9e409abc743b0a0a56596b90cf8877265996a37cc5c1df55964dd2a269cd96a35ecdc0a92dbb95f809f48d1cc2829df98d84a9604b3b44ce93b54edab2a05d0bc70437ff5935b21f5e11a8ad7fcc96603d4da4a3e76f5e5039aad9023bf8f17ee4cf1e879defb4b475abf321890e55d7e90a5a7f8c694ab5f4087a8206a6e40ba620aebc8790f6dfb409dcc107b965e83448a56c3cbbc32a80c5a5c6feac1adc07a2f5f7cf2d6c722222d6490567fb5842e06c8d18a5bcc876fa5d604d6be51a09959c5e08ad81817e060f8ae4eaec1eb1d59b130b782addc29c90c7c26c798ac1e0ff709a480c528fd25fd83e301dcaac543ccb42ab86cc578152e5cc986d1290bd021af87678b26ce552bb7476a6efda4519637dc30fb653b051ed54c34d9c24a4ba1f459522b0b217751c8c85f13e361448f4039695e14815baf2343573c7e8b77b894adeb286f7a8d54d6f390c7ec2cc61d536eaa9533749a6ded666c59c07fa422b62059f9147b3c91435abc77056bcd16febe2a39a4beb871d71152a8829d030a4204a3af480533cca20493dd1b42e64065e7caabb6479535dbb5acc00dba45b2ca20aa016e53ccbd6ce05c2b763238ba675af3e178a22da40bdb21f7ec620b52354d2c3f26df98ab838e33b4ea269af0b02c128c257ab7a699a0cc1e8af77453291064a3696488f3389c52c48b60151f63202342258907b7ba74de5cf8975d9fb1d0d1a7eb622a837dea3c7eb157811cff7c3a31ef49a241cd27b7258a195541ca17ee0433822dab392228f35bf481f737e6b0d2ea909de3d2859f31cb08b49a96dd16eaf8cb9a9f8c8f547f580922c9c9e012b6545dc588b2c471b720b77598e75880d37095c5c26d33bec80a9dc99c64685577f2400520e91481211ba8b29be958729315398998bd740bc589a8600068bc25781213693dbc0b90e6d2252a4bf049f6002b52abd91517a929e49546764b15341b545518660c7d98ab9088a85c619e39a041514ed999124c441beb5b6df44aef5005326ec7032f7d2a754c311f013bd2e7b1ec033a25d779d8b31dd378550e5b338cfdf43f6d05b900f9263d286fc6b63ea90daecbc88da1908a612594b8ea9643f34eb0472cc86a6803cac1cfc3376b41e97c3d9558291cb3fd88e7332156e5ad82d9a3774bf46ee5efec50feaa12d449fe73ed4fd360e5acafb533ea53d3ecd5f3d68f66bb90faddd985ddbefcef5e794f6e36595936879dcfe22912194f4c1f5cd216aa663e6199c086022bc27259247f8e48d03f40a4e0ff7e9653af38da537c08c507c102fcbed45e9d555451e8381ae5138fc5ee16e5c7778f5dc82498231d2dbf73f81c12f9283db3f62eec44ffd5dfb44d33c6e4b227da207278b8c8db9f4f1fdfbe42caaedefcd938301cf8cfcb8a8b1dd0121c0efe0220053ba8f5d30bed306d53f27daa9e0721ac41ac2e6f8bf8087e187cbf30e81993843e327ca57a2fbfa219825f58497a30f697f294d069b099f5fc9f56c8eecdc80c664eeecd8e9696f15a266bb47df34f7985a2e806b3e41d4566e88108cb2605efae91214bdbfbf628dec03ee998aaaee6d5192a179756f0c4f96e5a935527684e9836e8bd11d29f48bcfacc78204cb3c1586d14f5c6f8df46067e947edbed52e4e7e6f2f375dd36695f4e0d3db061ae653ef82c08578800b51abcf701da08fcd4ecda18bb37eec877476b0916b18bf46bd9fdf25406594fe7045ab402df15893c6bef9c4f71edf3e5c9ea25245006b6a8ea390a2b4ecc3b511bc822c1d0c7b3423bbe055fb2cb1ad507ce9623708b640b5f83d5af72bb10708b147cdd925a25feca8ab6d6c05f675830a6a89cb39a46d7029ea202263ca75a384d217f0ffd049fcb165c5f9ae045b793a07e802e5d56d99b28c9dc481b666a606aa39131db98a8743f96df34773862321586f2de4dda1b2a58c73a85c01a4e46c2c39df85b942b2598bf53f88d5d0f9129d3f05a0ccce19cf4d7b803dc7c403fe4fcc11432ceda918d0e6bea7a381c762f37ec2f15beef9d61cad92a226609869e43ba7231f204e98702a7aaad502fc43afca0352ed66e5f8c89d4867f591a1e0bf05090b414f8583cf63194925f41013d0b90281178e86e4414c04fc5631b45408c6f9ed47acde002d7517ef9a869d580a7d932a4a3914e06f72cbd00db0316e56ea583992000fc1132638703b1a16bb8ed7eeb15cc770d1165384b915f22d3d88492ddb98d4a8b287efe701e5198ce1a3942d6ef570268a6118707e603ab6904501a442fa7428709c55b8019449ab2ee2ba0cc6734df068e316d6ee63aee3074a6fe1c312ae6e205a4262967e020e7ce4bb130120029c0503e68fe736b355052cc7e30e09384547c45541e3cc991d155cd1431891b27dfe491a316e681393974b04934d730a7cb175694b24a6314b85644dd59c9b7f79c213112f45718fc2c6721eb151d4bbd2ab531983e3509f345c572b88dcef0cae9304e633aa81e60bbbdad5135c9653f16a6743ae4ebfb649fcf5b0fbf6765d804ff123ff72aa30e2f50504e7b87628f280f23a5ae0dce6d62c915b0e2327aa972ba069ab8cad2c33f2b721a8989cc86153b78f981cf76b52fa1a6d41f963983b0f6b8435dccca76b4e35f96cff5881cbbe7618b01b28cc6ab77e911f00fec17f87c8cd193814589d2e54969585395fe01454f8da05c1c8192af62146a4aeb36efc31ca907c0e6baed2b9a128e2492eec58b73abc03b87200bfe58cd4d639e6f13641780c883be97444364d6a69c8ab07412e1b835dcbba5f206bd5e450b79136f86462a42fb9204dca4f36efdc15ebddcd8d4d43ea2469b7c1a2e8bf1ef60a1e64497ee8da4864f5d7d031fc76483ac287057be5ab510c3b9dfb4b67ac08e2952717e7f3926e7437446b35df454f5b5c28bffabea6624ac91181c59679fd701e303a4702236d5268f6e8d0211e0104005e4af50557b524c8e54a7c4e266c8aff4f2fb03929c6ef483060e5e0c4d93867a9b512ad75332531ebc6c630b757f7777201f82622cb784862ed290f1ee9cf14e481953b788bd683515b3a80a9a152ded6bc1bf5b45bc91e10225bcb12dcfcc3e1c95de729193fa0c3c0d379cbe53a68bd8bb5a3ce50da4503c5df6d73f263422bcf3efc641a12114e64f58759d723941708ab171ee1d592c574565d33f39e8148d3b8b9b1bf9233eaf5826b75c6af2c44d81aac13c0f7cdbe5f2bee04241141b99f8dc898885a3786734ec816409ae059d15436eed20f8fb24d21bf6af3d380c1a01d858bcf2384793d1ff663c0329f9286e0080315a7f81f4d7101cc88ec30939716e0b4e9f9d2108f7cf5c344d0b47c28a8a9142109436247f7a827cc55571230d416311ab59f1ab8ebd329889651247ef77e4b1bec11c9e867d06ffd4b683eddb54b32e9f332d80c1904e97ac4e57aa7249e6a8ec62bd2a1f7fec32a1c51ac0b06b2393fb7a48b629a6fa4a83f763d4acd8e1b0bf8e30256d152f27b18e92554338295c419882303a95c25364eece47781f736dc9904bf9baed463f9441984afeb1a379c2b8a954dcfd6007021627754cc09752766cd6e64087af0785d901de8e1287351b3486360415c0560fe976c560fc37d01f62f5762339766aad2813fab9cd4fb536812976c2793f2083b58d9c6b48daf29ec2822ac058d2b71e45429e0cbd9bbaffe296e29ab83e1f1df5c509fcecf86b3534e5841d4e6057ae798cff53c16d413f7d41d72e4654b2e87af3ed18d5bf5a5a67c39bc8f80251ede20ef75401fe47bbcb76dc9992c8972cc15286406799fff386e1857177e63099d701df43ffa0aac5ee3e8ae6fe50d506c9e7fe8e3b561761027540b240cb48a2f818ba5da52f77aa3dc8f98d3eccbe3d66714ac25094e56a174d6822356890029f01cfd403737336ac13b27567174d661eb2aad423d50f07e8244966e7db558ebf8073640e0e016a4eaab92b32c310303bc562fbd4ef959600b387b42ce5d000510231e2269d988313d58daff8b98cb27219dafe3d89f52cae74ebf2d9cd2f49889a6be43c11e625578135f93825d3217111845e5d9638d35a5cc4d6554cc403d7901f1c3af6f614d25636ce8b5e3fcf993556aa408a228dafccdb944572c262713621c44a4572c5ec57f6e18dfb640b5a90dc8e771db91c8443b428cb81f2df7a2750b423948eedbcfab2dd9182ab3c58cdd20713d229d844d5e3c16e12417bc595b7e136e7bb9268e5514a5b5d89f8cfda75d9fc29deb218ad0cc98d38376c8c9432250c6e5693489f0d389e963a612d4643259d93a7b39fb164328220b20fd6a7b7b2c7d463a1a53fcd32d41f6164704f831b66c478ace89674425a54df5bf46e6dce8d4d3d54536320e1ff07b89a88208e3e83fc5b1bce13bf70e04b5e032c0ebc01cff9351cee42e11739819e0b510cf39085be7331d4ea4680e8565e3a3c47525e750d69f2ad7f913a70afe508a5fa3623c4b365541424d3e012b52a6293fe8d45bc78d9d5ee2cb04cff1f4222c9e04c062bd2c0ea3bf84416643b6d336b6c7f1299de070fafdd761e08e38dd0f06826237d0e1a6eb00f646810bf3cd74af0e332f86bc40e468af5675a0988d2b59b1240c43bcd7237bc1c577793a61a171b8f6ea1f2534eca65b7f8cfbe38c0063828abdc4c097e4b003cc0beec43ae0ae956178908b886513b34fba4f82d7581135c3a5ce4037bd009d51da05615820e1cea90df323050c6359f0d1136d0a66296c3a74e06afb58af9519f199c8c46014c124e8ce7d9f69c53885b62d7e07377450c670fe99bb2411fc1ca772d4f00b67aeba54d9e6f0b87d6be992cc542a629ede9f51535c93dbd95e8d4a6aa1b8807f4082456e5dcd9b5c174538d27b9f07fcfb2aa2bf3dabce65e8bba58f4935b028e52741318ef7bc513becbff6e689520f7267790346d08d825144a736378f31b94561dbac2add79a7cf0e5f474c0bf1f1adbeef9b47c25853281792c56511c9c37d7216f842f4b51196d430a3665de49976ef08fc35b1044e1f710d1b6734b55bde5526acc0330d61ba57f53557265e802b63ff0b43bc9010bd99fcaa4eef962dbb3848ef3c0278dd40eebf59f4425b5601de83d2d724982fcc9c9e48cab89598fa1a812bfc6dd3ac2052e8ebb875083626d34e9ade85ba645d9cc685ba09dc317db447606c9a776ee8655be0880471374fb880706deb719c68f0546f284873fa96fbcca7cd95c559e39e8db817183152187d0e3cedb4168d8ffed794e6da0100718e5b4067c9b07b0784a42092e84db2174d63dc4d3533f8f03008c977565dc45605bd61fb30d6f4092a9e76f31da169e89e0fc51c76f2468b132d20c311262dc77910aa401b911a05ede03ce84d1afcad9855eca113e0281ad41822a16bcc1a9fcffd85399b7b0cf05c95eab06aef7672c11b920dd5ae8b455d070df6eb4be4ba08bb97e17f99d272516000fafb076305aa07c3076e8ba832b0573f25b2923161cc7820fbad99818a15699ac0697760b815629d0526e504cecd4dbb704a984b76136487ec48cf6b8b570e681be8744074a82f7fa562d3de6ec7c5ee0b319582ba8956f2fc73489a47976a395cb170fa2c314ad52a25f06c78df7695969d9df14ccc4c73e5631975e97c8ba430fa637e2c16d9685e5dac8096f5fbc36633de6d1f2be476fdab0713d1b4a0b0b866e70abdac3da85b3e7bb75cf32ff4e8e15a7a9836d70b41542ce99f84d99e8c67f108f29414fcc90c29e67519b3983baa7b01518e02344f988d29a538c778babeb15aeeedfe0d502239ae762e43aa1fdf4563973aed6bb488f8914949790644167d4308994d83ce0fdaee2a6cac2340b077d95c58e00d81f267b10c481d46e19d26c9e9a967c8bee72c9d43bb84c7d2aea5cdbd788bb85b0a0e98011a075ae3c58458d10302c55c5ad139bce46484309dbaefea5999f24f32fda9624fd1afa36ec327c2cbfd35aaee0153867ed558fab585b7068ac2d106b8c497612c38524cbbdd987f6d203902e004e26170b8852cd9756d0f2249473e73c19706c2b16327f3d68ae1e15ccf35e2cfc378fafa7280fd4d85cc6d4015c9538639d466cf920da687cd54f41777dec98eb72e93e5f522f0bd1e9096751cb7d56f840ecc3cd0b30ba775612080d6e4d983100c2e1ef68e98126876c081dd7ae0b3d1ddc7857b0fdf903a3838552a7c67901497125e5b1d0a8b87920783cf24a2a58a3f6047ddc238a454c563cb2ca8b8298812ac32953ad6a137a3f74b052fdf205a4cd152f8c8eec2cd63cae98713bab72fc388dac44b37c7cef6d2a4a3f575c34ae6bdbbfcbee0d11d8519942c087e6d1fdb98386edd3d3a06cbaf8afa7004477545770026959cd707d091c16037453e90e1096be23aac2bc3593b2b782ca7c147510dfadc15d06a1b29179e023a19036a45272923cf912f3e11890cc28e7b1e1abe0b22745701eb2890213b80648654ac34b6933f645500a56bb141e4851b3d929f62f736579e0c4b5aa462a848caa23dd1f9461dc090553ebb642bbf55aaa05751d197ad733996b750bf57e60574bf261c9af30b83d73b5849b96843f461d79ae487a5169331689dcd79d6a49940a9fae7cb10f84d26f050fe86b74e8916415b2081c94eb75795e2bc7a430e9eaf7f15cd2727e125134e4fa39763f21e80ca717ef764583b70ae8bd21d50e81628576e9b4b87148fdb624a4abfa1bdb51fd6d81752aaa239ab3b079b8b265f144cd11788ca57ace7efd3d1966fb0a9a59d2b804d21182412cb104d77212248d53b719602a79d3fc588dcb7fd1a51febed61584e01b2d6c14158838fc9f8cafba9621225e3d097535808430e33548f35479b1180618ede6ce8f71cc9f341310c7ea92e46daef6f7b0b0b2f8e1a26025ad41251258c38825987fde8fe90abeecc1494d65d195e117f37936d361d5797e45aa229c9af2ed76bd0a57ac0afc7b03fe7703afe6303851176f65e10638fd05dbeae0d08f61c003ece20e2845ae42ca1bab389c60f98a5a62eb5648c274e8ca000d2c2fc449d6f29ef7497654a1bef22bfb59afcf37925cf2d1ffe7c2147179abc0ff778b8186d63a12b859b221d03933dc40983b9f0007c129f6e49be7579420d6dd69f551fc06cce45bc3f4a5e0355ce474276e61aa3fbcd0feeae7d72df76eb35ab4a55b16d84cd0e325e637cfa8d401cc2453dbb5878f7ca0062fc69241860840fe6a773d43f80ba92a5d6427aa50a5e10a92d4b4a6e8c97c6f1f8835ba0082710ed128269e6b50283127af40d88a94451277a37fcd3cf0908af84b14f25570f8b063ccc9b4ef9ad56f476246f21917a6b9d7c159f8ab4e17f5354ffaf615deb56cf8414b735760cc1065d40dca7e46e14cf2c38d56b57e03adbdc9ce41ba3a35c6fa07485fca364ce02c6245092013d2e145aacc6a746b5e34726a32405c850f8384aed4c3f1dac886f9f301b57c3ab2d39d1dfcc8988e154aa7357101548fb20290451f678f1b2486bc10c069c5f1e6aafeb42374d5dfb3b0ad762f8fb6bd4e48473a8ff322137dda6c6a4881dd484a2e04659c7e2e7787add488b9884ed9ea6c041a78425cd6e19271100406b9382365833de2d5eccbf945ba26e89355759877c77ebbf358dea66f1d760f482b0ac8a930d646541d25ca940bd9e9f3809c53c75a1b6108313b3118ee93ef789ea3efee2724fe10ca06db4930e5387dd867b7d70b64f9f814cd0736364e0d5f8ba100f62b4cf0eaa63407e4853f8e366b0933d172bf040dcb2814e21f5ede5669237ee0f55087ef2608b5b71b52fdae92e30ad9f8914d916cd542e3590bda86b99fa39f379091a547481d8aeacf8367b149b2f0815162b797d88e21edfc86da4c87a430ba2c11bc1f677316a71e3a8d7edf3c70661f25adb1e596b5f64b12230346bb547e17c4182fef64c036d30431794922e3ba4e89e70b1974e2aac948f106a1e11288c81eb2bc998b89808a26848c538e93204742b1d69812a0caf6f8d5a658ce8df20ba4c3cc67bc50e8048ca93d06d9ee929d6d538665a401863baa1c924afd1eb388ebe64b56ec09f8859576a00bed8a5cce0b7968e0a3edc762c55c10161ae43a73791154ad8c140c5937d09f1eabc92edee93f0031971e88a41fdb10f7561669a1282d8927aae8aa28859736924ede8e9eee6f7745946c86756d167875bee1673fb59809e35fb7f3b26a6a994a5417bd3448d43863bffc046a62593a47492fe18cc0d728eaf3bf927a4ae31ac23b0133e7516cd8ef4a50f230cb4c02fb52eb8f1bab90c148e903d9a20a7e4dd49cc5b3c9d69482095d6f4c1e63818abda2a6340a4199b6e46c4396af233b05d274fe3495dfd0dd2f95f3ac9c97dc402aae7830cf2f684f4b98f0d159591ba153d4fe1b070c5dadd1f74e4631ec518c2c885934178a581299e2766734fa1025002c64beb76d7191c6192ba5f6cd03623ab43b1d8a060260ad3a78cbfe4581277096ac999dce0fd7b43289191b182121768b9bf8462a452630853cccf06d1cd61f75e1a99c30f47aff9c99e794e6bcdef19d1c0e13f491142e597673e2b06ce82bffc7ddb5287131c831d033320ff93a66399ffd238e34070660699cb7ae24856158e82fb690275cf02cafba56757c8588214b3df0049b423d6b998c694f3c204516e6c7ed1449d25af4f429e734700012596017b7d43a68b1f178eba9655048f59d44ccb0ef463d194f6ea9bd48a811595a3a24f950488191fd25df8dcfbe93a43bedd7690795bba85d2551237e950490c390121434e95d3a966a4931f8962f82904649e1d2fd22c1e530f35104b31b4e18a18a04273331defb0cbd575c81fb5a835fa595576e4b057a1e5d781cce1b2302059c9bae267a9c77cdd5eaad389fa7b6839d9edc0d32bd8303344350fadbc4662aa87a431c77b946c58c575032e78c57c84e6323f882551e8f337a9d81eb55eca03118d95dd316c94b58ddf03f8932f348ede3ab807d79769e9ccada33dce0c78ee09776961da474cb94d3d4c884bd16d17545009b02160963e3c142b3fa4a949bc76e2f0575ffd94b2636d1d42dced57466e9c265964b4ee75a40a7d783e2c6438ef38a2307dd10ae295ef15fa9de545faad340a515bc4b280976729033e0a30b179a9a3831c75cae55beb6a4c124f6647a7fd748b47a8d4145f7836b7c3ff25d9907e5d680e8d3cc9e4596c5017e984e581a98834d87a23c844b28801b7103962e01c830e851b8d70a8d12f3c1ee6a71e0c74ed091cca2e74b3cdcf99de3d75a2c4b3f508bd2ed516b8fe9cc9796b16458a96d7efc76e0010dd265dbfa973bb470947f3480c8bea6cc4eca3409a811f0ef4f2c91a5874089811da21f73d7f837a16e123f3e557aae6f0aafd94e96ff500c0a26da15857e09daf6dace7b81d17f4f4b7685c73eab24d1abf5edc9d600b986529041dab70c0467e99ddba1dc7d59d7aea7a21f5c31ed1a5982d090e3d96e2da988d8d018724b9905667d9822b43773f523772131eef5f7bb52f1b3786e5c1dcedb59874de2c2d1a6a556dbeb228fc852c32183c33b6be58d2e125707af020bbf85091c5b16cc882c61d7903d3b81a1bcde1c0e6f27795168087e54f3093480b3edea482e641edf8e107cda01d8bf9f1ba4db337822151bb6e8a1631913eee8806852f3e8efc62c86757a6cbc963712b9439a3cb183181a5764f0ec120f7e5da3f6249eb306a12f449d4a30715ff9772a96126012f241f8aa62156e85b0878ff018ed87e52e8e250498a11d47a153e2d8b48f606b75a06cdf2a4a6e8033ffa56f32aca24bd00e5d538f59c6a1788f45194279e978a5060321501f0f0f0ff3657432ff7fc0157938c93c0b399153c68f7854ab318574bd7d3770a36b4f4300de57149ae19bebc748a6e6028a270a1d9bb3e9276432f6744734db8f63230ec319f113753bc8815e36335c5a8d0d47d96026a1547d5ff7c82c199d7b08d5da104c33b7b54d3e4facd82837d83c89e80ff06e7bc2aac03f58dea4a506518da6723f9d4e620ac489787f449d5a37cf86245f9f723b329ab94003bfc6c6a68971b22fe69f2fa9c21a879a8abce9c31abfb09414e2c0561112942c46014dd65d13754b22f9adf793b5d73f3e7b4a5464533060413e3ac3382d5ea6a938d427200adfda72ffbe0f9799e3251976a53929bbff5f0068522d96b4ffa8afdc9d9e6bd5f58f0a6f334052aa1f55339c2fe51885f185c09f843027a8ef7eded83d48eab1d7ec51423935a81ffd1c73bfabcd96b981e9cf79a34d35176229bdec4f53cb03687253660d18b02afca752b51b95bb3decd555c494dc10158d098621ac89f5f2a0538f2cc73f8725c2baad93becb9a5ce9a6511b1bd1a5b8d5d08d2306d41b7dd725b74cf94b12aafe8481a274189e13c53a921705458e41eededfcf6494773c3a43e7c7e5568a51cd5bb2adc3c12ccbe7d6ce1adbdc9e3b593ce52a3418e20e92f69dd8294a7ebcaa1d37036136bc101e8bfca93385f5d927cac66a3973797d6585eacc3547959a7fdb6e982ed4fc387617780f7aa935cea107a64939ecb5ffbf3ba1a7aeffacbd5ba2fa0ba32526bc768ff80e7b75ed50561bcfeebfd6f103fac0a26c423f41f15fea6e33b4e5a8d6078fab5e4b6929be9f748089edc0d6055b364ce25644e581f346970bca7230508d3962b87cb8be6bbe658a2e53fbea0855630f864220982ffb4a2e99c356bad436b938b0487ae4a9b9ffc1887b277c45f818c5951db7cbee1f1adf6ba626a67db3a9f2213cc34fa3e31b52e9e9783256b9525f0c956c15de10aac4549686deee6f40f48f85cdc9bae3bb9e1890214d5a61df131fa4b838ea02d834a8356a5605a94a8ed0fef4ebbdd7e4e6840f5bdc5a4e66daa62ce8f1bf5dfe2fa5b4444e130e309bbc19201b2de66f8410b7fde5f675c5829700f0c6c573722849887a74ed9357623b9cdb28073e76c22b4d267303591fd01e328d55b02afee78142b201d18215c85f0f16deeb41223f6380541151ddc3c36ad4d3c72bfa0340d0301b87b947aaa2b9b8e9551eebca8a6c3664f95c59cdee07af17daf519b071fa1d831cd68d408273d3278ca164a853e207612effe4e9549871665f058a950dd679efab7a76aba3f563f4718d84eb90d00e7f2b3990cd4b821356391ab83e1a4c35b7bef6e7c1e384e1754d39eb6428846e46af290c405525c4727b384049967b567a5ea3e19e2916a2cc7c0134b3da6c40b77200a4e8e64df2413bf92f36645b852b9f34791c4d2661cedd0db4364e3965a59a5f4586afba9b9d569afdd2d1235f556b4406360f4d24ca5215d785fc104426d491b97d5159546ca23d151d2e2d75d3a3a2a2daae6c4286fec804db07acef9d1a85f6b144b791bf355b54d57886ce7fdc93a81c3327d48e1bde278eb3bbdd806a34504df40f1a9bbe55e5178370caf05ac906186d85a401991715d8af619671eb995c7f119d917f42ba6f4d000e015da645aaae502e9627a9059ee793ea3d80e9c016c8700bc8ebed57924bbe0f37bb4ad193bdbe27204acdd8dff2f15e0138f4a2b3e57305f2b392854d742157132c5717f6f6fd960696fc5ea1d8d0f5ddb9adcfa522b910ca5ba39ef3cafd31f2041362f9ea7fd65190e0a23d8018b5f1ce15633813ff3ca7747221aa621987beb5e54037e6f0340d31dff8fc996f3a8d4baecef0d0720560becd0241f3e7e29433434f5e8ac6b0276359edabcafb65a08d39316e51add66a8b0f5bee58b79ab303addcb9570560cbbb6479a1387a685ddfd2bed41f08b5d04d87dcc17c905a1180ef7066f395b03115d7abae30bfe61d1f1d8f28ffb538db944c2964bd78e7de14355bdf04747961f18f0da943fea527cc009cbbb38c31897df6e90d54fdd5319923e29c22402306a8f87de53d028194c147bd1a713b946aeec863bf877771222710989fba04c04a8bb64a2f139cd02775ae8668f533d9b8b91ce40f26a54a6970aa4270fe7e5efa30857e504c2d5d57a0bb0945b6fd3a4a1f4a553dce124860431ed25e327086ec1e7d9c73888abdffb881ab704e8aa998437bd1f74b1f98e7ab4117e56e1e30a073f864c971866bc366ea97b680c7cda8b03d8eccfbfd3af97b723388d5b6b3dc56212f7f9259ac62fae723ea2124dde3a7c264c669cdadc40d53a6549d1aa843b49c6fa59d13febb5ca7ef59e895f971724b0b22b2cceb8ef46d5d51315e1e6bfe6e8dd9a9510f48e463deb10602eead8a1db9deb5aba43cb0b2c0cc9a35060c27e330bc51d95a593f058d519317c15a6b7998893dd838c56ad3282c70bf83674969731817e81f0e5aa128a5268ad6fd3acb3fa2e66751288a05c0d57107c8c375a4031da29cec20a6f0b30c3cf4f5abce193e6078befafc64d3f3fc90190b444bc7e81a9864d699035358ad709f9359a7f026d5f852bb45e08dbfbc78c901c73f21395680ece08cd26db50fae98c24483df38cd4cef2f6593ca2443477a18b7c40faef3106f5d58a21482a5abfb580aa3d007c02f17fe0d025454dce354416822471b8dca03142de918d886f7c2d1be6327c7daaad915863326cd5a29d7c0a2134d187a74270febab6005b4aab38c2df10117a783d2957370f6af3650b9abc34825d7de5b229f3bf708a98c7ad02cd6d26d55947978d2c489946b542b1a21a1a55c3a2e163b525682b6d74bc6baa58984e090c17759603f50fb833ec26ae6d8e0ec5d66a3a58596298c625frootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootglibc-2.38-150600.14.17.2.src.rpmglibc-html    rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.0.4-14.6.0-14.0-15.2-14.14.3gM@gp@fffWfO/f;i@f:f2.f! @f De!@e@e}@epe6@e@e@eeoem@e6`@e/e.w@e#@eSe@ev@e;e@eRd@d@d@d@d@d@dE@dd@dr@dK@d%ydcT@c@c @clcY!@c=qc*c@c6@cb5@bb@bUbb@b@b|bk@b@aa@a@a@a\>@aaaj@a@`P@```8@`7@`u`Y@`F`>(`<@`.V`+`>`_إ@__@_Wr@_+^^x^^j$@^K^E:@^8 @^&]7@]]c@]@]]]@]Z@]Z@]D%]/ ]^@] ] u@]@\@\@\\~d\n\j@\T4\5@[@[[[t[[t[b@[(@["X[)[WZJ@Z@Z2@ZZ@ZZ$Z@ZxG@Zp^@Zp^@Ze@ZKt@Z1@Z/Z@Y@Y@YYܶ@YdY@Y@YY@Y@Y@YW@Y@YJYYw2Yp@YJ_YA%@Y.@Y, @Y, @Y$$@Y"XۡX@XWw@W@W@Ws@Wk@Wj}WYZ@WL+@W3W0{WW V@V@V޾Vm@VIV@VŲ@V`VVV@VLh@V.V$@VVZV VUYU|@UAUȒ@UU@UU4@UUv@U%@U/@U:T@TPTgTܕTء@TO@schwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.degiuliano.belinassi@suse.comschwab@suse.degiuliano.belinassi@suse.comschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.derguenther@suse.comschwab@suse.derguenther@suse.comschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.degiuliano.belinassi@suse.comschwab@suse.deschwab@suse.deschwab@suse.delnussel@suse.comschwab@suse.degmbr3@opensuse.orgschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.defvogt@suse.comschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.dedimstar@opensuse.orgmeissner@suse.comschwab@suse.deschwab@suse.dematz@suse.comgiuliano.belinassi@suse.comschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.dematz@suse.comschwab@suse.delnussel@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deguillaume.gardet@opensuse.orgschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.derguenther@suse.comschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.dekukuk@suse.deschwab@suse.deschwab@suse.deschwab@suse.delnussel@suse.deschwab@suse.deschwab@suse.dekukuk@suse.deschwab@suse.deschwab@suse.deschwab@suse.demliska@suse.czmliska@suse.czschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.demliska@suse.czschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.dejengelh@inai.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.defvogt@suse.comschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.dejslaby@suse.comschwab@suse.deschwab@suse.deschwab@suse.deidonmez@suse.comschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.denormand@linux.vnet.ibm.comschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.demeissner@suse.comschwab@suse.deschwab@suse.demgorman@suse.comschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.deschwab@suse.de- Remove nss-systemd from default nsswitch.conf (bsc#1233699)- Apply libc_nonshared.a workaround also on s390x and ppc64le (bsc#1231051)- Use nss-systemd by default also in SLE (bsc#1230638)- s390x-wcsncmp.patch: s390x: Fix segfault in wcsncmp (bsc#1228042, BZ [#31934])- Fix typo in last change- Also include stat64 in the 32-bit libc_nonshared.a workaround (bsc#1221482)- ulp-prologue-into-asm-functions.patch: Avoid creating ULP prologue for _start routine (bsc#1221940)- nscd-netgroup-cache-timeout.patch: Use time_t for return type of addgetnetgrentX (CVE-2024-33602, bsc#1223425) - Also add libc_nonshared.a workaround to 32-bit x86 compat package (bsc#1221482)- glibc-CVE-2024-33599-nscd-Stack-based-buffer-overflow-in-n.patch: nscd: Stack-based buffer overflow in netgroup cache (CVE-2024-33599, bsc#1223423, BZ #31677) - glibc-CVE-2024-33600-nscd-Avoid-null-pointer-crashes-after.patch: nscd: Avoid null pointer crashes after notfound response (CVE-2024-33600, bsc#1223424, BZ #31678) - glibc-CVE-2024-33600-nscd-Do-not-send-missing-not-found-re.patch: nscd: Do not send missing not-found response in addgetnetgrentX (CVE-2024-33600, bsc#1223424, BZ #31678) - glibc-CVE-2024-33601-CVE-2024-33602-nscd-netgroup-Use-two.patch: netgroup: Use two buffers in addgetnetgrentX (CVE-2024-33601, CVE-2024-33602, bsc#1223425, BZ #31680)- iconv-iso-2022-cn-ext.patch: iconv: ISO-2022-CN-EXT: fix out-of-bound writes when writing escape sequence (CVE-2024-2961, bsc#1222992)- Add workaround for invalid use of libc_nonshared.a with non-SUSE libc (bsc#1221482)- malloc-arena-get2.patch: malloc: Use __get_nprocs on arena_get2 (BZ [#30945]) - sched-getcpu-rseq-area.patch: linux: Use rseq area unconditionally in sched_getcpu (BZ #31479)- duplocale-global-locale.patch: duplocale: protect use of global locale (bsc#1220441, BZ #23970)- s390-clone-error-clobber-r7.patch: S390: Do not clobber r7 in clone (BZ [#31402])- Add libnsl1 to baselibs.conf (bsc#1219640)- syslog-buffer-overflow.patch: syslog: Fix heap buffer overflow in __vsyslog_internal (CVE-2023-6246, CVE-2023-6779, CVE-2023-6780, bsc#1218863, bsc#1218867, bsc#1218868) - qsort-invalid-cmp.patch: qsort: handle degenerated compare function (bsc#1218866)- Change minimum GCC to 13- Split off libnsl.so.1 into a separate package- sem-open-o-creat.patch: sem_open: Clear O_CREAT when semaphore file is expected to exist (BZ #30789) - ldconfig-process-elf-file.patch: elf: Fix wrong break removal from 8ee878592c - tls-modid-reuse.patch: elf: Fix TLS modid reuse generation assignment (BZ #29039) - getaddrinfo-eai-memory.patch: getaddrinfo: translate ENOMEM to EAI_MEMORY (bsc#1217589, BZ #31163) - libio-wdo-write.patch: libio: Check remaining buffer size in _IO_wdo_write (BZ #31183)- aarch64-rawmemchr-unwind.patch: aarch64: correct CFI in rawmemchr (bsc#1217445, BZ #31113)- Remove systemd from shadow and gshadow lookups (bsc#1217220)- gb18030-2022.patch: add GB18030-2022 charmap (jsc#PED-4908, BZ #30243)- dtors-reverse-ctor-order.patch: Remove, has been reverted- Avoid use of SSE in i586 build- Add systemd also to gshadow lookups (jsc#PED-5188) - For SLE continue to use nsswitch.conf without systemd- setxid-propagate-glibc-tunables.patch: Propagate GLIBC_TUNABLES in setxid binaries - tunables-string-parsing.patch: tunables: Terminate if end of input is reached (CVE-2023-4911, bsc#1215501)- fstat-implementation.patch: io: Do not implement fstat with fstatat- getaddrinfo-memory-leak.patch: Fix leak in getaddrinfo introduced by the fix for CVE-2023-4806 (CVE-2023-5156, bsc#1215714, BZ #30884)- getcanonname-use-after-free.patch: getaddrinfo: Fix use after free in getcanonname (CVE-2023-4806, bsc#1215281, BZ #30843) - Do not build any cross packages in SLES- no-aaaa-read-overflow.patch: Stack read overflow with large TCP responses in no-aaaa mode (CVE-2023-4527, bsc#1215280, BZ #30842)- Add systemd to passwd, group and shadow lookups (jsc#PED-5188)- ppc64-flock-fob64.patch: io: Fix record locking contants for powerpc64 with __USE_FILE_OFFSET64 (BZ #30804) - libio-io-vtables.patch: libio: Fix oversized __io_vtables - call-init-proxy-objects.patch: elf: Do not run constructors for proxy objects - dtors-reverse-ctor-order.patch: elf: Always call destructors in reverse constructor order (BZ #30785)- intl-c-utf-8-like-c-locale.patch: intl: Treat C.UTF-8 locale like C locale (BZ #16621) - glibc-disable-gettext-for-c-utf8.patch: Removed- Add cross-ppc64le package- posix-memalign-fragmentation.patch: malloc: Enable merging of remainders in memalign, remove bin scanning from memalign (BZ #30723) - Limit build counter sync to i686 flavor, to reduce needs for rebuilds- Add cross-s390x package (bsc#1214460)- Require that elf/check-localplt does not fail - glibc-2.3.90-langpackdir.diff: add hidden alias for __strcpy_chk - cache-amd-legacy.patch: x86: Fix for cache computation on AMD legacy cpus - cache-intel-shared.patch: x86: Fix incorrect scope of setting `shared_per_thread` (BZ# 30745)- Update to glibc 2.38 * When C2X features are enabled and the base argument is 0 or 2, the following functions support binary integers prefixed by 0b or 0B as input * PRIb*, PRIB* and SCNb* macros from C2X have been added to . * printf-family functions now support the wN format length modifiers for arguments of type intN_t, int_leastN_t, uintN_t or uint_leastN_t and the wfN format length modifiers for arguments of type int_fastN_t or uint_fastN_t, as specified in draft ISO C2X * A new tunable, glibc.pthread.stack_hugetlb, can be used to disable Transparent Huge Pages (THP) in stack allocation at pthread_create * Vector math library libmvec support has been added to AArch64 * The strlcpy and strlcat functions have been added * CVE-2023-25139: When the printf family of functions is called with a format specifier that uses an (enable grouping) and a minimum width specifier, the resulting output could be larger than reasonably expected by a caller that computed a tight bound on the buffer size - Enable build with _FORTIFY_SOURCE - glibc-2.3.90-langpackdir.diff: avoid reference to __strcpy_chk - iconv-error-verbosity.patch: iconv: restore verbosity with unrecognized encoding names (BZ #30694) - printf-grouping.patch, strftime-time64.patch, getlogin-no-loginuid.patch, fix-locking-in-_IO_cleanup.patch, gshadow-erange-rhandling.patch, system-sigchld-block.patch, gmon-buffer-alloc.patch, check-pf-cancel-handler.patch, powerpc64-fcntl-lock.patch, realloc-limit-chunk-reuse.patch, dl-find-object-return.patch; Removed - bsc#1211828 - bsc#1212819- gshadow-erange-rhandling.patch: gshadow: Matching sgetsgent, sgetsgent_r ERANGE handling (BZ #30151) - system-sigchld-block.patch: posix: Fix system blocks SIGCHLD erroneously (BZ #30163) - gmon-buffer-alloc.patch: gmon: Fix allocated buffer overflow (CVE-2023-0687, bsc#1207975, BZ #29444) - check-pf-cancel-handler.patch: __check_pf: Add a cancellation cleanup handler (BZ #20975) - powerpc64-fcntl-lock.patch: io: Fix F_GETLK, F_SETLK, and F_SETLKW for powerpc64 - realloc-limit-chunk-reuse.patch: realloc: Limit chunk reuse to only growing requests (BZ #30579) - dl-find-object-return.patch: elf: _dl_find_object may return 1 during early startup (BZ #30515)- Need to build with GCC 12 as minimum- fix-locking-in-_IO_cleanup.patch: Update to final version- ulp-prologue-into-asm-functions.patch: Add support for livepatches in ASM written functions (bsc#1210777, bsc#1211726)- getlogin-no-loginuid.patch: getlogin_r: fix missing fallback if loginuid is unset (bsc#1209229, BZ #30235)- Exclude static archives from preparation for live patching (bnc#1208721)- Update to glibc 2.37 * The getent tool now supports the --no-addrconfig option * The dynamic linker no longer loads shared objects from the "tls" subdirectories on the library search path or the subdirectory that corresponds to the AT_PLATFORM system name, or employs the legacy AT_HWCAP search mechanism, which was deprecated in version 2.33 - printf-grouping.patch: Account for grouping in printf width (BZ #30068) - strftime-time64.patch: Use 64-bit time_t interfaces in strftime and strptime (BZ #30053) - glibcextract-compile-c-snippet.patch, sys-mount-kernel-definition.patch, sys-mount-usage.patch, nscd-netlink-cache-invalidation.patch, syslog-large-messages.patch, dlmopen-libc-early-init.patch, ldd-vdso-dependency.patch, syslog-extra-whitespace.patch, errlist-edeadlock.patch, makeflags.patch, get-nscd-addresses.patch, x86-64-avx2-string-functions.patch, nscd-aicache.patch, dl-debug-bindings.patch, floatn.patch: Removed - bsc#1207957 - bsc#1208358 - bsc#1212910- Remove reference to obsolete %usrmerged macro (boo#1206798)- floatn.patch: Update _FloatN header support for C++ in GCC 13- nscd: Convert to systemd-sysusers- dl-debug-bindings.patch: elf: Reinstate on DL_DEBUG_BINDINGS _dl_lookup_symbol_x (bsc#1204710)- get-nscd-addresses.patch: get_nscd_addresses: Fix subscript typos (BZ [#29605]) - x86-64-avx2-string-functions.patch: check for required cpu features in AVX2 string functions (BZ #29611) - nscd-aicache.patch: nscd: Drop local address tuple variable (BZ #29607)- makeflags.patch: Makerules: fix MAKEFLAGS assignment for upcoming make-4.4 (BZ# 29564)- errlist-edeadlock.patch: errlist: add missing entry for EDEADLOCK (BZ [#29545])- syslog-large-messages.patch: syslog: Fix large messages (CVE-2022-39046, bsc#1203011, BZ #29536) - dlmopen-libc-early-init.patch: elf: Call __libc_early_init for reused namespaces (BZ #29528) - ldd-vdso-dependency.patch: elf: Restore how vDSO dependency is printed with LD_TRACE_LOADED_OBJECTS (BZ #29539) - syslog-extra-whitespace.patch: syslog: Remove extra whitespace between timestamp and message (BZ #29544)- nscd-netlink-cache-invalidation.patch: nscd: Fix netlink cache invalidation if epoll is used (boo#1199964, BZ #29415)- glibcextract-compile-c-snippet.patch: glibcextract.py: Add compile_c_snippet - sys-mount-kernel-definition.patch: linux: Mimic kernel definition for BLOCK_SIZE - sys-mount-usage.patch: linux: Fix sys/mount.h usage with kernel headers- Update to glibc 2.36 Major new features: * Support for DT_RELR relative relocation format has been added to glibc * On Linux, the pidfd_open, pidfd_getfd, and pidfd_send_signal functions have been added * On Linux, the process_madvise function has been added * On Linux, the process_mrelease function has been added * The “no-aaaa” DNS stub resolver option has been added * On Linux, the fsopen, fsmount, move_mount, fsconfig, fspick, open_tree, and mount_setattr have been added * localedef now accepts locale definition files encoded in UTF-8 * Support for the mbrtoc8 and c8rtomb multibyte/UTF-8 character conversion functions has been added per the ISO C2X N2653 and C++20 P0482R6 proposals * The functions arc4random, arc4random_buf, and arc4random_uniform have been added Deprecated and removed features, and other changes affecting compatibility: * Support for prelink will be removed in the next release * The Linux kernel version check has been removed along with the LD_ASSUME_KERNEL environment variable * On Linux, The LD_LIBRARY_VERSION environment variable has been removed - get-nprocs-sched-uninit-read.patch, get-nprocs-inaccurate.patch, strcmp-rtm-fallback.path, pt-load-invalid-hole.patch, localedef-ld-monetary.patch, nptl-spurious-eintr.patch, strncpy-power9-vsx.patch, nptl-cleanup-async-restore.patch, read-chk-cancel.patch, wcrtomb-fortify.patch, nptl-cleanup-async-restore-2.patch: Removed - CVE-2023-4813, bsc#1215286 - bsc#1198751 - bsc#1200334- nptl-cleanup-async-restore-2.patch: nptl: Fix ___pthread_unregister_cancel_restore asynchronous restore (bsc#1200093, BZ #29214)- read-chk-cancel.patch: debug: make __read_chk a cancellation point (bsc#1200682, BZ #29274) - wcrtomb-fortify.patch: wcrtomb: Make behavior POSIX compliant (bsc#1200688)- Set SUSE_ZNOW=0- strncpy-power9-vsx.patch: powerpc: Fix VSX register number on __strncpy_power9 (BZ #29197) - nptl-cleanup-async-restore.patch: nptl: Fix __libc_cleanup_pop_restore asynchronous restore (bsc#1200093, BZ #29214)- nptl-spurious-eintr.patch: nptl: Handle spurious EINTR when thread cancellation is disabled (BZ #29029)- Follow the distro default gcc version to build the cross bootstrap packages.- switched to https urls- get-nprocs-sched-uninit-read.patch: linux: __get_nprocs_sched: do not feed CPU_COUNT_S with garbage (BZ #28850) - get-nprocs-inaccurate.patch: linux: fix accuracy of get_nprocs and get_nprocs_conf (BZ #28865) - strcmp-rtm-fallback.path: x86: Fallback {str|wcs}cmp RTM in the ncmp overflow case (BZ #28896) - pt-load-invalid-hole.patch: elf: Check invalid hole in PT_LOAD segments (BZ #28838) - localedef-ld-monetary.patch: localedef: Update LC_MONETARY handling (BZ [#28845])- Update to glibc 2.35 Major new features: * Unicode 14.0.0 Support * Bump r_version in the debugger interface to 2 * Support for the C.UTF-8 locale has been added to glibc * functions that round their results to a narrower type, and corresponding macros, are added from TS 18661-1:2014, TS 18661-3:2015 and draft ISO C2X * functions for floating-point maximum and minimum, corresponding to new operations in IEEE 754-2019, and corresponding macros, are added from draft ISO C2X * macros for single-precision float constants are added as a GNU extension * The __STDC_IEC_60559_BFP__ and __STDC_IEC_60559_COMPLEX__ macros are predefined as specified in TS 18661-1:2014 * The exp10 functions in now have a corresponding type-generic macro in * The ISO C2X macro _PRINTF_NAN_LEN_MAX has been added to * printf-family functions now support the %b format for output of integers in binary, as specified in draft ISO C2X, and the %B variant of that format recommended by draft ISO C2X * A new DSO sorting algorithm has been added in the dynamic linker that uses topological sorting by depth-first search (DFS), solving performance issues of the existing sorting algorithm when encountering particular circular object dependency cases * A new tunable, glibc.rtld.dynamic_sort, can be used to select between the two DSO sorting algorithms * ABI support for a new function '__memcmpeq'. '__memcmpeq' is meant to be used by compilers for optimizing usage of 'memcmp' when its return value is only used for its boolean status * Support for automatically registering threads with the Linux rseq system call has been added * A symbolic link to the dynamic linker is now installed under /usr/bin/ld.so (or more precisely, '${bindir}/ld.so') * All programs and the testsuite in glibc are now built as position independent executables (PIE) by default on toolchains and architectures that support it * On Linux, a new tunable, glibc.malloc.hugetlb, can be used to either make malloc issue madvise plus MADV_HUGEPAGE on mmap and sbrk or to use huge pages directly with mmap calls with the MAP_HUGETLB flags) * The printf family of functions now handles the flagged %#m conversion specifier, printing errno as an error constant (similar to strerrorname_np) * The function _dl_find_object has been added * On Linux, the epoll_pwait2 function has been added * The function posix_spawn_file_actions_addtcsetpgrp_np has been added, enabling posix_spawn and posix_spawnp to set the controlling terminal in the new process in a race free manner * Source fortification (_FORTIFY_SOURCE) level 3 is now available for applications compiling with glibc and gcc 12 and later Deprecated and removed features, and other changes affecting compatibility: * On x86-64, the LD_PREFER_MAP_32BIT_EXEC environment variable support has been removed since the first PT_LOAD segment is no longer executable due to defaulting to -z separate-code * The r_version update in the debugger interface makes the glibc binary incompatible with GDB * Intel MPX support (lazy PLT, ld.so profile, and LD_AUDIT) has been removed * The catchsegv script and associated libSegFault.so shared object have been removed * Support for prelink will be removed in the next release; this includes removal of the LD_TRACE_PRELINKING, and LD_USE_LOAD_BIAS, environment variables and their functionality in the dynamic loader Changes to build and runtime requirements: * The audit module interface version LAV_CURRENT is increased to enable proper bind-now support * The audit interface on aarch64 is extended to support both the indirect result location register (x8) and NEON Q register Security related changes: * CVE-2022-23219: Passing an overlong file name to the clnt_create legacy function could result in a stack-based buffer overflow when using the "unix" protocol * CVE-2022-23218: Passing an overlong file name to the svcunix_create legacy function could result in a stack-based buffer overflow * CVE-2021-3998: Passing a path longer than PATH_MAX to the realpath function could result in a memory leak and potential access of uninitialized memory * CVE-2021-3999: Passing a buffer of size exactly 1 byte to the getcwd function may result in an off-by-one buffer underflow and overflow when the current working directory is longer than PATH_MAX and also corresponds to the / directory through an unprivileged mount namespace - copy-and-spawn-sgid-double-close.patch, fcntl-time-bits-64-redirect.patch, gaiconf-init-double-free.patch, gconv-parseconfdir-memory-leak.patch, getcwd-attribute-access.patch, glibc-c-utf8-locale.patch, iconv-charmap-close-output.patch, ld-show-auxv-colon.patch, ldconfig-leak-empty-paths.patch, librt-null-pointer.patch, pthread-kill-fail-after-exit.patch, pthread-kill-race-thread-exit.patch, pthread-kill-return-esrch.patch, pthread-kill-send-specific-thread.patch, pthread-mutexattr-getrobust-np-type.patch, setxid-deadlock-blocked-signals.patch, sysconf-nprocessors-affinity.patch, x86-string-control-test.patch: Removed. - bsc#1194640 - bsc#1194768 - bsc#1194770 - bsc#1197718 - bsc#1211829 - bsc#1215891- Enable building the cross packages in rings.- Add ExtraBuildFlags for build flags that cannot be passed to configure. - Add support for livepatches (jsc#SLE-20049). - Generate ipa-clones tarball artifact when livepatching is enabled.- glibc.rpmlintrc: Update for rpmlint2- ld-show-auxv-colon.patch: elf: Fix missing colon in LD_SHOW_AUXV output (BZ #282539 - x86-string-control-test.patch: x86-64: Use testl to check __x86_string_control - pthread-kill-fail-after-exit.patch: nptl: pthread_kill, pthread_cancel should not fail after exit (BZ #19193) - pthread-kill-race-thread-exit.patch: nptl: Fix race between pthread_kill and thread exit (BZ #12889) - getcwd-attribute-access.patch: posix: Fix attribute access mode on getcwd (BZ #27476) - pthread-kill-return-esrch.patch: nptl: pthread_kill needs to return ESRCH for old programs (BZ #19193) - pthread-mutexattr-getrobust-np-type.patch: nptl: Fix type of pthread_mutexattr_getrobust_np, pthread_mutexattr_setrobust_np (BZ [#28036]) - setxid-deadlock-blocked-signals.patch: nptl: Avoid setxid deadlock with blocked signals in thread exit (BZ #28361) - pthread-kill-send-specific-thread.patch: nptl: pthread_kill must send signals to a specific thread (BZ #28407) - sysconf-nprocessors-affinity.patch: linux: Revert the use of sched_getaffinity on get_nproc (BZ #28310) - iconv-charmap-close-output.patch: renamed from icon-charmap-close-output.patch- Don't create separate debuginfo packages for cross packages- ldconfig-leak-empty-paths.patch: ldconfig: avoid leak on empty paths in config file - gconv-parseconfdir-memory-leak.patch: gconv_parseconfdir: Fix memory leak - gaiconf-init-double-free.patch: gaiconf_init: Avoid double-free in label and precedence lists - copy-and-spawn-sgid-double-close.patch: copy_and_spawn_sgid: Avoid double calls to close() - icon-charmap-close-output.patch: iconv_charmap: Close output file when done - fcntl-time-bits-64-redirect.patch: Linux: Fix fcntl, ioctl, prctl redirects for _TIME_BITS=64 (BZ #28182) - librt-null-pointer.patch: librt: fix NULL pointer dereference (BZ [#28213])- Add cross development packages for aarch64 and riscv64.- Update to glibc 2.34 Major new features: * When _DYNAMIC_STACK_SIZE_SOURCE or _GNU_SOURCE are defined, PTHREAD_STACK_MIN is no longer constant and is redefined to sysconf(_SC_THREAD_STACK_MIN) * Add _SC_MINSIGSTKSZ and _SC_SIGSTKSZ * The dynamic linker implements the --list-diagnostics option, printing a dump of information related to IFUNC resolver operation and glibc-hwcaps subdirectory selection * On Linux, the function execveat has been added * The ISO C2X function timespec_getres has been added * The feature test macro __STDC_WANT_IEC_60559_EXT__, from draft ISO C2X, is supported to enable declarations of functions defined in Annex F of C2X * Add support for 64-bit time_t on configurations like x86 where time_t is traditionally 32-bit * The main gconv-modules file in glibc now contains only a small set of essential converter modules and the rest have been moved into a supplementary configuration file gconv-modules-extra.conf in the gconv-modules.d directory in the same GCONV_PATH * On Linux, a new tunable, glibc.pthread.stack_cache_size, can be used to configure the size of the thread stack cache * The function _Fork has been added as an async-signal-safe fork replacement since Austin Group issue 62 droped the async-signal-safe requirement for fork (and it will be included in the future POSIX standard) * On Linux, the close_range function has been added * The function closefrom has been added * The posix_spawn_file_actions_closefrom_np function has been added, enabling posix_spawn and posix_spawnp to close all file descriptors great than or equal to a giver integer Deprecated and removed features, and other changes affecting compatibility: * The function pthread_mutex_consistent_np has been deprecated * The function pthread_mutexattr_getrobust_np has been deprecated * The function pthread_mutexattr_setrobust_np has been deprecated * The function pthread_yield has been deprecated * The function inet_neta declared in has been deprecated * Various rarely-used functions declared in and have been deprecated * The pthread cancellation handler is now installed with SA_RESTART and pthread_cancel will always send the internal SIGCANCEL on a cancellation request * The symbols mallwatch and tr_break are now deprecated and no longer used in mtrace * The __morecore and __after_morecore_hook malloc hooks and the default implementation __default_morecore have been removed from the API * Debugging features in malloc such as the MALLOC_CHECK_ environment variable (or the glibc.malloc.check tunable), mtrace() and mcheck() have now been disabled by default in the main C library * The deprecated functions malloc_get_state and malloc_set_state have been moved from the core C library into libc_malloc_debug.so * The deprecated memory allocation hooks __malloc_hook, __realloc_hook, __memalign_hook and __free_hook are now removed from the API Changes to build and runtime requirements: * On Linux, the shm_open, sem_open, and related functions now expect the file shared memory file system to be mounted at /dev/shm Security related changes: CVE-2021-27645: The nameserver caching daemon (nscd), when processing a request for netgroup lookup, may crash due to a double-free, potentially resulting in degraded service or Denial of Service on the local system CVE-2021-33574: The mq_notify function has a potential use-after-free issue when using a notification type of SIGEV_THREAD and a thread attribute with a non-default affinity mask CVE-2021-35942: The wordexp function may overflow the positional parameter number when processing the expansion resulting in a crash - nss-database-check-reload.patch, nss-load-chroot.patch, x86-isa-level.patch, nscd-netgroupcache.patch, nss-database-lookup.patch, select-modify-timeout.patch, nptl-db-libpthread-load-order.patch, rawmemchr-warning.patch, tst-cpu-features-amx.patch, mq-notify-use-after-free.patch: Removed - bsc#1181403 - bsc#1184035 - bsc#1187911 - jsc#PED-987- Enable usrmerge in Factory always as it's default there - Add conflict with pre-usrmerge filesystem package- mq-notify-use-after-free.patch: Use __pthread_attr_copy in mq_notify (CVE-2021-33574, bsc#1186489, BZ #27896) - Drop glibc-usrmerge-bootstrap-helper package- tst-cpu-features-amx.patch: x86: tst-cpu-features-supports.c: Update AMX check- rawmemchr-warning.patch: string: Work around GCC PR 98512 in rawmemchr- nptl-db-libpthread-load-order.patch: nptl_db: Support different libpthread/ld.so load orders (bsc#1184214, BZ #27744)- Enable support for static PIE (bsc#1184646) - select-modify-timeout.patch: linux: always update select timeout (bsc#1184339, BZ #27706)- Don't remove -f[asynchronous-]unwind-tables during configure run, no longer needed- nss-database-check-reload.patch: nsswitch: return result when nss database is locked (BZ #27343) - nss-load-chroot.patch: nss: Re-enable NSS module loading after chroot (bsc#1182323, BZ #27389) - x86-isa-level.patch: x86: Set minimum x86-64 level marker (bsc#1182522, BZ #27318) - nss-database-lookup.patch: nss: fix nss_database_lookup2's alternate handling (bsc#1182247, BZ #27416) - nss-revert-api.patch: remove - nscd-netgroupcache.patch: nscd: Fix double free in netgroupcache (CVE-2021-27645, bsc#1182733, BZ #27462)- Disable x86 ISA level for now (bsc#1182522, BZ #27318) - nss-revert-api.patch: Workaround for nss-compat brokeness (bsc#1182247, BZ #27416)- Fix build of utils flavor for usrmerge- Prepare for usrmerge (bsc#1029961)- Add --enable-memory-tagging for aarch64- Update to glibc 2.33 * The dynamic linker accepts the --list-tunables argument which prints all the supported tunables. * The dynamic linker accepts the --argv0 argument and provides opportunity to change argv[0] string. * The dynamic linker loads optimized implementations of shared objects from subdirectories under the glibc-hwcaps directory on the library search path if the system's capabilities meet the requirements for that subdirectory. * The new --help option of the dynamic linker provides usage and information and library search path diagnostics. * The mallinfo2 function is added to report statistics as per mallinfo, but with larger field widths to accurately report values that are larger than fit in an integer. * Add to provide query macros for x86 CPU features. * A new fortification level _FORTIFY_SOURCE=3 is available. * The mallinfo function is marked deprecated. * When dlopen is used in statically linked programs, alternative library implementations from HWCAP subdirectories are no longer loaded. * The deprecated header and the function vtimes have been removed. * On s390(x), the type float_t is now derived from the macro __FLT_EVAL_METHOD__ that is defined by the compiler, instead of being hardcoded to double. * A future version of glibc will stop loading shared objects from the "tls" subdirectories on the library search path, the subdirectory that corresponds to the AT_PLATFORM system name, and also stop employing the legacy AT_HWCAP search mechanism. * CVE-2021-3326: An assertion failure during conversion from the ISO-20220-JP-3 character set using the iconv function has been fixed. - Remove obsolete, unused /etc/default/nss - aarch64-static-pie.patch, euc-kr-overrun.patch, get-nprocs-cpu-online-parsing.patch, iconv-redundant-shift.patch, iconv-ucs4-loop-bounds.patch, ifunc-fma4.patch, intl-codeset-suffixes.patch, nscd-gc-cycle.patch, printf-long-double-non-normal.patch, strerrorname-np.patch, syslog-locking.patch, sysvipc.patch: Removed - bsc#1180557 - bsc#1181505 - bsc#1191592 - bsc#1201942- Remove support for %optimize_power - Move to power4 baseline on ppc- aarch64-static-pie.patch: fix static PIE start code for BTI (bsc#1179450, BZ #27068) - iconv-redundant-shift.patch: iconv: Accept redundant shift sequences in IBM1364 (CVE-2020-27618, bsc#1178386, BZ #26224) - iconv-ucs4-loop-bounds.patch: iconv: Fix incorrect UCS4 inner loop bounds (CVE-2020-29562, bsc#1179694, BZ #26923) - printf-long-double-non-normal.patch: x86: Harden printf against non-normal long double values (CVE-2020-29573, bsc#1179721, BZ #26649) - get-nprocs-cpu-online-parsing.patch: Fix parsing of /sys/devices/system/cpu/online (bsc#1180038, BZ #25859)- intl-codeset-suffixes.patch: intl: Handle translation output codesets with suffixes (BZ #26383) - strerrorname-np.patch: string: Fix strerrorname_np return value (BZ [#26555]) - sysvipc.patch: sysvipc: Fix SEM_STAT_ANY kernel argument pass (BZ [#26637], BZ #26639, BZ #26636)- Use --enable-cet on x86_64 to instrument glibc for indirect branch tracking and shadow stack use. Enable indirect branch tracking and shadow stack in the dynamic loader (jsc#PM-2110, bsc#1175154)- Keep nsswitch.conf in /etc for SLES15 - syslog-locking.patch: Correct locking and cancellation cleanup in syslog functions (bsc#1172085, BZ #26100) - ifunc-fma4.patch: x86-64: Fix FMA4 detection in ifunc (BZ #26534)- Update to glibc 2.32 * Unicode 13.0.0 Support * New locale added: ckb_IQ * The GNU C Library now loads audit modules listed in the DT_AUDIT and DT_DEPAUDIT dynamic section entries of the main executable * powerpc64le supports IEEE128 long double libm/libc redirects when using the -mabi=ieeelongdouble to compile C code on supported GCC toolchains * To help detect buffer overflows and other out-of-bounds accesses several APIs have been annotated with GCC 'access' attribute * On Linux, functions the pthread_attr_setsigmask_np and pthread_attr_getsigmask_np have been added * The GNU C Library now provides the header file which declares the variable __libc_single_threaded * The functions sigabbrev_np and sigdescr_np have been added * The functions strerrorname_np and strerrordesc_np have been added * AArch64 now supports standard branch protection security hardening in glibc when it is built with a GCC that is configured with - -enable-standard-branch-protection (or if -mbranch-protection=standard flag is passed when building both GCC target libraries and glibc, in either case a custom GCC is needed) * The deprecated header and the sysctl function have been removed * The sstk function is no longer available to newly linked binaries * The legacy signal handling functions siginterrupt, sigpause, sighold, sigrelse, sigignore and sigset, and the sigmask macro have been deprecated * ldconfig now defaults to the new format for ld.so.cache * The deprecated arrays sys_siglist, _sys_siglist, and sys_sigabbrev are no longer available to newly linked binaries, and their declarations have been removed from * The deprecated symbols sys_errlist, _sys_errlist, sys_nerr, and _sys_nerr are no longer available to newly linked binaries, and their declarations have been removed from from * Both strerror and strerror_l now share the same internal buffer in the calling thread, meaning that the returned string pointer may be invalided or contents might be overwritten on subsequent calls in the same thread or if the thread is terminated * Using weak references to libpthread functions such as pthread_create or pthread_key_create to detect the singled-threaded nature of a program is an obsolescent feature * The "files" NSS module no longer supports the "key" database (used for secure RPC) * The __morecore and __after_morecore_hook malloc hooks and the default implementation __default_morecore have been deprecated * The hesiod NSS module has been deprecated and will be removed in a future version of glibc * CVE-2016-10228: An infinite loop has been fixed in the iconv program when invoked with the -c option and when processing invalid multi-byte input sequences * CVE-2020-10029: Trigonometric functions on x86 targets suffered from stack corruption when they were passed a pseudo-zero argument * CVE-2020-1752: A use-after-free vulnerability in the glob function when expanding ~user has been fixed. * CVE-2020-6096: A signed comparison vulnerability in the ARMv7 memcpy and memmove functions has been fixed - riscv-syscall-clobber.patch, ldbl-96-rem-pio2l.patch, long-double-alias.patch: Removed - bsc#1027496 - bsc#1162930 - bsc#1166106 - bsc#1167631 - bsc#1167939 - bsc#1194785, jsc#SLE-18195 - bsc#1200855 - bsc#1201560 - bsc#1201640 - bsc#1207571 - jsc#SLE-13520- long-double-alias.patch: Fix build with GCC 10 when long double = double - nscd-gc-cycle.patch: nscd: bump GC cycle during cache pruning (bsc#1171878, BZ #26130)- glibc-nsswitch-usr.diff: read /usr/etc/nsswitch.conf if /etc/nsswitch.conf does not exist - Install default nsswitch.conf in /usr/etc - Don't install gai.conf in /etc- Split off %lang_package- riscv-syscall-clobber.patch: riscv: Avoid clobbering register parameters in syscall - ldbl-96-rem-pio2l.patch: Avoid ldbl-96 stack corruption from range reduction of pseudo-zero (CVE-2020-10029, bsc#1165784, BZ #25487)- nsswitch.conf: comment out initgroups setting, so that it defaults to the group setting (bsc#1164075)- fix-locking-in-_IO_cleanup.patch: update to latest version- Update to glibc 2.31 * The GNU C Library now supports a feature test macro _ISOC2X_SOURCE to enable features from the draft ISO C2X standard * The functions that round their results to a narrower type now have corresponding type-generic macros in * The function pthread_clockjoin_np has been added, enabling join with a terminated thread with a specific clock * New locale added: mnw_MM (Mon language spoken in Myanmar). * The DNS stub resolver will optionally send the AD (authenticated data) bit in queries if the trust-ad option is set via the options directive in /etc/resolv.conf (or if RES_TRUSTAD is set in _res.options) * The totalorder and totalordermag functions, and the corresponding functions for other floating-point types, now take pointer arguments to avoid signaling NaNs possibly being converted to quiet NaNs in argument passing * The obsolete function stime is no longer available to newly linked binaries, and its declaration has been removed from * The gettimeofday function no longer reports information about a system-wide time zone * If a lazy binding failure happens during dlopen, during the execution of an ELF constructor, the process is now terminated - malloc-info-whitespace.patch, riscv-vfork.patch, prefer-map-32bit-exec.patch, backtrace-powerpc.patch, ldconfig-dynstr.patch: Removed. - bsc#1157893 - bsc#1163184 - fate#325815, fate#325879, fate#325880, fate#325881, fate#325882 - fate#325962- backtrace-powerpc.patch: Fix array overflow in backtrace on PowerPC (CVE-2020-1751, bsc#1158996, BZ #25423) - Drop support for pluggable gconv modules (bsc#1159851)- prefer-map-32bit-exec.patch: rtld: Check __libc_enable_secure before honoring LD_PREFER_MAP_32BIT_EXEC (CVE-2019-19126, bsc#1157292, BZ [#25204])- nsswitch.conf: add usrfiles for services, protocols, rpc, ethers and aliases for /usr/etc move- euc-kr-overrun.patch: Fix buffer overrun in EUC-KR conversion module (CVE-2019-25013, BZ #24973)- ldconfig-dynstr.patch: ldconfig: handle .dynstr located in separate segment (bsc#1153149, BZ #25087)- Package gconv-modules.cache as %ghost - Regenerate it also in the %post of glibc-local-base-- move mo files to glibc-locale as that's where all the other informations for those locales are. glibc-locale-base only has English anyways.- riscv-vfork.patch: Fix RISC-V vfork build with Linux 5.3 kernel headers- Remove NoSource tags (bsc#994835)- pwdutils is long gone and replaced by shadow- Update to glibc 2.30 * Unicode 12.1.0 Support * The dynamic linker accepts the --preload argument to preload shared objects * The twalk_r function has been added * On Linux, the getdents64, gettid, and tgkill functions have been added * Minguo (Republic of China) calendar support has been added * The entry for the new Japanese era has been added * Memory allocation functions malloc, calloc, realloc, reallocarray, valloc, pvalloc, memalign, and posix_memalign fail now with total object size larger than PTRDIFF_MAX * The dynamic linker no longer refuses to load objects which reference versioned symbols whose implementation has moved to a different soname since the object has been linked * Add new POSIX-proposed pthread_cond_clockwait, pthread_mutex_clocklock, pthread_rwlock_clockrdlock, pthread_rwlock_clockwrlock and sem_clockwait functions * On AArch64 the GNU IFUNC resolver call ABI changed * The copy_file_range function fails with ENOSYS if the kernel does not support the system call of the same name * The functions clock_gettime, clock_getres, clock_settime, clock_getcpuclockid, clock_nanosleep were removed from the librt library for new applications (on architectures which had them) * The obsolete and never-implemented XSI STREAMS header files and have been removed * Support for the "inet6" option in /etc/resolv.conf and the RES_USE_INET6 resolver flag (deprecated in glibc 2.25) have been removed * The obsolete RES_INSECURE1 and RES_INSECURE2 option flags for the DNS stub resolver have been removed from * With --enable-bind-now, installed programs are now linked with the BIND_NOW flag. * On 32-bit Arm, support for the port-based I/O emulation and the header have been removed * The Linux-specific header and the sysctl function have been deprecated and will be removed from a future version of glibc * CVE-2019-7309: x86-64 memcmp used signed Jcc instructions to check size * CVE-2019-9169: Attempted case-insensitive regular-expression match via proceed_next_node in posix/regexec.c leads to heap-based buffer over-read - pthread-rwlock-trylock-stalls.patch, arm-systemtap-probe-constraint.patch, pthread-mutex-barrier.patch, fork-handler-lock.patch, pthread-join-probe.patch, riscv-clone-unwind.patch, add-new-Fortran-vector-math-header-file.patch, regex-read-overrun.patch, japanese-era-name-may-2019.patch, dl-show-auxv.patch, s390-vx-vxe-hwcap.patch, taisho-era-string.patch, malloc-tracing-hooks.patch, pldd-inf-loop.patch, malloc-large-bin-corruption-check.patch, wfile-sync-crash.patch, malloc-tests-warnings.patch, fnmatch-collating-elements.patch, iconv-reset-input-buffer.patch: Removed - malloc-info-whitespace.patch: Remove unwanted leading whitespace in malloc_info (BZ #24867) - bsc#1100396 - bsc#1130045- Move /var/lib/misc/Makefile to /usr/share/misc/Makefile.makedb (bsc#1138726)- malloc-tests-warnings.patch: Fix warnings in malloc tests with GCC 9- Set optflags for i686 after _lto_cflags is set (boo#1138807).- Disable LTO due to a usage of top-level assembler that causes LTO issues (boo#1138807).- nss-files-long-lines-2.patch: Remove obsolete patch- dl-show-auxv.patch: Fix output of LD_SHOW_AUXV=1 - s390-vx-vxe-hwcap.patch: S390: Mark vx and vxe as important hwcap - taisho-era-string.patch: ja_JP: Change the offset for Taisho gan-nen from 2 to 1 (BZ #24162) - malloc-tracing-hooks.patch: malloc: Set and reset all hooks for tracing (BZ #16573) - pldd-inf-loop.patch: elf: Fix pldd (BZ#18035) - malloc-large-bin-corruption-check.patch: malloc: Check for large bin list corruption when inserting unsorted chunk (BZ #24216) - wfile-sync-crash.patch: Fix crash in _IO_wfile_sync (BZ #20568)- japanese-era-name-may-2019.patch: ja_JP locale: Add entry for the new Japanese era (BZ #22964) - Replace glibc_post_upgrade with lua script- add-new-Fortran-vector-math-header-file.patch: Update from upstream- regex-read-overrun.patch: fix read overrun (CVE-2019-9169, bsc#1127308, BZ #24114) - ldconfig-concurrency.patch: Avoid concurrency problem in ldconfig (bsc#1117993, BZ #23973)- Add add-new-Fortran-vector-math-header-file.patch.- pthread-rwlock-trylock-stalls.patch: nptl: Fix pthread_rwlock_try*lock stalls (BZ #23844) - arm-systemtap-probe-constraint.patch: arm: Use "nr" constraint for Systemtap probes (BZ #24164) - pthread-mutex-barrier.patch: Add compiler barriers around modifications of the robust mutex list for pthread_mutex_trylock (BZ #24180) - fork-handler-lock.patch: nptl: Avoid fork handler lock for async-signal-safe fork (BZ #24161) - pthread-join-probe.patch: nptl: Fix invalid Systemtap probe in pthread_join (BZ #24211) - riscv-clone-unwind.patch: RISC-V: Fix elfutils testsuite unwind failures (BZ #24040)- Update to glibc 2.29 * The getcpu wrapper function has been added, which returns the currently used CPU and NUMA node * Optimized generic exp, exp2, log, log2, pow, sinf, cosf, sincosf and tanf * The reallocarray function is now declared under _DEFAULT_SOURCE, not just for _GNU_SOURCE, to match BSD environments * For powercp64le ABI, Transactional Lock Elision is now enabled iff kernel indicates that it will abort the transaction prior to entering the kernel (PPC_FEATURE2_HTM_NOSC on hwcap2) * The functions posix_spawn_file_actions_addchdir_np and posix_spawn_file_actions_addfchdir_np have been added, enabling posix_spawn and posix_spawnp to run the new process in a different directory * The popen and system do not run atfork handlers anymore (BZ#17490) * strftime's default formatting of a locale's alternative year (%Ey) has been changed to zero-pad the year to a minimum of two digits, like "%y" * As a GNU extension, the '_' and '-' flags can now be applied to "%EY" to control how the year number is formatted * The glibc.tune tunable namespace has been renamed to glibc.cpu and the tunable glibc.tune.cpu has been renamed to glibc.cpu.name * The type of the pr_uid and pr_gid members of struct elf_prpsinfo, defined in , has been corrected to match the type actually used by the Linux kernel * An archaic GNU extension to scanf, under which '%as', '%aS', and '%a[...]' meant to scan a string and allocate space for it with malloc, is now restricted to programs compiled in C89 or C++98 mode with _GNU_SOURCE defined - unwind-ctor.patch, old-getdents64.patch, nss-files-leak.patch, riscv-feholdexcept-setround.patch, pthread-cond-broadcast-waiters-after-spinning.patch, regex-uninit-memory-access.patch, spawni-maybe-script-execute.patch, gethostid-gethostbyname-failure.patch, strstr-huge-needle.patch, pthread-mutex-lock-elision-race.patch, x86-haswell-string-flags.patch, if-nametoindex-descr-leak.patch, riscv-flush-icache.patch: Removed - CVE-2016-10739 - bsc#1114984 - bsc#1114993 - bsc#1122729 - bsc#1131330 - bsc#1149332 - bsc#1151582 - bsc#1164505- fnmatch-collating-elements.patch: update - riscv-flush-icache.patch: fix for compiling against 4.20 headers- if-nametoindex-descr-leak.patch: if_nametoindex: Fix descriptor leak for overlong name (CVE-2018-19591, BZ #23927, bsc#1117603)- Fix typography for glibc-locale-base.- pthread-mutex-lock-elision-race.patch: Fix race in pthread_mutex_lock while promoting to PTHREAD_MUTEX_ELISION_NP (BZ #23275) - x86-haswell-string-flags.patch: x86: Fix Haswell CPU string flags (BZ [#23709])- unwind-ctor.patch: Add missing unwind information to ld.so on powerpc32 (BZ #23707) - old-getdents64.patch: Rewrite __old_getdents64 (BZ #23497) - nss-files-leak.patch: Fix file stream leak in aliases lookup (BZ #23521) - riscv-feholdexcept-setround.patch: Fix rounding save/restore bug - pthread-cond-broadcast-waiters-after-spinning.patch: Fix waiters-after-spinning case (BZ #23538) - regex-uninit-memory-access.patch: fix uninitialized memory access (BZ [#23578]) - spawni-maybe-script-execute.patch: Fix segfault in maybe_script_execute - gethostid-gethostbyname-failure.patch: Check for NULL value from gethostbyname_r (BZ #23679) - strstr-huge-needle.patch: Fix strstr bug with huge needles (BZ #23637)- Add libpng-devel and zlib-devel for utils build- Add glibc-locale-base subpackage containing only C, C.UTF-8 and en_US.UTF-8 locales (fate#326551)- Update to glibc 2.28 * The localization data for ISO 14651 is updated to match the 2016 Edition 4 release of the standard, this matches data provided by Unicode 9.0.0 * Unicode 11.0.0 Support: Character encoding, character type info, and transliteration tables are all updated to Unicode 11.0.0, using generator scripts contributed by Mike FABIAN (Red Hat) * functions that round their results to a narrower type are added from TS 18661-1:2014 and TS 18661-3:2015 * Two grammatical forms of month names are now supported * The renameat2 function has been added, a variant of the renameat function which has a flags argument * The statx function has been added, a variant of the fstatat64 function with an additional flags argument * IDN domain names in getaddrinfo and getnameinfo now use the system libidn2 library if installed * Parsing of dynamic string tokens in DT_RPATH, DT_RUNPATH, DT_NEEDED, DT_AUXILIARY, and DT_FILTER has been expanded to support the full range of ELF gABI expressions including such constructs as '$ORIGIN$ORIGIN' (if valid) * Support for ISO C threads (ISO/IEC 9899:2011) has been added. * The nonstandard header files and <_G_config.h> are no longer installed * The stdio functions 'getc' and 'putc' are no longer defined as macros * All stdio functions now treat end-of-file as a sticky condition * The macros 'major', 'minor', and 'makedev' are now only available from the header * The obsolete function ustat is no longer available to newly linked binaries; the headers and have been removed * The obsolete function nfsservctl is no longer available to newly linked binaries * The obsolete function name llseek is no longer available to newly linked binaries * The AI_IDN_ALLOW_UNASSIGNED and NI_IDN_ALLOW_UNASSIGNED flags for the getaddrinfo and getnameinfo functions have been deprecated * The AI_IDN_USE_STD3_ASCII_RULES and NI_IDN_USE_STD3_ASCII_RULES flags for the getaddrinfo and getnameinfo functions have been deprecated * The fcntl function now have a Long File Support variant named fcntl64 * CVE-2016-6261, CVE-2016-6263, CVE-2017-14062: Various vulnerabilities have been fixed by removing the glibc-internal IDNA implementation and using the system-provided libidn2 library instead - Split off all libcrypt related functions into package libxcrypt - fix-locking-in-_IO_cleanup.patch, fnmatch-collating-elements.patch: Rediff - aarch64-sys-ptrace-update.patch, crypt_blowfish-1.2-hack_around_arm.diff, crypt_blowfish-1.2-sha.diff, crypt_blowfish-const.patch, crypt_blowfish-gensalt.patch, glibc-2.14-crypt.diff, i386-memmove-sse2-unaligned.patch, i386-sigaction-sa-restorer.patch, mempcpy-avx512.patch, netgroup-cache-keys.patch, nss-database-multiple-dfn.patch, pkey-get-reserved-name.patch, powerpc-sys-ptrace-undefine-macros.patch, powerpc-sys-ptrace-update.patch, realpath-ssize-max-overflow.patch, res-send-enomem.patch, riscv-fmax-fmin-nan.patch, riscv-kernel-sigaction.patch, riscv-readelflib.patch, riscv-tls-init.patch: Removed - glibc_post_upgrade.c: Don't reload init (bsc#1103124) - CVE-2009-5155, CVE-2015-8985 - bsc#1092877 - bsc#1102526 - bsc#1112570 - bsc#1126590 - bsc#1127223- Use python3-pexpect instead of python-pexpect- riscv-kernel-sigaction.patch: fix struct kernel_sigaction to match the kernel version (BZ #23069)- glibc-2.3.90-langpackdir.diff: No longer search in /usr/share/locale-bundle- mempcpy-avx512.patch: Don't write beyond destination in __mempcpy_avx512_no_vzeroupper (CVE-2018-11237, bsc#1094154) - realpath-ssize-max-overflow.patch: Fix overflow in path length computation (CVE-2018-11236, bsc#1094161, BZ #22786) - Use %license also for COPYING, COPYING.LIB- Readd nis to netgroup and automount nss config (bsc#1088860)- i386-memmove-sse2-unaligned.patch: Fix SSE2 memmove issue when crossing 2GB boundary (CVE-2017-18269, bnc#1094150, BZ #22644)- res-send-enomem.patch: Fix crash in resolver on memory allocation failure (bsc#1086690, BZ #23005)- pkey-get-reserved-name.patch: Linux: use reserved name __key in pkey_get (BZ #22797) - aarch64-sys-ptrace-update.patch: linux/aarch64: sync sys/ptrace.h with Linux 4.15 (BZ #22433) - powerpc-sys-ptrace-undefine-macros.patch: powerpc: Undefine Linux ptrace macros that conflict with __ptrace_request - powerpc-sys-ptrace-update.patch: linux/powerpc: sync sys/ptrace.h with Linux 4.15 (BZ #22433, BZ #22807) - netgroup-cache-keys.patch: Fix netgroup cache keys (BZ #22342) - i386-sigaction-sa-restorer.patch: i386: Fix i386 sigaction sa_restorer initialization (BZ #21269) - riscv-tls-init.patch: RISC-V: Do not initialize $gp in TLS macros - riscv-fmax-fmin-nan.patch: RISC-V: fmax/fmin: Handle signalling NaNs correctly (BZ #22884)- nss-database-multiple-dfn.patch: Fix multiple definitions of __nss_*_database (BZ #22918)- Use %license (boo#1082318)- Add systemtap-headers to BuildRequires - Add --enable-systemtap to configure arguments (fate#324969, bsc#1073636)- riscv-readelflib.patch: Fix parsing flags in ELF64 files on riscv- Update to glibc 2.27 * Optimized x86-64 asin, atan2, exp, expf, log, pow, atan, sin, cosf, sinf, sincosf and tan with FMA * Optimized x86-64 trunc and truncf for processors with SSE4.1 * Optimized generic expf, exp2f, logf, log2f, powf, sinf, cosf and sincosf * In order to support faster and safer process termination the malloc API family of functions will no longer print a failure address and stack backtrace after detecting heap corruption * The abort function terminates the process immediately, without flushing stdio streams * On platforms where long double has the IEEE binary128 format (aarch64, alpha, mips64, riscv, s390 and sparc), the math library now implements _Float128 interfaces for that type, as defined by ISO/IEC TS 18661-3:2015 These are the same interfaces added in version 2.26 for some platforms where this format is supported but is not the format of long double * On platforms with support for _Float64x (aarch64, alpha, i386, ia64, mips64, powerpc64le, riscv, s390, sparc and x86_64), the math library now implements interfaces for that type, as defined by ISO/IEC TS 18661-3:2015 * The math library now implements interfaces for the _Float32, _Float64 and _Float32x types, as defined by ISO/IEC TS 18661-3:2015 * glibc now implements the memfd_create and mlock2 functions on Linux * Support for memory protection keys was added * The copy_file_range function was added * The ldconfig utility now processes `include' directives using the C/POSIX collation ordering * Support for two grammatical forms of month names has been added * Support for the RISC-V ISA running on Linux has been added * Statically compiled applications attempting to load locales compiled for the GNU C Library version 2.27 will fail and fall back to the builtin C/POSIX locale * Support for statically linked applications which call dlopen is deprecated and will be removed in a future version of glibc * Support for old programs which use internal stdio data structures and functions is deprecated * On GNU/Linux, the obsolete Linux constant PTRACE_SEIZE_DEVEL is no longer defined by * libm no longer supports SVID error handling (calling a user-provided matherr function on error) or the _LIB_VERSION variable to control error handling * The libm functions pow10, pow10f and pow10l are no longer supported for new programs * The mcontext_t type is no longer the same as struct sigcontext * The add-ons mechanism for building additional packages at the same time as glibc has been removed * The res_hnok, res_dnok, res_mailok and res_ownok functions now check that the specified string can be parsed as a domain name * In the malloc_info output, the element may contain another element, "subheaps", which contains the number of sub-heaps * In the malloc_info output, the element may contain another element, "subheaps", which contains the number of sub-heaps * The nonstandard header files and <_G_config.h> are deprecated and will be removed in a future release * CVE-2018-6485, CVE-2018-6551: The posix_memalign and memalign functions, when called with an object size near the value of SIZE_MAX, would return a pointer to a buffer which is too small, instead of NULL (bsc#1079036) - Support for Sun RPC is no longer available, use libtirpc instead - glibc-nodate.patch, powerpc-elision-enable-envvar.patch, s390-elision-enable-envvar.patch, resolv-context-leak.patch, dl-runtime-resolve-opt-avx512f.patch, libpthread-compat-wrappers.patch, math-c++-compat.patch, remove-nss-nis-compat.patch, eh-frame-zero-terminator.patch, ld-so-hwcap-x86-64.patch, assert-pedantic.patch, getaddrinfo-errno.patch, resolv-conf-oom.patch, dynarray-allocation.patch, nearbyint-inexact.patch, nss-compat.patch, nscd-libnsl.patch, malloc-tcache-leak.patch, falkor-memcpy-memmove.patch, aarch64-cpu-features.patch, nss-files-large-buffers.patch. sysconf-uio-maxiov.patch, glob-tilde-overflow.patch, dl-runtime-resolve-xsave.patch, spawni-assert.patch, x86-64-dl-platform.patch, glob64-s390.patch, tst-tlsopt-powerpc.patch, powerpc-hwcap-bits.patch, malloc-tcache-check-overflow.patch, dl-init-paths-overflow.patch, fillin-rpath-empty-tokens.patch, getcwd-absolute.patch, ldd-system-interp.patchabort-no-flush.patch: Removed - All patches refreshed - bsc#1063675- fix-locking-in-_IO_cleanup.patch: Skip locked files during exit (bsc#1070491, BZ #15142)- Avoid duplicate source rpm- getcwd-absolute.patch: make getcwd(3) fail if it cannot obtain an absolute path (CVE-2018-1000001, bsc#1074293, BZ #22679)- dl-init-paths-overflow.patch: Count components of the expanded path in _dl_init_path (CVE-2017-1000408, CVE-2017-1000409, bsc#1071319, BZ [#22607], BZ #22627) - fillin-rpath-empty-tokens.patch: Check for empty tokens before dynamic string token expansion (CVE-2017-16997, bsc#1073231, BZ #22625)- tst-tlsopt-powerpc.patch: fix tst-tlsopt-powerpc (bcn#1070419) - powerpc-hwcap-bits.patch: Update HWCAP for powerpc (bnc#1070420) - malloc-tcache-check-overflow.patch: Fix integer overflow in malloc when tcache is enabled (CVE-2017-17426, bnc#1071479, BZ #22375)- Add _multibuild- glob64-s390.patch: no compat glob64 on s390 - noversion.tar.bz2: remove unused source- x86-64-dl-platform.patch: Don't set GLRO(dl_platform) to NULL (BZ #22299)- spawni-assert.patch: Fix improper assert in Linux posix_spawn (BZ [#22273])- math-c++-compat.patch: Add more C++ compatibility (BZ #22296) - malloc-tcache-leak.patch: Fix tcache leak after thread destruction (BZ [#22111]) - falkor-memcpy-memmove.patch: Optimized implementation of memcpy/memmove for Qualcomm Falkor - aarch64-cpu-features.patch: Fix glibc.tune.cpu tunable handling - nss-files-large-buffers.patch: Avoid large buffers with many host addresses (BZ #22078) - sysconf-uio-maxiov.patch: Fix missing definition of UIO_MAXIOV (BZ [#22321]) - glob-tilde-overflow.patch: Fix buffer overflows with GLOB_TILDE (CVE-2017-15670, CVE-2017-15671, CVE-2017-15804, bsc#1064569. bsc#1064580, bsc#1064583, BZ #22320, BZ #22325, BZ #22332) - dl-runtime-resolve-xsave.patch: Use fxsave/xsave/xsavec in _dl_runtime_resolve (BZ #21265)- nscd-libnsl.patch: Remove reference to libnsl from nscd (bsc#1062244)- Drop glibc-obsolete - glibc-2.3.90-noversion.diff: remove - reinitialize-dl_load_write_lock.patch: remove- nss-compat.patch: Move nss_compat from nis to nss subdir and install it unconditionally - nsswitch.conf: switch back to compat for passwd, group, shadow- assert-pedantic.patch: Suppress pedantic warning caused by statement expression (BZ #21242, BZ #21972) - math-c++-compat.patch: Add more C++ compatibility (BZ #22235) - getaddrinfo-errno.patch: Fix errno and h_errno handling in getaddrinfo (BZ #21915, BZ #21922) - resolv-conf-oom.patch: Fix memory handling in OOM situation during resolv.conf parsing (BZ #22095, BZ #22096) - dynarray-allocation.patch: Fix initial size of dynarray allocation and set errno on overflow error - nearbyint-inexact.patch: Avoid spurious inexact in nearbyint (BZ #22225)- math-c++-compat.patch: add more C++ compatibility (BZ #22146)- Remove rpcsvc/yppasswd.* from glibc-devel - ld-so-hwcap-x86-64.patch: add x86_64 to hwcap (bsc#1056606, BZ #22093)- eh-frame-zero-terminator.patch: Properly terminate .eh_frame (BZ #22051)- Disable obsolete libnsl and NIS support - remove-nss-nis-compat.patch: remove nis and compat from default NSS configs - nsswitch.conf: Likewise- math-c++-compat.patch: Do not use __builtin_types_compatible_p in C++ mode (BZ #21930)- Add iconvconfig to baselibs.conf (bsc#1051042)- resolv-context-leak.patch: Fix leaks of resolver contexts - dl-runtime-resolve-opt-avx512f.patch: Use _dl_runtime_resolve_opt only with AVX512F (BZ #21871) - libpthread-compat-wrappers.patch: Don't use IFUNC resolver for longjmp or system in libpthread (BZ #21041)- Update to glibc 2.26 * A per-thread cache has been added to malloc * Unicode 10.0.0 Support * Improvements to the DNS stub resolver * New function reallocarray, which resizes an allocated block (like realloc) to the product of two sizes, with a guaranteed clean failure upon integer overflow in the multiplication * New wrappers for the Linux-specific system calls preadv2 and pwritev2 * posix_spawnattr_setflags now supports the flag POSIX_SPAWN_SETSID, to create a new session ID for the spawned process * errno.h is now safe to use from C-preprocessed assembly language on all supported operating systems * On ia64, powerpc64le, x86-32, and x86-64, the math library now implements 128-bit floating point as defined by ISO/IEC/IEEE 60559:2011 (IEEE 754-2008) and ISO/IEC TS 18661-3:2015 * The synchronization that pthread_spin_unlock performs has been changed to now be equivalent to a C11 atomic store with release memory order to the spin lock's memory location * The DNS stub resolver no longer performs EDNS fallback * res_mkquery and res_nmkquery no longer support the IQUERY opcode * The _res_opcodes variable has been removed from libresolv * no longer includes inline versions of any string functions, as this kind of optimization is better done by the compiler * The nonstandard header has been removed * The obsolete header has been removed * The obsolete signal constant SIGUNUSED is no longer defined by * The obsolete function cfree has been removed * The stack_t type no longer has the name struct sigaltstack * The ucontext_t type no longer has the name struct ucontext * On S/390 GNU/Linux, the constants defined by have been synced with the kernel * Linux kernel 3.2 or later is required at runtime, on all architectures supported by that kernel * The DNS stub resolver limits the advertised UDP buffer size to 1200 bytes, to avoid fragmentation-based spoofing attacks (CVE-2017-12132) * LD_LIBRARY_PATH is now ignored in binaries running in privileged AT_SECURE mode to guard against local privilege escalation attacks (CVE-2017-1000366) * Avoid printing a backtrace from the __stack_chk_fail function since it is called on a corrupt stack and a backtrace is unreliable on a corrupt stack (CVE-2010-3192) * A use-after-free vulnerability in clntudp_call in the Sun RPC system has been fixed (CVE-2017-12133) * fate#322258, fate#321513, fate#322453 - fts-symbol-redirect.patch, glibc-resolv-reload.diff, glibc-2.2-sunrpc.diff, i686-memchr-sse.patch, ld-hwcap-mask-suid.patch, ld-library-path-suid.patch, sunrpc-use-after-free.patch, test-math-vector-sincos-aliasing.patch, tunables-bigendian.patch: Removed - bsc#1074208- Fix RPM group- s390-elision-enable-envvar.patch: enable TLE only if GLIBC_ELISION_ENABLE=yes is defined (fate#322271)- ld-hwcap-mask-suid.patch: Ignore and remove LD_HWCAP_MASK for AT_SECURE programs (BZ #21209) - ld-library-path-suid.patch: Completely ignore LD_LIBRARY_PATH for AT_SECURE=1 programs (CVE-2017-1000366, bsc#1039357, BZ #21624)- Remove glibc-cpusetsize.diff, no longer useful- fts-symbol-redirect.patch: Fix symbol redirect for fts_set (bsc#1041123, BZ #21289)- test-math-vector-sincos-aliasing.patch: Fix test-math-vector-sincos.h aliasing- add-locales.patch: renamed from glibc-2.3.locales.diff.bz2, drop en_BE locales (bsc#1039502)- Remove glibc-testsuite.patch, no longer relevant- Use multibuild feature - Remove obsolete check-build.sh - glibc.rpmlintrc: remove obsolete entries - Use %tmpfiles_create in nscd postin- i686-memchr-sse.patch: Fix i686 memchr overflow calculation (bsc#1031021, BZ #21182) - sunrpc-use-after-free.patch: Avoid use-after-free read access in clntudp_call (BZ #21115) - Build testsuite with gdb and python-pexpect to enable more tests- tunables-bigendian.patch: Fix getting tunable values on big-endian (BZ [#21109])- Update to glibc 2.25 * The feature test macro __STDC_WANT_LIB_EXT2__, from ISO/IEC TR 24731-2:2010, is supported to enable declarations of functions from that TR. * The feature test macro __STDC_WANT_IEC_60559_BFP_EXT__, from ISO/IEC TS 18661-1:2014, is supported to enable declarations of functions and macros from that TS. * The feature test macro __STDC_WANT_IEC_60559_FUNCS_EXT__, from ISO/IEC TS 18661-4:2015, is supported to enable declarations of functions and macros from that TS. * The nonstandard feature selection macros _REENTRANT and _THREAD_SAFE are now treated as compatibility synonyms for _POSIX_C_SOURCE=199506L. * The inclusion of by is deprecated. * New features from TS 18661-1:2014 are added to libm: the fesetexcept, fetestexceptflag, fegetmode and fesetmode functions, the femode_t type and the FE_DFL_MODE and FE_SNANS_ALWAYS_SIGNAL macros. * Integer width macros from TS 18661-1:2014 are added to : CHAR_WIDTH, SCHAR_WIDTH, UCHAR_WIDTH, SHRT_WIDTH, USHRT_WIDTH, INT_WIDTH, UINT_WIDTH, LONG_WIDTH, ULONG_WIDTH, LLONG_WIDTH, ULLONG_WIDTH; and to : INT8_WIDTH, UINT8_WIDTH, INT16_WIDTH, UINT16_WIDTH, INT32_WIDTH, UINT32_WIDTH, INT64_WIDTH, UINT64_WIDTH, INT_LEAST8_WIDTH, UINT_LEAST8_WIDTH, INT_LEAST16_WIDTH, UINT_LEAST16_WIDTH, INT_LEAST32_WIDTH, UINT_LEAST32_WIDTH, INT_LEAST64_WIDTH, UINT_LEAST64_WIDTH, INT_FAST8_WIDTH, UINT_FAST8_WIDTH, INT_FAST16_WIDTH, UINT_FAST16_WIDTH, INT_FAST32_WIDTH, UINT_FAST32_WIDTH, INT_FAST64_WIDTH, UINT_FAST64_WIDTH, INTPTR_WIDTH, UINTPTR_WIDTH, INTMAX_WIDTH, UINTMAX_WIDTH, PTRDIFF_WIDTH, SIG_ATOMIC_WIDTH, SIZE_WIDTH, WCHAR_WIDTH, WINT_WIDTH. * New features are added from TS 18661-1:2014: - Signaling NaN macros: SNANF, SNAN, SNANL. - Nearest integer functions: roundeven, roundevenf, roundevenl, fromfp, fromfpf, fromfpl, ufromfp, ufromfpf, ufromfpl, fromfpx, fromfpxf, fromfpxl, ufromfpx, ufromfpxf, ufromfpxl. - llogb functions: the llogb, llogbf and llogbl functions, and the FP_LLOGB0 and FP_LLOGBNAN macros. - Max-min magnitude functions: fmaxmag, fmaxmagf, fmaxmagl, fminmag, fminmagf, fminmagl. - Comparison macros: iseqsig. - Classification macros: iscanonical, issubnormal, iszero. - Total order functions: totalorder, totalorderf, totalorderl, totalordermag, totalordermagf, totalordermagl. - Canonicalize functions: canonicalize, canonicalizef, canonicalizel. - NaN functions: getpayload, getpayloadf, getpayloadl, setpayload, setpayloadf, setpayloadl, setpayloadsig, setpayloadsigf, setpayloadsigl. * The functions strfromd, strfromf, and strfroml, from ISO/IEC TS 18661-1:2014, are added to libc. * Most of glibc can now be built with the stack smashing protector enabled. * The function explicit_bzero, from OpenBSD, has been added to libc. * On ColdFire, MicroBlaze, Nios II and SH3, the float_t type is now defined to float instead of double. * On x86_64, when compiling with -mfpmath=387 or -mfpmath=sse+387, the float_t and double_t types are now defined to long double instead of float and double. * The getentropy and getrandom functions, and the header file have been added. * The buffer size for byte-oriented stdio streams is now limited to 8192 bytes by default. * The header now includes the header. * The malloc_get_state and malloc_set_state functions have been removed. * The “ip6-dotint” and “no-ip6-dotint” resolver options, and the corresponding RES_NOIP6DOTINT flag from have been removed. * The "ip6-bytestring" resolver option and the corresponding RES_USEBSTRING flag from have been removed. * The flags RES_AAONLY, RES_PRIMARY, RES_NOCHECKNAME, RES_KEEPTSIG, RES_BLAST defined in the header file have been deprecated. * The "inet6" option in /etc/resolv.conf and the RES_USE_INET6 flag for _res.flags are deprecated. * DNSSEC-related declarations and definitions have been removed from the header file, and libresolv will no longer attempt to decode the data part of DNSSEC record types. * The resource record type classification macros ns_t_qt_p, ns_t_mrr_p, ns_t_rr_p, ns_t_udp_p, ns_t_xfr_p have been removed from the header file because the distinction between RR types and meta-RR types is not officially standardized, subject to revision, and thus not suitable for encoding in a macro. * The types res_sendhookact, res_send_qhook, re_send_rhook, and the qhook and rhook members of the res_state type in have been removed. * For multi-arch support it is recommended to use a GCC which has been built with support for GNU indirect functions. * GDB pretty printers have been added for mutex and condition variable structures in POSIX Threads. * Tunables feature added to allow tweaking of the runtime for an application program. * A new version of condition variables functions have been implemented in the NPTL implementation of POSIX Threads to provide stronger ordering guarantees. * A new version of pthread_rwlock functions have been implemented to use a more scalable algorithm primarily through not using a critical section anymore to make state changes. * On ARM EABI (32-bit), generating a backtrace for execution contexts which have been created with makecontext could fail to terminate due to a missing .cantunwind annotation. (CVE-2016-6323) * The DNS stub resolver functions would crash due to a NULL pointer dereference when processing a query with a valid DNS question type which was used internally in the implementation. (CVE-2015-5180) - Enable stack protector if part of %optflags - startcontext-cantunwind.patch: Removed - cpuid-assertion.patch: Removed- cpuid-assertion.patch: Don't assert on older Intel CPUs (BZ #20647)- glibc-2.3.3-nscd-db-path.diff: Move persistent nscd databases to /var/lib/nscd - glibc-2.3.90-langpackdir.diff: simplify- Update to glibc 2.24 * The minimum Linux kernel version that this version of the GNU C Library can be used with is 3.2 * The pap_AN locale has been deleted * The readdir_r and readdir64_r functions have been deprecated * The type `union wait' has been removed * A new NSS action is added to facilitate large distributed system administration * The deprecated __malloc_initialize_hook variable has been removed from the API * The long unused localedef --old-style option has been removed * nextupl, nextup, nextupf, nextdownl, nextdown and nextdownf are added to libm * An unnecessary stack copy in _nss_dns_getnetbyname_r was removed (CVE-2016-3075) * Previously, getaddrinfo copied large amounts of address data to the stack, even after the fix for CVE-2013-4458 has been applied, potentially resulting in a stack overflow. getaddrinfo now uses a heap allocation instead (CVE-2016-3706) * The glob function suffered from a stack-based buffer overflow when it was called with the GLOB_ALTDIRFUNC flag and encountered a long file name (CVE-2016-1234) * The Sun RPC UDP client could exhaust all available stack space when flooded with crafted ICMP and UDP messages (CVE-2016-4429) * The IPv6 name server management code in libresolv could result in a memory leak for each thread which is created, performs a failing naming lookup, and exits (CVE-2016-5417) - startcontext-cantunwind.patch: mark __startcontext as .cantunwind (bsc#974800, BZ #20435) - Removed patches: * 0001-Updated-translations-for-2.23.patch * 0002-Regenerate-libc.pot-for-2.23.patch * 0003-Regenerated-configure-scripts.patch * 0004-x86_64-Set-DL_RUNTIME_UNALIGNED_VEC_SIZE-to-8.patch * 0005-Add-fts64_-to-sysdeps-arm-nacl-libc.abilist.patch * 0006-Don-t-use-long-double-math-functions-if-NO_LONG_DOUB.patch * 0007-NEWS-2.23-Fix-typo-in-bug-19048-text.patch * 0008-Update-NEWS.patch * 0009-sln-use-stat64.patch * 0010-Add-sys-auxv.h-wrapper-to-include-sys.patch * 0011-mips-terminate-the-FDE-before-the-return-trampoline-.patch * 0012-Use-HAS_ARCH_FEATURE-with-Fast_Rep_String.patch * 0013-Mention-BZ-19762-in-NEWS.patch * 0014-Define-_HAVE_STRING_ARCH_mempcpy-to-1-for-x86.patch * 0015-Or-bit_Prefer_MAP_32BIT_EXEC-in-EXTRA_LD_ENVVARS.patch * 0016-Fix-resource-leak-in-resolver-bug-19257.patch * 0017-math-don-t-clobber-old-libm.so-on-install-BZ-19822.patch * 0018-resolv-Always-set-resplen2-out-parameter-in-send_dg-.patch * 0019-S390-Save-and-restore-fprs-vrs-while-resolving-symbo.patch * 0020-S390-Extend-structs-La_s390_regs-La_s390_retval-with.patch * 0021-CVE-2016-3075-Stack-overflow-in-_nss_dns_getnetbynam.patch * 0022-configure-fix-test-usage.patch * 0023-Suppress-GCC-6-warning-about-ambiguous-else-with-Wpa.patch * 0024-nss_db-Propagate-ERANGE-error-if-parse_line-fails-BZ.patch * 0025-getnameinfo-Do-not-preserve-errno.patch * 0026-getnameinfo-Refactor-and-fix-memory-leak-BZ-19642.patch * 0027-getnameinfo-Reduce-line-length-and-add-missing-comme.patch * 0028-getnameinfo-Avoid-calling-strnlen-on-uninitialized-b.patch * 0029-getnameinfo-Return-EAI_OVERFLOW-in-more-cases-BZ-197.patch * 0030-hesiod-Remove-RCS-keywords.patch * 0031-hesiod-Always-use-thread-local-resolver-state-BZ-195.patch * 0032-hesiod-Avoid-heap-overflow-in-get_txt_records-BZ-200.patch * 0033-malloc-Remove-NO_THREADS.patch * 0034-Fix-malloc-threaded-tests-link-on-non-Linux.patch * 0035-malloc-Run-fork-handler-as-late-as-possible-BZ-19431.patch * 0036-malloc-Remove-malloc-hooks-from-fork-handler.patch * 0037-malloc-Add-missing-internal_function-attributes-on-f.patch * 0038-nss_dns-Fix-assertion-failure-in-_nss_dns_getcanonna.patch * 0039-nss_dns-Validate-RDATA-length-against-packet-length-.patch * 0040-resolv-nss_dns-Remove-remaining-syslog-logging-BZ-19.patch * 0041-nss_dns-Check-address-length-before-creating-addrinf.patch * 0042-nss_dns-Skip-over-non-PTR-records-in-the-netent-code.patch * 0043-resolv-Always-set-resplen2-out-parameter-in-send_vc-.patch * 0044-tst-audit4-tst-audit10-Compile-AVX-AVX-512-code-sepa.patch * 0045-Fix-tst-audit10-build-when-mavx512f-is-not-supported.patch * 0046-tst-audit10-Fix-compilation-on-compilers-without-bit.patch * 0047-strfmon_l-Use-specified-locale-for-number-formatting.patch * 0048-glob-Simplify-the-interface-for-the-GLOB_ALTDIRFUNC-.patch * 0049-CVE-2016-1234-glob-Do-not-copy-d_name-field-of-struc.patch * 0050-ldconfig-Do-not-remove-stale-symbolic-links-with-X-B.patch * 0051-Report-dlsym-dlvsym-lookup-errors-using-dlerror-BZ-1.patch * 0052-Fix-tst-dlsym-error-build.patch * 0053-Remove-trailing-newline-from-date_fmt-in-Serbian-loc.patch * 0054-Revert-Report-dlsym-dlvsym-lookup-errors-using-dlerr.patch * 0055-CVE-2016-3706-getaddrinfo-stack-overflow-in-hostent-.patch * 0056-Fix-strfmon_l-Use-specified-locale-for-number-format.patch * clntudp-call-alloca.patch * glibc-memset-nontemporal.diff * nis-initgroups-status.patch * nscd-gc-crash.patch * robust-mutex-deadlock.patch * strncat-avoid-array-bounds-warning.patch- strncat-avoid-array-bounds-warning.patch: Avoid array-bounds warning for stncat on i586 (BZ #20260) - Update glibc.keyring - Unset MALLOC_CHECK_ during testsuite run- nsswitch.conf: Add fallback to files for passwd and group to prepare for libnsl removal.- nis-initgroups-status.patch: Return proper status from _nss_nis_initgroups_dyn (bsc#984269, BZ #20262) - robust-mutex-deadlock.patch: Fix generic __lll_robust_timedlock_wait to check for timeout (bsc#985170, BZ #20263)- nscd-gc-crash.patch: Fix nscd assertion failure in gc (bsc#965699, BZ [#19755])- clntudp-call-alloca.patch: do not use alloca in clntudp_call (CVE-2016-4429, bsc#980854, BZ #20112)- Import patches from 2.23 branch 0001-Updated-translations-for-2.23.patch 0002-Regenerate-libc.pot-for-2.23.patch 0003-Regenerated-configure-scripts.patch 0004-x86_64-Set-DL_RUNTIME_UNALIGNED_VEC_SIZE-to-8.patch 0005-Add-fts64_-to-sysdeps-arm-nacl-libc.abilist.patch 0006-Don-t-use-long-double-math-functions-if-NO_LONG_DOUB.patch 0007-NEWS-2.23-Fix-typo-in-bug-19048-text.patch 0008-Update-NEWS.patch 0009-sln-use-stat64.patch 0010-Add-sys-auxv.h-wrapper-to-include-sys.patch 0011-mips-terminate-the-FDE-before-the-return-trampoline-.patch 0012-Use-HAS_ARCH_FEATURE-with-Fast_Rep_String.patch 0013-Mention-BZ-19762-in-NEWS.patch 0014-Define-_HAVE_STRING_ARCH_mempcpy-to-1-for-x86.patch 0015-Or-bit_Prefer_MAP_32BIT_EXEC-in-EXTRA_LD_ENVVARS.patch 0016-Fix-resource-leak-in-resolver-bug-19257.patch 0017-math-don-t-clobber-old-libm.so-on-install-BZ-19822.patch 0018-resolv-Always-set-resplen2-out-parameter-in-send_dg-.patch 0019-S390-Save-and-restore-fprs-vrs-while-resolving-symbo.patch 0020-S390-Extend-structs-La_s390_regs-La_s390_retval-with.patch 0021-CVE-2016-3075-Stack-overflow-in-_nss_dns_getnetbynam.patch 0022-configure-fix-test-usage.patch 0023-Suppress-GCC-6-warning-about-ambiguous-else-with-Wpa.patch 0024-nss_db-Propagate-ERANGE-error-if-parse_line-fails-BZ.patch 0025-getnameinfo-Do-not-preserve-errno.patch 0026-getnameinfo-Refactor-and-fix-memory-leak-BZ-19642.patch 0027-getnameinfo-Reduce-line-length-and-add-missing-comme.patch 0028-getnameinfo-Avoid-calling-strnlen-on-uninitialized-b.patch 0029-getnameinfo-Return-EAI_OVERFLOW-in-more-cases-BZ-197.patch 0030-hesiod-Remove-RCS-keywords.patch 0031-hesiod-Always-use-thread-local-resolver-state-BZ-195.patch 0032-hesiod-Avoid-heap-overflow-in-get_txt_records-BZ-200.patch 0033-malloc-Remove-NO_THREADS.patch 0034-Fix-malloc-threaded-tests-link-on-non-Linux.patch 0035-malloc-Run-fork-handler-as-late-as-possible-BZ-19431.patch 0036-malloc-Remove-malloc-hooks-from-fork-handler.patch 0037-malloc-Add-missing-internal_function-attributes-on-f.patch 0038-nss_dns-Fix-assertion-failure-in-_nss_dns_getcanonna.patch 0039-nss_dns-Validate-RDATA-length-against-packet-length-.patch 0040-resolv-nss_dns-Remove-remaining-syslog-logging-BZ-19.patch 0041-nss_dns-Check-address-length-before-creating-addrinf.patch 0042-nss_dns-Skip-over-non-PTR-records-in-the-netent-code.patch 0043-resolv-Always-set-resplen2-out-parameter-in-send_vc-.patch 0044-tst-audit4-tst-audit10-Compile-AVX-AVX-512-code-sepa.patch 0045-Fix-tst-audit10-build-when-mavx512f-is-not-supported.patch 0046-tst-audit10-Fix-compilation-on-compilers-without-bit.patch 0047-strfmon_l-Use-specified-locale-for-number-formatting.patch 0048-glob-Simplify-the-interface-for-the-GLOB_ALTDIRFUNC-.patch 0049-CVE-2016-1234-glob-Do-not-copy-d_name-field-of-struc.patch 0050-ldconfig-Do-not-remove-stale-symbolic-links-with-X-B.patch 0051-Report-dlsym-dlvsym-lookup-errors-using-dlerror-BZ-1.patch 0052-Fix-tst-dlsym-error-build.patch 0053-Remove-trailing-newline-from-date_fmt-in-Serbian-loc.patch 0054-Revert-Report-dlsym-dlvsym-lookup-errors-using-dlerr.patch 0055-CVE-2016-3706-getaddrinfo-stack-overflow-in-hostent-.patch 0056-Fix-strfmon_l-Use-specified-locale-for-number-format.patch - CVE-2016-3075 CVE-2016-1234 CVE-2016-3706 bsc#973164 bsc#969727 - resolv-mem-leak.patch: renamed to 0016-Fix-resource-leak-in-resolver-bug-19257.patch - no-long-double.patch: renamed to 0006-Don-t-use-long-double-math-functions-if-NO_LONG_DOUB.patch - glibc-gcc6.patch: renamed to 0023-Suppress-GCC-6-warning-about-ambiguous-else-with-Wpa.patch- glibc-c-utf8-locale.patch: fix bad standard in LC_IDENTIFICATION categories - glibc-2.3.locales.diff.bz2: likewise- glibc-gcc6.patch: Suppress GCC 6 warning about ambiguous 'else' with - Wparentheses- Add compatibility symlinks for LSB 3.0 (fate#318933)- powerpc-elision-enable-envvar.patch: enable TLE only if GLIBC_ELISION_ENABLE=yes is defined (bsc#967594, fate#318236)- ldd-system-interp.patch: Restore warning about execution permission, it is still needed for noexec mounts (bsc#915985)- Add C.UTF-8 locale (see https://sourceware.org/glibc/wiki/Proposals/C.UTF-8) and rh#902094 . Added with glibc-c-utf8-locale.patch. - Add glibc-disable-gettext-for-c-utf8.patch to disable gettext for C.UTF-8 same as C locale.- Move %install_info_delete to %preun - crypt_blowfish-1.3.tar.gz.sign: Remove, the sign key is no longer acceptable- no-long-double.patch: Don't use long double functions if NO_LONG_DOUBLE- Update to glibc 2.23 release. * Unicode 8.0.0 Support * sched_setaffinity, pthread_setaffinity_np no longer attempt to guess the kernel-internal CPU set size * The fts.h header can now be used with -D_FILE_OFFSET_BITS=64 * getaddrinfo now detects certain invalid responses on an internal netlink socket * A defect in the malloc implementation, present since glibc 2.15 (2012) or glibc 2.10 via --enable-experimental-malloc (2009), could result in the unnecessary serialization of memory allocation requests across threads * The obsolete header has been removed * The obsolete functions bdflush, create_module, get_kernel_syms, query_module and uselib are no longer available to newly linked binaries * Optimized string, wcsmbs and memory functions for IBM z13. * Newly linked programs that define a variable called signgam will no longer have it set by the lgamma, lgammaf and lgammal functions - Removed patches: * dont-remove-nodelete-flag.patch * openat64-readd-o-largefile.patch * mntent-blank-line.patch * opendir-o-directory-check.patch * strcoll-remove-strdiff-opt.patch * ld-pointer-guard.patch * tls-dtor-list-mangling.patch * powerpc-lock-elision-race.patch * prelink-elf-rtype-class.patch * vector-finite-math-aliases.patch * powerpc-elision-adapt-param.patch * catopen-unbound-alloca.patch * strftime-range-check.patch * hcreate-overflow-check.patch * errorcheck-mutex-no-elision.patch * refactor-nan-parsing.patch * send-dg-buffer-overflow.patch * isinf-cxx11-conflict.patch * ibm93x-redundant-shift-si.patch * iconv-reset-input-buffer.patch * tzset-tzname.patch * static-dlopen.patch- isinf-cxx11-conflict.patch: Fix isinf/isnan declaration conflict with C++11 (bsc#963700, BZ #19439)- tls-dtor-list-mangling.patch: Harden tls_dtor_list with pointer mangling (BZ #19018) - prelink-elf-rtype-class.patch: Keep only ELF_RTYPE_CLASS_{PLT|COPY} bits for prelink (BZ #19178) - vector-finite-math-aliases.patch: Better workaround for aliases of * _finite symbols in vector math library (BZ# 19058) - powerpc-elision-adapt-param.patch: powerpc: Fix usage of elision transient failure adapt param (BZ #19174) - catopen-unbound-alloca.patch: Fix unbound alloca in catopen (CVE-2015-8779, bsc#962739, BZ #17905) - strftime-range-check.patch: Add range check on time fields (CVE-2015-8776, bsc#962736, BZ #18985) - hcreate-overflow-check.patch: Handle overflow in hcreate (CVE-2015-8778, bsc#962737, BZ #18240) - errorcheck-mutex-no-elision.patch: Don't do lock elision on an error checking mutex (bsc#956716, BZ #17514) - refactor-nan-parsing.patch: Refactor strtod parsing of NaN payloads (CVE-2014-9761, bsc#962738, BZ #16962) - send-dg-buffer-overflow.patch: Fix getaddrinfo stack-based buffer overflow (CVE-2015-7547, bsc#961721, BZ #18665) - powerpc-lock-elision-race.patch: renamed from 0001-powerpc-Fix-a-race-condition-when-eliding-a-lock-20150730.patch- Add audit-devel and libcap-devel to BuildRequires, for use by nscd- reinitialize-dl_load_write_lock.patch: Reinitialize dl_load_write_lock on fork (bsc#958315, BZ #19282)- resolv-mem-leak.patch: Fix resource leak in resolver (bsc#955647, BZ #19257) - tzset-tzname.patch: Force rereading TZDEFRULES after it was used to set DST rules only (BZ #19253)- glibc-2.3.90-noversion.diff: use stat64- ld-pointer-guard.patch: Always enable pointer guard (CVE-2015-8777, bsc#950944, BZ #18928)- strcoll-remove-strdiff-opt.patch: Remove incorrect STRDIFF-based optimization (BZ #18589)- iconv-reset-input-buffer.patch: Fix iconv buffer handling with IGNORE error handler (BZ #18830)- new patch [BZ #18743] PowerPC: Fix a race condition when eliding a lock 0001-powerpc-Fix-a-race-condition-when-eliding-a-lock-20150730.patch- nss-files-long-lines-2.patch: Properly reread entry after failure in nss_files getent function (bsc#945779, BZ #18991)- fnmatch-collating-elements.patch: Fix fnmatch handling of collating elements (BZ #17396, BZ #16976)- opendir-o-directory-check.patch: Fix opendir inverted o_directory_works test - static-dlopen.patch: Static dlopen default library search path fix (bsc#937853)- mntent-blank-line.patch: Fix memory corruption w/blank lines- dont-remove-nodelete-flag.patch: Don't remove DF_1_NODELETE flag from all loaded objects on failed dlopen - openat64-readd-o-largefile.patch: Readd O_LARGEFILE flag for openat64- Update to glibc 2.22 release. * Cache information can be queried via sysconf() function on s390 * A buffer overflow in gethostbyname_r and related functions performing DNS requests has been fixed. (CVE-2015-1781) * The time zone file parser has been made more robust against crafted time zone files * A powerpc and powerpc64 optimization for TLS, similar to TLS descriptors for LD and GD on x86 and x86-64, has been implemented. * Character encoding and ctype tables were updated to Unicode 7.0.0 * Added vector math library named libmvec * A new fmemopen implementation has been added with the goal of POSIX compliance. * The header is deprecated, and will be removed in a future release. * bsc#905313 bsc#920338 bsc#927080 bsc#928723 bsc#931480 bsc#939211 bsc#940195 bsc#940332 bsc#944494 bsc#968787 - Patches from upstream removed * htm-tabort.patch * o-tmpfile.patch * memcpy-chk-non-SSE2.patch * pthread-mutexattr-gettype-kind.patch * powerpc-software-sqrt.patch * static-tls-dtv-limit.patch * threaded-trim-threshold.patch * resolv-nameserver-handling.patch * nss-separate-state-getXXent.patch * aarch64-sigstksz.patch * heap-top-corruption.patch * pthread-join-deadlock.patch- pthread-join-deadlock.patch: Use IE model for static variables in libc.so, libpthread.so and rtld (bsc#930015, BZ #18457)- glibc-nodate.patch: fix verification of timestamp- also filter out -fstack-protector-strong- getaddrinfo-ipv6-sanity.diff: Remove. It breaks services that start before IPv6 is up (bsc#931399) - glibc-2.3.locales.diff.bz2: Remove sh_YU locales, fix currency for en_BE.- Add /usr/include/gnu/lib-names-.*.h to baselibs - pthread-join-deadlock.patch: Don't require rtld lock to store static TLS offset in the DTV (bsc#930015, BZ #18457) - heap-top-corruption.patch: Do not corrupt the top of a threaded heap if top chunk is MINSIZE (BZ #18502)- threaded-trim-threshold.patch: Fix regression in threaded application malloc performance (bsc#915955, BZ #17195)- aarch64-sigstksz.patch: Increase MINSIGSTKSZ and SIGSTKSZ (BZ #16850)- powerpc-software-sqrt.patch: Fix powerpc software sqrt (BZ #17964, BZ [#17967]) - nss-separate-state-getXXent.patch: Separate internal state between getXXent and getXXbyYY NSS calls (CVE-2014-8121, bsc#918187, BZ #18007) - static-tls-dtv-limit.patch: Fix DTV race, assert, DTV_SURPLUS Static TLS limit, and nptl_db garbage (bsc#919678, BZ #17090, BZ #17620, BZ #17621, BZ #17628)- resolv-nameserver-handling.patch: Replace with simpler version with more compatibility- memcpy-chk-non-SSE2.patch: Fix __memcpy_chk on non-SSE2 CPUs (bsc#920084)- resolv-nameserver-handling.patch: Rewrite handling of nameserver configuration in resolver- htm-tabort.patch: Fix TABORT encoding for little endian- Update to glibc 2.21 release. * A new semaphore algorithm has been implemented in generic C code for all machines * Added support for TSX lock elision of pthread mutexes on powerpc32, powerpc64 and powerpc64le * Optimized strcpy, stpcpy, strchrnul and strrchr implementations for AArch64 * i386 memcpy functions optimized with SSE2 unaligned load/store * New locales: tu_IN, bh_IN, raj_IN, ce_RU * The obsolete sigvec function has been removed * CVE-2015-1472 CVE-2015-1473 CVE-2012-3406 CVE-2014-9402 CVE-2014-7817 bsc#864081 bsc#906371 bsc#909053 bsc#910599 bsc#916222 - Patches from upstream removed * ifunc-x86-slow-sse4.patch * pthread-mutex-trylock-elision.patch - o-tmpfile.patch: Fix value of O_TMPFILE for architectures with non-default O_DIRECTORY (BZ #17912)- Update to crypt_blowfish 1.3. * Add support for the $2b$ prefix. - ifunc-x86-slow-sse4.patch: Fix misdetected Slow_SSE4_2 cpu feature bit (BZ #17501)h04-ch1a 1733214848  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~2.38-150600.14.17.2glibc64_002dbit-time-symbol-handling.htmlAborting-a-Program.htmlAbsolute-Priority.htmlAbsolute-Value.htmlAbstract-Host-Addresses.htmlAccepting-Connections.htmlAccess-Modes.htmlAccess-Permission.htmlAccess-to-the-Terminal.htmlAccessing-Directories.htmlActions-in-the-NSS-configuration.htmlAdding-Platform_002dspecific.htmlAdding-Severity-Classes.htmlAdding-another-Service-to-NSS.htmlAddress-Formats.htmlAdvanced-Signal-Handling.htmlAdvanced-gettext-functions.htmlAdvantages-of-Alloca.htmlAlarm-Signals.htmlAligned-Memory-Blocks.htmlAlloca-Example.htmlAllocating-Cleared-Space.htmlAllocation-Debugging.htmlAllocation-in-an-Obstack.htmlAllocation.htmlArgp-Children.htmlArgp-Example-1.htmlArgp-Example-2.htmlArgp-Example-3.htmlArgp-Example-4.htmlArgp-Examples.htmlArgp-Flags.htmlArgp-Global-Variables.htmlArgp-Help-Filter-Keys.htmlArgp-Help-Filtering.htmlArgp-Help-Flags.htmlArgp-Help.htmlArgp-Helper-Functions.htmlArgp-Option-Flags.htmlArgp-Option-Vectors.htmlArgp-Parser-Functions.htmlArgp-Parsers.htmlArgp-Parsing-State.htmlArgp-Special-Keys.htmlArgp-User-Customization.htmlArgp.htmlArgument-Macros.htmlArgument-Syntax.htmlArgz-Functions.htmlArgz-and-Envz-Vectors.htmlArithmetic-Functions.htmlArithmetic.htmlArray-Search-Function.htmlArray-Sort-Function.htmlAsynchronous-I_002fO-Signals.htmlAsynchronous-I_002fO.htmlAsynchronous-Reads_002fWrites.htmlAtomic-Data-Access.htmlAtomic-Types.htmlAtomic-Usage.htmlAttribute-Meanings.htmlAuxiliary-Vector.htmlBSD-Random.htmlBSD-Signal-Handling.htmlBSD-Terminal-Modes.htmlBSD-Wait-Functions.htmlBacktraces.htmlBasic-Allocation.htmlBasic-Scheduling-Functions.htmlBasic-Signal-Handling.htmlBerkeley-Unix.htmlBinary-Streams.htmlBlock-Input_002fOutput.htmlBlocking-Signals.htmlBlocking-for-Handler.htmlBroken_002ddown-Time.htmlBuffering-Concepts.htmlByte-Order.htmlByte-Stream-Example.htmlCPU-Affinity.htmlCPU-Time.htmlCalculating-Elapsed-Time.htmlCalendar-Time.htmlCall-Once.htmlCalling-Glob.htmlCalling-Variadics.htmlCalling-Wordexp.htmlCancel-AIO-Operations.htmlCanonical-or-Not.htmlCase-Conversion.htmlChanging-Block-Size.htmlCharacter-Handling.htmlCharacter-Input.htmlCharacter-Set-Handling.htmlCharset-Function-Overview.htmlCharset-conversion-in-gettext.htmlChecking-for-Errors.htmlChecking-for-Pending-Signals.htmlChoosing-Locale.htmlClassification-of-Characters.htmlClassification-of-Wide-Characters.htmlCleaning-Streams.htmlCleanups-on-Exit.htmlClosing-Streams.htmlClosing-a-Socket.htmlCollation-Functions.htmlCommon-Usage.htmlCommunication-Styles.htmlComparison-Functions.htmlComplex-Numbers.htmlConcatenating-Strings.htmlConcept-Index.htmlConcepts-of-Job-Control.htmlConcepts-of-Signals.htmlConditionally-Safe-Features.htmlConfiguration-of-AIO.htmlConfiguring-Inetd.htmlConfiguring-and-compiling.htmlConnecting.htmlConnections.htmlConsistency-Checking.htmlConstants-for-Sysconf.htmlContinuing-Stopped-Jobs.htmlContributors.htmlControl-Functions.htmlControl-Modes.htmlControl-Operations.htmlControlling-Buffering.htmlControlling-Terminal.htmlConversion-Specifier-Options.htmlConverting-Strings.htmlConverting-a-Character.htmlCopying-File-Data.htmlCopying-Strings-and-Arrays.htmlCopying.htmlCreating-Directories.htmlCreating-Obstacks.htmlCreating-a-Pipe.htmlCreating-a-Process.htmlCreating-a-Socket.htmlCryptographic-Functions.htmlCurrency-Symbol.htmlCustom-Streams.htmlCustomizing-Printf.htmlData-Structures.htmlData-Type-Measurements.htmlDatabase-Example.htmlDatagram-Example.htmlDatagrams.htmlDate-and-Time.htmlDebugging-Support.htmlDefault-Thread-Attributes.htmlDefining-Handlers.htmlDefining-the-Output-Handler.htmlDeleting-Files.htmlDelivery-of-Signal.htmlDescriptor-Flags.htmlDescriptors-and-Streams.htmlDirectories.htmlDirectory-Entries.htmlDisadvantages-of-Alloca.htmlDocumentation-License.htmlDuplicating-Descriptors.htmlDynamic-Linker-Introspection.htmlDynamic-Linker.htmlDynamic-Linking-Tunables.htmlDynamic-Output.htmlDynamic-String-Input.htmlEOF-and-Errors.htmlEditing-Characters.htmlEffects-of-Locale.htmlElision-Tunables.htmlEnable_002fDisable-Setuid.htmlEncode-Binary-Data.htmlEnvironment-Access.htmlEnvironment-Variables.htmlEnvz-Functions.htmlErasing-Sensitive-Data.htmlError-Codes.htmlError-Messages.htmlError-Recovery.htmlError-Reporting.htmlErrors-in-Math-Functions.htmlExample-Receiver.htmlExample-of-Getopt.htmlExample-of-Parsing.htmlExample.htmlExamples-of-Sysconf.htmlExecuting-a-File.htmlExit-Status.htmlExpansion-Stages.htmlExponents-and-Logarithms.htmlExtended-Char-Intro.htmlExtending-NSS.htmlExtra-Fast-Growing.htmlFIFO-Special-Files.htmlFP-Bit-Twiddling.htmlFP-Comparison-Functions.htmlFP-Exceptions.htmlFP-Function-Optimizations.htmlFeature-Test-Macros.htmlFile-Attributes.htmlFile-Index.htmlFile-Locks.htmlFile-Minimums.htmlFile-Name-Errors.htmlFile-Name-Portability.htmlFile-Name-Resolution.htmlFile-Names.htmlFile-Owner.htmlFile-Position-Primitive.htmlFile-Position.htmlFile-Positioning.htmlFile-Size.htmlFile-Status-Flags.htmlFile-System-Interface.htmlFile-Times.htmlFilesystem-Handling.htmlFinding-Tokens-in-a-String.htmlFlags-for-Globbing.htmlFlags-for-POSIX-Regexps.htmlFlags-for-Sigaction.htmlFlags-for-Wordexp.htmlFloating-Point-Classes.htmlFloating-Point-Concepts.htmlFloating-Point-Errors.htmlFloating-Point-Numbers.htmlFloating-Point-Parameters.htmlFloating-Type-Macros.htmlFloating_002dPoint-Conversions.htmlFlushing-Buffers.htmlForeground-and-Background.htmlFormatted-Input-Basics.htmlFormatted-Input-Functions.htmlFormatted-Input.htmlFormatted-Messages.htmlFormatted-Output-Basics.htmlFormatted-Output-Functions.htmlFormatted-Output.htmlFormatting-Calendar-Time.htmlFormatting-Numbers.htmlFree-Manuals.htmlFreeing-Obstack-Objects.htmlFreeing-after-Malloc.htmlFunction-Index.htmlFunctions-for-Job-Control.htmlGNU-C-Variable_002dSize-Arrays.htmlGUI-program-problems.htmlGeneral-Limits.htmlGeneral-Numeric.htmlGeneral-Time-String-Parsing.htmlGenerating-Signals.htmlGeneric-Charset-Conversion.htmlGeneric-Conversion-Interface.htmlGetopt-Long-Option-Example.htmlGetopt-Long-Options.htmlGetopt.htmlGetting-File-Status-Flags.htmlGetting-Started.htmlGetting-the-Time.htmlGlobbing.htmlGroup-Data-Structure.htmlGroup-Database.htmlGrowing-Objects.htmlHandler-Returns.htmlHard-Links.htmlHardware-Capability-Tunables.htmlHash-Search-Function.htmlHeader-Files.htmlHeap-Consistency-Checking.htmlHelper-programs-for-gettext.htmlHierarchy-Conventions.htmlHigh-Quality-Random.htmlHook-Functions.htmlHost-Address-Data-Type.htmlHost-Address-Functions.htmlHost-Addresses.htmlHost-Identification.htmlHost-Names.htmlHow-Change-Persona.htmlHow-Many-Arguments.htmlHow-Unread.htmlHow-Variadic.htmlHyperbolic-Functions.htmlIEEE-Floating-Point.htmlIOCTLs.htmlISO-C-Condition-Variables.htmlISO-C-Mutexes.htmlISO-C-Thread-Management.htmlISO-C-Thread_002dlocal-Storage.htmlISO-C-Threads-Return-Values.htmlISO-C-Threads.htmlISO-C.htmlISO-Random.htmlI_002fO-Concepts.htmlI_002fO-Overview.htmlI_002fO-Primitives.htmlI_002fO-Queues.htmlI_002fO-on-Streams.htmlIdentifying-the-Terminal.htmlImplementing-a-Shell.htmlImportant-Data-Types.htmlIndependent-Channels.htmlInet-Example.htmlInetd-Servers.htmlInetd.htmlInfinity-and-NaN.htmlInitial-Signal-Actions.htmlInitial-Thread-Signal-Mask.htmlInitializing-the-Shell.htmlInput-Conversion-Syntax.htmlInput-Modes.htmlInstallation.htmlInteger-Conversions.htmlInteger-Division.htmlIntegers.htmlInter_002dProcess-Communication.htmlInterface-Naming.htmlInternal-Probes.htmlInternet-Address-Formats.htmlInternet-Namespace.htmlInterpreting-the-traces.htmlInterrupt-Input.htmlInterrupted-Primitives.htmlIntroduction.htmlInverse-Trig-Functions.htmlIs-It-a-Terminal.htmlJob-Control-Signals.htmlJob-Control.htmlKeeping-the-state.htmlKill-Example.htmlKinds-of-Signals.htmlLanguage-Features.htmlLaunching-Jobs.htmlLibrary-Summary.htmlLimits-for-Files.htmlLimits-on-Resources.htmlLine-Control.htmlLine-Input.htmlLine-Speed.htmlLinked-Channels.htmlLinux.htmlListening.htmlLocal-Modes.htmlLocal-Namespace-Concepts.htmlLocal-Namespace-Details.htmlLocal-Namespace.htmlLocal-Socket-Example.htmlLocale-Categories.htmlLocale-Information.htmlLocale-Names.htmlLocales.htmlLocating-gettext-catalog.htmlLocked-Memory-Details.htmlLocking-Pages.htmlLogging-In-and-Out.htmlLongjmp-in-Handler.htmlLookup-Group.htmlLookup-Netgroup.htmlLookup-User.htmlLow_002dLevel-I_002fO.htmlLow_002dLevel-Terminal-Interface.htmlLow_002dLevel-Time-String-Parsing.htmlLow_002dlevel-Directory-Access.htmlMacro-Definitions.htmlMaintenance.htmlMaking-Special-Files.htmlMalloc-Examples.htmlMalloc-Tunable-Parameters.htmlManipulating-the-Database.htmlMatching-POSIX-Regexps.htmlMath-Error-Reporting.htmlMathematical-Constants.htmlMathematics.htmlMemory-Allocation-Probes.htmlMemory-Allocation-Tunables.htmlMemory-Allocation-and-C.htmlMemory-Allocation.htmlMemory-Concepts.htmlMemory-Protection.htmlMemory-Related-Tunables.htmlMemory-Resources.htmlMemory-Subsystem.htmlMemory.htmlMemory_002dmapped-I_002fO.htmlMerged-Signals.htmlMessage-Translation.htmlMessage-catalogs-a-la-X_002fOpen.htmlMessage-catalogs-with-gettext.htmlMinimums.htmlMisc-FP-Arithmetic.htmlMisc-Namespaces.htmlMiscellaneous-Signals.htmlMissing-Pieces.htmlMode-Data-Types.htmlMode-Functions.htmlMore-Flags-for-Globbing.htmlMount-Information.htmlMount_002dUnmount_002dRemount.htmlMultibyte-Conversion-Example.htmlNSS-Basics.htmlNSS-Configuration-File.htmlNSS-Module-Function-Internals.htmlNSS-Module-Internals.htmlNSS-Module-Names.htmlNSS-Modules-Interface.htmlName-Service-Switch.htmlNetgroup-Data.htmlNetgroup-Database.htmlNetgroup-Membership.htmlNetworks-Database.htmlNon_002dLocal-Details.htmlNon_002dLocal-Exits-and-Signals.htmlNon_002dLocal-Exits.htmlNon_002dLocal-Intro.htmlNon_002dPOSIX-Extensions.htmlNon_002datomic-Example.htmlNon_002dlocal-Goto-Probes.htmlNon_002dreentrant-Character-Conversion.htmlNon_002dreentrant-Conversion.htmlNon_002dreentrant-String-Conversion.htmlNoncanon-Example.htmlNoncanonical-Input.htmlNonreentrancy.htmlNormal-Termination.htmlNormalization-Functions.htmlNotes-on-NSS-Configuration-File.htmlNull-Pointer-Constant.htmlNumeric-Input-Conversions.htmlObfuscating-Data.htmlObstack-Chunks.htmlObstack-Functions.htmlObstacks-Data-Alignment.htmlObstacks.htmlOpen-File-Description-Locks-Example.htmlOpen-File-Description-Locks.htmlOpen_002dtime-Flags.htmlOpen_002fClose-Sockets.htmlOpening-Streams.htmlOpening-a-Directory.htmlOpening-and-Closing-Files.htmlOperating-Modes.htmlOperation-Error-Signals.htmlOperations-on-Complex.htmlOptions-for-Files.htmlOrphaned-Process-Groups.htmlOther-Input-Conversions.htmlOther-Kinds-of-Streams.htmlOther-Mount-Information.htmlOther-Output-Conversions.htmlOther-Safety-Remarks.htmlOther-Special.htmlOther-iconv-Implementations.htmlOut_002dof_002dBand-Data.htmlOutput-Conversion-Syntax.htmlOutput-Modes.htmlOverview-of-Syslog.htmlPOSIX-Regexp-Compilation.htmlPOSIX-Safety-Concepts.htmlPOSIX-Thread-Tunables.htmlPOSIX-Threads.htmlPOSIX.htmlPage-Lock-Functions.htmlParsing-Date-and-Time.htmlParsing-Program-Arguments.htmlParsing-a-Template-String.htmlParsing-of-Floats.htmlParsing-of-Integers.htmlParsing-of-Numbers.htmlPassphrase-Storage.htmlPathconf.htmlPattern-Matching.htmlPause-Problems.htmlPermission-Bits.htmlPermission-for-kill.htmlPipe-Atomicity.htmlPipe-to-a-Subprocess.htmlPipes-and-FIFOs.htmlPlatform-Type.htmlPlatform.htmlPortable-Positioning.htmlPorting-to-Unix.htmlPorting.htmlPorts.htmlPowerPC.htmlPredefined-Printf-Handlers.htmlPreparing-for-Obstacks.htmlPrintf-Extension-Example.htmlPrinting-Formatted-Messages.htmlPrinting-of-Floats.htmlPriority.htmlProcess-Completion-Status.htmlProcess-Completion.htmlProcess-Creation-Concepts.htmlProcess-Creation-Example.htmlProcess-Group-Functions.htmlProcess-Identification.htmlProcess-Persona.htmlProcess-Signal-Mask.htmlProcesses.htmlProcessor-And-CPU-Time.htmlProcessor-Resources.htmlProcessor-Time.htmlProgram-Arguments.htmlProgram-Basics.htmlProgram-Error-Signals.htmlProgram-Termination.htmlProtocols-Database.htmlPseudo_002dRandom-Numbers.htmlPseudo_002dTerminal-Pairs.htmlPseudo_002dTerminals.htmlQuery-Memory-Parameters.htmlRISC_002dV.htmlRandom-Access-Directory.htmlRange-of-Type.htmlReading-Address.htmlReading-Attributes.htmlReading-Persona.htmlReading_002fClosing-Directory.htmlRealtime-Scheduling.htmlReceiving-Arguments.htmlReceiving-Data.htmlReceiving-Datagrams.htmlRegexp-Cleanup.htmlRegexp-Subexpressions.htmlRegistering-New-Conversions.htmlRegular-Expressions.htmlRemainder-Functions.htmlRemembering-a-Signal.htmlRenaming-Files.htmlReplacing-malloc.htmlReporting-Bugs.htmlRepresentation-of-Strings.htmlReserved-Names.htmlResizing-the-Data-Segment.htmlResource-Usage-And-Limitation.htmlResource-Usage.htmlRestartable-Sequences.htmlRestartable-multibyte-conversion.htmlRoadmap-to-the-Manual.htmlRounding-Functions.htmlRounding.htmlRunning-a-Command.htmlRunning-make-install.htmlSVID-Random.htmlSVID.htmlScanning-All-Groups.htmlScanning-All-Users.htmlScanning-Directory-Content.htmlScatter_002dGather.htmlSearch-Functions.htmlSearch_002fSort-Example.htmlSearching-and-Sorting.htmlSelecting-the-Conversion.htmlSemaphores.htmlSending-Data.htmlSending-Datagrams.htmlServer-Example.htmlServices-Database.htmlServices-in-the-NSS-configuration.htmlSetting-Address.htmlSetting-Groups.htmlSetting-Modes.htmlSetting-Permissions.htmlSetting-User-ID.htmlSetting-an-Alarm.htmlSetting-and-Adjusting-the-Time.htmlSetting-the-Locale.htmlSetuid-Program-Example.htmlShift-State.htmlShuffling-Bytes.htmlSigaction-Function-Example.htmlSign-of-Money-Amount.htmlSignal-Actions.htmlSignal-Characters.htmlSignal-Generation.htmlSignal-Handling.htmlSignal-Messages.htmlSignal-Sets.htmlSignal-Stack.htmlSignal-and-Sigaction.htmlSignaling-Another-Process.htmlSignaling-Yourself.htmlSignals-in-Handler.htmlSigsuspend.htmlSimple-Directory-Lister-Mark-II.htmlSimple-Directory-Lister.htmlSimple-Output.htmlSingle_002dThreaded.htmlSleeping.htmlSocket-Addresses.htmlSocket-Concepts.htmlSocket-Data-Options.htmlSocket-Option-Functions.htmlSocket-Options.htmlSocket-Pairs.htmlSocket_002dLevel-Options.htmlSockets.htmlSource-Fortification.htmlSource-Layout.htmlSpecial-Characters.htmlSpecial-Functions.htmlStandard-Environment.htmlStandard-Locales.htmlStandard-Signals.htmlStandard-Streams.htmlStandards-and-Portability.htmlStart_002fStop-Characters.htmlStatistics-of-Malloc.htmlStatus-bit-operations.htmlStatus-of-AIO-Operations.htmlStatus-of-an-Obstack.htmlStopped-and-Terminated-Jobs.htmlStorage-Allocation.htmlStream-Buffering.htmlStream_002fDescriptor-Precautions.htmlStreams-and-Cookies.htmlStreams-and-File-Descriptors.htmlStreams-and-I18N.htmlStreams-and-Threads.htmlStreams.htmlString-Input-Conversions.htmlString-Length.htmlString-Parameters.htmlString-Streams.htmlString-and-Array-Utilities.htmlString_002fArray-Comparison.htmlString_002fArray-Conventions.htmlStructure-Measurement.htmlSubexpression-Complications.htmlSubmitting-Syslog-Messages.htmlSuboptions-Example.htmlSuboptions.htmlSummary-of-Malloc.htmlSummary-of-Obstacks.htmlSymbol-handling.htmlSymbolic-Links.htmlSynchronizing-AIO-Operations.htmlSynchronizing-I_002fO.htmlSysconf-Definition.htmlSysconf.htmlSyslog-Example.htmlSyslog.htmlSystem-Calls.htmlSystem-Configuration.htmlSystem-Management.htmlSystem-Options.htmlSystem-V-Number-Conversion.htmlSystem-V-contexts.htmlTZ-Variable.htmlTable-of-Input-Conversions.htmlTable-of-Output-Conversions.htmlTemporary-Files.htmlTerminal-Access-Functions.htmlTerminal-Modes.htmlTermination-Internals.htmlTermination-Signals.htmlTermination-in-Handler.htmlTesting-File-Access.htmlTesting-File-Type.htmlTesting-for-Delivery.htmlThe-Elegant-and-Fast-Way.htmlThe-GNU-Allocator.htmlThe-Lame-Way-to-Locale-Data.htmlThe-Uniforum-approach.htmlThe-catgets-Functions.htmlThe-gencat-program.htmlThe-message-catalog-files.htmlThread_002dspecific-Data.htmlThreads.htmlTilde-Expansion.htmlTime-Basics.htmlTime-Functions-Example.htmlTime-Types.htmlTime-Zone-Functions.htmlTips-for-Setuid.htmlTips-for-the-Memory-Debugger.htmlTools-for-Compilation.htmlTracing-malloc.htmlTraditional-Scheduling-Functions.htmlTraditional-Scheduling-Intro.htmlTraditional-Scheduling.htmlTransferring-Data.htmlTranslation-with-gettext.htmlTree-Search-Function.htmlTrig-Functions.htmlTruncating-Strings.htmlTunable-names.htmlTunables.htmlType-Index.htmlUnconstrained-Allocation.htmlUnpredictable-Bytes.htmlUnreading-Idea.htmlUnreading.htmlUnsafe-Features.htmlUser-Accounting-Database.htmlUser-Data-Structure.htmlUser-Database.htmlUser-and-Group-IDs.htmlUsers-and-Groups.htmlUsing-Getopt.htmlUsing-Pause.htmlUsing-Wide-Char-Classes.htmlUsing-gettextized-software.htmlUsing-the-Library.htmlUsing-the-Memory-Debugger.htmlUtility-Limits.htmlUtility-Minimums.htmlVariable-Arguments-Input.htmlVariable-Arguments-Output.htmlVariable-Index.htmlVariable-Size-Automatic.htmlVariable-Substitution.htmlVariadic-Example.htmlVariadic-Functions.htmlVariadic-Prototypes.htmlVersion-Supported.htmlWaiting-for-I_002fO.htmlWaiting-for-a-Signal.htmlWaiting-with-Explicit-Clocks.htmlWho-Logged-In.htmlWho-is-Connected.htmlWhy-Block.htmlWhy-Change-Persona.htmlWhy-Lock-Pages.htmlWhy-Variadic.htmlWide-Character-Case-Conversion.htmlWidth-of-Type.htmlWildcard-Matching.htmlWord-Expansion.htmlWordexp-Example.htmlWorking-Directory.htmlWorking-with-Directory-Trees.htmlWriting-a-User-Entry.htmlX86.htmlXPG-Functions.htmlXPG.htmlYes_002dor_002dNo-Questions.htmlcloselog.htmlfstab.htmlgetpass.htmlglibc-iconv-Implementation.htmlgmon-Tunables.htmliconv-Examples.htmlindex.htmlmtab.htmlopenlog.htmlsetlogmask.htmlsyslog_003b-vsyslog.html/usr/share/doc//usr/share/doc/glibc/-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:36653/SUSE_SLE-15-SP6_Update/06c69cbeb239b2ae9c58e2fab735e12e-glibc.SUSE_SLE-15-SP6_Updatedrpmxz5x86_64-suse-linuxdirectoryHTML document, ASCII textHTML document, ASCII text, with very long linesC source, ASCII text, with very long linesHTML document, UTF-8 Unicode text, with very long liness Гu"utf-8e37b211e677449d9ed7621e6149796b7f0789e6b7501c5406aa16881ff39413e?P7zXZ !t/h8]"k%]< ^6+GIPD7,Fa`cS619Lv̿vtoޛ #T ևRrԢĪH&lq#aƞ/z\C{u >Qkmh@3xiΒBAXѐ\f ~Z7;_o>tFSJoj\(ȋJ/P3^~mb@kC(;dK3@|*<{|`\~p6 ?<eUF7j=S-9Y~e(fY]3*^EJdh5]aB ,T4YSpv~?KmFjbK˻7r#[gZ0N V(dyt #2>c oIlRݚ䚦)gV͑܌\_?|Q H6;^ߜ1;io:pR"٫lŇc<ފ 2FeRFx\#ZTP[5¬!=.iY[Ь.2J J `~yK>Edm F}vo^i6f |%͂R{kAa² zHX xe)v>o?sȗp ddӾ|A6lԌ4R'dX- [`־74CCEщv(e4 eU%G_U7ޥҋG^8-iy=R2$u%DDgBh9{r%OE!Pj9s;ߧ)>oe<[_Ь7clxJsdXx kzYJs?.}2әwɂ#mqjME&=k>EֳQ;n[v|קqN rڪ9$A?j}X} nPbp'"+B`B$(`} wr8{ş>!G&$~]+{ PD?K3 g6Z+5r.s`Q'7kl7r["`ޖtƋFް˸dK}٩ۭTMx.Y A?77 fԹS_8EB*f9FQZ8nŪ ʧ1"q] >YKREs8xkq^kCђ`UADЌFh 0JDž`0'Jj>t9iym -ؚItgZR rC'?`@*OH2 *q0$=ݧA@ObxXz^BZW A\; U})T<ܡ,5JY5t#nXFx NJVG\ApqyX]!k%e4B*k&'HЉcߪ8'~"A˃=,Syu>QL's,g I#攘i"JT7zYVQ+x$lZʬ/_ +-8PR$$,މn%`gC 0w??-\ @,=  EtSܻ& DCͤfMbna ,<gT*&FpAUgڋ=Zl[rB[I MüERw rMJhH:*ڍT?L Ig5_B:}[~~p=һH%dbxBh7@]?Bs-@oPhLЀdkDg[nࢁE2k)-8(q.F:}a;l2=vosOiU.l;tIյ")e?9`=K\+bT5v;ъ{TCJt6H=6-zT(wE)C(hgHh**:HrH폚(y>.EQ=GutD?}/& Fp܈Ocewa"YeM^Age%㬰'B m?F V&Ll8[٤m">M^F}FW|jt@+ X"@j)4Jwi#9NUoV*oiP5֝\v([B]_Dt&t8b;s,Bԋ*MGϺQ̒-5uY{5a(NqcxyTE($zE!ƅ2\0@&FCz šx^C\D}Lt-t ;AM49 )ϒړ$hOR{([#)qz=SwK3j-l2Sj;eԈ}BI<E#WYbE,pH#D] O:'h՛pފTD}Y1mwWBVR+;z6X.oeM{DOSW3$63d%v jx ʙ@b!`'x/K褥ny#68.E"]͛;o9E3 0ǹJkJ/X+>KpqT~I.2_HKnfh_ Vsusݡgb߬So4KE#Fs)T@nn/\xiF{GѺf<?5,j^FCxa] XܙXz4>tKQ}׸Uh Uwe9mSV5;M9tŰk}yx1.ޅItUYZ[dDb{mzGvD6(˺$~_oUBGQ4 @QۣE6:B,lɵ܁ČA{fC?mO綔&XGhl.Ai JB]}1rWaWSlg 6Ƿ MܚaƬGXeʟu(i[M aV{D^ĸpSm(!K@^":l;C tui Ύ*c[&Eh꽱pM8 VߔM?I[2m,t(B-nhX``rFqMKF?;M݇fLWɒԭ\~#0ꫴ{%UO _7[GK$WuNһowVZ37Om Ysccog#܊RSZ|L|+"Դ`GW/)(1'psod.Z~뻂?e\\nA}/7 {\\%^Ԁf .V #<fӋ}\-j")3R6d7g$S # #-0[sDșMҠSTv 43 Gd?VV`fO`G9iPǴ;<5 [گD*# SF&ڙ7l Y;ʘj4:(CMbe *|^K dCu␲g{|r%D7`V a B2&5jgH}C=)3^bNҜ[T"e]Ĩu/k88F=љ]lsܒMnHHV5G)")=RKAgϧK6./1X2^헂\a<6?)-&"FO~j~-ϭd+gw>ζZzY! sܴ%8;ȰR1aZ݌hr`v+ڍSAGS 4RxiQ^5fHiH6+.-.!tĖ?*iYPg-CwbGa?m2FT|DL (|ݫ!B<{{l)IՀ\ X1`J'c q,7G ޳* Et;7?F~#H5@}vq{ITf2թLvie*!IgY9yȗUdG )qXn .sGHvz/ڒx&>$H(Gf׈r j3~f05fyϮVw2[>6YiADI䧚Kw`;_M%^֌Ps!~фd'u=x!͓ۇ`LjcQA$ <|FeAyzUP}Gaudp(Avt!;h_0 H-" wS+ UΝi( r0x~7K60&$jeo#QPɺ:Yh.5MOx9."RR@fV(&ĈxLȡ$b"*ܷCE5T$~~bvhɽ3CQq=?zHctK1qNai)^Z`m^]ɗݨ&4heZ1ѡ6Oذ>™0 ™;pY^,` 7uʜOI*蠖g9#i8RĢ~%hMXW{N )m7ʑESԎ-=.vAKnH&&]QWp%Hǘ>հ&5AFl\6AĪ&ͱPA <"p % HBq8ny\$H9Nģț䍿 0?DҚO-&9\tb&趾&@zU![ի/IdzcUf[ /пX DHň"^妶0a40:&ѱwO [s 4(cz9[)%Ens,kW/m[ r =3ϫN_mԷl J/&VR n[lյ EQf(#~*xfE{lmz,Ax{hޣq_|D 22j&w sܫ 8\Xϩc*~SyȞ4gi;0e8| r\`A:jx-;a`og}EUˀWM-G.J!a+󷝘)F?^ZhȮZK2K|$Jsg֩4*7hl6nF<7R vNOޗeRxc.oQ9[!Ҝj* q?EHy( F,Z'`Jt[YImgl]V)$M{/E_ĀP8琟R`\e)"SadRH'YSAz%qe bnZԵ %})QE"F;y '.e#A 4}),2$sJ,R=`XWcdl%L9QrZ7rrG9,aql=V[IgZ#u"!fdzh7jaq\rS&'[kFrђ%]zg8}>AQ~X`27bAU6q8@YaM.ތ{i{QmW %j^os@lgXPXƁzE^gz39^wx^O0R۽,; -#bҦoX\N!1Sq.WA:^Z4$aQ.~B &̚ITL@0ҩq(^?O<Ы$y@Lt ~9DV.Z6XiH,z)X6X>0r^P?uUyf:NNPr ƯdgK4喲 즑ՠ$GFY=Q{3+mQ&s%U3Z~w%AU;\btd7}s=iY]I_bhA6-z'[dW7 63\_Q.Ë)GKAz\HM]Uafr#ӄб\Z]Pm#-x ș uacdsnBl9O !x>"TfI;)V/0L~8Rk] :0w%>-oߺOs%[z8iڱa :o}KH,0Ry++7yxi)iFK#GMNpqZPFl~[varb)Kon2Kx\rPD%iPI0 r{5[*Tsuo!3K@]P'ԧhYcQ}!._*>"DŽ=l]⢩,ON zhKsJ{ܖ?ݑl35Tz 9v2Pyz[)d+ ~|"Mߊⷥ!;10o i*h50Rc$/4=ܳU=FvM`A:q viz5{g4j U&nƢ1M$2'B>`šwe\&[%5v{31~ hy'bڿ ,|+mv%8#te W:U3ȉk:>s`Q$AlyECy˸.1`_v<K&YdDg ;@$n2Xek5 Ŵ[{ }Eo$էD hFiQ_9 Dx^b謦~+ ; mq7&L7yL.CdCҬ<90$Gm75a 9 :5]ŽI%Ǟȱqa#XNЙֶX f w]Gl1>STSBFվݽI[$8q 09m0:v#N{S ^>ѕc'"t۹8/[[SDwפp  նёz!`2Scn)&45?j)S#[RV7ᇗBEeN6`E*0,8auk\ Xahl]Q6T2^6¨WUnoX.4<'hv]ڃXk^@=njĤ2NΩAmu:aӫ|pECo/oS /FBWVu?TN3z !x4sc>zyXn\ #O%{Q6;9.-ZOe&ts8ұv7vn@"Fe=CuxpMc̯GP::WnJ/!>JHKwsOt˕zߵɠ94tZVrqUUpMߗ:o{ *%ƿEpXF튭"ݲ#_3 e_iJMh$x9ǂӛ?l< \A_%pMדIdɞy@aDcH%tߨ[b3S0P C;KIl>eZrcӳ%r+8uTW'maO/8]jB7*KJXF>mZrAHywy1Vѥ&ypk*O&D5satm^9PW|,ݟ2҇Sfx1ԁVyNwB3u"Yw`ښ)¯_[썈c8_}DfdaPE;o+Z"F-K%+AjL˔{T؊9p ONS -(#% e}Xlov|%T<z6)qXWQy/ukR'Ҥ}C T28e{}}Ub/mK\j0+vyvolm6$2[CਃԎ,Ւ)*5hDm1Tra['uQN(7qv] kHl۰'tIx"(EH^wO :`ǣy&N%8sr=V]$'C>V.0TQUXy@=ɛ ŲS}*:bE p'A]E! Rt fljWyy[[t*e#Y=Z)+ 虤GݦqA]rCd]Rds2 9)S}ɾӷsu1.׵lO!lJ6)0ibdsѭkRv.@'Ä7Pk 1YY/#v| #;Hޏ+Jk00Ix`W(BƢ4nNJ#I8C+)ym;9U2 |oi*_=v5!8َtX+?=|cǕK?*K=0e9ޏ x9As6ZF}0JMSlcf[y<4UC^j.`WԤ'6#DF'Z>6n\//H<){x%$ е4}dV H3B?uPp$}FA ^[@%D ݙA9<#CY߭UdVdt T;7&ݤح$EIQYҮzk"XOjƬnpUgw΢IUUh2@Cf}zӃH.)v7D5ߕf ⡪A).5eE)@uz"k|y;K׋ֺe4-FQ m֕#t FU^>PEJl1" ~_qTkaj~o3쟈<$X<!i4WJк7sKe=]̆ܳHwvQb(k\OQ??7K1<5zF^>qdXr~9*5p~Q=/azL#B"~~N#m$סȪb27Mv3ju5olG.\f _>=<Fvqϰtߐ^;b]lg|{48{,Y1/n@Qad~1؈2[Empy(mԓVzt}Zy9ͻAQX-8l1h[eBp r:Bř Xz0&ǸZ>)ˠlTK4oflxLKss_,d\m˘J2K[ݲZt d-854m=bސNiRT@Zv簏QxLv` 6$'O$r_&kOr;=O q?(aW}Bh ɗZq,ebQ| .v]8HlV(_0Ž6W7qaN*L4>6olo zIAEj ;iub6DcɶU4ɎƔ%dgCpr=IUB޵wht- ڕ.Waٶ7{xm7"U1hv̰>)0j Kpt'k 3;79!,??wKIYa+[IG")j ~SK6.j塗 8: hQa \ 9q226G^;SC_69u7'V;º WOmN r49ԌEUɐ83LOسym1hown2eqk?Fޛ&^gP)2OΉ!ƪ.}xe3'7)I,$ڙѠHʰi"֖|iz zʘ )ĖО}'g[w([opd5s@ %ʃI2EЄQ-if{ Chuy1KŷV&S3(, kwYeiI oH cHJ\y}u [a%R(A[+ ?RQۄU5C-*ڵVf7CIĎH+kύTɸ7/= *o#/QM R4|HMܢ" \.4:mA,ͪ=* Q`{ZzyțFa \Lw|\4Ϋs.v+TC!\pndWm c2Pc*w_Asك& xhLx?Ц…ct时YHc}ۉTMMΔI(=q"ABO&*EC':nkry cNs#Hgdr$cw?V; SE|!BDL=!(. a81v4F-=FY6b_ÁƉi_=`P6AnY"vuC xOOjLHk8\4!7HTQ#У:;/MdrqĴ9Kn4 tĽ#t5S/̾0j('K#G&e'n/8c:H~\tUs SRCքbf0 S/ˉ=gܢ"ӓNm%ŦtTU *VDRG(ުط޹|%3!mX-uCMh84"tI]( ٸEH#$$Y:--"ƗI݂5h|e%l<閘ȸ=\ b_wup] NMYzj]ٟ b#h.a!RNDZnt|Qb"eԇJĞ/7syoiL4z(ɋ n""nRKGЋP~@B b;L[*~Qc4`?*nGX*V 0o>0u-Z<liYJMק=C;⣇scq^G,m'>K@ofoIpSy]d=?}3^*yw'v6DUH; b(=1=YrsV~[67Bk,~ 1;.Kx͜蜯dpamF[ d4{[$ 'tr|!S\/Feby)N,7l|>Ԭ|⼫{ ',w)]lȕga+?(*r3d0٬5~_uogŕja| D"]2=! `!R .fNH+FJWZcY̎y?#2]_ <' @8)/u5p6c`rxO3y\/oD֓Lɫzš8=v*/ FG[VV&`jzΑThq$JcI]<xfSWZin{o "qdMCAjP,ad]a;g\QNމIw[nX9(2Hfg?W'r<%)QKfqs3)h\7Ŷ2ڤƺٞBw{%R?jFUFO"B?HHofd`KM툹RPK!X3(*Z1#a7\83Bzˤ̱Q= zD 9H7Q ˧jdzA[ޞ(Vx'cp`~ +)-$or_JѶ;,4"kw&( (ORs娣cx9 ,}рdiQlz$77`Ȫ vXK6u݅t)VagxrGQ xZNPk.ՃVH1x=QSc"o*`@1\9YO'sE 1[ŞeӦ8 @Lr8yL=9ZWAZ'?STH #O{^C8nr7EX*~)9)~<GciA;b>(9$ܤ:8A_f4{7W_Gw;jOK$+ UD4aC,= Փ (l[E @,g $eX~L߫7nnekW7Wk9&No a22Ba9#7 9IS 3Q,[+e5[w0_r=y:;S׊]Z9fBHCK[|0)aFi PT ME(s`,RN3y1\~Zb/Ȋ{`Fi0 u>;ތ)-SZ>ncuw8HuTOҡo݌ۈ3-|s!륳jJjOSI3.mSfI.SmRu4a?+jh^ [Gc#A;RU\D*6/¹˛MZ/n6]lk'_ R8g^Ef'35[~X< )@SlSⶩc)k>HG㙀 F K$j(E tLk~q6xT|w7鴵* )-Tg_7 b_ٱBdBPc X;4X,# \[ ̦P嚲RZ4Pwmr*m^I݁ T4zcxCi(Y]|41CQm)@~x#mhA A/&$@YN|uR}ldUywmMpo?w%nmqS BV=ň]c>ZQ!(]Uo(%YN?0AsDW4h .{\)D{`>0Y7NnB%~`XO% i\F*f,cQ_d۰\ioghY a9EPPm1W NHѽKeaxwYHA&JjՎB6 {',tVج sYFj K5E]m &ʕt ڠYIZE*Lo^ 5|5dHΠgZŪj䢺RAslYo\T }pb|7N1cw%ܮ5@Yk-~Vpjq(&w#xDQcH$lpወSʨr"IgWQ$}P(QƠ,,0iJ ~E!7D08} νOLDr;Jj3ҢR?B#@bJWxo"VZm[O(LU`}=mZ+j~i(>dMp:+~UNՄ'(GQY5y 2 O.y\5u @xRhP"fMpRJ%K{EH}$exjs?,X "Nk:`qk̻GPݧ:DS,qP(~&hXKUO`p*HbU&2򪼄n)9 O @}SRSbh/l6Te4iiRSsE#-˩>;7~a|0X8Kwp|>$rDNz|[TY}y8 p^ݮ6%KUuafsyE8o8E-&\g4FU>uRv7ݠL<$x`9kWDyNR]u3vn/C"ge\Х%,.lifPF#Q^ǂS"\w׶X{9'@Qu. y !BE|2QLIoDɋ*҉?q.IW#SpeW&Gp6]UE%(uk7aZh+juqg T+O 9CX9_7}K|Qq {9n)@H\Ґ|@ȫ:Xu>9tX%Mؐ#j.Q tnkhWT: E}YkCȆz3<{炚Gs]`M-xks 1.hRQ%rU@]NQvaXsQf+ > \6WźFUyKt޴ӯCs }& ͛SqL0f{SD+2#&0ϓju5 ;6.jXZDDMy쎲5-+I9e^.y`_X7f`b[/7 2IyIol)95xD[[K%I 偪`:9e(Mi>Ͼ7A}+O9\Ss9~%WUvj@li@v<[~O@&ۤ8'"¶ atF =r?hEQ7#VS&hk+]:E{_bRGq'D}RF6^~YWŏ (|ps.TNㄒvbD>Iw+;`mdUU5їAԬj$ ^=frsNm8oqg)O^N@J~sYb"61nPpFUGB^o ]S~' GbrܽY{G|@+o=bvzʍnz<A:-׈n,x.gy_WYKhD Wz}j/ 2ߝQ< N/HgVɠ+ϖr|i5[|ɚ(2hB<3(_u@KK'hwk4Wg|)pR['\ZLKUS)(BːUZrDo#=>zxxyX:vbmpM]%;eN>́GaDG,o {Ay4+"Wq=u#,ٌ"(˯&UIE Y)ы](](:4ƒ;' |I, B g#=ICĬe}5~C牱TIP!VW&em^,;b*:p[82}#NU0ƲjDշE=n7FxC 'w#m3Pq͠Y,`*1G3$!Hw<ׂn&_mt `5syeu=wsAs'(kU-6Lf_=BIП o/8kb ,aqPT{_2s玹 +$l&63l QW3@?Tݫt>l_:|vMⓊ#+aoiP1^@9Hh4~DxS"Sȭpڤ.x1Oـ:51a1ղβ@w 3]EdB?P(Iblj1NݹeV8G"w<.7 Sw޹~όL3h8׿($|5e/ޢtc$RE\D5%=ܚѲ|kj#[ΟCp `EIVEnv: RQCqWyOP'qUYK kB2f~ )ebKDuQF@ϟX(y(^YѺ@or0ʍr7l6rvJQI^½9B=}6@Đ_F.RF?QkUXn|q""^+|wh%Mδu6""#YD ,=JXaiٰOKB,C/:ۀ.ѷ Sd}B#ŏl"=H1|Y*i>#u;!(#r=y Dfv., JoR$&L5cKC,6P,^$)II$$'JaH.VxQO)5qX;*Oj#A&0+ڣ ~rMP'4Y_5(/CF nrN4 hU˄%+yoH‘q,MlcMփd뫀VDtS1w75H4|%,U=y=,⢕Bc Ĉha7?OE^z>kXSyw^Ui$sMZdm>eDk0\BNM44} `]w}3:y^n9Nj_H (uϺ Ps뇫uƼҺ% 2^xىP,`_*J1 OQ=գ>A: p,BX N@89",6Qs ncHX!\OdM$~V3_>b1}ǨxTLN|KAJl|``ٟӁJ_u5P%Q2whQr a8$X,t8!FDLRw3ai 2``"Al onx-X&3 ^Q(Ia, FJ!^XobSR` B""C4YB"j8Fk{!}A1ҵ4Y0vDHNU=㟱)8~/1DXœx<4Y'5hQ@8*%W?fR]O37JܡL2owto#'xj ) v2;B^F;=,r6%)\:rŃf19z!'tnp#;0.6K3)Wp4!<`W\J?eZ&nUy?O Ã(#Ж eJMzs5^+K[3n6U@Ӄ?V셙q],XӃ\"Kې-@p ^9X[FIq8d=諿_jj$U=0# 4Di~>jؽ$%v駤v"{Ўë^~DCq3_݀)i&)0'-=nrٽ2Hgx"K8wGxJD%g^ao wvYޔo{nsr+jCoUgwi t`^/R]Ҋ*3s804vO } ^}*B6 pzKoh# BSPڄ$Z xfwO=4hz gF7kG[e[Z-F?{y faQmFfGVAM >U{Mao0br `燞cXw3e~q$SiXmp[HsvOt0L?\<:Wl%'^*28owõeaݯ{b1#Wۜ!7Nmù َ/Hm^եMTE,%V6m~Aq?t%LY-gJ&@=jO?c gtYN`[˵ީ+>Iڬ̞(:"GtK"GB'ZL Yb_}/nmnz<[_N' &+gtκM~Z- v* t\aVfz1TKc/my #lwfdI^ ǐO%ԘrSfQhDSbŷL3U9w~ pR J)3ziU=]!=aKߟk@>_ 8I+abbCh#BGrFbO(Xjˬ, Y H#dƹdnYqWOs\T̨,\40TR{j=c5#qc<}fykޒѳn?>m|;cbILTZJ UGz~S`n@)L&) 5҃HǺP9Ȣ @Mc67,WvD^;aZcNt$>b -IYfӤs9t&-^54R݉-xJY|C*fU|W,:jO,nC~A-8D\?Mh箂yBH< YȽ!ȵgg-)3x3$N[g54xG 'V}aP*o`t B{Q2J$'(͢m}3+e~_pU^# -$޼R0[1{ݖ萐 XZ_1HS6"܂zξPb&$ b;:J%"b-N+q;K}1B`jH;mFTe_C&t8-Bzge@N"\a=A:]TGJȴ?!FɡeQ FfQc-OA5 hq˦[VNGucI.IG'7lm.(]ȸo?lo[XV\E=e/~A oŶ1!FXm1 S&%e+OtJ]D'L. 'a-=0k>sK>I@ 1}=y.jdlS@S/_S=Mx,EMMJqS$@S5U;:wm. >C 9rNJ3ȋK m_VBʳ^t۹4Ԗ^NhL E]kۅ8J#oVRM]gLRR6Fo1]%ǂÚyB9aD c¨y'0栦#!eKKa'2B;}W\Yql@"sD_X/ }h:#])r֥o9=mZ:G=0uUثhxn7FV,$U L{2!۰lxi0ϡRq5 v3x=9 !nIӼ1j)2)D)ؠ JUau^_SW ?\Ey"{<5C,̜\ ix| = 93#L|]rZ+  ]X!ԜJs~ ׳r8[WgކwG[M@4!~Am]ޖuY 0&8 Rx"7*q !\װO|z5d3|/d˃>̠W}2ClP#,^mc$X蕭 prY6YegkF]cM٣_v\!Zz]#tEe&ohh!CeZ/dEBrO.؎vy`j?b1wrEM[rp2jᮕ4w ٮέΞl$R`ԇ~+T)ZHkzO!R_tzlTRAݠb+4U'(>[it,7rz~3 \'tAk;Dա[!>YoȰ6pU~KkA偌m1C9VvMYy`(Y?U(cN~Uo2w@NAPgEv.Mymr+m%AApW;Aw8^&,*}ߧkGF<TiHn⏐)rǓvD'=4ґio"(G)KVS4*i#m4AQ@^`;#  `qc] {ea`SлEi/'W[_Gjch<~=x;oYdmdx!;VRr Dr2H١пpe*2$o,K1m߂,9s%8xqj"#eIKgbloZ~x Z;q埆U,%uDr0XneH^Lc.:!8j>7GA@a v_ ^ 0_H.HMM$e@ryJA`g"&ǗRC[>cY>"ܵBp JQMrZ1Aܷ?2-niucȃQ/_4|ӄ (7@лK 9Ufh+=K+\1dVz+1v8әΖe&}8/'zP^rR)ZH) =B`/C)YnϔW,Ю+}L7 8 KM,N;}HIFpg1qP;k;4Fc DєeIQs=)M@WeZ RɘP]q; 4ޫmHܪ>I0V/2Nzw,] Lt )̇FY/$}y3i  ?mDq9 gHU`ȸcBL@9l@D;H+NKThK[:!tHw1X.%H-B"}:-<lp2 f׃8w]vM[1qjOzcHjv~Yȴ2sS57>϶ĺQ$^FJ324 i^ozJƒ-tAcÝ,HJ Ѓ.N_ lO#ʭ+ Y/4&+3u匡E܊H*Hj!V8 窟y?I[l>5Ck蓺<?I͗ b\3:s \g;ԗ/0ȶ9bA/ tzƻ0~çTYE> Fj%޾VoԦ-1FY0]!ElqC Wt 2,ye3x2":164'J}ɞ;J`щE4@)ٲۓFZIƌ/p(Ll4t/:ࡋ_mYLНzK6t.Wcx>{JM3-%]xɏ(ܔuJl/Ua.(?QsUnX8]>ZgP T^[UJBGL. l@#8؊%M: r_嬅>g#rrdQOv5h-{"슃l=$ v>jj7@(mEu'8h,1?Zp 4\Ci"qj5ۂBfB6$if8l;_2o+q|1+JQ1-BES(l=?J𕔨e N@RLϝo5ĖB!rz%:p3Oӡ;0Dʯ{ ~;<1t ;ZR7Y%cƀDhEOը 3Nk"F _[^Њ\7зO5#WvBF6gpIڳJkCTb&ZZo][uvr1j3U%!Fh, (2[J04ڵSMScOVem.NLGHʇ ֜Fv?H$Z7)l7L 貍kd=kI{$bJ{hoQ JRj!T#:1:+S0̍H=W4e'%Ѹ).J4.GyPs2i2L%#Jz/tr&T4ǁtcZp^e<2FZN <8S5# (BнtbW $|j.B@n *LJ4Muc!H^/a&IwV>"hm@D{ꊿ7bS(ӊ{?acw""D]&6D )MTɗ~-mZǵ 4el90$@H,>[0[nhgcO̬*s dۈ-9|O59<z\@mMYBSTE8_eW9 ^eӃ髐.|3źnZ֏i^C&'FdZ$Ti #t8&2+ۀGw?& &B6r-荮F&)Mf#Mg0H=恹jG̝ƀSt#=hy=ʌ-Z|Z97>G֙Xĺ߇5xQnUorODQ՛_zf3$uhx"D" !Cͦ&߿NrG+n&4۝:$CSx"E̾~HX̬fK "dEݳo=#f sL` 犦G#(N36w_v*=1LV6bd-]h{$4YU8`U4 c@GM~PFz5`ipe<1s ']CpEb\-`O]{r~v6sk゛< B[Zm.f4.0=Bcwmkh;q]Yn\US_Ó{6cFԱf FCqs z$1[9 " ꎦG_2}P u/;O#5\!jH{فB@z\:wnh@g=spGXK8AѻzD?L)⹨NF\љHB~G{^9|E%!Tu`䴈fM +`#[,2^L@%,J޾t8rN|LiV1ZJJp7R($d~jK싸&*mc?U!:24DW)>  :ߨqfS2{~%zy3pc;L3;emb%yhWOEX Qj&9k>A<vn O9kvR^2.=89&5 K螆Lݴ.b8A [9:ywkE'Bxs'j rK2h F?eTfCQ1ds<:+] ݜe$=č͈~VhHmc mMW!Fm-1O҆l #dA5 fdo%58NkbB*6XkӔ;w0?>b qHA_Ҫ%9>=0ȡ􌝞{0+:?'^NߘmHy[e8`'7B>n[iQ7Ζ|VÜY()4IvK y1K">><ʂ|؍{bsU[D,γ)S洬T7=K-E6FE:i^he7%%-<V#vy7}TI7 L;kWvQ{K"V Pl{3%^@SzDԞwzTant59F1Zij_I#?,WO1'. 6QwJE@_-^xATeo.wX+ ;G}]Z<o'e)A)øΨSeJRlcU[O7UF}.!PJ*tP,!q7fjU! oY<6}" uPmZ_ûzm5/b,vWXy1ϻʚlwFWTv. 3^Sڡ%ͧ|6Tnf6MbLx;#]=h*w{=(.x@=D .SMb݊!.w> NMiTvyXT[ xq\sObJ(bZLݪJJ,@8abNd`L&KCa"lژ+E,YP~`)Q*sٻ2YNCoC+s%2u" O {1yр;5!r"%B-^V[ Tl>f]ָ&"}ɾFàS)cq/-.XκꞲEHf٬ %]~mUAErS3D%{E܃#9Pީ&U$ ax34L `+BۄK(\g DQFVićjaJ js*9OӷQUm7F4A<_VAtA.p"6`fˉf;+*K&~ZC{D9{I$ 07k514M\mу"p} ,b~۠R|.S ~ZqN9>edv,;CqH8z4q5bi LJ(]d/$l]ŀHJ lWAv,ba->* V톡 '$wSX} a-ĎpO͆16Oe>v@,eB?+}=Ę ռ29 ~m R ";^"M޲ kا5ș2$O)dp7G^`XӄEJpP⺓?X=ߩ/Alڇ$:AgS $\̗ݹUGӫ>&#c{ʍ]nhST2sU\`-/%Q#Suf$69|h3 "Ьy{{wK~F2 ] `p ,/[; 6Cxsׄkz4JXBsBaXa.nV&?"`,1/\QJ3l A=i2$'Z5tx !krU#07E2՟*uC^E'B @Nqּ/^l@mMG7!NqoYޘk3&LwwI ̖_3=atv#DmC%F: u~&-(0~|!AbiIO*:ʱӎ wPHY̸K-(WCv,bUs-`x1\8,ne5ʍr~'0em$ljt,&Y&Z^_3U4Z& i6~leS Ѓgs&ok4n\o;Iz-MxM9懹Z w=)SqwYj6+YZLmU H&2\enba2 {R4ǴȢTcݩmog^hB5mxK ?ly> ŬA$nzH{νU m Nu\Vu E8u20>[[%s޴ا:"qU"vp'y MdAqPDrZ-gn.̴f!ٓv,"wAyO,@2-XIF3v.d8HU8t!cap$)Ĭ;a r;2?a]$ǩ NPr!2@[J΅wa_LK"v4%g n%6=!Ҏ\͐VB,^ 06|AHze\%Ϛ"a6dtp*r*gU\A%r%aHV^[lmGދ[I?| Scj)ʉ +@wL|T䔥MثH{BJȚ2k]>.K>\I-H#z<6P$G3띿ОRn-XpZ?1ev\\|:{(Kܡ[&ʮj$WլvvXz3W.war22HR*-ʏ>HZBMf3 Q wi8? /gC|xh ^ @Ri Do/45"Y\Wˤ@#Q ΩQj͆7 &E/u[#6>G frôE;"[d՘>.i%Gzwn_~Zʰۘ]ǩm>)j ̯EA@EN 56n1I.J%]C8A6vWʉ1nŁ`FPN 1HF)',XuQ$L0ɝfZfS}RFluƎ qC I}U t:r˧{Z"}M'~,YcbZ>bkb^X~Bƚɣ7˼ jYF"*=(LYJ1\.R)l;#\]TI<PLugxF[VQk\_4ߵ$c8T*mF 4>]B;t9sl4QoT2I1L2[#q/ԶLD/} gnREͿEkM`dTwSy\ŭѮXZG}ռZXz&qHʡ<>4ڹcaSˢ)p0.C aѰK'Q YHC9.{M  ip l1AUT7IK^ŻH;`E}&?/Ee9}#]~$~BKrNѤwLy gHbMKbȽX9W[jv{} e3TkU! J.0$r텩g+\>*hhuC69"KLdgW é2B[RUG̺&ƊjyCf/(k4L'T^zs3怢 wNc.o͆>g_zGad >ڌJlw9́S?..r3` }+ 2bZإII%8/o. eԵ 14]V۟M`ѠV w7Rl6 yEp=C{nBoX{s.6%cCc+F,n*jSXL3PXϕRp*Հ *=[GW;T%0*^Ү(TFj13lw(uE :%Ӎ&iyFǖ+r(B )woؒ,mpGK@zx`$aN;*S^p? @-L_ojENՆ@ฦ7=^|彆ԋ' 3T#3y[]2rBl5-{w?#_#!,ɀ`hp.T%Ys[2xpox8_,xɷ*Mb?np~JL`;q'Xk-_]su S3RC0hьAf:`CS ]iVt8B)uyUrm <ÙwSU kC$qm5+ZRP3V[bUO0I N>>4(PksNΩ0% $K 66b B=iJq!>M9㍌=A.3p2bF`5Oq y?pxYs76M~g، LmZYhմN ~}RX\vylip n Yp81+0{^o­vxhSǕ%\Hv4/):,mCɮiJr 88f d|/ƸP=f"1RBÅ>`/-$Hr>3vlk4A߷ 奉 Mn`" dP<6i "4)% ro<GΟ@'٣kujRΛ&**Zۓ<If)'x~ˬ]8uYSk~ <^G=[Az~uvhҴJQuK!T7t-IO 9U1\lˢuu"b};[f-)nOndt1`[nA" z;6.ATd bϊŋmk&#\H)r࿰@ٍii:?{uI \ +B4&Z.̉u ,{vZ7䲚9߸ ?t7;; `:#Ô]ȩs 'UN`?C83l\!IB 4AA63;86KxZ݆KJz kh|}C _: c uP(\."&:p(ʎQ{ k}= GLLC!O '+j)p,u`ҕHc`y wL!#͹` a{ͯy')߯;5/[LHUT cN}冊7tdO` .FDЧ~`1|;E m uHx.Y, e0X\QS O1-98+%ެ\QM=7ݓtt xԬN8ɇɊNӀ1Nc%ՙ/!9!L\,TC.(KX}m">rʕ(hdQ7`~lBidzsu@!70تpw8z!kYu2=ssZ*&b`/ţ{_+(9~qu_eu(~[YݵnC?@ѕ#G(c:c8[M4uϰx(/=wҸvoj]Z}g\%L-WKg(y#֡@qɴ/^G2ftKեY,83IH#c} vՑ`y9!R.AvE- ʜF>Cd_2)@OUTzR>lLkhΤcYik0Ixk P"Z;DѢSvwوQ+4h$"V6#E9Қ?zmmg62÷2 J^% OvI#̤G:=# 0m29q T~;FRo(rjT JQ'/'a#-1gǩ[JAS][PMhJf> @YyA+^y.4(]x|SRTfV~.7Yd7@c{羇{/w_!ExVlu4`_ ; /Uki0$EɼM'e`Ko&[QI/lją?ɈQ3qE[tӬ,6&"'Z sRہQցve`r5$*0(ih~կ+ز k5+inUxG+q :qdvVD}p1$`zh;eG'A5/$O<>[d<4WANh/{*rYE =vRFOxƂ,/dq<>=B3]5%&)$ Gg3a4O˺B@GXiϋziN^r:Tu gA]|IxtU6atoK/ɟr_M`^Oޡl՝eiT_!R"mы0MpZztOZ -`e[(?P"GF J(r@ |n&@X3^R: E&R fy'(A\B#zY&}c9Ǵ PNt ~b/7#)< i;C0^yi֠Zm~Jñl\*0zU0~UYE1\(:S34LH5 T$  ()i%e-޼R{.'˞3$Wp/3Q| %t֛&Nުҏ\1zƭNu=> 1GW&,ț*]c$5r$XҲ(zإW~l6qNŒ&RcЭiymPjɳ囋2v@JNj8(BvWj1,"`j4?sG$,(qs\wX+Z.UK#'8ﰖ4zG*z;BZE.OOKb|{f粳`Ǐ YN03ӯ+I\.GUp2aGV1[A(ߛnה(naC 43U 8ÂM:M4'Q\or#'+pDhm\sY=nIe. .@F%"ǻh A`HP&8fP[2`+!1#e0:+kV[#/5۟0mG+P1]&LUaUYu';l%Y-QhᏗx 009N޵}q dU 剢qqKYK=eQQ:yYJb \,!LZHuz^URu_|vbсhjK`_sњ?.'Z0=\c$|Zoq*1 ~ #ˠw~tNEy67XaH+a3ׇ ʚn3J\Ղ.2Stsq)ɲUb>Tq]}sl鳌rʾbRҔә{0ة*[3rυjVރۘVg,&Z`#$l(\23' 8ʏieo,`"kހN] GVp֒'@l֣4uIʙky(6)c9&0Hw_xs Uט! ҝQ] p**q6e_Cy;F{a@֣k4{qҋ阴YW )s^O׀|qM ^/rl=4yER)౏Aم`S#җ"I =tJLz + ҄v\^(X| @Po2[Ez_ucLQ`Um~j TcHֶL+$c#k[.c5޽5a H-]TrGH^_YӥQA|mkSR:1Ss꘡FٛPkkID3+熬2Xc~(ȝߓL`ld;6;\!B ,MzuwM=6뜋 i 2y]pKSݣ&3* .d񛆻0canW1~ ! (M8%Q);穒#rJ@(VyIA#-{uU2 GFۚ1WLע{DmEɬz.'6DKxB2 1]ca>.Ns{ ?:j&?m'"-*0yWV:ȾqGAXqoJ͂]Z~B4[DEd#S스caHꌻ2N!V e+ +ʨ?2)@3^E]6f_\\8q €{\Lė;Fdzh%q(ȴe#?t{B|"auJgVr͋_ z8)j}*D\C/Q4H-[iIt0e[#͐ ->YvF3`dOW^F䑭$e l8'0 1򧖭J܅*XG9{SК`Ս]wtsޱ=?`;ʸgىwKtK_a$Pzz$T: " g69^DKL2͕Êx-C'yRرMI}"w~꫷{w􁪋W?ϖa{]qɇ{m}Ev9y0F[NL籝IbQ,-t‡Suk)Ϗ%|&$r5NVZ5Y8hX}V?k\pdjhjkokmqNOp዗͋+PB/֩ƍ7;&cko~pNďRي3$L^L0Ec> Cs~ .i䜶!??s糢emJ/Rp7vI2 8y0oSF^ձܖScpm%<'"M13w>٧$n˛PN{D%ܳ$}6%.G|BɥumH,C~U;ҿFаx!m ?POq-G!|su\>y+?a7Nf0'"&=~*.V`稴!@ 7,";CBje{\d6@;jēX17T(i#ihj5A'w.IPWdRR3.<, Vn@ցmlf9TpR:Q@'b),k ')bTi/kH)YpyJ1srx.ҰŖQD> )4TO525!oýj[ 7hّwk?P{y, ~?K<@~gF ] xak-w%,p@4D&4ILϝ9T[L2y$lѸw0N[1}:ASn[TDկ ND{-l~E\w3wan> ? A/MuK#5TjN'^ҎJvWeG1_@}'P3Njhey.MQIl;>fFҫFIn%%j{|(ЪM xt&ў2j@5C$KKc] 5<+Kmbp%kTlk}(wĒĻ1U<UZY1mK`v̌`rN@f/:o.#r Ӻ3)}7} ܄0dP]<~4|ds#ΘJBs,;!̈R eA:W] yŽ( CឱEz ت ,[aߡP茱S>LzU,ٴ lֺw~̼6ܥj "Xl7wB_ ut#nS)аpE.[\l=H.nVpo\[4$F^g {;3rbt;5 w &AWxE;Ny^+D;E42QqЫlQ鿫aūZO@ΏQ^.tCr1 P($Di6Tq*,$Mj%9HE-1^xD6yۄ5G I5ـis(%@;HFkx5w_V4(~ib;l}h]gJykq1 5ʝ ,-F, CgpHG2}Kŧ-`i8a!⿕ͥG`O5556crP[/"aR~ x4gQZZduyEq Tf ?5gOX֎h\LigciW^Am<  sz;K7йp OՋ2~> ӯlm!j\S.?Cf" 2[K}J^E ir ,7a;}Iulz^9p0Toiu;#UxDOe}BUܦpRWr pCJҖ]3o΃ XˎsHYPFeX?}XZ,\E$}udJ_cA޳X0:%2@=zAY7M9piq?B݁)8':\O|t>Lj$.VEH9}B(6jDAf[1]0iӂO d.<O<64fCϴkO=^=/ a+ v"v@X›E(ˮndp<̄ 𪽄4룛9h=c$ %Oe7600aɤLWB-M|Ӛ+YXuwN擉qSL*\P"(S6{gҳ7D^Ϫ2&֬ӗu՛nќuwm?-Sy!'FV:O]1lf|9wO:*Y&fh-bUa4} J! |V#%VQ7`N_~b&~Z~apHK5`DT že $5ۊNqsA)orfDUZߑ( -{4*pϲMpfe)b1q@( [΍]$4 vgdS -xC;aoXBʑ} .g.{Fn騰I/;A&_p6UK7z.P-4^MG}$x 6xzN75>aOP5&-ȿ_\3ngVk < .L%NO;صrIr`j$o'C`\Фb>Z#RjTl~W!V2߹KaW}2'^+fpX:e|6y[+d4YwcDj 5#l>(Odxs@ZEqXd̽.ZDSȫS5Z- uCiֵ,X_lL5 09Fa3А#9UOjZ]\#+Qk$P<-kqΖGH LlAִ:&`0 ק}ЏpKIagwB.ܯbt<$<Z; b-u*ӍML[;j`!sڬ:Jj߄4 nXu#pDbWFP}a$~VmycOXˎ: jOd'` zԉ{06QZ)n"j5( !)j̩ej7AmbZ̺a _]Ql=ě]dùhsrL@! ( Oo3XȓnDBdIwJ6XؤN,UD&ov27Eqd'۽ރRTjX+ f$n(մ֙@K PQJqnDg9}h8tH :Z!ժ0X Y*]Ɨ#UOC~IÚSZO~LC?4?K(K߿je-c帠NmEaO=Û~ bʴ*Zǵ96!XU?dw[c ݆7;92|8(2!'/O6rAG}0۳.¡'trwj+C&0Y1HAl>J9d+4l`pZ PTC=ܕƋeIҨ>+߄[9/A0u^9j@:d,E]IaiN ~mF "n8la0aU'Go@-p9+X:$Bf]M#m/C/$} P@L0uQd1?CѬC6<=wRH~{ A>J/0X[\6\ehy!XΎAtef/ȁĪ){b?ϖauQ7ᖿ2Klo  ;JpD|Q~3<إ1hAPj8:(ddwfoBm=F (4y M*ks_D  nW~tK㏏k`f^fQ `A#+Fc PZ+_ _vo3>-toctC Д 2*(NM ˁ0bR(ˮl{iL z4[{4̌od^RjCl ⿎^ W)ɬЅUUI'j@vv'l"Hz8b=yo'_z/ǻ6<^A4hZ,O_zQk;Sd`I=è~e,Z\ɀrΊ}KFԗRBTbq8 SFzm`vCi9kpKR՞y;# Mv>')G6-/ز<1iF^(pyVh!Sw} }4%u6 *G^:%t<Ɵrgl= n %'" @IsbsF䮟7u*}`&+ sXȁoNwIhuB}JyXXL@t,*3KAҊ-a.[V"u&a')mZX%gvKS#"9jAy!{Fmzȼ!۠-ɦfgx`p4M\bgoZeRD#U̟m\"ڝMvJ lD́F`Y0Kesპ$\\85?9 %@`B]*+j[ )Wn8S^A 8>G5YCZ[[^ɿ%}G[on 9d1 T.bI%;H)0cDL`/PvLnKJ3[iSIA4TE&.㴬xz%8x%MF0U482J4 ؁FY~z0(:|֛-=.ciN5#V}`d'eq#.xK*ȾF4(+xi0BH:fm=b;p~pM0qHC?j٢ s4"&*qK-#Od@m"/c/aIoUmȟ'yT)Szs\ezX5X)-8%7k -I{RT84PI򴧁IwLj9 MBszbfhg\fjC}PxXBVTp擮eИQ*B%AԷ"[yZbxſܜq(m=DlDTlNyRtigN?j)5CZev a]5INy5vGŭ$j? #`!JX_"/A`RDS8SW%#Vjc=O ]m&dlϚ"HH5|+zNNF%PY'WoDfa*&$%3^sp3>M\`'ٽɊ Lej=^rd]t&m[! 5~N8l1O; y0خR Vcݜ#l9` H[1@.gZ&f'{l$P=2),t} ؤwotN(l'Tұ㣺~K4ԣ̮JmDJJQe[~$Y?)+=#;3&#-GcZVTHMs3g$,LPv;Z;)6Xgܐ!=Ws9IHbCK`2bS]3ڶYLj۲c ]9cGx/rTීln<(AdY3r+z}Ԯ2*/1s"*WNJj:$ΣB! V2u TlYjSM&LjsπMkByW4SaP $p;TG="o5nj}-]GhU6/E"|:j|0Y=|0q:冡nt}&_̕@֩{zru_q2W~j$F c}|pz0R`= tk%K(OMAL 4شMr;~h[ћȄR_Z|.l#"gA|Di9OWoZ?pQTjV>^vb_&ppPһ/~f5@V8x}W _X} UeU