mercurial-4.5.2-lp151.6.3.1<>,ݤ^ԑ/=„ئ dkzȐ?7B>E)x#.\y{mx'u,$W75КЦ;^؋Y?.ռ\ty bc*5ϔsŘĿK4a:9eWK0˅3$gYk&_3NZ,$^UjN\yטʭ/F٦ 뢠 9&X]W]sjd_j҉4fu}E?;3>AQ ?Pd   7 8W]d        %  ߦ  ( P     4(8*9x*: *FG H I( X4YD\ ] ^6b~c<deflu v(w/4 x;\ yGAzPPPPPPPPCmercurial4.5.2lp151.6.3.1Scalable Distributed SCMMercurial is a fast, lightweight source control management system designed for efficient handling of very large distributed projects.^ԑbuild70vopenSUSE Leap 15.1openSUSEGPL-2.0-or-laterhttp://bugs.opensuse.orgDevelopment/Tools/Version Controlhttps://www.mercurial-scm.org/linuxi5869(Z {*Z# i".A+F+ \4 V"# @ 2TeV-%,>WjUO#* $Y !DC5B ^7 MsVl %RR(O GV2j=04@66-4$>of-"|HL^w%03^#)=;0&', 3y{OF282UqSAT;.%6,&68x *> 5HPS VPF+F:*0LCG'%qR>\XVQ5:4 - faT=*+> R/D-LyM7P&HR1\\?&!hA yuQiIdA5)"`T qNG 6;n9 t $ '  V HVK DW ve "=E<LAa~/5_Rtk 6 c'!Me?!$=*&H(B} u_P.[/F+&Z  /4=;?{$ q^2$zVcgel c%! ^~ZS VWI +#  N =Fs : #j# gp(</ g9@W<7 -~)-j.Eu_teb ˖X% j>A0\I/ 6V:ESy rvx|E@X=ZWKB'8-iHQ4F~'iAt;oF V32a%- = C@m_>Qz |u]V X "   s~4y@  U B 4M  5b* wC|,LF:,o;>mo@K [*;`#)$N u8 <(u \nekDfZN }#*l| jKFP K7!YpV7E9J-*T"}0F[w%"sAA큤A큤A큤A큤A큤A큤큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AA큤A큤AAAA큤^ԅ^ԅ^ԅ^ԅ^ԅ^ԅ^ԃZ^ԃZ^ԃZ^ԃ^ԅZ^ԅZ^ԅZ^ԅZ^ԅZ^ԅZ^ԅZ^ԅZ^ԅZ^ԅZ^ԅZ^ԅ^ԅZ^ԅZ^ԅZ^ԅZ^ԅZ^ԅZ^ԅZ^ԅZ^ԅZ^ԅZ^ԅZ^ԅZ^ԅZ^ԅZ^ԅZ^ԅZ^ԅZ^ԅZ^ԅZ^ԅ^ԅZ^ԅ^ԆZ^ԅ^ԆZ^ԅZ^ԅZ^ԅZ^ԅZ^ԅZ^ԅZ^ԅZ^ԅZ^ԅZ^ԅZ^ԅ^ԄZ^ԄZ^ԄZ^ԅZ^ԅZ^Ԅ^ԅZ^ԅZ^ԅZ^ԅZ^ԅZ^ԅZ^ԅZ^ԅZ^ԅZ^ԅZ^ԅZ^ԅZ^ԅ^ԅZ^ԅZ^ԅZ^ԅZ^ԅZ^ԅZ^ԅZ^ԅZ^ԅZ^ԅZ^ԅZ^ԅZ^ԅZ^ԅZ^ԅZ^ԅZ^ԅZ^ԅZ^ԅZ^ԅZ^ԅZ^ԅZ^ԅZ^ԅZ^ԅZ^Ԅ^ԅZ^ԅZ^ԅ^ԃZ^ԃ^Ԇ^ԅZ^Ԅ\ڭ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^Ԅ^ԆZ^Ԅ^Ԇ^Ԇ^Ԇ^Ԇ^Ԇ^Ԇ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^Ԅ^ԃZZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^Ԅ^ԃZ^ԄZZZZZZZZZZZZZZZZZ^ԃZZZZZZZZZZZZZZZZZ^Ԅ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^Ԅ^ԄZ^ԄZ^ԄZ^ԄZ^Ԅ\ڭ^ԄZ^Ԅ^ԅZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^Ԅ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^Ԅ\ڭ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^Ԅ^ԃ^ԃZZZZZZZZZZZZ^ԃZZ^ԃZZZZZZZZZZZZZZZZZZZZZZZZZ^ԃZZZZZZZZZZZ^ԃZZZZZZZZZZZZZZZZZZZZZZZZZ^ԃZZZZZZZZZZZZZZZZZZZZZZZZZ^ԃZZZZZZZZZZZZZZ^ԃZZZZZZZZZZZZZ^ԆZZZZZZZZZZZZZZZZZ^ԆZZZZ^ԃZZZZZZZZZZZZZ^ԄZ^Ԅ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^ԄZ^Ԅ^Ԇ^ԇZZZ^ԅ^ԅ^ԅ^ԅ^ԅ^ԇZ^ԅ^ԅ^ԅ^ԅ^ԅ^Ԇ^Ԇ^Ԇ^Ԇ^ԅ^ԅ^ԅa6218537935f3dc0d97e4531f1319dc40b4778b5666f4a703f6d5046d69cf22d797540a5ca0f1a3c21281c4c391f52c16edb9f6473dd7c9a6dd7fc9702b1211afe6cfadd4e61edfa425c5799bdbbf7031c8748eb14d08c74b5e051aee780ac69860e274d76bea8927d4b5184e28c6e21b940e1a890ca9643af86f53a714a7e0d1d4f725413b7337b8ca31a2e0c960ab62b775c551dd0a162fde23baa76f21456e203674a1feb8db3487fe6894e607b0d1f81becebe63974319cf9d531d4d79ad0d205a161f58cce8ad5388e613d4e5f4e3914991d8c3bb5060af0f34743e1dc9a52a10d59431d69d9c352ac3a66c1b46c5ce5559f58b5c1802e75ca6194ac93e5fb3c4aeaad682b66a68b2f68b5c0f08b572db2d1f931c1fc22939dd52dd450490a3c0efdeeec558aedf35cf4a30275c439ac0b05984288b3331630c73912c060e33daf5567f4b6a6e60d64e4a61db3ab1f297a026ca5886a68bca06bbd517533f0bdca00eb04355a619ecc56ad55a4b028d1606851a428f8f9649171b7cd22c4f9d0f2d11bc4add11e3b88117de1dc02cbfcb11239c4aa21246b33538e86a0e4e09bd72887b672947fcbe93ca54ddcfda35a999ef732eb9348cfd8497eb8185be01046584b4949aa5be323b0882255164843d824e5cfe182be00825b5009aa2cccdc0d05e3837b6209c64a2961c6cc800036abf6564d3ebf74d128bc67b79824711511fbab20bb43d1cc4c6f701515bba58951893f0ee27cdd216ccde89369a0db68089b6c867fae386250e826deae940120fed65fd9d3d9a71692299640e4f156ba0ae1c18aabd34b2d48839ba340ca700e62f7266645e8341e292ff6280b0a4c07b910b7dc31c87d3f453f427d86b6fd0111fd1e68c6c1ffcdd6c5765ddb079f1d15ac34398982eb2417303c559a6c46e299dd81a7ef5b6cd7a3389d83c3a57640714d55811a7e6c471522cfe8b4c6093d167b2d81e8138bf36c106828162aa6904e570e69fbefef6e95fa01401605ba4374b9fd7f1ee95943ca074374317e2f89b31d9b782fc814c82cc85cc4a366d2aa7209193f3893324ade3789a3f123f23d4aae73f49cc2a141665a756704acb936421d3ee6d6e4b978ca75c1393621378574ee70772cce9b4e4a7e503ee30c09d047e31459245265ffbde409cfb07749248432bb5bfbecbc94bcd461e827f8738aa36fa181516b4c37254bb29bfc21ee13752e59f83b677392ebb3a23796f1ecde785ad36d23cdc3ca1c68f4a4dc4735f25ad2158582e4b6496014fb34d4be53cd6c00566efcd6578d88124064b0acbe2b430c48207fa80b4f26d244f5e913aa566f80f1345c304abaf18655179d72a73e0e7e9767bfe4df9edef0300753e0195ff93554d32cdf976ca1505071b6b52546afac070f8ce5e96bc36431b3d97ddeaa99af6e43e08629a58a242703ad38e47a1904bd2a7f8650d275f45c5d9be60f8a8c131a1b25146ebde8ceccc5e6f5b31e4e279ad0ae39bcc3e77c6173e5579c308441dd00959903d8bcbb70d4759bacfaa70800ecf0568dcb1b7881c11dfbd6cb7828fe31331bc0a5c10bb8f060faaa2c4f7740e0929bf91a7251e4dabfb23fee4175ac2da3b3b042f2e0502bb279261767e1240ba6fd635dbfcd508df40afa4e8a57af9b792b479d6b7b6b7a44285964db04cee166fa5032b89e35f3f1cc8e43ac20ceb2648916a8a374ea71cef9a6c4434dfc8647b62ae8d9ae35b0eda97e924fa1210f674be72de3e2934972d0d7d680dc8a08df75a0bc5c86a7fe2b4c9a7c924e74a2f5d33c61549418372a941e52ef00e161223f58709c5ac5ac69147febf3479ac6e9a807707410db689d7f317a9985db419427729314c05be55751528b0ed9f847c7f280783dcd0b99cb7407182a9fdf5a64045857b4542a0ac089b606feb3cadac9f499c8e94ccfc56e7b04f05c72e8866cc6d5f88c1d44b4f10e57b66a3990fe47538ff3d866299f8b9de5aacde60afcad9cd8651c8ad5fad4fd1a9ff0b7d7dbb07b55ce784e3055479bdc714d76876d5927b96d84cf83ccc045b84168b360dace6dd6ac8ba9b1043c40feb3b2e8d87131a51638de145f6cf8eccfc725f31877023f48c6c33e630b598f7d364763e517f4148970c844cf801999f33f43a7f3fa1efbabaa17154a8b9c93c38bbef53812f095af3280b2e73c72bb3959d1627dd02db18be43dc9abe468cf1f2efdf089b81fc50e407c427d29c796f49c3ec87c21efadbcbca9ef21555494b5aa232ee344d7f116268c088f9242e9025837dcd863653bb2454959984a7bd50395ab94563eb69d1197573560d836dbecc64d266120d3c8679ee95d7302cd5b61163ebe5b49a1926590a6fd964f03e9aeb98142ace8564e2dc147e56041147f223c2a6146ff7d4610e6d203b7d284699dfcfc1c83c5e2ca5aa45eacf648b27dbb45b6adfcfe60d91911ad5f9ccedf4ea9694c851e7d2870c390d6bafffa405908aabf3dd595558f932609f18a593fe11fd813564b18b2d8b3f400b3dc1b952ad1fe2b1c8f5c8b564c505fe84a595b464d554fd93e9fa4d01324a5bf68c25f64edda11b8ce033272185f9ddb825d3c2761914fc14664492e8fa8633e2ed1e304eae070ab94c77ac51ac300fd42fcabff377d9c1727785828c72f7fa9a70be941d8b3e31a05af5b4a132967edfc412ab020485d7762b150a6b9da60ccd85798bcedc8d61eb21cda289a0dc5fa566130d7f9e140ae8f5f3cab55ddecddce1929532a6ee40c2092ee98194c02170c5e15e0b8d8f614ebaae73a8e5582a9a6b572bf95b4949f340d6673f0349fc9df208b225fc4675fa5d94101d3d9e8a5461fe5d31d7669729a374108e76dad4e8066af2680e1108e584400f9459411ab2c72281ad0c428840e881ae28c010691758d11ec25d3fad9abbbfa78266686a5f567d5deea891f95ab5502fe0ecc93e80e7f7ac85e30a7f25e95ae495d125097a4ca6118796a2f45df9354fe7581dd538ebb4ccda1bb5c0469b3698cbe347227556b4eab3f0f429663058885ef180b58d9128226c0afea4fbab0ef20a5568403906a1454301b779a15f9dacc65c2364e2f4d02648fe6becee1632cd9171c10cdb2c7021ad62077ca8763bc03d38232ed2892dc0b7438b2348354b5400d7ed447bb0e5bb87ba074104babee0f09fa8df3b1f7da0e7107bf3637dcb81928c7bf675342ca06ed87d9b1c4e654e4939c7d231796127ca80ba5bce3367dc8a971c431ce27a17590017cc53292ef1f65c23f2af84b785e57fd6bae45b5600bc931d2177144136db9b40e744d3e092e0274d665b3b2ea4189f07a578f5c18c32a63719e8c44fbd76b28e55d11e7d53802e2394e9e247a3a9a536ae37b502c5a774b3fdb539b2f39c942d85a7739f824e36c36b69a346ebbfb5041b51ade699d43ce8bd1501f1a4b4b0a9ac67762082e73826b884a88e34838c548e8eba0102674e65a1846aa18d831766a72a2467ebe77a335bdd4d716e5eef5f8fee0ffa0ff1c56bd0fa4e5dd5ada0e530072e5237de02954a21acf39484c710ec2230018903097d1166086614d7885c62c28de3cb5d6e205220541174f5761a32c2e9a248c4cc9fc66660e8dc2d56ce360bbb3db4e5e65e12d14e6c9e474d0846818de413f680af3024883d0b97b429d6cfb53c6a5324b7fd850d3f9fa18605347d6bc7af1c4d3c9afe9804219e51818779935002dacf7bbce1b205ae1c561e324210ec373187b1b080e850dbf7be2031f8a4bb6dd4b98202050472288939ccf85e18a0d3581bf2388ddb48eff98a0fb6345d48a1cc589af280450cd79796405bc4cd992b507c10ec87408d15a731b9227bf91386d198261c026eaac01670358bb7d30e72afba44de2b5fc6f509825824623d3ef05ad7782a9cc0009cea14bad11af7c16b6530207566690fc42ed15a1e3de79e6ea29b0490c7c47868d40bb9f70786230d9340efeb31d94d93584a0a0eb8efae0fce39df9dbab07a184e58b8134cbb120a59c3f20b722939a0c5ffd4b9379fd821f23511c8ab7eca31a7cfcca8c577b660f4da4d31b78c367aff4a19e2d97dc93538613652ed7e2b9d4e0fd84d2eb621e638e340f4ae6659f74150b8831a79136d2bfefe007d1f8db349fc4449be809e9af6d454693fd9aed5810d7238de3327ae95b04fddd63d23962b65c01c756f023b64513f183f3cad03c9d389add015b2b8f67ce22df4cd350016033658c5b19740a22b5da0aa03aa3a9b85cac99fee094896fc9dddc7f65d5785ab01f1d9277d4c2f42d2ffb0d354d63b4db660738f4a1b96a53f79fbc1783b048ebd09410e73ee2867879dc733420568b5219e288d988b6ab04557d83277543914e113b05823628d9f30526d8196b1c037940f37b82126a486fb129c0e7abbf7375bf76520d315440cd92537c2d584c35d28a663de242d8b39514fb2baa3fb5c55ab3be984ed096882f9831499ba1e1d7685d3201e084d8df3f8fff7d8c38aec1189007cc6ea4cba5645ee7bf3d5019256df8448fd3904e8c3cb141183e9932486abfbfd44d1c0f83c0cfcf6976ec55db02c0f774d0025fb919e05b2f199e219d60f1242889cbd0c2bb9518174afe9bd6b022dd1b20d7ec4ea88a978bec039dab8f7f360d8bd27a6e262c17904399c658003a6f1c25cad97764c0858c02fe539f7e05eba453d16bd61c4f52c08b0b2d5ca2e164f38b6b0e1d55e3b9446b739f640dd244251790ad3febde2a6a2d63c3cce9cc4e2e6513cd74085b9c07dc1f1cf0ae875bd3ad10f993c4d41322037feb05bc9c78ef06707a69c60166d5eccc7b9f3062098673729fd3f27d9eb1bfc7fc76c43c4cf78b660429b09ac14927f6f4450c07ba490a30bd5580fa6024a19899e572e1e0112c8f6374c62546ff11e1b604807f763e81f882473d571673ba341f826a91570e1646caf280d8e02299f66be653aa612359a7ac3ab5c2dac2a15dc0f10e1de0be45c067e7ecd71b6cd4c875b33e98631e51c73313d3e4af2a824c1f80e0615192ad68336d69edc9bc8dedcff44d9a1defaefe7f6e1d9a1da72b725c86a5e5157b37522a0c7c999fd47df218014c8c90f6b0d73f11a9df87cfd424e0f0a88583a8ca04084626f7d257a1084b175b42516b04695e8b085e539734292389e335a0f2282f7f0de086d108b8017f3b4910343d88fb278033972919bacda656542b0e4b0c8b2ba6c5b6b4eeaf3a1522786239bac88e9c80585c667b3a0bcfb6bc3258ec9530346ba272f0a032fe31410e23b789681cfc9c59bbe4d678ceca347b285bf8f7c36680a29aa497e588a17136bf12ecf89958c8071c29e3e8e13c9e1865b370e728f110ffc0bfca76cf32f1100ea945586bf9fd44520a3abfb18c1bc1ac9bc4b0797110817b7812c198eec3198cf96fb96367405b80e5335f75ae5012c1d31a7b7b837a644e106129821d6742efc9c8a0343e4f647df73e5e37b6f348835e5240d7db483793ac0d44001c46da5c4f15c0bd5ed45ff9263b8697c90ff2f2be44b29c303e18989b3c157595c4bc979715da72ed0476137defb479e8c936a5616b014957b431dd3a6d4591ab0458ecaa83ec4be9636343264cb6186bdb8e7e7f1d557efde2c385e8e307083ffcbb788ad974bb8a3ba308c3c39e9fe84eb3c7e298792c817c08ed5adbc91d4f35ebdca438ea553366646c15c97daa9d22d4942a5f8351cc0ecac016f89815db41c6c5de8633cce3144339b59fa1cbc04bea62459fc8a0d47291ab7315ede5f36a3b754dd3ed7936522f2c19d1f2eb1c6a5da4664dd957912f8c979a82873f842c9c3446c4aff738a864ed066067a46cbf1356297870f7a83c7edc0216aa50ef22898bfe9b03937412cb4774471f9accc17854ac78050159b384a23263184e9c9c6fca943b58f81a5c2ed2ddbe3a07219ca5de5b5de49ca9d95c46bec870e894b387cc30c63c89a718be195b4df0f381d182b1a829e55c6b582b608f61a4c0c33162bd0dc4f0449b6381bfba602a4a0cb5b1dac89d65ad38594f13fea77a415dcaec773a16e682836969419fa525b6764ac6e4d2288cc5c876fa6af8e5421142fb46a90f528aa1c4489fe44c78b7c772498d955690f812f38cacacdd23a3b455214226573cbb4c481e63192757e914762730ce12681e5eb0188c77318e8e04e7468377d1b7ddfb26260225f2db2cba6d654c311a8b6916010ea995e2cc75e7169b3f08b5bb15aa5171226b568515fe8a37aaf3563cb2b063c42bb48b2ee7c9e5eea5109d7b9791765aacec3c36c8be23b0805837e9ec2c94c06055815c19188f6f2771030c8e0d0d1f744e8757893e64c84de9aa472d04dfcefd0a92b4062a6a2b7152914d4495a07efff8fe204167d8737505cea3943f0e15444c1a24890482db181431671c9a3b903c2ab660751a4b4ce5e0dc20c1b42c6e28292c1f92ebe1cef89f933f04f3eb625d7c35c69c3f5bbcadacefbd5009dd1ac225cb9e21409874907a14c1f37f88b431026b33d90adfda653bd06825f78fe8aa2c6ddc57b15dd5b883f20deff668fe46a9891efee2650890762786d19e38b95944b61106a2f038a76bee75ed1a137a1507ec7db698b4feee663c8e1601a970972a5e29b383e78f8843856acdc8e1841ca69df1037073f4930a5c886fc2ea1757e15a0f12572b49a0745fdf291d7dde90ad16497a63023c2bb8e2dfd9a03679fff47d8130b33e92b219ded349d942b4567250d5985f00ea48e80b9e7d5bfbb24c639f4f6a8f70cf5f318827604076ca2ed39c3f77fe2f17cd1efe7e9bcf7abe9432e42203a7b219e03b90d76a87f26380e9a586f2125338ca1efcf317ee662c6b96efa00621fb5c9b77c40e59d03514e7d454d6c3991414dfc93c898a724f1f44943c92707e661e84e7ae8720de2f9bdee470821683ebf787b8b017459d917128f999bda0190e7042f51d64db96a1fa23bdcb6804d5705a920bda3b2c536c7f433def9982eef06e0f1633c214af99ee47af44e42dd9999670ff6691f7bc04ace1256a8f0cde14f43673d5ab7f0ff060cb2b2460d5d6f211e47392785aee0b87add3c0b4634dab4bbfab9885066ce0be1031edbbc00fa03a49cc1b94faab8f73424746c3641302a223d24b3cb94e322ee18301ec15acdd932d1eba9e14bd6739e10ce3a3a71e7a142c7f844525b7b59e45239420a95389d498da55f499a3e919e20360ae9c7548f9f6885598f870088369bbfd191194dd5b32ec88ba20043f7355f232bc4fed06c42567245a532082695f8e8c7bac2c0cf07d33478028ab7aa02043c5f7a82c22625cbe566a496eeeea4d5aee8e04b12e77d3b4ec5fb80115d8d9d49cf39c95376e578c999e386fc845c84a3c11c71a45392b3f047df1a46493427610b6d6991ea8aab8874aa25df392101b49c16d200d068dce06fed8d804a438d298f74945b5d23ac06cb6ba3da45ef297181a1c95f4b6f8333594bfdd2e737f851d178fa617835f032d1a3d9d8c18d8ada4232b3066026c79795df9358982319a94d70359768a195844a2b8330d4a5ff9cc3d54a30cb851263300371650c41ced14aaebb0f95d9111fc011b1e40ae9581a3b14ef5767c1deea3e726aefaa18bfdc51262c262c66fcfed7cd992b8b336f641595f38614a8cdd98cfeb500aaa8d7394ed0a2b03e1e1fc405537bb66c39ac1211f674b3ff089e5891e581617b89ebaea5bf3330a0a6cc375633baa1068ae75b24e137255e6df421a3d44d0ca7025b5e51e42304521a0ff9721625de43f7a8a1a70ded5b06492b057cf58b70fe7755eef9755d20b9f50dcff01ab3610408bbc60f247f3a37a3f769c83b6254a761806832de35550f4f03065d31c4a57aaee49009af345e52d7f990eb7b4979f0de0cbe434364ebb92f0b3446f9d8f768f9669d04e7d42b961a2e1ea121cae632a225b95f9df98226d25e5fb3567cd036f5d203dedc413521b44e5a23bc1499ad3301bfdf05f40b38a83d251db4444a4bb2be94937aa392b039c94eb874b47efa0e4ec00fec8a212fee6db783e42e381914118c516319efae541eeb726b7e0a9361635f895c021f2d50ff21c899e43818c47df5bb7ed97578fd7dd314f65f28b5d4416c6458d486f1deb8f7856080ef97d86f27bfc98c8d0e00b7df6fedd2ab0982dccd334cc01939c6ed633bd0639db66b5cd793c7c6651f69fe4e3abcebc2c8c2f5d78e14c91d80fe5dc69c9d62f042feed15895eb8c7be228b9dce9886d9560e3ba86e301d79d911fb3aa2bcc05dd7bae99385a7d9eb49a1f9f011598a2c43ce73dd8171d83ec2b11a8730090c0638fc708f2be8c398d6350f936acebcf9543c3a56a9dd72a3959a74faf74e664173efd538245c09ba1fa9d9b535f33d5efade550d6338fe46606645cc1b346f7b58dd661788d1f98e0c06db0b3e76859dee348ae4d99875eaf84e95ef4b9421485a993dda95d256373214b10fe620caf52f914f268f40dbbc04ea101f3e93c1d3f9a548c113f8555b893baf8973e9830b52f558dfccb97ae77826311fc8fc896d9707aec1b400f76bcb223ed6734d82d14188b209901cb7f580b5166c0846fbea513d8b67cd5827dd2400c64bb74645787c99b12df173844c08581aa40f2ba0aeb3b046e252855291f5721fc7475779d43757c567bdb2a4a60f3a527716cf356d205c16a52aae034e30b9078b2fca8a247ffdc202357d77625e24d5b036df4b5514a999e2a846fb04f2ef282a0b1e8bd67e8c6c1d79624eb729ee9f542379cee764387ffaa889c5c3b07c8ceda35771afec366756bb6f8922e1398663108388a00277d76165aa8bdee76e50e7fb32fb905ee9bc2a2cc1bd28831489ec5cd6140df4e47c96c772b5405b1f3169540b934d42abb45fe22a7f0666987383218543b262b5a932dea3b36883a53f942e92c62b9b18ae1df0352fabb0d48d498ed040eaa6805cd867382e6a2f71f279c8f864721081b7a1949a1381f511c3bc7f67964c70e4f664feb97a547383a523c773d48e3bf616a50640f73b13e965208897e80f41e4295d0ee86159b400c70c0174c068b78ba7a528705602cba994c9bfef2a9ee4a8ec130cd9b716a0caff319a3661332997802e597e4f17c6b2718873c1648711bfe0524b31f23bb27b94d625f25850c9647cc23d6bfe9c3a61663aa6f297782b9893c917de6c547d72fd14038b9a51a4c758391c7c7f225a957504756255ba7c36daf7626a7220447162eb5ec464dd6b0cc07c388bf077f6a92be3a38d1154eb2a142ab430ac5b4bc08316323a405b77841b960a031e48cd44c5158e2144bec578e7148b334d1854fa0513bc888683fd414b276f65a1484c218b4170b744f114710253823173691b687a59b8447344fda26c9e9b628aff7bf84cbcb24fde4625a8125554eb1045752bbadc2e137f8bb084f3d7fa1abcfb4d62a05b316d12a8b979a3c5bc183f35bad951fa325d0d395cf9c185045f33138b22e098f8a326d805971d9a32ee4f23e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855a5a53990071271f5d5b3878fd5bcd3c79d00a842b2fa679d804bf26f91a7e00d4940a093734459e44fd939044a19a281a0834ff71317e34d718d7e174c768728cfa04b96ff3b2645c851c3e2918b0ef0df1db0249702bb5f8ff09e0eb1312463078c6f7811471f40dda2aa95ae028a105658d64319e6e9f45c5241de006fd2c3abc873fea929ce41d06dc4f8df9edbceedf2fae9c963e4ff5e9145e5651c3e9097ab456af367b9205f3a82769eb84d7a39f0248c94a36a9fb1574cda00a9dd7c1071212d004e1818c6d2ffc4dadaaa701c2f525bd517e48b9a8fd67927f95f74e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855ccaa57cea958a059de681f2047bad00997f8b3219ec5ed2c4a62afc09de9e7aebff5b314ad134c032408635276d2097710d0b38484fb64f71150d7784b34a4d42ecdca480566ccf95bf768ef6bea83f1f27282c306fc496cf96eb266dd3cda543fe2050ace47cdc107808c7969f3caa7c8fc05c84bf9b96943e2d6a539a6f680861360f3f3592f4a0f3b47626523416f8fe7e77bf89a4cb426fd4075f245c2fe0ada065d366a70fcffd4feb7598c6318c98ce496544786acad4fb06f0f7c45bd45ba4428b70601a0a086084f3018f2be87f25ea0c54c423ab31bf2713d71e118ee5a49f8c2c8cb2fed5cec03707fff09a1f1e3f5fd3247bd86f6094fca94dd7dee233f8bbed932c73fc79efcc4020d9df6416bfec77c36f80c04ef96fe39b83de2416e1c6d3c53c384720b396b583c915c68ba39dba98f589c4e4ba9017337b9f03da8b45d48621e205c2e3d9932b4df3cff0fa4bb66df6b2e81d3ad94f84d2dd704af5cfebe86b122056695d4e92fccbc99ab846f025d6050d3f895c6e20685e924463ed50a9a6a4db1a9874ac3d6846efd12e6a9892f72a112c89442e5775faec545fbc11c738ba400e3596d5de8230d38ac2b252a95f0b899c29fb87ca1463ffedabb2ec597a8ed18ee2d4a64ad4c16a83eaba6927ae72f7523b2efd28ed8655bb7103b433b456b2880a21934a4f00d9e5afa1ddb829b84d226b20c1baafd2b40dc50a5ad2233bc5c893267755ca2e63fde540f447bec06fece31daf2205e14c984d5b623da2a6b907e170af646a65f61d33124d3d63e4abc735aca62f2c3acd0dd49e8e7fce7cfefc85b148da85c769c37cdc4d81efca7844091f71e3406ed649b8c3108f40819d38d1b5b0fbf45ecf02516032f351d0e8f64edd48beca7ef17588e9f085dc80e81ab9d79226ee055c675f1f9adde23bcbd17e906baf451e3557206b3783324150f8943e8aad5bb3fd69a781053df87f57c4e685cb36ae8eb8a7e7439f651f96a90c52aa3d5fd1e181bbd83c3eeeed79e2b234a3abf0dab189d4a33ddb9890969d84540308b803bc0fbcd553bdbc04a4c51bf3d8c4fb40f6e46f5fe3f74591ed3db0486c76fb748013832bb0f79dc8d0b0b81e41d4eab8cd65c3ee8936763447544d8ef66958c7d3ac2e9af324f37e892caf77e3d9bf87fc31f721b88a858fe3d1c4c0b3c5539fa840093424dc851426613b6ccd8369cd0dc016979b4f4345ffec57a785bc26c22fa49e767873972b6cdf251b0b6bf1da9da8b46822cac2c602dda3c4fc93884a8ff999da414d8209d4b2fba10077cf6a75412068592188251cd20551687298fe4daaf6aaf044fcf38ba67b6bcf96e513fb2f8cc13e284cfa64e5e238538f60518134ff8e5b0d9a92aef164d80eb00d09bf4fc15d557629489471ce475129e74899f192aa7dbb83ce1ea22b31aab5f6756c20e31e273f5112b96cba41b9efa6a873c9cdfbcfb158a245750189e57522d96c71061f09a6ac67f7fc70650fb99c4363cfab854679978ed862a6cdc3fcdecf10bcece1050da09b8b4906a0ba2dad8aec78d84071de7a3e837156f037878723ec3629ce9c4775c63c4a7c4b9a28d7cb6b6c15fc2e13223d03fdaa35acde97be2adeef60f6a7146986074b387414d43830bc6ea06df2a184dbed93cd76e1ced35f22f7c3f7c51046e0da19d095e08c3a0c8ad7084c522f12e0d97475959473d91a07c32eff85c2f7e1fd2307031e1ae3da10d9ec3e455923a566e4996768a95cd05454036b89592f235a00be9757b0bca632a9bcb4ad09c667425592e90d5ba7ec8586537dc9bd5d9d56b78f7906e0b14bfbf141d35897e37f145b465962d0ba64e265d8f2cae1d8fae3b3f08dfad04f7e534c3b3cf52bed089b969d055ce43faa0c0d92200d20972f9cc939716e5b7477f2db4704a275ff3331fa29183640a8bc83b3effe0072bc7475aff0ef1c193f1489862154c9ae4b3221303a288bb864e13b9dc98fd1eb06b5a9724a5b5e91775d7420cf334bde9ab99ca3728115ae1bd9c2d1f192b8a7da33626acd1f199af978a1a1d0c6dbcf18e0c12186000d356a723703ff18e43463aca6b11872c4acfc8bfbd2c0a73a0df5c92a56f55d697c9e7d32f1fc57d192dd8b1622a5a9ec07857673d783706bde8011b8f2c5d37197af3cd1229ae1ef354a42ca753e94e69cfc5b22503e4878174bf924a5c851d22b3cfca6d8fa43bf79ac0baae7e2b725301c9e814e4453f5326890b18367342bfda3e55ef0b6525e3e57e52dc1659ad9534f9e5b02ef2c8e579263875eee792266b9ce894bd7243c36911ade9d746cd0cdabdd52a67b68c4de96f492085528c8416e76ee763486ec5bf836d650743399fa3786e6383e7cf4168fcafd95187e187dcd83ea4e12c41bd264ff70070ba4b5b59bdd2becaa55f5da7ebb09c8ec399c5e963be98798ebea129fc156a59964f41ce05ef3a3b1bb15d91f4b9d6e321de412818f6f29a5fb6f28f2607b8063810291f0e780e7ae1f243b3925d0b2a23bc440fc7c44d483f1d8497065deae070fc7fcd4ec62645b5c1c7c8a940bbc3bc56cbc63a830c3f4cb04f77f3ff82663eb27bb9a6589c1d87178fd402b1a8eec91d6d89ed46277fd7931ea6342673e28def830da9f2e1c65823108f9f67626c3f5941bebd8ef6df29548ae321ab4d2e4e848a44f65a258ed8bfc4b5b45b9e4407202e4da7ffb0b537698ffafb07bd244659d379f56603a98a4cb79e48386e033ec3e9d90554b0baaaae56754f43f410f2a81342748dca6ae96778eb097cccef2071b91545b529968a00cde4a7de73d2196711011fb98b3157b9cb1b54367dc5387d7352df31ef7f4961476baba86e9dc4d7a2bbd379058abe90b8c949833013f422b4c5f4fce2dc2546f9d5fc77076318fab2d687ff4d360608ab5c04736b2acfda19606956d1bf573827ea9229e9232ca80860c9a1b0954b9f8d7ebdd82e4f867c2125a0d1f6c55a179c2901f0a208cbb609600d4e99394ea57fc7f35533a51e415e2944fcb606b5a9a95c861b0f3c6b79d1618d94f9a13a3ad96ff404ea8206081cfade7662aba4841e2ae777af80c2737952825dcd251dc20e4a23923c71933e60e49ecead6949319432f836768e62b846840c5a780a52395b9a77c6637c237bd0bf30b70e755d30f1dfd3cf57d799abebce22220a2c0f3bc04105bbd16248547d3c3922770de2a9c8854ac4aeebec678c2089786f757c1771fd585691a1902969e9fb07b2cf41ca8ae37cbbabf278cc627fd6788fcc8d79e16b77c0b9aeba089a5e39d786f71c1e0af936e899c06db4ee4ee20f90f2b39bc846c7a5ed3721048208696cde10d3122f16354400207afcd9c8dcdb1192b9696cb268a09bf42fd3bff4d1c4ad319059504ee5eacd5554c4bb0263d3c8dfd09a64a21e3b1d7cb3eb9802ef6a6e6492149ca25066655e0b29f2f82a0e68ea70691c4f6e4468ac755be103a7e2d7318bf11fa1d9f6b3d5344fad568a9d1958221c231f9a4ae768198fa012761ad2df9fb7a7aeabdee045b2acad06540ff63ebfacd7a8698f389081eadbdf884a4cc9ec72a2e98078393a7963428dc647c382f76533e8bea634249f6abe5424962d7fe212a3dc28a89ff905d0e03cd414955f133067807c55fbea56f9d25ab5eefaa41f14e174ba879299adc888453bbedf424e6697f16cb3ed89fd29189fb1461d1ec227c1568c5932f58b4aba9f86c50d3de581b1a1cc7dcf8d262960ffe865976e4a4be9a2057776a1983b62e32d970c22003aaae47d49715637b241201dbdd6b6827389205a089f747bd06885a826f3c4b911f6c9c7baa473fd9b128ebcd51abe1e652b75504c957757beab0e4dddf80737979c39e6928fcd48e0d02ae20c5128de47dcb2ef0c1d34edf5e8357498bc22ca7192026b97d9cb8ce4483989957708ff06716e19e093d79031cb1bab783282c3febb34dfafa3b457f49b5219b2cb4daa6fe88945bb2def49fb5715ea7d3897449cb069adfec7f608c4319729fc64a444f4f1446ef02ef5a9d4484065b9b9883428b863f8e2d66c5864e9b9717d16f43741f6811bafad4932aface731818a1d8eb7d604d702bc1ac278ff2c1abe3170d625c75c5e1d9afbe02842989833ac158684a12a3594fd4d4bf31d4b4774d110593428636e0c9dddb0f2284c0fe7d64a5bb5217acd45c9ac907b658673eab8d27a96e6139b2ad277efc499b96d6bafcb1d77423ebb84042402939c18fae8f8bc8fe90f178b6e6eb5f469c97d08ce5f783ecdca9583c818cd781e1530e8ceabd4c919a75477ae5ca38605272a41c97d6c40e6d8baef47c4025386f0e9a5354d6bbd316c0b35a73c4972f5883b67bd2be6c928d537b7c9d49572e4c799f99992e373bc3ff487cc8d3efe2deb99ae3ab0fe9b0533ba489436826d60c628deb0351502a43723add533880da0c52c3c67b47bb584edcb214a7fcda15c491be1efc199145d13e70585cefcdd1a2e282a2121d9327b6b8b744d5c7bb658713ce79eda02776c5f9f7e4983e966bc54788a5bdb70434a9db9ba61f15795e44463f60a885db34cfc0e565013de9dd34c14b4fccd413f53bb361fea156d4454c053a01a0ba7e66489dca77eb2142a421c1bb0e55ed66a12770dd1d8a9499f0f0518ebb132d01fb7ee52aa63cc9c950c5babc21eed0fd28aaf1ac5443068b463a671ff817a7e9f5349286722776b7f0b7be39ce5b8b611a4206d269a734efca41b788eff1155d49483a95d15da2b1755e734d55faf652e0540607cf97a1401566f144a559c19617b95821910276a605887a0b3b5ba7fdb43035ee71ea8dcf93de99bb1006fef016e8d140b47fd727a7ef838e14f38dcc9a45ae7547bd901d0731339888a16aa99aa2222f8de2a630aec57e503dd817ffe2888d75e180b288979d89770fc381643b9a9b4b7db304d4a44cde66403b879b07aa86d88cef96209e149feb17b7697b32dcd6765994de7e6e025601958ce2f6a69829e3c5319940c3c08a2b2138c72539da6d26ff4a68185376175cf60108892e69dfdf3aad358e162a56d7380381347f88819d669bfe27ad3c3666cd538011a1b2f0e2c3333d4cf97c55b286827e6abba1008aa1a4091dc3fd97afc0c681421b0e09415a7ccbedf222c3fd87e153bd1b78e8d7f48dcc176184c606db28a6c0f895ccd1cc74dbaba486ad8d0608d0347efaa3ee68a6bd8b15d8598c3b841c341fb7afdf51333703f1df79f8f53132cc8bbf17eee882b61d8bfdefebd06efd0be32cdfd9e5e7ce87860dbefdc90dc3d58b70a64895636a6d7d1e241694d27a30e05dad977a5859718b7c97859afe4f059c8d712b8d62b959625ef32ec9c1719ff158e992f14e0cf64cd016c03701370e1398b806631aa8727fec6c786d077ffec149ba47ad8e04d50b6aafc954e8d95c692e93d926123ff114a192a943de51eaa7f79e282a10aa41fe2f9d6d3b1bd02cdac8c4b6df6398e86ed234f381c34346fc8a1f5cbab6a7388de89d36e3c23a7ee0a57409fdff85b1a05ecd1bc1432a546b3de5d3b0d15713989988d9aadbb431af3cc97fff3b6d13640c123c9ca28aeb76edc3d4d42da06726db41a547f30a55053d2e3f97bd54a33f75ab4b8c029d39ee9614268dde4b8309903634882c97f59a4593963db846517df06759b7309c23e3a21560c972d39642f2ca3dae68422645f5f3c05d0cadfd4bb9394123a20ab409d832f28a3853049068e1368529481f5c2c228411e280cdfc5be48a06dbdf5c07f6dba15397b0d983790f8685f91d469d89f4b5ed67148c78141a6d7ba4a246422ce7e341bc47d94cd6e274fb2790ccebbe6678dfa8630db9469db9cd91bca833c0d3829bee4047a7fad6ceae4679756f06d2c345973979d22f8371cf3fd20235e79ae449dbc95c2cf83015264d43f840e95f4167b232e2a0a7eeccb2e7f464616e317657dd4dc693fdd6288b1710f3b5c63b084ddef97f3a52d8711027a6a695ff8e6a201c20a1154719047211b597431979ddbb503cfe0e2d56cb991d31f54aaba4b8b8ba4772a75cee19f2c5a2630172efbf297a51e77d0163f134fd2f74d506d92d5a1a945af374a5a6825a7405a5bdcbf1f3cc796e145c115cb3fc3a3a65d1456a4cddfb46b4911a7300da553c498cf1c691b651972bee36c7a10835b151314f7d832a54ffa0dd005e2e6fd16c8339d7bca64dd16d2bb7a38316c1af8d69f4877d694faef3347b5053dfe6f1096f86ce4f64bd132ea1058a9b6db8ca3694fdb88986b6bd35eb74859946d005b96ab224606f1609c35b6f5f8b61c541525bce0b31aa7ff30c420ca03e76418c9c93a84af4302db14645a764472a6bd76c03e05eb296b9bb9914d3abb93703fe9b69177464621f4b17512b397c3c7122420a5c2c433e9824878dbb4315d44e865d91bafcab1655a5c8d2d2afbb3f6dbef250b45942615b9ff39bf4fd9aa85cea1f9ca97c8a51313bccf1e9c76fd5c3b1743a7339815ad19dd6dfb271675929bd71213c1bb9281e02ce8353e8d1257b43057d4e0563659a09931b80678d5e8de6af41ba08db377043b256853b76f206cb4d26f9e7ed4ed5e7df00ae830b5026c9b01b20152d01ef20ffb6cfd0f40716c7e6093ca20be37216e5fb91f8ba1a70e27f5f8a1145412f2fbaa981dbb39c7cd998fd09249805472e7247ade4e0d5c040224a2994fc468c512b0626545af55e0384d568bdd005ae79f39604d9414e2efaf0190ff01492a80552f69076777c49e8beccb84ffb590f482ecab4ec2d52d7d9946bf179b337737c9d12effb70e25a39f1ac4603a194edda0a57c922520aa5a92b56ef7f6907eee512b991aeeff91bee224e87e48f91065101d8c1c53a234848237d72c340283ea318a05e145c21d9cf94d85c74ef1d1b634be183aabef11ac228afa5a7e9f82aa6f797a9e3dbf50356c9d327e77032de6ba3ea8e338ee64376ad44abf40a736bee2efd1b1965d2e822ad1f70fe6175f4c3aab2c32303b68df3cbe9da728c87816f3f0ab70e18d2fcaedf6eacfdc70696772268a716694fe87e7ab21157a22bac918666f876e014ec3fc63c99d298988dd704f719dbb45d614be5299f22fbc87f816c982b0104fc20817b415e0316c5082c66189e98200eb5a737e09b774d5c7912edaca85f7bbea0df8ad68142eaf206db2648ee95e8cbd410b8a79b9fd301ce21b96b31378a0c3a31fcd27f0322a04aedc08ad4f8504f630a07dde0a099fef74fe29a4ca1893b53fa14681c70345256191090c2e74371bae8d6807afa9e3ea6efc3f3aac576a25f0a382bf0fcec8a7fb392d0baf1c478136db3e263f3b9379e2b794279657549c1e02031e1e792bfed0a02d1cf59716657e553e8ae150b59f293ef66bbcc242530aed7c0400906e1240433630232b546f9f7c51965ed40c2c5069abdb24417aecc2f6c241c798c8fe1de326ae57c34713561c07454b7279c69e14dd4da4a1c606c07257b2adfe5d1af6f2691b215e244677da3cc888c10ce0a016c4c88abf2b8acbd9afb1cbca56b1e73f83c593717fa21ea84538b16cbd259d08c802e881839ad4ec5776049db7e548e778ad50f4279c67647ba93e20375c902fca8a9dc3af9986d86dba983559ed646f3cc044043cc9e621ae7e1317c1c20c55bc95d0d91c11d7f55664906e2616b65cdd60819ca29f0ced57c81d48d53f537864f2f465f4239376fdd8010b9496567da2364b8dd3566a1fe1c0230248b02f2c722dad0f2b6dcbcaa14aa8b2026b3739f983e5721f1497b6a7cbbb9b0ff949a22fe4cfcd5237272b1ab1d08c712cfd084438eb797958c0080b849ff125085956722aa23f26fdbfd132c083ac625aa4eaf3feb9b05a5100d41f53cd5768232f63e865d3cd8ac3a7b0f200385f11e6a964d19610397fa058d4e5206ffff3fc54388a36277cc45586a47f18d154eaaf6e2c0f3d2e39b97e0d3e13b54d67a51531bdde5660ab7eecfb2ef9c482d8866210589fc344d3bcd1c04a60a89079b541a1958224e5004fe4eb3d3c0c51536110efc87e4d22d87b00ba43d786f5d66afc1e6a7f1fdde46cab89f23d558aa636836ab63b270659f4dc172a45f317bf8f76112a72cca4ebf3370520356ad619506b946b2ba28ccc13ccdd3aaca698d6fe25dc92993bcf9c5e5bd7fce60425d416031ae86a10b71c7b63f46bdaeb505bc0f5d02b3f5cf0fef7e198c70e68e2717232683620ce617072ae168f66278adba2bed8216a993e07a1d62ee04e47b61a2c2e4598776762df992b520f338da78165d644530cec2a6f9559b0889d51432e80dd70639209b2ecd0c60a2ceb06df60aab87c29e92cc334d25043d57f2b4121662525b5cf2a8ed46e14210cfb62d24d9750573b0d526bfb2316086da6fbd78a41d385c2d97ffc14bd2ead50775dfca0d7801f3b9b7d2c5d0dff0872c7e9d1ebc91570ed9ebd93a309e0195d34cf5de090ec9003b5f70fe547eaf6bf2d2412564378e372b14697e0e9c9721b8b41c8618e448485b6e260f88e799d62b7de516dfbf0b6c2a7501f1d8fa89357c54744d4231ec467bef8a73430dafd370cb0885e489a2cd75696a8c4d7ad4a760458c4ad8f47be4b664f52d78644ec4c4d000595d013a9985f697ce570d793b9f4ca7ba3f6edfccac5ce7de8fd3853e7d507f17fd0c0cd4758789b85725f9b1a206de937632ba51d0b88d5921e0c3c1bcc55a74442dbffe760a303c9214c7692ba5d40cca9f2241b2b96cf8e594adbf5bc8195eb5c5e9864bc34ec62655d5bf06a0bc930e564c57ac694e71e5b3d2a55510242e9f939a759ba28799f25550474c0135f65b35cb8189b25fdf13c7596af5115531d43de00672b0352d0ccd246d7ea9ed239f5259d4eb1c7e147fb99dea22f58cc3fcfeffad301548ee15442f72cb547fe53039f1768630f0c8de84805ca057a41dafe2b355114a30bcb053f9948070f603d7bbbfe2787f3f1eae8af21a381320913a028b8f659aed40b2a27cbf213407fbed151c2e5550eff3be6e51f8ff76d8b7cfa2ce3fe970316fbf5601aa91a204f1313274912e3629589ff7f89d0d22c0c1538bd6cc90c0501fb1db6d4e15c835c6bc93f804a4ad2f512ffa593fc0c52cc9b5b99e7049e9f0573afe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855b4513f1d9d07366af3dc0ee209e6376c177ecec845d4f7b4dbecabf879cf2613f3358b60d8e698e8039e333174aa019f1b52b6fe9d721d62186a386e2f185d785323f3c38d03fa7637c9d79e95cbd038a7e3d2c2084ec9d73480c8f608727aad7a364d5fa7d4a0cb20cdb21755990a31a02b8191022b1f66fcbdf5962119877b2aaca7eb6d4a71c4757a10a015f1d0ab26fe9f78e72427cede08d86fc6f537ca12f3edbad1adc6af3203357537bf7ecbec2030722a8ac603f742d3ed86a7ba83a3894dde5b4aefe030530aaba8a274f174c00aaea2f2bfd1f6b0c2b16143180b79ebc91c7227a907c4a1531167e3e9d983ca14273dc24726f2672d3778fd24ae9debe2a36771ac8801bc18d7eb5b06ecaae75851ac7e2e09ce96b29d8126561cf2d41f57722fb4786ad8854a1f955110f81bd8b7092e62a511a4cc3f39027ddd565c32c39d32bd3336580496aba834837cc0fd1171b2fb1efa0ea6837113fb4a8c112ca5611d7280ae166c6f9c0ace9dae117fddbf2d251e93c497be4d84863e7adf8d9e95d8ba2745075486dad49927950eb1c395371de0f80db641039a10fe9278ae57a4b8aa127ebe28425eadb83907514aeca9960148e0ac12c0ef63ccee989c24346ee2f3ab20f30e7655f46b256144a30935e5cde3aee17fbaa9c26a883c0e9b620eac3df20a776d3025e0280c2828e9f0852578ee5631e3ffeaff8e6063d2af68a58b7212ba003b3e5fa97d38d712104ee487b3e7221ae21869d4ad6cb2415fc4fded6f71dd22c6f07a0cb632e0948690e7683036611d50408e62016230f97ff7b7fb59a3284fd88e6af274b702edf84fe46718aa7e0f20a980fcd990f2c8569dae835b4eb9bfbf081f6f43c8700c86089e6f1985f99274e3175d873af225dbe368dddab23e2b13e1a4dbe362057ecf49c08fb680334a1106151e4685757bf5e96799fd9b363fc6e6427800cf2ac4fdaedbc0d47919ef1e20996e304b7798f3bc3ca7ba59b6a0303b6d87386630bb574cbaf545f0b96df2a6b1a91d752c2b6a1a7a39bc3941f9b35ed03449a1cbdffd6afbd527f7c40001006e41043a719fc39cf475aa5e375f0e7fdfa6b7a1d4e9968c67e4e842530a2ded7ede4f9f35662c18a6beab6433498b3c83a536290b0173dd89ee24618ec63ac22e29e7b555656c3901aef8d09743dc3070202733e8853306d3ab7ea2d1e3ea3c7efac8d1a03d8267e774cc614417d48dcb2d928e749128384c659e2b34db9423cae094d85ddda30f078f4682af356933b70b2ebd394726290e453eeda047d281da85a2ae31fe48e516116db9cba3f17f42b1c5c9b5a976c2a8238c40a90780ab2facd795b5406f25cdf54b3474df0056460d74cc3669f0e8c764171b30f2dc57c26c258bd1d7d4a9fdb16cc700c0e4608139fd6962ce82bce7c95597ae879960e6b467ff4758ad7a615f27f2c136fd2b6114fdfa4bfed4db3d5e664e948f1110cdf163f2b1c4be28682b10103b035d6dc3d4bf750d98d48ecf489af9e60efa0a45046854a288db28895e471f95c24245db98837ee34873075b98f62792a0da1e9d08c3aa1de550a55886c5ada3bb66467a858ad266063b6011be88942b8027f2677883df1ed49aa147957e330d9c0ce93249d6ad448e8c1add29ab97e7ac0e3b1b701e8e477396f4728c425f58e8c592344d204c62537cb42b785238ec3a0bdd7decf42f4046dbc88c15e3749332fea9cfeaf6b107417a844a90e7990751c8f6eb6e0092992c998e24bf8a25bea059bc0f65631b49cf1e871d646d9f7d6af643a66c447657d7921194c21c8b33441ddbae9b735b1e01d53105070242de980722baeb4388839fb6ecac56fdc203fea4b88671cee6c8c6fe583cd76da1d57f75659f3b38042fa90554a8cfe7a2a2d7cab9f80e8f0854dd68d3bc373d76529695d76526eb329389d08a939da3b3aec69aab8a5cd0e75a3140fe7b37ad618ca29371d20b5f7f267a0fe5708a65cdef9bc716c4099952c39fe805576f00a537dc176f7a4389ee86a980e53af603011771ce6c6e0c642e657d8870973993b15279157106fc041c763d65512bd57d2ace3a6be2705b0a8d176de07e5e409e857b69b62537383ff475feff1bb6c3a2622100618b203fca21cd6b9624b82839474ff0c0020675d37d81660ebfe7e797f0b400b3919904ab096be3210a7c09466d315d01a5fa99c42966dfa1a83c802cca15a29dfe59c2374f61842cb21db95a047119c6e15a053ff2344c054ec0a9070f11b83a4c5cf64e8733e0b8a381547849e1e9efe633306a1201dce1858f171218e28e55c5dcb5e7137981d293f804b5fdd82bfa946a40e4843ca641699612934e7080fb3f5f289c3507d8da7c72e8b81dfdcfba94f4de4ee42fe4e88f3f25fbbfb9baefea4cc8d8c55e48d1f614ac53d54151b41a9a3a6b60729caf5f9865a2c3af0658e463b38136a3ff391201e625f6092f79d48ee706a26c80c3c41404bc9527714b19c01c0bb08dd0a320d5428707a7bd03557abcb23d717abd760877e68b0b88feb1ea4f6085da6ff647f2b24dfc9674831cbf127addaa70ec2cb90addebc6d455506d107a5eb99b6dba7c288b4eac4f77bf7b7c28e1f7e9b09436ca964fc03fb9786b8f656401f9a4a0f3ebe34a2ecef9f957c64602844e150567ecc8c2dbd28f22dc7e05bc462a2af94335e332355764b8082049cb94c8e9c437d515eb0f909713ea2e8242e793789e6c8ffdebe5a6932165186f2fabc8eaa7fe31eb47002f2a75ca946d615e36fa42cd2fdd443d73038e2240d4923f67929f0eebd8c58cb4be63b41b265596b17d19729586dd0ac4aaa1d69cc46764e56dea85498e573119fcc464e9dbc8b84878e948489f6747774f14fd9ad056ecc462558f95b8c29524d0e831d81073e899b9739bd567a89a245b60bcbc82e9bfc6eb9df52afdfb8e74b32cce13d0030c1f7dd406e6581c5923a59c1b2afa0cff25fb52d37935d344b9da200ba4acf21577aee4b5fd00aac5351692a53f25a74f7dfc43c93802088ed46d81fc410597b8aee07a31ec85952f47174927e32befa08be46436abead49c68d121817cb55b29a4d03dd8140d9a94257c0b023cd7ebdaa0e32ca6b307c3ee5b9c575792a0b593cfa52e32715a90afcf39b735bba26e36096c4b598f07a857adbe7213d924fcc716aa72a1bb0cada1e990f4003f27cb4fbd9158ac9cf95540742963b47610e90aa1ce350ddb44737af82d289952af622453d2b0545ba93416b7c2afefa55985b37e07978c4f195a3cc054fcecbd41603786e3438b75bf357b6d8eecf51d785c0e21f16193001d2e317b37e2480aa0acde95c5934d52ef3a8a8cb92366b0ecdae269e5ffacc34a83dfbb83c4a2300593f7077a40d6652b0b67baa5ba7a5e2409d6cc8033b1f28b46eb610345e594cdd7ad476e48b44e11915ab87e7484918114fc08e5d5b2d5b52b32fac37079eb3815c99930b5c97ec6bfe42cff34449291ebb3d775d0d98352140fa0ce6be60dc0dd1b3d1d86fa4e25784b692fb9412fe496843e330923674219978bba397d73dc50a05cab03cd7cdb724ce78f89af9350946d048a1d18102d298ff497e4b1c7237a975470c6441a956b243d5caa9af552d0d9ecd1f89e0cd05627255a09e8148229a7126b951afbb5bd35461daf8e6440df58fb584d286020b845365c4434cb82c827370f4de3772c912f681bd181044b83548d5fa092be75abe36d8926aae1d07ecf3ee017bc46798d37ef5ca3de8937708280c67fc94f50d8b584c27bd4f9072ebd88b873069976b59f419d3723bc41064cdfc46390a7bb50deebc9d57e1d1f3e4a34ac31732f861df28970890f39245bb2f87b38c03aca13b2f759c8c5228730061c33e9ac5cb615d18b702871c76ddf300d7013c477cdeca9451bfbda7cd036d42639737190ec1700869535ca1cbf5520f216ff853e5b4e6e08eaa1a736c21ecabaf3a6b49f038e6c5ad27df91b6cf65847a374a03206d7e637932a65900529b3072aa589a97c8e67c1a1c54fb12bfbb004757a250c94a9bf1ba5d62179a5ab5216f2e8c1543aec84484996f43407127ae46c6728b2fd45e4d85bd47bbfdf529e46ae00fb45bc613479ba8263930a1656008805d90e723a1f82b3a0c2a5d82726fa18100827f67ffe37098a0d9d564baccf9cc22da346100800ce8ec8625382abbf6c0b0489f0fd1215a0ad85af1dc1f5786fdb6caf85692ca44a3c08c7da4818ac716cf6f41829cb03c5766faac9bdd9f9dd1a5b3d7eb59181ce3561d1915f100004d1744dda9115f02ee2099a0eb99a38acf561d9c476495bfdd3b19e4e049e2e57a54e10deb85278e454e59fc170ff3c36d9656a998528972dcfc0785b5cbfca1ea6c09325fe4792819d57119a9d9a345bbf276c30c70ad600886e3068e031af697ac389260b30ca48e1139f0e0f92d6bd3a0e47e784f44710407e50fdc935aebde70723a2f4367282672ced55033eb1ff24b852a2fb8c2bdbfe7fd22a11da1e94ec5ac5fec2f9ad55954d39a27d59d52ab5a25758a2ea2e9e6747b2b225a32953cf0eda602f891bc936986d72a35d2c487e4afe5e8d9572b9b8760d992e671d2ffac1dd8dd9015fbb222fb49ef0283ce71ad0b4c21ead9e21d2445847a4ee76a0e8167ef9e1e7d0dce29a52f9ee8926862aaae5d55e58e86763b30e36d52134cc174a496ee257e69f8f20876491a3145d3cc5d98167a8dcbd69ab8d4bee72cffdaf86a4fd23b0fa3d04bb12082dbfc906e2be1b001239b850b5804bd5ebfc5df62ffc958717f0315f2e01fc60366f1eba5f22bb9d9f4c1d5196c5a324a674211ec834fd4f33e02086c55c7f9825fe09ea6be54ee2ff13d38a48bb39746a24537717dce3e00c40148d988bd5d58110ff4e47fd5d53658a079dd4b94f13819aa5962ae9cff912af909fa92dd6617dfb359c3ba5537b23e5367352561d877129e9cf68e1d3512f22cf93e5298ce00933ef6bc24d9329758a1959f328515ffd340ca9120b8c3a65bcab41433bdb4f8f3aa4993ddc8c548d546f39b9db0969baa36e24fb371cf28b18fda19ab7ee9350365a56093c9d556a5b852f81c2fa7f4c59fe7f5e995dbcd071ff232fdff08a4d6d1591245839aa97c05c4b6168c2629f272e33da0c1faa64cf37ab7b02509f8608291fa71a5251a59af86d274849fb8d4e9ffc71f2ade04693a75dc470f64948b3de19a1453f5e98e3352e2df4f5e8939fc787e197549d22977bc94688fc284953f218d78b527753df57f7db57ef99fc5151e4b80a8e38047398664e33afdedc82b1233fdbc5acf15438f2c06d9a0af1c0938f76f5198eaa338d043e0c4d4ad6acc9b6d39b28c38405e1ba964d9ac41ad28377695e8a67fa3efbd48b4c68a0afe232dbc262b7b7becc21d92530fea95fd258497ff8da4a4c42906522cd9936746204c9a3173a9581093c342039dc374569f89877d48edb8c720881c4f334c993db8b72ea4d132f30654e11e40be769133c7891f6523aa19d90d844802105d29b105a492f7601df05f8eb32a0e1c6ff7dde2ccee82a8a3f406071c656417019b5eacc20d7d790e1a8c6a7148d839c16e7949aeba4448d0363cd803fff1f902de1f661a82f7ca76eb33c5be493eefcb3ceefabd65e4944ed451346251287330553421fe7509962bc7300f0bcaa0cd36ca8b7f3ebe641f8f3922307584ecb27f737d8f6efac2b10880051ca780c5f8f083249f3b07bbdf9b4a19f6a76e4954983eae69a1fc091f82da88b9e7cb42fc97f78fd68209137b5aebbfc5258c7bf45b033d712dfaa8561e8137bb0f74d7eb0c70b7a6c7d4b3adce9fd2a7a678069a83ab6dab2b45889771aaece8fded2dd930b8d4397faec6b69f542bc316b68b9452716894e93d2f03b4c5e6a3f835b4ce03c80b2c3ed40edd4eee88e3b9469b19422adde3eec0d6359b2369f1c446b75462272d94e0580803b2206e3a333e2251d5bb110a26231c3471a54961dc50e480de3de9870b8c4196caa435ab4a13d2b712e37d59df351a96153a8bef43a2e539bf7a06ef4ca09c3a2afcbdaaf3407351cb64b2fbbf159a2c894c7f61017f729a44c2afc144d4c2f1bb5e83f1a3ddfb109a691eb9e6705f29377948fefbf0c2b9d88d221adbb89c820ffe4484efb40d3f999d3bc395866729184bf4d381921fbc63cc6f0cf69b09c484c86b64385af67afc3d2d24a6fb6ab6d41814d043f374c1185a78dd806113ec8a68e37d0f34894c8fda3da0981234767aee8c568da61bcd9e631c2a4e6db58633acc410cdfa2b73b313275b9f7b7b4557d9f7b559a50c8032b7840cd6a392c698f758c7fc2a2766fa839947301215a94218dab899b34ea3c4aa32cfac440bff76d881d7e9c93a46f62c4e61c7d7638a73d97fd09cc7b3050ab37676f3e323841c63d1e62f4f5c94660a4aa20251ee630beab3d07eb6be2ee32f5560e233dabb277b5442c6b163d0cc19ef4df51b71b778009ec29c7fec9efea3fac3edadf31f3a07a1a7aafcb38374707bc7366e868267374a96130d96bcf82ddcd2f28b1ca26cea848c78fabab2728b1320f6f1b210952ee8dc594355c61fa60a8cf34c41b81bdc6314850ecf43991a17fb1ff9de3c17d1436916c83a89317a2ed6418038a792a71763afa9c4aa9d688eba658967decdba3771b2db5cee9674462a3031048ae738ffb1333ce1cb98920439e8a1f128c48e63e8a68c6b85893759817a6f501685cb3dce337e7838bdfe213bd884765993cd0d9b2d2161f12523c483bbb32f5048d3eb2e1453bf9191a0e740680ee642df99adf345442e3ad68572aa3186734b1baba4b84f6e0535546ee08028a17b50fc1c18882f7e4214f76e691286f96d8f9bfbbbe13de4029d0c78a30252894e0ec5d32ea29ea0f3ce6f63879e2583de6dd315392c99a0f7c76d2c15da51a33f91ff9d7d3162551358131ca38c88d032a68933bba6f5df0c5bbdf99c647330e0f74d263bab4de49c0a1559e61c7256ce119b4e8250a6d64736bbd13a3de5729e4516bdb3332b78e928da55b7e8beff0a37dc4c9d119bc5b95ffcf80f4eedc6f68008071432752fb660c90886875d760359fdfd8b7e7f93b557b4f1e59a7e994dece14e19167be467a1b3291b9daca3b96887fd8a86f6f92da10132f37b8cb86492b93499b9e292dfa3f4f48835c997fa87a2404ee4d69eefe7d67697790839cc9e9c57e4474ebbe98f543ce82d6499717230f59062593dd7570896397af5a97e66b130f9b407f5022069b0353b548ad75f6f79297e4c32efeb1e6a76d337262ecff8dc21b1556176e9c289b144cf7d39b23a85a32f1800b9a7e9876e64f56f743cb2900006fa9dd3137ae405baeec62c1851ce0fe5aa5c74df07e72d28b0ea72ad39da99ba5ac46c564f192e8562816e9944a0c771f35882290da2db81ad890493cf291fefcd5729cea30a65dba25c03975a17a31b7c4d01158cac227acd64cc7456da81e6fb53e9b233b2dd64f372e3622169c4b2e04d996de6990e0d486a4956ad38fab291370b013fb8c69ca76746abede77bb679c9ee449c3ac6cdf4596bafb0feb711d3053c4145fd6749d5336dcc89d8f25607c7e828ca9e07610d0e1cb72ea401f6dc9353df2fc27a3eb0e16a14ab79b40268ed1e13a3e8d5f8b5b03b34a7c65c2e11cfbd3d07c7cf1d825dee9550562c48c1434ebd7dc5efe818ddcf62cad24dd5a789aca1696770001b8c01e11138e1d936d641849f153c009b81eea6131d6ea05c00207b6c099a3f1e7d45b11189a093eef3d9da73832e8db09058710f51c99b71014d2d524eb68fc03dfbe4205de0279da956895bdad3347fc0864a97fc9ba65acc33fb6cbd09fcbab4f7e75a661828900e867c5474cfd00bb1ae82921a55b2730423126095fd28c24f5700a28273cdaf2df8cda638070c7881ee5721fafeccb2ad16837ae227944890f0310c7d6a7b3b020d98ee06fcb35c6529489e92a082d5b84ed96852a9877685047777d9feb691c06f42a5e73e4c0a194dcc7ecb158b8af3c11152787ca90269ffc3bd51e47598b255a839e71b48bf5425c0f01bac7bfc0f94fc6abc74fa95525a1a660da4229548801f5f0cb625704b0b1d03a252e8f9a59b46e6c91827b320043ae8b38a81ec9703e11f62d525fa6d495672a38ae83cab4fd419bf1d23d5b84f40255a1cdc4898d1247d7fa3dcbb746e9be0ac77eab834d42e99f7e3b9343e2b08a2f405b7da09a4f46973896f5579b28c20119573c2e4124c0edea7c40639bb817eb8850925f2fae01c642855bc19f2f23363aa8c7e127526643a48d6e77ed0ad8a7944c38d82ff5d14225c7c2dbb709e4ed7ae6b8e2c25572bb30a56c1131af9d4825c4aa75d6a78bd50aa98d6ea89d1f8469f5716333b95e3e8153d4c9dc89d0dd4aae1e50ee6a7a69e60613865d6870d8c0974f2e3d603ca3fe20eb379684030f1cf239a01bffd8e064b9529141d5828cd1423195f7ed7c6f11551efce4b15a2c0e122422f7d685c5f61a89605186105348288438e24dbf749f560b48b127d4ed08b6ff620bdaa9fc72101527e5a84295126cdd56db302c76b606146e2f50aedee9760a602940f4373f4ac59be090f066382d48d3ad82b5169f1cfea86b4f941540a240778498efc4734d303985a8d6193e7332b9857e09d0699719f6e79caaf3b7a0a736cd0b217f279ccf52f5878046dee0e1a454d4dfe210790401ef751dcb2db55cbea7df9b610a5aa7682b9ac8e7e320201fcdf153f14638bda10b0554c74afc0fe488f30e2606a7a6709fcb8397dc590ccc589112ff4c1804caa058270156cbf4be7e38320696ec62532b671bfafeccf8e1015b7c75e7480d67b90ac3f2e529db020bf4d953259690ecb04b925a0f486f481d7523e665df2fc74195eae555daa463a3e9def2d760756d1b78db988934c7f924a78fa4359b84d7dcbc6c40eea0f6d91a9f30e3b036263a303ff2f953ebcfe366f0167c016606a52507829b30f88b0004d63ae701b4d2090661538f8d1ef54246287081eeda613fa74b0ff0c1deec4381195d440e46b90c9d87a5ea76a4670e8cc57e645429b3b563ec15ac66a125e381c33549085da0aa9923392db9fd9f88c675419a2ca40a39de29b8ceee81db31b632e533bfdbf73ceb334678d0a966197d6fe5925b8e15d914b5a920bf53d7e2af2fc5324ff5dcafe763697d83c59ac564b96e6b56babae40198f11bd7a2093fd236a2038713d728077fa38d5a95164f47f9309d049739f261bc23178268ef310859d02caccc6308e12d6226df6a3127f540cfdecc15b370af0f3a39cdc17fcbb36262f0fd32090bb6fd3143b50a7040f5b31cabe265ca90184b812cb709abf2d4355ba1c60359d5d748b2b4931c01824cd15a56b0b82a674fa3edb433812caff2fcc45b7ce85975387ce8b794662fd94dc5b94903b89f5f1382aca55b1578e150198197795ebe81b505b73c397f97de372864d2c86cc2b3214cae83c39969a7473ee390a275e21da871f7bdb435d4bccd9bb77dfe29d5376263e883eaf37f5855b4a2daa0f2107b338d754de4471a5ddaa7d6f908ce8a6c4f494845dfaaf61def78da3f75861caf75c6b9f8651dd12451d357409e63b079a4d0179e00773ec52766e2e2b19ca5d0838b28f2ce183230833a5f044cce3f14078b8986e89468bfa3c37f852d59e33af807986f68c46366920452313c8fd020f9d7954575ea12194ebe1aeeb17175283a373f61e779a5a71767321617db7debeebfea3055716f682703dea6364b0ccc3d67193b565b36f35f390885cac3b992f7b9527aa90fc64380dbfba33b210bdb8ea664b86f06366101a37e3dae5eb76d14abae85486cd0718bfdc7924358fc8cb621ac324e37f3ef41cbf033c9e480b5e3de3a963980a7afb0ea075d6a8769cf453ce142d80969ebe9270a019e9db4dfec32f16045a4fd9f25f3988fbb43bb02da9440859ee4744c9902554cde2d4226fb28a4530eb7d59de24f1b49cc0db17296867daf65e91fbffa65ee25f33b3f98ac3ea778581056e693e8562fb49b378649ab60c3da4d5ef6b9e6bd8cb063a4a63f0bffd99988b2115ab003a74f4726d09116b5c4159cf995fddbb0a4c218e65d3da23b96d11ad5f0bf776d6fc47896dc93b5c06b65630b8c61df36c49b8c39ec2fa472fcbd273307ee94b0a584dbbaa0c3076920e4135dc3f7cee03d142c3bc38b371578496ad93b0c891f5702c1b62b43b16483a613d2ea55a451b7c24e9f71026f3a653375b0a65a894d68e7460af165bca5d497b4eb572199535a244b2cbe46cab60401e7a7ca43fe0768ea26dacbd5c82c494744959ac88c8bef8d5d1ad27fabb4f5c1ff363e144c951a4368333d3b424f1c6b3f9896e81aac7e6d109abf073886def3ca3617d064748fc22e70a8ebdb756e3bc693fe611a34eac3a7159353cddacec52ccee0b1c692a30463d1cbc7b2fc6f8717ef45e4e0f54ce90b76ced4cdfb7a0cb6c32353ec74a843cf200e39a48eef8a68810258a7c1c4b0c0357cfad8bb02506dce3ad4ffb8804b2e06ce2d0bc268e134e55787a70f1c1c8ee173565b2e771fecf3b471a79bdf072aaa1bd9dc27582cfda2b2a322beeba8103c3440c7d8c08507e16d39c74be81c7bf02f963760b384eaac587581f045e9910cb9c8f45db08e15b59344c0ae10cad53921c0927906ee7977c26807f906d07f62cbe5e9da10018de3dd918a2e11e1139936f87b4fe98179f6135189b1ae989b924031eda7d15689a9e9d02c60b81ead8c6c7e4dc41d07166dbcea3e4aa6501aead785808157d7ac497e539c164631f3556245f26f0fb2efba1a42d969e956b969279e4d618ffce5653dfd7ae8936c2b836df8ddd43821c9d5898687ea605c2e11b3bb401a5e59d0820d80943f047906cdb59750079d2bdb6908c973f6028c363a23a2e3c01b8cdf32ebe7afda052176c34f73c15ba871134607848be5a19d63be4d7727a2eb39f2de584dde6ccc03dc6cf5869bf3ee269ab579f62a8bd956e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855e93432f4691a7993d005dc0b0eea25b9b50a1e176eb2ab2a843b7e0eb8d806d55607aff5750c6dfbcf5635c9e761b7b8031fc8f1478b43de58c60a316025724c7f7d7888c84e5d78c42065a8cf78743c0a5b7c66b2d0303da15961eb02f42caf4e1c0640d9be6c3fd3f7a5d0abc42885577fcc4453e0b7aec1156af8a4b91a52611caa868248688da56c904751e9dd73b858fb68912cd60c04982ba3466ca768fcabd6d2641d1f63d88c773461f214695fe8da955f33bce2304613c7098484e01ea245412012c3323eee8dd670297deb9c669005dc838736789b5c65fb0b9fe3907251b992bb1f3735017e479a98d7d8641daab5ae117bcc74cf4ea6c27d47d9bfc2975080a50247d51dea1247de3301d7d69c008da955468c9b8663e51c11028151767f5bf6f8a1702a68f73773279768220c3fe1052d2155de50e127a8ee4e2c5749cb3e850939cdf7989732c9fb80dcaefd4a619d93175f339425919b22246bff38260209ff91b8d655c1a26314f506949017357c81bb9cf74794cf3e9af651b42ac12a12c312a0899de4329a038c458ddf9f27f3ec6b03e99d4637f8bbde148b2cc3491f2a0ec9619aede7820a8aed96434cf38641d07c942268d2d5b0471da3a11e4093e55982200e87640c998502a0e97065c50ac61ea01d359ada56611077a215c7ac83797cc8fc93dbf98bb8a90c76e07a01e0d16fa0e5b76f8c30200a6a33cd1ba9dfffc56622bf04ed1aeb7506612ca07e107820d50009f94a120677609d2e73337a641bb1a474613de654b4f926e35f5d850e61aaac748d586aaefe574b51d51632f07ccb68e5e78abc43cc5961bb3dd9d20d0c07ff9748913fa212eed78cede277b5916f06f07aadaaa593b843c81504155e7667a2cad9590b8621d0c6ed16b27d62d3027f8518bdc881039b6ae2d6c38c559e50b3353c99c7b051f2ceee5ee725e7a969175159c4228f6adbfc7c201d4bbb107e716a0daaeeb881f40adb09e0c8c64756d6e54adadf36c45776e248c7e52e5b03162506a81054bbde9629e02d08e187325589566f32e9c715b5695f6992333fa37abf1fbd906afbe614f7b3b031e2e6533b3b72c13f22aee6349f75ed73c5578ecb455747b437f788c455b1aaa900b6ce9011c563bba46ccfd38d261bec5b79bf584f652c2a9d2644ae53f38148edc2cb80e1b4e5ab059797bb5939db74824f5d26d8115dda95b934969769713496816aab32fd6b44fa090aff818489a01c35844b380716fc8522d4a33095e42938e0dfb33b20b2d592fd508a3021c5d446b4974f5bb47a7c8a6ce50b1fa8fce47a2d68a96e83e9484988da98469ccf69e948999db6d26b9476af79512480a5679a0bd350fa3ae37285dc1dc77694f760aa6fac5070f9a13d386b602b07b1b7ae34e1cf73b2c90c768728b8ad423f9d153996ffb0ee41ec002b2c0a7b824dbd3eaf6aa73d1de609fe575ecee916ea02870b292831285e650fd32352e9dbd6940d08b7b9ba7d0ccb975028de3a6c5ef449d6ea0db7c344057b0e28b2f706793b32da02a12fcff9186e1c465f1307b7e10d74d9c8005a8f2eb45c5ef6738f4e1f19bf3dc9acdf82add2469d48a9851946ff0601d10f1ed1bae786530cc83210eba773a86b6caa7004c642b0106573d2cdc6d39a01dd47b75faf96b5e101d73aec5ff5565bf31473296cb1986d8e678e86dbae72a85aa49661763c104499b891f60237d5c7652dd95ef99889c6887afecf67411a8591f905fa80cb002c2bf334223e578de9f7ff558dc50572c2828df8fa437756e37a23a6ee69aafcc7320d823205964260d7da8883e90daef98157a4ed0a4ba734a8225ad770f74efd0429eed85d7d56da6f8f88a80bdf5c5dee7e4f85e74801cd5297b2434e36d1c8735de793e6fe1ec2eddd90b8f768e5e42a2b115de76bbaa9a242d1c01b238d716ed7b11bd4be2d192bb264ef18af9e103d864d2440d83e971b232d873a4620a3dbb1e88f180a1cbe0c9034aa51cf032ee959a120c5a7d1faebb97510620750f79daaf37f80489fd5a89f201875956da8ed8e3987de227df077b08b53e2a13d1a895fd002e931936d8577fb1035577c7c3efefc6d36f77aa03606ac04cd26488e6dbcb5be1192a4f2092f681303a20548ea829ac2b89c370b9f091988c9669cbca4ed2e95b1d8a6bf4577e0b223a690e90e2df958c516eecb068bfd7ab3366201a7b50b4f52e81c72566fedebc3209aaec2939ac2d99f8a737e76bbb9349fdcd465410237a071b93127b02bbb2183fd6b73b37159eef12090efa17fa4ca12a4d169a3428dc2cdd2de3e1157eb5dac871362b7e2c0f0a5638fb648622ac9a2ac35da541eefd27c623c58fd65a4df20ca392d166f6b165c5e382754929bc7a44e08e066d0d5c30ab6fcecfad97ca479130cfa8fa26980af5693a116f4aa4d04179477d8ff86269df8a04600600583c797c702a316548cef47ffb347891ce64b856c1895e7db4fd837ae5cde3d425179fa323312dd7c685024af44611d75d761a6bc6c305ae8e8803ddf89ce7b2a32a4a79ebb82b66cbadedee70b48594a7f0e1c74ad51b19fbdc4f95f15b65ab3bbb1ccaaa2df17f95791bf77de3fa4a49bd18177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b8806435dde10a44b52b7b0d8bbc73d1586f88a5741543a8b5dcfae0f74ac61cb011c95a87196efc4388de942fcc61a16ee01f0fd073b641ff98402049c5bff6ed0952bc59cb77c8cd87e2cded16d6f45e754936d02cd924d6d03728a31db909118acb03a8b19de003476e945db657927d84f233168d0deabec775e246496754d71b77c7bbfd9b7e90b6ae30f6e4219532f79e25453230acf431e82717574ba1962375f../paper/notfound.tmpl../../emacs/site-lisp/hg-test-mode.el../../emacs/site-lisp/mercurial.el../../emacs/site-lisp/mq.elrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootmercurial-4.5.2-lp151.6.3.1.src.rpmconfig(mercurial)hgmercurialmercurial(x86-32)@@@@@@@@@@@@@@@@    /usr/bin/env/usr/bin/pythonca-certificatesconfig(mercurial)libc.so.6libc.so.6(GLIBC_2.0)libc.so.6(GLIBC_2.1)libc.so.6(GLIBC_2.1.3)libc.so.6(GLIBC_2.2)libc.so.6(GLIBC_2.3.4)libc.so.6(GLIBC_2.4)libpthread.so.0libpthread.so.0(GLIBC_2.0)libpthread.so.0(GLIBC_2.1)libpthread.so.0(GLIBC_2.2)libpthread.so.0(GLIBC_2.3.2)libpython2.7.so.1.0pythonpython(abi)python-cursespython-xmlrpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)4.5.2-lp151.6.3.12.73.0.4-14.6.0-14.0-15.2-14.14.1\ڭ[@[?YZZ@ZvZ@Y@Y@YJY\Y @XXXoX@W@W9W]NW;W(W'A@VVV@VwV@Vd#@VC-V?9@VUU@Uz@UF UTT@T T@TT@Tg@@tiwai@suse.detiwai@suse.detiwai@suse.dedevelop7@develop7.infodevelop7@develop7.infodevelop7@develop7.infodevelop7@develop7.infodevelop7@develop7.infotiwai@suse.detiwai@suse.dedevelop7@develop7.infodevelop7@develop7.infodevelop7@develop7.infodevelop7@develop7.infompluskal@suse.comdevelop7@develop7.infodevelop7@develop7.infodevelop7@develop7.infoastieger@suse.comdevelop7@develop7.infodevelop7@develop7.infodevelop7@develop7.infodevelop7@develop7.infodevelop7@develop7.infowr@rosenauer.orgdevelop7@develop7.infowr@rosenauer.orgwr@rosenauer.orgwr@rosenauer.orgwr@rosenauer.orgwr@rosenauer.orgdevelop7@develop7.infodevelop7@develop7.infodevelop7@develop7.infowr@rosenauer.orgmatwey.kornilov@gmail.comdevelop7@develop7.infodevelop7@develop7.infodevelop7@develop7.infodevelop7@develop7.infodevelop7@develop7.infodevelop7@develop7.info- Fix incorrect patch-checking with symlinks and subrepos (CVE-2019-3902, bsc#1133035): hg-CVE-2019-3902-fix1.patch hg-CVE-2019-3902-fix2.patch hg-CVE-2019-3902-fix3.patch- Fix out-of-bounds read during parsing of a malformed manifest entry (CVE-2018-17983, bsc#1110899): hg-CVE-2018-17983.patch- Fix security issues in mpatch overflow and other misbehavior (CVE-2018-13346, bsc#1100354, CVE-2018-13347, bsc#1100355, CVE-2018-13348, bsc#1100353): hg-mpatch-fix01.patch hg-mpatch-fix02.patch hg-mpatch-fix03.patch hg-mpatch-fix04.patch hg-mpatch-fix05.patch hg-mpatch-fix06.patch hg-mpatch-fix07.patch hg-mpatch-fix08.patch hg-mpatch-fix09.patch- Modernize spec-file by calling spec-cleaner- Mercurial 4.5.2 (4.5.2 was released immediately after 4.5.1 to fix a release oversight.) 1. Security Fixes (CVE-2018-1000132,bsc#1085211) All versions of Mercurial prior to 4.5.2 have vulnerabilities in the HTTP server that allow permissions bypass to: * Perform writes on repositories that should be read-only * Perform reads on repositories that shouldn't allow read access 2. Backwards Compatibility Changes The "batch" wire protocol command now enforces permissions of each invoked sub-command. Wire protocol commands must define their operation type or the "batch" command will assume they can write data and will prevent their execution on HTTP servers unless the HTTP request method is POST, the server is configured to allow pushes, and the (possibly authenticated) HTTP user is authorized to perform a push. Wire protocol commands not defining their operation type in "wireproto.PERMISSIONS" are now assumed to be used for "push" operations and access control to run those commands is now enforced accordingly. 3. Bug Fixes fileset: don't abort when running copied() on a revision with a removed file date: fix parsing months setup: only allow Python 3 from a source checkout (issue5804) annotate: do not poorly split lines at CR (issue5798) subrepo: don't attempt to share remote sources (issue5793) subrepo: activate clone pooling to enable sharing with remote URLs changegroup: do not delta lfs revisions revlog: do not use delta for lfs revisions revlog: resolve lfs rawtext to vanilla rawtext before applying delta See full cnahgelog on https://www.mercurial-scm.org/wiki/WhatsNew#Mercurial_4.5.1_.2F_4.5.2_.282018-03-06.29- Mercurial 4.5 See full changelog on https://www.mercurial-scm.org/wiki/WhatsNew#Mercurial_4.5-rc_.282018-01-22.29 1. New Features 1.1. revert --interactive The revert command now accepts the flag --interactive to allow reverting only some of the changes to the specified files. 1.2. Accessing hidden changesets Set config option `experimental.directaccess = True` to access hidden changesets from read only commands. 1.3. githelp extension The githelp extension provides the `hg githelp` command. This command attempts to convert a git command to its Mercurial equivalent. The extension can be useful to Git users new to Mercurial. 1.4. Largefiles changes largefiles: add a 'debuglfput' command to put largefile into the store largefiles: add support for 'largefiles://' url scheme largefiles: allow to run 'debugupgraderepo' on repo with largefiles largefiles: convert EOL of hgrc before appending to bytes IO largefiles: explicitly set the source and sink types to 'hg' for lfconvert largefiles: modernize how capabilities are added to the wire protocol 2. hgweb changes hgweb now shows more information about commits: phase (if it's not public), obsolescence status (with a short explanation and links to the successors) and instabilities (e.g. orphan, phase-divergent or content-divergent). Client-side graph code has been simplified by delegating more work to the backend, so /graph page is now more in sync with /log page, visually and feature-wise. Unfortunately, this code change means that 3rd-party themes for 4.5+ are required to have graphentry.tmpl template available (copy it from the base theme if you don't use %include and then reference it in map file) and render entries in graph.tmpl -- look at one of the core themes to see what it needs to look like. JS functions that create graph vertices and edges are now available in Graph.prototype, making it possible to call the original functions from custom theme-specific functions if needed. Graph now shows different symbols for normal, branch-closing, obsolete and unstable commits, and marks currently checked out commit with a circle around its graph node. There's also now json-graph API endpoint that can be used for rendering commit graph in 3rd-party applications. 2.1. Other Changes When interactive revert is run against a revision other than the working directory parent, the diff shown is the diff to _apply_ to the working directory, rather than the diff to _discard_ from the working copy. This is in line with related user experiences with 'git' and appears to be less confusing with 'ui.interface=curses'. Let 'hg rebase' avoid content-divergence by skipping obsolete changesets (and their descendants) when they are present in the rebase set along with one of their successors but none of their successors is in destination. A new experimental config flag, `rebase.experimental.inmemory`, makes rebase perform an in-memory merge instead of doing it on-disk in the working copy. The `HGPLAINEXCEPT` environment variable can now include color to allow automatic output colorization in otherwise automated environments. A new `unamend` command in `uncommit` extension which undoes the effect of the amend command by creating a new changeset which was there before amend and moving the changes that were amended to the working directory. A '--abort' flag to merge command to abort the ongoing merge. An experimental flag '--rev' to 'hg branch' which can be used to change branch of changesets. bundle2 read I/O significantly improved bundle2 memory use significantly reduced during read clonebundle: it is now possible to serve the clonebundle using a git-lfs compatible server. templatefilters: add slashpath() to convert path separator to slash (issue5572) A new experimental config flag, 'inline-color-diff', adds within-line color diff capacity histedit: add support to output nodechanges using formatter to help with editor integrations 3. Backwards Compatibility Changes `log --follow-first -rREV`, which is deprecated, now follows the first parent of merge revisions from the specified REV just like `log --follow -rREV`. `log --follow -rREV FILE..` now follows file history across copies and renames. transaction: register summary callbacks only at start of transaction hgweb's graph view no longer supports browsers that lack support hgweb: only include graph-related data in jsdata variable on /graph pages graphlog: add another graph node type, unstable, using character * remove: print message for each file in verbose mode only while using '-A'- Mercurial 4.4.1 1. Notable changes * Git and Subversion subrepos have been disabled by default to mitigate a potential security risk if files overlapping with a subrepo managed to be committed to a repository. bsc#1071715 CVE-2017-17458 * Subrepos are now more paranoid about symlink traversal. * The share extension handles drive letters on Windows better. It is possible that a specially malformed repository can cause Git subrepositories to run arbitrary code in the form of a .git/hooks/post-update script checked in to the repository in Mercurial 4.4 and earlier. Typical use of Mercurial prevents construction of such repositories, but they can be created programmatically.- Mercurial 4.4 Notable changes Control whitespace settings for annotation on hgweb * /annotate URLs on hgweb now accept query string arguments to influence how whitespace changes impact results. * The arguments "ignorews," "ignorewsamount," "ignorewseol," and "ignoreblanklines" now have the same meaning as their [annotate] config section counterparts. Any provided setting overrides the server default. * HTML checkboxes have been added to the paper and gitweb themes to expose current whitespace settings and to easily modify the current view. Fast, heuristic copy-tracing A new fast heuristic algorithm for copytracing which assumes that the files moves are either: 1. renames in the same directory 2. moves in other directories with same names You can use this algorithm by setting 'experimental.copytrace=heuristics'. This setting performs full copytracing if both source and destination branches contains non-public changesets only. Other changes * Estimated time is more accurate with non-linear progress * "hg status -v" can now show unfinished state. For example, when in an unfinished rebase state, "hg status -v" might show: [#] The repository is in an unfinished *rebase* state. [#] No unresolved merge conflicts. [#] To continue: hg rebase --continue [#] To abort: hg rebase --abort * Added '--ignore-space-at-eol' diff option to ignore whitespace differences at line endings. * show: use consistent node length in views * show: decrease minimum displayed hash length from 5 to 4 * A new uncommit extension which provides 'hg uncommit' using which one can uncommit part or all of the changeset. This command undoes the effect of a local commit, returning the affected files to their uncommitted state. * 'hg clone --uncompressed' uses clone bundles when possible * 'hg annotate --skip' now prints a '*' on lines with skipped revisions * New 'commands.update.check' feature to adjust constraints on when 'hg update' will allow updates with a dirty working copy. * Add an experimental -L/--line-range FILE,FROMLINE:TOLINE option to 'hg log' command to follow the history of files by line range. In combination with -p/--patch option, only diff hunks within specified line range will be displayed. Feedback, especially on UX aspects, is welcome. * Print warning when fsmonitor isn't being used on a large repository Read rest of the changelog at https://www.mercurial-scm.org/wiki/WhatsNew#Mercurial_4.4_.282017-11-01.29 - Mercurial 4.3.3 * Prevent crashes when clearing progress bar. (issue5684) * rebase: move bookmarks with --keep (issue5682) - Mercurial 4.3.2 * restore compatibility with older versions of Python 2.7 by not using a bytearray with struct.unpack_from() * restore mingw compatibility for setup.py * hgwebdir: read 'web.template' untrusted (plugs potential security issue) * repair: preserve phase when not using generaldelta (issue5678) * ssh: fix flakey ssh errors on BSD systems * restore error handling behavior around certain I/O errors; the regressed behavior could result in transactions not being properly rolled back if stdio handles encountered errors (issue5658) * templatekw: choose {latesttag} by len(changes), not date (issue5659) * record: fix revert -i for lines without newline (issue5651) * mq: create non-lossy patches, also with custom global diff configuration - Fixed README file name (now it's README.rst)- Mercurial 4.3.1: This is a regularly-scheduled quarterly feature release, including the previous two security fixes (CVE-2017-1000115, CVE-2017-1000116) Notable changes: * experimental amend extension providing the amend command * experimental sparse extension * Support for Python 2.6 has been dropped. * Bundles created by the strip extension now store phase information. It will be restored when unbundling. * The strip extension now removes relevant obsmarkers. If a backup requested (the default), the obsmarkers are stored in the backup bundle and will be restored when unbundling. * hg show work (from the experimental show extension) now displays more info * hg show stack is a new view for the current, in-progress changeset and others around it * Mitigation for two security vulnerabilities- mercurial 4.2.3: security fix updates for CVE-2017-1000115 and CVE-2017-1000116: * Mercurial's symlink auditing was incomplete prior to 4.3, and could be abused to write to files outside the repository (CVE-2017-1000115 bsc#1053344) * Mercurial was not sanitizing hostnames passed to ssh, allowing shell injection attacks by specifying a hostname starting with - oProxyCommand (CVE-2017-1000116, bsc#1052696)- Mercurial 4.2.2 This is a regularly-scheduled bugfix release. * largefiles: avoid a crash when archiving a subrepo with largefiles disabled * rebase: also test abort from pretxnclose error * rebase: backed out changes 2519994d25ca and cf8ad0e6c0e4 (issue5610) * rebase: reinforce testing around precommit hook interrupting a rebase - Mercurial 4.2.1 This is a regularly-scheduled bugfix release. * `hg graft` now works when grafting across merges that were problematic before (b4e1e30528c7). * A race condition in `hg status` was partially fixed (issue5584). * The message about deprecated SHA-1 hashes in the [hostfingerprints] config section now references the correct syntax for replacing them with SHA-256 hashes (issue5559).- Mercurial 4.2 This is a regularly-scheduled quarterly feature release. * Notable changes + Pager support has been moved into core and is now enabled by default. This is now controlled with the ui.paginate setting. Note that in 4.2-rc, the ui.paginate option was named pager.enable. The old name has been dropped in the final release. If you had turned pagination off using pager.enable=False, please update your config. + Color support has also been moved into core and is now enabled by default (the ui.color setting now defaults to 'auto'). + The new experimental 'show' extension provides a way to view various information about your repository in an ergonomic way. It is deliberately designed for human consumption and not for scripting, so it doesn't carry the same backward compatibility guarantees as other commands. See 'hg help -e show' for more information. + Mercurial now requires `setuptools` on Windows- Mercurial 4.1.2 This is a regularly-scheduled bugfix release. + Mercurial should work inside IIS on Windows again. (issue5493) + zstd support now refuses to work on old bundle formats. (issue5506) + Merges involving subrepositories no longer crash in some cases. (issue5505) + Checking for new heads during push is no longer accidentally quadratic - Mercurial 4.1.1 This is a regularly-scheduled bugfix release. + Several incorrect mailing list addresses have been corrected. + Various error cases have been corrected during push and pull. + Minor issues that happened when Mercurial spawned worker processes have been fixed.- Mercurial 4.1 This is a regularly-scheduled quarterly feature release. + Features * A new extensible "compression engines" API has been implemented. Support for a new compression format can now be implemented in extensions. * New compression formats are fully supported in bundles and the wire protocol. There is experimental support for different compression in revlogs. * zstd - a new and exciting compression engine - is now distributed with Mercurial and built by default * HTTP payloads for many commands will now use zstd by default (as opposed to zlib) when both client and server support it. This can reduce server-side CPU usage to ~60% of original for operations like serving bundles. * zstd compressed bundles can be produced by specifying the `zstd` bundle type. e.g. `hg bundle -a -t zstd-v2 zstd-bundle.hg`. * A new statistical profiler has been added and made the default profiler for `--profile`. This profiler gives more accurate results than Python's built-in cProfile (the previous default) because the profiler overhead is much smaller. The output from `--profile` now displays the code hot path by default. This allows Mercurial developers to more accurately identify performance problems. * New `followlines(file, from:to, startrev=.)` revset predicate to track a part of changes. * Experimental support for additional git-diff features. * Troubled changes (from ChangesetEvolution) are noted more prominently in a few places. * An experimental hg debugupgraderepo command allows in-place upgrading of repositories to the latest storage format. + Improvements * Performance of reading individual revlog entries has been greatly improved. This will be noticeable when performing changelog scans on large repositories (such as when executing certain revsets). * The low-level content diffing algorithm is now ~2x faster. Operations that write data to the repository (like commit) can be noticeably faster as a result. See complete changelog at https://www.mercurial-scm.org/wiki/WhatsNew#Mercurial_4.1_.282017-2-1.29 - refreshed mercurial-locale-path-fix.patch and mercurial-hgk-path-fix.diff - refresh package keyring- Update to version 4.0.2: * demandimport: do not raise ImportError for unknown item in fromlist * posix: make poll() restart on interruption by signal * hgweb: add missing slash to file log url in rss style * hgweb: cache fctx.parents() in annotate command * vfs, scmutil: ignore EPERM at os.utime, which avoids ambiguity - Update package keyring- Mercurial 4.0 This is a regularly-scheduled quarterly feature release. Unlike other 4.0 software releases, this is simply 3.9 + .1, so it should be the usual pain-free upgrade. + Features * The following commands now also have experimental formatter support: 'hg version', 'hg grep' and 'hg config' * New template keywords and functions: `termwidth`, `mod(a, b)`, `relpath(path)` * Basic arithmetic operations in template such as `termwidth - 10` * `follow()` revset takes new `startrev` parameter * Bash completion now allows skipping potentially expensive status call for completing 'hg status' arguments, using $HGCOMPLETE_NOSTATUS environment variable + Improvements * A number of changes were made to move and copy tracking, to make sure move and copy information is not lost during commands like 'hg graft' * Compound revset expression is now properly ordered * Python 3 support has received a lot of improvements (but will take a lot of additional work) * zlib performance in hgweb is improved, and it's possible to control zlib compression level using server.zliblevel option - Refreshed mercurial-hgk-path-fix.diff and mercurial-locale-path-fix.patch- Mercurial 3.9.1 (2016-9-1) This is a regularly-scheduled bugfix release. * bundle2: fail faster when interrupted * bundle2: localize handleoutput remote prompts * convert: move svn config initializer out of the module level * debian: update source URL in copyright file * exchange: correctly specify url to unbundle (issue5145) * help: add example of '[templates]' usage * help: update link to wiki/CommandServer * osx: update bugzilla link in readme * revset: fix keyword arguments to go through optimization process * win32: update link to mailing list in readme * win32: update wiki link in mercurial.ini- Mercurial v3.9 + Features * ui.textwidth can now be set to define width of help text * separate() template function added * ui.rollback can be set to false to disable the hg rollback command * fail- hooks now run when a command fails * experimental.graphstyle.* config options to control styling of graphs in console * experimental.histedit.autoverb allows histedit lines beginning with "verb!" to be interpreted as histedit actions * [hostsecurity] config section for defining advanced per-host security settings * ability to define the SHA-256 and SHA-512 hashes of pinned server certificates * ability to define CA certificates on a per-host basis * ability to define the minimum TLS protocol version on a global or per-host basis * sort() revset can now perform topological sorts using the topo option * hgweb can now render JSON for filelog, filerevision, summary, and search web commands * [paths] entries can now define a pushrev sub-option to control which revisions to push by default * The experimental 'journal' extension was added, allowing users to view the previous positions of bookmarks and the working copy + Improvements This release includes many improvements, including (but not limited to): * performance of `hg diff` has been improved * chg now detects more changes to the configuration and execution environment * SSL/TLS code has been significantly refactored and now is consistent across all consumers (HTTPS, SMTPS) * performance improvements to server communication (particularly for the largefiles and remotefilelog extensions) * connections to servers whose certificate authority (CA) is unknown are now refused even if no CA certificates are available (see SecureConnections for details) * fingerprints of server certificates are now printed using SHA-256 instead of SHA-1 * reads and writes to certain files is now robust and avoids more race conditions and edge cases (see ExactCacheValidationPlan) * performance improvements to certain revsets * cloning will no longer prompt for a password multiple times when cloning from a server that requires a password * annotate view in hgweb now groups lines into blocks depending on their revision and highlights lines for the current revision * hgweb now displays extra information and also navigation links in popups for each line in annotate view- mercurial 3.8.3: * bookmarks: allow pushing active bookmark on new remote head * localrepo: prevent executable-bit only changes from being lost on amend * strip: invalidate phase cache after stripping changeset - verify source signature- Mercurial v3.8.2 This is an unscheduled bugfix release. 3.8.1 contained a noisy deprecation warning that was only intended for Mercurial developers, sorry. * bookmarks: properly invalidate volatile sets when writing bookmarks * builddeb: add distroseries to tagged versions * bundle2: properly request phases during getbundle * debian: add wish to suggests * debian: forgot to make debian/rules executable in 6b95a623ec90 * deprecation: gate deprecation warning behind devel configuration * help: fix the display for hg help internals.revlogs (issue5227) * help: search section of help topic by translated section name correctly * hg-ssh: copy doc string to man page * patch: show lower-ed translated message correctly * progress: stop excessive clearing (issue4801)- fix mercurial-locale-fix.patch- update to v3.8.1 (3.8.1 was released immediately after 3.8 to fix a release oversight.) Regularly scheduled feature release. This release contains a low-priority security fix for: * CVE-2016-3105 Mercurial: arbitrary code execution when converting Git repos Features * `hg update` and other commands that can perform update (such as hg pull -u) now warn about other topological heads * cHg has been added * `hg update` now updates to the tip-most changeset on the same topological branch. Before, it would update to the tip-most changeset, possibly on a different topological head * Hints on how to continue interrupted commands are now printed (e.g. `hg resolve -m` will now tell you to run `hg rebase --continue` or `hg histedit --continue`) * The experimental automv extension has been added. This extension attempts to detect file copes and renames automatically. * The 3rd party hgwatchman extension has been imported as the fsmonitor extension. This extension uses filesystem watching to make commands like `hg status` significantly faster on large repositories. * `hg rebase` now chooses its default destination the same way `hg merge` does * `hg pull -u` now activates a bookmark if the has a bookmark * `hg pull -u` now deactivates a bookmark if the destination doesn't match the existing bookmark * Improved edge styles in graph log. * User template keywords and functions can be defined in `[templatealias]` section. * It's now possible to push the active bookmark using `hg push -B .`. Improvements This release includes many improvements, including (but not limited to): * performance of copy detection during rebases has been improved, potentially leading to faster rebase execution * performance of `hg log -f ` has been improved * syntax errors in loaded extensions are now handled better * `hg update` on Windows should now be up to 4x faster * JSON encoding should now be proper UTF-8 for all inputs * Performance of the - revset operator has been improved * The blackbox extension now logs more data * "hgext" is now a Python namespace package * revsets accessing changelog data (commit messages, authors, dates) are now 10-15% faster * hg.exe built in MinGW will now link against the proper Python DLL- update to v3.7.3 This is an out of cycle release to address three security issues: * CVE-2016-3630 Mercurial: remote code execution in binary delta decoding Mercurial prior to 3.7.3 contained two bounds-checking errors in its binary delta decoder that may be exploitable via clone, push, or pull. * CVE-2016-3068 Mercurial: arbitrary code execution with Git subrepos Mercurial prior to 3.7.3 allowed URLs for Git subrepos that could result in arbitrary code execution on clone. This is a further side-effect of Git CVE-2015-7545. Reported by Blake Burkhart. * CVE-2016-3069 Mercurial: arbitrary code execution when converting Git repos Mercurial prior to 3.7.3 allowed arbitrary code execution when converting Git repos with hostile names. This could affect automated conversion services. Reported by Blake Burkhart. + bdiff: (pure) support array.array arrays (issue5130) + convert: add new, non-clowny interface for shelling out to git (SEC) + convert: dead code removal - old git calling functions (SEC) + convert: rewrite calls to Git to use the new shelling mechanism (SEC) + convert: rewrite gitpipe to use common.commandline (SEC) + convert: test for shell injection in git calls (SEC) + files: don't recurse into subrepos without a path or -S (issue5127) + hg: perform update after pulling during clone with share (issue5103) + mq: restrict generated patch name to 75 characters (issue5117) + obsolete: fix n^2 marker computation behavior + parsers: detect short records (SEC) + parsers: fix list sizing rounding error (SEC) + streamclone: fix error when store files grow while stream cloning + subrepo: adapt to git's recent renames-by-default + subrepo: set GIT_ALLOW_PROTOCOL to limit git clone protocols (SEC)- update to v3.7.2 This is a regularly-scheduled bugfix release. + bundlerepo: properly handle hidden linkrev in filelog (issue4945) + bundlerepo: properly handle hidden linkrev in manifestlog (issue4945) + demandimport: add _imp to ignore list + doc: correct example concerning "hg purge" alias in man page "hgrc.5" + doc: remove deprecated option from synopsis of command help + fileset: fix copy/paste in eol() error message + help: fix typo in backgroundclose documentation + help: hg.intevation.de is new primary name of hg.intevation.de (and new cert) + help: update template examples to use reST literal syntax + hg: obtain lock when creating share from pooled repo (issue5104) + log: fix order of revisions filtered by multiple OR options (issue5100) + rebase: update working directory when aborting (issue5084) + revert: properly revert to ancestor of p2 during merge (issue5052) + revset: flatten chained 'list' operations (aka function args) (issue5072) + setup: avoid procedure related to hg.exe at setup.py --pure + ui: fix crash by non-interactive prompt echo for user name + unionrepo: properly handle hidden linkrev in revlog (issue5070) + zeroconf: forward all arguments passed to ui.configitems() wrapper- update to 3.7.1 This addresses an urgent regression in compilation on Solaris and metadata handling for conversions. + amend: don't preserve most extra fields + graft: don't preserve most extra fields + histedit: fix typo in documentation + osutil: disable compilation of recvfds() on unsupported platforms + osutil: do not abort loading pure module just because libc has no recvmsg() + rebase: backout changeset 986d04b9fedd + rebase: backout changeset d755a9531fce + rebase: don't preserve most extra fields- update to v3.7 * Features + Generaldelta: the original Mercurial compression format had an inefficient way of storing history in very branchy repositories. Generaldelta addresses this weakness. As a result, depending on the repository, this can improve the size of the history up to a factor of 10. Mercurial 1.9 was the first release to support generaldelta (behind a feature flag), but Mercurial 3.7 also allows pulling a mixture of non-generaldelta and generaldelta history without having to recompute everything, which avoids overloading servers. As a result, generaldelta is now enabled by default. You can convert a repository to generaldelta using: `hg clone -U --config format.generaldelta=1 --pull originalrepo generaldeltarepo` + Clonebundles: this is an server-side extension. It allows using a pre-generated bundle for an initial Mercurial clone. Clients will automatically use clonebundles if a server advertises them. Clonebundles allows much faster initial clones and reduces the load on a central server significantly. Mercurial 3.6 was the first version to include experimental clonebundles support, it's now been marked non-experimental. You can find out more using: `hg help clonebundles`. + Filesets now support 'missing()', to specify all files missing according to `hg status`. + Interactive committing (`hg commit -i`) and amending (`hg commit --amend`) can now be used together. + Merging can now handle collisions between untracked and tracked files, configurable according to the config option `merge.checkunknown`. + Default 'histedit' destination: it's now possible to run `hg histedit` without specifying a base revision. Mercurial will try to determine an appropriate base automatically. The revset used for this is "`reverse(only(.) and not public() and not ::merge())`", which specifies the first ancestor of the current changeset that is not public and does not have any descendants that are merges. + The '*.orig' files created by revert can now be stored in a different location, specified by the config option `ui.origbackuppath`. + `hg shelve` now supports storing untracked files. + `hg unshelve` now supports using a custom merge tool. + `hg backout` now commits by default if no conflicts were encountered. + hgweb now supports rendering sub-topics. + Server operators can now limit interaction with legacy clients speaking an outdated wire protocol. This is useful for preventing excessive CPU use when the server is using generaldelta repositories. See the various `bundle1` options in `hg help config.server`. + Python wheel packages are now available for Windows on PyPI + `[paths]` entries can now define a separate URL for pushes. See `hg help config.paths` for more. * Improvements This release includes many improvements, including (but not limited to): + performance improvements (speedup for '`hg log `') + many documentation improvements (clarification, additional examples (see `hg help --verbose`), ...) + improved PyPy support + `hg clone --uncompressed` is now 3-4x faster on Windows. See the `backgroundclose*` options in `hg help config.worker` for more.- update to 3.6.2 This is a regularly-scheduled bugfix release. + docker: match more version of 'hg docker version' + localrepo.commit: check all files for resolve state + rebase: add returning value from pullrebase function + resolve: restore .orig only after merge is fully complete + share: wrap bmstore._writerepo for transaction sensitivity + tags: create new sortdict for performance reasons- update to 3.6.1 This is an out-of-cycle bugfix release for issues related to hooks See detailed release notes on https://www.mercurial-scm.org/wiki/WhatsNew#Mercurial_3.6.1_.282015-11-9.29- update to 3.6 Regularly-scheduled feature release. See detailed release notes on https://www.mercurial-scm.org/wiki/WhatsNew#Mercurial_3.6_.282015-11-1.29- update to 3.5.2 Regularly-scheduled bugfix release. + hgweb: use latest mtime for caching tag (issue4814) + largefiles: restore archiving largefiles with hgweb (issue4859) + localrepo: recreate phasecache if changelog was modified (issue4855) + monoblue: fix page subtitle on help pages + unbundle: cleanly abort on unknown bundle2 feature- update to 3.5.1 Regularly-scheduled bugfix release + convert: fix git copy file content conversions + filesets: ignore unit case in size() predicate for single value + help: fix typo familar -> familiar + help: fix typo in scripting documentation + hg: avoid auto sharing when the clone destination is remote + hgweb: fix trust of templates path (BC) + histedit: backout ebb5bb9bc32e + largefiles: ensure lfutil.getstandinmatcher() only matches standins + match: fix a case-only rename + explicit path commit on icasefs (issue4768) + parsers: fix memory leak in compute_phases_map_sets + rebase: lock the repo during the full rebase operation + revset: prevent crash caused by empty group expression while optimizing "and" + revset: prevent crash caused by empty group expression while optimizing "or" + strip: use the 'finally: tr.release' pattern during stripping + update: wlock the repo for the whole 'hg update' command - require python-curses (boo#944183)- update to v3.5 Regularly-scheduled feature release. See detailed release notes on https://mercurial.selenic.com/wiki/WhatsNew#Mercurial_3.5_.282015-07-31.29- update to v3.4.2 See detailed release notes on https://mercurial.selenic.com/wiki/WhatsNew#Mercurial_3.4.2_.282015-07-01.29 and https://mercurial.selenic.com/wiki/WhatsNew#Mercurial_3.4.1_.282015-06-01.29- update to 3.4 This is a regularly-scheduled feature release. See full release notes at http://mercurial.selenic.com/wiki/WhatsNew#Mercurial_3.4_.282015-05-01.29- update to 3.3.3 This is a regularly-scheduled bugfix release. + adjustlinkrev: handle 'None' value as source + adjustlinkrev: prepare source revs for ancestry only once + amend: check for directory renames for both merge parents (issue4516) + annotate: reuse ancestry context when adjusting linkrev (issue4532) + dirstate: don't require exact case when adding dirs on icasefs (issue4578) + dirstate: make sure rootdir ends with directory separator (issue4557) + filemerge: clean up language in mergemarkertemplate help + forget: cleanup the output for an inexact case match on icasefs + hgweb: prevent loading style map from directories other than specified paths + mergecopies: reuse ancestry context when traversing file history (issue4537) + templates: fix "log -q" output of default style + templates: fix "log -q" output of phases style + win32: 'raise ctypes.WinError' -> 'raise ctypes.WinError()'- Without installed python package hg is not able to clone https links, and it is not so easy to understand from error message: "python ssl support not found".- update to v3.3.2 An unscheduled bugfix release to fix the fix. + transaction: really disable hardlink backups (issue4546) - update to v3.3.1 This is a regularly scheduled bugfix release. It fixes a significant regression with transactions on Windows network shares. + dispatch: work around UnicodeDecodeError caused by SSLError of Python 2.7.9 + hgweb: recreate old DOM structure for css in monoblue style + largefiles: access to specific fields only if largefiles enabled (issue4547) + log: fix json-formatted output when file copies are listed (issue4523) + repoview: invalidate cached changelog if _delayed changes (issue4549) + revisionbranchcache: fall back to slow path if starting readonly (issue4531) + revset: mask specific names for named() predicate + shellquote: fix missing quotes for empty string + templatekw: fix {join(bookmarks, sep)} to always show associated bookmarks + transaction: disable hardlink backups (issue4546)- update to v3.3 + commands * add: add back forgotten files even when not matching exactly (BC) * addremove: add back forgotten files (BC) * addremove: add support for the -S flag * addremove: print relative paths when called with -I/-X (BC) * addremove: support addremove with explicit paths in subrepos * backout: add --commit option * commit: abort if --addremove is specified, but fails * commit: remove reverse search for copy source when not in parent (issue4476) * commit: propagate --addremove to subrepos if -S is specified (issue3759) * graft: show more useful status information while grafting + core * bundles: do not overwrite existing backup bundles (BC) * osx: patch .pax.gz files in pkg bundles so they extract as root (issue4081) * revset: handle hidden linkrev for file missing for head (issue4490) * revset: allow rev(-1) to indicate null revision (BC) * revset: fix ancestors(null) to include null revision (issue4512) * subrepo: don't abort in add when non-hg subrepos are present (issue4513) * cmdserver: use given streams as pipe channels like other commands * extensions: only check compatibility against major and minor versions (BC) * https: support tls sni (server name indication) for https urls (issue3090) * ignore: resolve ignore files relative to repo root (issue4473) (BC) * linkrev: handle filtered linkrev with no visible children (issue4307) * linkrev: also adjust linkrev when bootstrapping annotate (issue4305) * linkrev: use the right manifest content when adjusting linrev (issue4499) * memctx: calculate manifest correctly with newly-removed files (issue4470) * memctx: fix manifest for removed files (issue4470) * obsstore: disable garbage collection during initialization (issue4456) * subrepo: support remove with explicit paths in subrepos * subrepo: add full revert support for git subrepos * subrepo: add partial diff support for git subrepos * subrepo: add status support for ignored files in git subrepos * win32: remove Mercurial.ini file from Inno Setup installer (issue4435) + hgweb * hgweb: allow viewing diffs against p1 or p2 for merge commits (issue3904) + extensions * color: add support for colorizing git subrepo diffs * color: add missing 'dim' in _effects * convert: on svn failure, note libsvn version (issue4043) * convert: replace revision references in messages if they are >= short hashes * convert: handle LookupError in mercurial_source.lookuprev() * extdiff: reintroduce backward compatibility with manual quoting of parameters * histedit: add a test to show that issue4251 is fixed (issue4251) * largefiles: fix commit of a directory with no largefile changes (issue4330) * largefiles: use 'default' path for pulling largefiles, not 'default-push' * largefiles: enable subrepo support for add, forget, remove * largefiles: show progress when checking standin hashes in outgoing changesets * mq: smarter handling of plain headers * patchbomb: don't honor whitespace and format-changing diffopts (BC) * rebase: show more useful status information while rebasing * rebase: ensure rebase revision remains visible (issue4504) * extdiff: avoid unexpected quoting arguments for external tools (issue4463) * highlight: ignore Unicode's extra linebreaks (issue4291) * record: don't honor format-changing diffopts (issue4459) * share: add option to share bookmarks * transplant: properly skip empty changeset (issue4423) - provide cacerts.rc for all OS, not just >1130- update to v3.2.3 * context: stop setting None for modified or added nodes * darwin: omit ignorable codepoints when normcase()ing a file path * encoding: add hfsignoreclean to clean out HFS-ignored characters * largefiles: don't actually remove largefiles in an addremove dry run * log: fix log -f slow path to actually follow history * log: fix log revset instability * manifest: disallow setting the node id of an entry to None * pathauditor: check for Windows shortname aliases * pathauditor: check for codepoints ignored on OS X * rebase: ignore negative state when updating back to original wc parent * update: add tests for untracked local file * update: don't overwrite untracked ignored files on update- properly replaced previously dropped mercurial-2.8-ssl.diff with cacerts.rc- update to v3.2.2 * see changelog at http://mercurial.selenic.com/wiki/WhatsNew#Mercurial_3.2.2_.282014-12-01.29- update to 3.2.1 * see changelog for v3.2.1 at http://mercurial.selenic.com/wiki/WhatsNew#Mercurial_3.2.1_.282014-11-11.29 - refreshed mercurial-locale-path-fix.patch - dropped obsolete mercurial-2.8-ssl.diff - dropped outdated contrib stuff from specbuild70 1592906897  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  4.5.2-lp151.6.3.14.5.24.5.2-lp151.6.3.14.5.2-lp151.6.3.1     !!!!!!!!!!!!!""""""""""""""""""""""#############$$$%%%%%%%%%%%%%%%%%%$$&'''()***+,-../01222345mercurial.shmercurialhgrc.dcacerts.rchghgkhgdemandimport__init__.py__init__.pycdemandimportpy2.pydemandimportpy2.pycdemandimportpy3.pydemandimportpy3.pychgext__init__.py__init__.pycacl.pyacl.pycamend.pyamend.pycautomv.pyautomv.pycblackbox.pyblackbox.pycbugzilla.pybugzilla.pyccensor.pycensor.pycchildren.pychildren.pycchurn.pychurn.pycclonebundles.pyclonebundles.pyccommitextras.pycommitextras.pycconvert__init__.py__init__.pycbzr.pybzr.pyccommon.pycommon.pycconvcmd.pyconvcmd.pyccvs.pycvs.pyccvsps.pycvsps.pycdarcs.pydarcs.pycfilemap.pyfilemap.pycgit.pygit.pycgnuarch.pygnuarch.pychg.pyhg.pycmonotone.pymonotone.pycp4.pyp4.pycsubversion.pysubversion.pyctransport.pytransport.pyceol.pyeol.pycextdiff.pyextdiff.pycfactotum.pyfactotum.pycfetch.pyfetch.pycfsmonitor__init__.py__init__.pycpywatchman__init__.py__init__.pycbser.socapabilities.pycapabilities.pyccompat.pycompat.pycencoding.pyencoding.pycload.pyload.pycpybser.pypybser.pycstate.pystate.pycwatchmanclient.pywatchmanclient.pycgithelp.pygithelp.pycgpg.pygpg.pycgraphlog.pygraphlog.pychgk.pyhgk.pychighlight__init__.py__init__.pychighlight.pyhighlight.pychistedit.pyhistedit.pycjournal.pyjournal.pyckeyword.pykeyword.pyclargefiles__init__.py__init__.pycbasestore.pybasestore.pyclfcommands.pylfcommands.pyclfutil.pylfutil.pyclocalstore.pylocalstore.pycoverrides.pyoverrides.pycproto.pyproto.pycremotestore.pyremotestore.pycreposetup.pyreposetup.pycstorefactory.pystorefactory.pycuisetup.pyuisetup.pycwirestore.pywirestore.pyclfs__init__.py__init__.pycblobstore.pyblobstore.pycpointer.pypointer.pycwrapper.pywrapper.pyclogtoprocess.pylogtoprocess.pycmq.pymq.pycnotify.pynotify.pycpager.pypager.pycpatchbomb.pypatchbomb.pycpurge.pypurge.pycrebase.pyrebase.pycrecord.pyrecord.pycreleasenotes.pyreleasenotes.pycrelink.pyrelink.pycschemes.pyschemes.pycshare.pyshare.pycshelve.pyshelve.pycshow.pyshow.pycsparse.pysparse.pycsplit.pysplit.pycstrip.pystrip.pyctransplant.pytransplant.pycuncommit.pyuncommit.pycwin32mbcs.pywin32mbcs.pycwin32text.pywin32text.pyczeroconfZeroconf.pyZeroconf.pyc__init__.py__init__.pychgext3rd__init__.py__init__.pycmercurialmercurial-4.5.2-py2.7.egg-info__init__.py__init__.pyc__modulepolicy__.py__modulepolicy__.pyc__version__.py__version__.pycancestor.pyancestor.pycarchival.pyarchival.pycbookmarks.pybookmarks.pycbranchmap.pybranchmap.pycbundle2.pybundle2.pycbundlerepo.pybundlerepo.pycbyterange.pybyterange.pyccacheutil.pycacheutil.pyccext__init__.py__init__.pycbase85.sobdiff.sodiffhelpers.sompatch.soosutil.soparsers.socffi__init__.py__init__.pycbdiff.pybdiff.pycbdiffbuild.pybdiffbuild.pycmpatch.pympatch.pycmpatchbuild.pympatchbuild.pycosutil.pyosutil.pycosutilbuild.pyosutilbuild.pycchangegroup.pychangegroup.pycchangelog.pychangelog.pycchgserver.pychgserver.pyccmdutil.pycmdutil.pyccolor.pycolor.pyccommands.pycommands.pyccommandserver.pycommandserver.pycconfig.pyconfig.pycconfigitems.pyconfigitems.pyccontext.pycontext.pyccopies.pycopies.pyccrecord.pycrecord.pycdagop.pydagop.pycdagparser.pydagparser.pycdagutil.pydagutil.pycdebugcommands.pydebugcommands.pycdefault.dmergetools.rcdestutil.pydestutil.pycdirstate.pydirstate.pycdirstateguard.pydirstateguard.pycdiscovery.pydiscovery.pycdispatch.pydispatch.pycdummycert.pemencoding.pyencoding.pycerror.pyerror.pycexchange.pyexchange.pycextensions.pyextensions.pycfancyopts.pyfancyopts.pycfilelog.pyfilelog.pycfilemerge.pyfilemerge.pycfileset.pyfileset.pycformatter.pyformatter.pycgraphmod.pygraphmod.pychbisect.pyhbisect.pychelphelp.pyhelp.pycbundlespec.txtcolor.txtcommon.txtconfig.txtdates.txtdiffs.txtenvironment.txtextensions.txtfilesets.txtflags.txtglossary.txthg-ssh.8.txthg.1.txthgignore.5.txthgignore.txthgrc.5.txthgweb.txtinternalsbundles.txtcensor.txtchangegroups.txtconfig.txtrequirements.txtrevlogs.txtwireprotocol.txtmerge-tools.txtpager.txtpatterns.txtphases.txtrevisions.txtscripting.txtsubrepos.txttemplates.txturls.txthg.pyhg.pychgweb__init__.py__init__.pyccommon.pycommon.pychgweb_mod.pyhgweb_mod.pychgwebdir_mod.pyhgwebdir_mod.pycprotocol.pyprotocol.pycrequest.pyrequest.pycserver.pyserver.pycwebcommands.pywebcommands.pycwebutil.pywebutil.pycwsgicgi.pywsgicgi.pychook.pyhook.pychttpclient__init__.py__init__.pyc_readers.py_readers.pychttpconnection.pyhttpconnection.pychttppeer.pyhttppeer.pyci18n.pyi18n.pyckeepalive.pykeepalive.pyclocalelocalrepo.pylocalrepo.pyclock.pylock.pyclogexchange.pylogexchange.pyclsprof.pylsprof.pyclsprofcalltree.pylsprofcalltree.pycmail.pymail.pycmanifest.pymanifest.pycmatch.pymatch.pycmdiff.pymdiff.pycmerge.pymerge.pycmergeutil.pymergeutil.pycminifileset.pyminifileset.pycminirst.pyminirst.pycnamespaces.pynamespaces.pycnode.pynode.pycobsolete.pyobsolete.pycobsutil.pyobsutil.pycparser.pyparser.pycpatch.pypatch.pycpathutil.pypathutil.pycpeer.pypeer.pycphases.pyphases.pycpolicy.pypolicy.pycposix.pyposix.pycprofiling.pyprofiling.pycprogress.pyprogress.pycpure__init__.py__init__.pycbase85.pybase85.pycbdiff.pybdiff.pyccharencode.pycharencode.pycdiffhelpers.pydiffhelpers.pycmpatch.pympatch.pycosutil.pyosutil.pycparsers.pyparsers.pycpushkey.pypushkey.pycpvec.pypvec.pycpycompat.pypycompat.pycrcutil.pyrcutil.pycregistrar.pyregistrar.pycrepair.pyrepair.pycrepository.pyrepository.pycrepoview.pyrepoview.pycrevlog.pyrevlog.pycrevset.pyrevset.pycrevsetlang.pyrevsetlang.pycrewriteutil.pyrewriteutil.pycscmposix.pyscmposix.pycscmutil.pyscmutil.pycscmwindows.pyscmwindows.pycserver.pyserver.pycsetdiscovery.pysetdiscovery.pycsimilar.pysimilar.pycsimplemerge.pysimplemerge.pycsmartset.pysmartset.pycsparse.pysparse.pycsshpeer.pysshpeer.pycsshserver.pysshserver.pycsslutil.pysslutil.pycstatichttprepo.pystatichttprepo.pycstatprof.pystatprof.pycstore.pystore.pycstreamclone.pystreamclone.pycsubrepo.pysubrepo.pyctagmerge.pytagmerge.pyctags.pytags.pyctemplatefilters.pytemplatefilters.pyctemplatekw.pytemplatekw.pyctemplater.pytemplater.pyctemplatesatombookmarkentry.tmplbookmarks.tmplbranchentry.tmplbranches.tmplchangelog.tmplchangelogentry.tmplerror.tmplfilelog.tmplheader.tmplmaptagentry.tmpltags.tmplcoalheader.tmplmapgitwebbookmarks.tmplbranches.tmplchangelog.tmplchangelogentry.tmplchangeset.tmplerror.tmplfileannotate.tmplfilecomparison.tmplfilediff.tmplfilelog.tmplfilerevision.tmplfooter.tmplgraph.tmplgraphentry.tmplheader.tmplhelp.tmplhelptopics.tmplindex.tmplmanifest.tmplmapnotfound.tmplsearch.tmplshortlog.tmplsummary.tmpltags.tmpljsonchangelist.tmplgraph.tmplmapmap-cmdline.bisectmap-cmdline.changelogmap-cmdline.compactmap-cmdline.defaultmap-cmdline.phasesmap-cmdline.showmap-cmdline.statusmap-cmdline.xmlmonobluebookmarks.tmplbranches.tmplchangelog.tmplchangelogentry.tmplchangeset.tmplerror.tmplfileannotate.tmplfilecomparison.tmplfilediff.tmplfilelog.tmplfilerevision.tmplfooter.tmplgraph.tmplgraphentry.tmplheader.tmplhelp.tmplhelptopics.tmplindex.tmplmanifest.tmplmapnotfound.tmplsearch.tmplshortlog.tmplsummary.tmpltags.tmplpaperbookmarks.tmplbranches.tmplchangeset.tmpldiffstat.tmplerror.tmplfileannotate.tmplfilecomparison.tmplfilediff.tmplfilelog.tmplfilelogentry.tmplfilerevision.tmplfooter.tmplgraph.tmplgraphentry.tmplheader.tmplhelp.tmplhelptopics.tmplindex.tmplmanifest.tmplmapnotfound.tmplsearch.tmplshortlog.tmplshortlogentry.tmpltags.tmplrawchangelog.tmplchangeset.tmplerror.tmplfileannotate.tmplfilediff.tmplgraph.tmplgraphedge.tmplgraphnode.tmplindex.tmpllogentry.tmplmanifest.tmplmapnotfound.tmplsearch.tmplrssbookmarkentry.tmplbookmarks.tmplbranchentry.tmplbranches.tmplchangelog.tmplchangelogentry.tmplerror.tmplfilelog.tmplfilelogentry.tmplheader.tmplmaptagentry.tmpltags.tmplspartanbranches.tmplchangelog.tmplchangelogentry.tmplchangeset.tmplerror.tmplfileannotate.tmplfilediff.tmplfilelog.tmplfilelogentry.tmplfilerevision.tmplfooter.tmplgraph.tmplgraphentry.tmplheader.tmplindex.tmplmanifest.tmplmapnotfound.tmplsearch.tmplshortlog.tmplshortlogentry.tmpltags.tmplstaticbackground.pngcoal-file.pngcoal-folder.pngfeed-icon-14x14.pngfollowlines.jshgicon.pnghglogo.pngmercurial.jsstyle-extra-coal.cssstyle-gitweb.cssstyle-monoblue.cssstyle-paper.cssstyle.cssthirdparty__init__.py__init__.pycattr__init__.py__init__.pyc_compat.py_compat.pyc_config.py_config.pyc_funcs.py_funcs.pyc_make.py_make.pycconverters.pyconverters.pycexceptions.pyexceptions.pycfilters.pyfilters.pycvalidators.pyvalidators.pycselectors2.pyselectors2.pyctransaction.pytransaction.pyctreediscovery.pytreediscovery.pyctxnutil.pytxnutil.pycui.pyui.pycunionrepo.pyunionrepo.pycupgrade.pyupgrade.pycurl.pyurl.pycurllibcompat.pyurllibcompat.pycutil.pyutil.pycverify.pyverify.pycvfs.pyvfs.pycwin32.pywin32.pycwindows.pywindows.pycwireproto.pywireproto.pycworker.pyworker.pyczstd.somercurialCONTRIBUTORSREADME.rsthgweb.cgiemacssite-lisphg-test-mode.elmercurial.elmq.elmercurialCOPYINGhg.1.gzhgignore.5.gzhgrc.5.gzhg-ssh.8.gzxemacssite-lisphg-test-mode.elmercurial.elmq.elzshsite-functions_mercurial/etc/bash_completion.d//etc//etc/mercurial//etc/mercurial/hgrc.d//usr/bin//usr/lib/python2.7/site-packages//usr/lib/python2.7/site-packages/hgdemandimport//usr/lib/python2.7/site-packages/hgext//usr/lib/python2.7/site-packages/hgext/convert//usr/lib/python2.7/site-packages/hgext/fsmonitor//usr/lib/python2.7/site-packages/hgext/fsmonitor/pywatchman//usr/lib/python2.7/site-packages/hgext/highlight//usr/lib/python2.7/site-packages/hgext/largefiles//usr/lib/python2.7/site-packages/hgext/lfs//usr/lib/python2.7/site-packages/hgext/zeroconf//usr/lib/python2.7/site-packages/hgext3rd//usr/lib/python2.7/site-packages/mercurial//usr/lib/python2.7/site-packages/mercurial/cext//usr/lib/python2.7/site-packages/mercurial/cffi//usr/lib/python2.7/site-packages/mercurial/default.d//usr/lib/python2.7/site-packages/mercurial/help//usr/lib/python2.7/site-packages/mercurial/help/internals//usr/lib/python2.7/site-packages/mercurial/hgweb//usr/lib/python2.7/site-packages/mercurial/httpclient//usr/lib/python2.7/site-packages/mercurial/pure//usr/lib/python2.7/site-packages/mercurial/templates//usr/lib/python2.7/site-packages/mercurial/templates/atom//usr/lib/python2.7/site-packages/mercurial/templates/coal//usr/lib/python2.7/site-packages/mercurial/templates/gitweb//usr/lib/python2.7/site-packages/mercurial/templates/json//usr/lib/python2.7/site-packages/mercurial/templates/monoblue//usr/lib/python2.7/site-packages/mercurial/templates/paper//usr/lib/python2.7/site-packages/mercurial/templates/raw//usr/lib/python2.7/site-packages/mercurial/templates/rss//usr/lib/python2.7/site-packages/mercurial/templates/spartan//usr/lib/python2.7/site-packages/mercurial/templates/static//usr/lib/python2.7/site-packages/mercurial/thirdparty//usr/lib/python2.7/site-packages/mercurial/thirdparty/attr//usr/share/doc/packages//usr/share/doc/packages/mercurial//usr/share//usr/share/emacs//usr/share/emacs/site-lisp//usr/share/licenses//usr/share/licenses/mercurial//usr/share/man/man1//usr/share/man/man5//usr/share/man/man8//usr/share//usr/share/xemacs//usr/share/xemacs/site-lisp//usr/share//usr/share/zsh//usr/share/zsh/site-functions/-fomit-frame-pointer -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -gobs://build.opensuse.org/openSUSE:Maintenance:12940/openSUSE_Leap_15.1_Update/7eb0a83ca7615303b1a2f167681b90b3-mercurial.openSUSE_Leap_15.1_Updatedrpmxz5i586-suse-linux  ASCII textdirectoryPython script, ASCII text executablea /usr/bin/env wish script, ISO-8859 text executablepython 2.7 byte-compiledELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, BuildID[sha1]=848b1bdd8331916ccad19606ec9cd86a531da0bf, strippedemptyELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, BuildID[sha1]=1babc17db836536879af1f0a68f956bca4c94fe0, strippedELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, BuildID[sha1]=ed50d76c0d8a415d14af609c3946a575c4df4519, strippedELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, BuildID[sha1]=4aacf3f6f82e3e1c004828866b6d2a59b1bb7a17, strippedELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, BuildID[sha1]=a71778cb3e54d964302c4ed1bbe10300eb9220f6, strippedELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, BuildID[sha1]=82b7157c76e16b9a82b4f3bd69006f581dbbf697, strippedELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, BuildID[sha1]=bc164bec2fefd1891db1fc5ebc080f4f83fed3d9, strippedC++ source, ASCII textHTML document, ASCII textXML 1.0 document, ASCII textASCII text, with very long linesPNG image data, 5 x 800, 8-bit grayscale, non-interlacedPNG image data, 14 x 14, 8-bit/color RGBA, non-interlacedUTF-8 Unicode textPNG image data, 16 x 16, 8-bit colormap, non-interlacedPNG image data, 75 x 90, 8-bit/color RGB, non-interlacedassembler source, ASCII textELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, BuildID[sha1]=fe81e391ca9432e0f74ae2c008c594499a371932, strippedLisp/Scheme program, ASCII texttroff or preprocessor input, ASCII text (gzip compressed data, max compression, from Unix)  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456  RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR RR RRR RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR RR RRRR RRR RRRR RRR RRRR RRR RRR RRRRR RRR RRR RR RRR RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR RR RR RR RR R'jefbmercurial-langutf-80f57b228ff4992106d375d9ef99dc65152ddbc460836912d49b99e0891f202e2?7zXZ !t/๚]"k%rf˟jL\9:;gYpsaqhWm J{˪ $=r|"?D"07Exl#W؎vv]'1U"bޜ[|ݻ`o6 !,ˍw7H##.Ml奲}K%䣁?( [QNд(ï\Z9BRzd<jc]tv;lP}q܆9()q㋠ju˭wYAZ"oD 6>tL'ghBޖK.`S@L|"}<s"_:_;i~]Įt <;^XCWY=P>ߒR0pאP?#u-r@9RgE_֠ollɪ*ۅr"^q1᣷4dOϙ 01qlEeo@5*D/P 75O~$F/!G!4l 7 !)Ahx|^2zx5 ~!r*۟\.{M'. tPkqPeLR6zF&jO4ǂ G;=Qymd $װ!nSvXHG}t}{ kTC<c&amϞd H~W>:%ڨa6<=,A6c Z _QbеwuޝGb9h( j+ll )^ǽ>j*9u+MeDRNF/i!2%8;|TRVLuYr7+6$R hlWMߏ+"-NuZJ̎tKBUs܋ M 8+Ǘ?l`FB < Y'q;U%t5( ={c|OI:;5N@1wTK,~UD!|Mhy;=8~㛼zŮ `Nkdw9BEP"V`הS:A#S*GAps7{\5$dGO`$׮"A#7[Qs2p}HUZΊ6@.H=>鬉 BxhFdK5[MQEa@6D(~򱩱=[枠"HӅyNVmQ2(kaH]le2 *sՑ؋YdXoNSe~iNPz@%wxk[?P~t±~Fu'{ӯO 6XJfhrźj迚Tr>x.Oe}wm.!,bjwd0g4&@_,b*fH g[缩mP|7Ⱦ r\ AB '{_fGD $٭{nQXc.oO)!(/NvD¤3 vA#2)l foV,Wdכ*j-+6~ݦi@3|xUKb 4%o8I,so~kš9ܾg̗+:;oLj7۩W=17ijQpe7AI;;-w]w MdSlɪ,Kpot4dG637FP<ݛN&m hzf/uUpݟ-]F8. nllwapG-0qo}&k݁NHcD50zm2Mӛk8/!^gi3jqڲQ=- TV<ŭ 7%P.8YpZnXc/|25Gcwzt᫫^Z%>棷*(.IVvl>-ξI㓓 SiC[>j1ahwZ_Hʀڄlg^rK l ]8;eA!bAqB "bBa$f[[ω597iTlSߵVU=~gvU ~%Ep?OUظ(Qteo#0Mq$N+]T#˭%|kMKw[GaK2No\mW0ga+YD{'/U^jR2Q&21,֊Ow.Ѡ??21# GGv,0ӜTadĽ!gL--)m~)q hsVKƻ)*Lf#yŏ"4OX/I}҄P2S/&&_: ʉ|$7^h\6."Rk@Vށ3 &͋!=z L#m#%%,bfLpB>9P}0NA>lI8- h~0bkdӋEp*nӻ )32'et~HVt'+׃ u*+rlj~ߤ7~\MUψa'&qq䁞*# WebٚRYQΕHnfp#LM$+@m\W9֯AsG"68`Bvy\8}D5*DpMfr-kbn~OEh/aqy-G֬UK+=T}^ #H!NNeV|,5(&˨2A3eV"ÿҐCs!iH/!aQ],YZy\(mqo߲U-!!ʳ4іH<#? ̩a0GYP<2I47Xx0Fl,dJI4(Ѓ>X|n,%BVsԎ@> ׎&AΨrYΟˌ`Hs`"2x* w(OÔ6Y|lݞhq3L0Wt&gKJrJS媺zot|ᕳ4I8nl P|rو.t/EQu1hORT9B*wymSg|tuUY 1pJЋXEmW: 6971!4Oٳo[b2W)! $ȡ'z/A#_߶X @ {Ɇ58ТNcY'.؜ż]㊙C&* vyzX$wJX ?(]|n$ElݎF8L3%,b &)wg~YMeAm+,_ǐn rtSv-Dv-Q5(j* t- ybzMjAF Z$5!~M$SQmʼ7!S6KHc L6~Yh]Al=3#EE <'ΘO-\ -Gc s5@/uNwt}VH$f*F6>iZvN`e&fŇ@X3ifb`8>W=aCx 9 pvڛcIqa3q n3Nů]LjAc6B,Аm4VOL#U||YDg! zģL 0\6!QrrYq[e3=m>b d?˻(kxˏ,P֑|IFt.Gw@]j,:2eY/ Ũ uIKFsnK㕍_OQbAأgM@Si<09pT Z]xB\$~ӏVhjp^@чs0깚F EahonQԥ!^̈́9E5KKw J|Ka;$s[XN;>U|U8-Ć\J&z%pmi]{? hxS4S٥RU^LM#AnvkEr΢_j܂|z#A:N$ T}tp:bO>օl-ȭ/:,A6޼RnbuU~0ݖ^C8O5ʡ{[*t^&*P*\i@bVWG %GʚZbRГyvo/gvҐ\.iؿ*^HTĂU֞;ʣ0ڹq- fV Ѥi_E_Z*14Bs7fOmo!T@g K6uh)Z`;,DdG. %DЎէ?yr)NrɻviT?S )淀NT9<*6g]p5ޞ$3pD/+p&NC.DOPl{ ?W؉gy1HYajz~Y&6#\Ȫ,HRf&ͩ}ČRb3hXl)L?WgFџ 㓥{9,XGǚwZHM^zEn)YXWl49KU!X-Ӎ=WSI>ب>P5]wƒjGh ]VmYl߫Mw AkJ{R2?R5%_H/a 8lN]­혅hB2-.wﲞuYe'h`O!*nD> #T)7|FQhf ,MD5ڻ-r[;m A-NN/#{icxY2Z}PT)$jjj_y+U`*z e2YFŪ/=17^h-:\cShxOL$lĤ_\P$[nA~RQY\8tFߞIK/؃=hKGDձ+,1(',0Q5ulX6q)R2=${o$V'rZT Iy lP} ɐk}k$ɬ;طRހ[h.ԹuZTi2`(5멊F@cOmw'GL̔/ZTRCQfg"1a<аVcѳHҞLLPM@m)x׏|(OIpH`dxRaQLhdLMVtg$Wbh:|=,*GqN\U\t{(OFHXvRI<&Pjnp}; *"* 30.VIwxh.v/|3Ko&rBd`H+\vQ#12 B^TyІX|=u!q5P[m v{X `2~_գP7/  4ȰvMZ jx% .~;uCXRwO;ǚ@EmKYJkS"rɉyͨ>saE߂JqFb`$ӄz7TJ@Zp&r\@p:,VO6=(S/LFFhs3 lQװ~'k'Sj 5C煾}**({r:!7A~Yv5DP`NOt-!es  FQ>UU=v .TkC|xv蕥{?HPzMDHxX1-Y9j,MyH-dKB8L-!DÈ͒ZǢQmh4!Nl4ɉaP79C&Mf-CJx9oe C7'_e  ZVsm*kdբ+Trǹ0wźVfQvйX Eҭ<ǘwևވZٜj6aN[V`QHY$^U9(0sXIjKp҂]0Q/= W^d福/Asb]a/ސ0&fGwV|+*A44<^m xO]J2|;=Tk^U>lQՍ?53 Dp$lqO[W:_d Z0GhَgaF3ÁjBc BXh < )[IQ/n"e0g:?ͭwSYdT5ciFI +;kF%*”I.KƠ8BP%~'s.PL{oXW 5,리lIԔYbOyzʻykҮdW K? ?âbQ8'zb'9}˯{!#fmQ-@`=T)l@]\ڥi?=+JԷ1rCϵ1$tVs@ԓᄭ--C&1sbn|ezP~\f]IHh1ϱK(^$shGMx:ŐZ7 Gnڋ+"^tX߫qk7P*`S!X#65CtCypU2yQp_Wn6:C_<϶śO$-h{]*bR$uǰ\Mz\a`nXZM\$_`Q /&CWR*7!*o./t!>2&n%OMB 9.e"]ՋFO8^/p=+G0텐\XD1X~oc}_E$)Gg3r8ـMfE9Z ; *0yTxxNE/:[#xS$AdQak-^lA[&K_$ P~ An}?oɧGiVe1)ýJ|>[}tZ"R_  'K ]+[vPj#bo#+L~1Rkb4X8TOiٜ']5.kfĔO{\"y}"(BI*i4`XyU9JXyD)2ePJ`QKBqFL:.ܡ L*!.Y!i 3t#rk;lMnsm<]ZQIMk;}pGEAKE܃)@EtR0}>0!fgR8W}#66iRNSjxל{3[c%nIM>2ܱJ*ik$MGZ|yM%S Չ/PC@ty*dMsbB-!{ JCL &*-{A3Sw})|fEЬ􌁻ЫYVKD U0r[#t$9xe@;(6Բ;ӈyӳ(k=ogl>w:% meXa@m\i&wYZ'rc$ѽ:d%TH()/bYmsfX&-|}Syу<_TPV/2Şx9r^>'mR;M|14%3O|alD:3q܂ai%X6l>9VNz:>@%cI\`CZ2dHm&c}7Jԡ cvρRv \ HiK9Yy<FmM4d 9|r$a0QB W(ݰl*{t$~CƬOuzA&jϬ4)@@>A` bv3 k+I&{pLUJ bFۛƁS<>D6}]m㔚8ZD?KQT1!t@V>.Ia @ aLAb?^{p(mGEh@zmաu h%n<\y+JoM C;aw+jhv٪v7(w1zǿ^ YNUdY{BQ/RI?,߳5?DC?iJrbdTEȚ (.zǬm=$zT|5%](8te\lڱq (Ugn>rY@-oDyw l ><弇Y*)0 X .} -ίµ& y4qp3%?p9S$9\J9H))sP%&C@\4k?8x7mN7=|9>-&^'D rM2P2ϓ|릳>S<:t{g0+>8B [Tp)LJT<ZïWdoX'N"gVӜ^mug(ai@'cW69:S K[<LD#~n̳.[Z 4oKğۑtEl9Z_Hy½ LC7̳~`9ز0~ͻ4sĭ_?2nK<(Μ٢_ gߺUnhP.UMIDXl`Z4UiŗcW2Bᥲoeu^Ȩ1F-T:}zVVLf);g0 ZĴI$K>|{\T؊S7Zdaji=d:nJtP/u"a) G9 <~6bOE`51Sm3?hD i;ǵ=zx!z/ͤ!A2sSLJBS{]{c*悄zAT<6fMI\uӲE6Ja8T5zpdπRr/#yeOAȶ>ӱqN%gI*о;tAQ/kQ(I^J:%@~+M &Æ[ȄjX]cm+gP9Y }B8En 20ĸCDvRCk,CS=E? g{ȈcFWXؚ>8WI,;GR*ͨ|K? \#cnF |+ I0R4Iq]1"F4k!u9 6w̰ro1k ٷ~4pw fLwú>_#5EsSHo䁡y{h@ u95c!|!Pp`(@xۼvϐce֭t4;;?s24mNVBQI=ovfE&(<*T%hʗ*,GVx _]o" XCxA+l3/toR?LV oN=DhRz%ki`%z9e6WSD/Kw$K*Ozڄ)jl|茗vn-Ӂ6Ļ-Pg=,gf-|^%Kå&A{)8!p %Z'̮0ñ+/HyqZy ui#{دwL#m`Xv{*@j8_ԗ|"QS|twS)bT Q1V:m(W&vGIgC8HH/^ +k< <jTQ<솤A#S5C@rE7a hCAB*,7(7dcs㟧& ^EL5i,b{É !@Q/U.[ʐgJ[^j 1 Tp͍vF6}H8+Ēxy .A6btj|b6y} h\ɯ7:^DTc"AfmЈi,>t %C^"8YR:2E7 "{"v=F XS:3{1*9/؉p#9NxU( *u-\jrq+NOɜ|.] C,4R5ö9t8 B'ۮYX4wn;-:DZ}yL⥴2mͲ [jz`kQCՊ-xA ls޳`F3WCˊZl AƢ#.-T$5aM$؂(WgҲZAڜZ#>wUa)=},,bdͫj4SҸm a4ߊr`~ƖXc$$ϛ[*TׂZ>AEpX@=|a|ӱ;WʂR3cĜDQ+XN=H沑 oeţn_kL,#+?1Y*U6gzEcTfoZS~=0]T*V Ãi?Y@ߜTFE/J7MensqQP? Û{J][o&qߠ[\ 5f湝b-š8=4 /偛f5-D/fѴ6 }yBGt>ih.^."ȈbW68aJ"5 R=ފce¡ u qǘ2Mp۳jUTN-[Ky|PH~qF{;P%MYa໹0+֐ߙ:lcexӂbU1˃?V,Ez;JKp q;Q ?6nzӰKCvIQ$,Z&q |isFϏc hƣ9`NLY?Og&8/ 17arhw.(H$1Yk1hX[R;DIw8bxvoBjikޕMwېT[ly[f5!?`znW}>]͒j|~wDbtFaBy?өP\$X #Na'K̗8 ѥb8A 7)b JR;D2eofhߍWcp_Xء9$3*[o2-J=\.sI˜V_B;FP(:y?TfPnJ G&2jθM2%!|/KjL*&)BnHcO}櫡 uzAdepl1-,dt^LJK8` e/|4qhE+֕\`1s8*$ B3zSvP[QGf K;vvecpk2:QBϝuM;[!~25ʢge {spp}x<@~\ᘗ7hY6=sIuԝ@)4UmQ{3T(jqC#"qZIZpMεz-qBnz7]$zcHc2)~ ->"μ'tOLڎc̅_hN|-hn[RH`_v0)bxF G] p{qS!a]i8o{.Թ"&%n)Ɏݝ"5a!<6 rv&$[񘵛3>ȅwk%$.}rǡ?R̈́^ ] *%?'` 3KOl')1޾kFzdjՌ}q:6̶-<NͲ+zpM'>"|T'ZS„[ H$?=zn7}1KOԴc_c%7o l?o=ep[%(? /fGBr5(#¾ؤ꩝R. *ZmIjz@lg;n>AZ  d/`8ފ0.uIIy'zQnmcM v#6@0=wK/ȇd{iيz#KȊړ,,Q"VmwL#EA2݅P9 \@ɫ_=td.ّ2&ЂX{䍑H޻GF*lfU2x[ UQ%[/sw]Ît"mg8ba[G/$c#:@1[5 h5hfFsN1ⴄ⯵-u&39~KC:r0C#D1!7y!\R.[=*Pk&ߍjGtofW~ɏםY<ۨ55y:d 9ܫO 6}>@bLB`= & rhҚ-WM׵ED蚥O{_]_؋Mb 3Xk*La.*]6͔ ~{}D,)d RW|n=\b`m,;F}.ةS=y-Q%JUzJث`R0L%y}Y.UTiGY]D6^Il6fx/}ƺ;J1ƳɣƁj%&t &!]Yrwa= X>I|3u%Cw# 08rxz}&~|ԭ'*@|^솹񏵯DZ)m(O/1x:UdXUU g& 9qa-)O7vOʦy5ݝ~* MdMG 豤L:c;J<\s;'UJcI)Cs]hm^YQ~e˒6gn֐ 9`RF T5G fήN 33kVS .6'o *YP-KUXpEamc_4QPP! YLuK@@%Բय़!|x1;ζ&@ E 8P5( -}tjԲY37ij: REN/0OLXdU7[ue;F@S[O/,1 .ziC#ӹ-;F+h䄶2m>jH9&= +"}v 'lh yCqk.]`ů`⶚YNޒuƁh.;!,?26!PJv3oؠɼQwbl?;ߡ>.͵y ~RH#MS'&ǡhlJZ?ȹ{G3"g!`y5CkPkBع3]9j?E&;-A[Jx͇%?lUΈ o[FCID5q̤ßu04Y\'`6A} y [dBmrFB&/a`҆|'ɭtOe{%Ȍ/΍.Xu/KHm.fa3 ßbÕl۾> "y ygyY^.]pr99e/=^n|'U]ߋ}uE*.h  $ޢ}KhlSNΈ R2`d"+DM.9"v5?[gなwBT=$2A8ILWU1drB] fj͖0g\[nρ#&dK@:R`! 䜄o \LnŘ$;I^f$hO’* λ @Ee7dv- 8JL\,c͇dط+Ol:i7Vk a1Mh_98}l +ؓB4{yM^:ɜaZC's{ȴ^Kô_Rg>iov_}"p͊&ҢȖA1Gwz&m:JEx*Y_+L6&aPAfG &7 ӻ4ֳR @䂗O+56hpcD3X6_`+(p,RO?O1. *@}ICՠZs8~RXE]V+6gӀ2·Kqq; zc[쉼:'=զ\,ō=bB2C^d@s8/7{ cf +_ßAܭ<ֵ. vKQ0.u^  b$>\ Pë9Ogd6{“p9- /t3wO@fkηҗ-4aDCQީKW6 Oks2Zz{Z[pz,JbHprzC '}\e_LvE+_NEFEp\ړ}MRiqm9- Y7ǰm/SZdzc/깳}RB\aEv_gtxU]j‡TλN-Ǣt]2{6jִ=#u&F"$b]ىʹNRX~ G`{ш zS-ЛD(>l`1 _ ұtM)ol襆sM[p%`M +W{t ĿU; 6 ԗs+`83 C=rd" Q2!$qt+}aZTT #-#]^wt' FiuX;w> Oӏ`|МtƶR'r%!~٬@dWV?$ȈuD^nfbKi1e`?Rci.}LObu_ Lǫy"'4+'J(J {6Z$y䔝<8k`;Kb9`è;S$0dԲJJ^-j~ ym $P(s^zwozu˳PߑtzY*1}jL)OZu.#v5q+%{ɳBkFR\ _4pmZ:8.F)qEq%6⯊&~#{ܚCf2iyKZ>Glە$qh͏Y y "9ޡð|wK`;%eRv㾫%錷=Cע OD6 %/ ƺl&:>P.IH̹[qż׋ 3 4!' g o':#y欆5M(X HQ2Fp5F#>m;>4t'7 N_2̯p(T#xdo~0Xc;1nd@G;޴${7V TvF2Y籕D ݋&_qۂM'i6~E WAxNHam9.K5;^)CkW*+C-@ }rq!(|P%K_B֒H]4+I;|5o.3pBw:>Aw Cކ?ʩ<^Ap)3.؛xx-mWJ? H3]ZSG=4}TldO&Y:ӕq7 V,tk[wNad /WF֜τbv3䃄@uV׌-p]L9l^ WWq.U"ivL?4rb=ԐvGndM \N<Jn$5eEn[fAKfĜ r^ +nA}`$>CWOE15WJmجΒ?M 6u}ttZ4kEsS}v}Y+ صφ`:IZIp/א&pժo4y'h5.{fw9"t0n|$c|5W62!> YycD$9)RZT `AK#؅ѫWɪб' 8gH z9c1lՋk Pϰne.sPT~C)J_-TOOf;Z3ڱnV# ?Wd -kD-]딟R t8}CU~|&[X^p" & i5Mzy3YeZ:BĶllbgIg <볲yRrxj#\XXR- oI0תtlHg$OY, rN )~wYDhhJ,%+I۬LJHͺűbh?r-Qvq8{e"ۧ9@2w62u(pu+fIGi?. PtvIaXzmV5k'0CXI≝ CUxe6y?l,275>`|r* ynKvAb?S2kUCtu<O5Bx]U7!WQ `Ieg`J`V&ϘAx/^7aR t zm$vT{&-L!wha^tw'0W#%VV$GtE^Jzg\k܂Tnk $&፞XC$:| ;p^/Cg6OS'4);n*Y "NA "Î>I^R`}ؠE>+Y Q嗪S6h3kdƱ B B6у16!D {=F d%s6ʔ5Utp_]|:VQ\Q +%J5!+[ᴸqij_F?8?4Æ--JK5>QX llUL(F\r ( iZB|yH. aà7rc"T.Bib<=3+9<]k&<4)쀶5a4<)ı-5@\x7ːJ*,]eh/jb>̰3mF)̒5vr=1fئlH>$jcdŚ/Xf 8}-)Xb#2OӜ8ݢ**[ 68M?aVm%hbͅ GYk֖{P2>,\o% 6e2N=ւIfA]1)HRK0ΝL>t8{I[ب9;7W_N.a,75FQ.7[]|hSvx䒚`8R'䷿z8ql}xrw@%> De?dvTt] K4Y}t,8_p!ʏ4O=l a|8ޗ켏]P0  n .s]22aq0]Y Na %\|{ю33hW A'I@t:?;2b} !æ>s:!}վ{fom6݉ye+/{^BR%~pXxjߨ:/=*V>6]Vv_{ %8h6?$G Eg!Z[ҥvO+G&?yYќULavhXUi8b4FĠ^&.]Ik4MٕAhocтԻ'@Fc hc6"4Az$\%W%cW-O+1FEE[׎:HoUOOsO1!&fʬn v[`2yt5:3Zṅ졮>`З ѕd(mCۣ*x2hz?gHUxM!ITИc\?&'h:p-l'a%=$|So7䵹+vOkRL\itћS4R~%Č$E& )E9g%BkSc"&қ91k cQo؊b91Yo9yH@H»K.ɵC:oD@,dCԱx9-C# 3)7h&B8lAkMY y(HnL"HkUyB?F'Lޟ9f)wLOٌV1q؝V_4]|CyBM&nxfpPNi9<>fӯEaMoThp*<([X9̑=8F7bv,/H;"r  1s.6'*ZfNֈcC/R ^ٖU?bAȍ xyQln2GQ44ͿTӜrT+YOXZ뙈o @`te3Gnq/(wZv)rSu0߷~سcNjK,W5JOob/~qk6OuFؒ 毫BKg1d_78+?Z3PCiw 6Eu$lOJ<~cr\^nZ.)ϲoJbӺL3|M @06sQ>g'*vT ]x&^:/SonqC8xŢ>!3/$758.h#^</e`7!@l7f2fuptc[a;wz&psp{-ӕzbWnmqВ}xbMo{+h2"vB2 :\N}*1exDDCzVJa8];7>|zqX Ϩ2F\!( wѳq8#xi6u JCUxdAy;>vADyt4#ct"zye2 NX!x ivQ`'gdz\ڧMbL5Zu=Lp`lҺqP4~j ̣T~s%voC.A5oU]vK4h"TG+#CQ(38ElYDgn8'^dooO{vb#ujZ߅bK9lD^>] 4>|[A+F*o=Lxo(Ҋy}Z:ɕs#]Y%m8JPPv&/2"t+WOe7.o=RzaPÆq8W/x;Tz>.Ӌeoz5I,~A\wjE>P8Փpc;<_ Ig#)$ `C\ ;`NR>]1D-k0aJho7I[dy3, s4f3"+Nλm4YڀSm [Ty7 _Wg5VN|4v3bk0MȱP3*:x 2W ,~? !;4xRj,q0QOWlvp֞GOh8Tڒ=׭܀DCf;lXB@<;0JɔMV=x+Ǡ;Y採w$8X(O)5똘2|;_X9z 8O,4ʨ Yl(pP.,KxK~]XǺ'bt#?5dQON_?d8P\o}'AS4鲠k**䗑ֲaGâk׳Pa}ӌ;qZ(\:{nפ_4_`(f["nKXF1,6`P>c[GO /CW"D| N\:FS'`L(j]}=0ݧfkAƝuN۴pRl8C.'F^ s1Gb}{@FuֆĦGܐ~")1#X_>VsZB:Ӟ֮V赙~ ?X.*eؿ|jsZp2omًxIkud[4+]4U\WE9' ֽ4Jʖ <7E%iԜ]MLYQXC^pN0fyK{Y3srio)S, mtk`=TsK!Y9D軗 aO5x߭JXK2/ y iZ3vYz\AiLɜE= qEaKm>0vS{\wZ|EF\߁yi{MXޙZuyΖ}D=/ >R92b2J?jCGM]V0IY;%W.t\~]P6~uQ,I5~vہ0 D;5Z̞Ǝi㓼Pv" 0݀۱߽R%n4uZx#"pnAYU?QBbg@FoETKU%06!k'~;ԌFM!ԄsdgaRJ@/Q& Uv #/IB"fPVI1.(N\,~orrnnFMl;Ll}T¤*: ׂ 7i3+m$讖Oz`45 yCn(˾H:}hzuIVլ1w9f,1q2pЏ險/kRT!$>QVJ<2u8?1M+|Xȑu$=YmeP}KlTPwW4KS&Hх$a$$-`Ŀ!LcDmV`QViB]h{`hڰfP0҃;5k*ҹ5׿d3Q-u.&b{^$2H_!€gptmVEG8o,l֠f_A})&.SzgNDǍ:3TUFŽOf/Ă.TF)Y5lKHne!82DIŰ\*<$s Iuhq- م䓭LqꋅI\9e UTerlMc'կ8 + YUzM+ɉ Y)@GH/UgH@@Hf>Q€ܤy=6(x ACVq5@o(?uLDL rjFBI;v}"(;rCδo910US? |N-z*Y{*||Lm+i5Q5H;3RYS48TMBp?$(2'[Z6hh$ۖ20| #/ؕo俐t:v;zN^PmB%Ǹ䁲_PSYԳW-y{3`G #Cq|?"Y@2%i[쟠iHMXo4Ek.I4߅8Eu豉DÈ9-/҅]I- rL'fwe~u/]|XIRe\ܴNыXBܯ&?TjSQK/o QolHĭ2 y5`@J΍co_*$}d)ĸ6'_Y G r?<8!Gyk?1Tw-ęc